史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > Hacker/Cracker 及加解密技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2005-09-24, 03:35 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 系統 - 黑客種植木馬新方法及防範策略

黑客種植木馬新方法及防範策略

相信很多朋友都聽說過木馬程序,總覺得它很神秘、很高難,但事實上隨著木馬軟件的智能化,很多駭客都能輕鬆達到攻擊的目的。


今天,筆者就以最新的一款木馬程序——黑洞2004,從種植、使用、隱藏、防範四個方面來為網絡愛好者介紹一下木馬的特性。需要提醒大家的是,在使用木馬程序的時候,請先關閉系統中的病毒防火牆,因為殺毒軟件會把木馬作為病毒的一種進行查殺。

  操作步驟:

  一、種植木馬

  現在網絡上流行的木馬基本上都採用的是C/S 結構(客戶端/服務端)。


你要使用木馬控制對方的電腦,首先需要在對方的的電腦中種植並運行服務端程序,然後運行本地電腦中的客戶端程序對對方電腦進行連接進而控制對方電腦。


為了避免不熟悉木馬的用戶誤運行服務端,現在流行的木馬都沒有提供單獨的服務端程序,而是通過用戶自己設置來生成服務端,黑洞2004也是這樣。


首先運行黑洞2004,點擊「功能/生成服務端」命令,彈出「服務端配置」界面。


由於黑洞2004採用了反彈技術(請參加小知識),首先單擊旁邊的「查看」按鈕,在彈出的窗口中設置新的域名,輸入你事先申請空間的域名和密碼,單擊「域名註冊」,在下面的窗口中會反映出註冊的情況。



域名註冊成功以後,返回「服務端配置」界面,填入剛剛申請的域名,以及「上線顯示名稱」、「註冊表啟動名稱」等項目。

為了迷惑他人,可以點「更改服務端圖標」按鈕為服務端選擇一個圖標。所有的設置都完成後,點擊「生成EXE型服務端」就生成了一個服務端。

在生成服務端的同時,軟件會自動使用UPX為服務端進行壓縮,對服務端起到隱藏保護的作用。

  服務端生成以後,下一步要做的是將服務端植入別人的電腦?
常見的方法有,通過系統或者軟件的漏洞入侵別人的電腦把木馬的服務端植入其的電腦;或者通過Email夾帶,把服務端作為附件寄給對方;以及把服務端進行偽裝後放到自己的共享文件夾,通過P2P軟件(比如PP點點通、百寶等),讓網友在毫無防範中下載並運行服務端程序。

  由於本文主要面對普通的網絡愛好者,所以就使用較為簡單的Email夾帶,為大家進行講解。


我們使用大家經常會看到的Flash動畫為例,建立一個文件夾命名為「好看的動畫」,在該文件夾裡邊再建立文件夾「動畫.files」,將木馬服務端軟件放到該文件夾中假設名稱為「abc.exe」,再在該文件夾內建立flash文件,在flash文件的第1幀輸入文字「您的播放插件不全,單擊下邊的按鈕,再單擊打開按鈕安裝插件」,新建一個按鈕組件,將其拖到舞台中,打開動作面板,在裡邊輸入「on (press) {getURL("動畫.files/abc.exe");}」,表示當單擊該按鈕時執行abc這個文件。在文件夾「好看的動畫」中新建一個網頁文件命名為「動畫.htm」,將剛才製作的動畫放到該網頁中。


看出門道了嗎?平常你下載的網站通常就是一個.html文件和一個結尾為.files的文件夾,我們這麼構造的原因也是用來迷惑打開者,畢竟沒有幾個人會去翻.files文件夾。

現在我們就可以撰寫一封新郵件了,將文件夾「好看的動畫」壓縮成一個文件,放到郵件的附件中,再編寫一個誘人的主題。只要對方深信不疑的運行它,並重新啟動系統,服務端就種植成功了。

  二、使用木馬

  成功的給別人植入木馬服務端後,就需要耐心等待服務端上線。


由於黑洞2004採用了反連接技術,所以服務端上線後會自動和客戶端進行連接,這時,我們就可以操控客戶端對服務端進行遠程控制。


在黑洞2004下面的列表中,隨便選擇一台已經上線的電腦,然後通過上面的命令按鈕就可以對這台電腦進行控制。

下面就簡單的介紹一下這些命令的意義。

  文件管理:服務端上線以後,你可以通過「文件管理」命令對服務端電腦中的文件進行下載、新建、重命名、刪除等操作。可以通過鼠標直接把文件或文件夾拖放到目標文件夾,並且支持斷點傳輸。簡單吧?

  進程管理:查看、刷新、關閉對方的進程,如果發現有殺毒軟件或者防火牆,就可以關閉相應的進程,達到保護服務器端程序的目的。

  窗口管理:管理服務端電腦的程序窗口,你可以使對方窗口中的程序最大化、最小化、正常關閉等操作,這樣就比進程管理更靈活。你可以搞很多惡作劇,比如讓對方的某個窗口不停的最大化和最小化。

  視頻監控和語音監聽:如果遠程服務端電腦安裝有USB攝像頭,那麼可以通過它來獲取圖像,並可直接保存為Media Play可以直接播放的Mpeg文件;需要對方有麥克風的話,還可以聽到他們的談話,恐怖吧?

  除了上面介紹的這些功能以外,還包括鍵盤記錄、重啟關機、遠程卸載、抓屏查看密碼等功能,操作都非常簡單,明白了吧?做駭客其實很容易。

 三、隱藏


  隨著殺毒軟件病毒庫的升級,木馬會很快被殺毒軟件查殺,所以為了使木馬服務端辟開殺毒軟件的查殺,長時間的隱藏在別人的電腦中,在木馬為黑客提供幾種可行的辦法。

  1.木馬的自身保護

  就像前面提到的,黑洞2004在生成服務端的時候,用戶可以更換圖標,並使用軟件UPX對服務端自動進行壓縮隱藏。

  2.捆綁服務端

  用戶通過使用文件捆綁器把木馬服務端和正常的文件捆綁在一起,達到欺騙對方的目的。文件捆綁器有廣外文件捆綁器2002、萬能文件捆綁器、exeBinder、Exe Bundle等。

  3.制做自己的服務端

  上面提到的這些方法雖然能一時瞞過殺毒軟件,但最終還是不能逃脫殺毒軟件的查殺,所以若能對現有的木馬進行偽裝,讓殺毒軟件無法辨別,則是個治本的方法。可以通過使用壓縮EXE和DLL文件的壓縮軟件對服務端進行加殼保護。


例如Step1中的UPX就是這樣一款壓縮軟件,但默認該軟件是按照自身的設置對服務端壓縮的,因此得出的結果都相同,很難長時間躲過殺毒軟件;而自己對服務端進行壓縮,就可以選擇不同的選項,壓縮出與眾不同的服務端來,使殺毒軟件很難判斷。下面我就以冰河為例,為大家簡單的講解一下脫殼(解壓)、加殼(壓縮)的過程。

  如果我們用殺毒軟件對冰河進行查殺,一定會發現2個病毒,一個是冰河的客戶端,另一個是服務端。使用軟件「PEiD」查看軟件的服務端是否已經被作者加殼。

  現在,我們就需要對軟件進行脫殼,也就是一種解壓的過程。這裡我使用了「UPXUnpack」,選擇需要的文件後,點擊「解壓縮」就開始執行脫殼。

  脫殼完成後,我們需要為服務端加一個新殼,加殼的軟件很多,比如:ASPack、ASProtect、UPXShell、Petite等。


這裡以「ASPack」為例,點擊「打開」按鈕,選擇剛剛脫殼的服務端程序,選擇完成後ASPack會自動為服務端進行加殼。再次用殺毒軟件對這個服務端進行查殺,發現其已經不能識別判斷了。


如果你的殺毒軟件依舊可以查殺,你還可以使用多個軟件對服務端進行多次加殼。


筆者在使用Petite和ASPack對服務端進行2次加殼後,試用了多種殺毒軟件都沒有掃瞄出來。現在網絡中流行的很多XX版冰河,就是網友通過對服務端進行修改並重新加殼後制做出來的。

  四、防範

  防範重於治療,在我們的電腦還沒有中木馬前,我們需要做很多必要的工作,比如:安裝殺毒軟件和網絡防火牆;及時更新病毒庫以及系統的安全補丁;定時備份硬盤上的文件;不要運行來路不明的軟件和打開來路不明的郵件。

  最後筆者要特別提醒大家,木馬除了擁有強大的遠程控制功能外,還包括極強的破壞性。我們學習它,只是為了瞭解它的技術與方法,而不是用於盜竊密碼等破壞行為,希望大家好自為之。

  小知識:
反彈技術,該技術解決了傳統的遠程控制軟件不能訪問裝有防火牆和控制局域網內部的遠程計算機的難題。

反彈端口型軟件的原理是,客戶端首先登錄到FTP服務器,編輯在木馬軟件中預先設置的主頁空間上面的一個文件,並打開端口監聽,等待服務端的連接,服務端定期用HTTP協議讀取這個文件的內容,當發現是客戶端讓自己開始連接時,就主動連接,如此就可完成連接工作。


因此在互聯網上可以訪問到局域網裡通過 NAT (透明代理)代理上網的電腦,並且可以穿過防火牆。與傳統的遠程控制軟件相反,反彈端口型軟件的服務端會主動連接客戶端,客戶端的監聽端口一般開為80(即用於網頁瀏覽的端口),這樣,即使用戶在命令提示符下使用「netstat -a」命令檢查自己的端口,發現的也是類似「TCPUserIP:3015ControllerIP:httpESTABLISHED」的情況,稍微疏忽一點你就會以為是自己在瀏覽網頁,而防火牆也會同樣這麼認為的。於是,與一般的軟件相反,反彈端口型軟件的服務端主動連接客戶端,這樣就可以輕易的突破防火牆的限制。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
playho348 (2013-04-16)
感謝您發表一篇好文章
舊 2005-09-24, 11:53 PM   #2 (permalink)
長老會員
榮譽勳章
UID - 6709
在線等級: 級別:28 | 在線時長:920小時 | 升級還需:37小時級別:28 | 在線時長:920小時 | 升級還需:37小時級別:28 | 在線時長:920小時 | 升級還需:37小時級別:28 | 在線時長:920小時 | 升級還需:37小時級別:28 | 在線時長:920小時 | 升級還需:37小時級別:28 | 在線時長:920小時 | 升級還需:37小時級別:28 | 在線時長:920小時 | 升級還需:37小時級別:28 | 在線時長:920小時 | 升級還需:37小時
註冊日期: 2002-12-08
住址: taiwan
文章: 1234
精華: 0
現金: 16905 金幣
資產: 23425 金幣
預設

謝謝大大的告知
真是受益良多^^
__________________
hi !!!
geroryan 目前離線  
送花文章: 4, 收花文章: 116 篇, 收花: 150 次
舊 2006-08-24, 10:33 AM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

檢視開放連接阜判斷木馬或其他黑客程式的方法

當前最為常見的木馬通常是基於TCP/UDP協議進行client端與server端之間的通訊的,既然利用到這兩個協議,就不可避免要在server端(就是被種了木馬的機器了)打開監聽連接阜來等待連接。例如鼎鼎大名的冰河使用的監聽連接阜是7626,Back Orifice 2000則是使用54320等等。那麼,我們可以利用檢視本機開放連接阜的方法來檢查自己是否被種了木馬或其它黑客程式。以下是詳細方法介紹。
  
  1. Windows本身自帶的netstat命令
  
  關於netstat命令,我們先來看看windows幫助文件中的介紹:
  
  Netstat
  
  顯示協議統計和當前的 TCP/IP 網路連接。該命令只有在安裝了 TCP/IP 協議後才可以使用。
  
  netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
  
  參數  
  -a  
  顯示所有連接和偵聽連接阜。服務器連接通常不顯示。  
  -e  
  顯示乙太網統計。該參數可以與 -s 選項結合使用。  
  -n  
  以數位格式顯示地址和連接阜號(而不是嘗試查找名稱)。  
  -s  
  顯示每個協議的統計。預定情況下,顯示 TCP、UDP、ICMP 和 IP 的統計。-p 選項可以用來指定預定的子集。  
  -p protocol  
  顯示由 protocol 指定的協議的連接;protocol 可以是 tcp 或 udp。如果與 -s 選項一同使用顯示每個協議的統計,protocol 可以是 tcp、udp、icmp 或 ip。  
  -r  
  顯示路由表的內容。  
  interval  
  重新顯示所選的統計,在每次顯示之間暫停 interval 秒。按 CTRL+B 停止重新顯示統計。如果省略該參數,netstat 將印表一次當前的配置訊息。
  
  好了,看完這些幫助文件,我們應該明白netstat命令的使用方法了。現在就讓我們現學現用,用這個命令看一下自己的機器開放的連接阜。進入到命令行下,使用netstat命令的a和n兩個參數:  
  C:\>netstat -an  
  Active Connections
  
  Proto Local Address Foreign Address State
  TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
  TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
  TCP 0.0.0.0:7626 0.0.0.0:0 LISTENING
  UDP 0.0.0.0:445 0.0.0.0:0
  UDP 0.0.0.0:1046 0.0.0.0:0
  UDP 0.0.0.0:1047 0.0.0.0:0
  
  解釋一下,Active Connections是指當前本機活動連接,Proto是指連接使用的協議名稱,Local Address是本機電腦的 IP 地址和連接正在使用的連接阜號,Foreign Address是連接該連接阜的遠端電腦的 IP 地址和連接阜號,State則是表明TCP連接的狀態,你可以看到後面三行的監聽連接阜是UDP協議的,所以沒有State表示的狀態。看!我的機器的7626連接阜已經開放,正在監聽等待連接,像這樣的情況極有可能是已經感染了冰河!急忙離線網路,用殺毒軟件查殺病毒是正確的做法。

  2.工作在windows2000下的命令行工具fport
  
  使用windows2000的朋友要比使用windows9X的幸運一些,因為可以使用fport這個程式來顯示本機開放連接阜與工作行程的對應關係。
  
  Fport是FoundStone出品的一個用來列出系統中所有打開的TCP/IP和UDP連接阜,以及它們對應應用程式的完整路徑、PID標識、工作行程名稱等訊息的軟件。在命令行下使用,請看例子:
  
  D:\>fport.exe
  FPort v1.33 - TCP/IP Process to Port Mapper
  Copyright 2000 by Foundstone, Inc.
  http://www.foundstone.com
  
  Pid Process Port Proto Path
  748 tcpsvcs -> 7 TCP C:\WINNT\System32\ tcpsvcs.exe
  748 tcpsvcs -> 9 TCP C:\WINNT\System32\tcpsvcs.exe
  748 tcpsvcs -> 19 TCP C:\WINNT\System32\tcpsvcs.exe
  416 svchost -> 135 TCP C:\WINNT\system32\svchost.exe
  
  是不是一目瞭然了。這下,各個連接阜究竟是什麼程式打開的就都在你眼皮底下了。如果發現有某個可疑程式打開了某個可疑連接阜,可千萬不要大意哦,也許那就是一隻狡猾的木馬!
  
  Fport的最新版本是2.0。在很多網站都提供下載,但是為了安全起見,當然最好還是到它的老家去下: http://www.foundstone.com/knowledge/zips/fport.zip
  
  3.與Fport功能類似的圖形化界面工具Active Ports
  
  Active Ports為SmartLine出品,你可以用來監視電腦所有打開的TCP/IP/UDP連接阜,不但可以將你所有的連接阜顯示出來,還顯示所有連接阜所對應的程式所在的路徑,本機IP和遠端IP(試圖連接你的電腦IP)是否正在活動。
  
  是不是很直觀?更棒的是,它還提供了一個關閉連接阜的功能,在你用它發現木馬開放的連接阜時,可以立即將連接阜關閉。這個軟件工作在Windows NT/2000/XP平台下。你可以在 http://www.smartline.ru/software/aports.zip得到它。
  
  其實使用windows xp的用戶無須借助其它軟件即可以得到連接阜與工作行程的對應關係,因為windows xp所帶的netstat命令比以前的版本多了一個O參數,使用這個參數就可以得出連接阜與工作行程的對應來。
  
  上面介紹了幾種檢視本機開放連接阜,以及連接阜和工作行程對應關係的方法,通過這些方法可以輕鬆的發現基於TCP/UDP協議的木馬,希望能給你的愛機帶來幫助。但是對木馬重在防範,而且如果碰上反彈連接阜木馬,利用驅動程式及動態鏈接庫技術製作的新木馬時,以上這些方法就很難查出木馬的痕跡了。所以我們一定要養成良好的上網習慣,不要隨意執行郵件中的附件,安裝一套殺毒軟件,像國內的瑞星就是個查殺病毒和木馬的好幫手。從網上下載的軟件先用殺毒軟件檢查一遍再使用,在上網時打開網路防火牆和病毒實時監控,保護自己的機器不被可恨的木馬入侵。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
kidd817036 (2010-07-15)
感謝您發表一篇好文章
舊 2006-08-24, 10:33 AM   #4 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

檢視開放連接阜判斷木馬或其他黑客程式的方法

當前最為常見的木馬通常是基於TCP/UDP協議進行client端與server端之間的通訊的,既然利用到這兩個協議,就不可避免要在server端(就是被種了木馬的機器了)打開監聽連接阜來等待連接。例如鼎鼎大名的冰河使用的監聽連接阜是7626,Back Orifice 2000則是使用54320等等。那麼,我們可以利用檢視本機開放連接阜的方法來檢查自己是否被種了木馬或其它黑客程式。以下是詳細方法介紹。
  
  1. Windows本身自帶的netstat命令
  
  關於netstat命令,我們先來看看windows幫助文件中的介紹:
  
  Netstat
  
  顯示協議統計和當前的 TCP/IP 網路連接。該命令只有在安裝了 TCP/IP 協議後才可以使用。
  
  netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
  
  參數  
  -a  
  顯示所有連接和偵聽連接阜。服務器連接通常不顯示。  
  -e  
  顯示乙太網統計。該參數可以與 -s 選項結合使用。  
  -n  
  以數位格式顯示地址和連接阜號(而不是嘗試查找名稱)。  
  -s  
  顯示每個協議的統計。預定情況下,顯示 TCP、UDP、ICMP 和 IP 的統計。-p 選項可以用來指定預定的子集。  
  -p protocol  
  顯示由 protocol 指定的協議的連接;protocol 可以是 tcp 或 udp。如果與 -s 選項一同使用顯示每個協議的統計,protocol 可以是 tcp、udp、icmp 或 ip。  
  -r  
  顯示路由表的內容。  
  interval  
  重新顯示所選的統計,在每次顯示之間暫停 interval 秒。按 CTRL+B 停止重新顯示統計。如果省略該參數,netstat 將印表一次當前的配置訊息。
  
  好了,看完這些幫助文件,我們應該明白netstat命令的使用方法了。現在就讓我們現學現用,用這個命令看一下自己的機器開放的連接阜。進入到命令行下,使用netstat命令的a和n兩個參數:  
  C:\>netstat -an  
  Active Connections
  
  Proto Local Address Foreign Address State
  TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
  TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
  TCP 0.0.0.0:7626 0.0.0.0:0 LISTENING
  UDP 0.0.0.0:445 0.0.0.0:0
  UDP 0.0.0.0:1046 0.0.0.0:0
  UDP 0.0.0.0:1047 0.0.0.0:0
  
  解釋一下,Active Connections是指當前本機活動連接,Proto是指連接使用的協議名稱,Local Address是本機電腦的 IP 地址和連接正在使用的連接阜號,Foreign Address是連接該連接阜的遠端電腦的 IP 地址和連接阜號,State則是表明TCP連接的狀態,你可以看到後面三行的監聽連接阜是UDP協議的,所以沒有State表示的狀態。看!我的機器的7626連接阜已經開放,正在監聽等待連接,像這樣的情況極有可能是已經感染了冰河!急忙離線網路,用殺毒軟件查殺病毒是正確的做法。

  2.工作在windows2000下的命令行工具fport
  
  使用windows2000的朋友要比使用windows9X的幸運一些,因為可以使用fport這個程式來顯示本機開放連接阜與工作行程的對應關係。
  
  Fport是FoundStone出品的一個用來列出系統中所有打開的TCP/IP和UDP連接阜,以及它們對應應用程式的完整路徑、PID標識、工作行程名稱等訊息的軟件。在命令行下使用,請看例子:
  
  D:\>fport.exe
  FPort v1.33 - TCP/IP Process to Port Mapper
  Copyright 2000 by Foundstone, Inc.
  http://www.foundstone.com
  
  Pid Process Port Proto Path
  748 tcpsvcs -> 7 TCP C:\WINNT\System32\ tcpsvcs.exe
  748 tcpsvcs -> 9 TCP C:\WINNT\System32\tcpsvcs.exe
  748 tcpsvcs -> 19 TCP C:\WINNT\System32\tcpsvcs.exe
  416 svchost -> 135 TCP C:\WINNT\system32\svchost.exe
  
  是不是一目瞭然了。這下,各個連接阜究竟是什麼程式打開的就都在你眼皮底下了。如果發現有某個可疑程式打開了某個可疑連接阜,可千萬不要大意哦,也許那就是一隻狡猾的木馬!
  
  Fport的最新版本是2.0。在很多網站都提供下載,但是為了安全起見,當然最好還是到它的老家去下: http://www.foundstone.com/knowledge/zips/fport.zip
  
  3.與Fport功能類似的圖形化界面工具Active Ports
  
  Active Ports為SmartLine出品,你可以用來監視電腦所有打開的TCP/IP/UDP連接阜,不但可以將你所有的連接阜顯示出來,還顯示所有連接阜所對應的程式所在的路徑,本機IP和遠端IP(試圖連接你的電腦IP)是否正在活動。
  
  是不是很直觀?更棒的是,它還提供了一個關閉連接阜的功能,在你用它發現木馬開放的連接阜時,可以立即將連接阜關閉。這個軟件工作在Windows NT/2000/XP平台下。你可以在 http://www.smartline.ru/software/aports.zip得到它。
  
  其實使用windows xp的用戶無須借助其它軟件即可以得到連接阜與工作行程的對應關係,因為windows xp所帶的netstat命令比以前的版本多了一個O參數,使用這個參數就可以得出連接阜與工作行程的對應來。
  
  上面介紹了幾種檢視本機開放連接阜,以及連接阜和工作行程對應關係的方法,通過這些方法可以輕鬆的發現基於TCP/UDP協議的木馬,希望能給你的愛機帶來幫助。但是對木馬重在防範,而且如果碰上反彈連接阜木馬,利用驅動程式及動態鏈接庫技術製作的新木馬時,以上這些方法就很難查出木馬的痕跡了。所以我們一定要養成良好的上網習慣,不要隨意執行郵件中的附件,安裝一套殺毒軟件,像國內的瑞星就是個查殺病毒和木馬的好幫手。從網上下載的軟件先用殺毒軟件檢查一遍再使用,在上網時打開網路防火牆和病毒實時監控,保護自己的機器不被可恨的木馬入侵。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-09-12, 06:12 AM   #5 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

一部分網路木馬的隱藏技術

一部分網路木馬的隱藏技術

以前,我曾認為只要不隨便執行網友發來的文件就不會中病毒或木馬,但後來出現了利用漏洞傳播的衝擊波、震盪波;以前,我曾認為不上小網站就不會中網頁木馬,但後來包括國內某知名遊戲網站在內的多個大網站均在其首頁被黑客掛上了木馬。從此,我知道:安全,從來沒有絕對的。

  雖然沒有絕對的安全,但如果能知已知彼,瞭解木馬的隱藏手段,對於木馬即使不能百戰百勝,也能做到及時 發現,使損失最小化。那麼,木馬究竟是如何躲在我們的系統中的呢?

  最基本的隱藏:不可見窗體+隱藏文件

  木馬程式無論如何神秘,但歸根究底,仍是Win32平台下的一種程式。Windows下常見的程式有兩種:

  1.Win32應用程式(Win32 Application),比如QQ、Office等都屬於此行列。

  2.Win32控制台程式(Win32 Console),比如硬碟啟始修復程式FixMBR。

  其中,Win32應用程式通常會有應用程式界面,比如系統中自帶的「計算器」就有提供各種數位按鍵的應用程式界面。木馬雖然屬於Win32應用程式,但其一般不包含窗體或隱藏了窗體(但也有某些特殊情況,如木馬使用者與被害者聊天的視窗),並且將木馬文件內容設置為「隱藏」,這就是最基本的隱藏手段,稍有經驗的用戶只需打開「任務管理器」,並且將「資料夾選項」中的「顯示所有文件」勾選即可輕鬆找出木馬,於是便出現了下面要介紹的「工作行程隱藏」技術。

  第一代工作行程隱藏技術:Windows 98的後門

  在Windows 98中,微軟提供了一種能將工作行程註冊為服務工作行程的方法。儘管微軟沒有公開提供這種方法的技術實現細節(因為Windows的後續版本中沒有提供這個機制),但仍有高手發現了這個秘密,這種技術稱為RegisterServiceProcess。只要利用此方法,任何程式的工作行程都能將自己註冊為服務工作行程,而服務工作行程在Windows 98中的任務管理器中恰巧又是不顯示的,所以便被木馬程式鑽了空子。

  要對付這種隱藏的木馬還算簡單,只需使用其他第三方工作行程管理工具即可找到其所在,並且採用此技術進行隱藏的木馬在Windows 2000/XP(因為不支持這種隱藏方法)中就得現形!中止該工作行程後將木馬文件刪除即可。可是接下來的第二代工作行程隱藏技術,就沒有這麼簡單對付了。

  第二代工作行程隱藏技術:工作行程插入

  在Windows中,每個工作行程都有自己的私有記憶體位址空間,當使用指標(一種訪問記憶體的機制)訪問記憶體時,一個工作行程無法訪問另一個工作行程的記憶體位址空間,就好比在未經鄰居同意的情況下,你無法進入鄰居家吃飯一樣。比如QQ在記憶體中存放了一張圖片的資料,而MSN則無法通過直接讀取記憶體的方式來獲得該圖片的資料。這樣做同時也保證了程式的穩定性,如果你的工作行程存在一個錯誤,改寫了一個隨機位址上的記憶體,這個錯誤不會影響另一個工作行程使用的記憶體。
你知道嗎——工作行程(Process)是什麼

  對應用程式來說,工作行程就像一個大容器。在應用程式被執行後,就相當於將應用程式裝進容器裡了,你可以往容器裡加其他東西(如:應用程式在執行時所需的變數資料、需要引用的DLL文件等),當應用程式被執行兩次時,容器裡的東西並不會被倒掉,系統會找一個新的工作行程容器來容納它。

  一個工作行程可以包含若幹線程(Thread),線程可以幫助應用程式同時做幾件事(比如一個線程向磁碟寫入文件,另一個則接收用戶的按鍵操作並及時做出反應,互相不干擾),在程式被執行後中,系統首先要做的就是為該程式工作行程建立一個預定線程,然後程式可以根據需要自行新增或刪除相關的線程

  1.工作行程插入是什麼

  獨立的位址空間對於編程人員和用戶來說都是非常有利的。對於編程人員來說,系統更容易捕獲隨意的記憶體讀取和寫入操作。對於用戶來說,操作系統將變得更加健壯,因為一個應用程式無法破壞另一個工作行程或操作系統的執行。當然,操作系統的這個健壯特性是要付出代價的,因為要編寫能夠與其他工作行程進行通信,或者能夠對其他工作行程進行操作的應用程式將要困難得多。但仍有很多種方法可以打破工作行程的界限,訪問另一個工作行程的位址空間,那就是「工作行程插入」(Process Injection)。一旦木馬的DLL插入了另一個工作行程的位址空間後,就可以對另一個工作行程為所欲為,比如下文要介紹的盜QQ密碼。

2.木馬是如何盜走QQ密碼的

  普通情況下,一個應用程式所接收的鍵盤、滑鼠操作,別的應用程式是無權「過問」的。可盜號木馬是怎麼偷偷記錄下我的密碼的呢?木馬首先將1個DLL文件插入到QQ的工作行程中並成為QQ工作行程中的一個線程,這樣該木馬DLL就赫然成為了QQ的一部分!然後在用戶輸入密碼時,因為此時木馬DLL已經進入QQ工作行程內部,所以也就能夠接收到用戶傳遞給QQ的密碼鍵入了,真是「家賊難防」啊!

  3.如何插入工作行程

  (1)使用註冊表插入DLL

  早期的工作行程插入式木馬的伎倆,通過修改註冊表中的[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs]來達到插入工作行程的目的。缺點是不實時,修改註冊表後需要重新啟動才能完成工作行程插入。

  (2)使用掛鉤(Hook)插入DLL

  比較高階和隱蔽的方式,通過系統的掛鉤機制(即「Hook」,類似於DOS時代的「中斷」)來插入工作行程(一些盜QQ木馬、鍵盤記錄木馬以Hook方式插入到其他工作行程中「偷雞摸狗」),需要呼叫SetWindowsHookEx函數(也是一個Win32 API函數)。缺點是技術門檻較高,程式除錯困難,這種木馬的製作者必須具有相當的Win32編程水平。
你知道嗎——什麼是API

  Windows中提供各種功能實現的接頭稱為Win32 API

  Application Programming Interface,即「應用程式編程接頭」),如一些程式需要對磁碟上的文件進行讀寫,就要先通過對相應的API(文件讀寫就要呼叫文件相關的API)發出呼叫請求,然後API根據程式在呼叫其函數時提供的參數(如讀寫文件就需要同時給出需要讀寫的文件的文件名及路徑)來完成請求實現的功能,最後將呼叫結果(如寫入文件成功,或讀取文件失敗等)返回給程式。

  (3)使用遠端線程函數(CreateRemoteThread)插入DLL

  在Windows 2000及以上的系統中提供了這個「遠端工作行程」機制,可以通過一個系統API函數來向另一個工作行程中創建線程(插入DLL)。缺點很明顯,僅支持Windows 2000及以上系統,在國內仍有相當多用戶在使用Windows 98,所以採用這種工作行程插入方式的木馬缺乏平台通用性。

  木馬將自身作為DLL插入別的工作行程空間後,用檢視工作行程的方式就無法找出木馬的蹤跡了,你能看到的僅僅是一些正常程式的工作行程,但木馬卻已經偷偷潛入其中了。解決的方法是使用支持「工作行程模塊檢視」的工作行程管理工具(如「Windows優化大師」提供的工作行程檢視),木馬的DLL模塊就會現形了。

不要相信自己的眼睛:恐怖的工作行程「蒸發」

  嚴格地來講,這應該算是第2.5代的工作行程隱藏技術了,可是它卻比前幾種技術更為可怕得多。這種技術使得木馬不必將自己插入到其他工作行程中,而可以直接消失!

  它通過Hook技術對系統中所有程式的工作行程檢測相關API的呼叫進行了監控,「任務管理器」之所以能夠顯示出系統中所有的工作行程,也是因為其呼叫了EnumProcesses等工作行程相關的API函數,工作行程訊息都包含在該函數的返回結果中,由發出呼叫請求的程式接收返回結果並進行處理(如「任務管理器」在接收到結果後就在工作行程列表中顯示出來)。

  而木馬由於事先對該API函數進行了Hook,所以在「任務管理器」(或其他呼叫了列舉工作行程函數的程式)呼叫EnumProcesses函數時(此時的API函數充當了「內線」的角色),木馬便得到了通知,並且在函數將結果(列出所有工作行程)返回給程式前,就已將自身的工作行程訊息從返回結果中抹去了。就好比你正在看電視節目,卻有人不知不覺中將電視接上了DVD,你在不知不覺中就被欺騙了。

  所以無論是「任務管理器」還是殺毒軟件,想對這種木馬的工作行程進行檢測都是徒勞的。這種木馬目前沒有非常有效的查殺手段,只有在其執行前由殺毒軟件檢測到木馬文件並阻止其病毒體的執行。當時還有一種技術是由木馬程式將其自身的工作行程訊息從Windows系統用以記錄工作行程訊息的「工作行程鏈表」中刪除,這樣工作行程管理工具就無法從「工作行程鏈表」中獲得木馬的工作行程訊息了。但由於缺乏平台通用性而且在程式執行時有一些問題,所以沒有被廣泛採用。

  你知道嗎——什麼是Hook

  Hook是Windows中提供的一種用以替換DOS下「中斷」的一種系統機制,中文譯名為「掛鉤」或「鉤子」。在對特定的系統事件(包括上文中的特定API函數的呼叫事件)進行Hook後,一旦發生已Hook的事件,對該事件進行Hook的程式(如:木馬)就會收到系統的通知,這時程式就能在第一時間對該事件做出響應(木馬程式便搶在函數返回前對結果進行了修改)。

  毫無蹤跡:全方位立體隱藏

  利用剛才介紹的Hook隱藏工作行程的手段,木馬可以輕而易舉地實現文件的隱藏,只需將Hook技術應用在文件相關的API函數上即可,這樣無論是「視窗檔案總管」還是殺毒軟件都無法找出木馬所在了。更令人吃驚的是,現在已經有木馬(如:灰鴿子)利用該技術實現了文件和工作行程的隱藏。要防止這種木馬最好的手段仍是利用殺毒軟件在其執行前進行攔截。

  跟殺毒軟件對著干:反殺毒軟件外殼

  木馬再狡猾,可是一旦被殺毒軟件定義了特徵碼,在執行前就被攔截了。要躲過殺毒軟件的追殺,很多木馬就被加了殼,相當於給木馬穿了件衣服,這樣殺毒軟件就認不出來了,但有部分殺毒軟件會嘗試對常用殼進行脫殼,然後再查殺(小樣,別以為穿上件馬夾我就不認識你了)。除了被動的隱藏外,最近還發現了能夠主動和殺毒軟件對著干的殼,木馬在加了這種殼之後,一旦執行,則外殼先得到程式控制權,由其通過各種手段對系統中安裝的殺毒軟件進行破壞,最後在確認安全(殺毒軟件的保護已被瓦解)後由殼釋放包裹在自己「體內」的木馬體並執行之。對付這種木馬的方法是使用具有脫殼能力的殺毒軟件對系統進行保護。

  你知道嗎——什麼是殼

  顧名思義,你可以很輕易地猜到,這是一種包在外面的東西。沒錯,殼能夠將文件(比如EXE)包住,然後在文件被執行時,首先由殼獲得控制權,然後釋放並執行包裹著的文件體。很多殼能對自己包住的文件體進行加密保護,這樣就可以防止殺毒軟件的查殺。比如原先殺毒軟件定義的該木馬的特徵是「12345」,如果發現某文件中含有這個特徵,就認為該文件是木馬,而帶有加密保護功能的殼則會對文件體進行加密保護(如:原先的特徵是「12345」,加密保護後變成了「54321」,這樣殺毒軟件當然不能靠文件特徵進行檢查了)。脫殼指的就是將文件外邊的殼去除,恢復文件沒有加殼前的狀態。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 04:19 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1