Tunkeutumistestauskurssi harjoitus 4: Tiedustelua

Kurssisivu: https://terokarvinen.com/2021/penetration-testing-course-2021-autumn/

Tehtävänannot: https://terokarvinen.com/2021/penetration-testing-course-2021-autumn/#h4-tiedustelua

z) Tiivistelmät

Santos et al: The Art of Hacking (Video Collection): 4.3 Surveying Essential Tools for Active Reconnaissance.

  • Aktiivisessa tiedustelussa lähetetään tietoja kohdeverkkoon, esimerkiksi porttiskannauksella.
  • Tunkeutumistestaajan aktiivisen tiedustelun metodologia:
    • Porttiskannaus. Työkalut: Nmap, Masscan, Udpprotoscanner.
    • Verkkopalvelun arvioiminen. Työkalu: EyeWitness.
    • Haavoittuvuusskannaus.
      • Verkon haavoittuvuusskannaustyökalut: OpenVAS, Nessus, Nexpose, Qualys, Nmap.
      • Web-sovelluksen haavoittuvuusskannaustyökalut: Nikto, WPScan, SQLMap, Burp Suite, Zed Attack Proxy.

Lyon 2009: Nmap Network Scanning: Chapter 1. Getting Started with Nmap

  • Nmap (Network Mapper) on ilmainen avoimen lähdekoodin ohjelma verkkojen tutkimiseen ja tietoturva-auditointiin.
  • Nmapilla pystyy skannaamaan nopeasti isojakin verkkoja, mutta se toimii hyvin yhtäkin hostia kohtaan.
  • Nmap skannauksen vaiheet:
    • Skriptin esiskannaus.
    • Tavoiteluettelo.
    • Hostin löytäminen (ping-skannaus).
    • Käänteinen DNS.
    • Porttiskannaus.
    • Version tunnistus.
    • Käyttöjärjestelmän tunnistus.
    • Traceroute.
    • Skriptin skannaus.
    • Tuloste.
  • Oikein käytettynä Nmap suojaa verkkoa hyökkääjiltä.
  • Väärin käytettynä Nmapin käyttö on rikos.

Lyon 2009: Nmap Network Scanning: Chapter 15. Nmap Reference Guide

Port Scanning Basics

  • Avoin portti: sovellus hyväksyy aktiivisesti TCP-yhteyksiä, UDP-datagrammeja tai SCTP-yhteyksiä avoimessa portissa. Avoimien porttien löytäminen on usein porttiskannauksen tavoite. Avoin portti on väylä hyökkäykselle.
  • Suljettu portti: portti on käytettävissä, mutta mikään sovellus ei kuuntele portissa.
  • Suodatettu portti: pakettisuodatus estää Nmapin saavuttamasta porttia. Suodatus tapahtuu esimerkiksi palomuurin avulla. Suodatetut portit tarjoavat todella vähän tietoa hyökkääjälle.

Port Scanning Techniques

  • Nmap -sS: TCP SYN-skannaus: oletus ja suosituin skannausvaihtoehto. Huomaamaton, koska ei viimeistele TCP-yhteyksiä.
  • Nmap -sT: TCP-yhteys skannaus: oletus TCP-skannaustyyppi, kun SYN-skannaus ei ole vaihtoehtona (silloin kun käyttäjällä ei ole raakapaketin oikeuksia). Nmap pyytää taustalla olevaa käyttöjärjestelmää muodostamaan yhteyden kohdekoneen porttiin (samalla tavalla kuin nettiselain muodostaa yhteyden).
  • Nmap -sU: UDP skannaus: UDP-skannaus on yleensä hitaampaa (Nmapissa voi tulla “time out”) ja vaikeampaa kuin TCP-skannaus. Hyödynnettävät UDP-palvelut ovat kuitenkin yleisiä. UDP-skannaus voidaan yhdistää TCP-skannaukseen samalla skannauksella, esimerkiksi: nmap -sU -sT.

Man nmap

Nmapin manuaalissa Linuxissa on sama sisältö kuin Nmap Reference Guide:ssa.

Miten Nmap toimii?

Tehtävänantona tehdä Nmapilla testejä, ja siepata liikenne Wiresharkilla.

a) Nmap TCP-skannaus -sT

Kuvassa Nmapilla tehty TCP-skannaus localhostin porttiin 445 komennolla nmap -sT -p 445 localhost, ja Wiresharkilla siepattu liikenne kohteesta any. Nmap skannasi localhostin portin 445, joka kuuluu Microsoft DS palvelulle. Wiresharkissa näkyy, kun lähde lähettää SYN-paketin kohteeseen, ja kohde lähettää RST, ACK-paketin lähteelle. Kolmivaiheinen kättely ei ole mahdollista lähteen ja kohteen välillä, koska portti 445 on suljettu.

b) Nmap TCP SYN-skannaus -sS

Kuvassa Nmapilla tehty SYN-skannaus localhostin porttiin 5900 komennolla nmap -sS -p 5900 localhost. Portti 5900 oli auki, koska Kali Linuxissa oli virt-manager virtuaalikone ylhäällä. Wiresharkin riveistä 2-4 näkyy, kun lähde lähettää SYN-paketin kohteeseen, kohde lähettää SYN, ACK-paketin lähteeseen ja lähde lähettää RST-paketin kohteeseen. Eli koska portti oli auki, kolmivaiheinen kättely oli mahdollinen.

c) Nmap ping sweep -sn

Kuvassa tehty Nmap “ping sweep” skannaus localhostiin komennolla: nmap -sn localhost. Nmap haki vain tiedon, että hosti on ylhäällä, eikä tullut tietoa porteista. Wiresharkiin ei tullut paketteja skannauksesta. Rivi 1 Router Solicitation oli jo Wiresharkissa, ennen skannauksen aloittamista.

d) Nmap don’t ping -Pn

Kuvassa tehty Nmapilla no ping skannaus localhostiin komennolla: Nmap -Pn localhost. -Pn optio ohittaa hostin etsintävaiheen. Wiresharkissa tuli 2000 riviä paketteja skannauksesta (SYN- ja RST, ACK-paketteja).

e) Nmap version detection -sV (yhteen porttiin)

Tästä tehtävästä eteenpäin aloin käyttämään Nmap skannauksen kohteena Metasploitable2 virtuaalikonetta (IP-osoite: 192.168.122.133), koska siinä on useita avoimia portteja.

Kuvassa tehty Nmap -sV skannaus Metasploitable2 virtuaalikoneen porttiin 22 (SSH), ja Wiresharkin sieppaamat paketit skannauksesta. Komento: sudo nmap -sV -p 22 192.168.122.133. -sV optiolla saa näkyviin portin palvelun version (kuvassa otsikko “version”).

f) Nmap porttien valinta -p1-100, –top-ports 5, -p-

Kuvassa skannattu Nmapilla Metasploitable2 koneen portit 1-100 komennolla: sudo nmap -p1-100 192.168.122.133. Wiresharkissa näkyy paketeissa “info” kohdassa, mistä portista paketti menee porttiin 63798.

Kuvassa skannattu Nmapilla viisi yleisintä porttia, jotka ovat auki. Komento: sudo nmap –top-ports 5 192.168.122.133. Kohdekoneena Metasploitable2 kone. Skannauksen tuloksena avoimet portit: ftp, ssh, telnet, http ja https.

Kuvassa skannattu Nmapilla Metasploitable2 koneen portit väliltä 1-65535 komennolla: sudo nmap -p- 192.168.122.133. Oletuksena pelkkä komento “nmap” skannaa 1000 yleisintä porttia.

g) Nmap IP-osoitteiden valinta

Kuvassa laskettu ipcalcilla oman yksityisen verkon osoite, jossa Kali Linux kone on.

Kuvassa skannattu Nmapilla koko verkko 10.0.2.0/24 komennolla: sudo nmap 10.0.2.0/24. Nmap skannasi 256 IP-osoitetta, ja neljä hostia oli ylhäällä.

Kuvassa skannattu Nmapilla IP-osoitteiden väli komennolla: sudo nmap 10.0.2.1-254. Osoiteväli otettu ipcalin tuloksista HostMin ja HostMax. Nmap skannasi 254 IP-osoitetta ja neljä hostia oli ylhäällä.

h) Nmap output files -oA foo

Kuvassa tehty Nmap skannaus komennolla: sudo nmap -oA foo 192.168.122.133. -oA lisäoptio tallensi skannauksesta kolme tiedostoa: foo.gnmap (grepattava tiedostomuoto), foo.nmap (normaali tiedostomuoto = näkyy skannaus niin kuin kuvassa) ja foo.xml (ohjelmalliseen analyysiin).

i) Nmap version scanning -sV

Kuvassa tehty Nmap -sV skannaus Metasploitable2 virtuaalikoneeseen komennolla: sudo nmap -sV 192.168.122.133. -sV optiolla saa näkyviin portin palvelun version (kuvassa otsikko “version”). Nmap skannasi 1000 suosituinta porttia.

j) Nmap OS fingerprinting, version detection, scripts, traceroute, -A

Kuvissa tehty Nmapilla skannaus komennolla: sudo nmap -A 192.168.122.133. -A lisäoptio mahdollistaa käyttöjärjestelmän ja version tunnistamisen, skriptiskannauksen ja tracerouten.

k) Nmap ajonaikaiset toiminnot

Kuvassa näkyy Nmapin skannauksen aikana suoritettavat toiminnot (painettu “?” niin tuli kuvassa näkyvä ikkuna), ja mitä tapahtuu kun painaa kuvassa näkyviä näppäimiä skannauksen ollessa käynnissä. Käytetty komentoa sudo nmap -p- 192.168.122.133, koska useamman portin skannaus on hitaampaa, niin kerkesin painaa kysymysmerkkiä.

Komennot:

  • v/V: lisää/vähennä tulosteen määrää.
  • d/D: lisää/vähennä debuggaus tiedon määrää.
  • p/P: ota käyttöön/poista käytöstä pakettien jäljitys.
  • Mikä tahansa muu näppäin: tulostaa skannauksen tilan.

Kuvassa painettu Nmap skannauksena aikana “v”, joka lisää verbosityä, eli tulostaa enemmän tietoa.

l) Sudo nmap vs nmap

Kuvassa tehty ensin nmap skannaus sudona ja ilman sudoa. Molemmat tulosteet näyttävät samoilta. Nmap vaatii skannauksen tekemisen sudona joissain lisäoptioissa. Kuvasta näkyy kun yritin tehdä nmap -sS skannauksen tuli viesti: “You requested a scan type which requires root privileges”.

m) Nmap -sV vs -A kesto

Kuvassa tehty Nmap versio skannaus komennolla: sudo nmap -sV 192.168.122.133. Skannauksen kesto oli 12.49 sekuntia ja Wiresharkiin tuli 5258 riviä paketteja.

Kuvassa tehty Nmap -A skannaus komennolla: sudo nmap -A 192.168.122.133. Skannaus kesti 55.65 sekuntia ja Wiresharkiin tuli 9849 riviä tekstiä (verrattuna -sV: 12.49 sekuntia ja 5258 riviä paketteja).

UDP-skannaus

e) Tavallisimmat palvelut, jotka UDP-skannauksella löytyy

DNS, SNMP ja DHCP (portit 53, 161/162, 67/68) ovat kolme yleisintä UDP-palvelua. UDP-skannaus tehdään komennolla nmap -sU, ja siinä skannataan 1000 porttia. (Nmap.org.)

f) Miksi UDP-skannaus on hankalaa ja epäluotettavaa? Miksi UDP-skannauksen kanssa kannattaa käyttää –reason flagia?

UDP on yhteydetön protokolla, eli kun UDP-paketti lähetetään avoimeen porttiin, kohde ei lähetä pakettia takaisin. Jos kohdeportti on suljettu, kohde lähettää takaisin ICMP Destination Port Unreachable paketin. Eli jos ICMP-paketteihin on häiriöitä, Nmap luulee että kaikki portit ovat auki. –reason flagilla saa Nmapin etsintätestit näkyviin, eli tulosteessa näkyy miksi portti on merkitty avoimeksi, suljetuksi tai suodatetuksi. Koska UDP-skannaus on epäluotettava, on hyvä saada Nmap-skannauksen syyt näkyviin. (Rybalchenko, A. 2020; Geek University 2021.)

h) Ffuf

Kuvassa tehty Ffuf:lla (Fuzz Faster u Fool) hakemistohaku sanalistan avulla kohdeosoitteseen http://ffuf.io.fi. Komento: ffuf -w /usr/share/wordlists/200_common_passwords.txt -u http://ffuf.io.fi -H “Host: FUZZ.ffuf.io.fi”. -u optio kohdeosoitteelle ja -w sanalistan polku. Käytetty sanalistana omaa luotua listaa, joka sisältää 200 yleisintä salasanaa (lähde: https://nordpass.com/json-data/top-worst-passwords/pdfs/worst-passwords-2020.pdf). Ffuf teki siis hakemistohaun sanalistan avulla kohdeverkkosivustosta.

Lähteet tässä tehtävässä: https://blog.intigriti.com/2021/05/03/hacker-tools-ffuf-fuzz-faster-u-fool-2/ https://kalilinuxtutorials.com/ffuf-fast-web-fuzzer-written-in-go/

i) Nikto

Nikto on avoimen lähdekoodin skanneriohjelmisto, joka tarkistaa verkkopalvelimen vaarallisten tiedostojen tai ohjelmien varalta. Nikto ei ole skaalautuva työkalu, koska se testaa palvelimen mahdollisimman nopeasti.

Kuvassa skannattu Niktolla localhost komennolla: nikto -h localhost. Nikto skannaa oletuksena oletuksena kohteen portin 80, ja jos haluaa skannata jonkun muun portin täsmennetään se komennossa: Nikto –h [Server IP Address] –p [port]. Olin ennen skannausta käynnistänyt Apache2 palvelimen, joten Nikton tuloksessa näkyy palvelimena Apache2, sekä palvelimen mahdolliset haavoittuvuudet. Tulosteesta näkyy, että Nikto teki 52 sekunnissa 7682 pyyntöä palvelimelle, ja löysi 14 kohdetta.

Lähde tässä tehtävässä: https://cyber-today.com/what-is-nikto-tool-in-kali-and-how-to-use-it/

j) EyeWitness

EyeWitness on suunniteltu ottamaan kuvakaappauksia verkkosivuista, ja tarjoaa palvelimen headerin tietoja, sekä tunnistaa oletuskirjautumistiedot, jos ne ovat saatavilla.

Kuvassa tehty EyeWitness skannaus komennolla: eyewitness –web -f domains.txt. Loin ennen skannausta domains.txt tiedoston, joka sisältää skannauksen kohteen url-osoitteen (127.0.1.1). –web täsmentää, että kyseessä on http kuvakaappaus, ja -f tiedoston. EyeWitness ei löytänyt kohteesta mitään. Skannauksesta tuli tuloksena kansio, skannauksen ajankohdan nimellä, ja sinne kuvassa näkyvät tiedostot.

Tehtävässä käytetty apuna lähdettä: https://github.com/FortyNorthSecurity/EyeWitness

Lähteet, joita käytetty tehtävissä (joita ei ole tehvävien yhdeydessä merkitty):

Geek University 2021. The reason flag. Luettavissa: https://geek-university.com/nmap/the-reason-flag/

Miessler, D. 2017. Nmap: Use the -top-ports Option for Both TCP and UDP Simultaneously. Luettavissa: https://danielmiessler.com/blog/nmap-use-the-top-ports-option-for-both-tcp-and-udp-simultaneously/

Morgan, M. How to Use Wireshark in Nmap. Luettavissa: https://blog.eldernode.com/how-to-use-wireshark-in-nmap/

Nmap.org. Command-line Flags. Luettavissa: https://nmap.org/book/output-formats-commandline-flags.html

Nmap.org. Host Discovery. Luettavissa: https://nmap.org/book/man-host-discovery.html

Nmap.org. Runtime Interaction. Luettavissa: https://nmap.org/book/man-runtime-interaction.html

Nmap.org. UDP Scan (-sU). Luettavissa: https://nmap.org/book/scan-methods-udp-scan.html

Nmap.org. Version Detection. Luettavissa: https://nmap.org/book/man-version-detection.html

Rybalchenko, A. 2020. Resolving “UDP scan is not reliable on this machine” Error when Scanning. Luettavissa: https://support.languard.gfi.com/hc/en-us/articles/360015159919-Resolving-UDP-scan-is-not-reliable-on-this-machine-Error-when-Scanning

Ubuntu manuals 2019. Nmap. Luettavissa: http://manpages.ubuntu.com/manpages/precise/en/man1/nmap.1.html