<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/12614

            0x00 前言


            數據隱藏已經滲透到了生活中的方方面面,之前一直對數據隱藏很有興趣,但是烏云上關于數據隱藏的文章偏少,看了隱寫術總結之后,我又去找了一些關于數據隱藏的資料,這里來與大家分享和總結下其他一些比較常見的隱藏手段,如果有寫錯的地方請直接指出,謝謝。

            0x01 vmdk隱寫


            vmdk文件大家應該都比較熟悉了,它本質上是物理硬盤的虛擬版,所以也會存在跟物理硬盤的分區和扇區中類似的填充區域,我們可以利用這些填充區域來把我們需要隱藏的數據隱藏到里面去,這樣可以避免隱藏的文件增加了vmdk文件的大小(如直接附加到文件后端),也可以避免由于vmdk文件大小的改變所帶來的可能導致的虛擬機錯誤。而且vmdk文件一般比較大,適合用于隱藏大文件。

            這里采用Dsfok-tools來對數據進行隱藏,通常這個工具是用來編輯vmdk文件中的描述符。從這里可以下載到該軟件。套件里包含了dsfi工具可以對vmdk文件進行嵌入。 我們首先來看下需要隱藏的文件和它的大小

            p1

            p2

            按照下載頁面的提示輸入命令

            p3

            嵌入完成后該vmdk文件依然是可以繼續使用,而且虛擬機并不會報錯。再來對嵌入的文件進行提取。

            p4

            p5

            這里要提醒的是,如果長期運行該虛擬機,隱藏在里面的數據是很有可能被覆蓋掉,但是如果僅僅是作為數據隱藏的載體,除了需要提取的那個人外誰又在意這個問題呢,或許別人還巴不得這樣。

            0x02 交換數據流


            Windows NTFS文件系統的交換數據流(ADS)也可以用于數據隱藏,對很多人來講或者已經很熟悉了,這里也來做個小小的總結給不了解的同學開個頭吧。

            交換數據流的誕生源于Windows系統與蘋果的HFS系統的交互需求,NTFS使用交換數據流來存儲文件相關元數據等等。

            創建交換數據流是很簡單的

            p6

            并輸入This is hidden file

            dir當前目錄是找不到剛才編輯的那個文件的,只有一個0字節的visiable.txt

            p7

            要用記事本打開打開剛才那個文件直接輸入相同的命令就行了

            在web安全中有時候還用得上ADS,如:

            pkav之當php懈垢windows通用上傳缺陷

            當時在網上看資料的時候發現其實有不少人理解錯了該漏洞的含義,原因就是不清楚ADS

            對于 IIS6.0+PHP、IIS7.5+asp、IIS7.5+php 環境下,如果某目錄通過 HTTP Basic 來認證,假設其目錄下有 index.php 文件,我們可以通過構造如下方式來繞過認證直接訪問其目錄下的文件。

            #!bash
            /admin::$INDEX_ALLOCATION/index.php
            /admin:$i30:$INDEX_ALLOCATION/index.asp
            

            ADS結合保留設備名來進行綁定,如:CON、NUL、COM1等等,這樣在一些情況下可以避開某些軟件對交換數據流的檢測。

            使用這些保留設備名作為目錄名或文件名的時候會被系統提示錯誤,但我們可以使用\\?\來取消字符串的解析(通常這種方法用于Windows API編程),這樣就可以創建以保留設備名為名的文件或目錄

            如:綁定cmd.exe到NUL文件

            p8

            用wmic來運行即可

            p9

            p10

            關于ADS在web安全中的利用的資料:
            http://pan.baidu.com/s/1dDo9iQP 提取碼:1bft

            xfocus上關于ADS的文摘:
            http://www.xfocus.net/articles/200212/466.html

            0x03 TCP中的數據隱藏


            我們都知道TCP的典型3次握手

            p11

            我們可以利用該過程對數據進行隱藏發送,如:

            1. 發送方和接受方規定一個常數X
            2. 發送方把要發送的每個字符的ASCII值*X并放在SYN字段中進行發送
            3. 接受方把接受到的SYN值除以常數X獲得該字符的ASCII值

            這種方法存在明顯的局限性,就是每次只能傳送1到2個字節,但是如果是用在隱藏發送短密鑰或者短消息之類的不妨也是個好的方法。

            0x04 可執行文件中隱藏


            相比于jpeg文件來說,可執行文件能隱藏數據的空間非常小,jpge圖像每17個字節就可以隱藏1個字節,而對于可執行文件則是每150個字節才可以隱藏1個字節。對于可執行文件的數據隱藏可以使用Hydan,不過不得不說這個軟件有點老,而且有時候還可能引入運行時錯誤。

            0x05 在TTL字段中隱藏


            IP報文在路由間穿梭的時候每經過一個路由,TTL就會減1,當TTL為0的時候,該報文就會被丟棄。TTL所占的位數是8位,也就是0-255的范圍,但是在大多數情況下通常只需要經過很小的跳數就能完成報文的轉發,遠遠比上限255小得多,所以我們可以用TTL值的前兩位來進行傳輸隱藏數據。

            如:須傳送H字符,只需把H字符換成二進制,每兩位為一組,每次填充到TTL字段的開頭兩位并把剩下的6位設置為1(xx111111),這樣發4個IP報文即可傳送1個字節。

            0x06 后記


            數據隱藏的范圍實在是太大,除了用來在傳輸中隱藏數據外,還可以用于作為一種防護手段,給文檔等提供標識等。希望大家能在烏云更多地交流關于數據隱藏方面的知識,相信你也會發現研究數據隱藏的樂趣的。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线