目录导航
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
,它同样来自不受支持的内存。 NtQuerySystemInformation
syscall 用于获取进程中的线程列表。
致谢及原创作品
所有原创作品均归功于 C5pider 和 0x09AL
转载请注明出处及链接