metasploitを使ってみよう!nmapによるポートスキャン

セキュリティ

前回から結構時間が空いてしまいましたが、続きをやっていきます。

metasploitを使う環境もできたので、さっそくと実行いきたいところですが、その前にnmapによるポートスキャンを行っていきます。

nmapはよく使用するツールですので知っている方も多くいるでしょう。

記事中で認識が異なる箇所がある場合はお知らせ頂けると非常に助かります。

nmapについて

まずはnmapの概要についてです。nmapのサイトより。

Nmap (“Network Mapper”)は、ネットワーク調査およびセキュリティ監査を行うためのオープンソースのツールである。大規模ネットワークを高速でスキャンするように設計されているが、単一のホストに対してもまったく問題なく機能する。Nmapは生の(raw)IPパケットを用いて、ネットワーク上でどのようなホストか利用可能になっているか、これらのホストが提供しているサービス(アプリケーション名とバージョン)は何か、ホストが実行しているOS(OS名とバージョン)は何か、どのような種類のパケットフィルタ/ファイアウォールが使用されているかなど、その他数多くの特徴を斬新な方法で判別する。Nmapは、セキュリティ監査用に広く利用されているばかりでなく、ネットワーク・インベントリ(資産情報収集)、サービスのアップグレード予定管理、ホストやサービスのアップタイム(利用可能時間)の監視等の日常業務にNmapを役立てているシステム管理者やネットワーク管理者も多い。

上記説明のとおり、非常に色々なところに使用されているツールです。

ネットワークの管理者はもちろんですが、セキュリティの診断やハッカーも使用しています。

対象のIPアドレス(またはホスト名)に対して、ツールを実行するとそのサーバに空いているポートを判別することができます。

かなりオプションが多いツールであり、色々な実行のやり方がありますが、ここではスタンダードなやり方(と思ってます)で実行していきます。

metasploitable 2への実行

まずは「Kali Linux」から「metasploitable 2(以降はやられサーバ)」へ通信が通るか見てみます。

それぞれのIPアドレスを確認します。

Kali Linux:192.168.70.130

やられサーバ:192.168.70.140

となっていましたので、「Kali Linux」からやられサーバへpingが通るか確認しましょう。

$ ping 192.168.70.140
PING 192.168.70.140 (192.168.70.140) 56(84) bytes of data.
64 bytes from 192.168.70.140: icmp_seq=1 ttl=64 time=0.418 ms
64 bytes from 192.168.70.140: icmp_seq=2 ttl=64 time=0.232 ms
64 bytes from 192.168.70.140: icmp_seq=3 ttl=64 time=0.268 ms
^C
--- 192.168.70.140 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2030ms
rtt min/avg/max/mdev = 0.232/0.306/0.418/0.080 ms

ちなみにそんなん通るに決まってんだろ!と思うかもしれませんが、お仕事でやる場合はこういった一つ一つの確認はとても大事になります。。。

コマンドは以下のオプションを付けて実施しました。

nmap 192.168.70.140 -p 1-65535 -A -sS -oN 192.168.70.140.txt
#-p 1-65535:スキャンするポートを指定、今回はフルポートで実施
#-A:OS情報と、バージョン情報の詳細を出力
#-sS:SYNスキャンで実施、デフォルトでこれですが念のため指定
#-oN:念のためテキストに結果を出力

今回は適当に決めましたので、実際に会社でやる際は会社ごとにオプションが決まっていたりするかと思いますので、そちらを使用してください。

フルポートスキャンを行いましたが、時間は3分ほどで終わりました。

空いているポートが多いので早かったですね。

結果を以下に記載しますが、全体だと長くなってしまうので、後半は省略します。

PORT      STATE SERVICE     VERSION
21/tcp    open  ftp         vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to 192.168.70.130
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      vsFTPd 2.3.4 - secure, fast, stable
|_End of status
22/tcp    open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey:
|   1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
|_  2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
23/tcp    open  telnet      Linux telnetd
25/tcp    open  smtp        Postfix smtpd
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: 2010-03-17T14:07:45
|_Not valid after:  2010-04-16T14:07:45
|_ssl-date: 2019-02-10T12:18:11+00:00; -15s from scanner time.
| sslv2:
|   SSLv2 supported
|   ciphers:
|     SSL2_DES_192_EDE3_CBC_WITH_MD5
|     SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
|     SSL2_DES_64_CBC_WITH_MD5
|     SSL2_RC2_128_CBC_WITH_MD5
|     SSL2_RC4_128_EXPORT40_WITH_MD5
|_    SSL2_RC4_128_WITH_MD5
53/tcp    open  domain      ISC BIND 9.4.2
| dns-nsid:
|_  bind.version: 9.4.2
80/tcp    open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
|_http-server-header: Apache/2.2.8 (Ubuntu) DAV/2
|_http-title: Metasploitable2 - Linux
111/tcp   open  rpcbind     2 (RPC #100000)
| rpcinfo:
|   program version   port/proto  service
|   100000  2            111/tcp  rpcbind
|   100000  2            111/udp  rpcbind
|   100003  2,3,4       2049/tcp  nfs
|   100003  2,3,4       2049/udp  nfs
|   100005  1,2,3      37024/tcp  mountd
|   100005  1,2,3      46082/udp  mountd
|   100021  1,3,4      41774/udp  nlockmgr
|   100021  1,3,4      43677/tcp  nlockmgr
|   100024  1          37852/udp  status
|_  100024  1          43461/tcp  status
139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
512/tcp   open  exec        netkit-rsh rexecd
513/tcp   open  login       OpenBSD or Solaris rlogind
514/tcp   open  tcpwrapped
1099/tcp  open  java-rmi    Java RMI Registry
1524/tcp  open  bindshell   Metasploitable root shell
2049/tcp  open  nfs         2-4 (RPC #100003)
2121/tcp  open  ftp         ProFTPD 1.3.1
3306/tcp  open  mysql       MySQL 5.0.51a-3ubuntu5
| mysql-info:
|   Protocol: 10
|   Version: 5.0.51a-3ubuntu5
|   Thread ID: 8
|   Capabilities flags: 43564
|   Some Capabilities: Speaks41ProtocolNew, SwitchToSSLAfterHandshake, SupportsCompression, Support41Auth, ConnectWithDatabase, SupportsTransactions, LongColumnFlag
|   Status: Autocommit
|_  Salt: }n2J\rISIP6\P[V~9?p6
3632/tcp  open  distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
5432/tcp  open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: 2010-03-17T14:07:45
|_Not valid after:  2010-04-16T14:07:45
|_ssl-date: 2019-02-10T12:18:10+00:00; -15s from scanner time.
5900/tcp  open  vnc         VNC (protocol 3.3)
| vnc-info:
|   Protocol version: 3.3
|   Security types:
|_    VNC Authentication (2)
6000/tcp  open  X11         (access denied)
6667/tcp  open  irc         UnrealIRCd
| irc-info:
|   users: 1
|   servers: 1
|   lusers: 1
|   lservers: 0
|   server: irc.Metasploitable.LAN
|   version: Unreal3.2.8.1. irc.Metasploitable.LAN
|   uptime: 0 days, 0:24:48
|   source ident: nmap
|   source host: E6F73E70.8826504.FFFA6D49.IP
|_  error: Closing Link: sdbrljoqj[192.168.70.130] (Quit: sdbrljoqj)
6697/tcp  open  irc         UnrealIRCd
| irc-info:
|   users: 1
|   servers: 1
|   lusers: 1
|   lservers: 0
|   server: irc.Metasploitable.LAN
|   version: Unreal3.2.8.1. irc.Metasploitable.LAN
|   uptime: 0 days, 0:24:49
|   source ident: nmap
|   source host: E6F73E70.8826504.FFFA6D49.IP
|_  error: Closing Link: oibhebrut[192.168.70.130] (Quit: oibhebrut)
8009/tcp  open  ajp13       Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8180/tcp  open  http        Apache Tomcat/Coyote JSP engine 1.1
|_http-favicon: Apache Tomcat
|_http-server-header: Apache-Coyote/1.1
|_http-title: Apache Tomcat/5.5
8787/tcp  open  drb         Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
(略)

といった感じでさすがやられサーバだけあり、色々開いていますね。

次回はこの取得した情報を基に実際にmetasploitを使用していきたいと思います。(次回はなるべく早めにしたい。。。)

最後

今回はnmapを使用した対象サーバからの情報取得を行いました。

実際にnmapを使用して事前にどういったポートが開いているか、どこから攻撃するか等は私も仕事でもやっています。

また、非常に使いやすいツールでもあるので、自分の管理するサーバに対して、外からどういったポートが開いているか、またイントラからはどういったポートが見えているか等も調べることができます。

皆様もセキュリティ調査の一環として、自社や自分管理するサーバに対して実施してみて確認してみてはいかがでしょうか。

もしも本来は開いているはずのないポートが開いている場合等は適切な対応を行うことでセキュリティを高めることができるかもしれません。

不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。

コメント