Nmap Summary (ESP)
Last updated
Last updated
AWSハッキングの学習と練習:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングの学習と練習: HackTricks Training GCP Red Team Expert (GRTE)
``` nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24 ``` ## パラメータ
<ip>,<net/mask>
: 直接IPを指定します
-iL <ips_file>
: IPリスト
-iR <number>
: ランダムなIPの数、--exclude <Ips>
または--excludefile <file>
で除外できます。
デフォルトでは、Nmapは次のような発見フェーズを実行します: -PA80 -PS443 -PE -PP
-sL
: 侵入しないで、ターゲットをリストアップし、名前を解決するためのDNSリクエストを行います。たとえば、www.prueba.es/24のすべてのIPがターゲットであるかどうかを知るのに役立ちます。
-Pn
: ピングなし。すべてのIPがアクティブであることを知っている場合に便利です(そうでない場合、多くの時間が失われる可能性がありますが、このオプションは、アクティブでないと言ってしまう偽の否定も生じます)。発見フェーズを防ぎます。
-sn
: ポートスキャンなし。偵察フェーズを完了した後、ポートをスキャンしません。比較的ステルス性があり、小規模なネットワークスキャンを許可します。特権を持っている場合、80にACK(-PA)、443にSYN(-PS)、エコーリクエストとタイムスタンプリクエストを送信し、特権を持っていない場合は常に接続を完了します。ターゲットがネットワークの場合、ARP(-PR)のみを使用します。他のオプションと併用する場合、他のオプションのパケットのみが破棄されます。
-PR
: ARPへのPING。ネットワーク内のコンピュータを分析する際には、ARPパケットを使用するよりも高速です。ARPパケットを使用したくない場合は、--send-ip
を使用します。
-PS <ports>
: SYNパケットを送信し、SYN/ACKで応答すれば開いている(接続を終了させないようにRSTで応答)、RSTで応答すれば閉じており、応答がない場合は到達不能です。特権を持っていない場合、自動的に総接続が使用されます。ポートが指定されていない場合、80に送信されます。
-PA <ports>
: 前述のものと同様ですが、ACKを使用し、両方を組み合わせるとより良い結果が得られます。
-PU <ports>
: 目的は逆で、閉じていると予想されるポートに送信されます。一部のファイアウォールはTCP接続のみをチェックします。閉じている場合はポート到達不能で応答され、他のICMPで応答されるか、応答がない場合は宛先到達不能となります。
-PE, -PP, -PM
: ICMP PINGS: エコーリプライ、タイムスタンプ、アドレスマスク。ターゲットがアクティブかどうかを調べるために送信されます。
-PY<ports>
: デフォルトでは80にSCTP INITプローブを送信し、INIT-ACK(開いている)またはABORT(閉じている)または何も応答しないか、ICMP到達不能(非アクティブ)で応答される可能性があります。
-PO <protocols>
: ヘッダーにプロトコルが指定され、デフォルトでは1(ICMP)、2(IGMP)、4(Encap IP)が使用されます。 ICMP、IGMP、TCP(6)、UDP(17)プロトコルの場合、プロトコルヘッダーが送信され、それ以外の場合はIPヘッダーのみが送信されます。これは、ヘッダーの不正形式により、プロトコルがアップかどうかを知るために、プロトコル到達不能または同じプロトコルの応答が返されます。
-n
: DNSなし
-R
: 常にDNS
-sS
: 接続を完了しないため、痕跡を残しません。使用可能な場合非常に優れています(特権)。デフォルトで使用されるものです。
-sT
: 接続を完了するため、痕跡を残しますが、確実に使用することができます。特権なしの場合はデフォルトです。
-sU
: UDP用の遅いスキャン。主に: DNS(53)、SNMP(161,162)、DHCP(67および68)、(-sU53,161,162,67,68): 開いている(応答)、閉じている(ポート到達不能)、フィルタリングされている(他のICMP)、開いている/フィルタリングされている(何もなし)。開いている/フィルタリングされている場合、-sVは、nmapがサポートするバージョンのいずれかを検出するために多数のリクエストを送信し、真の状態を検出できます。時間がかかります。
-sY
: SCTPプロトコルは接続を確立できず、したがってログが残りません。-PYと同様に機能します。
-sN,-sX,-sF
: Null、Fin、Xmas、いくつかのファイアウォールを貫通し、情報を抽出できます。標準に準拠したマシンは、SYN、RST、ACKフラグを持たないすべてのリクエストにRSTで応答するはずであることに基づいています: 開いている/フィルタリングされている(何もなし)、閉じている(RST)、フィルタリングされている(ICMP到達不能)。Windows、CIsco、BSDI、OS/400では信頼性がありません。UNIXでははい。
-sM
: Maimonスキャン: FINおよびACKフラグを送信し、現在はすべてを閉じて返します。
-sA, sW
: ACKおよびWindow、ファイアウォールを検出し、ポートがフィルタリングされているかどうかを知るために使用されます。-sWは、開いているものが異なるウィンドウ値で応答するため、開いている/閉じているを区別します: 開いている(ウィンドウが0以外のRST)、閉じている(ウィンドウ=0のRST)、フィルタリングされている(ICMP到達不能または何もなし)。すべてのコンピュータがこの方法で動作するわけではないため、すべて閉じている場合は動作していないこと、いくつかが開いている場合は正常に動作していること、多くが開いていて少数が閉じている場合は逆に動作していることを知ることができます。
-sI
: アイドルスキャン。アクティブなファイアウォールがある場合でも、特定のIPにフィルタリングされていないことを知っている場合(または単に匿名性を望む場合)、ゾンビスキャナー(すべてのポートに対して機能します)を使用して、IPパケットのIPID番号に基づいてゾンビスキャナーを使用できます。可能なゾンビを探すには、スクリプトipidseqまたはexploit auxiliary/scanner/ip/ipidseqを使用できます。このスキャナーは、IPパケットのIPID番号に基づいています。
--badsum
: サムを誤って送信し、コンピュータはパケットを破棄しますが、ファイアウォールは何かを返信する可能性があります。ファイアウォールを検出するために使用されます。
-sZ
: "奇妙な" SCTPスキャナーで、クッキーエコーフラグメントを送信すると、開いている場合は破棄されるか、閉じている場合はABORTで応答されるはずです。initを通過しないファイアウォールを通過することができますが、フィルタリングされているか開いているかを区別しません。
-sO
: プロトコルIPスキャン。時々プロトコルさえ区別できない空のヘッダーと悪いヘッダーを送信します。ICMP到達不能プロトコルが到着すると閉じており、到達不能ポートが到着すると開いており、他のエラーが到着するとフィルタリングされ、何も到着しない場合は開いている|フィルタリングされています。
-b <server>
: FTPhost--> 別のホストからホストをスキャンするために使用され、他のマシンのFTPに接続して、他のマシンからスキャンしたいポートにファイルを送信するように要求します。応答に基づいて、それらが開いているかどうかを知ることができます。 [<user>:<password>@]<server>[:<port>] ほとんどのFTPサーバーはこれを許可しなくなっているため、実用的な用途はほとんどありません。
-p: スキャンするポートを指定するために使用されます。65335を選択するには: -p- または -p all。 Nmapには、人気に応じた内部分類があります。デフォルトでは、主要な1000を使用します。 -F (高速スキャン)では、主要な100を分析します。 --top-ports <numero> 指定された数の主要なポートを分析します(1から65335まで)。ポートをランダムな順序でチェックし、これを防ぐために -r を使用します。また、ポートを選択することもできます: 20-30,80,443,1024- これは1024以降をチェックすることを意味します。また、プロトコル別にポートをグループ化することもできます: U:53,T:21-25,80,139,S:9。 Nmapの一般的なポート範囲から範囲を選択することもできます: -p [-1024] nmap-servicesに含まれる1024までを分析します。 --port-ratio <ratio> 指定された比率の最も一般的なポートを分析します。比率は0から1の間でなければなりません。
-sV バージョンスキャン、強度を0から9まで調整できます。デフォルトは7です。
--version-intensity <numero> 強度を調整し、より低い場合は最も可能性の高い調査だけを実行しますが、すべてを実行しません。これにより、UDPのスキャン時間を大幅に短縮できます。
-O OSの検出
--osscan-limit ホストを適切にスキャンするには、少なくとも1つの開いているポートと1つの閉じてい --osscan-guess OS検出が完璧でない場合、より多くの努力が必要になります。
スクリプト
--script <filename>|<category>|<directory>|<expression>[,...]
デフォルトで使用するには、-sCまたは--script=defaultを使用します。
利用可能なタイプ: auth、broadcast、default、discovery、dos、exploit、external、fuzzer、intrusive、malware、safe、version、vuln
Auth: 利用可能なすべての認証スクリプトを実行します
Default: ツールのデフォルトの基本スクリプトを実行します
Discovery: ターゲットまたは被害者から情報を取得します
External: 外部リソースを利用するスクリプト
Intrusive: 被害者またはターゲットにとって侵入的と見なされるスクリプトを使用します
Malware: 悪意のあるコードやバックドアによるオープンコネクションをチェックします
Safe: 侵入的でないスクリプトを実行します
Vuln: 最もよく知られている脆弱性を発見します
All: 利用可能なすべてのNSE拡張子スクリプトを実行します
スクリプトを検索するには:
nmap --script-help="http-*" -> http-で始まるもの
nmap --script-help="not intrusive" -> それ以外のすべて
nmap --script-help="default or safe" -> どちらかまたは両方にあるもの
nmap --script-help="default and safe" --> 両方にあるもの
nmap --script-help="(default or safe or intrusive) and not http-*"
--script-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}
--script-args-file <filename>
--script-help <filename>|<category>|<directory>|<expression>|all[,...]
--script-trace ---> スクリプトの進行状況を表示
--script-updatedb
スクリプトを使用するには、単に次のように入力します: namp --script ScriptName target --> スクリプトとスキャナーの両方が実行されます。スキャナーのオプションも追加できます。安全なスクリプトのみを実行するには、"safe=1" を追加できます。
時間制御
Nmapは秒、分、ミリ秒で時間を変更できます: --host-timeout arguments 900000ms、900、900s、15m はすべて同じです。
Nmapはスキャンするホストの総数をグループに分割し、それらのグループをブロックごとに分析します。すべてのグループが分析されるまで次のブロックには移動せず(ユーザーにはブロックが分析されるまで更新が送信されません)、Nmapにとっては大きなグループを使用する方が効率的です。デフォルトでは、クラスCでは256を使用します。
変更できます**--min-hostgroup** <numhosts>; --max-hostgroup <numhosts>(並列スキャングループのサイズを調整)
並列スキャナーの数を制御できますが、推奨されません(Nmapはネットワークの状態に基づいて自動制御を組み込んでいます):--min-parallelism <numprobes>; --max-parallelism <numprobes>
RTTタイムアウトを変更できますが、通常は必要ありません:--min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time>
試行回数を変更できます:--max-retries <numtries>
ホストのスキャンタイムアウトを変更できます:--host-timeout <time>
各テスト間の時間を遅くするためにスキャン遅延を変更できます:--scan-delay <time>; --max-scan-delay <time>
秒間のパケット数を変更できます:--min-rate <number>; --max-rate _<number>>
多くのポートはフィルタリングされているか閉じられているため、応答に時間がかかる場合があります。開いているポートのみに興味がある場合は、次のオプションを使用して高速化できます:--defeat-rst-ratelimit
Nmapの攻撃の激しさを定義するには: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 --> 1つのポートのみをスキャンし、次のポートまで5分待機
-T1およびT2 --> ほぼ同じですが、それぞれ15秒と0.4秒待機します
-T3 --> デフォルトの動作、並列実行を含む
-T4 --> --max-rtt-timeout 1250ms --min-rtt-timeout 100ms --initial-rtt-timeout 500ms --max-retries 6 --max-scan-delay 10ms
-T5 --> --max-rtt-timeout 300ms --min-rtt-timeout 50ms --initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --max-scan-delay 5ms
ファイアウォール/IDS
ポートを通過させず、パケットを分析します。
-f パケットをフラグメント化するために使用され、デフォルトではヘッダーの後に8バイトでフラグメント化されます。特定のサイズを指定するには..mtuを使用します(これを使用すると、-fを使用しないでください)、オフセットは8の倍数である必要があります。バージョンスキャナーやスクリプトはフラグメンテーションをサポートしていません
-D decoy1,decoy2,ME Nmapは他のIPアドレスを送信元として使用してスキャンを送信します。MEをリストに含めると、NmapはそのIPアドレスを使用します。完全にマスクするためには、自分の前に5つまたは6つのデコイを置くと良いでしょう。RND:<number>でランダムなIPを生成できます。TCP接続のないバージョン検出とは互換性がありません。ネットワーク内にいる場合は、アクティブなIPを使用すると良いでしょう。そうしないと、あなたが唯一アクティブなことが非常に簡単にわかってしまいます。
ランダムなIPを使用するには: nmap-D RND: 10 Ip_target
-S IP NmapがあなたのIPアドレスを取得できない場合は、このオプションで指定する必要があります。また、他の目標がスキャンしているかのように見せるためにも使用できます。
-e <interface> インターフェースを選択するために使用します
多くの管理者は、すべてが正常に機能するように入力ポートを開いたままにしておくことを好み、他の解決策を探すよりも簡単です。これらはDNSポートやFTPポートなどである可能性があります。この脆弱性を検索するためにNmapには次のオプションが組み込まれています: --source-port <portnumber>;-g <portnumber> 同等です
--data <hex string> ヘキサ文字列を送信するために: --data 0xdeadbeef および --data \xCA\xFE\x09
--data-string <string> 通常のテキストを送信するために: --data-string "Scan conducted by Security Ops, extension 7192"
--data-length <number> Nmapはヘッダーのみを送信しますが、これにより指定したバイト数が追加されます(ランダムに生成されます)
IPパケットを完全に構成するには**--ip-options**を使用します
送信および受信されるパケットのオプションを表示する場合は、--packet-traceを指定します。Nmapを使用したIPオプションの詳細と例については、http://seclists.org/nmap-dev/2006/q3/52を参照してください。
--ttl <value>
--randomize-hosts 攻撃をより明白にしないために
--spoof-mac <MAC address, prefix, or vendor name> MACアドレスを変更するために: Apple、0、01:02:03:04:05:06、deadbeefcafe、0020F2、Cisco --proxies <Comma-separated list of proxy URLs> プロキシを使用するには、nmapが必要とする接続を維持できない場合があるため、並列処理を変更する必要があります:--max-parallelism
-sP ARPによるネットワーク内のホストの検出
多くの管理者は、特定のポート(たとえば20、53、67など)からのすべてのパケットを通過させるファイアウォールルールを作成します。nmapにこれらのポートからパケットを送信するよう指示できます:nmap --source-port 53 Ip
出力
-oN file 通常の出力
-oX file XML出力
-oS file スクリプトキディの出力
-oG file grepable出力
-oA file -oS以外のすべて
-v level 冗長性
-d level デバッグ
--reason ホストと状態の理由
--stats-every time その時間ごとに進捗状況を表示
--packet-trace 送信されるパケットを表示するために、--version-traceや--script-traceなどのフィルタを指定できます
--open 開いている、開いている|フィルタされている、フィルタされていないものを表示
--resume file 要約を出力
その他
-6 IPv6を許可
-A -O -sV -sC --tracerouteと同じ
実行時間
nmapを実行中にオプションを変更できます:
v / V 冗長性レベルを増減
d / D デバッグレベルを増減
p / P パケットトレースをオン/オフ
? ランタイムインタラクションヘルプ画面を表示
Vulscan
nmapのスクリプトで、オフラインのデータベース(非常に重要な他のデータベースからダウンロード)で取得したサービスのバージョンを調べ、可能な脆弱性を返します
使用するデータベースは次のとおりです:
Scipvuldb.csv | http://www.scip.ch/en/?vuldb
Cve.csv | http://cve.mitre.org
Osvdb.csv | http://www.osvdb.org
Securityfocus.csv | http://www.securityfocus.com/bid/
Securitytracker.csv | http://www.securitytracker.com
Xforce.csv | http://xforce.iss.net
Exploitdb.csv | http://www.exploit-db.com
Openvas.csv | http://www.openvas.org
Nmapのフォルダにダウンロードしてインストールするには:
wget http://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz && tar -czvf nmap_nse_vulscan-2.0.tar.gz vulscan/ && sudo cp -r vulscan/ /usr/share/nmap/scripts/
また、データベースのパッケージをダウンロードして/usr/share/nmap/scripts/vulscan/に追加する必要があります
使用法:
すべてを使用するには:sudo nmap -sV --script=vulscan HOST_A_ESCANEAR
特定のデータベースを使用するには:sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_A_ESCANEAR
この投稿によると、/usr/share/nmap/nmap-service-probes
内のすべてのtotalwaitms
値を300に、tcpwrappedms
を200に変更することで、nmapサービス解析を高速化できます。
さらに、特に定義されていない**servicewaitms
を持たないプローブは、デフォルト値5000
を使用します。したがって、各プローブに値を追加するか、service\_scan.h
でデフォルト値を変更してnmapをコンパイル**することができます。
/usr/share/nmap/nmap-service-probes
ファイルの**totalwaitms
とtcpwrappedms
**の値を一切変更したくない場合は、nmap-service-probes
ファイル内のこれらの値が完全に無視されるように解析コードを編集できます。