こんにちは。ActiveTK.です。
今回は、Nmapと呼ばれるポートスキャンツールを応用する方法について自分用にまとめたいと思います。
0. 注意
本記事は実際のハッキング方法(というかほぼハッキングそのもの)を扱います。
くれぐれも真似しないでください。(と一応書いておきます)
ポートスキャン自体は合法ですが、本記事を読んだ事によって発生した一切の責任を負いません。自己責任の世界です。
1. 実はいろいろな引数があった?
Nmapは単に「nmap example.com -p 10-100」のような方法で実行する事が多いですが、Nmapにはいろいろなコマンドライン引数(オプション)があります。
なので、まず便利(?)なコマンドライン引数を一覧にしたいと思います。
参考: nmapコマンドで覚えておきたい使い方11個 | 俺的備忘録 〜なんかいろいろ〜 (orebibou.com)
OS、若しくはOSとバージョンを取得
# example.comのOSを取得
nmap example.com -O
# example.comのOSとバージョンを取得
nmap example.com -A
ファイヤーウォールで保護されているか判定
# example.comのポート80(http)がファイヤーウォールに保護されているか判定
nmap example.com -p 80 -sA
IPアドレスの一覧ファイルに基づいてスキャンする
# IPList.txtに記載されているIPアドレス全てをスキャンする
nmap -iL ./IPList.txt
事前のpingでの疎通確認を無効化する
# example.comのポート80(http)に事前ping無しでスキャン
nmap example.com -p 80 -Pn
IPを偽装
# example.comをIPを偽造(1.2.3.4)してスキャン
nmap example.com -S 1.2.3.4
IPを偽造(複数)
# example.comをIPを偽造(1.2.3.4と1.2.3.5)してスキャン
nmap example.com -D 1.2.3.4 1.2.3.5
送信元ポートを偽造
# example.comを送信元を偽造(12321)してスキャン
nmap example.com --source-port 12321
Macアドレスを偽造
# example.comをMacアドレスを偽造(0->適当)してスキャン
# 注: 事前pingは必ず無効化する事(-Pn)
nmap example.com --spoof-mac 0 -Pn
詳細情報を出力
# example.comを詳細表示しながらスキャン
nmap example.com -v
プロトコルを解析
# example.comのポート80(http)を詳細にスキャン
# 注: 基本的にポートは指定する事
nmap example.com -sV -p 80
重要ポートのみスキャン
# example.comを高速に(重要ポートのみに絞り)スキャン
nmap example.com -F
SYNスキャン
# example.comをSYNスキャン
# SYNパケットを投げ、応答がFINならclose。
# SYN+ACKならopenと解釈し、RSTを送ってセッションを強制終了するスキャン方法
# ログが残りにくくなる
# ただし、SYN Flood攻撃と判定されてブロックされやすい
nmap example.com -sS
# -T(1-5)を付けるとパケットを延滞させ、ブロックされにくくする事ができる
nmap example.com -sS -T2
FINスキャン
# example.comをFIスキャン
# FINパケットを投げ、応答がRSTならclose。
# コネクションを確立しないためステルス性が高い
nmap example.com -sF
対象ネットワークで動作している機器を一覧表示
# example.com周辺のネットワークにある機器を一覧表示
# 注: example.comのIPv4アドレスは93.184.216.34です
nmap -sP 93.184.216.1-93.184.216.254
【応用】
# example.comのポート1から25000までを詳細に表示する
# 攻撃元IPアドレスはGoogleのパブリックDNSである、
# 「8.8.8.8」と「8.8.4.4」に偽造
# 攻撃元ポートは12321に偽造
# Macアドレスはランダムに生成
# 事前pingは無効化
# SYNスキャン(パケット延滞2)
nmap example.com
-v
-p 1-25000
-Pn
-D 8.8.8.8 8.8.4.4
--source-port 12321
--spoof-mac 0
-sS
-T2
# 1行版
nmap example.com -v -p 1-25000 -Pn -D 8.8.8.8 8.8.4.4 --source-port 12321 --spoof-mac 0 -sS -T2
# example.comのポート80(HTTP)のプロトコルを解析
# 攻撃元IPアドレスは適当に、
# 「23.123.231.39」と「32.34.241.2」に偽造
# 攻撃元ポートは5929に偽造
# Macアドレスは偽造しない
# 事前pingは無効化
# FINスキャン
nmap example.com
-sV
-p 80
-D 23.123.231.39 32.34.241.2
-Pn
--source-port 5929
-sF
# 1行版
nmap example.com -sV -p 80 -D 23.123.231.39 32.34.241.2 -Pn --source-port 5929 -sF