2008年11月15日 星期六

windows 查看 sockets(列出 active/listen connec...

netstat指令相當的好用
不用靠其它程式就能判斷電腦都是跟哪些IP在連線
而這些連線是由哪些程式帶起來的
找出可疑的process,其它就好解決了


1. 查看 sockets(列出 active/listen connections)

netstat -a


2. 篩選特定協定,在此僅列 TCP

netstat -ap tcp

也可利用 windows 內建的 find 指令

netstat -a | find "TCP"



3. 顯示 Port 號碼而非名稱

netstat -an | find "TCP"



4. 找出觸發每個 tcp 連線的 process 號碼(PID)

netstat -aop tcp



5. 找出 process 檔案名稱(配合上一步取得的 PID)

在此可採用 netstat 的 -b 參數(比較慢,參考步驟九,XP SP2、2003 SP1)

或是 tasklist (XP 專業版、2003、Vista)



6. 查看通訊協定狀態

netstat -sp tcp

netstat -sp ip

netstat -sp udp

netstat -sp icmp



7. 查看路由表 (同 route print 指令)

netstat -r



8. 查看乙太網路(網卡)狀態

netstat -e



9. 找出觸發每個 tcp 連線的 process 號碼及檔案名稱

與 tasklist 不同的是還多了相關 dll 資訊

netstat -abp tcp



10. 延續上一步,查看更詳盡資訊(速度更慢)

netstat -abvp tcp







想監控特定連線的來源或 Port,在 UNIX 中內建了不少好用的程式,組合各個小工具後更是威力無窮;Windows 在這方面雖然也有相當多類似的程式可安裝,但內建的 Netstat 用起來總是有些缺憾,在 SANS 看到這篇 Fun With Windows Netstat ,提到一些小技巧,用例子講述大家就可明瞭:





netstat –na 1 | find "特定IP"

顯示特定 IP 之連線,每隔一秒更新畫面一次 (適用於像是你已鎖定可疑對象,但不知他何時會連過來)

-a 代表列出所有連線

-n 代表僅列出 IP 及 Port,不解析為 hostname 及 service name,速度會快很多





netstat –nao 1 | find "特定IP"

加上 -o 參數可顯示觸發該連線之 process ID,

欲知 process name 則可以透過內建的 tasklist 這程式





netstat –na 1 | find "4444" | find "ESTABLISHED"

也可以針對特定 Port,不分對象的進行監控,

再透過 find "ESTABLISHED" 篩選掉僅 LISTENING 的部份





範例: 監控 tcp port 有建立成功的連線,加上 -o 參數可顯示觸發該連線之 process ID

netstat 1 -anpo tcp | find "ESTABLISHED"

關閉所有會連線的程式,如果還有出現連線記錄
根據pid到工作管理員查詢可疑的程式

沒有留言: