Níže najdete 20 základních příklady použití příkazu Nmap.

Naučíte se používat Nmap z příkazový řádek v Linuxu vyhledávat aktivní hostitele v síti a skenovat otevřené porty.

Uvidíte jak vzdáleně detekovat operační systém pomocí otisků prstů zásobníku TCP/IP a jak zjistit verzi softwaru běžící na vzdáleném serveru.

Také vám ukážu, jak to udělat pomocí Nmap skryté skenování, Jak definovat firewall A jak změnit MAC adresu.

1. Naskenujte jednoho hostitele nebo adresu IP

Skenovat Samostatná IP adresa:

$nmap 192.168.1.1

Skenovat server podle Název hostitele:

$ nmap server.site

Zvýšit Úroveň detailu výsledky skenování:

$ nmap -v server..site

2. Skenování více IP adres

Skenovat Více IP adres:

$nmap 192.168.1.1 192.168.1.2 192.168.1.3 $namp 192.168.1.1,2,3

Skenovat Podsíť:

$ nmap 192.168.1.0/24 $ nmap 192.168.1.*

Skenovat Rozsah IP adres (192.168.1.0 — 192.168.1.200):

$nmap 192.168.1.0-200

3. Vyhledejte aktivní počítače v síti

Užitečná rada: Prohledejte svou síť pouze s jedním příkazy ping! Najděte všechny aktivní počítače!

Prohledejte síť a vyhledejte ji Aktivní hostitelé:

$ nmap -sn 192.168.1.0/24

4. Naskenujte seznam hostitelů ze souboru

Skenování seznamu hostitelů/sítí z Soubor:

$ nmap -iL input.txt

Formát souboru:

# Záznamy mohou být v jakémkoli z formátů, se kterými Nmap pracuje # z příkazového řádku (IP adresy, názvy hostitelů, CIDR, IPv6 nebo rozsahy # oktetu). Položky musí být odděleny jednou nebo více mezerami, tabulátory # nebo novými řádky. $ cat input.txt server.site 192.168.1.0/24 192.168.2.1,2,3 192.168.3.0-200

5. Vyloučení IP/hostitelů/sítí ze skenování

Vyloučit cíle ze skenování Nmap:

$ nmap 192.168.1.0/24 --vyloučit 192.168.1.1 $ nmap 192.168.1.0/24 --vyloučit 192.168.1.1 192.168.1.5 $ nmap 192.02.1,1281.192,1281.1.1.

Seznam vyloučení hostitelé převzaté ze souboru:

$ nmap 192.168.1.0/24 --excludefile exclusive.txt

Formát souboru s vyloučenými hostiteli je podobný výše uvedenému.

6. Prohledejte konkrétní porty

Skenovat Jeden Port:

$ nmap -p 80 192.168.1.1

Skenovat Více portů:

$ nmap -p 80.443 192.168.1.1

Skenovat Port Range:

$ nmap -p 80-1000 192.168.1.1

Skenovat Všechny porty:

$ nmap -p "*" 192.168.1.1

Naskenujte několik z nejvíce Společné porty:

$ nmap --top-ports 5 192.168.1.1 $ nmap --top-ports 10 192.168.1.1

7. Určení podporovaných IP protokolů

Určete které IP protokoly(TCP, UDP, ICMP atd.) podporuje skenovaný hostitel:

$ nmap -sO 192.168.1.1

8. Skenování portů TCP/UDP

Skenovat všechny TCP porty:

$ nmap -sT 192.168.1.1

Skenovat konkrétní TCP porty:

$ nmap -p T:80 192.168.1.1

Skenovat všechny UDP porty:

$ nmap -sU 192.168.1.1

Skenovat konkrétní UDP porty:

$ nmap -p U:53 192.168.1.1

Kombinace skenování různých portů:

$ nmap -p U:53,79,113,T:21-25,80,443,8080 192.168.1.1

9. Rychlé skenování

aktivovat Rychlý mód skenovat:

$ nmap -F 192.168.1.1

* Skenuje méně portů než při běžném skenování.

10. Ukažte příčinu stavu portu

Ukázat Důvod, podle kterého Nmap věří, že port je v určitém stavu:

$ nmap --důvod 192.168.1.1

11. Zobrazit pouze otevřené porty

Ukázat Pouze Otevřete porty (nebo případně otevřít):

$ nmap --otevřít 192.168.1.1

12. Definice OS

Jeden z nejznámějších funkčnost Nmap je vzdálená detekce OS založená na analýze zásobníku TCP/IP.

Nmap posílá sérii TCP a UDP paketů na vzdálený hostitel a zkoumá odpovědi.

Po provedení mnoha testů Nmap porovná výsledky se svou databází a pokud je nalezena shoda, zobrazí informace o OS.

Zapnout Definice OS:

$ nmap -O 192.168.1.1

13. Určení verze služeb

Zapnout Určení verze služeb:

$ nmap -sV 192.168.1.1

* Určuje verze programů spuštěných na vzdáleném serveru.

14. Detekce brány firewall

Zjistěte, zda je váš počítač nějakým chráněn Dávkové filtry nebo Firewall:

$ nmap -sA 192.168.1.1

15. Náhrada MAC adresy

Nahradit MAC adresa A:

$ nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1

Změňte MAC adresu Náhodný MAC:

$ nmap --spoof-mac 0 192.168.1.1

16. Zkontrolujte, zda firewall neobsahuje chyby zabezpečení

Tyto tři typy skenování používají jemnou mezeru v TCP RFC k rozlišení otevřených a uzavřených portů.

Při skenování systému kompatibilního s RFC bude mít každý paket, který nemá nastavený bit SYN, RST nebo ACK, za následek odpověď RST, pokud je port uzavřen, nebo žádnou odpověď, pokud je port otevřený.

Protože není nastaven žádný z těchto bitů, pak bude správná jakákoli kombinace zbývajících tří (FIN, PSH a URG).

TCP Null snímání:

$ nmap -sN 192.168.1.1

* Nejsou nastaveny žádné bity (příznaky v hlavičce TCP 0).

TCP Fin snímání:

$ nmap -sF 192.168.1.1

* Je nastaven pouze bit TCP FIN.

Vánoce TCP snímání:

$ nmap -sX 192.168.1.1

* Jsou nastaveny příznaky FIN, PSH a URG (balíček svítí jako vánoční stromeček).

17. Skryté skenování

Užitečná rada: Při skenování portů zůstaňte v anonymitě! Použijte Nmap + Tor + ProxyChains! Bezpečné a snadné penetrační testování!

TCP SYN snímání:

$ nmap -sS 192.168.0.1

* Známé jako polootevřené skenování, protože neotevře úplná připojení TCP.

18. Zakázání zjišťování hostitele (žádný ping)

Před skenováním neprovádějte ping na hostitele:

$ nmap -Pn 192.168.1.1

19. Zakázání používání DNS

Užitečná rada: Potřebujete zpřísnit zabezpečení Linuxu? Zašifrujte provoz DNS pro ochranu před spoofingem!

Nikdy nevracejte překlad názvů DNS pro každou zjištěnou aktivní IP adresu.

nmap[ <Тип сканирования> ...] [ <Опции> ] { <цель сканирования> }

Popis

Nmap(" Síťový mapovač") je nástroj s otevřeným zdrojovým kódem zdrojový kód pro průzkum sítě a testování bezpečnosti. Byl navržen pro rychlé skenování velkých sítí, i když dobře funguje i s jednotlivými cíli. Nmap důmyslným způsobem používá nezpracované IP pakety k určení toho, kteří hostitelé jsou v síti k dispozici, jaké služby (název a verze aplikace) nabízejí, jaké operační systémy (a verze OS) používají, jaké typy paketových filtrů/firewallů používají. a mnohem více.další vlastnosti. Zatímco Nmap se obvykle používá pro testování zabezpečení, mnoho systémových administrátorů jej považuje za užitečné pro běžné úkoly, jako je monitorování struktury sítě, správa plánů spouštění služeb a sledování doby provozu hostitele nebo služby.

Výstupem Nmap je seznam naskenovaných cílů dodatečné informace pro každý z nich v závislosti na zadaných možnostech. Klíčová informace je « tabulka důležitých portů» . Tato tabulka obsahuje číslo portu, protokol, název služby a stav. Stav může být otevřený, filtrovaný, uzavřený nebo nefiltrovaný. Open znamená, že aplikace na cílovém počítači je připravena navázat spojení/přijímat pakety na tomto portu. Filtrováno znamená, že firewall, síťový filtr nebo port blokuje nějaké jiné síťové rušení a Nmap nemůže určit, zda je port otevřený nebo zavřený. Uzavřené porty nejsou spojeny s žádnou aplikací, ale lze je kdykoli otevřít. Porty jsou považovány za nefiltrované, když reagují na požadavky Nmap, ale Nmap nemůže určit, zda jsou otevřené nebo zavřené. Nmap vydává open|filtred a closed|filtred, když nemůže určit, který z těchto dvou stavů popisuje port. Tato tabulka může na vyžádání také poskytnout podrobnosti o verzi softwaru. Při provádění skenování protokolu IP (-sO) poskytuje Nmap informace o podporovaných protokolech spíše než o otevřených portech.

Kromě tabulky důležitých portů může Nmap poskytnout další informace o cílech: vyřešená jména DNS, odhady používaného operačního systému, typy zařízení a adresy MAC.

Typické skenování pomocí Nmap je ukázáno v příkladu 1. Jediné argumenty použité v tomto příkladu jsou -A , pro detekci verze OS, skenování skriptů a sledování; -T4 pro rychlejší provádění; pak dva cílové hostitele.

Příklad 1: Typický příklad skenování pomocí Nmap

# nmap -A -T4 scanme..org) Zajímavé porty na scanme.site (64.13.134.52): (1663 naskenovaných, ale nezobrazených portů je ve stavu: filtrováno) PORT STATE SERVISNÍ VERZE 22/tcp open ssh OpenSSH 3.9p1 (protokol 1.99) 53/tcp otevřená doména 70/tcp uzavřený gopher 80/tcp otevřený http Apache httpd 2.0.52 ((Fedora)) 113/tcp uzavřený auth Typ zařízení: obecný účel Spuštění: Linux 2.4.X|2.5.X| Podrobnosti 2.6.X OS: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Zajímavé porty na hřišti..168.0.40): (1659 naskenovaných portů, které nejsou zobrazeny níže, je ve stavu: uzavřeno) PORT STÁTNÍ SERVISNÍ VERZE 135/tcp open msrpc Microsoft Windows RPC 139/tcp otevřený netbios-ssn 389/tcp otevřený ldap? 445/tcp otevřít microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp otevřít windows-icfw? 1025/tcp otevřený msrpc Microsoft Windows RPC 1720/tcp otevřený H.323/Q.931 CompTek AquaGateKeeper 5800/tcp otevřený vnc-http RealVNC 4.0 (rozlišení 400x250; port VNC: 5900 MAC/Tc.nc.otevřený) 5900 VNC0nc vNC. Adresa: 00:A0:CC:63:85:4B (Lite-on Communications) Typ zařízení: obecné použití Běh: Microsoft Windows NT/2K/XP Podrobnosti OS: Microsoft Windows XP Pro RC1+ do konečné verze Servisní informace: OS: Windows , Windows XP Nmap dokončen: 2 IP adresy (2 hostitelé nahoře) naskenovány za 88,392 sekund


Většina nová verze Nmap lze stáhnout z

Existují čtyři typy skriptů NSE, a to:

  • Předpravidlové skripty– jsou skripty, které se spouštějí před jakoukoli operací skenování Nmap, jsou spuštěny, když Nmap ještě neshromáždil žádné informace o cíli.
  • Hostitelské skripty– jsou skripty spouštěné poté, co Nmap provedl normální operace, jako je zjišťování hostitele, skenování portů, zjišťování verzí a detekce OS vůči cílovému hostiteli.
  • Servisní skripty– jsou skripty spouštěné proti konkrétním službám naslouchajícím na cílovém hostiteli.
  • Postrulová skripta– jsou skripty spouštěné poté, co Nmap zkontroloval všechny své cílové hostitele.

Poté jsou tyto skripty seskupeny do různých kategorií včetně těch pro autentizaci ( auth), objevování hostitelů ( přenos), útoky hrubou silou za účelem uhodnutí ověřovacích pověření ( hovado), zjistit více o síti ( objev), což způsobuje odmítnutí služby ( dos), využívající určitou zranitelnost ( využívat), atd. Řada skriptů patří do výchozí kategorie.

Poznámka: Než přejdeme dále, měli byste si poznamenat tyto klíčové body:

  • Nespouštějte skripty od třetích stran, aniž byste si je kriticky prohlédli, nebo pouze pokud důvěřujete autorům. Je to proto, že tyto skripty nejsou spouštěny v karanténě, a tak by mohly neočekávaně nebo úmyslně poškodit váš systém nebo narušit vaše soukromí.
  • Za druhé, mnoho z těchto skriptů může běžet buď jako a prerule nebo postrula skript. Vzhledem k tomu se pro účely konzistence doporučuje použít předběžné pravidlo.
  • Nmap používá scripts/script.db databáze, abyste zjistili dostupné výchozí skripty a kategorie.

Chcete-li zobrazit umístění všech dostupných skriptů NSE, spusťte na terminálu takto:

$ lokalizovat *.nse/usr/share/nmap/scripts/acarsd-info.nse /usr/share/nmap/scripts/address-info.nse /usr/share/nmap/scripts/afp-brute.nse /usr/share/nmap/scripts /afp-ls.nse /usr/share/nmap/scripts/afp-path-vuln.nse /usr/share/nmap/scripts/afp-serverinfo.nse /usr/share/nmap/scripts/afp-showmount.nse /usr/share/nmap/scripts/ajp-auth.nse /usr/share/nmap/scripts/ajp-brute.nse /usr/share/nmap/scripts/ajp-headers.nse /usr/share/nmap/scripts /ajp-methods.nse /usr/share/nmap/scripts/ajp-request.nse /usr/share/nmap/scripts/allseeingeye-info.nse /usr/share/nmap/scripts/amqp-info.nse /usr /share/nmap/scripts/asn-query.nse ...

Skripty NSE se načítají pomocí parametru --script, který vám také umožňuje spouštět vaše vlastní skripty poskytnutím kategorií, názvů souborů skriptů nebo názvů adresářů, kde jsou vaše skripty umístěny.

Syntaxe pro povolení skriptů je následující:

$ namp -sC cíl #načíst výchozí skripty NEBO $ nmap --script název_souboru|kategorie|adresář|výraz,... cíl

Můžeš zobrazit popis skriptu pomocí volby --script-help. Kromě toho můžete některým skriptům předat argumenty pomocí voleb --script-args a --script-args-file, přičemž pozdější se používá k zadání názvu souboru spíše než arg příkazového řádku.

Chcete-li provést kontrolu s většinou výchozích skriptů, použijte parametr -sC nebo alternativně použijte --script=default, jak je znázorněno.

$ nmap -sC scanme.nmap.org NEBO $ nmap --script=default scanme.nmap.org NEBO $ nmap --script default scanme.nmap.org

Ukázkový výstup
Spuštění Nmap 7.01 (https://nmap.org) v 2017-11-15 10:36 IST Zpráva o skenování Nmap pro scanme.nmap.org (45.33.32.156) Host je aktivní (latence 0,0027 s). Nezobrazeno: 999 filtrovaných portů PORT STATE SERVICE 80/tcp open http |_http-title: Pokračujte a ScanMe! Nmap hotovo: 1 IP adresa (1 hostitel nahoře) naskenována za 11,74 sekund

Chcete-li použít skript pro příslušný účel, můžete nejprve získat stručný popis toho, co vlastně dělá http-hlavičky.

$ nmap --script-help http-headers scanme.nmap.org

Ukázkový výstup
Spuštění Nmap 7.01 (https://nmap.org) v 2017-11-15 10:37 IST http-headers Kategorie: discovery safe https://nmap.org/nsedoc/scripts/http-headers.html Provede požadavek HEAD pro kořenovou složku ("/") webového serveru a zobrazí vrácená záhlaví HTTP.

Načítání skriptů NSE pro provádění skenů Nmap

Můžete vybrat nebo načíst skripty k provedení kontroly různými způsoby vysvětlenými níže.

Použití názvu skriptu

Jakmile víte, co skript dělá, můžete pomocí něj provést kontrolu. Můžete použít jeden skript nebo zadat seznam názvů skriptů oddělených čárkami. Níže uvedený příkaz vám umožní zobrazit hlavičky HTTP nakonfigurované na webovém serveru na cílovém hostiteli.

$ nmap --script http-headers scanme.nmap.org

Skenovat záhlaví HTTP

Spuštění Nmap 7.01 (https://nmap.org) v 2017-11-15 10:39 IST Zpráva o skenování Nmap pro scanme.nmap.org (45.33.32.156) Hostitel běží (latence 0,27 s). Nezobrazeno: 996 uzavřených portů PORT STATE SERVICE 22/tcp open ssh 80/tcp open http | http-hlavičky: | Datum: středa, 15. listopadu 2017 05:10:04 GMT | Server: Apache/2.4.7 (Ubuntu) | Accept-Ranges: bytes | Vary: Accept-Encoding | Připojení: zavřít | Typ obsahu: text/html | |_ (Typ požadavku: HEAD) 179/tcp filtrováno bgp 31337/tcp otevřít Elite Nmap hotovo: 1 IP adresa (1 hostitel nahoře) naskenována za 20,96 sekund

Použití kategorií

Můžete také načíst skripty z jedné kategorie nebo ze seznamu kategorií oddělených čárkami. V tomto příkladu používáme všechny skripty ve výchozí kategorii a kategorii vysílání k provedení kontroly hostitele 192.168.56.1 .

$ nmap --script default, broadcast 192.168.56.1

Použití * zástupných znaků

To je užitečné, když chcete vybrat skripty s daným vzorem názvu. Například pro načtení všech skriptů s názvy začínajícími na ssh, spusťte níže uvedený příkaz na terminálu:

$ nmap --script "ssh-*" 192.168.56.1

Použití booleovských výrazů

Můžete také vybrat skripty pomocí booleovských výrazů, které můžete sestavit pomocí a, nebo, a ne operátory. A názvy v booleovských výrazech mohou být kategorie nebo název souboru skript.db, nebo všechny.

Následující příkaz načte skripty z výchozích kategorií nebo kategorií vysílání.

$ nmap --script "výchozí nebo vysílání" 192.168.56.10

Což je ekvivalentní:

$ nmap --script default, broadcast 192.168.56.10

Chcete-li načíst všechny skripty s vynecháním skriptů v vuln kategorie, spusťte tento příkaz na terminálu.

$ nmap --script "not vuln" 192.168.56.10

Další příkaz vypadá trochu složitě, ale je snadno pochopitelný, vybírá skripty ve výchozích nebo vysílacích kategoriích, přičemž vynechává ty, jejichž názvy začínají na ssh-:

$ nmap --script "(výchozí nebo vysílání) a ne ssh-*" 192.168.56.10

Důležité je, že pro načtení skriptů je možné kombinovat kategorie, názvy skriptů, adresář obsahující vaše vlastní skripty nebo booleovský výraz, jako je tento:

$ nmap --script broadcast,vuln,ssh-auth-methods,/path/to/custom/scripts 192.168.56.10

Předávání argumentů skriptům NSE

Níže je uveden příklad ukazující, jak předat argumenty skriptům s --script-args volba:

$ nmap --script mysql-audit --script-args "mysql-audit.username="root", \ mysql-audit.password="heslo_here", mysql-audit.filename="nselib/data/mysql-cis. audit""

Chcete-li předat číslo portu, použijte -p možnost nmap:

$ nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username="root", \ mysql-audit.password="heslo_here", mysql-audit.filename="nselib/data/mysql -cis.audit""

Tento výše uvedený příkaz spustí audit konfigurace zabezpečení databázového serveru MySQL proti částem CIS MySQL v1.0.2 benchmark. Můžete také vytvořit své vlastní užitečné soubory auditu pro jiné audity MySQL.

To je prozatím vše. Více informací najdete na manuálové stránce nmap nebo se podívejte na NSE Usage.

Chcete-li začít s psaním vlastních skriptů NSE, podívejte se na tuto příručku: https://nmap.org/book/nse-tutorial.html

Závěr

Nmap je opravdu výkonný a užitečný nástroj, který potřebuje každý správce systému nebo sítě ve svém bezpečnostním arzenálu – NSE prostě tomu přidává větší efektivitu.

V tomto článku jsme vás seznámili s Nmap Script Engine a podívali se na to, jak najít a používat různé dostupné skripty v různých kategoriích. Máte-li jakékoli dotazy, neváhejte nám napsat prostřednictvím formuláře pro komentáře níže.

Nmap je velmi populární síťový skener s otevřeným zdrojovým kódem, který lze použít na Windows i Linuxu. Nmap nebo Network Mapper byl vyvinut Gordonem Luonem a tento moment používají bezpečnostní profesionálové a správci systémů po celém světě.

Tento program pomáhá správcům systému velmi rychle pochopit, které počítače jsou připojeny k síti, zjistit jejich názvy a také zjistit, jaký software je na nich nainstalován, jaký operační systém a jaké typy filtrů se používají. Funkčnost programu lze rozšířit o vlastní skriptovací jazyk, který správcům umožňuje automatizovat mnoho akcí.

Skripty mohou například automaticky detekovat nové bezpečnostní chyby ve vaší síti. Namp lze používat s dobrými i špatnými úmysly, dávejte pozor, abyste nmap nepoužili v rozporu se zákonem. V tomto tutoriálu se podíváme na to, jak používat namp ke skenování portů v operačním systému Linux. Nejprve se však musíte pokusit pochopit, jak tento nástroj funguje.

V počítačové sítě všechna připojená zařízení mají svou vlastní IP adresu. Každý počítač podporuje protokol ping, pomocí kterého lze zjistit, zda je připojen k síti. Jednoduše odešleme do počítače požadavek ping, a pokud odpoví, předpokládáme, že je připojen. Nmap má trochu jiný přístup. Počítače také reagují určitým způsobem na určité síťové pakety; obslužný program jednoduše odešle potřebné pakety a podívá se, kteří hostitelé odeslali odpověď.

Ale o tom už asi víte. Zajímavější je, jak Nmap zjišťuje, jaké služby běží na počítači. Podstata všech síťových programů je založena na portech. Chcete-li přijmout zprávu ze sítě, musí program otevřít port na vašem počítači a počkat na příchozí připojení. A abyste mohli odeslat zprávu přes síť, musíte se připojit k jinému portu programu (cílovému). Program pak bude muset otevřít port, na kterém bude čekat na odpověď.

Nástroj nmap při skenování sítě prochází dostupným rozsahem portů a pokouší se připojit ke každému z nich. Pokud je připojení úspěšné, ve většině případů může program odesláním několika paketů zjistit verzi softwaru, která naslouchá připojení k tomuto portu. Nyní, když jsme probrali základy, pojďme se podívat na to, jak používat nmap ke skenování portů a sítí.

Syntaxe Nmap

Příkaz spuštění Nmap je velmi jednoduchý; vše, co musíte udělat, je předat mu cílovou IP adresu nebo síť v parametrech a v případě potřeby také zadat možnosti:

$ adresa možností nmap

Nyní se podívejme na hlavní možnosti, které budeme v tomto článku potřebovat.

  • -sL- stačí vytvořit seznam běžících hostitelů, ale nekontrolovat porty nmap;
  • -sp- pouze zkontrolovat, zda je hostitel přístupný pomocí příkazu ping;
  • -PN- považovat všechny hostitele za dostupné, i když nereagují na ping;
  • -sS/sT/sA/sW/sM- skenování TCP;
  • -sU- UDP skenování nmap;
  • -sN/sF/sX- skenování TCP NULL a FIN;
  • -sC- spustit skript ve výchozím nastavení;
  • -sI- líné Indle skenování;
  • -p- specifikovat rozsah portů ke kontrole;
  • -sV- podrobné zkoumání portů pro určení verzí služeb;
  • - určit operační systém;
  • -T- rychlost skenování, čím vyšší, tím rychlejší;
  • -D- skenování masky pomocí fiktivních IP;
  • -S- změňte svou IP adresu na zadanou;
  • -E- používat specifické rozhraní;
  • --spoof-mac- nastavte svou MAC adresu;
  • -A- určení operačního systému pomocí skriptů.

Nyní, když jsme probrali všechny základní možnosti, pojďme si promluvit o tom, jak funguje skenování portů nmap.

Jak používat Nmap ke skenování portů v Linuxu

Dále se podívejme na příklady nmap. Nejprve se podíváme na to, jak najít všechna zařízení připojená k síti, k tomu stačí použít volbu -sL a zadat masku naší sítě. v mém případě je to 192.168.1.1/24. Masku místní sítě můžete najít spuštěním příkazu:

Z výstupu pro rozhraní, které používáte, vezměte číslo za lomítkem a před lomítkem uveďte ip vašeho routeru. Příkaz pro skenování sítě nmap bude vypadat takto:

nmap -sL 192.168.1.1/24

Někdy toto skenování nemusí přinést žádné výsledky, protože některé operační systémy mají ochranu proti skenování portů. Ale to lze obejít jednoduše pomocí pingu ke skenování všech IP adres v síti; k tomu existuje možnost -sn:

nmap -sn 192.168.1.1/24

Jak vidíte, program nyní detekoval aktivní zařízení v síti. Dále můžeme skenovat porty nmap pro požadovaný hostitel spuštěním nástroje bez možností:

sudo nmap 192.168.1.1

Nyní vidíme, že máme otevřených několik portů, které všechny používá nějaká služba na cílovém počítači. Každý z nich může být potenciálně zranitelný, takže není bezpečné mít na počítači mnoho otevřených portů. Ale to není vše, co můžete udělat; dále se naučíte používat nmap.

Chcete-li zjistit podrobnější informace o stroji a službách, které na něm běží, můžete použít volbu -sV. Nástroj se připojí ke každému portu a zjistí všechny dostupné informace:

sudo nmap -sV 192.168.1.1

Na našem počítači běží ftp, takže se můžeme pokusit podívat se na tuto službu blíže pomocí standardních skriptů nmap. Skripty umožňují podrobnější kontrolu portu a nalezení možných zranitelností. Chcete-li to provést, použijte volbu -sC a -p k nastavení portu:

sudo nmap -sC 192.168.56.102 -p 21

Spustili jsme výchozí skript, ale existují i ​​jiné skripty, například všechny skripty pro ftp najdete příkazem:

sudo find /usr/share/nmap/scripts/ -name "*.nse" | grep ftp

Pak se pokusíme použít jeden z nich, k tomu ho stačí zadat pomocí volby --script. Nejprve se však můžete podívat na informace o skriptu:

sudo nmap --script-help ftp-brute.nse

Tento skript se pokusí určit přihlašovací jméno a heslo FTP na vzdáleném hostiteli. Poté spusťte skript:

sudo nmap --script ftp-brute.nse 192.168.1.1 -p 21

V důsledku toho skript vyzvedl přihlašovací jméno a heslo, admin/admin. To je důvod, proč nemusíte používat výchozí možnosti přihlášení.

Obslužný program můžete také spustit s volbou -A; aktivuje agresivnější provozní režim nástroje, se kterým získáte většinu informací jedním příkazem:

sudo nmap -A 192.168.1.1

Vezměte prosím na vědomí, že téměř všechny informace, které jsme dříve viděli, jsou zde. Lze jej použít ke zvýšení ochrany tohoto stroje.

závěry

V tomto článku jsme se podívali na to, jak se provádí skenování portů nmap, a také na několik jednoduché příklady pomocí této utility. Tyto příkazy nmap mohou být užitečné pro mnoho systémových administrátorů ke zlepšení zabezpečení jejich systémů. To však nejsou všechny možnosti nástroje. Pokračujte v experimentování s nástrojem, abyste se dozvěděli více, ale ne na sítích jiných lidí!

o autorovi

Zakladatel a správce webu, rád otevřu software a operační systém Linux. V současné době používám Ubuntu jako svůj hlavní OS. Kromě Linuxu mě zajímá vše, co souvisí s informačními technologiemi a moderní vědou.

Nmap je kultovní skener, bez kterého se neobejde téměř žádný hacker, a tak si myslím, že téma rozšiřování jeho schopností mnohé zajímá. Je běžnou praxí používat ve spojení s Nmapem další nástroje. Tento článek bude hovořit o tom, jak snadno automatizovat Nmap pomocí vašich oblíbených nástrojů. Je pohodlnější „stisknout jedno tlačítko“ a získat výsledek, než neustále provádět stejnou sekvenci akcí. Používání skriptů v Nmapu může pomoci hackerům hackovat systémy automatickyji a správci systému kontrolují, zda v systémech nejsou výchozí díry, a včas je opravují.

Pár slov o Nmapu

Jsem si jistý, že většina čtenářů magazínu Hacker ví, co je Nmap, a pravděpodobně jej více než jednou použila k prozkoumání sítě a sběru informací. Pro ty, kteří zapomněli nebo nevědí, pro každý případ připomenu:

  • Nmap je multiplatformní nástroj pro skenování sítě, kontrolu její bezpečnosti, určování verzí OS a různých služeb a mnoho dalšího. Toto je velmi flexibilní a snadno rozšiřitelná utilita, kterou vytváří skriptovací jádro NSE;
  • NSE (Nmap Scripting Engine) je výkonná komponenta Nmap, která uživatelům umožňuje psát skripty pro automatizaci široké škály síťových úloh: flexibilnější interakce se stávajícími schopnostmi Nmap, detekce a zneužití zranitelností a další. NSE je založen na překladači jazyka Lua;
  • Lua je skriptovací jazyk podobný JavaScriptu.

Formulace problému

Jak již bylo zmíněno, dnes budeme rozšiřovat funkčnost Nmap psaním vlastních skriptů. Jakýkoli hack/pentest obvykle začíná průzkumem a sběrem dat. Jednou z prvních věcí, které je třeba zkontrolovat, je přítomnost otevřených portů na studovaném hostiteli a identifikace běžících služeb. Nejlepší nástroj Pravděpodobně neexistuje lepší způsob sběru takových informací než Nmap. Dalším krokem po skenování je obvykle buď vyhledání exploitu pro nalezenou zranitelnou službu, nebo výběr dvojice login:heslo pomocí metody hrubé síly.

Řekněme, že aktivně používáte hrubou sílu THC-Hydra k hádání hesel pro několik služeb (například HTTP-Basic, SSH, MySQL). V tomto případě musíte nastavit hydru pro každou službu zvlášť, musíte si zapamatovat vlastnosti služeb a příznaky nutné ke spuštění hydry. A pokud je potřeba brutálně zlikvidovat mnohem více než pět služeb?... Proč to nezautomatizovat?

Pojďme si tedy napsat jednoduchý skript, který zautomatizuje proces spouštění Hydry pro výběr loginů/hesel pro jednu službu (například PostgreSQL). K tomu budeme potřebovat následující nástroje:

Pokud ještě nemáte nainstalovaný Nmap a/nebo Hydra, okamžitě to opravte:

$ sudo apt-get install nmap hydra

Dobře, začněme. Skripty pro Nmap jsou obyčejné textové soubory s příponou *.nse. Otevřete tedy svůj oblíbený textový editor a vytvořte nový soubor. Použiji Vim:

$ vim hydra.nse

Struktura skriptu NSE

Než začneme psát, je třeba říci, že všechny skripty mají určitou strukturu. Kromě samotného kódu, který automatizuje určité akce, obsahuje popis skriptu (k čemu je určen a jak jej používat), informace o autorovi, licencích, závislosti na jiných skriptech, kategoriích, do kterých skript patří. , a tak dále. Podívejme se blíže na každou z těchto částí.

Popis scénáře

Tato část obsahuje popis skriptu, komentáře od autora, příklad zobrazení výsledku skriptu na obrazovce a další funkce.

Pro náš skript, který vybírá přihlašovací jména/hesla pro PostgeSQL, bude popis vypadat takto:

Popis = [[ Hrubá síla všech služeb spuštěných na cílovém hostiteli. Výsledky jsou vráceny v tabulce s každou cestou, detekovanou metodou, přihlašovacím jménem a/nebo heslem. ]] --- -- @usage -- nmap --script hydra [--script-args "lpath= , ppath= "] -- -- @output -- SLUŽBA STÁTNÍHO PORTU -- 80/tcp otevřený http -- | hydra: -- | cesta metoda přihlašovací heslo -- | 127.0.0.1/private/index.html Průchod protokolu Digest -- |_ 127.0.0.1/simple/index.txt Základní uživatel qwerty -- -- @args hydra.lpath: cesta k souboru s přihlášeními. Například -- nmap --script hydra --script-args="lpath=/home/my_logins.txt" -- @args hydra.ppath: cesta k souboru s hesly. Například -- nmap --script hydra --script-args="ppath=/home/my_pass.txt"

Komentář; -- - víceřádkový komentář; @usage, @output, @args - příklad volání skriptu, zobrazení výsledku na obrazovce, potřebné argumenty při volání.

Nahoře v @usage vidíme formát spuštění skriptu. V tomto případě je zadán pouze název skriptu (hydra). To je možné, pokud je skript umístěn v adresáři / /nmap/scripts/ , jinak k němu budete muset zadat absolutní nebo relativní cestu. V budoucnu umožníme specifikovat argumenty při spouštění skriptu. Argumenty se zadávají pomocí parametru --script-args ". V našem případě zadáme cestu k souboru s loginy (lpath) a k souboru s hesly (ppath). Argumenty jsou volitelné: standardně budeme hledat soubory s názvy login.txt a heslo. txt v aktuálním adresáři.

Kategorie, ve kterých se skript nachází (kategorie)

Při psaní skriptu NSE můžete určit jeho kategorii (nebo několik kategorií). To je užitečné, když uživatel Nmap nechce použít konkrétní skript, ale sadu skriptů, které jsou ve stejné kategorii. Příklady některých kategorií:

  • auth - kategorie, ve které skripty definují autentizační data cílového hostitele;
  • brute - kategorie, jejíž skripty pomáhají určovat přihlašovací jména a hesla pro různé služby;
  • default - kategorie, která obsahuje základní skripty. Existují některá kritéria, která určují, zda skript patří do této kategorie: rychlost skenování, užitečnost, spolehlivost, důvěrnost, vizuální výstup;
  • malware – kategorie, která pomáhá identifikovat škodlivé programy.

Pokud například potřebujete spustit všechny skripty z kategorie auth, příkaz bude vypadat takto:

$ nmap --script=auth example.com

V tomto případě budou skripty této kategorie spouštěny jeden po druhém pro zadaného hostitele. Náš scénář patří do kategorie brute. Do souboru přidáme následující řádek:

Kategorie = ("brute")

Informace o autorovi

Každý skript obsahuje informace o jeho autorovi. V mém případě:

Autor = "Olga Barinová"

Informace o používané licenci

Nmap vítá veškerý vývoj uživatelů a podporuje sdílení, včetně skriptů NSE. Zadáním licence potvrzujete právo sdílet skript s komunitou. Standardní licence Nmap vypadá takto:

Licence = "Stejné jako Nmap – viz http://nmap.org/book/man-legal.html"

Přidejme také tento řádek do našeho skriptu.

Závislosti na jiných skriptech

Tato oblast obsahuje názvy skriptů NSE, které je nutné provést před spuštěním tohoto skriptu, aby se získaly potřebné informace. Například,

Závislosti = ("smb-brute").

V našem případě tato funkce nebude potřeba, takže nebudeme přidávat závislosti.

Hostitel a port

Nmap potřebuje vědět, pro které služby a na kterých portech má skript spustit. Existují pro to speciální pravidla:

  • prerule() - skript se provede jednou před skenováním libovolného hostitele, používá se pro některé síťové operace;
  • hostrule(host) - skript je spuštěn pro každého hostitele z tabulky, kterou bere jako argument;
  • portrule(host, port) - skript se spustí pro každého hostitele a pro každý port z tabulek, které bere jako argumenty;
  • postrule() - skript se spustí jednou po skenování libovolného hostitele. Používá se především pro zpracování získaných výsledků, sčítání statistik a podobně.

Pro vytváření takových pravidel existují knihovny. V našem skriptu stačí zadat číslo portu (5432) a název služby (postgresql), a pak to bude fungovat pouze pro tento port a službu. Existuje poměrně populární knihovna shortport zabudovaná do NSE, která obsahuje různé metody. Použijeme metodu

Port_or_service (porty, služby, protokoly, stavy)

kde porty jsou čísla portů, služby jsou názvy služeb, protokoly jsou názvy protokolů (například udp), stavy jsou stavy.

Tato metoda vrací hodnotu true, pokud je aktuálně analyzována služba, která se nachází na jednom z portů ze seznamu portů nebo odpovídá nějaké službě ze seznamu služeb, navíc se kontroluje soulad protokolu a stavu, jinak je vrácena hodnota false.
Aby náš skript fungoval s PostgreSQL, musíme přidat číslo portu a název služby:

Portrule = shortport.port_or_service((5432), ("postgresql"))

Propojování knihoven

Odbočme na chvíli od struktury skriptu a zamysleme se nad tím, jak jsou propojeny externí knihovny, k jejichž funkčnosti budeme potřebovat přístup.

Pokračování je dostupné pouze pro členy

Možnost 1. Připojte se ke komunitě „stránky“ a přečtěte si všechny materiály na stránce

Členství v komunitě ve stanoveném období vám umožní přístup ke VŠEM hackerským materiálům, zvýší vaši osobní kumulativní slevu a umožní vám hromadit profesionální hodnocení Xakep skóre!