HVV流量分析之排查攻擊者上傳文件痕跡
0x00具體操作
1.場景分析:
(1).在HVV期間,經常會碰到攻擊者嘗試繞過網站的上傳過濾規則.
(2).通過排查違規文件格式來查找攻擊者企圖上傳文件的痕跡.
2.常規情況下,滲透人員碰到網站上傳有過濾,會嘗試修改數據包內content-type或者后綴去嘗試繞過,jpg,png,gif這些文件占大多數.
3.用png文件舉例,如果png文件格式正確的情況下,wireshark是可以對文件結構正常解析出來的.

4.但是如果碰到違規的png文件格式.會導致png文件格式無法進行正確的解析.

5.所以通過下面的語句,定位到png文件格式有問題的數據包.
(((mime_multipart)) && (mime_multipart.header.content-type == "image/png")) && (media)

6.然后提取字段media.type的數值就是上傳的文件內容,一般為十六進制.使用python的magic庫對文件頭重新解析,可以發現這個png文件內容解析出來的并不是image/png,而是text/plain,說明什么?這個png數據包在上傳過程被篡改過.


7.同理也可以檢測出來png文件被篡改為php腳本.腳本發現這個png文件內容解析出來是一個text/x-php格式的文件.

8.數據包內容如下.

9.腳本的大概邏輯是,把16進制文件內容兩兩分組,然后轉換到二進制(字節流),重新寫入文件,寫入成功之后,通過調用magic庫對這個文件進行重新解析,然后再去判斷是否符合預期的文件類型.

10.獲取的十六進制字符串不能直接寫入文件,因為這樣只是單單的字符串而已,并不是一個文件,所以需要先轉換到二進制(字節流)寫入.
11.腳本是一個半成品,只能單個檢測,如果需要可以自行改成批量檢測.(因為本來就是一個簡單的demo)
12.Q-A問答:
(1)Q:誤報率高不高? A:在網絡傳輸不穩定的情況下,導致文件傳輸不完整,可能會導致誤報,除了這個之外很少有人會在上傳過程中改變原有的文件類型.
(2)Q:能否繞過檢測? A:在攻擊者不知道ids有上傳文件格式檢測的情況下,是無法繞過的.(在沒有新聞公開的情況下,你會知道公司部署了某X服的離職傾向檢測產品?一個道理).