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.
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?


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ä.