Man in the middle attacks Alberto Orgnahi <alor@blackhats.it> Marco Valleri <naga@blackhats.it> Man in the middle attacks Cosa sono Come sfruttarli Come ottenerli Come prevenirli Blackhats italia 2002 Blackhats italia 2002
Disclaimer Copyright (c) Blackhats italia 2002. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; Blackhats italia 2002 Blackhats italia 2002
Table of contents A seconda dello scenario in cui ci si trova ad operare l'attacco man in the middle assume forme diverse: RETE LOCALE: - ARP poisoning - DNS spoofing - STP mangling DA RETE LOCALE A REMOTO (attraverso un gateway): - ARP poisoning - DNS spoofing - DHCP spoofing - ICMP redirection - IRDP spoofing - route mangling REMOTO: - DNS poisoning - traffic tunneling - route mangling Blackhats italia 2002
Introduzione Blackhats italia 2002
Definizione m-i-t-m La tipologia di attacco che va sotto il nome di man-in-the-middle consiste nel dirottare il traffico generato durante la comunicazione tra due host verso un terzo host (attaccante) il quale fingera’ di essere l’end-point legittimo della comunicazione. B A M Logica Reale Connessione: Blackhats italia 2002
Ruolo dell’attaccante Essendo l’attaccante fisicamente in mezzo alla comunicazione delle due (o piu’) vittime, ricevera’ pacchetti da e verso le stesse. Si dovra’ preoccupare di inoltrare i pacchetti che riceve verso la corretta destinazione in modo tale che risulti trasparente ai due end-point della comunicazione. Blackhats italia 2002
Tipologie di attacco (1) Half & Full duplex attack A seconda della capacita' di riuscire a monitorare solo uno o entrambi i versi della connessione l'attacco verra' chiamato mitm half duplex o mitm full duplex B A M HALF-DUPLEX A B FULL-DUPLEX M Blackhats italia 2002
Tipologie di attacco (2) Transparent attack Questo attacco nasconde perfettamente l’host attaccante alle due vittime. A 192.168.1.1 B 192.168.1.5 src: 192.168.1.1 M 192.168.1.90 src: 192.168.1.1 Blackhats italia 2002
Tipologie di attacco (3) Proxy attack L’attaccante funge da proxy per la connessione A 192.168.1.1 B 192.168.1.5 src: 192.168.1.1 M 192.168.1.90 src: 192.168.1.90 Blackhats italia 2002
Come sfruttare il MITM Blackhats italia 2002
Vantaggi (1) Sniffing E’ la cosa piu’ ovvia che si puo’ fare. Una volta guadagnato il “middle” i pacchetti transitano attraverso la macchina dell’attaccante. Compromette tutti i protocolli in “plain text” Permette di carpire le password di numerosi protocolli molto diffusi (telnet, ftp, http, ecc) Blackhats italia 2002
Vantaggi (2) Hijacking Semplice da portare a termine Non e’ di tipo blind (si conoscono perfettamente i numeri di sequenza della connessione) Estrema facilita’ nell’oscurare un lato della comunicazione e inserirsi al suo posto Blackhats italia 2002
Vantaggi (3) Injecting Possibilita’ di aggiungere pacchetti alla connessione (solo full-duplex) Modifica dei numeri di sequenza di una connessione TCP per mantenerla sincronizzata Ancora piu’ semplice nella soluzione “proxy attack” Blackhats italia 2002
Vantaggi (4) Filtering Possibilita’ di modificare il payload dei pacchetti (ricalcolando il checksum dove necessario) Creare filtri pattern matching on the fly Modifica anche della lunghezza del payload ma solo in regime FULL-DUPLEX Blackhats italia 2002
Esempi di attacchi Blackhats italia 2002
Esempi di attacchi (1) Command injection Utile nel caso di sessioni telnet con autenticazione non riproducibile (RSA token,…) Inserimento comandi verso il server Simulare risposte verso il client Blackhats italia 2002
Esempi di attacchi (2) Malicious code injection Inserimento malicious code in pagine web, mail ecc (javascript, trojans, virus, ecc) Modifica on the fly di file binari in fase di download (virus, backdoor, ecc) Blackhats italia 2002
Esempi di attacchi (3) Key exchanging Modifica delle chiavi pubbliche scambiate all’inizio della connessione. (es SSH1) start Server Client KEY(rsa) KEY(rsa) MITM Ekey[S-Key] Ekey[S-Key] S-KEY S-KEY S-KEY Eskey(M) D(E(M)) M Blackhats italia 2002
Esempi di attacchi (4) Parameters and banner substitution E' possibile sostituire i parametri che il server e il client si scambiano per modificare il comportamento di entrambi. Esempio: e’ possibile far si che una connessione che richiede SSH2 sia stabilita in SSH1. Risposte possibili del server: SSH-1.99 -- il server supporta ssh1 e ssh2 SSH-1.51 -- il server supporta SOLO ssh1 Creazione di un filtro che cambia 1.99 con 1.51 Possibilita’ di aggirare known_hosts Blackhats italia 2002
Esempi di attacchi (5) IPSEC Failure Bloccare il keymaterial scambiato sulla porta 500 UDP Gli end point credono che l’altro non sia in grado di usare IPSEC Se il client e’ configurato in fall-back c’e’ buona probabilita’ che l’utente non si accorga di comunicare in clear-text Blackhats italia 2002
Tecniche di attacco IN LOCALE Blackhats italia 2002
Attacchi Locali (1) ARP poison - introduzione (1) Stack TCP/IP su ethernet Dati Livello Applicazione TCP Livello Trasporto IP Livello Network eth FCS Livello Data-Link eth IP TCP Dati FCS Frame trasmesso Blackhats italia 2002
Attacchi Locali (1) ARP poison - introduzione (2) Il protocollo ARP (Address Resolution Protocol) si preoccupa di mappare i 32 bit di indirizzo IP (versione 4) in 48 bit di indirizzo ETH Due tipi principali di messaggi: ARP request (richiesta di risoluzione indirizzo) ARP reply (risposta contenente un indirizzo eth) Blackhats italia 2002
Attacchi Locali (1) ARP poison - introduzione (3) Le risposte sono memorizzate nella ARP CACHE, in modo da limitare il traffico arp sulla rete Problemi : Il protocollo e’ stateless Le ARP reply sono memorizzate in cache anche se non erano state sollecitate (incrementa prestazioni ma penalizza la sicurezza) Blackhats italia 2002
Attacchi Locali (1) ARP poison - attacco (1) Sfrutta il comportamento stateless del protocollo Se l’attaccante invia una ARP reply (spoofata) verso un host, questo la memorizzera’ nella propria arp cache Blackhats italia 2002
Attacchi Locali (1) ARP poison - attacco (2) Vittima A Vittima B ARP cache: 192.168.0.2 03:03:03:03:03:03 ARP cache: 192.168.0.2 02:02:02:02:02:02 ARP cache: 192.168.0.1 01:01:01:01:01:01 ARP cache: 192.168.0.1 03:03:03:03:03:03 192.168.0.1 192.168.0.2 01:01:01:01:01:01 02:02:02:02:02:02 192.168.0.2 is at 03:03:03:03:03:03 192.168.0.1 is at 03:03:03:03:03:03 Attaccante 192.168.0.3 03:03:03:03:03:03 Blackhats italia 2002
Attacchi Locali (1) ARP poison - attacco (3) Le entries della cache sono provviste di timeout, quindi l’attaccante deve periodicamente “rinfrescarla” Una entry non e’ aggiornata se non era gia’ presente nella cache Aggirabile tramite un ICMP spoofato Versione modificata dell’attacco contro linux e solaris Blackhats italia 2002
Attacchi Locali (1) ARP poison - attacco (4) Utile per sniffare su reti connesse tramite switch Lo switch opera a livello 2 ed e’ ignaro dei cambiamenti delle associazioni nelle arp cache degli host vittime Blackhats italia 2002
Attacchi Locali (1) ARP poison - tools Ettercap (http://ettercap.sf.net) Poisoning Sniffing Hijacking Filtering SSH sniffing (transparent attack) Dsniff (http://www.monkey.org/~dugsong/dsniff) SSH sniffing (proxy attack) Blackhats italia 2002
Attacchi Locali (1) ARP poison - tracce lasciate Le ARP cache delle vittime contengono il mac address dell’attaccante Se lo switch non e’ provvisto di port-security o se si e’ su HUB, l’attaccante puo’ spoofare il suo mac address. Blackhats italia 2002
Attacchi Locali (1) ARP poison - contromisure NO - Port security sullo switch SI - passive monitoring (arpwatch) SI - active monitoring (ettercap) SI - IDS (rilevano ma non evitano) SI - ARP entries statiche (evitano) SI - Secure-ARP (in development) Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - introduzione (1) Il Domain Name System si occupa di trasformare i nomi simbolici degli host in indirizzi IP utilizzabili dal kernel HOST www.kernel.org DNS 204.152.189.113 Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - introduzione (2) Il protocollo in realta’ e’ molto piu’ complesso, ma ci limiteremo alla trattazione delle funzionalita’ che ci servono per l’attacco. L’unico campo del pacchetto UDP (porta 53) che ci interessa e’ l’ID Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - attacco (1) Intercettare le richieste e memorizzare il campo ID Forgiare una falsa risposta con il giusto ID Spedire al client che ha effettuato la richiesta. Intercettare eventuali reverse query (PTR) Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - attacco (2) MITM HOST serverX.localdomain.it DNS 10.1.1.1 10.1.1.50 Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - attacco (3) In questo caso l’attaccante puo’ fungere da proxy per il server e rispondere in modo corretto a tutti i servizi che il client si aspetta di trovare sul server. Port forwarding con iptables Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - tools Ettercap (http://ettercap.sf.net) Phantom plugin Dsniff (http://www.monkey.org/~dugsong/dsniff) Dnsspoof Zodiac (http://www.packetfactory.com/Projects/zodiac) Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - tracce lasciate Usando un risolutore di indirizzi diverso, ci si puo’ accorgere della differenza di risposte L’IP dell’attaccante e’ presente all’interno delle risposte DNS Blackhats italia 2002
Attacchi Locali (2) DNS spoofing - contromisure SI - individuare risposte multiple (IDS) SI - usare lmhost o host file per risoluzioni statiche SI - DNSSEC (risoluzione criptata) Blackhats italia 2002
Attacchi Locali (3) STP mangling - introduzione (1) Il protocollo di spanning tree (802.1d) e' un protocollo di layer 2 appositamente progettato per evitare "loop" di pacchetti dove siano presenti percorsi ridondati Pacchetti con MAC sorgente non presente nelle tabelle dello switch, sono forwardati su tutte le porte. Questo potrebbe portare a loop di forwarding Blackhats italia 2002
Attacchi Locali (3) STP mangling - introduzione (2) Per evitare loop nella topologia della rete, gli switch si costruiscono un albero di copertura (spanning tree) attraverso lo scambio di BPDU (bridge protocol data unit) Elezione di un “root switch” Per ogni switch si designano le porte attraverso le quali si raggiunge la root e quelle verso i suoi discendenti dell’albero (designated port) Blackhats italia 2002
Attacchi Locali (3) STP mangling - introduzione (3) Ogni pacchetto contiene una priorita’ che sara’ utilizzata per l’elezione della root. La priorita’ e’ rappresentata da un numero formato da 2 byte + il mac address dello switch (minore e’ questo numero maggiore e’ la priorita’) Le BPDU sono continuamente scambiate per rilevare cambiamenti nella rete Blackhats italia 2002
Attacchi Locali (3) STP mangling - attacco Non e’ un vero e proprio m-i-t-m attack. Permette solo di ricevere traffico “unmanaged” Si forgiano BPDU con priorita’ molto alta (fingendoci per la nuova root) Gli switch ricostruiranno l’albero per adattarsi alla nostra presenza Cercare di saturare le tabelle dello switch Blackhats italia 2002
Attacchi Locali (3) STP mangling - tools Ettercap (http://ettercap.sf.net) Lamia plugin Blackhats italia 2002
Attacchi Locali (3) STP mangling - tracce lasciate Il Mac address dell’attaccante e’ presente nello stato dello switch Blackhats italia 2002
Attacchi Locali (3) STP mangling - contromisure SI - Disabilitare STP sulle VLAN prive di loop (sconsgiliato da CISCO) SI - Root Guard (se l'apparato lo supporta) impedisce che determinate porte diventino "root port“, oppure disabilitare l’STP su queste porte. SI - Settare le porte connesse a workstations come "portfast", e attivare BPDU Guard su queste porte (se l'apparato lo supporta). NO - Il portfast da solo NON e' sufficiente. Blackhats italia 2002
Tecniche di attacco DA LOCALE A REMOTO Blackhats italia 2002
Attacchi locale - remoto (1) ARP poisoning - introduzione Per raggiungere una destinazione all’esterno della LAN un host deve conoscere l’IP del gateway. L’host manda una ARP request per l’IP del gateway Blackhats italia 2002
Attacchi locale - remoto (1) ARP poisoning - attacco Simile all’attacco locale. Il gateway e’ un host locale, quindi puo’ essere poisonato come qualsiasi altro host In presenza di “proxy arp” gli host remoti sono considerati locali Blackhats italia 2002
Attacchi locale - remoto (1) ARP poisoning - contromisure SI - entry statica del gateway su tutti gli host Blackhats italia 2002
Attacchi locale - remoto (2) DNS spoofing - introduzione Le richieste saranno per host non locali, verso DNS non locali. Tecnica identica a quella per gli host locali. Abilitare il flag “autoritative” per evitare richieste iterative. Blackhats italia 2002
Attacchi locale - remoto (2) DNS spoofing - contromisure SI - individuare risposte multiple (IDS) SI - usare lmhost o host file per risoluzioni statiche SI - DNSSEC (risoluzione criptata) Blackhats italia 2002
Attacchi locale - remoto (3) DHCP spoofing - introduzione Il servizio DHCP e' utilizzato per l'assegnazione dinamica di una serie di parametri per la connettivita' di rete: Indirizzo IP DNS Default route Blackhats italia 2002
Attacchi locale - remoto (3) DHCP spoofing - attacco (1) Intercattando una richiesta (broadcast) dhcp e' possibile rispondere prima del vero server. In questo modo possiamo modificare i parametri di : Default gateway DNS Blackhats italia 2002
Attacchi locale - remoto (3) DHCP spoofing - attacco (2) Default gateway: assegnando l'indirizzo IP dell'attaccante come default gateway, tutto il traffico verso l'esterno della lan passera' da esso DNS: assegnando l'indirizzo IP dell'attaccante come DNS, tutte le richieste di risoluzione dei nomi verranno fatte a lui e sara' quindi in grado di portare un attacco simile a quello visto in precedenza (DNS spoofing) Blackhats italia 2002
Attacchi locale - remoto (3) DHCP spoofing - tools Non e' necessario un tool apposito ma bastera' configurare la macchina attaccante come DHCP server, installando ad esempio dhcpd. Blackhats italia 2002
Attacchi locale - remoto (3) DHCP spoofing - tracce lasciate L‘indirizzo IP dell'attaccante nelle configurazioni del client. Blackhats italia 2002
Attacchi locale - remoto (3) DHCP spoofing - contromisure La migliore contromisura e' l'attenzione dell'utente che si vedra' porbabilmente arrivare piu' di una risposta dhcp e potra' controllare "manualmente" alla ricerca di strane o inaspettate configurazioni assegnate Blackhats italia 2002
Attacchi locale - remoto (4) ICMP redirect - introduzione (1) Esaminiamo solo il comando REDIRECT del protocollo ICMP Il comando redirect serve ad avvisare un host che esiste una rotta piu’ breve per la destinazione richiesa e questa rotta passa per il gateway indicato nel pacchetto ICMP Blackhats italia 2002
Attacchi locale - remoto (4) ICMP redirect - introduzione (2) G1 G2 H R T 3 2 ICMP redirect to G2 LAN Blackhats italia 2002
Attacchi locale - remoto (4) ICMP redirect - attacco (1) Forgiare un ICMP redirect spoofando la sorgente dello stesso come se fossimo il gateway originale e con destinazione della redirizione l’host attaccante. E’ necessario sniffare il pacchetto originario poiche’ nel REDIRECT ne devono essere inclusi 64 bit + header IP (non sempre necessario: a seconda dell’OS) Blackhats italia 2002
Attacchi locale - remoto (4) ICMP redirect - attacco (2) I pacchetti di tipo REDIRECT vengono presi in considerazione dagli host a seconda del loro sistema operativo: Windows 9x accetta i REDIRECT di default e aggiunge una entry (di tipo host) nelle sue tabelle di routing. Linux accetta di default i REDIRECT in alcune distribuzioni (vedere in proposito /proc/sys/net/ipv4/<nome interfaccia>/accept_redirects) Le rotte aggiunte sono comunque temporanee. Blackhats italia 2002
Attacchi locale - remoto (4) ICMP redirect - tools IRPAS icmp_redirect di Phenoelit (http://www.phenoelit.de/irpas/) icmp_redir di Yuri Volobuev Blackhats italia 2002
Attacchi locale - remoto (4) ICMP redirect - tracce lasciate L’indirizzo IP dell’attaccante e’ presente nelle rotte dell'host e' possibile spoofarlo e far comunque arrivare a lui i pacchetti rispondendo alle ARP request per l'indirizzo Blackhats italia 2002
Attacchi locale - remoto (4) ICMP redirect - contromisure SI - Disabilitare i REDIRECT ma cosi' facendo ci potebbero essere dei cali di prestazioni nella rete (i pacchetti fanno piu’ HOP). NO - Linux permette di attivare l'opzione "secure redirect", che non risulta una protezione efficace Blackhats italia 2002
Attacchi locale - remoto (5) IRDP spoofing - introduzione (1) IRDP (ICMP Router Discovery Protocol) e' un protocollo basato su ICMP, utilizzato per l'assegnazione automatica agli host di un gateway(router). Ci sono due tipi di messaggi previsti dal protocollo: "Router Advertisements" "Router Solicitations" Periodicamente, ogni router manda in multicast degli advertisment per annunciare il suo indirizzo IP Blackhats italia 2002
Attacchi locale - remoto (5) IRDP spoofing - introduzione (2) Ogni advertisment contiene un "livello di preferenza“ e un campo “lifetime”. Nel caso un host riceva piu' advertisment da diverse sorgenti, si dovrebbe scegliere quello con il livello piu' elevato Il "lifetime" sta ad indicare il tempo per cui l'host deve conservare quella rotta. Blackhats italia 2002
Attacchi locale - remoto (5) IRDP spoofing - attacco Forgiare degli "advertisment" annunciandoci come router e settando i campi "livello di preferenza" e "lifetime" al massimo valore consentito Windows 9x accetta IRDP Windows NT usa IRDP al boot Windows 2000 ignora IRDP Linux ignora IRDP Si puo' rendere l'attacco piu' efficace orgiando degli ICMP Host Unreachable impersonando l'attuale router di default. Blackhats italia 2002
Attacchi locale - remoto (5) IRDP spoofing - tools IRPAS di Phenoelit (http://www.phenoelit.de/irpas/) Blackhats italia 2002
Attacchi locale - remoto (5) IRDP spoofing - tracce lasciate L’indirizzo IP dell’attaccanete e’ presente nelle rotte dell'host e' possibile spoofarlo e far comunque arrivare a noi i pacchetti rispondendo alle ARP request per l'indirizzo spoofato. Blackhats italia 2002
Attacchi locale - remoto (5) IRDP spoofing - contromisure SI - Disabilitare IRDP sugli hosts se il sitema operativo lo permette. Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - introduzione (1) Nel caso in cui un router ha piu' rotte possibili per una stessa destinazione, sceglie quella col "peso" maggiore. Il peso viene determinato in base a vari fattori come le metriche proposte dai vari protocolli di routing, e il tipo di protocollo stesso che ha proposto la rotta. Piu' il protocollo e' "fidato", maggiore sara' il peso delle rotte che propone. Le rotte statiche hanno generalmente un "grosso" peso. Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - introduzione (2) La prima cosa che viene controllata nella scelta di una rotta e' (in generale) la netmask. Questo perche' piu' la netmask e' grande (cioe’ restrittiva) e piu' vuol dire che quella rotta e' specifica per l'host che vogliamo raggiungere e non per una piu' generica subnet. Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - attacco (1) INTERNET GW AT H Forgiare dei pacchetti per GW annunciandoci come router con un ottima metrica per un determinato host (o classe o subnet). Specificare una netmask grande per “battere” rotte di peso maggiore. Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - attacco (2) Quando H mandera' dei pacchetti per l'host per cui l’ATTACKER si e’ annunciato come rotta preferenziale, questi arriveranno a GW. GW sara' convinto che il modo piu' veloce per raggiungere quell'host e' attraverso ATTACKER GW mandera' ad H degli ICMP redirect dicendogli di usare ATTACKER come gateway per i pacchetti successivi. Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - attacco (3) Il problema a questo punto e' trovare un modo per far arrivare i pacchetti al legittimo destinatario. GW, infatti, e’ convinto di poter raggiungere l’host attraverso l’attacker. AT2 Tunnel GW AT D INTERNET H Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - attacco (4) Possibilita’ di usare multipath routing o QoS Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - tools IRPAS di Phenoelit (http://www.phenoelit.de/irpas/) Nemesis (http://www.packetfactory.net/Projects/nemesis/) Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - tracce lasciate L’indirizzo IP dell’attaccante nelle tabelle del router che sono comunque temporanee E’ possibile spoofarlo come nei casi precedenti. Blackhats italia 2002
Attacchi locale - remoto (6) ROUTE mangling - contromisure SI - Disabilitare i protocolli di routing dinamico che sono inutili in uno scenario di questo tipo SI - Mettere delle ACL esplicite sull'interfaccia interna del router che blocchino gli "update" indesiderati. SI - Abilitare l'autenticazione MD5 nei protocolli che la supportano Blackhats italia 2002
Tecniche di attacco IN REMOTO Blackhats italia 2002
Attacchi in remoto (1) DNS poisoning - introduzione (1) Quando il DNS riceve una richiesta ci possono essere 3 possibilita': Il DNS e' "autoritativo" per il dominio a cui il nome richiesto appartiene. (risposta autoritativa) Il DNS non e' "autoritativo" per il dominio richiesto ma ha nella cache la coppia <nome simbolico, indirizzo IP> in seguito ad una precedente richiesta. (risposta non autoritativa) Blackhats italia 2002
Attacchi in remoto (1) DNS poisoning - introduzione (2) Il DNS non e' "autoritativo" per il dominio e non ha in cache l'indirizzo IP della macchina richiesta. La query e' di tipo ricorsivo. (risponde risolvendo da solo l’host richiesto) La query e' di tipo iterativo. (risponde fornendo l’indirizzo del DNS autoritativo per il dominio di primo livello dell’host da risolvere) Blackhats italia 2002
Attacchi in remoto (1) DNS poisoning - attacco (1) ATTACCO DEL PRIMO TIPO L’attacco ha come fine quello di mettere nella cache del DNS una coppia <indirizzo IP, nome simbolico> Si effettua una richiesta al DNS vittima Si spoofa la risposta che dovrebbe arrivare dal DNS autoritativo (i pacchetti sono UDP) Nella risposta forgiata dobbiamo inserire l'ID corretto della transazione iniziata dal DNS vittima (brute force, semi-blind guessing) Blackhats italia 2002
Attacchi in remoto (1) DNS poisoning - attacco (2) ATTACCO DEL SECONDO TIPO Sfrutta la “feature” del dynamic update di alcuni DNS Inviando richieste di tipo “update” e’ possibile aggiungere o eliminare alcune entries per cui il DNS e’ autoritativo ATTACCO DEL TERZO TIPO abusare del sistema di assegnazione dei domini (ad esempio richiedendo un spostamento di dominio a Network Solutions Inc.) Blackhats italia 2002
Attacchi in remoto (1) DNS poisoning - tools ADMIdPack Zodiac (http://www.packetfactory.com/Projects/zodiac) per il dynamic update: Net::DNS::Update Blackhats italia 2002
Attacchi in remoto (1) DNS poisoning - tracce lasciate Come nel caso del DNS spoofing, gli host manderanno tutti i pacchetti della connessione verso l'indirizzo IP della macchina attaccante. Il DNS conservera' traccia di tale IP per tutto il tempo di latenza dell'entry nella cache. Blackhats italia 2002
Attacchi in remoto (1) DNS poisoning - contromisure NO - restringere il dynamic update a range di IP (possono essere spoofati) SI - Usare DNS con generazione casuale dei transaction ID (Bind v9) SI - DNSSec (implementato in Bind v9) permette la firma digitale dei dati. Ovviamente anche il resolver deve supportare questa estensione. SI - Evitare di rendere pubblico il DNS che si utilizza "in casa" per la risoluzione di nomi non appartenenti alla propria zona. SI - Eliminare il dynamic update o rendere pubblico un semplice forwarder che inoltra le richieste ad un altro name server con questa feature, non raggiungibile dall'esterno. Blackhats italia 2002
Attacchi in remoto (2) Traffic Tunneling - introduzione (1) Nel seguito della spiegazione faremo riferimento ai router CiscoIOS e al metodo di incapsulamento IP su GRE Un tunnel e' instaurato tra due "end point" detti tunnel broker. Su ognuno dei due endpoint, il tunnel e' associato ad un interfaccia virtuale con un suo indirizzo (ad esempio Tunnel0), che deve essere legata ad un interfaccia reale (ad esempio Serial0). Ogni volta che il router deve inoltrare un pacchetto IP che ha come “next hop” un indirizzo che cade nella subnet dell'IP address dell'interfaccia di tunnel, il pacchetto viene incapsulato e spedito all’altro endpoint Blackhats italia 2002
Attacchi in remoto (2) Traffic Tunneling - introduzione (2) 192.168.0.* 192.168.0.1 LAN 1 Router 1 192.168.2.1 192.168.2.2 195.103.31.193 INTERNET 195.103.31.194 LAN 2 Router 2 192.168.1.1 192.168.1.* Blackhats italia 2002
Attacchi in remoto (2) Traffic Tunneling - attacco Server Router 1 Tunnel GRE INTERNET Client Fake host Gateway Attacker Blackhats italia 2002
Attacchi in remoto (2) Traffic Tunneling - tools Ettercap (http://ettercap.sf.net) Zaratan plugin TunnelX (http://www.phrack.com) Blackhats italia 2002
Attacchi in remoto (2) Traffic Tunneling - tracce lasciate La traccia piu' evidente e’ senza dubbio la riconfigurazione del router (!!!). Blackhats italia 2002
Attacchi in remoto (2) Traffic Tunneling - contromisure SI - Password forti sul router per l'accesso a qualsiasi livello. SI - Disabilitare o proteggere con community forti l'accesso in scrittura via snmp. Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (1) Dal punto di vista del routing internet e’ divisa in Autonomous System (AS) connessi tra loro attraverso le backbone Si adottano differenti politiche all’interno dell’AS e all’esterno Gli AS sono identificati dal loro Border Gateway quando i pacchetti viaggiano sulla backbone Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (2) Distance Vector Ogni router mantiene una tabella contenente la migliore distanza conosciuta per ogni destinazione e quale canale utilizzare per raggiungerla. Queste tabelle sono aggiornate scambiando le informazioni coi vicini. Scarsa velocita' di convergenza problema del "conteggio all'infinito" (in parte ovviabile con lo split-horizon). Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (3) Link State I router scambiano solo informazioni sui vicini e non sulle varie destinazioni Ogni router conosce l'intera topologia di rete o almeno ne ha una sua visione. Controlli per evitare loop, basati sull'utilizzo di campi come "numero di sequenza" e "eta'". Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (4) IGRP (Interior Gateway Routing Protocol) Non supporta alcun tipo di autenticazione. Supporta diverse metriche: delay, bandwidth, reliability, load e hop count. Non supporta le netmask. No host route. Protocollo di tipo distance vector, i pacchetti possono contenere anche solo la rotta che vogliamo "aggiungere" o "modificare". Necessita’ di mantenere le rotte “vive”. Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (5) EIGRP (Extended Interior Gateway Routing Protocol) Tipo Distance-Vector ma con delle neighbor relationships Manda soltanto i cambiamenti di topologia nei suoi updates. Supporta le netmasks. Implementa il sequencing permette l'utilizzo di una autenticazione crittografica delle rotte (MD5). Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (6) RIP (Routing Information Protocol) over UDP L'unica metrica supportata e' l'hop count. Non e' adatto a reti di grandi dimensioni Non supporta la distinzione degli AS. La v1 non permette di specificare la netmask delle rotte (netmask fissata dalla classe). La v2 supporta l'autenticazione con password in chiaro (16 caratteri max) o le signature MD5 (solo per Cisco) Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (7) OSPF (Opens Shortest Path First) E' un protocollo di tipo link state. Puo' essere usato come IGP o anche come EGP. Supporta le subnet netmasks. nessuna autenticazione o autenticazioni in clear-text (alcune implementazioni con MD5). Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - introduzione (8) BGP4 (Border Gateway Protocol) over TCP protocollo usato principalmente per il routing fra gli AS protocollo di tipo distance vector, ma permette l'enumerazione di tutti gli AS che un pacchetto deve attraversare per raggiungere ogni destinazione Non usa le metriche per le rotte, ma una serie di attributi per discriminarle. Supporta le netmasks. BGP non ha un suo metodo di sequencing, ma si appoggia a quello del TCP. Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - attacco (1) L’attacco mira a dirottare il traffico tra le vittime A e B Raccogliere informazioni dall’ attaccante verso A e verso B: traceroute portscanning protoscanning Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - attacco (2) Scenario 1 a (IGRP all’interno dello stesso AS) A B L’attaccante si annuncia come GW Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - attacco (3) Scenario 1 b (IGRP - all’interno dello stesso AS) A B Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - attacco (4) Scenario 2 a (il traffico non passa dall’AS) AS 1 AS 2 BGP BG 1 BG 2 BG 3 RIP AS 3 Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - attacco (5) Scenario 2 b (il traffico non passa dall’AS) AS 1 BG 4 BG 5 AS 2 BG 1 BG 2 BG 3 AS 3 Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - tools IRPAS di Phenoelit (http://www.phenoelit.de/irpas/) Nemesis (http://www.packetfactory.net/Projects/nemesis/) Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - tracce lasciate Non ci sono tracce evidenti dell’attacco Blackhats italia 2002
Attacchi in remoto (3) ROUTE mangling - contromisure SI - La contromisura piu' efficace e' senza dubbio abilitare un’autenticazione forte nei protocolli che la supportano Blackhats italia 2002
Conclusioni La sicurezza di una nostra comunicazione e’ affidata ad una corretta configurazione del client (per evitare ad esempio ICMP Redirect, ARP Poisoning etc.) all'infrastruttura del nostro interlocutore (es. DNS dynamic update), alla robustezza di apparati di "terzi", su cui non possiamo avere nessun tipo di controllo e di garanzia (es. Tunnelling e Route Mangling). Il modo migliore per proteggere i nostri dati che viaggiano in rete e'quindi l'utilizzo corretto di suite crittografiche sicure sia dal lato client sia dal lato server per la protezione a livello rete (es. IPSec) a livello trasporto (es. SSLv3) a livello applicativo (es. PGP). Blackhats italia 2002
Bibliografia Paper-mitm.txt Marco Valleri <naga@blackhats.it> Alberto Ornaghi <alor@blackhats.it> http://ettercap.sf.net/papers/Paper-mitm.txt Blackhats italia 2002