目录导航
RdpStrike简介
RdpStrike基本上是我为了深入研究位置独立代码 (PIC) 而构建的一个小项目,参考了C5pider撰写的一篇博客文章,并与0x09AL创建的RdpThief工具相结合。
该项目旨在从mstsc.exe中提取明文密码,shellcode 使用硬件断点来挂钩 API。它是一个完整的位置独立代码,当 shellcode 注入进程时,它会将硬件断点放在三个不同的 API上(SspiPrepareForCredRead, CryptProtectMemory, 和CredIsMarshaledCredentialW),最终捕获任何明文凭据,然后将它们保存到文件中。攻击者脚本确保监视新进程;如果进程已生成,它会将 shellcode 注如其中。
当攻击者脚本加载到 CobaltStrike 上时,将有三个新命令可用:
rdpstrike_enable – 启用heartbeat对新 mstsc.exe 进程的检查并将其注入其中。rdpstrike_disable – 禁用heartbeat对新 mstsc.exe 的检查,但不会删除挂钩并释放 shellcode。rdpstrike_dump – 读取文件并打印提取的凭据(如果有)。

视频演示
RdpStrikeDemo.mp4
下载地址
https://github.com/0xEr3bus/RdpStrike.zip
使用方法
导入.cna文件到cobalt strike中即可。
威胁指标
- 它使用 cobaltstrike 内置的 shellcode 注入器。很容易被内核回调函数检测到
PsSetCreateThreadNotifyRoutine/PsSetCreateThreadNotifyRoutineEx - 钩子被放置使用
GetThreadContext并且SetThreadContext调用是从不受支持的内存中执行的。 - shellcode 在 TEMP(
C:\Windows\Temp) 中写入一个文件,文件名称为{7C6A0555-C7A9-4E26-9744-5C2526EA3039}.dat - 还有一次
LoadLibraryA加载调用dpapi.dll,它同样来自不受支持的内存。 NtQuerySystemInformationsyscall 用于获取进程中的线程列表。
致谢及原创作品
所有原创作品均归功于 C5pider 和 0x09AL
转载请注明出处及链接