Revider dit lokale netværk med Nmap og Wireshark trin for trin

  • Nmap giver dig mulighed for at opdage værter, porte og tjenester, der er eksponeret på det lokale netværk, samt identificere operativsystemer og versioner.
  • De forskellige typer scanninger (TCP connect, SYN, NULL, Xmas…) efterlader tydelige mønstre, der kan detekteres med Wireshark og logs.
  • Bettercap kombineret med Wireshark demonstrerer, hvordan almindelige tekstprotokoller som Telnet og HTTP eksponerer legitimationsoplysninger sammenlignet med krypteret SSH og HTTPS.
  • Regelmæssig revision med Nmap, Wireshark og lignende værktøjer hjælper med at reducere angrebsfladen og styrke infrastrukturens sikkerhed.

Nmap

Revision af et lokalt netværk med Nmap og Wireshark Det er en af ​​de mest effektive måder at forstå, hvad der virkelig sker i din infrastruktur, opdage overeksponerede tjenester og se, hvilke oplysninger en angriber kan se, hvis de infiltrerer dit netværkssegment. Disse er to veletablerede værktøjer, der bruges i vid udstrækning af både administratorer og penetrationstestere. Når de kombineres effektivt, giver de dig mulighed for at gå fra et simpelt øjebliksbillede af åbne porte til en detaljeret analyse af hver pakke undervejs.

I denne artikel vil vi samle Alt du behøver for at oprette en komplet revision Fra et lokalt netværk: fra koncepterne portscanning, TCP-flag og scanningstyper i Nmap til avanceret filtrering med Wireshark for at detektere disse scanninger og lege katten efter musen med undvigelsesteknikker. Du vil også se eksempler på undervisningsmiljøer med virtuelle maskiner, typiske laboratorieøvelser (ping sweep, SYN-scanning, NULL-scanning, MITM med Bettercap) og adskillige yderligere værktøjer, der supplerer Nmap og Wireshark.

Hvad er en portscanning, og hvorfor er den vigtig i en revision?

En portscanning Det er en automatiseret proces, der sender pakker til alle eller nogle af de 65.535 TCP/UDP-porte på en eller flere computere for at se, hvilke der reagerer, og hvordan. Ud fra disse svar kan vi udlede, hvilke tjenester der er aktive, hvilket operativsystem der kører, og endda om der er firewalls, der filtrerer dataene.

For en angriber er en god portscanning vejen til Find "indgangspunkter" og svage punkterDette inkluderer forkert konfigurerede tjenester, forældede versioner med kendte sårbarheder eller åbne protokoller som Telnet, FTP eller HTTP. For en administrator eller revisor afslører den samme scanning, hvad der er eksponeret, hvad der skal lukkes ned, og hvad der kræver bedre beskyttelse.

Det er vigtigt at være tydelig, at Det er ikke en god idé at åbne flere porte end højst nødvendigtMange routere, servere eller applikationer kan lade porte være åbne "bare fordi", eller fordi nogen har åbnet dem til test, og ingen nogensinde har lukket dem igen. Ved at scanne dit eget netværk med Nmap kan du få en præcis oversigt over, hvad der er tilgængeligt indefra eller udefra.

Udover lagerbeholdningen er det vigtigt Brug firewalls og indbrudsdetekteringssystemer der filtrerer uønsket adgang og logger mistænkelige forbindelsesforsøg. Og selvfølgelig holder systemer, routere og tjenester opdaterede for at reducere virkningen af ​​porte, som du af forretningsmæssige årsager absolut skal holde åbne.

Revidér lokalt netværk med Nmap og Wireshark

Hvad er Nmap, og hvad kan det gøre på et lokalt netværk?

Nmap (Network Mapper) Det er et gratis open source-værktøj designet til at finde enheder på et netværk, analysere hvilke porte de har åbne, og hvilke tjenester der lytter i baggrunden. Det kører via kommandolinjen på Linux, Windows og macOS og har en valgfri grafisk brugerflade kaldet Zenmap.

Med Nmap kan du detekter værter både på det lokale netværk og over internettet: computere, routere, switche, IoT-enheder, servere osv. Udover at vise, hvilke porte der er åbne eller filtrerede, kan den forsøge at identificere operativsystemet, versionen af ​​tjenesterne og starte sikkerhedsscripts (NSE), der automatiserer penetrationstest.

Blandt dens mest relevante funktioner er understøttelse af forskellige typer scanningerDen understøtter TCP (SYN, connect, FIN, NULL, Xmas…), UDP, ICMP og nogle mere avancerede metoder, der forsøger at omgå visse firewalls. Den tillader også at arbejde med IPv4 og IPv6 og scanne enkelte værter, IP-intervaller eller hele undernet.

En af Nmaps styrker er, at Det giver mulighed for scanning af store mængder mål. ret effektivt. Den kan kontrollere aggressivitetsniveauet, pakketransmissionshastigheden og graden af ​​parallelisme. Dette er nyttigt både til planlagte revisioner af virksomhedsnetværk og til simuleringer i undervisningslaboratorier.

Porttilstande og scanningstyper i Nmap

Når Nmap afslutter en scanningDen klassificerer hver havn i en af ​​flere stater, der er vigtige at forstå, fordi deres fortolkning er fundamental for revisionen:

  • åbentDer er et program, der accepterer forbindelser på den port (TCP eller UDP). Dette er en åbenlys angrebsflade.
  • lukketPorten svarer, men ingen tjenester lytter. Værten er aktiv, men den specifikke port leverer ingen trafik. Ideelt set bør den være blokeret af en firewall.
  • filtreretEn firewall eller et filter forhindrer Nmap i at afgøre, om det er åbent eller lukket (intet klart svar).
  • åben|filtreretDet er ikke muligt at vide, om den er åben eller filtreret, typisk i visse specielle UDP- eller TCP-scanninger (FIN, NULL, Xmas).
  • lukket|filtreret: tvetydig tilstand brugt i meget specifikke teknikker såsom IP-inaktiv scanning.

I en rigtig revision starter vi normalt med hurtige scanninger af de mest almindelige porte for at få et første billede:

nmap 192.168.1.2

Hvis vi vil give alt, er det muligt tvungen scanning af alle 65.535 porte fra en vært:

nmap -p 1-65535 192.168.1.2

Det er også meget almindeligt at begrænse rækkevidden til specifikke porte eller blokke, der interesserer os. For eksempel fra 20 til 200:

nmap -p 20-200 192.168.1.2

Udover portstatus giver Nmap dig mulighed for at gøre følgende: detektion af operativsystem- og tjenesteversioner med en enkelt kommando, på bekostning af at være noget mere støjende:

nmap -A -v 192.168.1.2

Denne OS-detektion er ikke perfekt, men den er normalt ret præcis samlet set. Inden for Linux-verdenen er det en helt anden historie at fastslå den nøjagtige model og specifikke version.

TCP-flag, scanningstyper og hvordan man registrerer dem

Nmap udnytter de forskellige TCP-flag (SYN, ACK, FIN, RST, PSH, URG…) til at udføre mere eller mindre skjulte scanninger. I CTF-lignende udfordringer er det for eksempel almindeligt at bruge en "skjul" SYN-scanning. I defensive miljøer er det nyttigt at genkende disse mønstre i logfiler eller Wireshark.

For at forstå scanningerne skal du være klar over, hvad Klassisk TCP-håndtrykSYN → SYN/ACK → ACK. Derfra kan variationer afspilles, der sender eller ikke sender bestemte flag og afbryder forbindelsen med en RESET i stedet for at afslutte cyklussen normalt.

Mange forklaringer tildeler numeriske værdier til TCP-flag, så de kan summeres og filtreres. For eksempel:

hoved værdi
SYN 1
SYN/ACK 2
ACK 4
DATA 8
FIN 16
RESET 32

Med denne kodningsmetode er det for eksempel muligt at bruge feltet i Wireshark tcp.completeness og filtrer efter summen af ​​flag, der vises i en bestemt strøm, for at finde scanningsmønstre.

Fuld TCP-handshake (forbindelsesscanning)

I en "fuld" scanning med Nmap (det, der kaldes TCP-forbindelsesscanning, mulighed -sT), etablerer klienten hele forbindelsen til serveren: SYN → SYN/ACK → ACK, og efter udveksling af trafik lukkes den med en RESET eller en normal FIN.

Hvis du indfanger denne sekvens i Wireshark og summerer flagværdierne i henhold til tabellen ovenfor (for eksempel SYN + SYN/ACK + ACK + RESET), kan du filtrere med tcp.fuldstændighed = 39 at finde forbindelser, der er blevet etableret og fuldstændig afbrudt.

Denne type scanning er den nemmeste at opdage, da Det efterlader et spor i serviceloggene. (web, FTP, Telnet, IMAP osv.) og i systemets logfiler. I et typisk laboratorium, hvis du har rsyslog kørende, vil du se meddelelser i /var/log/syslog, /var/log/auth.log, /var/log/daemon.log og lignende tjenester, når Nmap fuldfører handshake til tjenester som f.eks. in.fingerd, inetd, telnetd, ftpd, dovecot o postfix/smtpd.

SYN "stealth"-scanning

El SYN-scanning eller "stealth"-scanning (valgmulighed -sSDette er en af ​​de mest anvendte metoder, fordi den er hurtig og i princippet mindre iøjnefaldende. Her sender Nmap et SYN-signal. Hvis porten er åben, svarer serveren med SYN/ACK, og i stedet for at svare med ACK for at fuldføre forbindelsen, afbryder scanneren forbindelsen med en RESET.

Fra Wiresharks synspunkt vil den typiske rækkefølge for en åben port være SYN → SYN/ACK → RST, hvis sum af flag ifølge den foregående ordning ville være (1 + 2 + 32) = 35. Filtrering efter den værdi af tcp.completeness Det er muligt at finde forbindelser, der ser ud til at være SYN-scanninger, uden et fuldstændigt handshake.

På applikationslogniveau er denne metode mere diskret, fordi De fleste tjenester registrerer ikke en sessionHvis systemet imidlertid har firewallregler, der logger SYN-pakker for forbindelsesinitiering, vil der vises poster for forbindelsesforsøg.

NULL-scanning og andre "mærkelige" scanninger

En anden klassisk teknik er NULL-scanning (valgmulighed -sN), hvor Nmap sender TCP-pakker uden aktive flag. Selvom det kan lyde mærkeligt, reagerer nogle TCP-stakke forskelligt på åbne eller lukkede porte, hvilket giver Nmap mulighed for at udlede portens tilstand.

I en NULL-scanning, Hvis porten er lukket, returnerer den normalt en RST.Selvom den er åben eller filtreret, reagerer den muligvis ikke. For at registrere dette med Wireshark kan du bruge filtre på... tcp.flags og efterlad kun de segmenter med alle flag sat til nul.

På samme måde har vi scanninger som Julescanning (FIN + PSH + URG), FIN-scanningen eller lignende kombinationer, som forsøger at udnytte nuancer i TCP-standarden eller specifikke implementeringer til at opdage porte uden at følge typiske handshake-mønstre.

Styring af vinduesstørrelse som et Nmap-hint

En anden funktion, der kan bruges til at detektere scanninger, er Vinduesstørrelse TCPVinduesstørrelsen er den mængde data, en vært annoncerer, at den kan modtage. Visse versioner af Nmap bruger faste værdier til visse typer scanninger.

For eksempel er det almindeligt i en standard Nmap SYN-scanning at finde SYN-pakker har en vinduesstørrelse på 1024 bytes, hvorimod der i "normale" forbindelser i et specifikt system anvendes forskellige værdier (f.eks. 64240 eller 65535, afhængigt af operativsystem og konfiguration).

I Wireshark kan du anvende et filter som f. tcp.window_size == 1024 kombineret med bestemte flag for at finde mistænkelige mønstre. Som angriber eller penetrationstester giver Nmap dig mulighed for at ændre denne adfærd med parametre som f.eks. --win for at undgå at efterlade en så tydelig underskrift.

Wireshark

Detektering og analyse af Wireshark-scanninger og "usædvanlige" porte

Wireshark Det er protokolanalysatoren par excellence Inden for netværkssikkerhed opfanger den pakker, afkoder dem lag for lag (Ethernet, IP, TCP/UDP, HTTP, TLS osv.) og giver dig mulighed for at anvende meget fine filtre for kun at gemme den trafik, du er interesseret i at undersøge.

En meget praktisk måde at registrere scanninger på er at filtrere efter aktivitet i usædvanlige havneHvis du har en legitim webserver, er det normalt at se trafik til port 80 eller 443. Hvad der ikke er så normalt, er at se mange forsøg på at tilfældige porte som 1234, 31337 eller 4444.

I et virksomhedsnetværk kan du oprette en liste over "Mistænkelige" porte forbundet med ondsindede frameworks eller ofte anvendte angrebsværktøjer, og filtrer i Wireshark efter disse porte for at se, om der er nogen sonder eller uventede forbindelser. Dette kan understøttes af offentlige regneark, der kompilerer porte forbundet med malware og udnyttelsesframeworks.

Fra et defensivt synspunkt tillader Wireshark også Se hvordan forskellige typer Nmap-scanninger opfører sig som du sender dig selv ind i dit laboratorium for at lære at genkende dem: antal pakker pr. port, flag, tider mellem pakker, systemresponser osv.

Kombination af filtre som f.eks. tcp.completeness, tcp.flagsAntallet af forskellige porte, der berøres på kort tid, og vinduesstørrelserne giver dig mulighed for at opbygge manuelle regler eller få inspiration til IDS/IPS-regler.

Typisk laboratorium: scanning med Nmap og optagelse med Wireshark

I mange uddannelsesmæssige sammenhænge, ​​en virtualiseret netværksmiljø med VirtualBox at praktisere risikofri trafikscanning og -analyse. Et typisk eksempel omfatter tre GNU/Linux-maskiner på et internt netværk: interno1 (192.168.100.11) interno2 (192.168.100.22) og observador (192.168.100.33), hver med en fast MAC-adresse.

De tjenester, der som standard kører på disse maskiner, er normalt talrige: Apache 2, Telnet, SSH, FTP, Finger, MySQL, SMTP (Postfix), POP3 og IMAP (Dovecot), DNS (BIND)... ideelt for en scanner som Nmap, da den har et godt antal porte at finde.

Det første trin i laboratoriet er normalt Aktivér rsyslog på internal1 at optage alt, hvad der sker: den aktiveres med systemctl enable rsyslog y systemctl start rsyslogSåledes begynder logfilerne at fyldes op /var/log som syslog, auth.log, daemon.log o kernel.log.

Fra observationsmaskinen, en ping-fejning Brug Nmap til at finde ud af, hvilke enheder der er aktive på 192.168.100.0/24-netværket:

nmap -sP 192.168.100.0/24

Når de aktive værter er blevet identificeret (eksklusive observatøren selv), kan scanninger af typen TCP-forbindelse mod hver af dem for at se hvilke porte der er åbne, og hvilke tjenester der kører:

nmap -sT -v -T4 192.168.100.11
nmap -sT -v -T4 192.168.100.22

Derefter gentages det mod intern1-addition operativsystem- og versionsdetektion af tjenesterne:

nmap -sT -O -sV -T4 192.168.100.11

Dernæst konsulteres logfilerne for interno1, for eksempel med tail -200 /var/log/syslog | lessat tjekke Hvordan blev disse scanninger optaget? i de forskellige dæmoner og tjenester, og værdsæt det spor, der efterlades af en TCP-forbindelsesscanning.

Sammenligning af støjende og "skjulte" scanninger med firewalls og logfiler

For at se forskellen i spor mellem forskellige Nmap-teknikker, i det samme laboratorium a iptables-regel på internal1 som registrerer ethvert forsøg på at starte en TCP-forbindelse (SYN-pakker med NY status) med et let genkendeligt præfiks:

iptables -A INPUT -i enp0s3 -p tcp \
--tcp-flags SYN SYN -m state --state NEW \
-j LOG --log-prefix "INICIO CONEXION:"

Mens filen overvåges /var/log/syslog med tail -fFra observatøren testes tre forskellige scanninger mod intern1:

  • Scanning af TCP-forbindelse (-sTGenererer "START FORBINDELSE:"-poster og logger desuden de tjenester, der fuldfører handshake.
  • SYN-scanning (-sSDen producerer "START FORBINDELSE:"-poster, men de fleste tjenester logger ikke en session, fordi forbindelsen ikke er fuldført.
  • NULL-scanning (-sNDen hæver ikke SYN-flaget, derfor matcher den ikke firewallreglen og Præfikset vises ikke i loggene, hvilket gør det mere diskret i forhold til den specifikke politik.

Denne sammenligning hjælper os med at forstå, at Ikke alle typer scanninger detekteres ved hjælp af de samme regler. Og at vi som forsvarere skal gå ud over "kun SYN", hvis vi vil se flere camouflerede forsøg.

Fra scanning til MITM: Bettercap, Wireshark og krypterede tjenester

I en anden del af øvelsen bruges observatørmaskinen til at Udfør ARP- og MITM-forgiftningsangreb med Bettercap og derefter analysere den optagede trafik med Wireshark eller med selve modulet net.sniff fra Bettercap. Målet er at sammenligne eksponeringen af ​​klare protokoller (Telnet, HTTP) versus krypterede alternativer (SSH, HTTPS).

Før dette er SSL-understøttelse aktiveret i Apache på interno2, hvilket genererer en selvsigneret certifikat med make-ssl-cert til /etc/apache2/ssl/apache.pem, konfigurerer default-ssl.conf For at bruge filen som et certifikat og en nøgle, skal du aktivere SSL-modulet med a2enmod ssl og standard SSL-webstedet med a2ensite default-sslog genstarter Apache.

Den første kontrol udføres tshark i observatør Lytter på den interne netværksgrænseflade, og i mellemtiden åbnes Telnet- og HTTP-sessioner fra internal1 til internal2. Da der ikke er noget man-in-the-middle-angreb, flyder trafikken direkte mellem internal1 og internal2, og tshark ser næsten intet af dette flow. Dette demonstrerer, at uden yderligere tricks ser en tredje vært på det samme netværk ikke altid ekstern trafik.

Hvis du gennemgår ARP-tabellerne for intern1 og intern2 (arp -n), observeres det, hvordan hver enkelt forbinder den andens IP med deres rigtige MAC-adresse, allerede kun observatør med deres IP og deres MAC, uden interferens.

ARP-forgiftning og trafikfangst

Det næste trin er at starte Bettercap i observatørtilstand og aktivere modulerne net.recon y net.probe At finde enheder på netværket og verificere, at 192.168.100.11, 192.168.100.22 og 192.168.100.33 vises med deres respektive MAC-adresser. Bettercap-webgrænsefladen kan eventuelt aktiveres, selvom det ikke er nødvendigt af praktiske årsager.

Parallelt lanceres den igen tshark i observatør for at se hvilke ARP-rammer der vises. Modulets mål konfigureres fra Bettercap-konsollen. arp.spoof (intern1 og intern2) og angrebet aktiveres med:

set arp.spoof.internal true
set arp.spoof.targets 192.168.100.11,192.168.100.22
arp.spoof on

På det tidspunkt begynder Bettercap at sende falske ARP-svar sikre for hver maskine, at den anden værts IP-adresse (internal1 eller internal2) svarer til observatørens MAC-adresse. Under hensyntagen til Spørgsmål 1De sendte ARP-beskeder er i bund og grund "gratis" (uopfordrede) svar, der opdaterer ofrenes ARP-cache. Som følge heraf begynder den anden computers IP-adresse i ARP-tabellerne internal1 og internal2 at pege på MAC-adressen 08:00:27:33:33:33 (observatørens), hvilket effektivt gør den til en mand-i-middle-adresse.

Sammenligning af Telnet, SSH, HTTP og HTTPS under MITM

Når MITM er aktiv, bruges modulet net.sniff fra Bettercap Sådan overfører du trafikken mellem internal1 og internal2 til forskellige .pcap-filer afhængigt af den tjeneste, der testes, eksklusive ARP med et filter:

set net.sniff.filter "not arp"
set net.sniff.output /tmp/telnet.pcap
net.sniff on

I mellemtiden åbnes en Telnet-session fra internal1 til internal2 med brugernavnet "brugernavn" og adgangskoden "brugernavn", filerne vises, og sessionen afsluttes. /tmp/telnet.pcap Det analyseres derefter med Wireshark, og det er nemt at se. legitimationsoplysninger og kommandoer i almindelig tekst efter det tilsvarende TCP-flow.

Eksperimentet gentages ved hjælp af SSH, og gemmes i /tmp/ssh.pcapOg denne gang, selvom etableringen af ​​SSH-forbindelsen og udvekslingen af ​​nøgler kan observeres, Brugernavn- og adgangskodedataene er krypterede.Det er ikke muligt at se legitimationsoplysninger i Wireshark, kun krypterede frames.

Det samme gælder for HTTP versus HTTPS: med net.sniff dumping til /tmp/http.pcap, en navigation med Lynx eller en grafisk browser mod http://interno2.ssi.net Det gør HTTP-anmodninger og -svar fuldstændig læsbare (headere, cookies, parametre osv.). Men når det gentages med https://interno2.ssi.net og analysere /tmp/https.pcap, observeres det TLS-handshake (ClientHello, ServerHello, certifikater osv.) og derefter kun krypteret trafik mærket som TLS 1.3.

Med filteret i hånden kan du fokusere dit blik på tls I Wireshark skal du følge det tilsvarende TCP-flow og verificere, at selvom al trafik passerer gennem angriberen, har ikke adgang til indholdet i klartekst medmindre han på en eller anden måde formår at bryde eller misbruge krypteringen.

Tilpasning, Nmap NSE og integration med andre løsninger

En af grundene til, at Nmap stadig er så kraftfuld i dag, er dens høje grad af personalisering og automatiseringPå kommandolinjeniveau kan næsten alt konfigureres: specifikke porte, timeouts, antal forsøg, grad af parallelisme, stealth-niveau (profiler T0 til T5), pakkefragmentering, forfalsket kilde-IP og MAC osv.

Derudover er der Nmap scripting engine (NSE)Dette økosystem af scripts giver dig mulighed for at gå langt ud over blot at tjekke "port åben/lukket". Der findes scripts til brute-forcering af SSH eller FTP, detektering af usikre konfigurationer, kontrol af kendte sårbarheder, indhentning af detaljerede bannere, testning mod webservere, Samba, DNS og meget mere.

For eksempel, for at forsøge et brute-force-angreb på SSH-port 22 på en bestemt vært ved hjælp af to ordbøger, kan du bruge:

nmap -p 22 --script ssh-brute --script-args userdb=usuarios.txt,passdb=claves.txt,ssh-brute.timeout=4s 99.99.99.99

På samme måde, for at kontrollere om en FTP-server tillader anonym adgang eller for at brute-force legitimationsoplysninger, findes der scripts som f.eks. ftp-anon o ftp-brute. Disse affyres lænket til en -sV -sC eller individuelt efter behov.

En anden fordel er, at Nmap integrerer sig rigtig godt med andre værktøjer. Resultaterne kan gemmes i flere formater (almindelig tekst, XML, grep-venligt, kombineret med -oA) og derefter fodre efterfølgende behandling, dashboards eller endda værktøjer som Metasploit, lagersystemer eller hændelseskorrelationsmotorer.

På virksomhedsniveau involverer implementering af Nmap som en del af et sikkerhedsprogram definition af brugspolitikker, scanningsplanlægning, resultatanalyse og løbende opdateringerDet er ikke særlig nyttigt at scanne én gang og lægge det i en skuffe; man er nødt til at gentage, sammenligne og handle på resultaterne.

Samlet set giver brugen af ​​Nmap og Wireshark til at revidere et lokalt netværk, suppleret med andre værktøjer, et meget komplet billede af, hvordan tjenester opfører sig, hvad der rent faktisk eksponeres, og hvilke oplysninger en angriber kan se eller manipulere. Dette gør det klart, hvorfor det er værd at investere i kryptering (SSH, HTTPS), lukning af unødvendige porte, en god firewallkonfiguration og konstant overvågning af logs og netværkstrafik.


Tilføj som foretrukken kilde