缺:BloodHound自动化分析域环境未实现(环境问题)
获取常见应用软件凭据
为了扩大可访问的范围,测试人员通常会搜索各种常见的密码存储位置,以获取用户凭据。一些特定的应用程序可以存储密码,以方便用户管理和维护,如Xmanager、.TeamViewer、FileZilla、NaviCat和各种浏览器等。通过对保存的用户凭据进行导出和解密,测试人员通常可以获取登录内网服务器和各种管理后台的账号密码,可以通过它们进行横向移动和访问受限资源。
1、获取RDP保存的凭据
为了避免每次连接服务器都进行身份验证,经常使用RDP远程桌面连接远程服务器的用户可能勾选保存连接凭据,以便进行快速的身份验证。这些凭据都使用数据保护API以加密形式存储在Windows的凭据管理器中,路径为为%USERPROFILE%\AppData\Local\Microsoft\Credentials。
tips:<font style="color:rgb(44, 44, 54);">%USERPROFILE%\AppData\Local\Microsoft\Credentials</font>
实际上指的是 <font style="color:rgb(44, 44, 54);">C:\Users\用户名\AppData\Local\Microsoft\Credentials</font>
这个位置
执行以下命令可以查看当前主机上保存的所有连接凭据
cmdkey /list #查看当前保存的凭据
dir /a %USERPROFILE%\AppData\Local\Microsoft\Credentials\* #遍历Credentials目录下保存的凭据
由上图可知,Credentials目录保存一个历史连接凭据,但其中的凭据是加密的。下面尝试使用Mimikatz导出指定的RDP连接凭据。首先,执行以下命令:
mimikatz.exe "privilege::debug" "dpapi::cred /in:%USERPROFILE%\AppData\Local\Microsoft\Credentials\54461880A4E364919FB23518091F65E1" exit
解析连接凭据54461880A4E364919FB23518091F65E1
得到的pbData就是凭据的加密数据,guidMasterKey是该凭据的GUID,记录guidMasterKey的值。
执行以下命令:
mimikatz.exe "privilege::debug" "sekurlsa::dpapi" exit
找到与guidMasterKey(GUID)相关联的MasterKey。这个MasterKey就是加密凭据所使用的密钥。
记录结果中的MasterKey值,最后执行以下命令:
mimikatz.exe "dpapi::cred /in:%USERPROFILE%\AppData\Local\Microsoft\Credentials\54461880A4E364919FB23518091F65E1/masterkey:17ac31c73e51c41af888b7a2ff4d878e1044eaad89325e9c54d97802ecb808224dca8ab6e794a97d39a19d905295252f336277f2401cd829b" exit
使用找到的MasterKey值破解指定的凭据文件54461880A4E364919FB23518091F65E1成功解密,得到RDP明文凭据。**
获取Xshell保存的凭据
Xshell是一款强大的安全终端模拟软件,支持SSH1、SSH2和Microsoft的TELNET协议。Xshell可以在Windows下访问远端不同系统下的服务器,从而达到远程控制终端的目的。**Xshell会将服务器连接信息保存在Session目录下的.xsh文件中。**如果用户在连接时勾选了“记住用户名/密码”,该文件会保存远程服务器连接的用户名和经过加密后的密码。
Xshell7前的版本,测试人员可以直接通过SharpDecryptPwd工具进行解密,包括Navicat、TeamViewer、FileZilla、WinSCP和Xmangager系列产品。
项目地址:https://github.com/uknowsec/SharpDecryptPwd
将SharpDecryptPwd上传到目标主机,执行以下命令,可以直接获取Xshell保存的所有连接凭据。
SharpDecryptPwd.exe -Xmangager -p "%USERPROFILE%\Documents\NetSarang Computer\6\Xshell\Sessions"
Xshell7后的版本,Session目录中不再存储用户密码,用上述方法获取的密码为一串乱码,只能使用星号密码查看器直接查看密码。
项目地址:https://wwtp.lanzoul.com/iHVKl0winghc
3、获取FileZilla保存的凭据
FileZilla是一款快速的、可依赖的、开源的FTP客户端软件,具备大多数FTP软件功能。FileZilla会将所有FTP登录凭据以Base64密文的格式保存在%USERPROFILE%\AppData\Roaming\FileZillarecentservers.xml文件中,
使用SharpDecryptPwd一键导出FileZilla保存的FTP登录凭据。
SharpDecryptPwd.exe -Filezilla
4、获取Navicat保存的凭据
NaviCat是一款强大的数据库管理和设计工具,被运维人员广泛使用。当用户连接数据库时,需要填写相关信息,如P、用户名、密码等。用户选择保存密码(默认勾选)后,Navicat将把这些信息保存到注册表中,其中,密码是经过可逆算法加密后保存的,并且Navicat<-=l1版本和Navicat>=l2版本分别使用不同的加密算法。
通过以下命令:
SharpDecryptPwd.exe -NavicatCrypto
SharpDecryptPwd工具可以一键导出当前主机上用户连接过的所有数据库的登录凭据。
5、获取浏览器保存的登录凭据
Wb浏览器通常会保存网站用户名和密码等凭据,以避免多次手动输入。通常,用户的凭据以加密格式存储在本地文件中,测试人员可以通过读取特定的文件,从Wb浏览器中获取凭据。
浏览器中获取凭据。HackBrowserData是一款开源工具,可以直接从浏览器解密数据包括用户登录密码、书签、Cookie、历史记录、信用卡、下载链接等,支持流行的浏览器,可在Windows、macOS和Linux平台上运行。
项目地址:https://github.com/moonD4rk/HackBrowserData/releases
只需将HackBrowserData上传到目标主机,然后直接运行即可。
6、获取WinSCP保留的登录凭据
WinSCP是Windows环境下使用SSH的开源图形化SFTP工具客户端。在使用SFTP连接时,如果勾选了“保存密码”,WinSCP就会将密码保存在WinSCP.ini文件下。Winscppwd工具则可以进行解密。
2.5使用BloodHound自动化分析域环境
BloodHound是一款强大的域内环境分析工具,可以揭示并分析域环境中各对象之间的关系,将域内相关用户、用户组、计算机等对象之间的关系以可视化方式呈现。通过BloodHound,测试人员可以更直观、更便捷地分析域内环境的整体情况,并快速识别出复杂的攻击路径。
BloodHound基于Neo4j数据库(一种NoSQL图数据库,可将结构化数据存储在网络上)。在使用时,测试人员需提前将域环境中采集到的数据导入BloodHound的Neo4j数据库,然后通过BloodHound对这些数据进行分析,以可视化方式呈现。
下载地址:GitCode - 全球开发者的开源社区,开源代码托管平台
安装过程:
更新源+下载neo4j
apt update
apt install neo4j -j
运行neo4j数据库
neo4j start 先输入这个
neo4j console 再输入这个就成功启动数据库
打开上图中的那个地址:localhost:7474,右键打开就行了
进去默认账号密码都是:neo4j
接着修改密码,数据库设置完成,然后从上面链接进去下载BloodHound。输入以下命令:
./BloodHound -no-sandbox
运行后进入如下界面:
输入刚才的账号密码,ok了成功进去。