Web 渗透测试实战:从信息收集到内网穿透
前言
渗透测试是评估系统安全性的关键手段,旨在发现潜在的安全漏洞并协助修复。在进行任何测试前,必须严格遵守法律法规,仅对授权的目标进行测试。未经授权的攻击行为属于违法活动。
本次实战将模拟一次完整的 Web 渗透流程,涵盖信息收集、漏洞扫描、权限获取、提权及内网横向移动等关键环节,帮助读者理解攻击者的思路与防御策略。
一、信息收集
信息收集是渗透测试的基础,遵循'知己知彼,百战不殆'的原则。我们需要尽可能多地获取目标站点的公开信息。
1. 基础信息查询
通过 Whois 查询获取域名注册信息,包括注册商、注册时间、过期时间及联系人邮箱。这些信息有助于分析目标的运营背景。
Domain Name: example.cn
Registrant: Example Company
Name Server: ns1.example.com
Registration Time: 2020-01-01
2. 子域名枚举
子域名往往隐藏着未公开的测试环境或管理后台。常见的子域名包括 mail, admin, dev 等。通过 DNS 解析记录可以获取对应的 IP 地址。
mail.example.cn -> 192.168.1.10
admin.example.cn -> 192.168.1.11
3. 端口扫描
使用 Nmap 等工具扫描开放端口,识别运行的服务及其版本。常见端口包括 80 (HTTP), 443 (HTTPS), 3389 (RDP), 3306 (MySQL) 等。
nmap -sV -p 80,443,3389,3306 target_ip
二、漏洞扫描与利用
在掌握基本信息后,需寻找可利用的漏洞。手动浏览与自动扫描相结合是最佳实践。
1. CMS 识别
通过页面源码或特征指纹识别内容管理系统(CMS)。例如 Joomla, WordPress, Drupal 等。不同 CMS 有特定的已知漏洞。
2. 漏洞验证
针对识别出的 CMS 版本,查阅 CVE 数据库确认是否存在远程代码执行(RCE)或 SQL 注入漏洞。切勿在生产环境随意使用公开 Exploit,应在测试环境中验证。
假设目标站点运行 Joomla,且存在 RCE 漏洞。攻击者可通过构造特定请求触发漏洞,获取服务器控制权。
三、Webshell 管理与权限提升
成功利用漏洞后,通常会获得一个 Webshell(网页后门)。此时需要进一步操作以扩大战果。
1. 查看当前权限
使用命令查看当前运行用户。
whoami
输出示例:system
2. 添加管理员账户
若权限较低,可尝试创建新的管理员账户以便后续登录。
net user <username> <password> /add
net localgroup administrators <username> /add
3. 系统信息收集
收集系统详细信息有助于规划下一步行动。
systeminfo
ipconfig /all
netstat -an
tasklist
四、内网穿透与横向移动
当目标位于内网时,直接访问受限,需通过端口转发建立隧道。
1. 端口转发原理
在内网服务器上运行转发工具,将本地敏感端口(如 3389 RDP)映射到外网监听端口。攻击者在外部连接该端口即可访问内网服务。


