亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Volatility的圖形化用戶界面的實現(xiàn)和應(yīng)用

        2021-04-01 14:04:25李嘉鑫張國榮梁成輝唐遠(yuǎn)新翟繼強
        計算機與網(wǎng)絡(luò) 2021年1期

        李嘉鑫 張國榮 梁成輝 唐遠(yuǎn)新 翟繼強

        摘要:Volatility是一個基于Python語言的開源內(nèi)存取證框架,因功能強大而廣泛應(yīng)用在計算機內(nèi)存取證和分析領(lǐng)域。針對Volatility基于命令行用戶界面(CLI)參數(shù)繁多和使用不便的問題,使用Visual Studio 2016 C++集成開發(fā)環(huán)境,在詳細(xì)分析Volatility命令數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,利用匿名管道和進(jìn)程執(zhí)行技術(shù)設(shè)計,實現(xiàn)了一個通用的Windows圖形用戶界面的Volatility操作程序,中文界面、交互性強,方便用戶對內(nèi)存轉(zhuǎn)儲文件進(jìn)行解析和研究。

        關(guān)鍵詞:取證;Volatility;命令行用戶界面;圖形用戶界面

        中圖分類號:TP393文獻(xiàn)標(biāo)志碼:A文章編號:1008-1739(2021)01-60-4

        0引言

        內(nèi)存取證作為計算機取證科學(xué)的重要分支,是指從計算機物理內(nèi)存和頁面交換文件中查找、提取、分析易失性證據(jù),是對傳統(tǒng)基于文件系統(tǒng)取證的重要補充,是對抗網(wǎng)絡(luò)攻擊或網(wǎng)絡(luò)犯罪的有力武器[1]。Volatility是一個使用Python語言編寫的內(nèi)存取證工具的框架[2],可以對現(xiàn)有絕大多數(shù)操作系統(tǒng)進(jìn)行內(nèi)存取證分析,并且支持多種內(nèi)存鏡像格式。

        但是Volatility作為一款基于CLI的命令行工具[3],只能通過手動輸入命令來使用各種功能,并且命令種類繁雜,每種命令還包含多個參數(shù),對于非專業(yè)人士來說難于使用。

        因此本文提出使用Visual Studio 2016 C++集成開發(fā)環(huán)境[4]設(shè)計和實現(xiàn)一個Windows平臺上運行的Volatility圖形化界面操作程序,用戶可以利用本程序方便快速地進(jìn)行內(nèi)存分析和取證。

        1系統(tǒng)設(shè)計

        Volatility圖形化界面操作程序采用Windows的窗口消息機制進(jìn)行構(gòu)建,免去了多余的第三方依賴。同時,為了能夠讓非專業(yè)人士方便快速地進(jìn)行內(nèi)存分析和取證,設(shè)計了一套簡單且高效的操作模式替代原本繁雜的手工指令輸入操作。

        界面全部采用圖形化操作,為了以線性方式更為直觀地進(jìn)行操作,系統(tǒng)將操作步驟劃分為打開鏡像文件、選擇鏡像信息、選擇操作命令和設(shè)置命令參數(shù)。系統(tǒng)整體的運行流程是接收用戶輸入、構(gòu)建命令文本、執(zhí)行命令及取回執(zhí)行結(jié)果,主要分為構(gòu)建模塊和控制模塊,其中構(gòu)建模塊負(fù)責(zé)處理用戶輸入以及構(gòu)建對應(yīng)的操作命令,控制模塊負(fù)責(zé)使用操作命令對Volatility進(jìn)行控制并取回運行結(jié)果。

        1.1操作命令的構(gòu)建

        Volatility作為一個功能強大的內(nèi)存取證框架,支持多種命令,不同的命令對應(yīng)的參數(shù)字段又各有不同。為了實現(xiàn)可視化的命令構(gòu)建并且減少重復(fù)的樣板代碼,必須提高代碼的抽象程度。這就要求程序?qū)τ诓煌拿顟?yīng)該采取統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)進(jìn)行抽象,并且能夠根據(jù)該數(shù)據(jù)結(jié)構(gòu)繪制出對應(yīng)的配置面板。

        本模塊包括三部分:

        (1)數(shù)據(jù)結(jié)構(gòu)的設(shè)計

        Volatility操作命令包含命令名、命令描述和多個命令參數(shù),操作命令的數(shù)據(jù)結(jié)構(gòu)如下:

        分別定義了該參數(shù)在窗后標(biāo)簽上提示的文本、構(gòu)成實際命令的參數(shù)文本、該參數(shù)是單選參數(shù)或多選參數(shù)(如指定進(jìn)程標(biāo)識符和指定進(jìn)程名稱都是單選參數(shù),在構(gòu)成命令時只能取其中的一個;而顯示詳細(xì)信息就是多選參數(shù),可以附加在單選參數(shù)后)、負(fù)責(zé)選定參數(shù)的控件、參數(shù)是否默認(rèn)選定、參數(shù)值的提供類型(如使用下拉框或文本框提供)、負(fù)責(zé)參數(shù)值的控件、下拉框的默認(rèn)內(nèi)容以及值的檢查類型(如整數(shù)、十六進(jìn)制數(shù)、字符串等)。

        通過以上數(shù)據(jù)結(jié)構(gòu),可以把Volatility支持的命令統(tǒng)一且完整地錄入至程序中。

        (2)配置面板的繪制

        選擇不同命令后應(yīng)該根據(jù)命令本身的使用方法繪制出對應(yīng)的配置面板。首先清空當(dāng)前面板,重新初始化上一次選擇命令后的現(xiàn)場,然后根據(jù)該命令參數(shù)的個數(shù)來調(diào)整整個面板的布局,最后根據(jù)每個命令參數(shù)調(diào)出對應(yīng)的選擇控件和輸入控件。

        (3)構(gòu)建命令文本

        通過上一節(jié)的操作,用戶在設(shè)置完成參數(shù)后,點擊運行會生成對應(yīng)的命令文本,構(gòu)建命令時會使用參數(shù)數(shù)據(jù)結(jié)構(gòu)中的pszParam字段以及用戶在面板中輸入或選定的值進(jìn)行拼接,還要使用參數(shù)數(shù)據(jù)結(jié)構(gòu)中的ValidationType字段進(jìn)行對應(yīng)的輸入檢查(如整數(shù)或十六進(jìn)制數(shù)格式的檢查)。

        1.2使用操作命令對Volatility的控制

        Volatility是一款基于命令行操作的內(nèi)存取證框架,使用給定參數(shù)啟動后會把相應(yīng)結(jié)果輸出至標(biāo)準(zhǔn)輸出,為了讓圖形界面得到結(jié)果需要將Volatility的結(jié)果輸出重定向。

        (1)創(chuàng)建子進(jìn)程用于運行Volatility

        主進(jìn)程本身已經(jīng)負(fù)責(zé)圖形界面的運行,不能用于實際運行Volatility,否則在等待Volatility運行時圖形界面會失去響應(yīng),必須使Volatility運行在新建的子進(jìn)程中。

        創(chuàng)建進(jìn)程需要使用CreateProcess函數(shù),其函數(shù)定義如下:

        下面只介紹程序中用到的參數(shù),其余參數(shù)均為默認(rèn)值NULL。

        參數(shù)lpCommandLine指定子進(jìn)程運行程序的命令行文本,在參數(shù)lpApplicationName為NULL時必須包含要運行的應(yīng)用程序文件名;參數(shù)bInheritHandles指定創(chuàng)建的子進(jìn)程是否可以繼承父進(jìn)程擁有的句柄;參數(shù)dwCreationFlags指定創(chuàng)建的子進(jìn)程的創(chuàng)建標(biāo)志,如CREATE_NEW_CONSOLE和CREATE_NO_WINDOW分別表示子進(jìn)程需要新的控制臺和子進(jìn)程無需啟動窗口;參數(shù)lpStartupInfo指定預(yù)設(shè)置啟動信息結(jié)構(gòu)體的指針,啟動信息結(jié)構(gòu)體標(biāo)識進(jìn)程啟動時的初始信息,如標(biāo)準(zhǔn)輸入句柄、標(biāo)準(zhǔn)輸出句柄、標(biāo)準(zhǔn)錯誤句柄等;參數(shù)lpProcessInformation指定接受進(jìn)程信息結(jié)構(gòu)體指針。

        (2)創(chuàng)建匿名管道傳遞Volatility運行結(jié)果

        在創(chuàng)建進(jìn)程時設(shè)置的啟動信息結(jié)構(gòu)體包含關(guān)于標(biāo)準(zhǔn)輸出句柄和標(biāo)準(zhǔn)錯誤句柄的設(shè)置,為了重定向Volatility的運行結(jié)果,需要創(chuàng)建匿名管道用于子進(jìn)程向父進(jìn)程傳遞結(jié)果。

        創(chuàng)建管道需要使用CreatePipe函數(shù)[5],其函數(shù)定義如下:

        參數(shù)hReadPipe和hWritePipe分別指定接收管道讀寫句柄的指針;參數(shù)lpPipeAttributes指定安全參數(shù)結(jié)構(gòu)體指針,該結(jié)構(gòu)體標(biāo)識了管道句柄是否可以被新進(jìn)程繼承。

        父進(jìn)程使用CreatePipe函數(shù)創(chuàng)建匿名管道后使用CreateProcess函數(shù)創(chuàng)建子進(jìn)程,并在啟動信息結(jié)構(gòu)體中指明輸出重定向至匿名管道的寫入句柄,父進(jìn)程就可以使用ReadFile函數(shù)讀取匿名管道中Volatility的運行結(jié)果。

        2應(yīng)用測試

        應(yīng)用測試中,程序運行于Windows 10 64位主機上,測試鏡像為Windows 7 32位的系統(tǒng)內(nèi)存鏡像[6],目標(biāo)是提取系統(tǒng)鏡像中的敏感資產(chǎn),如圖1所示。

        使用pslist命令獲取當(dāng)前系統(tǒng)鏡像中的所有進(jìn)程信息,可以看到,存在iexplore.exe,notepad.exe,mspaint.exe,TrueCrypt.exe等進(jìn)程,如圖2所示。

        使用netscan命令查看系統(tǒng)鏡像的網(wǎng)絡(luò)連接情況和套接字信息,分析后沒有異常,如圖3所示。

        在分析網(wǎng)絡(luò)連接無異常之后,可以對cmd歷史命令進(jìn)行提取,如圖4所示。

        最為關(guān)鍵的是,可以使用memdump命令來提取以上可疑進(jìn)程的dmp數(shù)據(jù)。

        在notepad.exe進(jìn)程數(shù)據(jù)中成功獲取一個非偽加密的zip壓縮包文件,嘗試爆破密碼無果,使用strings命令對原始數(shù)據(jù)敏感信息進(jìn)行過濾分析操作,strings -e l ./3524.dmp| grep "pan"-B 5 -A 5>notepad.txt,如圖5所示。

        在對加密磁盤軟件TrueCrypt.exe程序提取之后,將其掛載至主機磁盤,可以獲取key,如圖6所示。

        至此,通過內(nèi)存取證軟件對目標(biāo)系統(tǒng)鏡像完成了敏感資產(chǎn)的搜集與提取測試工作。

        3結(jié)束語

        針對Volatility只能進(jìn)行輸入繁瑣命令的問題,使用Visual Studio C++語言設(shè)計和實現(xiàn)了一個通用的Windows圖形化界面操作程序,測試結(jié)果表明,可以方便實現(xiàn)Windows平臺下Volatility內(nèi)存取證框架的快速使用,更好地發(fā)揮Volatility內(nèi)存取證框架強大的取證分析能力。

        參考文獻(xiàn)

        [1]張瑜,劉慶中,李濤,等.內(nèi)存取證研究與進(jìn)展[J].軟件學(xué)報, 2015,26(5):1151-1172.

        [2] LIGH M H,CASE A,LEVY J,et al..The Art of Memory Forensics [M].Indianapolis:Wiley,2014.

        [3] MICHALAS A,MURRAY R.MemTri: A Memory Forensics Triage Tool Using Bayesian Network and Volatility[C]//The 9th ACM CCS International Workshop on Managing Insider Security Threats.Dallas:ACM,2017:57-66.

        [4]孫鑫.VC++深入詳解:第3版[M].北京:清華大學(xué)出版社, 2019.

        [5]王耀輝.Windows匿名管道技術(shù)及DOS命令重定向技術(shù)在可視化系統(tǒng)集成中的應(yīng)用[J].長春工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2012,33(3):274-277.

        [6]翟繼強,肖亞軍,楊海陸,等.基于內(nèi)存池標(biāo)記快速掃描技術(shù)的Windows內(nèi)核驅(qū)動對象掃描[J].西北工業(yè)大學(xué)學(xué)報,2019,37(5):1044-1052.

        自拍偷自拍亚洲精品情侣| 狠狠综合久久av一区二区三区| 中文字幕乱码亚洲三区| 人妻精品久久久久中文字幕| 女优av一区二区在线观看| 狠狠色丁香婷婷久久综合| 亚洲av综合日韩| 日韩国产成人精品视频| 国产av一区二区内射| 男人天堂这里只有精品| 在线看片免费人成视频久网下载 | 国产一区二区三区爆白浆| 亚洲国产精品久久性色av| 女人的精水喷出来视频| 午夜福利麻豆国产精品| 91国在线啪精品一区| 久久精品国产久精国产69| 青青草伊人视频在线观看| 日韩av毛片在线观看| 久久久老熟女一区二区三区| 澳门精品无码一区二区三区 | 婷婷久久亚洲中文字幕| 99在线精品免费视频| 三上悠亚av影院在线看| 无码一区二区三区在| 成人av毛片免费大全| 少妇内射兰兰久久| 初高中生精品福利视频| 国产黄色看三级三级三级| 人禽杂交18禁网站免费| 亚洲乱码av中文一区二区| 2017天天爽夜夜爽精品视频| 国产69精品麻豆久久| 热久久国产欧美一区二区精品 | 国产高清白浆| 老女人下面毛茸茸的视频| 日本最新免费二区| 欧美在线专区| 亚洲精品中文字幕码专区| 欧美老妇交乱视频在线观看| 伴郎粗大的内捧猛烈进出视频观看|