冰蠍3.0 流量特征分析 附特征


簡介

hw前夜,冰蠍發布3.0版本,主要做了一下改動

  1. 取消動態密鑰獲取,目前很多waf等設備都做了冰蠍2.0的流量特征分析。所以3.0取消了動態密鑰獲取
  2. 界面由swt改為javafx,這個沒啥說,界面美觀大方

下面主要分析一下冰蠍3.0變化

密鑰生成

根據readme,aes密鑰變為md5("pass")[0:16]。全程不再交互密鑰生成

shell.jsp 中代碼如下

    if (request.getMethod().equals("POST")) {
        String k = "e45e329feb5d925b";
        session.putValue("u", k);
        Cipher c = Cipher.getInstance("AES");
        c.init(2, new SecretKeySpec(k.getBytes(), "AES"));

客戶端的代碼如下

我們可以看出,新增了無動態密鑰交互。只有在無動態密鑰交互失敗后,才會進入常規的密鑰交互階段。

密鑰生成可以看出,使用密碼的md5結果的前16位

特征分析

下面我們隨便截取一個冰蠍3.0請求包

雖然沒有特征可言,但是還是可以找到些許強特征

1. content-type

在冰蠍3.0 的服務端,是通過如下代碼讀取post請求

request.getReader().readLine()

代碼的意思是,直接讀取post請求中body的內容。所以請求的http中,content-type一定為application/octet-stream。否則就會出現非預期http編碼的情況。

下面我們查看一下冰蠍3.0的客戶端中關於發包的代碼

可以看出,該請求頭是冰蠍3.0中寫死的部分,除非反編譯,不然很難修改

下面我們來看一下application/octet-stream的解釋

  1. 只能提交二進制,而且只能提交一個二進制,如果提交文件的話,只能提交一個文件,后台接收參數只能有一個,而且只能是流(或者字節數組)
  2. 屬於HTTP規范中Content-Type的一種
  3. 很少使用

根據上面的結論,Content-Type: application/octet-stream屬於強特征

2. user-Agent

該特征屬於弱特征。普通用戶很容易就可以修改。但是我們也分析一下。

冰蠍3.0 每次請求都會隨機選擇一個user-Agent。但是如果用戶默認不提供ua頭,則從系統中隨機選擇一個ua頭。我們來看一下冰蠍3.0默認的ua頭都有什么

冰蠍3.0內置的默認16個userAgent都比較老,屬於N年前的瀏覽器產品。現實生活中很少有人使用。所以這個也可以作為waf規則特征。附內置的16個ua

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0 
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50
Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
    

3. Accept&Cache-Control

這幾個http 請求頭,屬於java默認的設置。下面我們來分析一下代碼

冰蠍3.0 通過sun.net.www.protocol.http.HttpURLConnection 實現與服務器的交互。下面我們來分析一下sun.net.www.protocol.http.HttpURLConnection中關於請求的部分
sun.net.www.protocol.http.HttpURLConnection#writeRequests

可以看出,如果請求沒有設置accept,Cache-Control,Pragma,User-Agent。則會設置默認為

  • Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
  • Cache-Control: no-cache
  • Pragma: no-cache
  • User-Agent: java/1.8

當然,在冰蠍3.0中,默認只會設置ua請求頭,而其他三種一般不會設置。而且正常用戶訪問,也不會設置的如此簡單。尤其是accept頭

4. 請求中content-length

冰蠍3.0雖然對請求的內容加密,但是被加密的內容中,並沒有隨機填充的部分。下面我們以無密鑰交互為例子,分析一下冰蠍的流程

在冰蠍中,任何請求,最終都會調用Utils.getData函數,對請求的參數加密。對於上傳文件,命令執行來講,加密的參數不定長。但是對於密鑰交互,獲取基本信息來講,payload都為定長,且無隨機padding。

缺點:這個不一定准,需要自行判斷

結論

屬於冰蠍3.0的強特征

  1. content-type
  2. Accept&Cache-Control
  3. 內置16個ua頭
  4. content-length 請求長度

藍隊可以根據業務方的需要,自行判斷需要封禁什么請求,以求誤報與漏報之間的平衡

歡迎關注 寬字節安全 公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM