ああ、どうすればいいのでしょう。ため息をついて、もう一度ハブを見てみると、そこにメモが置いてあります。
「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コマンドなどを使ってマシン内部のプロセスの状況をできるだけ把握しておくようにしたいものです。(著者)
<参考サイト>
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フォーラムの会議室のやりとりを参考にしています。
Copyright © ITmedia, Inc. All Rights Reserved.