Nmap tryHackMeで入門

nmap

攻撃先のランドスケープ、つまりサーバーの構成や開いているポートが何かというのを調べるためにnmapはよく使われる。

TryHackMe | Nmap

タイミングテンプレート

paranoid(0)、sneaky(1)、polite(2)、normal(3)、aggressive(4)、insane(5)

最初の2つはIDS回避のためのものです。丁寧モードは、スキャンを遅くして、使用する帯域幅を減らし、マシンのリソースをターゲットにします。通常モードはデフォルトであるため、-T3は何もしません。Aggressiveモードは、それなりに高速で信頼性の高いネットワーク上にいることを想定してスキャンを高速化します。最後にinsaneモードは、非常に高速なネットワークを使用しているか、速度のために精度を犠牲にすることをいとわないことを想定しています。

IDSとは

不正侵入検知システムのこと

vulnとは

脆弱性を確認するscript全体の総称?みたいなもの

Usage and Examples | Nmap Network Scanning

色々なフラグ

TCP Connect Scans (-sT

SYN Scans (-sS)

  • TCP Scansと違い完全な3ウェイハンドシェイクによる接続をしない
  • 1回だけSYN → SYN/ACKと帰ってきたらあとはRSTを返してそれ以上の通信を行わない
  • sudo権限でnmap scanをするとデフォルトでSYN scanとなる

UDP Scans(-sU)

  • UDPは応答がないのでScanが困難であることが多いらしい
  • 返答がない → Portは開いていると判断
  • ICMPで返答 → Portは閉じている

ping sweep

  • ICMP通信を通してどのポートが使われているかを応答確認によって調査する

Nmap Script Engine

引数を持つscriptの実行方法。

script名.引数=””という形式に当てはめて実行できる。

nmap -p 80 --script http-put --script-args http-put.url='/dav/shell.php',http-put.file='./shell.php'

Scriptの探し方

/usr/share/nmap/scripts/scripts.dbにフォーマットされたテキストファイルとして記載されている。

以下のような形式になっているので、grepで絞り込んだりもできる。ここに記載のないweb上のscriptや自作のscriptをnmapから使えるようにするには、/usr/share/nmap/scripts/配下に置いた上で、nmap --script-updatedbを実行する必要がある。

2023-06-03 18.02のイメージ.jpeg

Firewall回避

いかにしてFirewallを突破するかに関するスイッチが多い。

  • パケットを細分化するもの
  • 細分化する際のサイズを8の倍数で指定できるもの
  • 送信するパケットとパケットの間に遅延を挟ませるもの
  • firewallの存在確認のために、無効なチェックサムをパケットに含めるもの

Firewall spotting and networks analysis with a broken CRC

上記記事によると、Firewallはchecksumをほとんどの場合チェックしないのでchecksumによってFirewall回避を試みる。

  1. まず、Firewall(packat filter)がパケットをドロップするようにしているか、エラーが出るようにしているか確認する
    • telnet www.oracle.com 31337
    • → RSTがFirewallかホストから返されることを確認
  2. 以下コマンドのようにして値が帰ってこれば、filterされてるのかなと疑う。
    • hping -S -c 1 -p 31337 -b www.oracle.com

なぜpingを無効化する必要があるのか?

windowsホストはデフォルトで、全てのICMPパケットをブロックする。つまりpingリクエストによるホストの生存確認をしようとすると、生きているのにデフォルトfirewallによって死んでいると判断されてしまう。(nmapによる生存確認もICMPパケットを送っている)

よって-Pnオプションによってpingを送らないようにする必要がある。

→ これにより、Portスキャンがブロックされることなくnmapで行えるようになる。

nmap試してみる

nmap IPアドレスを実行してpingが失敗するとき。上記記載のようにICMPパケットをブロックするようになっているかもしれないので-Pnを試すように言われる。

Note: Host seems down.if it is really up, but blocking our ping probes, try -Pn 

sudo権限での実行

  • sudo権限で実行するとTCP ConnectionではなくSYNフラグでの通信をするので、多分早い。

scan結果の理由・詳細を見る

  • -vv—-reasonを使うといい

開いているPortのみ表示する

  • —open で開いているPortとServiceが表示される

Wiresharkでnmapでのリクエスト内容を見る

  • Wiresharkを使うことでnmapによるSYNフラグ付きのリクエストなどを確認することができる。

    nmap実行 → wiresharkで確認