mutao.net

いわゆる雑記。

Nmap(Network Mapper)

Nmapとは

nmap.org

ポートスキャンを行えるツール。

私はポートが開放されているかどうかくらいでしか、使用したことがなかったので改めて使い方を調べる。

※ポートスキャンは不正アクセス禁止法には抵触しませんが、「攻撃された」と判断する可能性もあるので自分の保有していないものに関しては実行しないほうが懸命です。

自宅のRassberry pi へとnmapを実行してみました。

ホスト名ではなく、IPアドレスでも実行可能です。

$ nmap 192.168.11.1
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-20 17:19 JST
Nmap scan report for 192.168.11.1
Host is up (0.0064s latency).
Not shown: 996 closed ports
PORT      STATE SERVICE
53/tcp    open  domain
80/tcp    open  http
443/tcp   open  https
49152/tcp open  unknown
MAC Address: 60:84:BD:F6:39:18 (Unknown)

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

このように開放されているポートが確認できました。

STATEについては以下の表通りです。

state description
open ポートが開放されている
closed ポートが閉じている
filtered フィルタ処理されていて確認できない
unfiltered ポートへのアクセス可能、しかし、open closeを確認できない

TCP SYNスキャン

SYNパケットを送信し、ポートにアクセス可能な場合、SYN/ACKパケットを返します。

 $ nmap --packet-trace -sS 192.168.11.1

Nmap Script

nmap.org

nmapには現状で604個のscriptが用意されています。上記のサイトでカテゴリ毎にscriptが用意されています。

これらのscriptはNSE(Nmap Scripting Engine)上で動くLuaで書かれてたscriptです。

sctipt1つ実行することもできますし、カテゴリ指定でscript群を実行することもできます。

今回は様々な脆弱性を検出できるVlunカテゴリを実行してみました。

$ nmap --script vuln 192.168.11.1
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-20 17:37 JST
Nmap scan report for 192.168.11.1
Host is up (0.0052s latency).
Not shown: 996 closed ports
PORT      STATE SERVICE
53/tcp    open  domain
80/tcp    open  http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
443/tcp   open  https
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_ssl-ccs-injection: No reply from server (TIMEOUT)
|_sslv2-drown:
49152/tcp open  unknown
MAC Address: 60:84:BD:F6:39:18 (Unknown)

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

nginxを入れただけのラズパイなので脆弱性は検出されずです。

MySQLを立てて外部からのアクセスが可能にしている場合は mysql-brute 等のscriptを使ってみて検証してもいいかもしれません。

今後、何かに使えそうと思ったのでメモメモ