Diferència entre revisions de la pàgina «ASIX/M16/UF2/EX1»
Línia 198: | Línia 198: | ||
Després d'uns 2 minuts de llançar la comanda, ''nmap'' no és capaç de donar cap output perquè la víctima no respon de cap manera a aquells paquets enviats. | Després d'uns 2 minuts de llançar la comanda, ''nmap'' no és capaç de donar cap output perquè la víctima no respon de cap manera a aquells paquets enviats. | ||
+ | |||
+ | *'''XMas scan''' | ||
+ | Aquest escaneig consisteix en enviar paquets TCP amb tots els flags activats a la víctima i veure com respon. En el cas de ports tancats, ''nmap'' rebrà un ''RST'' de la víctima; mentre que els ports oberts o filtrats no donaran resposta però tampoc podrem diferenciar-ne l'estat. | ||
+ | :*Atacant: | ||
+ | <source> | ||
+ | Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-04 17:28 UTC | ||
+ | Nmap scan report for victim-nmap (10.16.2.6) | ||
+ | Host is up (0.00096s 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 96.50 seconds | ||
+ | </source> | ||
+ | |||
+ | :*Víctima: | ||
+ | Ens protegirem afegint 3 regles a IPTables; ja que hem de fer un REJECT pels paquets que continguin diferents ''flags'' TCP: | ||
+ | <source> | ||
+ | iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -m limit --limit 3/m --limit-burst 5 -j DROP | ||
+ | |||
+ | iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit --limit 3/m --limit-burst 5 -j DROP | ||
+ | |||
+ | iptables -A INPUT -p tcp --tcp-flags ALL ALL -m limit --limit 3/m --limit-burst 5 -j LOG | ||
+ | </source> | ||
+ | |||
+ | :*Atacant: | ||
+ | Després d'aplicar la regla d'IPTables a la víctima, l'atacant tindrà aquesta resposta: | ||
+ | <source> | ||
+ | |||
+ | </source> | ||
====Repte 2. ''nmap'' + bruteforce VS ''IPTables''==== | ====Repte 2. ''nmap'' + bruteforce VS ''IPTables''==== |
Revisió del 17:32, 4 feb 2019
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
Aquest atac consisteix en dir-li a nmap que analitzi ports oberts (amb la possibilitat de detectar-ne de tancats i saber el servei que s'hi està escoltant darrere) mitjançant l'enviament de paquets TCP FIN; de manera que si el port està obert, no hi haurà resposta. En cas contrari (port tancat), la víctima segurament respondrà amb un RST i podrem saber que hi ha algú escoltant però el port està tancat.
- 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:
root@attack-nmap:/home/guillem# nmap victim-nmap -sF Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-04 17:10 UTC Warning: 10.16.2.6 giving up on port because retransmission cap hit (10).
Amb això podem comprovar que, al cap de molta estona, nmap no és capaç de detectar res perquè IPTables fa un rebuig dels paquets TCP que contenen FIN.
- TCP NULL
Aquest atac consisteix en analitzar buscant ports tancats de la víctima enviant paquets TCP sense cap flag (ACK, SYN, FIN) activat.
- Atacant:
Llançarem l'escaneig amb els paràmetres -sN
root@attack-nmap:/home/guillem# nmap victim-nmap -sN Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-04 17:20 UTC Nmap scan report for victim-nmap (10.16.2.6) Host is up (0.00091s 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 11.42 seconds
- Víctima:
Per a evitar aquest tipus de scans, afegirem la regla a IPTables següent:
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j REJECT
- Atacant:
Quan repetim l'atac després d'afegir la regla al firewall:
root@attack-nmap:/home/guillem# nmap victim-nmap -sN Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-04 17:23 UTC
Després d'uns 2 minuts de llançar la comanda, nmap no és capaç de donar cap output perquè la víctima no respon de cap manera a aquells paquets enviats.
- XMas scan
Aquest escaneig consisteix en enviar paquets TCP amb tots els flags activats a la víctima i veure com respon. En el cas de ports tancats, nmap rebrà un RST de la víctima; mentre que els ports oberts o filtrats no donaran resposta però tampoc podrem diferenciar-ne l'estat.
- Atacant:
Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-04 17:28 UTC Nmap scan report for victim-nmap (10.16.2.6) Host is up (0.00096s 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 96.50 seconds
- Víctima:
Ens protegirem afegint 3 regles a IPTables; ja que hem de fer un REJECT pels paquets que continguin diferents flags TCP:
iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -m limit --limit 3/m --limit-burst 5 -j DROP iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit --limit 3/m --limit-burst 5 -j DROP iptables -A INPUT -p tcp --tcp-flags ALL ALL -m limit --limit 3/m --limit-burst 5 -j LOG
- Atacant:
Després d'aplicar la regla d'IPTables a la víctima, l'atacant tindrà aquesta resposta: