主頁 >  其他 > [系統安全] 十七.Windows PE病毒概念、分類及感染方式詳解

[系統安全] 十七.Windows PE病毒概念、分類及感染方式詳解

2021-02-02 13:50:13 其他

您可能之前看到過我寫的類似文章,為什么還要重復撰寫呢?只是想更好地幫助初學者了解病毒逆向分析和系統安全,更加成體系且不破壞之前的系列,因此,我重新開設了這個專欄,準備系統整理和深入學習系統安全、逆向分析和惡意代碼檢測,“系統安全”系列文章會更加聚焦,更加系統,更加深入,也是作者的慢慢成長史,換專業確實挺難的,逆向分析也是塊硬骨頭,但我也試試,看看自己未來四年究竟能將它學到什么程度,漫漫長征路,偏向虎山行,享受程序,一起加油~

作者前文介紹了PE檔案格式,熟悉各種PE編輯查看工具,針對目標EXE程式新增對話框等;這篇文章將介紹Windows PE病毒, 包括PE病毒原理、分類及感染方式詳解,并通過案例進行介紹,這些基礎性知識不僅和系統安全相關,同樣與我們身邊的APP、常用軟體及作業系統緊密聯系,希望這些知識對您有所幫助,更希望大家提高安全意識,安全保障任重道遠,本文參考了《軟體安全》視頻、安全網站和參考文獻中的文章,并結合自己的經驗和實踐進行撰寫,也推薦大家閱讀參考文獻,

文章目錄

  • 一.PE病毒概念
  • 二.PE病毒的分類
  • 三.傳統檔案感染型
    • 1.感染思路
    • 2.PE病毒典型案例
    • 3.關鍵技術
      • (1) 重定位
      • (2) API函式自獲取
      • (3) 目標程式遍歷搜索
      • (4) 檔案感染
  • 四.捆綁釋放型
  • 五.系統感染型
    • 1.控制權再次獲取
    • 2.病毒的傳播方式
  • 六.總結

從2019年7月開始,我來到了一個陌生的專業——網路空間安全,初入安全領域,是非常痛苦和難受的,要學的東西太多、涉及面太廣,但好在自己通過分享100篇“網路安全自學”系列文章,艱難前行著,感恩這一年相識、相知、相趣的安全大佬和朋友們,如果寫得不好或不足之處,還請大家海涵!

接下來我將開啟新的安全系列,叫“系統安全”,也是免費的100篇文章,作者將更加深入的去研究惡意樣本分析、逆向分析、內網滲透、網路攻防實戰等,也將通過在線筆記和實踐操作的形式分享與博友們學習,希望能與您一起進步,加油~

  • 推薦前文:網路安全自學篇系列-100篇

作者的github資源:

  • 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
  • 網路安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study

前文分析:

  • [系統安全] 一.什么是逆向分析、逆向分析基礎及經典掃雷游戲逆向
  • [系統安全] 二.如何學好逆向分析及呂布傳游戲逆向案例
  • [系統安全] 三.IDA Pro反匯編工具初識及逆向工程解密實戰
  • [系統安全] 四.OllyDbg動態分析工具基礎用法及Crakeme逆向
  • [系統安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大戰僵尸游戲
  • [系統安全] 六.逆向分析之條件陳述句和回圈陳述句原始碼還原及流程控制
  • [系統安全] 七.逆向分析之PE病毒原理、C++實作檔案加解密及OllyDbg逆向
  • [系統安全] 八.Windows漏洞利用之CVE-2019-0708復現及藍屏攻擊
  • [系統安全] 九.Windows漏洞利用之MS08-067遠程代碼執行漏洞復現及深度提權
  • [系統安全] 十.Windows漏洞利用之SMBv3服務遠程代碼執行漏洞(CVE-2020-0796)復現
  • [系統安全] 十一.那些年的熊貓燒香及PE病毒行為機理分析
  • [系統安全] 十二.熊貓燒香病毒IDA和OD逆向分析(上)病毒初始化
  • [系統安全] 十三.熊貓燒香病毒IDA和OD逆向分析(中)病毒釋放機理
  • [系統安全] 十四.熊貓燒香病毒IDA和OD逆向分析–病毒釋放程序(下)
  • [系統安全] 十五.Chrome瀏覽器保留密碼功能滲透決議、藍屏漏洞及某音樂軟體漏洞復現
  • [系統安全] 十六.PE檔案逆向基礎知識(PE決議、PE編輯工具和PE修改)
  • [系統安全] 十七.Windows PE病毒概念、分類及感染方式詳解

宣告:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網路需要我們共同維護,更推薦大家了解它們背后的原理,更好地進行防護,該樣本不會分享給大家,分析工具會分享,(參考文獻見后)


一.PE病毒概念

什么是PE病毒?
PE病毒又稱為Win32 PE病毒,或稱為Win32病毒,它指所有感染Windows下PE檔案格式檔案的病毒,因為它通常采用Win32匯編撰寫,而且格式為PE檔案,因此而得名,PE病毒是以Windows PE程式為載體,能寄生于PE檔案或Windows系統的病毒程式, 真正的病毒技術在PE病毒中才會得到真正的體現,所以對于一個黑客、駭客或者是熱衷于病毒分析技術的程式員,是非常有必要進行學習PE病毒的撰寫的,

PE病毒數量非常之多,下面介紹三種經典的病毒,

  • CIH病毒
    早期病毒,全球第一個可以破壞計算機硬體的病毒,它會破壞主板的BIOS,對其資料進行擦寫修改,CIH病毒是一種能夠破壞計算機系統硬體的惡性病毒,這個病毒是TW陳盈豪在念書期間制作,后通過網路傳播到全世界各個角落,CIH的載體是一個名為“ICQ中文Chat模塊”的工具,并以熱門盜版光碟游戲如“古墓奇兵”或Windows95/98為媒介,經互聯網各網站互相轉載,使其迅速傳播,傳播的主要途徑主要通過Internet和電子郵件,當然隨著時間的推移,其傳播主要仍將通過軟盤或光碟途徑,CIH病毒曾入榜全球十大計算機病毒之首,該病毒引起了許多重要部門的嚴密關注,

在這里插入圖片描述

  • 熊貓燒香
    熊貓燒香(Worm.WhBoy)是一款擁有自動傳播、自動感染硬碟能力和強大的破壞能力的病毒,它不但能感染系統中exe、com、pif、src、html、asp等檔案,它還能中止大量的反病毒軟體行程并且會洗掉擴展名為gho的檔案,該檔案是一系統備份工具GHOST的備份檔案,使用戶的系統備份檔案丟失,被感染的用戶系統中所有.exe可執行檔案全部被改成熊貓舉著三根香的模樣,2006年10月16日由25歲的湖北武漢李俊撰寫,2007年1月初肆虐網路,它主要通過下載的檔案傳染傳播,

在這里插入圖片描述

  • WannaCry蠕蟲
    2017年5月12日,WannaCry蠕蟲通過永恒之藍MS17-010漏洞在全球范圍大爆發,感染大量的計算機,WannaCry勒索病毒全球大爆發,至少150個國家、30萬名用戶中招,造成損失達80億美元,已影響金融、能源、醫療、教育等眾多行業,造成嚴重的危害,
    WannaCry是一種“蠕蟲式”勒索病毒軟體,由不法分子利用NSA泄露方程式工具包的危險漏洞“EternalBlue”(永恒之藍)進行傳播,該蠕蟲感染計算機后會向計算機中植入敲詐者病毒,導致電腦大量檔案被加密,WannaCry利用Windows系統的SMB漏洞獲取系統的最高權限,該工具通過惡意代碼掃描開放445埠的Windows系統,被掃描到的Windows系統,只要開機上線,不需要用戶進行任何操作,即可通過共享漏洞上傳WannaCry勒索病毒等惡意程式,

在這里插入圖片描述


什么叫感染?
說到病毒,不得不提感染,感染是指在盡量不影響目標程式(系統)正常功能的前提下,而使其具有病毒自身的功能,什么叫病毒自身的功能呢?一個病毒通常包括如下模塊:

  • 感染模塊: 被感人程式同樣具備感染能力
  • 觸發模塊: 在特定條件下實施相應的病毒功能,比如日期、鍵盤輸入等
  • 破壞模塊: 網路攻擊行為,推薦攻擊鏈或ATT&CK
  • 其他模塊

如果我們要撰寫PE病毒,則需要掌握以下的關鍵:

  • 病毒的重定位
  • 獲取API函式地址
  • 檔案搜索
  • 記憶體映射檔案
  • 病毒如何感染其他檔案
  • 病毒如何回傳到Host程式

二.PE病毒的分類

以感染目標進行分類,包括:

(1) 檔案感染
將代碼寄生在PE檔案,病毒本身只是PE檔案的一部分,依賴于感染目標,通常也叫HOST檔案,控制權獲得也是以目標程式運行來獲得的,分為:

  • 傳統感染型:以Win32匯編程式撰寫為主
  • 捆綁釋放型:撰寫難度較低,通過高級語言均可撰寫,將目標程式和病毒程式捆在一起,和捆綁器有相似之處

(2) 系統感染
將代碼或程式寄生在Windows作業系統,該類病毒越來越多,它不感染具體檔案,但是它會在作業系統中保存自己的物體,同時也可以通過系統啟動的方法來獲取控制權,傳播途徑包括:

  • 即時通信軟體,如QQ尾巴
  • U盤、光碟
  • 電子郵件
  • 網路共享
  • 其他途徑

三.傳統檔案感染型

1.感染思路

作者前面詳細分析了PE檔案格式,參考文章:

  • [系統安全] 十六.PE檔案逆向基礎知識(PE決議、PE編輯工具和PE修改)

當我們了解PE檔案格式之后,要了解PE檔案感染型病毒就非常容易了,如下圖所示,左邊是一個正常的PE檔案,右邊是PE病毒感染該程式時的修改,可以看到病毒代碼在最后面,通常它是一種新節的形式,我們知道PE檔案是由多個節組成的,病毒代碼為了融入目標程式會以節的形式,同時修改PE檔案頭,

在這里插入圖片描述

對感染來說,它一方面需要使得對方具備自己的功能,另一方面也不破壞對方程式的功能,所以病毒代碼執行完畢之后,它必須要將控制權交給原始程式,從而防止病毒被發現,

  • 優點: 被感染后的程式主題依然是目標程式,不影響目標程式圖示,隱蔽性稍好
  • 缺點: 對病毒代碼的撰寫要求較高,通常是匯編語言撰寫,難以成功感染自校驗程式

2.PE病毒典型案例

下面是演示案例,感染本目錄下的test.exe檔案,它沒有破壞性,tset.exe被感染后,首先執行病毒代碼,然后執行自身代碼,如下圖所示,存在四個檔案,其中main.exe是PE病毒程式,它會感染當前目錄下名為“test.exe”的檔案,這里僅是測驗PE病毒感染代碼,沒有破壞功能,

  • calc.exe:計算器
  • notepad.exe:記事本
  • test.exe:測驗PE檔案
  • main.exe:PE病毒程式

在這里插入圖片描述

第一步,我們嘗試打開test.exe檔案,它是一個正常的PE檔案,前面的文章也分析過,它包括兩個彈窗,如下圖所示,

在這里插入圖片描述

在這里插入圖片描述

第二步,使用OD打開test.exe如下圖所示,發現起始地址為0x00401000,該exe程式大小為2.50KB,

在這里插入圖片描述

第三步,運行main.exe程式,它是PE病毒,注意,它會彈出如下圖所示對話框,這是為了方便演示,而真實的PE病毒不會提示你資訊,程式是兩位大佬所寫,其中一位是Hume前輩,另一位 ^ _ ^

在這里插入圖片描述

同時,如果360會查殺該病毒,添加信任即可,但當我們在真實惡意樣本分析時,一定要在虛擬機等有保護環境下進行,

在這里插入圖片描述

IDA分析mian.exe如下圖所示:

在這里插入圖片描述

第四步,此時test.exe檔案大小已經增加為6.50KB,說明其已經被惡意感染,

在這里插入圖片描述

雙擊test.exe顯示如下圖所示,它會先彈出一個感染測驗對話框,然后才是接下來的正常程式對話框,

在這里插入圖片描述

在這里插入圖片描述

用OD動態分析,發現程式入口地址是0x004042DC,說明該程式先執行PE病毒,之后才執行正常的程式,而真實的PE病毒不會只簡單的彈出提示視窗,而會隱蔽的進行一些破壞或收集資訊,

在這里插入圖片描述

第五步,將被感染的“test.exe”重命名為“test-ok.exe”,然后將記事本修改為“test.exe”,因為我們的代碼只感染當前目錄下“test”命名的檔案,

在這里插入圖片描述

接著運行“test-ok.exe”程式,發現打開記事本也會彈出如下圖所示的對話框,接著才是記事本,說明該程式也被感染,

在這里插入圖片描述

在這里插入圖片描述

第六步,通過同樣的方法感染計算器程式,如下圖所示,

在這里插入圖片描述

在這里插入圖片描述

寫到這里,該案例就演示完畢,這是一個傳統典型的PE病毒感染示例,


3.關鍵技術

(1) 重定位

重定位在前面講PE檔案格式化時介紹過,尤其DLL檔案常見重定位,因為DLL檔案會加載到不同的位置,如果再按照VA地址定位會出現差錯,所以會出現重定位,對于病毒程式也是一樣的,它有相應的代碼去感染目標程式,而目標程式有很多,病毒程式寫在目標程式什么位置呢?這就需要病毒代碼去定位目標程式的位置,就要利用重定位技術,

  • 關鍵點:病毒代碼目標寄生位置不固定
  • shellcode類似:通常需要注入遠程系統,但這段代碼在遠程系統什么位置有時并不能確定,另外遠程系統的環境有時也不能準確感知,故需要使用重定位和API函式自獲取技術

① 為什么需要重定位呢?
下面是一段源代碼(PE最小檔案案例),通過mas32編譯生成的目標程式,源代碼非常簡單,就是呼叫invoke,通過invoke呼叫MessageBox函式,包括四個引數;程式第二個陳述句是invoke呼叫退出,這里彈出對話框涉及兩個字串szCap和szMsgOK,

  • invoke MessageBox, NULL, addr szMsgOK, addr szCap, 40h+1000h
  • invoke ExitProcess, NULL

在這里插入圖片描述

當該程式編譯之后,反匯編結構顯示如下圖所示,比如Start位置,MessageBox函式包括四個引數,我們采用PUSH壓入堆疊,再CALL呼叫該函式,

  • push offset off_00401000
  • push offset off_00401014

圖中紅色圓圈顯示的是PE檔案代碼的二進制部分,它是一個VA的地址,即RVA+ImageBase,程式在編譯后,某些VA地址(如變數Var 004010xxh)就已經以二進制代碼的形式固定,這就是需要重定位的原因,

在這里插入圖片描述

下圖展示正常情況的ImageBase,值為400000H,比如HEX資料為“00104000”,由于高位在后面,所以對應的地址是“00 40 10 00”,

在這里插入圖片描述

如果ImageBase為600000H,則代碼不做重定位,PUSH壓入堆疊的值為401000和401014,而此時的值什么也不是,通過資料視窗定位地址發現不存在,左下角可以看到,00601000位置才是存放的資料,所以,重定位需要將這里的40修改為60,

在這里插入圖片描述

總之,如果病毒代碼插入位置不固定,也會遇到類似的問題,病毒代碼必須通過重定位解決類似的問題,


② 下面看看病毒代碼植入HOST檔案后的位置差異,
左邊是病毒在感染前的VAR位置,其地址為004010xx;當這段代碼插入到另一個HOST檔案后,如右圖所示,變數的實際位置和預期位置出現了差異,而重定位的關鍵是知道這個差異是多少,后續遇到的各種變數或地址都可以通過這種差異方式校正,

  • 重定位本質:修正實際地址與預期地址的差異

在這里插入圖片描述

但是根據HOST特征逐一硬編碼這種方式不太可取,其繁瑣且未必準確,所以采用另一種方法,病毒代碼運行程序中自我重定位,

下圖展示了病毒代碼自我重定位的程序,

  • 第一步,計算差異值;
  • 第二步,呼叫call delta將下一條陳述句開始位置壓入堆疊,此時堆疊頂端存放的是pop ebp陳述句,它在記憶體中是真實的地址;
  • 第三步,做sub減法操作,ebp減去offset delta;
  • 第四步,當需要重定位時,比如使用varl變數,重定位通過ebp+offset來消除差異,此時eax中存放varl在記憶體中的真實地址,

CALL陳述句功能:

  • 將下一條陳述句開始位置壓入堆疊
  • JMP到目標地址執行

在這里插入圖片描述


(2) API函式自獲取

首先介紹下PE檔案函式節的功能,

  • 當呼叫外部DLL中的API函式時,通過引入函式節將這種關系定義出來;系統加載時就能加載對應的DLL檔案并找到相應的API函式,再將地址寫入到PE檔案的引入函式表中;程式運行時就直接從引入函式表中取地址進行呼叫,這是正常的PE檔案運行程序,通常函式節是由目標程式作者撰寫,

但對于病毒程式來說,它是一段代碼,當它感染另外一個程式時,它是否能修改目標程式的引入函式節,而使得其可以服務病毒代碼呢?從原理上來說,這是可以實作的,但非常復雜,因為要在參考函式節添加東西一定會導致其他結構的變化,需要做很多的修正作業,這也可能破壞原有功能,所以對于病毒來說,它需要自己去獲取API函式地址,并且沒有引入函式節的支撐,但它又必須要使用很多API函式來實作病毒功能,

  • 關鍵點:需要使用的API函式,但無引入函式節支撐
  • shellcode類似:需要使用API函式自獲取技術來確定注入遠程系統的位置

① 如何獲取API函式地址呢?

  • DLL檔案的引出函式節
  • Kernel32.dll:核心API函式為 GetProcAddress和LoadLibraryA
  • GetProcAddress函式:包括兩個引數,模塊基地址和想要獲取API函式名稱,它將動態獲得DLL函式的入口地址
  • LoadLibraryA函式:將制定的DLL元件加載到記憶體中,回傳值為DLL檔案加載到記憶體中的基地址

② 當我們獲得GetProcAddress和LoadLibraryA地址后,想獲取任何一個API函式地址都可以,那么,怎么獲取這兩個函式的地址呢?

  • 首先,獲得kernel32.dll的模塊加載基地址
    一種方法是采用硬編碼(兼容性差),另一種方法通過Kernel模塊中的相應結構和特征定位
  • 其次,通過Kernel32.dll的引出目錄表結構定位具體函式的函式地址

③ 接著,我們看看獲取Kernel32模塊基地址的典型方法,

  • 定位Kernel32模塊中任何一個地址,然后按照模塊首地址特征(對齊于10000H,PE檔案開始標識MZ)向低地址遍歷定位PE檔案頭
  • Kernel32模塊內的地址從何處獲得?
    – 程式入口代碼執行時Stack頂端存盤的地址
    – SEH鏈末端
    – PEB相關資料結構指向了各模塊地址
    – Stack特定高端地址的資料
    注意:不同作業系統存在差別

在這里插入圖片描述


(3) 目標程式遍歷搜索

通常以PE檔案格式的檔案(如EXE、SCR、DLL等)作為感染目標,其關鍵點為全盤查找或者部分盤符查找,遍歷演算法包括遞回或非遞回,在對目標進行搜索時,通常呼叫兩個API函式:

  • FindFirstFile
  • FindNextFile

搜索目標進行感染演算法如下:

在這里插入圖片描述


(4) 檔案感染

感染的關鍵是病毒代碼能夠得到運行,常用方法包括:

  • 選擇合適的位置放入病毒代碼(已有節、新增節)
  • 將控制權交給病毒代碼,如修改程式入口點AddressofEntryPoint,或者在原目標代碼執行程序中運行病毒代碼(EPO技術,EntryPoint Obscuring)

同時,病毒代碼執行時,程式的正常功能不能被破壞,即控制權的交換,

  • 感染時,記錄原始“程式控制點位置”
  • 病毒代碼執行完畢之后,回傳控制權
  • 避免重復感染,感染標記

在這里插入圖片描述

感染檔案的基本步驟為:

  • ①判斷目標檔案開始的兩個位元組是否為“MZ”
  • ②判斷PE檔案標記“PE”
  • ③判斷感染標記,如果已被感染過則跳出繼續執行HOST程式,否則繼續
  • ④獲得Directory(資料目錄)的個數(每個資料目錄資訊占8個位元組)
  • ⑤得到節表起始位置(Directory的偏移地址+資料目錄占用的位元組數=節表
    起始位置)
  • ⑥得到目前最后節表的末尾偏移(緊接其后用于寫入一個新的病毒節)節表起
    始位置+節的個數*(每個節表占用的位元組數28H)=目前最后節表的末尾偏移
  • ⑦開始寫入節表和病毒節
  • ⑧修正檔案頭資訊

四.捆綁釋放型

捆綁釋放型感染實作起來比較簡單,目前很大一部分病毒程式都采用這種方法,捆綁釋放型感染時將目標HOST程式作為資料存盤在病毒體內,當執行病毒程式時,它先執行病毒程式,然后還原并執行HOST檔案,從而保證被感染的程式本身能正常運行,不會引起一些異樣,

  • 熊貓燒香病毒
    左邊是一個正常程式(QQ),感染之后會將病毒放在前面,正常程式放在后面,程式運行之后,病毒會拿到控制權,但是程式圖示會顯示前面的病毒程式,顯示熊貓燒香,這也是一個明顯的被感染特征,

  • 優點: 撰寫簡單、效率高,可感染自校驗程式

  • 缺點: 被感染后的程式主體是病毒程式,易被發現(程式疊加+釋放執行),程式圖示問題

在這里插入圖片描述


五.系統感染型

系統感染型本身不對PE檔案做任何感染操作,但它感染的目標是作業系統,也是一種寄生類的方式,只是寄生目標有所不同,這類病毒通常為獨立個體,不感染系統內的其他檔案,

兩個關鍵問題:

  • 如何再次獲得控制權——自啟動
    由于該程式不感染PE檔案,它沒有HOST檔案,所以如何再次獲得控制權是一個關鍵性問題,也是目標很多病毒程式設計時不得不考慮的問題,此時和作業系統自啟動相關,病毒必須依賴于該機制再次獲得控制權,
  • 如何傳播
    可移動存盤介質(U盤、移動硬碟刻錄光碟等)
    網路共享
    電子郵件或其他應用

1.控制權再次獲取

下面簡單講解控制權再次獲取的自啟動方式,首先看看作業系統啟動流程:

  • BIOS --> 硬碟MBR --> 活動磁區DBR --> 系統內部

整個啟動流程也是控制權傳遞的程序,包括現在提出的可信計算,也是對控制權一步一步的校驗,控制流程的資料完整性或行為的校驗,對于作業系統本身,它的啟動方式很多,系統內部包括:

  • 注冊表中的鍵值
  • 系統中的特定位置
  • 組態檔
  • 特定路徑的特定檔案,如Explorer.exe(顯示桌面)

下圖展示了Autoruns軟體看到Windows作業系統進行自啟動的選項,如果病毒本身能很好地結合這套機制,它可以做的事情非常多,并且具有很好的隱蔽性,

在這里插入圖片描述

其他啟動方式:

  • 利用系統自動播放機制Autorun.inf
    比如U盤病毒或光碟病毒就是利用U盤或光碟的自動播放功能,目前,也有一些U盤插入之后,不需要你去雙擊這個U盤,里面的程式就會自啟動,

  • 在其他可執行檔案嵌入少量觸發代碼
    修改引入函式節啟動DLL病毒檔案(添加相應結構,初始化代碼觸發)
    在特定PE檔案代碼段插入觸發代碼等(只需定位可執行程式并運行)

  • DLL劫持:替換已有DLL檔案
    很多應用程式或作業系統執行時,都會去執行DLL檔案,如果病毒將自身做成一個DLL檔案,同時將系統DLL檔案替換,可想而知,系統啟動時,它是根據檔案名啟動的,此時病毒DLL檔案就會拿到控制權,如果拿到控制權之后再進一步裝載原始DLL檔案,這樣系統的本身機制也不會受到影響,隱蔽性更強,該方法非常常見,甚至有一些病毒程式將反病毒軟體可依賴的DLL檔案替換,


2.病毒的傳播方式

一切可對外互動的渠道都可傳播,包括:

  • 各類存盤設備(軟盤、光碟、U盤、移動硬碟、智能設備)
  • 各類網路通信方式(QQ、MSN、Email、淘寶旺旺、微信、微博等)
  • 各類網路連接方式(有線、wifi、藍牙等)
  • 各類網路應用(迅雷、BT等)

在這里插入圖片描述

郵件蠕蟲越來越常見,其中以郵件附件的形式進行傳播較多,附件中可能包含病毒包括exe檔案、rar檔案、pdf檔案、doc檔案、xls檔案、jpg檔案、chm檔案等,下圖是一個包含病毒的郵件附件,顯示為一個word檔案,后綴名doc,圖示顯示也是word,但它的真實后綴是scr(屏保),它其實是利用了一種技術,在檔案名里插入翻轉字符,然后將翻轉字符之后的其他字符進行了翻轉,它的完整檔案名應該是“5月TW行lmcod.scr”,這也是一種欺騙性很強的攻擊手法,

在這里插入圖片描述

再補充一個通過可移動存盤設備傳播的非感染式病毒,即Autorun.inf,右圖顯示了Autorun.inf檔案,如果檔案存在U盤根目錄,當我們雙擊這個U盤時,它就會觸發對應的病毒,如果選擇U盤盤符右鍵打開或打開資源管理器,這是進入的也是病毒程式,當然下面的演示是計算器程式,

[AutoRun]
open=mspaint.exe
shell\open=打開(&O)
shell\open\Command=calc.exe
shell\open\Default=1
shell\explore=資源管理器(&X)
shell\explore\Command=calc.exe

在這里插入圖片描述

還有一類是偽裝的檔案夾,如下圖所示photo.exe檔案,當Windows作業系統默認不顯示“.exe”時,它就能偽裝成檔案夾,當我們雙擊之后就會運行病毒,同時可以打開某個檔案夾進行隱蔽,

在這里插入圖片描述

最后,補充“擺渡”知識點,這種攻擊行為經常發生在一些具有特殊目的病毒程式身上,期望通過可移動的媒介來滲透一些平時不聯網的電腦中,并從中獲取資料,利用擺渡的方式植入病毒或木馬到內網,比較典型的案例就是Stuxnet,

在這里插入圖片描述

下圖展示了Stuxnet震網事件的漏洞利用程序和啟動方式,傳統的Autorun方式很容易被禁止掉,而Stuxnet利用的是lnk漏洞(MS10-046),它會在目標U盤下放入lnk快捷方式及病毒程式(如DLL檔案),不管通過什么方式進入U盤,lnk檔案會被決議從而觸發漏洞,導致U盤中的病毒程式被執行,

在這里插入圖片描述


六.總結

寫到這里,這篇文章就介紹完畢,通過這些PE病毒原理、分類及感染方式的講解,有利于大家去做一些拓展和思考,也體現出當下的網路形式,存在很多安全隱患,安全防御是非常必要的,

  • PE病毒概念
  • PE病毒的分類
  • 傳統檔案感染型
    感染思路
    PE病毒典型案例
    關鍵技術
  • 捆綁釋放型
  • 系統感染型
    控制權再次獲取
    病毒的傳播方式

學安全一年,認識了很多安全大佬和朋友,希望大家一起進步,這篇文章中如果存在一些不足,還請海涵,作者作為網路安全和系統安全初學者的慢慢成長路吧!希望未來能更透徹撰寫相關文章,同時非常感謝參考文獻中的安全大佬們的文章分享,感謝師傅、實驗室小伙伴的教導,深知自己很菜,得努力前行,編程沒有捷徑,逆向也沒有捷徑,它們都是搬磚活,少琢磨技巧,干就對了,什么時候你把攻擊對手按在地上摩擦,你就贏了,也會慢慢形成了自己的安全經驗和技巧,加油吧,少年希望這個路線對你有所幫助,共勉,

歡迎大家討論,是否覺得這系列文章幫助到您!如果存在不足之處,還請海涵,任何建議都可以評論告知讀者,共勉~

  • 逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis
  • 網路安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study

2020年8月18新開的“娜璋AI安全之家”,主要圍繞Python大資料分析、網路空間安全、人工智能、Web滲透及攻防技術進行講解,同時分享CCF、SCI、南核北核論文的演算法實作,娜璋之家會更加系統,并重構作者的所有文章,從零講解Python和安全,寫了近十年文章,真心想把自己所學所感所做分享出來,還請各位多多指教,真誠邀請您的關注!謝謝,

(By:Eastmount 2021-02-01 星期一 夜于貴陽 http://blog.csdn.net/eastmount/ )


參考文獻:
[1] 武大《軟體安全》課程
[2] MOOC《軟體安全之惡意代碼機理與防護》
[3] PE檔案格式分析 - Erio
[4] 第二章PE檔案結構決議 - 百度文庫

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255639.html

標籤:其他

上一篇:【Java】 面試總結&面經學習記錄(2.1更新)

下一篇:真實案例:用照片做成動態圖就能從蘋果手機盜走微信支付寶里的錢

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more