Nmap Sažetak (ESP)
Reading time: 18 minutes
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
Parametri
IP-ovi za skeniranje
<ip>,<net/mask>: Indikujte ip-ove direktno-iL <ips_file>: lista_IPova-iR <number>: Broj nasumičnih IP-ova, možete isključiti moguće IP-ove sa--exclude <Ips>ili--excludefile <file>.
Otkrivanje uređaja
Po defaultu Nmap pokreće fazu otkrivanja sastavljenu od: -PA80 -PS443 -PE -PP
-sL: Nije invazivan, nabraja ciljeve praveći DNS zahteve za rešavanje imena. Koristan je da se zna, na primer, da li su svi IP-ovi iz www.prueba.es/24 naši ciljevi.-Pn: Bez pinga. Korisno ako znate da su svi aktivni (ako nisu, možete izgubiti puno vremena, ali ova opcija takođe daje lažno negativne rezultate tvrdeći da nisu aktivni), sprečava fazu otkrivanja.-sn: Bez skeniranja portova. Nakon završetka faze izviđanja, ne skenira portove. Relativno je stealtky i omogućava skeniranje male mreže. Sa privilegijama šalje ACK (-PA) na 80, SYN(-PS) na 443 i echo i Timestamp zahtev, bez privilegija uvek završava konekcije. Ako je cilj mreža, koristi samo ARP(-PR). Ako se koristi sa drugom opcijom, padaju samo paketi druge opcije.-PR: Ping ARP. Koristi se podrazumevano pri analizi računara u našoj mreži, brže je od klasičnih pingova. Ako ne želite koristiti ARP pakete koristite--send-ip.-PS <ports>: Šalje SYN pakete — ako odgovori SYN/ACK smatra se open (odgovara sa RST da ne završi konekciju), ako odgovori RST smatra se closed, a ako ne odgovori smatra se unreachable. Ako nema privilegija, automatski se koristi potpuna konekcija. Ako se ne navedu portovi, koristi 80.-PA <ports>: Kao prethodno ali sa ACK, kombinacija oba daje bolje rezultate.-PU <ports>: Cilj je suprotan — šalju se na portove za koje se očekuje da su zatvoreni. Neki firewall-i proveravaju samo TCP konekcije. Ako je zatvoren, odgovara sa port unreachable; ako odgovori drugim ICMP ili ne odgovori, ostaje destination unreachable.-PE, -PP, -PM: ICMP PINGOVI: echo reply, timestamp i addressmask. Pokreću se da bi se utvrdilo da li je cilj aktivan.-PY<ports>: Šalje SCTP INIT probe na 80 po defaultu, može odgovoriti INIT-ACK (open) ili ABORT (closed) ili ništa ili ICMP unreachable (inactive).-PO <protocols>: Navede se protokol u header-ima, po defaultu 1(ICMP), 2(IGMP) i 4(Encap IP). Za ICMP, IGMP, TCP (6) i UDP (17) šalju se headers protokola, za ostale samo IP header. Svrha je da zbog malformacije header-a dobijemo Protocol unreachable ili odgovore istog protokola kako bismo znali da li je up.-n: Bez DNS-a-R: Uvek DNS
Tehnike skeniranja portova
-sS: Ne završava konekciju pa ne ostavlja trag, jako dobro ako se može koristiti (privilegije). Po defaultu je ovo korišćeno.-sT: Završava konekciju, pa ostavlja trag, ali se sigurno može koristiti. Po defaultu bez privilegija.-sU: Sporije, za UDP. Najčešće: DNS(53), SNMP(161,162), DHCP(67 i 68), (-sU53,161,162,67,68): open(reply), closed(port unreachable), filtered (drugi ICMP), open/filtered (ništa). U slučaju open/filtered,-sVšalje brojne zahteve da detektuje verzije koje nmap podržava i može otkriti stvarno stanje. Značajno povećava vreme.-sY: SCTP, ne uspeva uspostaviti konekciju pa nema logova, radi slično kao-PY-sN,-sX,-sF: Null, Fin, Xmas — mogu probiti neke firewall-e i izvući informacije. Bazirano na tome da standard-compliant mašine trebaju odgovoriti sa RST na zahteve koji nemaju SYN, RST ili ACK flagove: open/filtered (ništa), closed (RST), filtered (ICMP unreachable). Nepouzdano na Windows, Cisco, BSDI i OS/400. Na Unix da.-sM: Maimon sken: šalje FIN i ACK flagove, korišćen za BSD, trenutno će vratiti sve kao closed.-sA, sW: ACK i Window, koriste se za detekciju firewall-a, da znamo da li su portovi filtrirani.-sWrazlikuje open/closed jer otvoreni odgovaraju sa različitom window vrednošću: open (RST sa window različitim od 0), closed (RST window = 0), filtered (ICMP unreachable ili ništa). Ne rade svi sistemi ovako, pa ako je sve closed, ne funkcioniše; ako je nekoliko open, radi kako treba; ako je mnogo open i malo closed, radi obrnuto.-sI: Idle scan. Za slučajeve kada postoji aktivan firewall ali znamo da ne filtrira ka određenom IP-u (ili kad želimo anonimnost) možemo koristiti zombie scanner (radi za sve portove). Da bismo našli moguće zombije možemo koristiti skriptuipidseqili exploitauxiliary/scanner/ip/ipidseq. Ovaj skener se oslanja na IPID broj u IP paketima.--badsum: Šalje pogrešan checksum, računari bi odbacili pakete, ali firewall-i mogu odgovoriti nečim — koristi se za detekciju firewall-a.-sZ: "Weird" SCTP skener — pri slanju probe sa cookie echo fragmentima trebaju biti odbačeni ako su open ili odgovoriti sa ABORT ako su closed. Može proći kroz firewall-e gde init ne prolazi; mana je što ne razlikuje filtered i open.-sO: Protocol IP sken. Šalje loše i prazne header-e u kojima ponekad nije moguće ni razlikovati protokol. Ako stigne ICMP unreachable protocol -> closed; ako stigne unreachable port -> open; ako stigne neka druga greška -> filtered; ako ništa -> open|filtered.-b <server>: FTPhost --> Koristi se da se skenira host sa drugog hosta; to se radi povezivanjem na ftp drugog mašine i traženjem da pošalje fajlove na portove koje želite skenirati sa te druge mašine; prema odgovorima znaćemo da li su otvoreni. Format: [<user>:<password>@]<server>[:<port>] Većina FTP servera više ovo ne dozvoljava pa ima malo praktične upotrebe.
Fokus analiza
-p: Koristi se za specifikovanje portova za skeniranje. Da se izaberu svi 65,535 portova: -p- ili -p all. Nmap ima internu klasifikaciju zasnovanu na popularnosti. Po defaultu koristi top 1000 portova. Sa -F (fast scan) analizira top 100. Sa --top-ports -p [-1024] analizira do porta 1024 iz onih uključenih u nmap-services. --port-ratio
-sV Version scanning, intenzitet se reguliše od 0 do 9, default je 7.
--version-intensity
-O Detekcija OS-a
--osscan-limit Za korektno oslkanje hosta potreban je barem jedan open i jedan closed port. Ako uslov nije ispunjen i ovo je postavljeno, neće pokušavati predviđanje OS-a (štedi vreme).
--osscan-guess Kada detekcija OS-a nije savršena, ovo forsira da pokuša više.
Skripte
--script
Za upotrebu default skripti, koristite -sC ili --script=default
Dostupni tipovi su: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, i vuln
- Auth: izvršava sve dostupne autentifikacione skripte
- Default: izvršava osnovne default skripte alata
- Discovery: pribavlja informacije sa cilja ili žrtve
- External: skripta za korišćenje eksternih resursa
- Intrusive: koristi skripte koje se smatraju intruzivnim za žrtvu ili cilj
- Malware: proverava konekcije otvorene od strane malicioznog koda ili backdoora
- Safe: izvršava ne-intruzivne skripte
- Vuln: otkriva najpoznatije ranjivosti
- All: izvršava apsolutno sve dostupne NSE ekstenzije
Za pretragu skripti:
nmap --script-help="http-*" -> Those starting with http-
nmap --script-help="not intrusive" -> All except those
nmap --script-help="default or safe" -> Those in either or both
nmap --script-help="default and safe" --> Those in both
nmap --script-help="(default or safe or intrusive) and not http-*"
--script-args
--script-args-file
--script-help
--script-trace ---> Daje informacije o toku izvršavanja skripte
--script-updatedb
Da biste koristili skriptu, jednostavno ukucajte: nmap --script Script_Name target --> Pri korišćenju skripte, i skripta i skener će se izvršiti, pa se mogu dodati i opcije skenera. Možemo dodati "safe=1" da izvršavamo samo bezbedne skripte.
Kontrola vremena
Nmap može modifikovati vreme u sekundama, minutima, ms: --host-timeout argumenti 900000ms, 900, 900s, i 15m svi rade isto.
Nmap deli ukupan broj hostova za skeniranje u grupe i analizira te grupe u blokovima, tako da ne prelazi na sledeći blok dok svi nisu analizirani (i korisnik ne dobija ažuriranja dok blok nije završen). Na ovaj način Nmap optimalnije koristi velike grupe. Po defaultu u class C koristi 256.
Ovo se može promeniti sa --min-hostgroup
Možete kontrolisati broj paralelnih skenera, ali bolje je ne dirati (Nmap već automatski kontroliše prema stanju mreže): --min-parallelism
Možemo modifikovati RTT timeout, ali obično ne treba: --min-rtt-timeout , --max-rtt-timeout , --initial-rtt-timeout
Možemo modifikovati broj pokušaja: --max-retries
Možemo modifikovati vreme skeniranja jednog hosta: --host-timeout
Možemo modifikovati vreme između svakog testa da ga usporimo: --scan-delay ; --max-scan-delay
Možemo modifikovati broj paketa po sekundi: --min-rate
Mnogi portovi dugo odgovaraju kada su filtrirani ili zatvoreni. Ako nas zanimaju samo otvoreni, možemo ići brže sa: --defeat-rst-ratelimit
Da definišemo koliko agresivno želimo da Nmap bude: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 --> Skenira samo 1 port u isto vreme i čeka 5min pre sledećeg
-T1 i T2 --> Veoma slični ali čekaju 15s odnosno 0.4s između testova
-T3 --> Default rad, uključuje paralelno skeniranje
-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
Ne dozvoljavaju pristup portovima i analiziraju pakete.
-f Fragmentira pakete; po defaultu fragmentuje u 8 bytes posle header-a, da biste specificirali tu veličinu koristite ..mtu (sa ovim ne koristite -f), offset mora biti deljiv sa 8. Version scanners i skripte ne podržavaju fragmentaciju
-D decoy1,decoy2,ME Nmap šalje skenere ali sa drugim IP adresama kao izvor, na taj način vas maskira. Ako stavite ME u listu, Nmap će vas tamo postaviti; bolje je staviti 5 ili 6 pre vas da vas potpuno zamaskira. Nasumični IP-ovi mogu se generisati sa RND:<number> za generisanje
Za upotrebu nasumičnih IP-ova: nmap -D RND:10 Target_IP
-S IP Kada Nmap ne prepozna vašu IP adresu morate je navesti ovim parametrom. Takođe služi da ih navede da misle da ih drugi target skenira.
-e
Mnogi administratori ostave ulazne portove otvorene da bi sve radilo kako treba i to im je lakše nego tražiti drugo rešenje. To mogu biti DNS ili FTP portovi... da se pronađe ova ranjivost Nmap ima: --source-port -g
--data --data 0xdeadbeef i --data \xCA\xFE\x09
--data-string --data-string "Scan conducted by Security Ops, extension 7192"
--data-length
Da konfigurišete IP paket potpuno koristite --ip-options
Ako želite da vidite opcije u paketima koji se šalju i primaju, navedite --packet-trace. Za više informacija i primera korišćenja IP opcija sa Nmap-om, pogledajte http://seclists.org/nmap-dev/2006/q3/52.
--ttl
--randomize-hosts Da napad bude manje očigledan
--spoof-mac <MAC address, prefix, or vendor name> Da promenite MAC; primeri: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, i Cisco
--proxies --max-parallelism
-sP Da otkrijete hostove u našoj mreži preko ARP-a
Mnogi administratori kreiraju firewall pravilo koje dozvoljava sve pakete koji dolaze sa određenog porta (npr. 20,53,67); možemo reći Nmap-u da šalje naše pakete sa tih portova: nmap --source-port 53 IP
Izlazi
-oN file Normalan izlaz
-oX file XML izlaz
-oS file Script kiddies output
-oG file Greppable izlaz
-oA file Sve osim -oS
-v level verbosity
-d level debugging
--reason Razlog stanja hosta i porta
--stats-every time Na svakih toliko vremena prikazuje progres
--packet-trace Da vidite koji paketi izlaze; mogu se specificirati filteri kao: --version-trace ili --script-trace
--open prikazuje only open, open|filtered i unfiltered
--resume file Nastavlja iz sažetka
Ostalo
-6 Dozvoljava IPv6
-A isto što i -O -sV -sC --traceroute
Vreme izvršenja
Dok Nmap radi možemo menjati opcije u realnom vremenu:
v / V Povećaj / smanji nivo verbositeta
d / D Povećaj / smanji nivo debugovanja
p / P Uključi / isključi packet tracing
? Ispis ekrana pomoći za runtime interakciju
Vulscan
Nmap skripta koja pregleda verzije servisa dobijene iz offline baze (preuzete sa drugih važnih izvora) i vraća moguće ranjivosti
DB koje koristi:
- 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
Da preuzmete i instalirate u Nmap folder:
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/
Takođe je potrebno preuzeti DB pakete i dodati ih u /usr/share/nmap/scripts/vulscan/
Upotreba:
Da koristite sve: sudo nmap -sV --script=vulscan HOST_TO_SCAN
Da koristite specifičnu DB: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_TO_SCAN
Ubrzanje Nmap service skeniranja x16
Prema ovom postu možete ubrzati nmap service analizu modifikujući sve vrednosti totalwaitms u /usr/share/nmap/nmap-service-probes na 300 i tcpwrappedms na 200.
Pored toga, probe koje nemaju eksplicitno definisan servicewaitms koriste podrazumevanu vrednost 5000. Dakle, možemo dodati vrednosti svakoj probe, ili možemo kompajlirati nmap sami i promeniti podrazumevanu vrednost u service_scan.h.
Ako ne želite da menjate vrednosti totalwaitms i tcpwrappedms u /usr/share/nmap/nmap-service-probes fajlu, možete izmeniti parsing kod tako da se te vrednosti u nmap-service-probes fajlu potpuno ignorišu.
Napravite statički Nmap za ograničena okruženja
U zategnutim ili minimalnim Linux okruženjima (kontejneri, appliance-i), dinamički linkovani Nmap binarni često ne rade zbog nedostatka runtime loader-a ili shared biblioteka (npr. /lib64/ld-linux-x86-64.so.2, libc.so). Pravljenje sopstvenog statički linkovanog Nmap-a i uklapanje NSE podataka omogućava izvršavanje bez instaliranja sistemskih paketa.
Visok nivo pristupa
- Koristite čist amd64 Ubuntu builder preko Dockera.
- Sagradite OpenSSL i PCRE2 kao statičke biblioteke.
- Sagradite Nmap linkujući statički i koristeći uključeni libpcap/libdnet da izbegnete dinamičke zavisnosti.
- Uključite NSE skripte i direktorijume podataka uz binarni fajl.
Otkrijte ciljnu arhitekturu (primer)
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'
Korak 1 — Pripremite toolchain
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
Korak 2 — Izgradnja statičkog OpenSSL-a (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
Korak 3 — Kompajliranje statičkog 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
Korak 4 — Izgradnja statičkog Nmap-a (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
Ključne tačke
- -static, -static-libstdc++, -static-libgcc prisiljavaju statičko povezivanje.
- Korišćenjem --with-libpcap=included/--with-libdnet=included izbegava se korišćenje sistemskih deljenih biblioteka.
- sed podešavanje onemogućava deljeni libpcap target ako postoji.
Korak 5 — Spakovanje binarnog fajla i NSE podataka
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
Verification and ops notes
- Koristite file na artefaktu da potvrdite da je statically linked.
- Sačuvajte NSE podatke uz binary kako biste osigurali script parity na hostovima bez instaliranog Nmap-a.
- Čak i sa static binary, izvršavanje može biti blokirano od strane AppArmor/seccomp/SELinux; DNS/egress i dalje mora raditi.
- Determinističke izrade smanjuju rizik lanca snabdevanja u odnosu na preuzimanje neprozirnih “static” binaries.
One-liner (Dockerized)
Izgradi, spakuj i ispiši informacije o artefaktu
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
'
Izvori
- Compiling static Nmap binary for jobs in restricted environments
- Static Nmap Binary Generator (helper tool)
- OpenSSL sources
- PCRE2 releases
- Nmap source tarballs
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HackTricks