外部を勝手に攻撃しているのは誰?コマンドを使ってトラブルシューティング(9)(2/2 ページ)

» 2005年06月14日 00時00分 公開
[山本洋介@IT]
前のページへ 1|2       

問題のPCと、接続状況、利用アプリは?

 ああ、どうすればいいのでしょう。ため息をついて、もう一度ハブを見てみると、そこにメモが置いてあります。

   「netstatを使えばいろいろな情報が見られますよ」   

 あ、そうか、netstatを使えばいいんだった。

 律子さんは再び部長のマシンに向かうと、部長のノートパソコンをPCのコマンドプロンプトを立ち上げると、netstatコマンドを打ち込みます。まずは、-sオプションで、パケットの送受信量を確かめます。

部長のPCのパケットの送受信量をnetstat-sで確かめる

C:\>netstat -s 
IPv4 Statistics 
Packets Received = 402030
Received Header Errors = 0
Received Address Errors = 105934
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 62
Received Packets Delivered = 317331
Output Requests = 218724
Routing Discards = 0
Discarded Output Packets = 0
Output Packet No Route = 0
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures = 0
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0 
ICMPv4 Statistics 
Received Sent
Messages 271604 9 
Errors 0 0 
Destination Unreachable 271596 1 
Time Exceeded 0 0 
Parameter Problems 0 0 
Source Quenches 0 0 
Redirects 0 0 
Echos 0 8 
Echo Replies 8 0 
Timestamps 0 0 
Timestamp Replies 0 0 
Address Masks 0 0 
Address Mask Replies 0 0  
TCP Statistics for IPv4 
Active Opens = 11743
Passive Opens = 111
Failed Connection Attempts = 168
Reset Connections = 3225
Current Connections = 2
Segments Received = 185456
Segments Sent = 159941
Segments Retransmitted = 215 
UDP Statistics for IPv4 
Datagrams Received = 152
No Ports = 271606
Receive Errors = 0
Datagrams Sent = 271665

 普段はメールとWebしか見ない部長が大量のデータの送受信を行っているようです。

律子 「ご覧ください。大量のパケットが送受信されていますけど、何か作業なされてますか?」

部長 「いや、ワシは別に何もしておらんが」

律子 「これがデータ量です。」

部長 「あ……」

 パケットの送受信量を見るために「ネットワーク接続の設定」の「動作状況」を見るとリアルタイムに送信量が増えています。

律子 「あれ? リアルタイムにデータがたくさん送られているようですが」

部長 「あ……」

 次に、-aオプションでネットワーク接続の状態を調べることにします。

部長のPCのネットワーク接続は?

C:\>netstat -an  
Active Connections 
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1064 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1782 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1783 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1784 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1786 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1789 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1790 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1792 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1793 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1794 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1795 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1796 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1797 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1798 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1799 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1800 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1802 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1803 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1804 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1805 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1806 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1807 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1808 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1809 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1810 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1811 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1812 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1813 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1814 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1815 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1816 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1817 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1818 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1819 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1820 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1821 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1822 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1823 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1824 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1825 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1826 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1827 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1828 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1829 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1830 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1831 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1832 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1833 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1834 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1835 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1836 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1837 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1838 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1839 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1840 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1841 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3583 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5000 0.0.0.0:0 LISTENING
TCP 127.0.0.1:445 127.0.0.1:1064 ESTABLISHED
TCP 127.0.0.1:1064 127.0.0.1:445 ESTABLISHED
TCP 192.168.0.105:139 0.0.0.0:0 LISTENING
TCP 192.168.0.105:1037 0.0.0.0:0 LISTENING
TCP 192.168.0.105:1037 192.168.0.1:139 ESTABLISHED
TCP 192.168.0.105:1782 192.168.0.2:80 SYN_SENT
TCP 192.168.0.105:1783 192.168.0.3:80 SYN_SENT
TCP 192.168.0.105:1784 192.168.0.3:445 SYN_SENT
TCP 192.168.0.105:1785 0.0.0.0:0 LISTENING
TCP 192.168.0.105:1785 192.168.0.3:139 SYN_SENT
TCP 192.168.0.105:1786 192.168.0.5:445 SYN_SENT
TCP 192.168.0.105:1788 0.0.0.0:0 LISTENING
TCP 192.168.0.105:1788 192.168.0.5:139 SYN_SENT
TCP 192.168.0.105:1789 192.168.0.8:80 SYN_SENT
TCP 192.168.0.105:1790 192.168.0.4:445 SYN_SENT
TCP 192.168.0.105:1791 0.0.0.0:0 LISTENING
TCP 192.168.0.105:1791 192.168.0.4:139 SYN_SENT
TCP 192.168.0.105:1792 192.168.0.9:135 SYN_SENT
TCP 192.168.0.105:1793 192.168.0.10:135 SYN_SENT
TCP 192.168.0.105:1794 192.168.0.12:135 SYN_SENT
TCP 192.168.0.105:1795 192.168.0.11:135 SYN_SENT
TCP 192.168.0.105:1796 192.168.0.13:135 SYN_SENT
TCP 192.168.0.105:1797 192.168.0.14:135 SYN_SENT
TCP 192.168.0.105:1798 192.168.0.15:135 SYN_SENT
TCP 192.168.0.105:1799 192.168.0.16:135 SYN_SENT
TCP 192.168.0.105:1800 192.168.0.17:135 SYN_SENT
TCP 192.168.0.105:1801 192.168.0.18:135 SYN_SENT
TCP 192.168.0.105:1802 192.168.0.19:135 SYN_SENT
TCP 192.168.0.105:1803 192.168.0.20:135 SYN_SENT
TCP 192.168.0.105:1804 192.168.0.21:135 SYN_SENT
TCP 192.168.0.105:1805 192.168.0.22:135 SYN_SENT
TCP 192.168.0.105:1806 192.168.0.23:135 SYN_SENT
TCP 192.168.0.105:1807 192.168.0.24:135 SYN_SENT
TCP 192.168.0.105:1808 192.168.0.25:135 SYN_SENT
TCP 192.168.0.105:1809 192.168.0.26:135 SYN_SENT
TCP 192.168.0.105:1810 192.168.0.27:135 SYN_SENT
TCP 192.168.0.105:1811 192.168.0.28:135 SYN_SENT
TCP 192.168.0.105:1812 192.168.0.29:135 SYN_SENT
TCP 192.168.0.105:1813 192.168.0.30:135 SYN_SENT
TCP 192.168.0.105:1814 192.168.0.31:135 SYN_SENT
TCP 192.168.0.105:1815 192.168.0.32:135 SYN_SENT
TCP 192.168.0.105:1816 192.168.0.33:135 SYN_SENT
TCP 192.168.0.105:1817 192.168.0.34:135 SYN_SENT
TCP 192.168.0.105:7226 0.0.0.0:0 LISTENING
UDP 0.0.0.0:135 *:* 
UDP 0.0.0.0:445 *:* 
UDP 0.0.0.0:500 *:* 
UDP 0.0.0.0:1026 *:* 
UDP 0.0.0.0:1027 *:* 
UDP 0.0.0.0:1028 *:* 
UDP 0.0.0.0:1043 *:* 
UDP 127.0.0.1:123 *:* 
UDP 127.0.0.1:1900 *:* 
UDP 192.168.0.105:123 *:* 
UDP 192.168.0.105:137 *:* 
UDP 192.168.0.105:138 *:* 
UDP 192.168.0.105:1900 *:* 
UDP 192.168.0.105:12183 *:* 
UDP 192.168.0.105:62710 *:* 

 あるIPアドレスあてにたくさんのSYN_SENTパケットを送信していることが見られます。さすがにうちの会社にハッキングできる人なんていないか。と、ほっとしたような、残念なような気分ですが、やはり原因はウイルスでした。

律子 「何かポートに大量のパケットを送っているようです。ウイルスみたいですね」

部長 「ハイ」

 だんだんと部長の声が小さくなっていきます。

律子 「部長のマシンが原因みたいですので、ネットワークから切り離すことにします」

部長 「ハイ」

 ひとまず部長のPCからケーブルを抜きます。

 最後に、-bvオプションを使って、何のアプリケーションがネットワークにアクセスしているのか確かめてみることにします。

註釈:netstat-bvオプションはWindows XP SP2と2003Serverでのみ使用可能です。Linuxではlsofコマンド、そのほかのWindowsではfportなどのフリーツールを使うといいでしょう。

部長のPCのアプリケーションで問題なのは?

C:\>netstat -abv 
Active Connections 
Proto Local Address Foreign Address State PID
TCP chief:epmap chief:0 LISTENING 1000
c:\windows\system32\WS2_32.dll
C:\WINDOWS\system32\RPCRT4.dll
c:\windows\system32\rpcss.dll
C:\WINDOWS\system32\svchost.exe
C:\WINDOWS\system32\ADVAPI32.dll
[svchost.exe] 
(略)   
TCP chief:1802 *:* 1540
C:\WINDOWS\system32\WS2_32.dll
C:\WINDOWS\system32\wininet.dll
C:\WINDOWS\system32\kernel32.dll
[spollsv.exe]  
TCP chief:1803 *:* 1540
C:\WINDOWS\system32\WS2_32.dll
C:\WINDOWS\system32\wininet.dll
C:\WINDOWS\system32\kernel32.dll
[spollsv.exe]  
TCP chief:1804 *:* 1540
C:\WINDOWS\system32\WS2_32.dll
C:\WINDOWS\system32\wininet.dll
C:\WINDOWS\system32\kernel32.dll
[spollsv.exe] 
(略)

 どうやら、このspollsv.exeが、この大量のネットワークアクセスを引き起こしています。

律子 「部長、ウイルススキャナが起動していないようですが」

部長 「いや、このマシン、非力だから、動かすと重たくなってイヤだったんだよ」

部長 「あの……、律子さん、お手数だけど、く、駆除してもらえるかな?」

律子 「いわれなくてもやりますよ」

 妙にへりくだった部長を横に無言でウイルスを駆除する律子さんでした。

ちょっと解説<ウイルスのトラブル>

 ネットワークをいくらウイルススキャナなどで防御していても、未知の脆弱性やユーザーのついうっかりやわがままのために、ウイルスに感染してしまうことはあるものです。

 ウイルスやスパイウェアなど自分の予期しないネットワークアクセスをするプログラムを見付け出すには、netstatコマンドが役に立ちます。おかしいと思ったときにはウイルススキャナに任せきりでなく、netstatコマンドやtasklistコマンドなどを使ってマシン内部のプロセスの状況をできるだけ把握しておくようにしたいものです。(著者)

図1:ウイルスによるトラブル 図1:ウイルスによるトラブル

<参考サイト>

netstat - ホストのネットワーク統計や状態を確認するhttp://www.atmarkit.co.jp/fnetwork/netcom/netstat/netstat.html

@ITWindows TIPS netstatでリッスンしているプロセスを特定する http://www.atmarkit.co.jp/fwin2k/win2ktips/236portcheck/portcheck.html


この連載は@IT Master of IP Networkフォーラムの会議室のやりとりを参考にしています。



前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。