<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    主流webshell工具流量初探

    VSole2021-11-22 11:58:10

    蟻劍流量分析

    一、首先服務器寫入一句話,密碼為pass,連接抓包。默認為明文:

        眼花繚亂,捋一下,首先是對返回輸出結果進行加工的部分:

        在結果前后各加些隨機字符進行擾亂 :

        接著對當前路徑及當前系統進行判定,遍歷所有盤看有幾個磁盤,獲取當前用戶等:

        再執行個命令看下:

        結果中頭尾都加了相應的隨機字符串。這個也是waf規則之一,取值范圍都是固定的,關于修改:

    • 可以通過在編碼器中,修改代碼來定義首尾的隨機數目及范圍,可以每次隨機產生不同位數
    • 在設置中自定義,不過每次都是固定的

        其中會傳遞三個參數:這里截取X位可以自定義設置:

        這里截取X位可以自定義設置

        去掉wU兩位,Y21k就是cmd的base64。可以說特征是比較明顯了:

    二、關于編碼、解碼器:

        編碼器:對發送的流量進行編碼,服務端進行解碼。

       解碼器:服務端對返回的流量進行編碼,客戶端通過解碼器進行解碼還原。        

        蟻劍提供了base64、chr、chr16、rot13四種編碼方式,和base64、rot13兩種解碼方式:

       1. 我們設置base64看抓包結果:

        變量值進行了base64加密。邏輯是執行pass這條語句,也就是base64解密并執行上面這一大堆代碼。套娃??和菜刀的源碼差不多。

      2. 設置rot13編碼看一下:

         進行url解碼看到發送的rot13函數:

        進行在線解密看到是和之前一樣數據包:

    3. 關于rsa編碼:

        蟻劍可以自定義rsa編碼,原理是先用生成的私鑰對發送數據進行加密,服務端再用腳本里的對應公鑰進行解密。

        使用前提:目標php要開啟openssl(開啟openssl方法:在配置php.ini中

    搜索extension=php_openssl.dll,取消前面分號,重啟web服務)

        連接shell、抓下流量:

        發送內容進行了加密,不過返回包還是明文。這個后續就需要我們對結果進行加密返回,再配合解碼器進行解碼。 

    冰蝎2流量分析

     先看下webshell對數據都做了哪些操作:

        特征是連接會get方式向服務端請求密匙。

    附一張經典圖及過程(來自網絡):

    • 首先客戶端以Get形式發起帶密碼的請求。
    • 服務端產生隨機密鑰,將密鑰寫入Session并將密鑰返回客戶端。
    • 客戶端獲取密鑰后,將payload用AES算法加密,用POST形式發送請求。
    • 服務端收到請求,用Session中的密鑰解密請求的Body部分,之后執行Payload,將直接結果返回到客戶端。

       16位長度字符特征,每次新連接都是get獲取兩次、之后正常通信。為什么是兩次呢?

    (參考:http://t.zoukankan.com/0daybug-p-12749547.html)

        后續發送的數據包是通過密匙進行加密的,所以我們反向用到的密匙進行aes解密,發現是base64編碼,再base64解一次即可看到傳輸的內容:

        整理下結果,從發送的內容看,是對返回的json字符串進行aes128加密:

        以下為返回包解碼后內容:

       其他特征:

    • 不論是get還是post請求,Content-Type字段總是application/x-www-form-urlencoded。常理來說,Get請求一般沒有這個字段值。
    • Accept字段與正常請求有差異,比較奇怪,這是源碼默認值導致的。

    冰蝎3流量分析

        webshell相比2代取消了密匙的交互,改為直接寫到webshell里:

        執行過程是客戶端post傳輸數據,webshell通過用key進行aes加密的流量。

    以執行whoami命令為例,aes解密后關鍵代碼如下:

        進入路徑通過一系列函數執行我們的命令,最終將結果以aes128加密的json格式返回,這點和2代一樣。

        對返回結果解碼可得:

        流量全程通過aes加密,下面是天眼流量告警展示:

        看其他師傅說還有些強特征如content-type為application/octet-stream:

        可惜我這里沒有抓到,可能是新版本修改了吧。

    哥斯拉流量分析

        先看下生成的種類,php異或加密:

        第一個就是最簡單的一句話。我們選第二個復雜一些的看看。秒了,暫且加白:

        特征是連接時會發3個數據包,第一個數據包巨大,并且返回內容為空:

        后續請求都是較少的流量。統一開頭都是明文pass,也就是我們設置的密碼:

         從webshell里可以看到,將post的數據進行base64解碼,再通過加密函數與key值進行異或運算:

        那我們提取函數解密看下發送了什么內容吧:

        第一次發送的包進行解碼,代碼中集成了很多函數及功能:

        第二個包內容:

        第三個包內容:

        第二個包是測試用的,除了首次包集成了很多功能,后續執行發送很小的流量,返回包也嚴格做了加密。

        前后各16位key和pass MD5后生產的固定字符串。

        天眼設備流量告警展示:


    流量webshell
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Webshell 檢測綜述
    2022-12-15 09:45:32
    通過Webshell,攻擊者可以在目標服務器上執行一些命令從而完成信息嗅探、數據竊取或篡改等非法操作,對Web服務器造成巨大危害。Webshell惡意軟件是一種長期存在的普遍威脅,能夠繞過很多安全工具的檢測。許多研究人員在Webshell檢測領域進行了深入研究,并提出了一些卓有成效的方法。本文以PHP Webshell為例。
    隨著加密技術的廣泛應用以及新型網絡技術的不斷更迭,網絡結構日趨復雜,加密流量呈現爆炸式增長,尤其隨著TLS1.3等加密協議的演進和推廣,全加密時代悄然來臨。加密技術在保護用戶隱私的同時也深刻改變了網絡安全威脅形勢,讓惡意服務有機可乘,而傳統的檢測技術路線在面對惡意加密流量時往往無能為力。在此背景下,基于加密流量的檢測與防御勢在必行。
    安全運營中的加密流量檢測技術
    入侵的通用處置流程
    云函數簡介 云函數是騰訊云為企業和開發者們提供的無服務器執行環境,可以無需購買和管理服務器的情況下運行代碼。只需使用平臺支持的語言編寫核心代碼并設置代碼運行的條件,即可在騰訊云基礎設施上彈性、安全地運行代碼。SCF是實時文件處理和數據處理等場景下理想的計算平臺。服務端配置云函數基礎配置選擇自定義創建,地域自選,部署模式,代碼部署,運行環境Python3.6,其余默認即可。
    用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留。查看下pid所對應的進程文件路徑,
    主流webshell工具流量分析
    下載地址:https://github.com/FunnyWolf/pystinger
    菜刀、冰蝎、蟻劍、哥斯拉的流量特征
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类