<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>

    Windows命令混淆

    VSole2021-09-18 08:53:14

    windows命令混淆

    最近有些朋友問我一些免殺問題,由于個人技術有限,對靜態免殺有些了解(動態免殺真的不會,太菜了),所以就總結了一些Windows中cmd的命令混淆思路,靜態免殺無非就是對安全設備檢測到代碼(命令)中的特征字符進行查殺、過濾,首先做的就是對于特征字符的處理,隨后就是對環境中限制的字符替換或混淆,從而達到免殺效果。

    (1) 選項字符替換

    CMD命令中可以執行ping 命令,該命令是由unix系統移植過來的,幫助頁面建議命令行選項應使用連字符作為選項字符,例如ping -n 1 127.0.0.1. 這與大多數其他使用正斜杠的 Windows 原生命令行工具不一致。大概是為了幫助有疑問的用戶,該程序還接受正斜杠作為選項比如 ping /n 1 127.0.0.1也能運行的。

    大多數使用連字符的內置 Windows 可執行文件也接受正斜杠,但有的命令卻不可以,例如find /i keyword,該命令將顯示包含單詞“keyword”的所有文件,但find -i keyword會提示語句錯誤。

    (2) 字符替換

    Unicode修飾符替換

    另一種方法是用類似的字符替換命令行中的其他字符(即除了選項字符之外)。特別是當你考慮整個 Unicode 范圍時,在某些進程可能接受的 ASCII 范圍中還發現了許多字母變體。

    涉及到的 Unicode 字符? ? ? ? ? ? ? ? ?

    ? 修飾字母小寫 W

    ? 修飾字母小寫 Y

    ? 修飾字母小寫 H

    ? 帶鉤的修飾字母小寫 H

    ? 修飾字母小寫 J

    ? 修飾字母小寫 R

    ? 修飾字母小寫 L

    ? 修飾字母小寫 S

    ? 修飾字母小寫 X

    Unicode 包含一個間距修飾字母范圍(0x02B0 - 0x02FF) [ 4 ],其中包括 ?、? 和 ? 等字符。一些命令行解析器將它們識別為字母并將它們分別轉換回 l、x 和 s。這方面的一個例子是reg,它將reg export HKCU out.reg和reg e?port HKCU out.reg視為平等。

    因為編碼問題顯示 ? 為方框

    逗號、分號替換空格

    使用 ; (分號) 和 , (逗號)替換合法空格,但是在某些命令中無法替換,例如:net user會提示語法錯誤。

    (3) 字符插入

    同樣,有時可以在命令行中插入額外的字符,這些字符將被執行程序忽略。例如,某些可執行文件可能會刪除不可打印的字符,同時也可能會過濾掉某些可打印的字符。

    例如,Windows 事件日志工具wevtutil似乎接受在隨機位置插入某些范圍內的 Unicode 字符(?)的命令行。因此執行wevtutil gli hardwareeventsandwevtutil g?li hardwareevents將產生完全相同的輸出,盡管后者在第一個參數的中間包含一個阿拉伯字母。

    還有常見的 ^ 轉義字符插入

    插入多個(),也不會影響命令運行

    (4) 行情插入

    在保持流程完整的同時操縱命令行的另一種方法是插入引號。盡管這聽起來像是先前技術的一個子集,但這里的要求是引號成對出現。

    您可能熟悉在參數周圍加上引號的概念。就拿dir "c:\windows"例如,這是有效的一樣dir c:\windows\,由于缺乏空間。大多數程序都接受這個約定。鮮為人知的是,大多數程序在任意位置接受引號:該命令dir c:"win"d""ow"s"也可以工作。只要每個參數的引號數是偶數并且后面的引號不超過兩個,大多數程序似乎都接受這一點。

    (5) 環境變量

    在cmd命令行中支持設置環境變量和自定義變量,使用環境變量中的值或字符串可以拼接成想要的命令。例如whoami,將am 設置變量為 t,將命令拼接成who%t%i,執行成功。

    利用@在cmd中的特性,@表示后面的命令不顯示執行

    (6) 參數縮寫

    插入和替換字符后,我們還需要嘗試刪除字符。一些應用程序允許為其他冗長的命令行選項提供“速記”,從而更容易記住這些命令,或者縮短命令字符個數。

    這是基于 Unix 的工具(例如grep -i keywordvs grep --ignore-case keyword)中的一個眾所周知的概念,但在 Windows 上則不然。然而,一些程序接受縮短的版本。有些程序采用與 Unix 類似的方法并接受單字母版本(例如cmdkey /lvs cmdkey /list),有些程序接受其他縮寫版本(例如wevtutil glivs wevtutil get-loginfo),而其他程序則采用“通配符方法”。這方面的一個例子是 PowerShell,它的許多關鍵字允許您在關鍵字 [ 5 ]的末尾省略一個或多個字符。

    需要注意的是有些命令的縮寫會出現一些沖突。可以查看powershell相關文檔。

    免殺的方法有很多,只要思路靈活,靜態免殺很容易的。

    命令混淆工具已經有好多大佬開發出來了,詳細用法大家可以自己研究(網上已經有很多了),命令混淆過靜態免殺很簡單,在這里提供一個簡單的樣例供大家參考。

    下載地址:https://github.com/danielbohannon/Invoke-DOSfuscation

    大概使用方法也很簡單。

    下載文件后再當前目錄運行powershell,導入使用的模塊 Import-Module .\Invoke-DOSfuscation.psd1 ;

    再運行程序Invoke-DOSfuscation ;

    可以查看工具的基本使用方法TUTORIAL

    1.Set command ______ //設置需要混淆的命令

    2.Set FINALBINARY______ //設置命令運行的環境

    3.加載混淆模塊,(可以查看下當前目錄下的文件夾,不同文件有不同的混淆效果)

    4.使用show命令查看當前命令設置的參數情況

    5. 可以使用test命令再當前窗口進行測試混肴過后的命令;

    6.復測下再cmd 中運行的結果;

    代碼混淆免殺
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    突破安全策略上線CS
    2021-10-29 08:09:17
    0x01 環境簡述&說明web打點getshell,webshell是冰蝎,權限為.net,權限很低,服務器為server 2016,目標不出網!0x02 為什么要上線cswebshell權限太低,限制性大,需要上線cs提權,因為cs是采用反射dll來加載pe程序,從而在執行一些敏感操作的時候能起到一定的bypass作用,例如mimikatz抓密碼等操作。
    知識匯總
    2021-08-25 23:11:00
    知識匯總
    powershell之路
    2021-07-12 21:46:00
    Windows PowerShell 是一種命令行外殼程序和腳本環境,使命令行用戶和腳本編寫者可以利用 .NET Framework的強大功能
    經外部專家歷時兩周的溯源,最終報告出來了。上文提到的“實時防護”是主流軟的三大功能之一,其他兩個是文件掃描與主動防御。實時防護與文件掃描都是基于特征的文件檢測技術,主要針對寫入硬盤的文件進行檢測。整個過程中沒有新的惡意文件寫盤,且Shellcode也只會駐留在內存中,不會寫盤,所以,到目前為止軟都檢測不到,更不會告警。將給公司帶來不可預估的后果。
    JSP Webshell的檢測工具
    2021-12-13 12:04:53
    在11月初,我做了一些JSP Webshell的研究,主要參考了三夢師傅開源的代碼。然后加入了一些代碼混淆手段,編寫了一個馬生成器JSPHorse,沒想到在Github上已收獲500+的Star
    “主機痕跡清除”可作為指標性技術告警,痕跡清理通常是作為入侵后的收尾工作,即避免攻擊行為被發現。以上兩種方式結合,能夠有效的發現及避免“水坑式攻擊”。
    上網搜索這個hdhcms是開源的,我們下載源碼,搜索我們需要利用的文件。上線后第一步,查看自己所獲取的權限whoami。可惜,
    前言在系統被入侵后,需要迅速梳理出黑客的攻擊路徑,本文總結windows系統攻擊溯源過程中必要的排查范圍。排查項目用戶查看當前登錄用戶query user
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类