RdpStrike简介

RdpStrike基本上是我为了深入研究位置独立代码 (PIC) 而构建的一个小项目,参考了C5pider撰写的一篇博客文章,并与0x09AL创建的RdpThief工具相结合。

该项目旨在从mstsc.exe中提取明文密码,shellcode 使用硬件断点来挂钩 API。它是一个完整的位置独立代码,当 shellcode 注入进程时,它会将硬件断点放在三个不同的 API上(SspiPrepareForCredReadCryptProtectMemory, 和CredIsMarshaledCredentialW),最终捕获任何明文凭据,然后将它们保存到文件中。攻击者脚本确保监视新进程;如果进程已生成,它会将 shellcode 注如其中。

当攻击者脚本加载到 CobaltStrike 上时,将有三个新命令可用:

rdpstrike_enable – 启用heartbeat对新 mstsc.exe 进程的检查并将其注入其中。
rdpstrike_disable – 禁用heartbeat对新 mstsc.exe 的检查,但不会删除挂钩并释放 shellcode。
rdpstrike_dump – 读取文件并打印提取的凭据(如果有)。

直链下载地址

https://lp.lmboke.com/RdpStrike-main.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 用于获取进程中的线程列表。

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。