Etisk hacking: identifisering av tjenester Med nmap
Innholdsfortegnelse
i forrige innlegg av etisk hacking vi kort forklare ulike alternativer for å få en opplisting AV IP-adresser og underdomener når du utfører en etisk hacking prosess. Hvis du likte at «dette er veldig trygt fordi hvem skal vite at dette underdomenet eksisterer» (at selv om du ikke kan tro det, er det mer vanlig enn det ser ut til), ikke gå glipp av hvordan «hvem skal vite at jeg legger denne tjenesten i denne porten med et så merkelig nummer»…
Kort sagt, i dette innlegget vil vi prøve å se hvordan det er mulig å lage en oversikt over åpne porter i EN IP eller en rekke Ip-Adresser, og til og med identifisere teknologien under en åpen port, når dette er mulig. I utgangspunktet vil dette innlegget fokusere på bruk av et fantastisk og viktig verktøy, nmap. Selv om det er et verktøy som vanligvis brukes I Linux (og selvfølgelig inkludert i referansepakken som jeg bruker i Disse innleggene, Kali), kan kompileringer for andre operativsystemer allerede bli funnet.
før vi går på jobb, vil vi advare om at nmap er et komplekst og komplett verktøy, med en stor mengde alternativer, parametere etc.; Dette innlegget er ikke ment som en håndbok for bruk av verktøyet, men igjen en introduksjon til det å forstå identifisering av tjenester som en fase av etisk hacking før påvisning av sårbarheter. For å lære mer om verktøyet, anbefaler vi at du leser håndboken.
open Source nmap-verktøyet lar oss utføre nettverks-og portskanninger, være i stand til å skanne en enkelt destinasjon, et område, En Liste Over Ip-Er… Basert PÅ TCP, UDP, ICMP, SCTP-forespørsler, etc. og inkorporerer ulike skanneteknikker. Vi anbefaler generelt å oppdatere litt kunnskap om transportprotokoller, for eksempel å huske hvordan etableringen AV EN TCP-tilkobling fungerer med forhandlingen i tre trinn: FØRST SYN type anrop fra klienten til en port, FØRSTE svar hvis porten er lukket ELLER SYN-ACK hvis den er åpen, OG ACK fra klienten til serveren for å fullføre prosessen. Nmap vil stole på disse typer meldinger for å avgjøre om en port lytter eller ikke på destinasjonen. Noen ganger kan dette ikke brukes, eller oppdages av den eksterne serveren, og det finnes andre alternativer for skanning.
Generell syntaks
nmap { }
Vår første skanning
Vi kan utføre følgende kommando:
nmap 45.33.49.119
Vi setter ikke noen form for avstemning, så bruk standard avstemning, TCP SYN. nmap sender ET SYN og antar at porten er åpen hvis DEN mottar EN ACN SYN. Det er heller ingen ekstra parameter for alternativer, og som destinasjon er det en ENKELT IP. Denne kommandoen gir oss et resultat som ligner på følgende:
Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-01 18:12 CESTNmap scan report for ack.nmap.org (45.33.49.119)Host is up (0.19s latency).Not shown: 993 filtered portsPORT STATE SERVICE22/tcp open ssh25/tcp open smtp70/tcp closed gopher80/tcp open http113/tcp closed ident443/tcp open https31337/tcp closed EliteNmap done: 1 IP address (1 host up) scanned in 10.86 seconds
Returnerer om noen sekunder en liste over åpne porter på DEN IP-EN, inkludert EN SSH,EN SMTP-postserver, en webserver og en mulig bakåpning (https://www.speedguide.net/port.php?port=31337).
i mange tilfeller er dette bare et første analysepunkt, selv om for eksempel programvaren bak EN FTP-server, SSH, etc., er fullstendig oppdatert og det er ingen kjente sårbarheter. Du kan for eksempel starte et brute force-angrep med en ordbok på SSH eller FTP som prøver å få tilgang til (det er et stort antall servere av denne typen med standard eller usikre legitimasjon).
det er automatiske verktøy (bots) som i utgangspunktet kontinuerlig skanner brede områder Av Ip-er på jakt etter gjenkjennelige åpne porter, for eksempel database (MongoDB, MySQL, PostgreSQL, etc.), og nar de oppdager en apen port, forsoker de automatisk a logge inn med standard legitimasjon. For eksempel, i tilfelle av typiske LAMP / WAMP installasjoner, en rot / tilgang til mySQL-porten. Og i utgangspunktet har et stort antall databaser blitt hacket uten tidligere menneskelig inngrep. Dette er levedyktig selv om vi har det åpent i en annen port, siden det er mulig å identifisere i mange tilfeller at det som er i port 5555 «å villede», for å si noe, er en mySQL gjennom fingeravtrykk av tjenesten, som vi vil se mer fremover.
Kort sagt, det er veldig farlig å legge igjen legitimasjon som standard på webservere, rutere, FTPs, SSHs, databaser … fordi ingen trenger å ha en mani, vil en bot.
En første parameter
hvis vi vil ha litt informasjon om hvordan nmap har fått denne informasjonen, kan vi øke sporene med parameteren-v (verbose) eller-vv, der vi kan se at nmap har utstedt SYN-kommandoer OG i noen tilfeller mottar TILBAKESTILLING (lukket port), i ANDRE SYN-ACK (åpen port) og i andre ingen respons («filtrert»), noe som kan få oss til å forstå at en brannmur stopper vår forespørsel:
PORT STATE SERVICE REASON22/tcp open ssh syn-ack ttl 5325/tcp open smtp syn-ack ttl 5370/tcp closed gopher reset ttl 5280/tcp open http syn-ack ttl 53113/tcp closed ident reset ttl 52443/tcp open https syn-ack ttl 5331337/tcp closed Elite reset ttl 53
Øke rekkevidden Av Ip-er som skal skannes
nmap 192.168.10.0/24 (subred completa)nmap 192.168.10.1-20 (20 IPs)nmap 192.168.10.*nmap 192.168.10.1 192.168.10.2 192.168.10.3
eller tenk for eksempel at Vi har samlet Ip-er fra vår første opptelling, og vi har en fil med De forskjellige Ip-ene adskilt av faner eller linjeskift(EN IP eller rekkevidde per linje). Vi kan laste filen med parameteren-iL (input list) og dermed skanne HELE IP-beholdningen. Det tillater også for eksempel å ekskludere noen spesifikke Ip-Adresser med –exclud eller-excludefile.
Definere portene som skal skannes
vi kan manuelt definere portene vi vil skanne. Hvis vi for eksempel ser etter webservere på porter 80, 443 og 8080 i et delnett, kan vi gjøre det med-p-parameteren:
nmap -p 80,443,8080 192.168.10.0/24
vi kan også be nmap om å skanne» n » (heltall) vanligste porter; for eksempel å skanne de 25 vanligste portene i En rekke Ip-Adresser:
nmap --top-ports 25 192.168.10.0/24
Motta et svar som dette:
PORT STATE SERVICE21/tcp closed ftp22/tcp open ssh23/tcp closed telnet25/tcp closed smtp53/tcp open domain80/tcp open http110/tcp closed pop3111/tcp open rpcbind135/tcp closed msrpc139/tcp open netbios-ssn143/tcp closed imap199/tcp closed smux443/tcp closed https445/tcp open microsoft-ds587/tcp closed submission993/tcp closed imaps995/tcp closed pop3s1025/tcp closed NFS-or-IIS1720/tcp closed h323q9311723/tcp closed pptp3306/tcp closed mysql3389/tcp closed ms-wbt-server5900/tcp open vnc8080/tcp closed http-proxy8888/tcp closed sun-answerbook
Vi kan be om at ALLE tcp -, UDP – og SCTP-porter (tregere) med identifikatoren-p-skannes:
nmap -p- 192.168.10.0/24
Identifisering av operativsystemer og tjenester
som vi ser, tillater nmap oss å oppdage porter som lytter på EN IP eller et område. Senere vil vi også se hvordan andre undersøkelsesteknikker kan defineres. I tillegg tillater nmap oss å prøve å identifisere hvilken teknologi (produkt, versjon, etc.) er bak en åpen port, eller til og med operativsystemet installert på en server, med-O og-sV-parametrene. Denne deteksjonen er basert på» signatur » (fingeravtrykk) av svarene som tjenesten gir til bestemte samtaler.
nmap -O -sV 192.168.10.5
PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 6.7p1 Raspbian 5+deb8u3 (protocol 2.0)53/tcp open domain ISC BIND 9.9.5 (Raspbian Linux 8.0 (Jessie based))80/tcp open http Apache httpd 2.4.10 ((Raspbian))111/tcp open rpcbind 2-4 (RPC #100000)139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)4567/tcp open http Jetty 9.4.8.v201711215900/tcp open vnc RealVNC Enterprise 5.3 or later (protocol 5.0)MAC Address: B8:27:EB:CD:FE:89 (Raspberry Pi Foundation)Device type: general purposeRunning: Linux 3.X|4.XOS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4OS details: Linux 3.2 - 4.9Network Distance: 1 hopService Info: Host: RASPBERRYPI; OS: Linux; CPE: cpe:/o:linux:linux_kernel
I dette tilfellet vet vi ikke bare at denne maskinen har visse åpne porter. Det forteller oss også at Det Er En Bringebær som kjører Raspbian (som vi for eksempel kunne gjøre en brute force-test med en bruker «pi», som er standardbrukeren), og versjonene av de forskjellige porter som lytter, slik at denne informasjonen kan brukes til å utnytte sårbarheter over upatchede versjoner, etc.
Bruke flere polling teknikker
som standard nmap bruker SYN som en polling teknikk. Det er en rask og ikke veldig påtrengende / påviselig teknikk, men noen ganger, men den støtter totalt 12 forskjellige teknikker som vi kan definere som parametere, som vi kan se i verktøyets brukerhåndbok.
hvis vi for eksempel vil skanne BASERT på UDP-anrop, kan vi ringe av typen:
nmap -sU 192.168.10.5
Søker etter sårbarheter med nmap
Selv om det er mer «komfortable» og spesifikke verktøy for søket etter sårbarheter, For Eksempel Nessus, eller suiter Som Metasploit som konsoliderer ulike verktøy, tillater nmap oss også å utføre sårbarhetsanalyse.
for å gjøre dette bruker Den En serie Lua-skript som er plassert i en bane av maskinen vår (i Tilfelle Kali, in / usr / share / nmap / scripts /) og som kan påberopes med –script eller tilsvarende-sC .
Skript kan tilhøre en eller flere kategorier, så vi kan be nmap om å evaluere for eksempel alle skript i en kategori mot en vert. Det er noen spesielt interessante kategorier som » vuln «(skript dedikert til å oppdage sårbarheter på destinasjonen),» utnytte», etc.
hvis vi for eksempel vil skanne sårbarhetskategoriskriptene mot en vert:
nmap --script vuln scanme.nmap.org
PORT STATE SERVICE22/tcp open ssh80/tcp open http| http-csrf: | Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=scanme.nmap.org| Found the following possible CSRF vulnerabilities: | | Path: http://scanme.nmap.org:80/| Form id: cse-search-box-sidebar|_ Form action: https://nmap.org/search.html|http-dombased-xss: Couldn't find any DOM based XSS. | http-enum: | /images/: Potentially interesting directory w/ listing on 'apache/2.4.7 (ubuntu)' | /shared/: Potentially interesting directory w/ listing on 'apache/2.4.7 (ubuntu)'| http-slowloris-check: | VULNERABLE:| Slowloris DOS attack| State: LIKELY VULNERABLE| IDs: CVE:CVE-2007-6750| Slowloris tries to keep many connections to the target web server open and hold them open as long as possible. It accomplishes this by opening connections to the target web server and sending a partial request. By doing so, it starves the http server's resources causing Denial Of Service.| Disclosure date: 2009-09-17| References:| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750|_ http://ha.ckers.org/slowloris/|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.9929/tcp open nping-echo31337/tcp open Elite
som vi kan se, skriptet har oppdaget en potensiell sårbarhet basert På Slowloris denial of service angrep. Hvis vi analyserer skriptene som er i ruten nevnt ovenfor, ser vi at det er nettopp en som utnytter dette sikkerhetsproblemet, kalt http-slowloris. Hvis vi vil ha mer informasjon om skriptet, kan vi starte følgende kommando:
nmap --script-help http-slowloris
Forklarer hvordan skriptet fungerer, hvordan du starter det (det er også mulig å gjøre det med nmap selv med –script og –script-args), etc. Vi kan også få for eksempel en beskrivelse av alle skript som ser etter sårbarheter:
nmap --script-help vuln
Vi kan også for eksempel lansere alle skript av en bestemt type. For eksempel, hvis vi vil skanne sårbarheter over SMB-protokollen på en gitt vert:
nmap --script smb-* 192.168.10.5
Vi kan også, for eksempel, vurdere en sårbarhet over hele vårt nettverk, velge et bestemt skript mot en rekkevidde. Skriptparameteren
nmap --script-help vuln
nmap --script
kort sagt, nmap inneholder til og med interessante alternativer for å vurdere sårbarheter og til og med lansere utnyttelser, selv om det finnes andre verktøy som ofte brukes til dette formålet.
Andre interessante alternativer
som vi har kommentert, nmap har mange alternativer, og det er umulig å prøve å dekke selv en liten prosentandel i et innlegg. Faktisk er det en offisiell nmap-bok på nesten 500 sider… men i alle fall prøver vi å kommentere her noen som virker interessante.
som vi har kommentert, nmap har mange alternativer, og det er umulig å prøve å dekke selv en liten prosentandel i et innlegg. Faktisk er det en offisiell nmap-bok på nesten 500 sider… men i alle fall prøver vi å kommentere her noen som virker interessante.
- verktøyet lar deg generere skanningsresultatet i en prosesserbar utdatafil, for EKSEMPEL I XML-format, med-oX eller-oN .
- når vi skanner brede områder Av IPs, kan vi deaktivere DNS reverse resolution-forsøket med-n-parameteren.
- under utførelsen av en kommando kan vi øke nivået av informasjon som vises på konsollen (detaljnivå) ved å trykke på» V » – tasten.
- hvis vi har en brannmur som kutter oss, kan Vi prøve-Pn.
kort sagt har vi forsøkt å utvikle en» kort » introduksjon til nmap som et verktøy for å identifisere åpne porter og tjenester på en vert eller En Rekke Ip-Adresser. I senere innlegg vil vi se andre måter å oppdage sårbarheter på.
alt klart?
det er på tide å håndtere dokumenter mer effektivt