1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】Nmapによる「Live Host Discovery」 — 要点整理

Posted at

はじめに

端的に言うと:「応答が返ってくる=そこにホストがいる」。ARP / ICMP / TCP / UDP、どれでノックするかを状況で切り替えるのが肝です。

  • Nmap の Host Discovery(ホスト発見) を、ARP / ICMP / TCP / UDP の4系統で実務目線に整理
  • 現場で使い回せる コマンドスニペット集
  • 失敗しがちなポイントと トラブルシューティング
  • 逆引きDNSや masscan など 運用小ネタ

なぜ「ホスト発見」から始めるの?

ポートスキャンの前に、そもそもホストが生きているか を知る必要があります。オフライン機器にポートスキャンを投げても、時間を無駄にしノイズをまく だけ。まずは 生存確認 → ポートスキャン の順で効率化しましょう。

4つのアプローチ

1) ARP(同一サブネット最強)

同一サブネットにいるなら ARPが最速・最確実。MACアドレス解決の副産物として「生存」が分かります。

# 同一サブネットの生存ホスト列挙(ARP)
sudo nmap -PR -sn 10.0.1.0/24
  • root/sudo(特権ユーザ)
  • 出力に MAC Address が載るのが目印
  • 失敗したら:本当に同一セグメント?VLAN越えは不可

補助ツール:arp-scan
sudo arp-scan -l(ローカルネット全体)/ sudo arp-scan -I eth0 -l(IF指定)
※ 未インストールなら apt install arp-scan


2) ICMP(Echo/Timestamp/Address Mask)

ICMPが通る環境では Echo(ping) が手堅い。Echoが塞がれていても Timestamp で拾えることがあります。

# Echo(通れば最短)
sudo nmap -PE -sn 10.0.1.0/24

# Timestamp(Echoが塞がれている時の次善策)
sudo nmap -PP -sn 10.0.1.0/24

# Address Mask(通らない環境も多い)
sudo nmap -PM -sn 10.0.1.0/24
  • ファイアウォールに塞がれやすい のが難点
  • 同一サブネットなら内部でARPが先行することも(結果にMACが見える)

3) TCP SYN / ACK(ICMPが塞がれてるときの切り札)

公開されがちな 80, 443 などに対して SYN/ACK を送って 反応(SYN/ACK or RST) を観測し、生存判定します。

# SYN Ping:公開ポート候補を複数試す
sudo nmap -PS22,80,443 -sn 10.0.1.0/24

# ACK Ping:RST応答で生存判定
sudo nmap -PA80,443 -sn 10.0.1.0/24
  • 特権ユーザ だとSYNの“未完了”送信が可能(静かで速い)
  • ポート選定が命:環境に合わせた一般的/社内的ポート を混ぜるとヒット率↑

4) UDP(ICMP Port Unreachable を引き出す)

UDPは開いていても応答が無いのが普通。逆に 閉じていると ICMP Port Unreachable が返り、生存判定できます。

# 代表的なUDP(DNS, SNMP など)を当てる
sudo nmap -PU53,161,162 -sn 10.0.1.0/24
  • ネットワーク機器の挙動で 反応にムラ が出やすい
  • TCP/ICMPと併用 してカバレッジを上げるのが実務的

逆引きDNSの扱い(静かにいく?名前が欲しい?)

  • 静かに・速く-n(DNS逆引きオフ)
  • オフラインでも名前が欲しい-R(全ホスト逆引き試行)
  • 特定DNSを使う--dns-servers 8.8.8.8
# 逆引きなしでサクッと
sudo nmap -sn -n 10.0.1.0/24

# 逆引きを全ホストに実施(ノイズ増)
sudo nmap -sn -R 10.0.1.0/24

ダッシュボード風・実務レシピ(状況別ベストプラクティス)

同一サブネット(社内LAN)で全体を素早く把握

sudo nmap -PR -sn 10.0.1.0/24 -oN hosts-arp.txt
  • まずARPで確実に拾う → 後続のポートスキャン対象に

ICMP塞がれてるゼ…という社内セグメント

sudo nmap -PS22,80,443 -PA80,443 -sn 10.0.1.0/24 -oN hosts-tcp.txt
  • SYNとACKをミックスして検出率UP

サーバ室/ネットワーク機器混在(UDPも見たい)

sudo nmap -PS80,443 -PU53,161 -sn 10.0.1.0/24 -oN hosts-mix.txt
  • DNSやSNMP周りでICMP Port Unreachableを拾う作戦

ターゲットリストが既にある場合

nmap -sn -iL targets.txt -oN hosts-list.txt

Wiresharkでの観測のコツ

  • ARParp フィルタでブロードキャストとReplyを観察(対象IPがズラッと出る)
  • ICMP Echoicmp.type == 8(Echo Request)と icmp.type == 0(Echo Reply)
  • TCP SYNtcp.flags.syn == 1 && tcp.flags.ack == 0(送信)/syn==1 && ack==1(返答)
  • TCP ACKtcp.flags.ack == 1 送って tcp.flags.reset == 1 を受ける
  • UDP→ICMPicmp.type == 3 && icmp.code == 3(Port Unreachable)

反応が薄い時は、まず 経路上のFW/IDS を疑って観測するのがプロの一手。


うまくいかないときの即断レシピ(ミニFAQ)

  • 誰も見つからない(同一セグメントのはず)
    → VLAN違い?仮想スイッチのセグメント違い? まず ip a / ルーティングを再確認。
  • ICMPゼロ
    -PS / -PA / -PU混合アプローチ に切り替え。
  • やたら遅い
    -T4 で速度調整、--max-retries 1 で再送抑制(誤検出リスクは上がる)。
  • ノイズを抑えたい
    -n(逆引き停止)、ARP中心(同一サブネット)、ポートの的を絞る

“masscan”という選択肢(超高速だけど荒っぽい)

大量ホストを一気にスイープしたい時に有効。攻撃的で検知されやすい のでオンプレでは慎重に。

# 代表例(インストール:apt install masscan)
sudo masscan 10.0.1.0/24 -p80,443 --rate 5000 -oL masscan.lst
  • --rate は送出レート。インフラに負荷を掛けるので要注意
  • ざっくり当たりを付け → Nmapで丁寧に確定、の二段構えが現実的

チートシート

# 1) ARP(同一サブネット最強)
sudo nmap -PR -sn 10.0.1.0/24

# 2) ICMP(Echo/Timestamp)
sudo nmap -PE -sn 10.0.1.0/24
sudo nmap -PP -sn 10.0.1.0/24

# 3) TCP SYN/ACK(ICMPが塞がれてる時)
sudo nmap -PS22,80,443 -sn 10.0.1.0/24
sudo nmap -PA80,443 -sn 10.0.1.0/24

# 4) UDP(ICMP Port Unreachable で生存判定)
sudo nmap -PU53,161 -sn 10.0.1.0/24

# オプション系
# 逆引き無しで静かに
sudo nmap -sn -n 10.0.1.0/24
# 既存リストから
nmap -sn -iL targets.txt
# 保存(通常テキスト)
sudo nmap -sn 10.0.1.0/24 -oN hosts.txt

注意事項(法令・コンプラ)

  • 許可のないネットワークへのスキャンはNG。法的リスク・就業規則違反の可能性があります。
  • 社内でも レートや時間帯 を調整し、関係者と合意形成を。ログ を残しましょう。

まとめ

  • 同一サブネット → ARPが王道
  • ICMPが塞がれても TCP SYN/ACK、さらに UDP で補完し検出率UP。
  • 実務では 静かさ(-n, ポート選定)速度(-T/--max-retries) のバランス設計がポイント。

「見えない=いない」ではない。手札を増やして 見えるまで粘る。これが大人のネットワーク調査術です。


付録:Mermaidで見るパケットの流れ

TCP 3ウェイ・ハンドシェイク(SYN pingのイメージ)

ARP(同一セグメント)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?