超ド定番(Nmap)
ネットワークやセキュリティについて勉強時始めた際に一番最初に出会うツールといっても過言ではないのがNmap!!
特徴
- KaliLinuxに標準搭載のネットワーク調査とセキュリティ監査のためのオープンソースツール
主な機能(一部)
- ホストの存在確認
- 対象ホストのOS特定
- 開いているポートのサービス、バージョン特定
- ファイアーウォール回避、偽装
###使い方
めちゃ基本
bash
nmap 192.168.0.1
オプション(ターゲット指定)
オプション | 概要 | 書き方 |
---|---|---|
複数のホストを指定 | nmap 192.168.0.1 192.168.0.10 | |
範囲指定 | namp 192.168.0.1-254 | |
プレフィックス指定 | namp 192.168.0.254/24 | |
ドメイン指定 | nmap test.test.org | |
-iL | ファイル指定 | -iL test/list.txt |
-iR | ランダムにN個スキャン | -iR 100 |
-exclude | 特定ipの除外 | -iL 192.168.0.1 |
-excludefile | 除外リストのファイル指定 | -excludefile test/list.txt |
オプション(ポート指定)
オプション | 概要 | 書き方 |
---|---|---|
-p | 特定のポートのみスキャン | たくさんあるので下記参照 |
-p- | 全ポートスキャン | -p- |
–exclude-ports | 除外ポート | –exclude-ports 22 |
-r | ポートを順番にスキャン(デフォルトではランダム) | -r |
-F | 頻繁に使われるポート100個 | -F |
-top-ports | 1~N番ポートまでスキャン | -top-ports 500 |
-p
の様々な書き方
説明 | 書き方 |
---|---|
決まったポートのみ | -p 80,443 |
範囲指定 | -p 20-25 |
サービス名で指定(デフォルトポート) | -p http,https |
nmapはTCP:9100に対してはデフォルトでスキャンを実施しません。
これは、特定のプリンターはTCP:9100で受けたパケットをすべて印刷してしまうからです。
本当にすべてのポートに対してスキャンしたいのなら
nmap 192.168.1.1 -p0- Leaving off end port in range makes the scan go through to port 65535
オプション(スキャン方法の指定)
オプション | 概要 | 詳細 |
---|---|---|
-sS | TCP SYNスキャン/TCPハーフスキャン | 3way hand shakeの最後のackを返さない。ログに残りずらい |
-sT | TCP Connectスキャン | TCPを確立させる |
-sU | UDPスキャン | TCPに比べかなり時間がかかる |
-sW | Windowスキャン | windowとはTCP通信でデータを連続送信する際に使われるバッファ制御 |
-sM | Maimonスキャン | 簡易FWを回避できる可能性 |
-sA | TCP ACK スキャン | FWによってフィルタされているかされていないか(ポートの開放状態は判別しないため併用必須) |
-sl | Idleスキャン | 特定の送信元を踏み台にしてスキャンを実施(詳細下記) |
-sF | TCP FINスキャン | ステルススキャン |
nmapはTCP:9100に対してはデフォルトでスキャンを実施しません。
これは、特定のプリンターはTCP:9100で受けたパケットをすべて印刷してしまうからです。
Idleスキャンのやり方
1 踏み台として使用可能かチェック
sudo nmap -Pn -p 80 --script ipidseq 192.168.1.100
ipidseq: Incremental
Incremental
またはBroken little-endian incremental
なら使用可能
Randomized
なら使用不可能
2 実施
sudo nmap -sI 192.168.1.100 192.168.1.10
オプション(ホストの検出)
オプション | 概要 |
---|---|
-sL | Listスキャン |
-sn | Pingスキャン |
オプション(DNSに関係)
オプション | 概要 |
---|---|
-n | ホストを検出した場合でもDNSの逆引きは行わない |
-R | 検出したホストのIPに対してDNSの逆引きを行う |
オプション(OSの検出)
オプション | 概要 |
---|---|
-O | OSの種類を特定する |
-A | OSの種類とバージョンを特定する |
-osscan-guess | 完全なOSを検出できない場合に類似する情報を提示する |
オプション(サービスとバージョンの特定)
オプション | 概要 |
---|---|
-sV | バージョン検出 |
-version-intensity | バージョン検出精度(0-9)(デフォルト7) |
-version-light | バージョン検出精度を2 |
-version-all | バージョン検出精度を9 |
–version-trace | バージョンスキャンのトレース情報表示 |
オプション(スクリプトを使用したスキャン)
オプション | 概要 |
---|---|
-sC | デフォルトスクリプトでスキャン |
-script= | スクリプトの指定 |
-script-args= | スクリプトへの引数 |
–script-updatedb | scripts/script.dbのデータベースを更新 |
–script-help= | スクリプトコマンドのヘルプ、コマンドのカテゴリ、ファイル、スクリプトのリストを表示 |
スクリプトファイルは/usr/share/nmap/scripts
に格納されている
オプション(スキャン間隔と速度)
オプション | 概要 |
---|---|
-T | 高速スキャン。「nmap -T4 -F 」などと指定。5は最速ですが精度を犠牲。意図的に遅い0、1はIDS回避テスト用に利用。 |
スピード感!!(RustScan)
Nmapの良いところはもらいつつとても処理速度が速い
特徴
- kalilinuxには標準搭載ではない
- nmapはすべてのポートにスクリプトも実行しているが、rustscanはポートスキャンを一通り行った後に、開いているポートに対してスクリプトを実行する
主な機能(一部)
- ホストの存在確認
- 対象ホストのOS特定
- 開いているポートのサービス、バージョン特定
- ファイアーウォール回避、偽装
- (基本的にNmapと同じ)
インストール方法(最新は各人で調べてください)
bash
wget https://github.com/RustScan/RustScan/releases/download/2.1.1/rustscan_2.1.1_amd64.deb
sudo dpkg -i rustscan_2.1.1_amd64.deb
###使い方
めちゃ基本
bash
rustscan -a 10.10.216.174 -- -sV -A -oN rustscan.txt
対象ホストの後に--
を入れた後にNmapのオプションを使うことができます。