Help us understand the problem. What is going on with this article?

ポートスキャンツールnmapについて

More than 1 year has passed since last update.

ポートスキャンツールnmapの使い方

ここではポートスキャンツールnmapのmacOSでのインストールの方法、基礎的な使い方について書いていこうと思う

1 ダウンロード&インストールの方法

  1. まずはhttps://nmap.org/download.html にアクセス。
  2. そしてnmap-7.31.tar.bz2をダウンロード
  3. そしてターミナルを開きダウンロードしたファイルがあるディレクトリに行き、書いてあるこのコマンドを打ち込む。バージョンに応じて少し変えてください。
$bzip2 -cd nmap-7.31.tar.bz2 | tar xvf -
$cd nmap-7.31
$./configure
$make
$su root
$make install

これでインストールは完了
コマンドを打ったあと色々と出てくるがパスワードが要求される時が来るのでその時は素直に打ってください。

追記:homebrewが入っていたらこれでできます。

$brew install nmap

2 nmapの基本的な使い方

用途

このツールはサーバーのどのポートが開いているかをスキャンするセキュリティーツールです。 そして便利なことにステルススキャンと呼ばれる、バレない(ログが残らない)スキャンや、囮を使ってばれないようにスキャンする、OSや動いているサービスを特定するなどのポートスキャンだけでないさまざまな機能があります。これらを使えば悪用(攻撃)もできるのですが法に触れるので絶対にしないでください⭐️

使い方

基本的には

nmap スキャンタイプ オプション ターゲットのIPアドレス

です。
単純にポートの状態を取得するだけならば

nmap ターゲットのIPアドレス

でできます 。

それではこれから詳しいオプションなどについての解説、といきたいのですが自分もすべて把握しているわけではないのでよく使うオプションだけ。

-sS
これはステルススキャンのオプションです。これをつけて実行することで全く対策をしていないPCにはロギングされなくなります。ただし、ロギングツールなどがターゲットにインストールされていたらバレるので万能ではありません。
これを実行する場合はルート権限が必要になります。

-Pn
nmapは最初にpingを実行するのですがpingが帰ってこなかったらスキャンを実行してくれません。そんなときにこのオプションをつけるとpingを実行しないですぐにスキャンを実行してくれます。

-O
これはターゲットのOSを特定してくれるオプションです。空いているポートがいくつかあると結構当たります。

-A
これが一番良く使うオプションですOS検出、バージョン検出、スクリプトスキャン、およびトレースルートを全てこれだけで行ってくれます。これをつけておけばだいたい大丈夫です。

試しに実行してみる

では音楽を流すために使っているラズパイにやってみたいと思います。

$nmap 192.168.1.9
Starting Nmap 7.70 ( https://nmap.org ) at 2018-05-28 15:28 JST
Nmap scan report for 192.168.1.9
Host is up (0.0067s latency).
Not shown: 990 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
3000/tcp  open  ppp
3001/tcp  open  nessus
3005/tcp  open  deslogin
5000/tcp  open  upnp
49152/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

開いているポートの情報が見れましたね。それでは次に-Aオプションをつけて実行してみたいと思います。

$nmap -A 192.168.1.9                                                                                                                                                                                                    master [f71743b] deleted modified untracked
Starting Nmap 7.70 ( https://nmap.org ) at 2018-05-28 15:30 JST
Nmap scan report for 192.168.1.9
Host is up (0.012s latency).
Not shown: 990 closed ports
PORT      STATE SERVICE     VERSION
22/tcp    open  ssh         OpenSSH 6.7p1 Raspbian 5+deb8u4 (protocol 2.0)
| ssh-hostkey: 
|   1024 d1:dd:4f:1c:d0:f3:67:32:ac:75:ef:a9:d9:63:fd:21 (DSA)
|   2048 50:20:88:31:c8:71:f0:eb:f3:94:c9:e8:12:fb:c2:ae (RSA)
|_  256 23:59:6d:f1:0c:02:f6:26:cb:c9:e3:c2:3e:85:b4:b4 (ECDSA)
80/tcp    open  http        Node.js Express framework
|_http-cors: GET POST PUT DELETE OPTIONS
|_http-title: Volumio - Audiophile Music Player
111/tcp   open  rpcbind     2-4 (RPC #100000)
| rpcinfo: 
|   program version   port/proto  service
|   100000  2,3,4        111/tcp  rpcbind
|   100000  2,3,4        111/udp  rpcbind
|   100024  1          35889/udp  status
|_  100024  1          43317/tcp  status
139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn Samba smbd 4.2.14-Debian (workgroup: WORKGROUP)
3000/tcp  open  http        Node.js Express framework
|_http-cors: GET POST PUT DELETE OPTIONS
|_http-title: Volumio - Audiophile Music Player
3001/tcp  open  http        Node.js Express framework
|_http-title: Error
3005/tcp  open  deslogin?
| fingerprint-strings: 
|   FourOhFourRequest, GetRequest, HTTPOptions: 
|     HTTP/1.1 404 Not Found
|     Date: Mon, 28 May 2018 06:30:17 GMT
|_    Connection: close
5000/tcp  open  rtsp        Apple AirTunes rtspd 105.1
|_rtsp-methods: ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER
49152/tcp open  upnp        Portable SDK for UPnP devices 1.6.20.jfd5 (Linux 4.9.80-v7+; UPnP 1.0)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port3005-TCP:V=7.70%I=7%D=5/28%Time=5B0BA20A%P=x86_64-unknown-linux-gnu
SF:%r(GetRequest,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nDate:\x20Mon,\x20
SF:28\x20May\x202018\x2006:30:17\x20GMT\r\nConnection:\x20close\r\n\r\n")%
SF:r(HTTPOptions,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nDate:\x20Mon,\x20
SF:28\x20May\x202018\x2006:30:17\x20GMT\r\nConnection:\x20close\r\n\r\n")%
SF:r(FourOhFourRequest,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nDate:\x20Mo
SF:n,\x2028\x20May\x202018\x2006:30:17\x20GMT\r\nConnection:\x20close\r\n\
SF:r\n");
Service Info: Host: VOLUMIO; OS: Linux; CPE: cpe:/o:linux:linux_kernel, cpe:/o:linux:linux_kernel:4.9.80-v7%2B

Host script results:
|_clock-skew: mean: -17s, deviation: 0s, median: -17s
|_nbstat: NetBIOS name: VOLUMIO, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.2.14-Debian)
|   Computer name: localhost
|   NetBIOS computer name: VOLUMIO\x00
|   Domain name: \x00
|   FQDN: localhost
|_  System time: 2018-05-28T06:30:23+00:00
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode: 
|   2.02: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2018-05-28 15:30:23
|_  start_date: N/A

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 19.37 seconds

こんな感じでちゃんと情報が取得できてますね!

最後に

nmapは本当に多機能なポートスキャンツールです。この記事ではnmapの機能を一割も紹介できていません。しかしこの記事で少しでもnmapに興味を持っていただけたら幸いです。
man nmapを実行することで詳しいオプションが見れるので(英語ですが)気になった方は見てみてください。
あと参考にしたサイトがものすごくしっかり解説してくれているので深く知りたいと思った方はそちらもぜひ。

参考

http://www.yk.rim.or.jp/~shikap/security/use_nmap.html

SotaAtos
学生です。swift、C++、pythonを書いたりしています。 Linuxに関する事やセキュリティ、低レイヤーに関する事まで色々な分野を学習中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした