现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安“设为星标”,否则可能看不到了!
应用场景
RdpThief
作者写了个CNA脚本,可以监视新进程并将shellcode注入mstsc.exe,启用后RdpThief将每5秒获取一次进程列表,搜索mstsc.exe并注入到其中,DLL已使用sRDI项目转换为shellcode。
https://github.com/0x09AL/RdpThief
https://github.com/monoxgas/sRDI
rdpthief_enable //启用新的mstsc.exe进程心跳检查(5s),找到将注入shellcode
rdpthief_disable //禁用新的mstsc.exe进程心跳检查(5s),但不会卸载已加载的DLL
rdpthief_dump //打印提取的凭据(如果有)
rdpthief_dump命令提取窃取到的RDP凭据,无论输入用户密码是否正确,都会记录在%temp%\data.bin文件中,RdpThief.cna脚本也是读取的这个文件。
RdpThief使用detours库开发,通过挂钩以下几个API从RDP客户端提取明文凭据,可以使用API Monitor工具监控mstsc.exe进程在登录过程中调用了哪些API?
https://github.com/microsoft/Detours
http://www.rohitab.com/apimonitor
CredReadW --> ServerIP
SspiPrepareForCredRead --> ServerIP
CredIsMarshaledCredentialW --> Username
CryptProtectMemory --> Password
注:Win7的mstsc.exe没有调用SspiPrepareForCredRead(获取不到IP),可以改用CredReadW,@江南小虫虫师傅已基于RdpThief改了一个,且修复可能出现的编码问题。
https://github.com/fengwenhua/RdpThief
而且在测试中发现目标必须为网络级别身份验证CredIsMarshaledCredentialW、CryptProtectMemory才能获取到RDP凭据,否则可能获取到的是null,无法正常窃取到RDP凭据。
SharpHook
https://github.com/IlanKalendarov/SharpHook
https://github.com/passthehashbrowns/SharpRDPThief
他们在执行过程中都会在%temp%
临时目录生成一个Costura文件夹释放相关文件,记得清理一下痕迹。
SharpHook目前仅支持mstsc、runas、powershell等进程下窃取凭据,其他的还未完成或有BUG,可以改用python写的PyHook,支持在以下进程中窃取凭据,使用frida将其依赖项注入目标进程。
https://github.com/IlanKalendarov/PyHook
RDPCredentialStealer
https://github.com/S12cybersecurity/RDPCredentialStealer
接着在命令终端下执行APIHookInjectorBin.exe将RDPCredsStealerDLL.dll文件注入到mstsc.exe进程中,提示DLL Injected succesfully为注入成功,可用ProcessExplorer查看。
最后在RDP远程桌面连接输入用户、密码就会在C:\Users\Public\Music目录下生成一个RDPCreds.txt文件存储窃取到的RDP凭据,但是只有用户和密码,没有IP地址。
注意事项
这个工具不会循环检测mstsc.exe进程是否存在并自动注入dll,得先运行mstsc.exe后才能通过APIHookInjectorBin.exe注入dll,实战中可能不是很适用,甚至可以说是有些鸡肋,大家可以基于这个项目来进行二开,或者改用我个人比较推荐的RdpThief(比较贴近实战场景)。
参考文章
https://mp.weixin.qq.com/s/ukKyGkIYiJIOvS0xbn9i4Q
https://fengwenhua.top/index.php/archives/79/
关注我们
还在等什么?赶紧点击下方名片开始学习吧!
信 安 考 证
CISP、PTE、PTS、DSG、IRE、IRS、NISP、PMP、CCSK、CISSP、ISO27001...
推 荐 阅 读