Cityscape
Girl

Murtotestauksen perusteet

Nmapin käyttö metasploitissa

Keskitaso
10 min

Nmap ja Metasploit

Hyvä aloituspiste verkon skannaukselle on nmap-työkalu, joka on myös sisäänrakennettu Metasploit Frameworkkiin omaksi moduulikseen. Käyttämällä sisäänrakennettua nmap moduulia, tallentuvat tulokset tietokantaan, jotta niitä voidaan käyttää myöhemmin hyökkäyksissä. Tähän tarvitaan kuitenkin ensin tietokanta, joten aloitetaan siitä.

Metasploitin tietokannan käynnistys

Jos haluat, että Metasploit tallentaa tietoja tietokantaan (tämä on vaatimuksena db_nmap käytössä), pitää ensin käynnistää postgresql tietokanta ja luoda metasploitin tietokantaskeema ja käyttäjä. Voit tehdä tämän seuraavilla komennoilla:

service postgresql start
msfdb init

Metasploitin käynnistys

Kun tietokanta on käynnissä, voimme käynnistää metasploitin seuraavalla komennolla.

msfconsole

Nmapin käyttö metasploitissa

Metasploitissa nmappia käytetään msfconsolen sisällä komennolla db_nmap.

msf6 > db_nmap -h
[*] Nmap 7.93 ( https://nmap.org )
[*] Usage: nmap [Scan Type(s)] [Options] {target specification}
[*] TARGET SPECIFICATION:
[*] Can pass hostnames, IP addresses, networks, etc.
[*] Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
[*] -iL <inputfilename>: Input from list of hosts/networks
[*] -iR <num hosts>: Choose random targets
[*] --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
[*] --excludefile <exclude_file>: Exclude 
...

Nmapin tulokset tallentuvat automaattisesti Metasploitin tietokantaan, josta niitä voi tarkastella ja käyttää Metasploitin sisällä. Katsotaan tästä käytännön esimerkki ennen kuin pääset harjoittelemaan itse.

Harjoitus

Käynnistä nyt labra ja tee seuraavat vaiheet mukana.

Metasploit Harjoittelua

Tässä labrassa on useita eri haavoittuvia verkkopalveluita joita voit etsiä Metasploitilla.


msfdb init

Aloitetaan käynnistämällä ja initialisoimalla metasploitin tietokanta. Älä välitä systemd-virheilmoituksesta, se ei haittaa.

service postgresql start
msfdb init
...
[+] Starting database
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
[+] Creating database user 'msf'
[+] Creating databases 'msf'
[+] Creating databases 'msf_test'
[+] Creating configuration file '/usr/share/metasploit-framework/config/database.yml'
[+] Creating initial database schema

msfconsole

Avataan sitten Metasploitin konsoli:

root@b0trac0a9r-student:~# msfconsole
                                                  
# cowsay++
 ____________
< metasploit >
 ------------
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *


       =[ metasploit v6.3.4-dev                           ]
+ -- --=[ 2294 exploits - 1201 auxiliary - 409 post       ]
+ -- --=[ 968 payloads - 45 encoders - 11 nops            ]
+ -- --=[ 9 evasion                                       ]

Metasploit tip: Start commands with a space to avoid saving 
them to history
Metasploit Documentation: https://docs.metasploit.com/
msf6 > 

msf6 -> db_status

Tarkista että tietokantayhteys on muodostettu.

msf6 -> db_nmap <ip>

Katso kohtaa "Sisäverkon kohteet" niin löydät kohteesi IP-osoitteen.

Käynnistetään nmap-skanni joka tekee perus-skannin IP-osoitteeseen.

msf6 > db_nmap 10.0.2.22
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org )...
[*] Nmap: Nmap scan report for 10.0.2.22
[*] Nmap: Host is up (0.000020s latency).
[*] Nmap: Not shown: 992 closed tcp ports (reset)
[*] Nmap: PORT     STATE SERVICE
[*] Nmap: 22/tcp   open  ssh
[*] Nmap: 25/tcp   open  smtp
[*] Nmap: 53/tcp   open  domain
[*] Nmap: 111/tcp  open  rpcbind
[*] Nmap: 139/tcp  open  netbios-ssn
[*] Nmap: 445/tcp  open  microsoft-ds
[*] Nmap: 2121/tcp open  ccproxy-ftp
[*] Nmap: 3306/tcp open  mysql
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

Perus-skanni löysi aika monta avointa porttia, mutta emme ole vielä tunninstaneet porttien takana olevia palveluita (nyt näkyvät palvelut ovat Nmapin arvauksia pelkän porttinumeron perusteella).

msf6 -> hosts

Ajetaan "hosts" komento jolla nähdään mitä laitteita nmap on löytänyt verkosta.

msf6 > hosts

Hosts
=====

address    mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------    ---  ----  -------  ---------  -----  -------  ----  --------
10.0.2.22             Unknown                    device

Odotetusti listassa näkyy vain yksi laite, koska olemme skannanneet vasta yhden IP-osoitteen. Myöskään käyttöjärjestelmää ei ole vielä tunnistettu.

msf6 -> services

Ajetaan "services" komento jolla nähdään mitä portteja ja palveluita nmap on löytänyt verkosta.

msf6 > services
Services
========

host       port  proto  name          state  info
----       ----  -----  ----          -----  ----
10.0.2.22  22    tcp    ssh           open
10.0.2.22  25    tcp    smtp          open
10.0.2.22  53    tcp    domain        open
10.0.2.22  111   tcp    rpcbind       open
10.0.2.22  139   tcp    netbios-ssn   open
10.0.2.22  445   tcp    microsoft-ds  open
10.0.2.22  2121  tcp    ccproxy-ftp   open
10.0.2.22  3306  tcp    mysql         open

Portit on listattuna ja nimetty Nmapin parhaan arvauksen mukaan että mikä palvelu kunkin portin takaa yleensä löytyy. Mutta varsinaisia palveluita ei ole tunnistettu eikä niistä ole lisätietoja.

msf6 -> db_nmap -A <ip osoite>

Skannataan seuraavaksi käyttöjärjestelmäversio, avoimet portit, sekä yritetään tunnistaa porttien takana olevat palvelut. Tämän kaiken voi tehdä -A -vivulla. Tässä skannissa kestää hieman pidempään.

msf6 > db_nmap -A 10.0.2.22
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org )...
[*] Nmap: Nmap scan report for 10.0.2.22
[*] Nmap: Host is up (0.000085s latency).
[*] Nmap: Not shown: 992 closed tcp ports (reset)
[*] Nmap: PORT     STATE SERVICE     VERSION
[*] Nmap: 22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
[*] Nmap: | ssh-hostkey:
[*] Nmap: |   1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
[*] Nmap: |_  2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
[*] Nmap: 25/tcp   open  smtp        Postfix smtpd
...

Nmap valmistui lopulta. Ja nyt tietoa on aika paljon enemmän!

msf6 -> hosts

Katsotaan hosteja uudestaan, ollaanko saatu lisää tietoa.

msf6 > hosts

Hosts
=====

address    mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------    ---  ----  -------  ---------  -----  -------  ----  --------
10.0.2.22             Linux               3.X    server

Hieman enemmän, nyt tiedetään ainakin, että kyseessä on Linux-palvelin.

msf6 > services

Katsotaan seuraavaksi tunnistetut palvelut:

msf6 > services
Services
========

host       port  proto  name         state  info
----       ----  -----  ----         -----  ----
10.0.2.22  22    tcp    ssh          open   OpenSSH 4.7p1 Debian 8ubuntu1 protocol 2.0
10.0.2.22  25    tcp    smtp         open   Postfix smtpd
10.0.2.22  53    tcp    tcpwrapped   open
10.0.2.22  111   tcp    rpcbind      open   2 RPC #100000
10.0.2.22  139   tcp    netbios-ssn  open   Samba smbd 3.X - 4.X workgroup: WORKGROUP
10.0.2.22  445   tcp    netbios-ssn  open   Samba smbd 3.0.20-Debian workgroup: WORKGROUP
...

Harjoitukset

Millä portilla pyörii ProFTPd?

Mikä on ProFTPd versio?

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.