十分鐘學會惡意樣本分析,一眼看透無所遁形

2021-01-07 中文科技資訊

  一、關於惡意軟體

  惡意軟體是嘗試破壞計算機、搜集敏感信息或者非法訪問其他計算機的軟體, 它對個人隱私信息、商業機密甚至是國家安全都會造成很大的威脅。

  2017年WannaCry勒索病毒的爆發,是迄今為止最嚴重的勒索病毒事件,至少150個國家、30萬名用戶中招,造成損失達80億美元;Conficker蠕蟲病毒感染數千萬臺電腦,史上襲擊範圍最廣的Conficker蠕蟲病毒曾感染了全球200多個國家的數千萬臺Windows個人電腦。

  本期「安仔課堂」,ISEC實驗室吳老師跟大家一起針對惡意軟體進行分析,了解其行為特徵,十分鐘學會惡意樣本分析,一眼看透無所遁形。

  Cuckoo sandbox是一個開源的惡意文件自動化分析系統,採用Python和C/C++開發,跨越Windows、Android、Linux和Darwin四種作業系統平臺,支持二進位的PE文件(exe、dll、com)、PDF文檔、Office文檔、URL、HTML文件、各種腳本(PHP、VB、Python)、JAR包、Zip文件等等幾乎所有的文件格式,能分析惡意文件的靜態二進位數據和動態運行後的進程、網絡、文件等行為,對於惡意文件的初步分析定性具有很大幫助。

  Cuckoo的分析結果包含如下內容:

  (1)函數以及API調用的Call Trace;

  (2)應用拷貝和刪除的文件;

  (3)選定進程的內存鏡像;

  (4)分析機的full memory dump;

  (5)惡意軟體執行時的截屏;

  (6)分析機產生的網絡流量。

  二、Cuckoo的部署

  下圖是Cuckoo的部署,分為host和guests。

  圖1

  1.Host(管理機)

  負責管理guests、啟動分析工作、網絡流量收集等。

  host依賴一些開源軟體,例如tcpdump用於Guest網絡攔截、Volatility用於內存的dump。

  2.Guest(虛擬機)

  Guest是通用的虛擬機,Xen、VirtualBox等。它運行Cuckoo的Agent,接收Host發過來的任務(文件)運行後獲取信息。

  Agent是跨平臺的Python腳本,可以在Windows、Linux和MAC OS上運行。它實際是一個XMLRPC server,等待連接。

  三、Host環境搭建

  1.安裝Cuckoo

  $ sudo pip install -U pip setuptools

  $ sudo pip install -U cuckoo

  2.資料庫依賴庫

  (1)如要使用Cuckoo sandbox自帶web程序,需安裝mongodb;

  (2)Cuckoo sandbox默認使用sqlite資料庫,如要使用mysql,需安裝mysql和MySQL-python。

  3.網絡數據包捕獲

  Host使用tcpdump捕獲網絡數據包

  (1)安裝tcpdump

  $ sudo apt-get install tcpdump

  (2)啟用root帳戶

  $ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

  (3)驗證啟用是否成功

  $ getcap /usr/sbin/tcpdump /usr/sbin/tcpdump=cap_net_admin,cap_net_raw+eip

  4.虛擬機軟體

  Cuckoo sandbox支持多種虛擬機,包括vmware、virtualbox、esx、kvm、vsphere、xenserver,選擇一種你最熟悉的。

  此處簡單介紹virtualbox的安裝:Virtualbox是開源軟體,功能可滿足Cuckoo sandbox的使用。

  安裝命令:

  $ sudo apt-get install virtualbox

  四、Guest環境搭建

  本文主要講Windows惡意文件分析環境,所以Guest為Windows作業系統。 Guest支持winxp和win7,使用win7時,需關閉User Access(用戶帳戶控制)。

  下面以win7為例,講述安裝過程:

  1.win7虛擬機安裝

  使用Host中已安裝的虛擬機軟體,安裝win7虛擬機。

  注:win7虛擬機無需打補丁,無需安裝殺毒軟體、安全衛士

  2.Python運行環境

  (1)2.7.6以上任何一個穩定的2.7版本都可以,(2)PIL(Python Image Library)用於惡意文件運行過程中對桌面進行截屏,安裝版本需與Python庫版本一致。

  3.win7環境配置

  (1)關閉Windows自動更新;(2)關閉Windwos防火牆;(3)關閉用戶帳戶控制。

  4.網絡環境配置

  (1)使用Host-Only(僅主機模式)上網方式;注: virtualbox需手動新建Host-Only模式,如下圖:

  圖2

  (2)將win7網絡地址配置到Host-Only模式網段;(3)保證Host和Guest能正常通信,可使用ping命令測試 ;(4)現在許多惡意文件都需要網絡環境才能運行,所以還需將win7配置到能訪問外部網絡環境。Cuckoo sandbox使用iptables配置轉發規則,假如:eth0為ubuntu連接外部網絡的網卡,vboxnet0虛擬機選擇Host-Only的虛擬網卡(virtualbox為vboxnet0)。

  5.win7偽裝環境

  (1)安裝基礎的運行庫,如java、python、.net等;(2)安裝2005-2015的vc運行庫;(3)安裝MS-Office套件(office 2007/office 2010)、PDF閱讀器等文檔軟體 (Adobe Reader);(4)安裝生活常用的聊天(QQ/微信)、聽歌(QQ音樂/酷狗/酷我)軟體。

  6.安裝agent.py

  (1)將agent目錄下的agent.py拷貝至win7文件系統,位置無嚴格要求;

  (2)將agent.py修改成agent.pyw,並添加至開機啟動項,agent.pyw為無界面模式;

  (3)運行agent.pyw。

  7.保存win7快照

  (1)在agent.pyw運行的狀態下,保存win7快照,記錄win7的ip地址和快照名稱; (2)確認agent.pyw:在進程列表查看進程名為pythonw的進程。

  五、樣本分析

  1.啟動Cuckoo服務

  $cuckoo

  2.開啟web服務

  另開一個指令窗口運行

  $cuckoo web runserver

  打開瀏覽器,輸入網址127.0.0.1:8000進入web操作界面。

  網頁伺服器運行起來後界面如下:

  圖3

  上傳測試樣本,操作如下圖:

  圖4

  跳轉到樣本分析設置界面,左側是分析參數設置,可以默認或修改參數;中間是要測試的樣本,需要選中;然後點擊右側「Analyze」按鈕,開始分析。

  圖5

  提交測試後,有pending、running、completed、reported等多種狀態。運行完,會顯示reported狀態。

  圖6

  點擊樣本,進入測試報告。紅框1,顯示可測試後樣本的行為,有數字的部分表示樣本有對應的行為;紅框2,展示樣本的基本信息;紅框3,樣本運行的基本信息;紅框4,樣本運行時的屏幕截圖。

  圖7

  左側選擇「Dropped Files」,顯示如下圖。右側紅框2,顯示樣本釋放的文件。

  圖8

  左側選擇「Process Memory」,顯示如下圖。右側紅框2,顯示樣本中所包含的URL連結。

  圖9

  左側選擇「Behavioral Analysis」,顯示如下圖。紅框2展示了具體的行為,可通過紅框3中的搜索功能或紅框4進行篩選。

  圖10

  惡意樣本一般包含創建文件和修改註冊表的行為。先試著查找創建文件的行為。在搜索框輸入「NtCreateFile」,搜索,如下圖。圖中有兩個明顯的可疑行為,紅框1中對自身樣本進行複製,紅框2中,釋放了一個beep.sys的驅動。

  圖11

  嘗試搜索修改註冊表信息。在搜索框輸入「RegSetValueExA」,搜索,如下圖。紅框中,可以看到服務的鍵值指向了剛才釋放的exe程序路徑。

  圖12

  六、Cuckoo行為監控工作原理

  Cuckoo sandbox在樣本啟動的時候,注入了相關的監控代碼。

  在process.py文件中,通過Process調用,調用inject-x86.exe或inject-x64.exe完成注入。

  圖13

  圖14

  這兩個工具是inject.c編譯的針對32位和64位系統的不同版本。

  下面看一下inject.c的具體代碼:

  在main中給出了可配置參數,需要帶參數運行。Pid是必須要包含的參數,其他參數視需要進行配置。

  圖15

  Inj_mode由以下三個參數決定,然後執行相應的函數。

  圖16

  加載完參數完成準備工作,開始DLL注入。

  圖17

  函數write_data,通過VirtualAllocEx和WriteProcessMemory在遠程進程中申請空間的方式寫入參數,並返回申請的地址。

  圖18

  APC注入,通過write_data向遠程進程中寫入DLL路徑、Loadlibrary()執行函數指針、執行加載函數的指針,然後利用QueueUserAPC()在軟中斷時向線程的APC隊列插入Loadlibrary()執行函數指針,達到注入DLL的目的。當線程再次被喚醒時,此線程會首先執行APC隊列中被註冊的函數。

  圖19

  注入成功。

  另一種CRT注入:

  同樣通過write_data向遠程進程中寫入DLL路徑、Loadlibrary()執行函數指針、執行加載函數的指針,之後在create_thread_and_wait中調用CreateRemoteThrea。當目標進程中執行load_library_woker(已事先寫入進程空間)加載DLL,之後調用free_data清理現場,釋放空間。

  圖20

  圖21

  注入的DLL在加載時執行初始化和Hook動作。

  圖22

  在monitor_init中

  圖23

  圖24

  圖25

  在monitor_hook中,通過sig_hooks獲取到需要hook的函數信息,調用hook函數進行hook。

  圖26

  Hook完之後,樣本調用系統函數時,會先跳到事先準備好的API中,記錄好API的相關信息後,再正常調用原API,保證樣本正常運行。

  安勝作為國內領先的網絡安全類產品及服務提供商,秉承「創新為安,服務致勝」的經營理念,專注於網絡安全類產品的生產與服務;以「研發+服務+銷售」的經營模式,「裝備+平臺+服務」的產品體系,在技術研究、研發創新、產品化等方面已形成一套完整的流程化體系,為廣大用戶提供量體裁衣的綜合解決方案!

  ISEC實驗室作為公司新技術和新產品的預研基地,秉承「我的安全,我做主」的理念,專注於網絡安全領域前沿技術研究,提供網絡安全培訓、應急響應、安全檢測等服務。

  2018年

  承擔全國兩會網絡安保工作;

  承擔青島上合峰會網絡安保工作。

  2017年

  承擔全國兩會網絡安保工作;

  承擔金磚「廈門會晤」網絡安保工作;

  承擔北京「一帶一路」國際合作高峰論壇網絡安保工作;

  承擔中國共產黨第十九次全國代表大會網絡安保工作;

  承擔第四屆世界網際網路大會網絡安保工作。

  2016年

  承擔全國兩會網絡安保工作;

  為貴陽大數據與網絡安全攻防演練提供技術支持;

  承擔G20峰會網絡安保工作;

  承擔第三屆世界網際網路大會網絡安保工作。

  2015年

  承擔第二屆世界網際網路大會網絡安保工作。

  不忘初心、砥礪前行;未來,我們將繼續堅守、不懈追求,為國家網絡安全事業保駕護航!

相關焦點

  • 讓網絡侵權盜版無所遁形 河南省「劍網2020」專項行動啟動
    大河網訊(政務記者 安豔鴿)讓網絡侵權盜版無所遁形。加大新聞作品版權保護力度,進一步規範圖片市場版權傳播秩序,關閉一批惡意侵權社交平臺帳號。在線教育版權專項整治。加大「學習強國」學習平臺版權保護力度,大力整治在線教育培訓中存在的侵權盜版亂象,切斷盜版網課灰色產業鏈條,為大中小學網絡教學和廣大網民在線教育培訓提供良好的網絡版權環境。鞏固重點領域版權治理成果。
  • 「天羅地網」讓安全違規行為無所遁形
    該項目安全標準化採用定型化VR安全體驗館、塔吊吊籠、氧氣乙炔瓶推車、焊機吊籠、樓梯等標準化防護模式;群塔作業防碰撞系統、施工電梯人臉識別、LED顯示屏播放事故案例、無人機巡查、現場揚塵監控系統等安全科技創新方式,建起「天羅地網」讓安全違規行為無所遁形。
  • 太赫茲安檢儀:借你「一雙慧眼」讓違禁品無所遁形
    今年2月份,無接觸測溫安檢一體機在合肥地鐵一亮相就引發關注。這種無接觸測溫安檢一體機看起來貌不驚人,但它同時具備太赫茲安檢、紅外測溫功能,僅需被檢人員正常步行通過安檢區域,即可完成安檢及測溫,所有違禁品在它面前無所遁形,實現全過程「無接觸」。據悉,這種神奇的儀器,就來自於合肥高新區一家企業。太赫茲,這個有點拗口的名詞是什麼?它有哪些神奇之處?
  • 打開貝殼,一切孤獨將無所遁形
    打開貝殼,一切孤獨將無所遁形 ——外國詩歌在當代的漢語翻譯,兼談馬茲洛夫詩歌 《從我身體的每一處傷疤中》(《光年》37頁)是王家新所譯,我覺得他譯得極具創造性。雖然沒看過詩歌原文所用的語言(明清兄告訴我,王家新先生是從英文翻譯為漢語),但是從一些特殊的語序,我們可以推測,譯者保留了詩歌原始文本的語序。
  • 安耐曬防曬霜是假貨高發區,2019最新辨別方法,讓假貨無所遁形
    如果你手上正好有一隻安耐曬,不妨通過以下幾點來辨別一下真假,讓假貨無所遁形。1.包裝假貨的外包裝和正品幾乎沒有區別的,畢竟假貨也是不斷的更新換代的。但是還是會有一些細節方面處理得不好。外包裝上的黑字有區別。正品安耐曬黑字中間是一橫「」,而假貨跟中文的黑一樣,中間是兩點。
  • 每天1次深度思考,一年後一眼把問題看透!
    一年成長計劃:每天1次深度思考,一年後一眼把問題看透!怎樣才能看到問題的本質?只要抓住一條:看這件事情怎樣才一定成!是我們可以真實地讓大家擁有看透問題本質的能力!為什麼這麼肯定?因為,雖然有很多人在說「洞察問題本質」,但是在我們之前還沒看到有人把洞察本質的具體方法直白地說清楚過。如果連洞察的方法都說不清楚,那一定很難讓人學會。
  • 阿爾法鷹眼引關注 情感計算會讓人類無所遁形嗎?
    連家人都可能注意不到的情緒變化竟然瞞不過機器,人類真的要無所遁形了嗎?將人的情感進行分類情感這個詞,喜樂哀愁種種,人類自己都很難準確定義,機器又如何理解?這是看到情感計算四個字最大的疑問。他以自己從事的文本情感計算為例作了解釋:同樣是「高」這個字,在「失業率」和「就業率」兩個語境下的情感傾向是不同的,前者常是貶義,後者常是褒義,有時候通過幾句話,機器根本無法分析出背後的含義,需要更豐富的語義信息的注入。
  • 道滘裝了91個視頻監控讓犯罪無所遁形
    同時,派出充足警力,採取定崗、步巡、車巡、鐵騎巡等方式,全面提升街面「見警力」,讓違法犯罪行為無所遁形。  今年,全鎮違法犯罪警情同比下降24.1%,立刑事案件數同比下降12.3%,破刑事案件數同比上升16.1%。
  • B肝DNA分離分析方法,針對大量樣本分析,且適用中高通量篩選
    因此,能夠降低材料成本和移液步驟數量,並提高可同時使用96孔或384孔微量滴定板分析樣品的吞吐量。所以,目前可以為多達384個單獨的HBV細胞培養樣本製備HBVDNA。 並準確地量化細胞內外的B肝病毒基因組。另一種在單位時間內,研究人員提供可比樣本吞吐量方法需要成本密集型自動化機器人技術,這是多數研究實驗室無法負擔的,通常只用於診斷和其他高度專業化的實驗室。
  • 臺軍花15億元新臺幣升級預警機,臺媒誇口:大陸殲20將無所遁形
    臺媒誇口稱,在臺灣E-2D預警機的監控下,大陸的殲20隱形戰機將無所遁形。臺「行政院」日前通過總預算案,臺軍方共編列軍費3668億元,比2020年度增加156億元,約增4.4%。如果再加計新式戰機採購特別預算290億元,合共3958億元,較109年度相同基礎增加396億元,約增11.1%。
  • 僅3個單細胞測序樣本純分析也發6分!
    獲取樣本進行單細胞測序作者使用的腎組織樣本來自三個正常人 ,組織經過前期處理後使用10X Genomics捕獲腎臟單細胞,再建庫擴增後使用Hiseq Xten進行測序。得到了三個腎臟樣本中25404個人腎細胞的轉錄組數據用於下遊分析。2.
  • 行家一眼看透,現在看還來得及
    行家一眼看透,現在看還來得及大家好,很高興再次與大家做分享,茶葉是古代的文人雅士鍾愛的飲品,如今很多成功人士、追求生活品質的人更是離不開它,茶葉是中國的古文化之一,無論在哪個朝代,它都具有非常重要的歷史地位。
  • 什麼是惡意犯規?幾個惡意犯規會被禁賽?
    1.什麼是惡意犯規惡意犯規(flagrant foul)被視為不必要,或者過度的犯規。是指無論死球或者活球狀態下,一名球員對對手施加不必要的、過分的身體接觸。在現行的NBA規則中,惡意犯規被劃分為兩種,分別是一級惡意犯規和二級惡意犯規。
  • 無資格購房 被判「無惡意違約」
    數字版首頁 > 第A19:北京新聞·警法 上一篇  下一篇 無資格購房 被判「無惡意違約」 購房人居住證無效
  • 微軟PowerShell成為黑客惡意軟體傳播工具
    (原標題:微軟 PowerShell成為黑客惡意軟體傳播工具)
  • 男人的教科書《教父》:一生學會小心,一秒看透本質,這才是偉大
    原則:一輩子只為學會小心老教父維託是一個原則感極強的人,雖然頂著黑手黨的名號,但即便幫助葬儀社老闆教訓流氓青年時他也會叮囑自己的屬下「做事要有分寸,我們畢竟不是殺人犯」。原則是約束權力的最好枷鎖,如果沒有原則,一個人就會失去方向、失去誠信,從而無法明辨是非。
  • 景德鎮戀上區塊鏈,讓仿冒陶瓷逃無可逃
    由於瓷器無統一標準、真假難辨,仿冒品泛濫嚴重影響瓷器產業品牌溢價,景德鎮陶瓷市場也成假貨窪地,瓷器非遺文化受損,導致傳統營銷模式不可避免地遭遇瓶頸,數位化創新模式也亟需轉型升級。尤其是疫情衝擊下,陶瓷企業面臨不同程度的經營與融資困難,如何去偽存真,提升商業信任成為最大的痛點。
  • 美國核航母入南海無所遁形:如同澡盆裡的塑料鴨子
    該報導所述對敵艦進行的模擬攻擊,說明372艇成功的在水下伏擊區捕捉到了來犯敵艦,並對其進行了模擬攻擊。現代潛艇的模擬攻擊,除了不發射飛彈或魚雷,其餘工作程序和戰鬥動作與實戰完全形同,這意味著如果美艦在南海持續挑釁,與中國產生擦邊走火式的衝突,我方潛艇可在第一時間就擊沉之。從美軍的事後反應看,美國拉森號飛彈驅逐艦並沒有發現在深海巡邏並追蹤美艦的我方潛艇。
  • 飛槳可視化分析工具VisualDL改版升級!幫助開發者擊破「黑盒煉丹」
    2、數據樣本分析(Sample)數據樣本分析可以在多種深度學習任務中發揮重要作用。在語音識別或合成任務中,數據樣本分析功能可以幫助開發者實時獲取訓練過程中的音頻數據,評估語音識別或合成的效果,挑選最優的訓練模型。實現代碼:
  • 把愛情看透的人,有以下這幾種表現,看看你有沒有
    這樣的人,是看透了愛情,是一次次被愛所傷害,心靈裡,也有了最硬的傷疤,從此百毒不侵。把愛情看透的人,有以下這幾種表現,看看你有沒有。如果你也有,那麼你也是一個有愛情故事的人。1.來是自然,走是自由,從來不奢望誰能相伴到老。