UF2. Hacking ètic
Contingut
Exercici d'escaneig de xarxes
Previa
Tindrem una màquina virtual amb Ubuntu Server amb uns quants serveis instal·lats:
- Apache
- MariaDB (MySQL)
- SSH
- Postfix
- Dovecot
Posada a punt
Crearem una màquina virtual amb Ubuntu Server 18 que actuarà com a víctima victim-nmap
. Una altra màquina virtual serà l'atacant attack-nmap
. Compartiran la mateixa xarxa de VirtualBox amb una Xarxa NAT que permeti la connexió entre elles: mode NAT Network a les targetes virtuals.
Víctima
Instal·larem alguns serveis de prova que no requereixin gaire configuració per a poder fer les proves i explotar vulnerabilitats:
sudo apt install apache2 mariadb-server-10 dovecot-imapd postfix -y
Farem una neteja de les regles del IPTables per a començar des d'un estat "net"
iptables -F iptables -X
Això ho farem després de cada repte per tal de no arrossegar brutícia o regles incoherents entre elles.
Atacant
Haurem d'instal·lar nmap per a poder fer els escanejos:
sudo apt install nmap -y
Segons configuració per DHCP, la màquina atacant té l'adreça 10.16.2.6 i la víctima està a 10.16.2.7. Podem editar l'arxiu /etc/hosts
per a poder fer els atacs amb nom de host en comptes d'adreces IP.
Els objectius són:
1. Descobrir els serveis de la xarxa
root@attack-nmap:~# nmap victim-nmap Starting Nmap 7.60 ( https://nmap.org ) at 2019-01-30 17:42 UTC Nmap scan report for victim-nmap (10.16.2.6) Host is up (0.0063s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 143/tcp open imap 993/tcp open imaps MAC Address: 08:00:27:85:F6:76 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1.62 seconds
2. Descobrir quin software executa cada servei mitjançant nmap
root@attack-nmap:~# nmap -sV victim-nmap Starting Nmap 7.60 ( https://nmap.org ) at 2019-01-30 17:43 UTC Nmap scan report for victim-nmap (10.16.2.6) Host is up (0.00089s latency). Not shown: 995 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0) 25/tcp open smtp Postfix smtpd 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) 143/tcp open imap Dovecot imapd (Ubuntu) 993/tcp open ssl/imap Dovecot imapd (Ubuntu) MAC Address: 08:00:27:85:F6:76 (Oracle VirtualBox virtual NIC) Service Info: Host: localhost.localdomain; OS: Linux; CPE: cpe:/o:linux:linux_kernel Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 8.13 seconds
3. Esbrina si s'està executant un Firewall al servidor 4. Configura el Firewall per tal que filtri ICMP i fes una prova de funcionament
- 1. Prova de fer ping
root@attack-nmap:~# ping victim-nmap -c3 PING victim-nmap (10.16.2.6) 56(84) bytes of data. 64 bytes from victim-nmap (10.16.2.6): icmp_seq=1 ttl=64 time=0.801 ms 64 bytes from victim-nmap (10.16.2.6): icmp_seq=2 ttl=64 time=0.915 ms 64 bytes from victim-nmap (10.16.2.6): icmp_seq=3 ttl=64 time=0.963 ms --- victim-nmap ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.801/0.893/0.963/0.067 ms
- 2. Bloqueja amb IPTables el protocol ICMP
iptables -A INPUT -p icmp -j REJECT
- 3. Prova el ping
root@attack-nmap:~# ping victim-nmap -c3 PING victim-nmap (10.16.2.6) 56(84) bytes of data. From victim-nmap (10.16.2.6) icmp_seq=1 Destination Port Unreachable From victim-nmap (10.16.2.6) icmp_seq=2 Destination Port Unreachable From victim-nmap (10.16.2.6) icmp_seq=3 Destination Port Unreachable --- victim-nmap ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2002ms
- 4. Prova el nmap. Funciona? Per què?
root@attack-nmap:~# nmap victim-nmap Starting Nmap 7.60 ( https://nmap.org ) at 2019-01-30 17:50 UTC Nmap scan report for victim-nmap (10.16.2.6) Host is up (0.00071s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 143/tcp open imap 993/tcp open imaps MAC Address: 08:00:27:85:F6:76 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds
Nmap segueix funcionant perquè, per defecte, no fa servir el protocol ICMP per tal de comprovar si un port està essent escoltat per un servei o no; a menys que nosaltres li diguem explícitament que utilitzi ICMP amb el flag -PN
.
Reptes
Repte 1. nmap VS IPTables
Fes la prova de concepte comparant els scans de nmap amb TCP FIN, NULL i Xmas scan (-sF, -sN, -sX) i documenta com faries per bloquejar cadascun d'ells amb IPTables.
Procediment
- TCP FIN:
- Atacant:
root@attack-nmap:/home/guillem# nmap victim-nmap -sF Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-04 17:03 UTC Nmap scan report for victim-nmap (10.16.2.6) Host is up (0.00072s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open|filtered ssh 25/tcp open|filtered smtp 80/tcp open|filtered http 143/tcp open|filtered imap 993/tcp open|filtered imaps MAC Address: 08:00:27:85:F6:76 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 83.79 seconds
- Víctima:
Per a bloquejar aquest atac, farem servir aquesta comanda de IPTables:
iptables -A INPUT -p tcp --tcp-flags ALL FIN -j REJECT
El que fa és un REJECT de paquets TCP que portin el flag de FIN, de manera que el mètode d'nmap corresponent no tingui efecte.
- Atacant:
Si repetim l'anàlisi amb la mateixa comanda, després d'afegir la nova regla a IPTables tindrem el següent resultat: