介绍
Bastion 是一个简单级 Windows 盒子,内置一个 VHD(虚拟硬盘)镜像,可以提取凭证。登录后,发现安装了MRemoteNG软件,该软件不安全存储密码,可以提取凭证。
url:https://app.hackthebox.com/machines/Bastion
靶场信息
目标:Bastion
ip:10.129.136.29
本机ip:10.10.16.5
操作系统:Windows
攻击路径:
过程
一.信息收集
1.1测试一下连通性
1.2端口扫描
1.2.1接着使用Rustscan进行端口扫描
└─# rustscan -a 10.129.136.29 |
RustScan 成功地快速识别出目标主机上共有 13 个开放的 TCP 端口。这些端口包括:
- 常见服务端口:22 (SSH), 135 (MSRPC), 139 (NetBIOS), 445 (SMB), 5985 (WinRM)
- 高位动态端口:47001, 以及 49664 到 49670 的一系列端口。这些端口通常与 Windows 系统的后台服务(如 RPC 动态端口分配)有关。
1.2.2使用nmap进行扫描
└─# nmap -Pn -sC -sV 10.129.136.29 └─# nmap -sV -sC -O -T4 10.129.136.29 |
- 22/tcp (SSH): 运行的是
OpenSSH for Windows 7.9。这在 Windows 服务器上越来越常见,但版本 7.9 可能已较旧,存在潜在漏洞风险。扫描还获取了其 SSH 主机密钥指纹。 - 445/tcp (SMB): 确认服务为
Windows Server 2016 Standard 14393 microsoft-ds。这是最关键的发现在之一,直接指明了操作系统和版本。 - 5985/tcp (HTTP): 服务识别为
Microsoft HTTPAPI httpd 2.0,这是 Windows 远程管理服务使用的 HTTP 接口。 - 其他端口如 135、139 也都被正确识别为对应的 Windows RPC 和 NetBIOS 服务。
这里发现smb和ssh都开启了,尝试利用smb,检查一下是否在SMB上存在使用null绑定的开放共享。
1.3smbclient
smbclient是Samba项目的命令行客户端程序,用于访问SMB/CIFS协议服务器,支持Linux与Windows系统间的资源共享。该工具通过//服务器名称/共享资源格式访问网络资源,兼容Windows 95/98/NT等系统的通信协议,提供类似FTP的交互式操作界面。 |
SMBMap 允许用户枚举整个域中的 samba 共享驱动器。 列出共享驱动器、驱动器权限、共享内容、上传/下载功能,文件名自动下载模式匹配,甚至执 远程命令。该工具的设计考虑到了笔测试,并且旨在简化对大型数据中潜在敏感数据的搜索网络。 |
smbmap -u guest -H 10.129.136.29 |
发现Backups具有读权限将其下载到kali中进行查看
└─# smbclient -N -L //10.129.136.29 |
发现的共享:
ADMIN$- 远程管理共享Backups- 默认共享(可能是备份目录)C$- 系统盘根目录共享IPC$- 进程间通信共享
# 尝试连接Backups共享(最可能有有用信息) smbclient -N //10.129.136.29/Backups |
成功访问,并检查其中内容。
系统管理员:请不要将整个备份文件本地传输,到分公司办公室的VPN速度太慢。
整个文件备份应该是指WindowsImageBackup这个文件夹
smb: \WindowsImageBackup\L4mpje-PC\> cd "Backup 2019-02-22 124351" |
有两个vhd文件,查了一下是微软的虚拟机文件格式,相当于虚拟机的硬盘。
二.敏感文件提取
2.1samdump2拿到sam哈希
这里可以使用的是windows来连接靶机
还可以使用把远程文件挂载到本地
挂载本地 └─# mount -t cifs //10.129.136.29/backups /root/Desktop/often/Bastion/ -o user=,password= |
挂载成功查看文件内容
安装vhd挂载所需程序
sudo apt-get install libguestfs-tools
samdump2是一款用于从Windows系统SAM文件中提取密码哈希的工具,支持Windows 2000/NT/XP/Vista等版本。 |
检查挂载磁盘
sudo guestfish --ro -a '/root/Desktop/often/Bastion/WindowsImageBackup/L4mpje-PC/Backup 2019-02-22 124351/9b9cfbc3-369e-11e9-a17c-806e6f6e6963.vhd' sudo guestfish --ro -a '/root/Desktop/often/Bastion/WindowsImageBackup/L4mpje-PC/Backup 2019-02-22 124351/9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd' |
在kali上挂载远程分享文件夹下的vhd文件
guestmount -a '/root/Desktop/often/Bastion/WindowsImageBackup/L4mpje-PC/Backup 2019-02-22 124351/9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd' -m /dev/sda1 --ro /root/Desktop/often/Bastion guestmount -a '/root/Desktop/often/Bastion/WindowsImageBackup/L4mpje-PC/Backup 2019-02-22 124351/9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd' -m /dev/sda1 --ro /root/Desktop/often/Bastion |
guestmount -a '/root/Desktop/often/Bastion/WindowsImageBackup/L4mpje-PC/Backup 2019-02-22 124351/9b9cfbc3-369e-11e9-a17c-806e6f6e6963.vhd' -i --ro /root/Desktop/often/Bastion1 guestmount -a '/root/Desktop/often/Bastion/WindowsImageBackup/L4mpje-PC/Backup 2019-02-22 124351/9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd' -i --ro /root/Desktop/often/Bastion1 |
第一个没有找到
现在进入/root/htb/Bastion/windows就相当于进入了靶机的备份的windows系统
进入Windows/System32/config目录下使用samdump2 SYSTEM SAM 命令查看是否存在散列哈希。
samdump2 SYSTEM SAM |
成功拿到sam哈希
L4mpje:1000:aad3b435b51404eeaad3b435b51404ee:26112010952d963c8dc4217daec986d9:::
2.2解密获取凭证
2.2.1使用john破解
将内容保存到hash.txt文件中
└─# john --format=NT hash.txt --wordlist=/usr/share/wordlists/rockyou.txt |
用户名:L4mpje 密码:bureaulampje |
2.2.2使用在线破解
https://crackstation.net/
三.提权
3.1进行远程连接
根据获取到的账号与密码使用ssh进行远程连接
成功连接,搜寻一些相关信息
成功拿到L4mpje用户中的flag:f5ffa369449e5541b739907c1fcb410e
3.2提权
根据题目信息提示,说有MRemoteNG软件,该软件不安全存储密码,可以提取凭证。所以就想到,查看所有目录,存在AppData,找AppData目录里看看有什么。
在Users\L4mpje\AppData\Roaming\mRemoteNG目录下发现备份文件,这里可以直接访问,也可以使用scp命令把文件从靶机下载到kali
scp l4mpje@10.129.136.29:/Users/L4mpje/AppData/Roaming/mRemoteNG/confCons.xml . |
这里面包含一些敏感信息
定义了两个远程桌面连接:
1. DC(可能指域控制器)
- 地址(Hostname):
127.0.0.1(本地主机) - 协议(Protocol): RDP
- 端口(Port):
3389(RDP默认端口) - 用户名(Username):
Administrator - 密码(Password): 已加密(显示为密文)
2. L4mpje-PC(一台个人电脑)
- 地址(Hostname):
192.168.1.75 - 协议(Protocol): RDP
- 端口(Port):
3389 - 用户名(Username):
L4mpje - 密码(Password): 已加密(显示为密文)
3.2.1使用mRemoteNG进行解密
链接:https://github.com/kmahyyg/mremoteng-decrypt
成功获取密码
Username: Administrator Password: thXLHM96BeKL0ER2 |
使用ssh进行远程登录获取root权限
成功登录,找到Administrator用户的flag:876dbb2e08abf1908673933b2afc80c8
3.2.2使用mRemoteNG软件
mRemoteNG 是一款开源免费、标签式、多协议的远程连接管理器,把 RDP、VNC、SSH、Telnet 等常见协议全部塞进一个界面,像浏览器一样用标签页切换会话,既能保存密码,也能分组管理,被誉为"Windows平台运维人员的瑞士军刀"。
然后执行工具,成功拿到administrator用户的密码,这样再次远程连接获取flag。
再次强调,能力越大,责任越大。希望我们都能用技术去守护,而不是破坏。记得给小编点个“赞”留个关注!!!