前言
在进程内存中对svchost.exe进行字符串搜索,显示了通过RDP连接到系统的明文密码。
-
现在大多数Windows不启用wdigest,想从内存中找到文本凭据很难 更何况还是明文 -
这个密码存在于svchost.exe,而并非lsass.exe,因此防止从内存转储密码的防御性工具可能无法检测到 -
这利用方法应该不止存在于Windows 10, Windows Sever 2016, Windows Server 2012,还有其他未测试 -
推特作者和测试人员表示其适用于本地和域用户 -
该方法有点奇怪,密码有时能获取有时不能获取,不知道原因
基础前置
管理员账户已存储
从红队角度看,如果域管理员账户的凭据已存储,则从lsass进程转储凭据可能会导致横向移动或直接导致整个域受损。与RDP协议相关的流程也可以在红队的范围内获取凭据:
-
svchost.exe -
mstsc.exe
上面两个可以作为检索凭据的替代方法,且无需接触lsass。
SVCHOST
svchost.exe是一个属于微软Windows操作系统的系统程序,Svchost.exe是从动态链接库(DLL)中运行的服务的通用主机进程名称。这个程序对系统的正常运行十分重要,且不能被结束。
在基于nt内核的Windows家族中,随着版本不同,存在svchost进程的数量也不同,使用任务管理器就可查看。一般Win2000有两个svchost进程,WinXP有大于等于四个的svchost进程(看到系统有多个这个进程请不要直接判断为病毒),Win2003到Win2016等等,这些svchost进程越来越多。
svchost进程提供很多系统服务,如:rpcss服务(remoteprocedurecall)、dmserver服务(logicaldiskmanager)、dhcp服务(dhcpclient)等。这些svchost.exe都是同一个文件路径下C :WindowsSystem32svchost.exe
windows系统进程分为独立进程和共享进程两种,“svchost.exe”文件存在于“%systemroot%system32”目录下,它属于共享进程。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由svchost.exe进程来启动。但svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向svchost,由svchost调用相应服务的动态链接库来启动服务。
参考:
http://blog.sina.com.cn/s/blog_a28e3dd90101652e.html
服务查询到进程转储(本地测试)
当用户通过RDP连接进行身份验证时,终端服务有svchost进程托管。根据 Jonas Lyk的发现,基于 Windows 身份验证机制的工作原理,凭据以纯文本形式存储在 svchost 进程的内存中。但是在进程列表中有多个 svchost 进程,因此可以通过执行以下命令之一来识别哪个进程,hosts 终端服务连接。
本机:192.168.0.100 Windows10 20H2
目标机:192.168.0.102 Windows Server 2016(10.0.14393)
本机远程连接目标机后 在目标机操作 密码为 !@#QWEasd123.
查询终端服务:
sc queryex termservice
查询谁加载了rdpcorets.dll:
tasklist /M:rdpcorets.dll
运行网络统计:(在RDP正在使用时 才可显示)
netstat -nob | Select-String TermService -Context 1
接下来我们可以传储它
-
使用process hacker2右键单击该过程,然后“创建转储文件” -
使用任务管理器。右键单击该过程,然后选择“创建转储文件” -
使用Procdump.exe procdump.exe -ma [PROCESS ID] -accepteula [FILE PATH]
-
使用comsvc.dll .rundll32.exe C:windowsSystem32comsvcs.dll, MiniDump [PROCESS ID] [FILE PATH] full
由于现在是本地测试 所以直接使用prodump.exe
可以对生成的dmp文件进行分析 我这里失败了(有时会失败有时会成功不是很理解) 就贴一下其他大佬成功的图吧(大佬的密码是Password123)
以上做参考
可直接使用最新版的mimikatz进行明文导出 mimikatz在2.2.0版本添加了这个方法 不过目前的mimikatz 在windows server 2012之前的版本上无法成功利用 等后续更新吧
我用本机 远程连接目标机 在远程桌面上进行以下操作
可见成功导出密码
关注及时推送最新安全威胁资讯!
推荐阅读
漏洞复现 | GitLab未授权RCE(CVE-2021-22205)
漏洞复现 | Apache APISIX Dashboard-RCE工具
原文始发于微信公众号(渗透安全团队):从svchost.exe中导出RDP凭据 获取明文密码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论