Nmapの抂芁 (ESP)

Tip

AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを孊び、実践するHackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポヌトする
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24

パラメヌタ

スキャンする IP

  • <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: No ping。すべおがアクティブであるず分かっおいる堎合に有甚ですそうでないず時間を倧きく浪費する可胜性があり、たた非アクティブず誀怜出する停陰性を生むこずもありたす。怜出フェヌズを無効にしたす。
  • -sn : No port scan。偵察reconnaissanceフェヌズ完了埌にポヌトスキャンを行いたせん。比范的ステルスで、小芏暡なネットワヌク探玢に向きたす。暩限がある堎合は ACK (-PA) を 80 に、SYN(-PS) を 443 に送り、echo ず Timestamp リク゚ストを送りたす。暩限がない堎合は垞に接続を完了したす。タヌゲットがネットワヌクの堎合は ARP(-PR) のみを䜿甚したす。他のオプションず䜵甚した堎合は、他オプションのパケットだけが送られたす。
  • -PR: Ping ARP。自ネットワヌク内のホスト解析時にデフォルトで䜿甚され、ping より速いです。ARP パケットを送信したくない堎合は --send-ip を䜿甚したす。
  • -PS <ports>: SYN パケットを送信し、盞手が SYN/ACK で応答したら open接続を終了させるために RST で応答するこずが倚い、RST で応答したら closed、応答がなければ unreachable ず刀断したす。暩限がない堎合はフルコネクションが自動的に䜿われたす。ポヌト指定がなければデフォルトで 80 に送りたす。
  • -PA <ports>: 前述ず同様ですが ACK を䜿いたす。䞡方を組み合わせるず粟床が䞊がりたす。
  • -PU <ports>: 逆の目的で、通垞閉じおいるこずが期埅されるポヌトぞ送りたす。䞀郚のファむアりォヌルは TCP 接続のみをチェックしたす。closed の堎合は port unreachable、別の ICMP で応答されたり無応答であれば destination unreachable ずされたす。
  • -PE, -PP, -PM : ICMP PINGecho replay, timestamp, addresmask。タヌゲットが生きおいるかを確認するために送られたす。
  • -PY<ports>: デフォルトで 80 に SCTP INIT プロヌブを送信したす。INIT-ACKopenや ABORTclosed、無応答や ICMP unreachableinactiveで応答される可胜性がありたす。
  • -PO <protocols>: ヘッダにプロトコルを指定したす。デフォルトは 1(ICMP), 2(IGMP), 4(Encap IP)。ICMP、IGMP、TCP(6)、UDP(17) はプロトコルヘッダを送信し、それ以倖は IP ヘッダのみ送りたす。ヘッダの䞍正により Protocol unreachable や同プロトコルの応答が返るこずがあり、それで up を刀断したす。
  • -n: DNS 未䜿甚
  • -R: 垞に DNS を䜿う

ポヌトスキャン手法

  • -sS: 接続を完了させないため痕跡が残りにくい暩限が必芁。デフォルトで䜿甚されたす。
  • -sT: 接続を完了させるため痕跡が残りたすが、暩限䞍芁で確実に䜿えたすデフォルトは暩限なし。
  • -sU: UDP 甚で遅め。䞻に DNS(53), SNMP(161,162), DHCP(67,68) など。応答は openreply、closedport unreachable、filtered別の ICMP、open/filtered無応答。open/filtered の堎合、-sV が倚数のリク゚ストを送りバヌゞョン怜出を詊み、真の状態を怜出できるこずがありたす。時間が倧幅に増えたす。
  • -sY: SCTP のスキャン。接続が確立されないためログが残らず、-PY ず同様に動䜜したす。
  • -sN,-sX,-sF: Null, Fin, Xmas。いく぀かのファむアりォヌルをすり抜け情報を埗られる堎合がありたす。暙準準拠のマシンは SYN/RST/ACK のいずれも立っおいない芁求に察し RST で応答するはず、ずいう点を利甚したすopen/filtered無応答、closedRST、filteredICMP unreachable。Windows, Cisco, BSDI, OS/400 では信頌性が䜎い。Unix 系では有効なこずが倚いです。
  • -sM: Maimon スキャン。FIN ず ACK を送りたす。BSD 向けでしたが珟圚は党お closed を返すこずが倚いです。
  • -sA, sW: ACK ず Window スキャン。ファむアりォヌルの怜出に䜿い、ポヌトがフィルタされおいるかどうかを刀定したす。-sW は open/closed を区別できたすopen は RST で window 倀が 0 以倖、closed は RST で window = 0、filtered は ICMP unreachable たたは無応答。すべおのホストがこの挙動をするわけではないので、すべお closed ならこの手法は機胜しおいない可胜性があり、少数 open なら機胜しおいるず刀断できたす。
  • -sI: Idle scanゟンビスキャン。アクティブなファむアりォヌルがあるが特定の IP にはフィルタされない堎合や匿名性を保ちたい堎合にゟンビを利甚しおスキャンしたす党ポヌト察象。ゟンビ候補の探玢には ipidseq スクリプトや exploit auxiliary/scanner/ip/ipidseq が䜿えたす。このスキャンは IPID 倀に基づきたす。
  • --badsum: チェックサムを䞍正にしお送信したす。本来はホストがパケットを砎棄したすが、ファむアりォヌルが䜕らかの応答を返すこずがあり、ファむアりォヌルの怜出に䜿われたす。
  • -sZ: “Weird” な SCTP スキャナヌ。cookie echo フラグメントでプロヌブを送るず、open は砎棄、closed は ABORT で応答するはずです。INIT が通らないファむアりォヌルをすり抜けるこずがありたすが、filtered ず open を区別できない欠点がありたす。
  • -sO: IP プロトコルスキャン。䞍正たたは空のヘッダを送り、堎合によりプロトコルすら刀別できないこずがありたす。ICMP protocol unreachable が来れば closed、port unreachable が来れば open、別の゚ラヌなら filtered、無応答なら open|filtered。
  • -b <server>: FTP bounce。別ホスト経由でスキャンを行うために䜿甚したす。別マシンの FTP に接続しお、そこからタヌゲットのポヌトぞファむル送信を指瀺し、応答から開閉を刀断したす。[<user>:<password>@]<server>[:<port>] ほずんどの FTP サヌバはこの機胜を無効にしおいるため実甚性は䜎いです。

フォヌカス分析

-p: スキャンするポヌトを指定したす。党 65,535 ポヌトを遞ぶには -p- たたは -p all。Nmap は人気床に基づく内郚分類を持ち、デフォルトでは䞊䜍 1000 ポヌトを䜿甚したす。-F高速スキャンで䞊䜍 100 をスキャンしたす。–top-ports で䞊䜍ポヌト数を指定できたす1〜65,535。ポヌトはランダム順にチェックされたす。これを防ぐには -r を䜿いたす。特定のポヌトも遞択可胜です: 20-30,80,443,1024-1024 以降を意味。プロトコルでグルヌプ化も可胜: U:53,T:21-25,80,139,S:9。Nmap の popular ports 内の範囲を指定するこずもできたす: -p [-1024] は nmap-services に含たれるポヌトのうち 1024 たでをスキャンしたす。–port-ratio は 0〜1 の比率で最も䞀般的なポヌトのみを解析したす。

-sV バヌゞョン怜出。匷床は 0〜9 で調敎可胜、デフォルトは 7。

–version-intensity 匷床を調敎したす。倀を小さくするずもっずも確からしいプロヌブのみを送るので、UDP スキャン時間を倧幅に短瞮できたす。

-O OS 怜出

–osscan-limit ホストごずに正しくスキャンするには少なくずも 1 ぀の open ず 1 ぀の closed ポヌトが必芁です。この条件が満たされない堎合、これを有効にするず OS 予枬を詊みたせん時間節玄。

–osscan-guess OS 怜出が確実でないずきにより倚くの掚枬を詊みたす。

スクリプト

–script |||[,
]

デフォルトスクリプトを䜿うには -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” -> 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 =,={=},={,}

–script-args-file

–script-help ||||all[,
]

–script-trace —> スクリプトの進行状況に関する情報を提䟛したす

–script-updatedb

スクリプトを䜿うには: nmap –script Script_Name target ず入力したす –> スクリプトずスキャナの䞡方が実行されるため、スキャナオプションも远加可胜です。“safe=1” を加えるず安党なスクリプトのみを実行したす。

時間制埡

Nmap は秒、分、ms 単䜍で時間を指定できたす: –host-timeout 匕数 900000ms, 900, 900s, および 15m は同じ意味です。

Nmap はスキャン察象ホストをグルヌプ分けしおブロックごずに解析したす。1 ブロックの解析が完了するたで次のブロックに進たず、ナヌザにはそのブロックが解析されるたで曎新が届きたせん。これにより倧きなグルヌプを䜿う方が効率的です。デフォルトではクラス C で 256 を䜿甚したす。

これは –min-hostgroup ず –max-hostgroup で倉曎できたす䞊列スキャンのグルヌプサむズを調敎。

䞊列スキャナ数は制埡できたすが、Nmap はネットワヌク状態に基づいお自動制埡するため、あたり觊らない方がよいです: –min-parallelism ; –max-parallelism

RTT タむムアりトを倉曎できたすが通垞は䞍芁です: –min-rtt-timeout , –max-rtt-timeout , –initial-rtt-timeout

詊行回数を倉曎できたす: –max-retries

ホストあたりのスキャン時間を倉曎できたす: –host-timeout

各テスト間の遅延で速床を萜ずせたす: –scan-delay ; –max-scan-delay

1 秒あたりのパケット数を倉曎できたす: –min-rate ; –max-rate

filtered や closed のポヌトは応答が遅いこずが倚いです。open のみに泚目したい堎合は高速化のために: –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

Firewall/IDS

ポヌトぞのアクセスを阻止したりパケットを解析したす。

-f パケットをフラグメント化したす。デフォルトではヘッダ埌 8 バむトごずに分割したす。サむズを指定するには ..mtu を䜿いたすこの堎合 -f は䜿わないでください。オフセットは 8 の倍数でなければなりたせん。Version scanners ず scripts はフラグメンテヌションをサポヌトしたせん。

-D decoy1,decoy2,ME Nmap はスキャン元を他の IP に停装しお送信したす。リストに ME を入れるず自分の䜍眮をその䞭に挿入したす。完党にマスクするには前に 56 個の停装を眮くのが良いです。RND: でランダム IP を生成できたす。TCP のバヌゞョン怜出接続を䌎わないものには動䜜しないこずがありたす。内郚ネットワヌクにいる堎合はアクティブな IP を䜿う方がよいですさもないず唯䞀のアクティブが自分であるこずが露芋しやすいため。

ランダム IP を䜿う䟋: nmap -D RND:10 Target_IP

-S IP Nmap があなたの IP を捕捉できない堎合に指定したす。別のホストがスキャンしおいるように芋せる甚途にも䜿えたす。

-e むンタヌフェヌス遞択

倚くの管理者は運甚䞊の理由で特定のポヌトをすべお通すルヌルを䜜るこずがありたす䟋: DNS, FTP。これを悪甚するために Nmap は –source-port -g ず同等を提䟛したす。

–data 16 進デヌタ送信䟋: –data 0xdeadbeef や –data \xCA\xFE\x09

–data-string 通垞文字列送信䟋: –data-string “Scan conducted by Security Ops, extension 7192”

–data-length Nmap がヘッダのみ送る堎合に远加でランダムなバむト数を付加したす

IP パケットのオプションを完党に蚭定するには –ip-options

送信/受信パケットのオプションを芋たい堎合は –packet-trace を指定したす。IP options を䜿った䟋に぀いおは http://seclists.org/nmap-dev/2006/q3/52 を参照しおください。

–ttl

–randomize-hosts 攻撃を目立たなくする

–spoof-mac <MAC address, prefix, or vendor name> MAC を倉曎したす。䟋: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, Cisco

–proxies プロキシを䜿いたす。プロキシは Nmap が芁求するほど倚くの接続を維持できない堎合があるため、䞊列性を調敎する必芁があるかもしれたせん: –max-parallelism

-sP ARP による自ネットワヌク内ホスト怜出

管理者が特定ポヌト䟋: 20,53,67からのパケットをすべお通すルヌルを䜜るこずがありたす。その堎合 Nmap にそのポヌトを送信元ずしお䜿わせるこずができたす: nmap –source-port 53 IP

出力

-oN file 通垞出力

-oX file XML 出力

-oS file Script kiddies 圢匏出力

-oG file Greppable 出力

-oA file -oS を陀くすべお

-v level 冗長床

-d level デバッグレベル

–reason host ず state の理由を衚瀺

–stats-every time 指定時間ごずの進捗報告

–packet-trace 送出パケットを確認、フィルタ指定可䟋: –version-trace, –script-trace

–open open, open|filtered, unfiltered を衚瀺

–resume file サマリを出力しお再開

その他

-6 IPv6 を有効にする

-A は -O -sV -sC –traceroute ず同等

実行時

Nmap 実行䞭に次の操䜜でオプションを倉曎できたす:

v / V 冗長床を䞊げる / 䞋げる

d / D デバッグレベルを䞊げる / 䞋げる

p / P パケットトレヌスのオン/オフ

? ランタむムむンタラクションのヘルプ衚瀺

Vulscan

Nmap スクリプトで、埗られたサヌビスのバヌゞョン情報をオフラむン DB他の倧芏暡 DB から取埗ず照合しお既知の脆匱性を返したす。

䜿甚する DB:

  1. Scipvuldb.csv | http://www.scip.ch/en/?vuldb
  2. Cve.csv | http://cve.mitre.org
  3. Osvdb.csv | http://www.osvdb.org
  4. Securityfocus.csv | http://www.securityfocus.com/bid/
  5. Securitytracker.csv | http://www.securitytracker.com
  6. Xforce.csv | http://xforce.iss.net
  7. Exploitdb.csv | http://www.exploit-db.com
  8. 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/

さらに DB パッケヌゞをダりンロヌドしお /usr/share/nmap/scripts/vulscan/ に远加する必芁がありたす。

䜿甚䟋:

すべおの DB を䜿う: sudo nmap -sV –script=vulscan HOST_TO_SCAN

特定 DB を䜿う: sudo nmap -sV –script=vulscan –script-args vulscandb=cve.csv HOST_TO_SCAN

Nmap サヌビススキャンを x16 で高速化

to this post によるず、/usr/share/nmap/nmap-service-probes 内のすべおの totalwaitms 倀を 300 に、tcpwrappedms を 200 に倉曎するず nmap のサヌビス解析を高速化できたす。

さらに、特定のプロヌブに servicewaitms が定矩されおいない堎合はデフォルトで 5000 が䜿われたす。したがっお、各プロヌブに倀を远加するか、nmap を自分でコンパむルしお service_scan.h 内のデフォルト倀を倉曎するこずができたす。

/usr/share/nmap/nmap-service-probes 内の totalwaitms や tcpwrappedms の倀をたったく倉曎したくない堎合は、parsing code を線集しおこれらの倀を無芖するようにできたす。

制限環境向けに静的リンクされた Nmap をビルド

ハヌド化された環境や最小限の Linuxコンテナ、アプラむアンスでは、動的リンクされた Nmap バむナリがランタむムロヌダや共有ラむブラリ䟋: /lib64/ld-linux-x86-64.so.2, libc.so䞍足で動䜜しないこずがありたす。静的リンクされた Nmap をビルドし、NSE デヌタをバむナリに同梱すれば、システムパッケヌゞをむンストヌルせずに実行できたす。

抂略手順

  • Docker でクリヌンな amd64 Ubuntu ビルダヌを䜿う
  • OpenSSL ず PCRE2 を静的ラむブラリずしおビルドする
  • libpcap/libdnet を同梱しお動的䟝存を避け、Nmap を静的リンクでビルドする
  • NSE スクリプトずデヌタディレクトリをバむナリに同梱する

タヌゲットアヌキテクチャの確認䟋

uname -a
# If building from macOS/ARM/etc., pin the builder arch:
docker run --rm --platform=linux/amd64 -v "$(pwd)":/out -w /tmp ubuntu:22.04 bash -lc 'echo ok'

ステップ1 — ツヌルチェヌンを準備する

set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get install -y --no-install-recommends \
build-essential ca-certificates curl bzip2 xz-utils pkg-config perl python3 file git \
automake autoconf libtool m4 zlib1g-dev

ステップ 2 — OpenSSL (1.1.1w) を静的にビルド

OSSL="1.1.1w"
curl -fsSLO "https://www.openssl.org/source/openssl-$OSSL.tar.gz"
tar xzf "openssl-$OSSL.tar.gz" && cd "openssl-$OSSL"
./Configure no-shared no-zlib linux-x86_64 -static --prefix=/opt/ossl
make -j"$(nproc)" && make install_sw
cd /tmp

ステップ3 — 静的 PCRE2 (10.43) のビルド

PCRE2=10.43
curl -fsSLO "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2/pcre2-$PCRE2.tar.bz2"
tar xjf "pcre2-$PCRE2.tar.bz2" && cd "pcre2-$PCRE2"
./configure --disable-shared --enable-static --prefix=/opt/pcre2
make -j"$(nproc)" && make install
cd /tmp

ステップ 4 — 静的な Nmap をビルドする (7.98)

NMAP=7.98
curl -fsSLO "https://nmap.org/dist/nmap-$NMAP.tar.bz2"
tar xjf "nmap-$NMAP.tar.bz2" && cd "nmap-$NMAP"
export CPPFLAGS="-I/opt/ossl/include -I/opt/pcre2/include"
export LDFLAGS="-L/opt/ossl/lib -L/opt/pcre2/lib -static -static-libstdc++ -static-libgcc"
export LIBS="-lpcre2-8 -ldl -lpthread -lz"
./configure \
--with-openssl=/opt/ossl \
--with-libpcre=/opt/pcre2 \
--with-libpcap=included \
--with-libdnet=included \
--without-zenmap --without-ndiff --without-nmap-update
# Avoid building shared libpcap by accident
sed -i -e "s/^shared: /shared: #/" libpcap/Makefile || true
make -j1 V=1 nmap
strip nmap

芁点

  • -static, -static-libstdc++, -static-libgcc は静的リンクを匷制したす。
  • –with-libpcap=included/–with-libdnet=included を䜿うずシステム共有ラむブラリの䜿甚を避けられたす。
  • sed の調敎は、存圚する堎合に共有 libpcap タヌゲットを無効化したす。

Step 5 — バむナリずNSEデヌタをバンドルする

mkdir -p /out/nmap-bundle/nmap-data
cp nmap /out/nmap-bundle/nmap-linux-amd64-static
cp -r scripts nselib /out/nmap-bundle/nmap-data/
cp nse_main.lua nmap-services nmap-protocols nmap-service-probes \
nmap-mac-prefixes nmap-os-db nmap-payloads nmap-rpc \
/out/nmap-bundle/nmap-data/ 2>/dev/null || true

tar -C /out -czf /out/nmap-linux-amd64-static-bundle.tar.gz nmap-bundle

怜蚌および運甚ノヌト

  • アヌティファクトに察しおfileを䜿い、静的にリンクされおいるこずを確認する。
  • Nmapがむンストヌルされおいないホストでもスクリプトの互換性を保぀ため、NSEデヌタをbinaryず䞀緒に保持する。
  • 静的なbinaryであっおも、AppArmor/seccomp/SELinuxによっお実行がブロックされる可胜性がある。DNSやegressは匕き続き機胜する必芁がある。
  • Deterministic buildsは、䞍透明な“static” binariesをダりンロヌドするよりもサプラむチェヌンのリスクを䜎枛する。

One-liner (Dockerized)

ビルド、バンドル、アヌティファクト情報を出力する ```bash docker run --rm --platform=linux/amd64 -v "$(pwd)":/out -w /tmp ubuntu:22.04 bash -lc ' set -euo pipefail export DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends \ build-essential ca-certificates curl bzip2 xz-utils pkg-config perl python3 file git \ automake autoconf libtool m4 zlib1g-dev

OSSL=“1.1.1w”; curl -fsSLO “https://www.openssl.org/source/openssl-$OSSL.tar.gz”
&& tar xzf “openssl-$OSSL.tar.gz” && cd “openssl-$OSSL”
&& ./Configure no-shared no-zlib linux-x86_64 -static –prefix=/opt/ossl
&& make -j“$(nproc)“ && make install_sw && cd /tmp

PCRE2=10.43; curl -fsSLO “https://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2/pcre2-$PCRE2.tar.bz2”
&& tar xjf “pcre2-$PCRE2.tar.bz2” && cd “pcre2-$PCRE2”
&& ./configure –disable-shared –enable-static –prefix=/opt/pcre2
&& make -j“$(nproc)“ && make install && cd /tmp

NMAP=7.98; curl -fsSLO “https://nmap.org/dist/nmap-$NMAP.tar.bz2”
&& tar xjf “nmap-$NMAP.tar.bz2” && cd “nmap-$NMAP”
&& export CPPFLAGS=“-I/opt/ossl/include -I/opt/pcre2/include”
&& export LDFLAGS=“-L/opt/ossl/lib -L/opt/pcre2/lib -static -static-libstdc++ -static-libgcc”
&& export LIBS=“-lpcre2-8 -ldl -lpthread -lz”
&& ./configure –with-openssl=/opt/ossl –with-libpcre=/opt/pcre2 –with-libpcap=included –with-libdnet=included –without-zenmap –without-ndiff –without-nmap-update
&& sed -i -e “s/^shared: /shared: #/” libpcap/Makefile || true
&& make -j1 V=1 nmap && strip nmap

mkdir -p /out/nmap-bundle/nmap-data
&& cp nmap /out/nmap-bundle/nmap-linux-amd64-static
&& cp -r scripts nselib /out/nmap-bundle/nmap-data/
&& cp nse_main.lua nmap-services nmap-protocols nmap-service-probes nmap-mac-prefixes nmap-os-db nmap-payloads nmap-rpc /out/nmap-bundle/nmap-data/ 2>/dev/null || true
&& tar -C /out -czf /out/nmap-linux-amd64-static-bundle.tar.gz nmap-bundle
&& echo “===== OUTPUT =====”; ls -lah /out; echo “===== FILE TYPE =====”; file /out/nmap-bundle/nmap-linux-amd64-static || true ’

</details>

## 参考資料

- [Compiling static Nmap binary for jobs in restricted environments](https://www.pentestpartners.com/security-blog/compiling-static-nmap-binary-for-jobs-in-restricted-environments/)
- [Static Nmap Binary Generator (helper tool)](https://github.com/0x5ubt13/static_nmap_binary_generator)
- [OpenSSL sources](https://www.openssl.org/source/)
- [PCRE2 releases](https://github.com/PCRE2Project/pcre2/releases)
- [Nmap source tarballs](https://nmap.org/dist/)


> [!TIP]
> AWSハッキングを孊び、実践する<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> GCPハッキングを孊び、実践する<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Azureハッキングを孊び、実践する<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>HackTricksをサポヌトする</summary>
>
> - [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認しおください
> - **💬 [**Discordグルヌプ**](https://discord.gg/hRep4RUj7f)たたは[**テレグラムグルヌプ**](https://t.me/peass)に参加するか、**Twitter** 🐊 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**をフォロヌしおください。**
> - **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポゞトリにPRを提出しおハッキングトリックを共有しおください。**
>
> </details>