借用vulnhub的一句话,请记住,VulnHub 是一个免费的社区资源,因此我们无法检查提供给我们的机器。在下载之前,请阅读我们的常见问题解答部分,这些部分涉及运行未知 VM 的危险,以及我们关于“保护您自己和您的网络”的建议。如果您了解风险,请下载!
靶机下载地址:https://download.vulnhub.com/theplanets/Mercury.ova
攻击端:kali
一、主机发现
arp-scan -I eth -l
二、端口扫描
nmap -A 192.168.195.131
通过nmap的扫描发现目标主机开放了22端口SSH远程连接服务、8080端口TCP服务
三、web渗透
http://192.168.195.131:8080
提示我们站点正在开发中,建议我们稍后再访问。那么接下来只能试试目录爆破了
四、目录爆破 gobuster
gobuster dir -u http://192.168.195.131:8080 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
目录爆破没有收获,难道就没有突破点了吗?试试随便尝试一个目录比如/admin大概率没有这个目录。
在渗透测试中,报错信息对我们来说很重要
果然404了但是回显的信息很关键,有一个mercuryfacts目录
尝试访问mercuryfacts目录
这应该是个重大的突破点,有两个链接。我们分别点开来看看,先看看Load fact的吧
就一行的内容。好像是列出了关于水星的一条科学事实,水星没有任何卫星和环状卫星带。注意观察url中有个目录/1/,同时这一行也给出了Fact id: 1这样的字段,感觉很可能是数据库查询。
大概了解了,回到刚才那个页面看看See list链接中有什么启发
这段话大概介绍了开发者尚未完成的工作,未来要做的事情,添加CSS、使用users表实现身份认证、使用django的框架代替mysql直接的调用等。第二条和第三条其实都暗示了我们,存在mysql数据库查询,同时可能还是直接的拼接查询,存在sql注入。因此我们回到刚刚的有关水星科学事实的页面,在url中添加单引号尝试验证SQL注入是否存在,发现果然报错了。
发现确实有sql注入漏洞。这里直接用sqlmap吧看看有哪些库
五、sqlmap的利用
(1)sqlmap -u http://192.168.195.131:8080/mercuryfacts/ --dbs -batch
(2)发现有个mercury数据库,干脆直接一键脱库,把里面的表直接dump出来
sqlmap -u http://192.168.195.131:8080/mercuryfacts/1 --dbms mysql -D mercury --dump
核心内容除了刚才水星知识内容外,还有一个用户密码表,存在明文
七、登录ssh并收集信息
测试发现只有webmaster,密码mercuryisthesizeof0.056Earths可以登录ssh
登录成功了!在当前目录查找用户的flag,如下:
发现还有一个目录mercury_proj,进去看一下发现有一个txt文本如下:
发现notes.txt很可能又是凭据信息,看起来像base64编码,解码试试,先对第一条webmaster进行解码:
发现果然是webmaster的ssh密码,那么再对第二条linuxmaster进行base64解码:
得到凭据
linuxmaster
mercurymeandiameteris4880km
linuxmaster很有可能是比webmaster更高权限的用户,因此我们尝试切换用户
成功切换
八、软链接劫持sudo 提权
切换到linuxmaste用户后,尝试sudo -l查看可以sudo运行的可执行文件:发现有一个check_syslog.sh,但需要设置环境变量
可以以root权限运行 check_syslog.sh 先看看这个文件是啥
就是个读取10条日志记录的命令,那我们可以直接通过软连接的方式把tail指令劫持掉。相当于在当前目录建立软连接,把tail指向/bin/vi,然后通过sudo vi的方式进行提权。首先建立软连接,劫持tail指令
1、在当前目录下创建一个软链接文件tail,指向vim
2、重新定义PATH变量,把当前工作目录加入到PATH变量的路径列表中
3、执行以下命令就会自动打开vi编辑器然后输入:!bash 就能拿到对话
如下提权成功
第二个flag就在root目录下
思路总结:
靶机使用了arp做目标扫描发现目标地址是192.168.195.131,之后使用nmap对目标地址做了端口扫描发现目标主机开放了22端口、8080端口,站点探测发现没有什么有用的信息然后做了目录爆破但是没有什么收获接着利用报错信息发现一个目录接着在发现的目录中的Load fact链接发现了sql注入漏洞,接着利用sqmap使用脱库发现一个用户密码表并且存在明文,然后使用ssh远程登录了并且在当前文件发现了第一个flag然后在另一个文件夹中发现有一个txt文件,打开发现有两个账户跟密码经过base64解码得出明文,最后使用sudo软链接劫持成功提权,并且在root目录获得第二个flag。
至此打靶完成!如有做得不对或不懂的地方可在评论区评论本人看到会第一时间回复。