木馬是一種帶有惡意性質的遠程控制軟件,木馬一般分為客戶端(Client)和服務器端(Server),客戶端就是本地使用的各種命令的控制台,服務器端則是給別人運行,只有運行過服務器端的計算機才能夠完全受控。
當前最為常見的木馬通常是基於TCP/UDP協議進行client端與server端之間的通訊的,既然利用到這兩個協議,就不可避免要在server端(就是被種了木馬的機器了)打開監聽端口來等待連接。例如鼎鼎大名的冰河使用的監聽端口是7626,Back Orifice 2000則是使用54320等等。那麼,我們可以利用查看本機開放端口的方法來檢查自己是否被種了木馬或其它hacker程序。以下是詳細方法介紹。
Windows本身自帶的netstat命令
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 -a -n
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端口已經開放,正在監聽等待連接,像這樣的情況極有可能是已經感染了冰河!所以應該急忙斷開網絡,並用殺毒軟件查殺病毒。