奇怪,80端口进来一个页面,没啥功能点,burp也抓不到包
学到一手新东西,域名和子域名可能指向同一个服务器IP,但是得到的网页是不一样的,原因在于应用了虚拟主机技术
虚拟主机(Virtual Host) 的机制
当多个网站共享同一个 IP 地址时,服务器通过 HTTP 请求头中的 Host
字段来区分不同的网站。这就是基于名称的虚拟主机技术。
在一个 IP 上,可以运行多个网站,靠的就是 虚拟主机 配置:
- Apache 里叫
VirtualHost
- Nginx 里叫
server_name
例如 Nginx 配置可能是:
server {
server_name devvortex.htb;
root /var/www/devvortex;
}
server {
server_name portal.devvortex.htb;
root /var/www/portal;
}
这样:
- 访问
devvortex.htb
→ 返回/var/www/devvortex
的内容 - 访问
portal.devvortex.htb
→ 返回/var/www/portal
的内容
接下来学习一个枚举FUZZ工具ffuf的使用
ffuf -u FUZZ.devvortex.htb -w /home/gw/桌面/test/fuzzDicts-master/subdomainDicts/main.txt -fc 302
字典从github找的
https://github.com/TheKingOfDuck/fuzzDicts
还真是有意思,有种打SRC的感觉,果然世界是一个巨大的环
第一次没有扫到,ai一才发现对于虚拟主机需要使用特殊的语法
服务器根据请求中的 Host: admin.site1.com
来决定返回哪个网站的内容。
⚙️ 为什么要用 Host 头扫描?
绕过 DNS 限制
当子域名未配置 DNS 记录时,直接访问 http://sub.domain.com
会失败。但服务器可能已配置了该虚拟主机,通过修改 Host 头仍可访问。
发现隐藏服务
管理员可能未公开 DNS 记录,但服务器已配置虚拟主机(如内部测试环境)。
扫描 IP 直接绑定的服务
当目标只有 IP 没有域名时(如 http://10.10.10.10
),通过修改 Host 头可枚举所有配置在该 IP 上的虚拟主机。
ffuf -u http://devvortex.htb -H "Host: FUZZ.devvortex.htb" -w wordlist.txt -fc 302
发现子域名dev,进来拿diesearch扫一扫
进administrator后台发现一个登录页面,看着像某种框架,搜一下看看有没有弱口令
- Joomla! CMS(内容管理系统)的后台管理登录界面
Joomla 默认用户名确实经常是 admin
常见弱密码:
admin
password
123456
admin123
joomla
qwerty
搜弱密码的时候突然发现这玩意有个未授权访问
拿到数据库信息
user: lewis
password: P4ntherg0t1n5r3c0n##
成功进入到后台
getshell网上一搜一大堆
进入global configuration允许php上传
接下来学习msfenom使用
-l 列出所有可用的payload,编码器,空指令……
-p 指定要使用的msf的payload,也可以使用自定义payload,几乎是支持全平台的
-f 指定payload输出的文件类型,--help-formats,可查看支持的所有输出格式
-e 指定要使用那种编码器
-i 指定编码的次数,如果使用编码器
-b 指定坏字符,比如空字符截断问题,等等……
-x 使用一个自定义可执行程序模板,并将payload嵌入其中
-k 当模板被执行时,payload自动分离并注入到新的进程中,一般和-x选项一并使用
-o 指定创建好的payload的存放位置
这里不知道为什么上传失败,转到system里的template下的error.php成功
奇怪的是这里反弹shell一直504超时
换一种手法,先把反弹命令的shell放到python服务器下,目标机用curl命令执行,突然成功了,ai了一下发现原因是msf生成的php代码会因为网络原因产生超时,curl命令则会立即下载并执行,想对来说快的多
提升TTY
script -c /bin/bash -q /dev/null
进来权限只有www-data,把LinEnum传进去看看
没发现什么明显的东西,在之前未授权的时候我们其实拿到数据库的用户名和密码,能否再次利用去拿一些其他信息或者提权
$2y$10$IT4k5kmSGvHSO9d6M/1w0eYiB5Ne9XzArQRFJTGThNiy/yBtkIj12
进来拿到logan的哈希密码,这里也是被gpt坑了一手,原来用hashcat就可以跑出来原文密码
3200 bcrypt模式,0 使用字典攻击
hashcat -m 3200 -a 0 pass.txt /usr/share/wordlists/rockyou.txt --show
发现个网站也能跑出来 https://hashes.com/zh/decrypt/hash
logan tequieromucho
尝试ssh登录
进来后先查看一下sudo
利用蛮有意思,正好跟上一个靶场对上了,查看文件时用less分页,进而打出rootshell