Nmap Özeti (ESP)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
Parametreler
Taranacak IP’ler
<ip>,<net/mask>: IP’leri doğrudan belirtir-iL <ips_file>: list_IPs-iR <number>: Rastgele IP sayısı, olası IP’leri--exclude <Ips>veya--excludefile <file>ile hariç tutabilirsiniz.
Cihaz keşfi
Varsayılan olarak Nmap şu keşif aşamasını başlatır: -PA80 -PS443 -PE -PP
-sL: İnvaziv değildir, hedefleri listeleyip isimleri çözmek için DNS sorguları yapar. Örneğin www.prueba.es/24 içindeki tüm IP’lerin hedefimiz olup olmadığını anlamak için yararlıdır.-Pn: Ping yok. Hepsinin aktif olduğunu biliyorsanız kullanışlıdır (değilse çok zaman kaybedebilirsiniz; ayrıca yanlış negatif üretebilir), keşif aşamasını engeller.-sn: Port taraması yok. Keşif aşamasını tamamladıktan sonra port taraması yapmaz. Nispeten gizlidir ve küçük ağ taramalarına izin verir. İmtiyazlarla 80’e bir ACK (-PA), 443’e bir SYN (-PS) ve bir echo ile Timestamp isteği gönderir; imtiyaz yoksa her zaman bağlantıyı tamamlar. Hedef ağ ise sadece ARP(-PR) kullanır. Başka bir seçenekle birlikte kullanıldığında, yalnızca diğer seçeneğin paketleri gönderilir.-PR: Ping ARP. Ağımızdaki bilgisayarları analiz ederken varsayılan olarak kullanılır, ping kullanmaktan daha hızlıdır. ARP paketleri kullanmak istemiyorsanız--send-ipkullanın.-PS <ports>: SYN paketleri gönderir; SYN/ACK ile cevap gelirse açık (bağlantıyı sonlandırmamak için RST ile cevap verirler), RST ile cevap gelirse kapalı, cevap gelmezse ulaşılamaz. İmtiyaz yoksa otomatik olarak tam bağlantı kullanılır. Port verilmezse varsayılan 80’e atar.-PA <ports>: Öncekine benzer ancak ACK ile; ikisini kombine etmek daha iyi sonuç verir.-PU <ports>: Amaç tersidir, kapalı olması beklenen portlara gönderilir. Bazı firewall’lar sadece TCP bağlantılarını kontrol eder. Kapalıysa port unreachable ile cevap verir, başka bir ICMP ile ya da cevap yoksa destination unreachable olarak bırakılır.-PE, -PP, -PM: ICMP PING’leri: echo reply, timestamp ve addresmask. Hedefin aktif olup olmadığını bulmak için gönderilir.-PY<ports>: Varsayılan olarak 80’e SCTP INIT probe’ları gönderir; INIT-ACK (open) veya ABORT (closed) ya da hiçbiri veya ICMP unreachable (inactive) dönebilir.-PO <protocols>: Başlıklarda bir protokol belirtilir, varsayılan 1(ICMP), 2(IGMP) ve 4(Encap IP). ICMP, IGMP, TCP (6) ve UDP (17) için protokol başlıkları gönderilir, geri kalanlar için sadece IP başlığı gönderilir. Amaç, başlıkların bozulması nedeniyle Protocol unreachable veya aynı protokolden cevaplar alarak up olup olmadığını anlamaktır.-n: DNS yok-R: DNS her zaman
Port tarama teknikleri
-sS: Bağlantıyı tamamlamaz, iz bırakmaz; kullanılabiliyorsa çok iyi.(imtiyaz) Varsayılan olarak kullanılan odur.-sT: Bağlantıyı tamamlar, dolayısıyla iz bırakır, ama kesinlikle kullanılabilir. Varsayılan olarak imtiyaz yoksa.-sU: Daha yavaş, UDP için. Çoğunlukla: DNS(53), SNMP(161,162), DHCP(67 ve 68), (-sU53,161,162,67,68): open(reply), closed(port unreachable), filtered (başka ICMP), open/filtered (hiçbir şey). open/filtered durumunda, -sV nmap’in desteklediği sürümlerden herhangi birini tespit etmek için çok sayıda istek gönderir ve gerçek durumu algılayabilir. Süreyi oldukça uzatır.-sY: SCTP protokolü bağlantıyı kuramayınca log bırakmaz, -PY gibi çalışır-sN,-sX,-sF: Null, Fin, Xmas; bazı firewall’ları geçebilir ve bilgi çıkarabilir. Standarda uygun makineler SYN, RST veya ACK bitleri setli olmayan tüm istekleri RST ile cevaplamalıdır: open/filtered (hiçbir şey), closed (RST), filtered (ICMP unreachable). Windows, Cisco, BSDI ve OS/400 üzerinde güvenilmez. Unix üzerinde evet.-sM: Maimon taraması: FIN ve ACK flag’leri gönderir, BSD için kullanılır, günümüzde hepsini closed olarak döndürecektir.-sA, sW: ACK ve Window; firewall’ları tespit etmek için, portların filtrelenip filtrelenmediğini anlamaya yarar. -sW open/closed arasında ayrım yapar çünkü açık olanlar farklı window değeriyle cevap verir: open (RST window ≠ 0), closed (RST window = 0), filtered (ICMP unreachable veya hiçbiri). Tüm bilgisayarlar bu şekilde çalışmayabilir; hepsi closed görünüyorsa çalışmıyor demektir; birkaç açık varsa düzgün çalışıyordur; çok açık ve az closed varsa ters çalışıyor demektir.-sI: Idle scan. Aktif bir firewall varsa ama belirli bir IP’ye filtre uygulamadığını bildiğimiz (veya anonimlik istediğimiz) durumlarda zombie tarayıcıyı kullanabiliriz (tüm portlar için çalışır). Olası zombie’leri bulmak için ipidseq script’i veya exploit auxiliary/scanner/ip/ipidseq kullanılabilir. Bu tarayıcı IP paketlerinin IPID numarasına dayanır.--badsum: Checksum’ı yanlış gönderir; makineler paketleri atar ama firewall’lar bir şey cevaplayabilir; firewall tespiti için kullanılır.-sZ: “Weird” SCTP tarayıcı; cookie echo fragment’ları göndrildiğinde açıksa atılmalı, kapalıysa ABORT ile cevaplanmalıdır. INIT’in geçemediği firewall’lardan geçebilir; kötü yanı open ile filtered’ı ayırt edememesidir.-sO: IP protokol taraması. Bazen protokolün bile ayırt edilemediği hatalı ve boş başlıklar gönderir. ICMP protocol unreachable gelirse kapalı, unreachable port gelirse açık, başka hata gelirse filtered, hiç gelmezse open|filtered.-b <server>: FTPhost –> Bir hostu başka birinden taramak için kullanılır; başka bir makinenin ftp’sine bağlanıp taramak istediğiniz portlara dosya göndermesini isteyerek, gelen yanıtlara göre açık olup olmadığını anlarsınız. [<user>:<password>@]<server>[:<port>] Neredeyse tüm ftp sunucuları artık bunu izin vermiyor, bu yüzden pratikte sınırlı faydası var.
Odak Analizi
-p: Taranacak portları belirtmek için kullanılır. Tüm 65.535 portu seçmek için: -p- veya -p all. Nmap’in popülerliğe dayalı dahili bir sınıflandırması vardır. Varsayılan olarak en üst 1000 portu kullanır. -F (hızlı tarama) ile en üst 100’ü analiz eder. –top-ports
-sV Versiyon taraması, yoğunluğu 0 ile 9 arasında ayarlanabilir, varsayılan 7’dir.
–version-intensity
-O OS tespiti
–osscan-limit Uygun host taraması için en az bir açık ve bir kapalı porta ihtiyaç vardır. Bu koşul sağlanmazsa ve bu seçenek ayarlıysa OS tahmini denemeyecektir (zaman kazandırır).
–osscan-guess OS tespiti mükemmel olmadığında daha çok zorlamasını sağlar.
Scriptler
–script
Varsayılan scriptleri kullanmak için -sC veya –script=default kullanın
Available types are: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, and vuln
- Auth: mevcut tüm authentication script’lerini çalıştırır
- Default: temel varsayılan araç script’lerini çalıştırır
- Discovery: hedeften veya kurbandan bilgi alır
- External: dış kaynakları kullanan script
- Intrusive: hedefe kurban açısından müdahaleci kabul edilen script’ler kullanır
- Malware: kötü amaçlı kod veya backdoor’lar tarafından açılmış bağlantıları kontrol eder
- Safe: müdahaleci olmayan script’leri çalıştırır
- Vuln: en bilinen zafiyetleri keşfeder
- All: mevcut tüm NSE extension script’lerini çalıştırır
Script aramak için:
nmap –script-help=“http-*” -> http- ile başlayanlar
nmap –script-help=“not intrusive” -> Hepsi, intrusive olmayanlar hariç
nmap –script-help=“default or safe” -> Her iki kategoride olanlar veya her iki kategoriden biri
nmap –script-help=“default and safe” –> Her iki kategoride de olanlar
nmap –script-help=“(default or safe or intrusive) and not http-*”
–script-args
–script-args-file
–script-help
–script-trace —> Script’in nasıl ilerlediğine dair bilgi verir
–script-updatedb
Bir script kullanmak için, sadece yazın: nmap –script Script_Name target –> Script kullanılırken hem script hem scanner çalıştırılır, bu yüzden scanner seçenekleri de eklenebilir. Yalnızca güvenli olanları çalıştırmak için “safe=1” ekleyebilirsiniz.
Zaman Kontrolü
Nmap zamanı saniye, dakika, ms cinsinden değiştirebilir: –host-timeout argümanları 900000ms, 900, 900s ve 15m aynı anlama gelir.
Nmap taranacak toplam host sayısını gruplara böler ve bu grupları bloklar halinde analiz eder; bir bloğun tümü analiz edilmeden diğer bloğa geçmez (ve kullanıcı, blok analiz edilene kadar güncelleme almaz). Bu nedenle Nmap için büyük gruplar kullanmak daha optimaldir. Varsayılan olarak class C’de 256 kullanır.
Bunu –min-hostgroup
Paralel scanner sayısını kontrol edebilirsiniz ama genelde yapmamak daha iyidir (Nmap ağ durumuna göre otomatik kontrol içerir): –min-parallelism
RTT timeout’u değiştirebiliriz, genelde gerekmez: –min-rtt-timeout , –max-rtt-timeout , –initial-rtt-timeout
Deneme sayısını değiştirebiliriz: –max-retries
Bir host’un tarama süresini değiştirebiliriz: –host-timeout
Her test arasındaki süreyi artırarak yavaşlatabiliriz: –scan-delay ; –max-scan-delay
Saniye başına gönderilen paket sayısını değiştirebiliriz: –min-rate
Filtrelenmiş veya kapalı olduğunda birçok port uzun süre cevap verir. Sadece açık olanlarla ilgileniyorsak daha hızlı olmak için: –defeat-rst-ratelimit
Nmap’in ne kadar agresif olmasını istediğimizi tanımlamak için: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 –> Her seferinde sadece 1 port tarar ve bir sonraki için 5dk bekler
-T1 ve T2 –> Çok benzer, ancak her test arasında sırasıyla 15s ve 0.4s bekler
-T3 –> Varsayılan çalışma, paralel taramayı içerir
-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
Port erişimine izin vermezler ve paketleri analiz ederler.
-f Paketleri parçalar, varsayılan olarak header’dan sonra 8byte’lık parçalar oluşturur; bu boyutu belirtmek için ..mtu kullanın (bu durumda -f kullanmayın), offset 8’in katı olmalıdır. Version scanner’lar ve script’ler fragmentation’ı desteklemez
-D decoy1,decoy2,ME Nmap taramaları başka IP’ler kaynaklıymış gibi gönderir, böylece sizi gizler. Eğer listede ME yazarsanız Nmap sizi o noktaya yerleştirir; tamamen maskelenmek için önünüze 5 veya 6 tane koymak iyidir. Rastgele IP’ler RND:
Rastgele IP’ler kullanmak için: nmap -D RND:10 Target_IP
-S IP Nmap IP’nizi yakalayamazsa vermeniz gerekir. Ayrıca başka bir hedefmiş gibi göstermek için de kullanılır.
-e
Birçok yönetici, her şeyin düzgün çalışması için giriş portlarını herkese açık bırakır ve bu onlar için başka çözüm bulmaktan daha kolaydır. Bunlar DNS veya FTP portları olabilir… Bu açıklığı bulmak için Nmap şunları içerir: –source-port
–data
–data-string
–data-length
IP paketini tamamen yapılandırmak için –ip-options kullanın
Gönderilen ve alınan paketlerdeki seçenekleri görmek isterseniz, –packet-trace belirtin. IP options ile Nmap kullanımıyla ilgili daha fazla bilgi ve örnek için bkz. http://seclists.org/nmap-dev/2006/q3/52.
–ttl
–randomize-hosts Saldırıyı daha az belirgin hale getirmek için
–spoof-mac <MAC address, prefix, or vendor name> MAC değiştirmek için örnekler: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, ve Cisco
–proxies
-sP Ağımızdaki hostları ARP ile keşfetmek için
Birçok yönetici belirli bir porttan gelen tüm paketlere izin veren bir firewall kuralı oluşturur (ör. 20,53 ve 67). Nmap’e paketlerimizi bu portlardan göndermesini söyleyebiliriz: nmap –source-port 53 IP
Çıktılar
-oN file Normal çıktı
-oX file XML çıktısı
-oS file Script kiddies çıktısı
-oG file Greppable çıktı
-oA file -oS hariç hepsi
-v level ayrıntı düzeyi (verbosity)
-d level hata ayıklama (debugging)
–reason Host ve durumun nedeni
–stats-every time Belirtilen sürede bir nasıl gittiğini bildirir
–packet-trace Hangi paketlerin çıktığını görmek için, filtreler belirtilebilir: –version-trace veya –script-trace
–open açık, open|filtered ve unfiltered gösterir
–resume file Özet çıktısı
Diğer
-6 IPv6’ya izin verir
-A -O -sV -sC –traceroute ile aynı
Çalışma zamanı
Nmap çalışırken seçenekleri değiştirebiliriz:
v / V Ayrıntı seviyesini artır / azalt
d / D Debug seviyesini artır / azalt
p / P Packet tracing aç / kapa
? Çalışma zamanı etkileşimli yardım ekranını yazdır
Vulscan
Versiyonlardan elde edilen servis bilgilerini offline bir veritabanında (başka önemli kaynaklardan indirilmiş) arayan Nmap script’idir ve olası zafiyetleri döndürür
Kullandığı DB’ler:
- 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
İndirmek ve Nmap klasörüne kurmak için:
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/
Ayrıca DB paketlerini indirip /usr/share/nmap/scripts/vulscan/ içine eklemeniz gerekir.
Kullanım:
Tümünü kullanmak için: sudo nmap -sV –script=vulscan HOST_TO_SCAN
Belirli bir DB kullanmak için: sudo nmap -sV –script=vulscan –script-args vulscandb=cve.csv HOST_TO_SCAN
Nmap Service taramasını x16 hızlandırma
bu gönderiye göre nmap servis analizini hızlandırmak için /usr/share/nmap/nmap-service-probes içindeki tüm totalwaitms değerlerini 300 ve tcpwrappedms değerini 200 yapabilirsiniz.
Ayrıca, özel bir servicewaitms tanımlanmamış probe’lar için varsayılan değer 5000’dür. Bu nedenle ya her probe’a değer ekleyebiliriz, ya da nmap’i derleyip varsayılan değeri service_scan.h içinde değiştirebiliriz.
Eğer /usr/share/nmap/nmap-service-probes dosyasındaki totalwaitms ve tcpwrappedms değerlerini hiç değiştirmek istemezseniz, bu değerlerin dosyada tamamen göz ardı edilmesini sağlamak için parsing kodunu düzenleyebilirsiniz.
Kısıtlı ortamlarda statik Nmap derlemek
Hardened veya minimal Linux ortamlarında (container’lar, appliance’lar), dinamik bağlı Nmap ikili dosyaları genellikle eksik runtime loader veya paylaşılan kütüphanelar (ör. /lib64/ld-linux-x86-64.so.2, libc.so) nedeniyle çalışmaz. Kendi statik bağlı Nmap’inizi derleyip NSE verilerini paketlerseniz, sistem paketleri kurmadan çalıştırabilirsiniz.
Yüksek seviyeli yaklaşım
- Temiz bir amd64 Ubuntu builder kullanın (Docker üzerinden).
- OpenSSL ve PCRE2’yi static kütüphane olarak derleyin.
- Nmap’i statik linkleyerek ve dinamik bağımlılıkları önlemek için dahil edilmiş libpcap/libdnet’i kullanarak derleyin.
- Binary ile birlikte NSE script’leri ve veri dizinlerini paketleyin.
Hedef mimariyi keşfetme (örnek)
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'
Adım 1 — Araç zincirini hazırla
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
Adım 2 — Statik OpenSSL’i derleyin (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
Adım 3 — Statik PCRE2 (10.43) derleme
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
Adım 4 — Statik Nmap’i derleyin (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
Key points
- -static, -static-libstdc++, -static-libgcc statik bağlamayı zorlar.
- –with-libpcap=included/–with-libdnet=included kullanımı sistem paylaşılan kütüphanelerden kaçınır.
- sed tweak, mevcutsa paylaşılan libpcap hedefini devre dışı bırakır.
Step 5 — İkili ve NSE verilerini paketleme
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
Doğrulama ve operasyon notları
- artifact üzerinde file kullanarak statically linked olduğunu doğrulayın.
- Nmap yüklü olmayan hostlarda script uyumluluğunu sağlamak için NSE verilerini binary ile birlikte tutun.
- Even with a static binary, yürütme AppArmor/seccomp/SELinux tarafından engellenebilir; DNS/egress hâlâ çalışıyor olmalıdır.
- Deterministik derlemeler, opak “static” binary’lerin indirilmesine kıyasla tedarik zinciri riskini azaltır.
One-liner (Dockerized)
Derle, paketle ve artifact bilgilerini yazdır
```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-devOSSL=“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>
## Referanslar
- [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 Hacking'i öğrenin ve pratik yapın:<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 Hacking'i öğrenin ve pratik yapın: <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 Hacking'i öğrenin ve pratik yapın: <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'i Destekleyin</summary>
>
> - [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
> - **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
>
> </details>
HackTricks

