InfoHack a cura di Urkes
Salve sono Urkes,
sono l'unico ragazzo che in pochi mesi ha letto tutte le riviste e guide sull'Hacking. Non sono un Hacker perchÈ ho poca esperienza in campo pratico. Un Hacker ci si diventa solo dopo vari apprendimenti di attacchi e di soluzioni; non posso leggermi 200 libri sull'Hacking e dire: "Sono un Hacker a tutti gli effetti". In questo modo ci illudiamo solo di esserlo. E' vero dopo saprei tutto su come effettuare un attacco, come nascondermi e cosa fare una volta dentro ma non avremo acquisito una nostra personalit‡. Gli Hacker non sono tutti uguali: ci sono quelli malicious, quelli che usano le loro capacit‡ informatiche solo per distruggere qualcosa, quelli che si divertono a far crashare PC e si fanno belli sotto gli occhi degli altri, poi ci sono anche quelli che riescono a tappare i vari buchi di un server oppure quelli che segnalano al SysAdmin (System Administrator) cosa c'Ë che non va e cosa bisogna cambiare per fare in modo da rendere sicuro quel server. Non vi dico di assomigliare a questi ultimi ma solamente di assumere una propria personalit‡, una propria filosofia e una propria opinione.Dopo aver attaccate un sito domandatevi 'PerchË l'ho fatto?' e in questo modo capirete che alcune cose non vanno fatte mentre altre si fanno solo per avere una propria soddisfazione. Ogni volta che avremo scovato i buchi di un server sar‡ solo e sempre una nostra soddisfazione. A questo punto finisco questa breve nota prendendo spunto da una frase di Dechartes: "Ogni volta che effettueremo un attacco, ci servir‡ poi come base per effettuarne degli altri".
Hacking, che roba Ë?
Gi‡ ho scritto le mie opinioni sull'hacking, vediamo cosa ne pensa InfectedMachine in questa parte presa dalla sua guida all'Hacking:
L'hacking Ë l'atto di penetrare nei sistemi per guadagnare conoscenze sul sistema e su come questo lavora. Quest'azione Ë illegale perchË noi guadagnamo l'accesso a tutti i dati e li possiamo anche prendere. Noi veniamo puniti per cercare di capire. I vari governi del mondo spendono un'esagerazione di soldi per cercare di arrestarci quando invece potrebbero investirli per cercare di catturare persone di gran lunga pi˘ pericolose degli hackers.In giro ci sono assassini, stupratori, maniaci e terroristi e sono queste le persone che i governi dovrebbero catturare, non gli hackers.Al contrario di quello che dicono i governi i veri hackers non sono pericolosi; tutto quello che vogliamo Ë capire, imparare e forse un giorno le persone del mondo riusciranno a capirlo. Vorrei anche fare notare una piccola differenza tra gli hackers e i crackers.Per hacker si intende quella persona che, come abbiamo detto sopra, penetra nei sistemi informatici solamente per capire come essi funzionino realmente; i crackers sono coloro che penetrano nei sistemi informatici e non solo, per causare danni o rubare informazioni.La gente "normale" non conosce questa differenza e tende ad associare all'hacker il classico giovane ragazzo con i capelli lunghi, anarchico che seduto davanti allo schermo del suo computer aspetta che il programma pirata che lui sta usando gli consenta l'accesso al sistema bancario della citt‡ per poter rubare soldi in grandi quantit‡. Fino a che la gente non capir‡ che gli hackers non sono cattivi come si intende, la polizia li continuer‡ a perseguitare come assassini o terroristi o come criminali della peggior specie.
PerchË quindi hackerare un sistema?
Come ho detto sopra noi penetriamo nei sistemi per ottenere conoscenze sul sistema stesso e su come questo funziona e lavora.Noi NON vogliamo danneggiare in alcun modo i sistemi in cui penetriamo. Se tu danneggi un sistema, tu puoi essere individuato ed arrestato. Se invece tu non danneggi nulla Ë molto difficile ( ma non impossibile! ) che ti riescano a prendere senza spendere molti soldi( e non tutti, governi e grandi industrie a parte, li possiedono. I novizi Ë meglio che leggano qualsiasi cosa sull'hacking prima di compierel'atto vero e proprio poichË pi˘ conoscenze si hanno, meglio si puÚ operare.
E' molto utile anche una buona conoscenza dei linguaggi: c, c++ e assembler oltre ad una totale conoscenza del sistema Unix.
LE 10 REGOLE DELL'HACKING:
- Non dannegiare mai un sistema. Se lo fai potresti fregarti con le tue stesse mani;
- Non alterare nessuno dei file di sistema eccetto quelli che devi modificare per non essere individuato ( i log file )e quelli che ti permetteranno di avere accesso a quel computer in futuro;
- Non distribuire i tuoi progetti sull'hacking a nessuno a cui non affideresti la tua vita;
- Quando posti sulle news, su un bbs ( Bulletin Board System ) o quando chatti su IRC sii pi˘ vago possibile quando parli dei tuoi futuri progetti riguardo all'hacking. Ogni cosa puÚ essere monitorata dalle forze dell'ordine;
- Non usare mai il tuo vero nome o il tuo vero numero telefonico quando posti su un bbs, sulle news oppure su IRC;
- Non lasciare i tuoi manipolamenti ( tranne quelli necessari ) su qualsiasi sistema in cui penetri;
- NON hackerare i computer dei governi in particolar modo del TUO governo;
- Non parlare dei tuoi progetti riguardo all'hacking quando parli sulla tua linea telefonica di casa;
- SII PARANOICO. Metti tutto il materiale riguardo all'hacking in posti sicuri;
- Per diventare un vero hacker, tu devi hackare. Tu non puoi sederti a leggere un file di testo come questo e pensare di essere un vero hacker.
Ora invece vediamo cosa ne pensa LordKasko in questa parte presa dalla guida Italiana all'Hacking di Unix:
Se hai intenzione di fare dell'hacking, devi farlo per una ragione. Tutti gli hackers hanno una ragione per farlo. La maggior parte ha solo sete di sapere. La maggior parte di cio' che so l'ho imparata in qualche service provider o sulla macchina di qualcun altro.Sono uno che punta molto sull'esperienza personale.Se avessi dovuto studiare cio' che so, avrei dovuto leggere 20000 libri solo per sapere qualcosa su alcuni file di configurazione, sui messaggi email degli amministratori, sui file .bash_history e qualcos'altro su alcuni altri sistemi.
Non basta sapere crackare un file di password ed entrare in una macchina unix per considerarti un hacker. Ok, sai come ottenere l'accesso di root in un sistema! Non sei ancora un hacker! Prima devi sapere perche' sei un hacker e poi avere un tuo stile e una tua filosofia. Ci vuole uno scopo ed una ragione per entrare in qualunque sistema. Il vero hacker sa perche' sta facendo qualcosa, e lo fa per ragioni come il sapere,
l'informazione, e l'ACCESSO. Il vero hacker trasformera' un hack in accessi a molti diversi sistemi e provider e manterra' questi accessi per conoscenze future e per maggiori informazioni.
Gli hacker da quattro soldi non saranno invisibili e faranno molte sciocchezze come: cancellare e corrompere dati, fare cadere le macchine, lanciare dei bot o dei client IRC dagli account di root o dare a tutti le password che ha crackato per far sapere a tutti che sa fare dell'hacking. O potrebbere fare sciocchezze che lo portera' ad essere beccato. Penso che talvolta questo venga fatto di proposito per attirare su di se' l'attenzione in modo da essere beccato ed annunciare che sono hacker, e che c'era anche lui! Un vero Hacker non cerca questo tipo di gloria, vuole l'accesso e vuole mantenerlo ed essere invisibile! Non dira' a molti amici riguardo il sistema, non dara' in giro le password o gli account e terra' gli altri fuori in modo da mantenere l'accesso e tenerlo il piu' possibile pulito.
E per ultimo, non come importanza, l'articolo di Lord Shinva che parla dell'etica dell' hacker tratta dalla sua grande enciclopedia dell'hacker:
Io per primo, fino all'anno scorso, seguivo ben poco l'etica,ma sappiate che senza l'etica sarete e resterete lamers. Potrete anche avere tutte le conoscenze informatiche di questo mondo... Kevin Mitnick,il cosidetto "Condor", era ed e` tuttora osannato come grandissimo hacker.E infatti le conoscenze le aveva. Ma per cosa le usava?
Contraffazione di carte di credito, frode telefonica, e una quantita` di altri crimini che niente avevano a che fare con l'hacking. Certo, per fare alcune cose ha dovuto hackerare dei sistemi, e su www.takedown.com troverete riportato passo passo tutto il suo lavoro. Ma l'etica esiste per differenziare hackerse pirati. A causa dei pirati, gli hackers sono ormai etichettati come criminali, e trattati al pari dei pirati. Quanti raid sono stati fatti su BBS e a casa di utenti dalla GdF a causa di qualche chiacchierata "off limits" in area messaggi? Vi meravigliate che, rispetto a una decina d'anni fa, non ci sia quasi piu` quella collaborazione e quello spirito di comunita`e di diffusione delle tecniche di hacking? Finisce anche la libera` di informazione alternativa. Questi stessi "volumi" sono illegali. Vi ho solo informati su come proteggere la vostra privacy elettronica e conoscere piu`in profondita` il mondo dei computers. Eppure i volumi sono illegali. Posso essere usati tanto dal sysadmin per capire quali siani i punti deboli del suo sistema, quando dal piratucolo di 12 anni che passa la giornata a giocare al playstation e la sera si vanta con gli amici su icq per aver trashato o crashato un server. E la politica reagisce di conseguenza. Basti vedere la W.I.P.O., la legge internazionale approvata dai Paesi di mezzo mondo che stava per far chiudere TUTTI i siti hacker, le mailing list dedicate alla sicurezza informatica (non pirateria, solo discussioni sulla sicurezza!), ecc. E tutto grazie ai pirati... e dunque ai lamers.
Utilizzare le proprie conoscenze informatiche per danneggiare dati, oltre che reato, e` da lamers. Se un hacker vuole davvero "vendicarsi" di qualcuno o ritiene di avere un motivo valido per causare danni, non distrugge dati, e non usa il mailbombers, i nuke e gli altri giocattolini per irc e icq. Molti pirati, volendo danneggiare UN solo utente di un server, danneggianoTUTTO il server. Sarebbe gia` piu` corretto modificare lo script di login di quel dato utente o fare qualcosa che gli faccia rendere conto di essere "sotto controllo", senza comunque distruggere niente.
Usare l'hacking per guadagnare soldi, o per rubarli, o per non pagare un servizio, ad esempio cellulari e telefoni vari - benche` a molti non vada giu` - e` da lamers. Se non vi piace la bolletta che vi arriva a fine mese, non compratevi il cellulare. Attenzione pero`: questo non vuol dire che studiare il funzionamento di un sistema telefonico o di una banca sia contrario all'etica hacker. Studiare o approfondire il funzionamento di qualcosa e` il pane quotidiano degli hackers. Ma e` dall'uso delle informazioni ricavate che si distingue unvero hacker da un perdente. Distribuire o collezionare warez (software commerciale pirata, ossia copiato illegalmente), oppure cracks, seriali, ecc. e` da lamers. Aprire una pagina web piena di link a programmi e ad altri siti e definirsi hacker per aver fatto quello che chiunque conosca un minimo di html saprebbe fare, e` da lamers.
Atteggiarsi ad hacker e`, piu` di ogni altra cosa, da lamers.Non autodefinitevi hackers.
Se valete qualcosa, saranno gli altri a considerarvi tali.
In altre parole, comportatevi da professionisti. Non datevi arie, siate disponibili a condividere esperienze e informazioni (per scopi che non siano in alcun modo contrari all'etica) e curate anche l'apparenza. Uno che posta in pubblico messaggi pieni di "hahaha" o scritti completamente in maiuscolo o a caratteri alternati dimostra solo di essere una persona immatura che crede di essere superiore agli altri per quei quattro trucchi che qualcun altro gli ha insegnato...E se non capite nulla di informatica, reti, ecc. dateci sotto a studiare o lasciate perdere. Troppe volte ho visto gente che si autodefiniva "hacker" e poi quando gli si parlava di shell, script perl, sharing
e netbios chiudevano il collegamento o cambiavano argomento e si vantavano di possedere l'ultima versione di winnuke o della crack per quake.
Unix
L'Unix Ë il sistema operativo pi˘ diffuso di Internet ma con ciÚ non Ë il pi˘ sicuro. Vi sono quasi le stesse funzionalit‡ del Dos, solo che quÏ cambiano i comandi. Sapete il Dos? No??? Mica appartenete a quella serie di persone che da quando hanno comprato il PC hanno imparato solo (e poco) il Windows? Ah vabbË, mi credevo! Ora metterÚ la spiegazione dei comandi tratta dalla Guida Italiana all'Hacking:
ls: Questo elenca il contenuto delle directory ( Ë uguale a dir nel dos ).
cat: Questo comando stampa a video il contenuto di un file. PuÚ essere usato sui file
di testo.
cd: Cambia la directory come nel dos tranne per il fatto che per tornare indietro di una directory non bisogna fare cd.. ma cd .. ( cioË separare di uno spazio il cd dai puntini ). Per il resto Ë uguale al dos.
cp: Copia un file. Sintassi "cp dalfile alfile"
mv: Questo rinomina un file. Sintassi "mv vecchionome nuovonome".
pwd: D‡ il nome della directory in cui ti trovi.
rm: Cancella un file. Sintassi "rm nomefile" oppure "rm -r nomedirectory".
write: Manda una chat ad un altro user. Sintassi "write nomeuser"; per uscire dal programma write digitare control-d.
who [w, who, whodo]: Dicono chi Ë online cioË chi Ë collegato alla macchina sulla quale fai who. Se al fianco del nome dello user c'Ë un + significa che puoi usare il comando write su di lui.
man: Ti stampa a video l'aiuto sui comandi che vuoi. Sintassi "man nomedelcomando"; ad esempio "man who". Questo comando deve essere seguito dal comando che si vuole consultare. Ad esempio man -k ricerca i comandi che hanno a che fare con la keyword.
stty: Setta le caratteristiche del tuo terminale.
sz, rz: Manda e Riceve ( send o receive ) con lo zmodem
rx, sx: Manda e Riceve con lo xmodem.
rb, sb: Manda e Riceve via batch ymodem. Questi 6 programmi possono e non possono esserci su di uno unix.
umodem: Manda e riceve con lo umodem. Esempio di trasmissione:
$ sz nomefile
ready to send..
$ rz nomefile
please send your file....
..etc..
ed: Editor di testi. Sintassi: "ed nomefile". Alcune versioni ti possono dare un prompt tipo "*" altre non lo fanno. Il piu' comune, comunque, e' il "vi".
mesg: Cambia il permesso o no di ricevere chat da altri utenti ( il + spiegato sopra nel comando write ).
cc: Il compilatore C.
chmod: Cambia i diritti di un file. Sintassi:"chmod mode nomefile". Ad esempio chmod a+r newtext: Tutti possono leggere newtext perchË a=all r=read. Questo Ë comunque spiegato oltre.
chown: Cambia il possessore e il gruppo di un file. Sintassi "chown possessore (owner) nomefile".
chgrp: Cambia il gruppo ( spiegato dopo ) di un file. Sintassi "chgrp group file"
finger: Stampa a video le informazioni basiche su un account. Sintassi: "finger nomeuser".
grep: Cerca un qualcosa dentro un file. Sintassi "grep pattern file".
mail: Questa Ë una utility molto interessante e utile. Al contrario del nome esistono molte versioni della Mail come ad esempio ELM, MUSH e MSH. Il programma basico della mail Ë comunque chiamato "mail".
La sintassi e:
"mail nomeuser@indirizzo" oppure
"mail nomeuser" oppure
"mail" oppure
"mail addr1!addr2!addr3!user"
comando "mail nomeuser@indirizzo" Ë usato per mandare una mail a qulcun'altro su di un altro sistema che solitamente Ë un altro unix ma anche dos e vax possono ricevere posta dallo unix.Quando usi "mail nomeuser@indirizzo" il sistema dove sei DEVE avere uno "smart mailer" ( conosciuto come smail ) e deve avere quello che noi chiamiamo sistem maps. Lo smart mailer cosÏ puÚ trovare l'indirizzo e mandare cosÏ la mail.Per le macchine locali basta che digiti "mail nomeuser" dove nomeuser Ë il login a cui vuoi mandare la mail.Scrivi il tuo messaggio poi premi control-d.
Per leggere le TUE mail digita "mail".
Ad esempio:
From McKrak .............................
To Inf ........................
Subject: bene ora........................
Arghhh!
?
Il ? Ë un prompt che aspetta un comando:
d - delete ( cancella )
f nomeuser - manda allo user
w fname - salva il messaggio con intestazione nel file
q - quit / update mail
x - quit ma non cambia nulla
m nomeuser - mail allo user
r - reply
[ invio ] - leggi il prossimo messaggio
+ - vai avanti di un messaggio
- : torna indietro di un messaggio
h - stampa a video le intestazioni dei messaggi che sono nella tua mailbox.
Ci sono altri comandi e per vederlo basta digitare ?. Se mandate fakemail ( false mail ) date un'occhiata anche al file /var/adm/maillog
ps: Process. Questo comando permette di vedere tutti i processi che occupano la memoria ( come ad esempio i programmi aperti ). Ogni volta che lanci un programma tu assegni un Process ID number ( PID ) per scopi di registrazione e tramite ps puoi andare a vedere cosa e' stato lanciato.Solitamente la prima voce del comando ps Ë la shell con il tuo nome.
pf -f d‡ una lunga lista di processi.
kill: "Uccide" un processo. Questo Ë usato per terminare un programma nella memoria del computer. Si possono solo uccidere i processi che si possiedono a meno che tu non sia un root o il EUID Ë lo stesso di quello che vuoi terminare ( spiegato dopo ). Se "uccidi" la tua shell, tu sei espulso fuori dal sistema.
shwomount (/usr/bin di solito ): serve per mostrare quali parti del file-system una macchina esporta sulla rete, e se seguito dall'opzione -e visualizza inoltre chi ha la possibilita' di montare tramite nfs la partizione esportata ( Se compare la scritta "everyone" siamo a posto ).
rusers: consente di sapere quali utenti sono collegati su macchine remote connesse alla tua.
Volete sapere quali sono i file speciali? Sempre la mitica guida italiana all'Hacking a dirvelo:
UNA VOLTA DENTRO??? SPECIALI FILE...
/etc/passwd: Questo Ë il pi˘ importante file su di uno unix poichË contiene le password e gli account validi per poter entrare nel sistema. Il formato per il passwd file Ë questo:
nomeuser:password:UserID:GroupID:descrizione( o vero nome ):homedir:shell
Ci sono due esempi da fare:
infectedm:89fGc%^&a,Ty:100:100:InfectedMachine:/usr/infectedm:/bin/sh
demo::101:100:Test Account:/usr/demo:/usr/sh
Prendiamo in considerazione il primo esempio:
Il primo campo dove c'Ë scritto infectedm si riferisce al fatto che infectedm Ë uno user valido. Il secondo campo dovrebbe contenere la password ma Ë criptata con il metodo di criptazione DES. Potresti anche trovare qualche carattere tipo * al posto della password e se lo trovi ( cosa praticamente ormai certa nei sistemi odierni ) significa che la password Ë shadowed ( ombrata ) cioË Ë nascosta e solamente il root puÚ andare a vedere l'originale. Per combattare quest'ultima "minaccia" si puÚ usare un programma chiamato ypcat ( vedi sotto )che gira sui sistemi operativi SunOS.
Parentesi:
Le password shadowed sono presenti in due casi: Il sistema e' stato reso sicuro ( trusted )
Sono installate le YellowPage e in questo caso si puo' utilizzare il comando ypcat.
Prendiamo ora come esempio il secondo che avevamo fatto sopra: qua possiamo notare che l'account Ë privo di password e quindi inserendo ( come detto sopra ) il nome dell'account ( in quel caso era demo ) e premendo invio si potr‡ accedere al sistema senza bisogno di inserire la password.
/etc/group: Questo file contiene i gruppi validi. La sintassi solitamente Ë:
nomegruppo:password:groupid:users nel gruppo. Se vedi uno spazio bianco dove dovrebbe stare la password, puoi diventare parte del gruppo usando l'utility "newgrp". Comunque ci sono alcuni casi in cui a solo certi users Ë permesso usare il comando "newgrp" per poter accedere al gruppo.A questo proposito voglio specificare che se l'ultima riga cioË "users nel gruppo" Ë bianca significa che tutti possono inserirsi; al contrario se c'Ë scritto qualcosa significa che solo quello user o quegli users possono usare il comando e inserirsi. Apro una piccola parentesi sul comando "newgrp": questo Ë un comando che puÚ cambiare la tua attuale group id in una che tu specifichi. La sintassi Ë "newgrp nomegruppo".
/etc/hosts: Questo file contiene la lista degli host che sono connessi attraverso un hardware network ( tipo un x.25 link ) o, qualche volta anche quelli connessi attraverso UUCP. Questo Ë un ottimo file quando vuoi hackerare un grande network e infatti ti dice in che sistemi puoi usare la rshell ( remote shell ) oppure rlogin e il telnet o qualsiasi altro ethernet/x.25 program.
/usr/adm/sulog ( oppure su_log ): Il file sulog puÚ essere trovato in molte directory ma solitamente Ë in questa. Questo file Ë ciÚ che dice la parola stessa, un log file per il programma SU. Infatti questo registra ogni user ( e ogni suo dato compreso da dove chiama ) che usufruisce del programma SU.Se devi usare questo programma per entrare nel sistema cerca questo file e prova ad editarlo cancellando cosÏ le tue tracce.
/usr/adm/loginlog
/usr/adm/acct/loginlog: Questo Ë un log file ( per non dire IL log file ) e registra le tracce di ogni persona che si inserisce all'interno del sistema. E' un file di sicurezza per verificare le persone che hanno usufruito del sistema.
A volte non esiste neppure sul sistema.
/usr/adm/errlog: Questo Ë un error log. PuÚ essere ovunque sul sistema. Questo registra le tracce di ogni chiamata errata grave e non. Di solito contiene un codice che classifica le entrate sbagliate. V‡ da 1 a 10.Quando si hackera un computer in genere questo file lo classifica con il numero 6; il numero 10 Ë il system crash.Dopo che sei penetrato in un sistema cancella le tue tracce anche su questo file.
/usr/adm/culog: Questo file contiene le informazioni su chi ha usato il programma CU, da dove ha chiamato, chi era, ecc.
Un altro file per la sicurezza del sistema.
/usr/mail/<userLogin>: Questo Ë dove il programma mail registra le lettere di un utente. Per leggere una particolare mailbox devi essere quello user, uno user nel gruppo "mail" o un root. Ogni mailbox ha un nome. Se si trova questo file leggere bene i nomi scritti qua perchË possono benissimo essere gli account degli users.
/etc/shadow: Il file di cui parlavo prima cioË il file shadowed dove ci sono le password ombrate.
/var/adm/maillog: registra la partenza e la destinazione ( credo ) delle mail.
Comunque consiglio di leggervi la guida italiana all'hacking di Unix e la guida italiana all'hacking per capire un po' di pi˘. L'Unix non si impara soltanto leggendo i comandi principali e sapendo i file di configurazione. Ma dovremo anche imparare a mettere delle backdoors e sapere come potremo nascondere le nostre traccie.
Come crakkare le password di unix
Molte volte mi Ë capitato di trovarmi dinanzi ad un file etc/passwd e ho cercato di crakkare una password. Come? Allora per prima cosa procuratevi il programma John The Ripper. Per trovarlo basta che andate a http://astalavista.box.sk che sarebbe un motore di ricerca hacker, e mettete come oggetto di ricerca il suddetto programma oppure andate a http://neworder.box.sk.
Una volta procurato siete a met‡ dell'opera (sempre se avete gi‡ preso il file etc/passwd). Il programma, dopo che avrete scritto una lista di password in un file .txt, compara il file .txt con il file etc/passwd e cerca di trovarne una giusta. Se le password sono shadowed potete utilizzare un'utility dell'ultima versione di John chiamata Unshadow che, anche se non ho verificato come e se funziona, credo che la sua funzionalit‡ Ë quella di scoprire dov'Ë nascosto il file shadow. Anche qui, per approfondire i concetti, vi consiglio di leggervi una guida chiamata CrackUnixPass a cura di LordKasko.
Utilizzare il Telnet
Il Telnet non Ë nient'altro che un emulatore di terminale con il quale potrete collegarvi ad altri siti mettendo il loro indirizzo IP oppure il loro indirizzo web. Esistono vari tipi di Telnet ma parleremo di quello per windows. Per avviarlo basta andare a esegui e scrivere Telnet. Vi troverete in una finestra, ora per connetterci ad un sito andiamo sul men˘ Connetti e clicchiamo su Sistema Remoto. In NOME HOST mettiamo il sito che vorremo attaccare o semplicemente controllare che sistema operativo usa. In PORTA ci mettiamo il numero della porta a cui vogliamo accedere. Volete sapere quali sono i servizi e le porte di ognuno? Questo Ë il file di ciÚ che avete bisogno. Non dimenticatevi che se come porta rimarrete telnet si collegher‡ all'interfaccia telnet del server. In questo modo, dipende da che sistema operativo Ë installato sul quel server, ci dovrebbe chiedere il login e la password. Prima cosa per tentare di procurarci il login e la password dovremo avere pi˘ informazioni sul server e sui vari utenti. Potremo rubare la password di un utente se la riusciremo a scoprire e in questo modo potremo entrare tranquillamente fingendo di essere lui. Per poter avere pi˘ informazioni riguardanti quel server potremo fingerarlo, cioË usare:
finger @nomeserver.com o meglio potremo fingerare i vari utenti.
Facendo finger perÚ diamo il nostro IP al server e noi non vogliamo che succeda questo vero? Dunque potremo usare:
finger @nomeserver.com @altroserver.com
In questo modo diamo al server a cui ci siamo collegati l'indirizzo ip di un altro server. Ma pensandoci bene finger Ë un comando molto potente che ci permette anche di ritoccare i files. E se noi faremo crashare il server attraverso finger potremo avere accesso root. Hmmmm, interessante! Fate in questo modo:
Prendete il fido Telnet e collegatevi al server mettendo come porta 79 che corrisponde al servizio finger. Ora, assicuriamoci prima che il server abbia installato unix e abbia attivo il servizio finger, digiteremo:
/// seguito dal comando CTRL-S (funzione freeze cioË che congela il server)
In questo modo avremo il server in mano nostra. Alcuni server perÚ possono anche crashare se apriamo molte volte un collegamento al sito sempre usando come porta 79. Provate, gente, provate!
Prima di far tutto questo (ahoo, e mo' m'ho dici) dovrete imparare nascondere il vostro IP e cancellare le vostre tracce altrimenti vi farete subito beccare. Per nascondere il vostro IP Ë facile: procuratevi una shell su una delle tante BBS che offrono un accesso Telnet, cioË mettendo come porta telnet. Per trovare una bbs che offre un accesso tramite telnet andate in un motore di ricerca e mettete come oggetto BBS telnet. Ora che l'avete trovata, effettuate un bounce (in inglese, rimbalzo) cioË una volta collegati attraverso Telnet alla bbs, ricollegatevi dalla bbs, riutilizzando telnet, alla bbs stessa sempre che quest'ultima metta a disposizione Telnet. In questo modo siete inintercettabili. Telnet quÏ dovr‡ essere usato in questo modo:
telnet nomeserver.com:porta oppure telnet nomeserver.com porta
La differenza Ë che nel primo vi sono i due punti. Comunque per cancellare le vostre tracce dovrete avere l'accesso di scrittura ai file, quindi dovrete essere root, e dovrete editare il file Log, quelli che prima sono stati elencati.
Linux, perchË dovrei installarmelo?
Linux e' una implementazione gratuita di UNIX per personal computer (386-Pentium PRO), Digital Alpha, PowerPC, Sun SPARC, Apple Macintosh, Atari ST/TT, Amiga, MIPS, che supporta pieno multitasking, multi-user, multi-threading, X Windows, TCP/IP, ottima capacita' di comunicazione con altri sistemi operativi (quali quelli della Microsoft, Apple, Novell) e molto altro ancora. Le sue radici sono profondamente radicate in Internet. Le prime versioni del programma sono state sviluppate interamente da Linus Torvalds presso l'Universita' di Helsinki in Finlandia, ma cio' che rende Linux cosi' diverso e' il fatto di essere cresciuto grazie all'aiuto di moltissimi ed eterogenei gruppi di programmatori UNIX ed esperti di Sistemi Operativi che hanno messo a disposizione il codice da loro prodotto, gratuitamente. Questa eterogeneita' si riferisce sia alle competenze tecniche e al settore di provenienza che alla dislocazione geografica.
Affinche' queste comunita' di programmatori potessero lavorare insieme era necessario un efficiente strumento di comunicazione. Lo strumento fu Internet ed essendo Linux il sistema operativo scelto da queste persone, significa che gli strumenti e le utility necessarie ad utilizzare la Rete furono tra le prime a comparire. Oltre ad essere sviluppate appositamente per Linux, molte delle applicazioni furono portate da quello che era il miglior software disponibile in quel momento sul mercato.
Per esempio, il compilatore C e' gcc (della Free Software Foundation): si tratta di un compilatore che viene comunemente utilizzato su piattaforma HP e Sun.
In 7 anni Linux e' diventato il sistema operativo piu' evoluto tecnicamente dell'intera categoria e - a causa della disponibilita' dei sorgenti - e' diventato il punto di riferimento per lo sviluppo del kernel da parte di Microsoft e SCO. Inoltre molti degli sviluppatori di Solaris/QNX/AIX/SCO e NT, quando vanno a casa la sera - riscrivono e aggiungono le loro uniche e talvolta proprietarie tecnologie nel codice pubblico di Linux in modo che tutti gli altri possano utilizzarle. Dovrete installare il Linux perchË avete bisogno di fare pratica. Per scoprire le varie opzioni di un comando baster‡ utilizzare: man comando. Se avrete fatto abbastanza pratica non vi troverete in difficolt‡ quando, una volta entrati in un sito, dovrete cancellare i file log o rimanere delle backdoors.
I principali siti da cui e' possibile scaricare linux via ftp sono:
textual name numeric address linux directory
============================= =============== ===============
tsx-11.mit.edu 18.172.1.2 /pub/linux
sunsite.unc.edu 152.2.22.81 /pub/Linux
ftp.funet.fi 128.214.248.6 /pub/OS/Linux
net.tamu.edu 128.194.177.1 /pub/linux
ftp.mcc.ac.uk 130.88.203.12 /pub/linux
src.doc.ic.ac.uk 146.169.2.1 /packages/linux
fgb1.fgb.mw.tu-muenchen.de 129.187.200.1 /pub/linux
ftp.informatik.tu-muenchen.de 131.159.0.110 /pub/comp/os/linux
ftp.dfv.rwth-aachen.de 137.226.4.111 /pub/linux
ftp.informatik.rwth-aachen.de 137.226.225.3 /pub/Linux
ftp.Germany.EU.net 192.76.144.75 /pub/os/Linux
ftp.ibp.fr 132.227.60.2 /pub/linux
ftp.uu.net 137.39.1.9 /systems/unix/linux
wuarchive.wustl.edu 128.252.135.4 mirrors/linux
ftp.win.tue.nl 131.155.70.100 /pub/linux
ftp.stack.urc.tue.nl 131.155.2.71 /pub/linux
srawgw.sra.co.jp 133.137.4.3 /pub/os/linux
cair.kaist.ac.kr /pub/Linux
ftp.denet.dk 129.142.6.74 /pub/OS/linux
NCTUCCCA.edu.tw 140.111.1.10 /Operating-Systems/Linux
nic.switch.ch 130.59.1.40 /mirror/linux
cnuce_arch.cnr.it 131.114.1.10 /pub/Linux
ftp.monash.edu.au 130.194.11.8 /pub/linux
ftp.dstc.edu.au 130.102.181.31 /pub/linux
ftp.sydutech.usyd.edu.au 129.78.192.2 /pub/linux
In passato l'installazione di Linux era un po' piu' complicata rispetto all'installazione degli altri sistemi operativi. La ragione principale di cio' e' che Linux consente di ottimizzare in maniera molto fine il sistema operativo in funzione del hardware che si ha a disposizione. Durante l'installazione - quindi - era necessario conoscere a fondo il proprio sistema (e il funzionamento dei sistemi operativi) per essere in grado di effettuare le giuste scelte.
Oggi, tuttavia, anche grazie alle nuove funzionalita' del kernel 2.0 e il sup- porto del plug 'n play l'installazione e' diventata molto piu' semplice. Pper una spiegazione dettagliata (con tanto di screenshot) consiglio gli ottimi Appunti su Linux
Installazione RedHat ildp.psy.unipd.it/AppuntiLinux/al-10.html
Installazione Slackware ildp.psy.unipd.it/AppuntiLinux/al-9.html
Molta documentazione su Linux in lingua italiana E' disponibile presso: www.pluto.linux.it/ildp
Installatelo, che fa bene alla salute! (commento del Dot. Urkes )
Come posso rendermi anonimo?
Ogni volta, mentre navighiamo sul web, che visitiamo un sito gli lasciamo 'gratuitamente' il nostro IP e ciÚ, specialmente se sar‡ un sito che poi vorremo attaccare, Ë molto fastidioso. Per rimediare a questo inconveniente dovremo utilizzare un proxy server. Un proxy Ë un server che non registra l'ip cioË invece di collegarci noi al sito faremo collegare lui in modo che l'ip che avr‡ il server che vorremo visitare sar‡ quello del proxy anzichË il nostro. Diciamo che Ë una tecnica di bounce applicata al web. PerÚ Ë meglio utilizzare pi˘ proxy server in modo di renderci completamente invisibili. Per trovare dei proxy potremo utilizzare dei motori di ricerca che permettono la ricerca avanzata e trovare tutti i siti che inziano con la parola proxy. Di solito le porte sono: 80, 81, 8000, 8001, 8080 e 800. Provatene ad inserire una se poi ci vuole molto tempo per caricare una pagina, provatene un'altra. Allora il procedimento Ë semplice: se avete netscape andate sul menu preferences, selezionate advanced e poi proxies, quindi manual proxy configuration e poi il bottone view. Ora potrete inserire il nome del server e poi la porta. Non dimenticatevi che per essere completamente invisibili dovrete inserire pi˘ server proxy in questo modo:
http://primo_proxy:porta/http://secondo_proxy:porta/http://www.sito.com/
Se avete installato Internet Explorer andate su visualizza e cliccate su opzioni. Scegliete il campo connessione e vedrete che ci sar‡ un'opzione chiamata 'Accedi ad Internet tramite un server proxy'. Abilitate questa opzione e scrivete l'indirizzo del proxy e la porta da usare. Se poi vorrete essere pi˘ sicuri inserite pi˘ indirizzi secondo il procedimento che vi ho fatto vedere 4 righi fa. Noterete che sia in Netscape che in Internet Explorer c'Ë la possibilit‡ di abilitare il proxy anche su servizi come ftp, gopher, secure e socks. Ora se avrete intenzione di utilizzare quei servizi, scrivete il nome del proxy che prima avrete trovato anche in questi campi. Mentre se avrete intenzione di andare su un sito ftp ma utilizzando un programma come Bullet Ftp o come WS-FTP le operazioni per modificare tali client sono quasi identiche. Que..questo Ë tutto amici!
Trojan: cosa sono e come posso crearne uno?
I Trojan sono una serie di istruzioni che vengono fatte eseguire dalla vittima inconsapevolmente. Talvolta possono formattare l'hard disk o altri scritti in linguaggio C che, messi opportunamente su un server, possono mandarvi via e-mail tutti i login e le password degli utenti. Se avrete bravura con il Linguaggio C, con un po' di fantasia, riuscirete a crearne uno per ogni esigenza. Se non conoscete il linguaggio C non scoraggiatevi si possono creare in qualsiasi modo. Nei file batch, in visual basic, in Pascal, etc. Per crearne uno terra terra potete fare ciÚ:
- Create un file BAT con le istruzioni che vorrete far essere eseguite sul computer vittima
- Procuratevi l'utility BAT2COM che serve a trasformare un file BAT in COM
- Rinominate un file mettendoci un nome credibile
- Per rendere il tutto ancora pi˘ realistico create un file vuoto di qualche kb. Come? In questo modo: andate in dos e scrivete:
DEBUG NOME
-F 100,F000,0
-RCX
:EA60
-W
-Qsi creer‡ un file di 60 kb con il nome di NOME. Ora utilizzate l'opzione: copy /b file.com+nome cheneso.com dove file.com sar‡ il file con i comandi, nome sar‡ il file che abbiamo creato con debug mentre cheneso.com sar‡ il file finale che vorrete creare.
- Prima di zippare il tutto create un file di testo dove fate finta di spiegare cosa c'Ë nel file com oppure se siete abili con l'ascii potrete far finta che il file Ë stato scaricato da una BBS.
- Zippate il tutto.
Ora Ë venuto il momento di decidere a chi affibbiare questo file. L'unica cosa che vorrei dirvi Ë che non dovrete usarlo contro persone normali perchË pensate che una cosa del genere puÚ capitare anche a voi. Andate su irc e prendete di mira quei canali dove ci sono solo degli stupidi lamers che tentano di nukkare ognuno. Ditegli se vorr‡ un programma che manda nuke che fanno suicidiare il modem o qualcosa del genere. Alla vostra proposta non potr‡ rifiutare e lo accetter‡. Sapete che emozione vederlo cadere da Irc perchË quello che si dovr‡ suicidiare non sar‡ il modem ma lui!
Se non avete BAT2COM non c'Ë nessun problema. ECCOLO
Pensate che una volta ne ho creato uno che quando veniva avviato si bloccava e dava un errore ma in realta sostituiva un'altro file all'autoexec.bat. Quando il poveretto riavviava il computer si vedeva prima una bella scritta di insulti e trovava l'hard disk formattato. Ma come, quando si scrive format dopo non bisogna dare la conferma? Si Ë vero ma nonna Microsoft ha incluso l'opzione /autotest che formatta l'hard disk senza chiedere la conferma. Bello eh? Dunque usai il comando: Format c: /autotest /q /u che equivale a una formattazione incondizionata ed anche veloce.
Un'ultima raccomandazione: usateli solo contro gente maligna e ricordatevi che siamo hackers non lamers!!!
Phreaking: se ne parla molto poco in Italia
Come mai in Italia si parla molto poco di Phreaking? Sar‡ perchË in Italia non Ë possibile utilizzare il blue box? Secondo me si, infatti la maggior parte dei manuali phreaking in Inglese parlano solo ed esclusivamente di blue box, red box e green box e il loro funzionamento. In Italia non Ë possibile ciÚ perchË la Telecom utilizza un sistema multifrequenza molto complesso e complicato. Ho letto da qualche parte che le schede telefoniche si ricaricano facendole passare sullo schermo di un vecchio televisore dopo averlo lasciato acceso per circa 2, 3 ore. Risultato? Sono tutte cagate! Infatti le ho provate di tutte ma ho ottenuto solo la smagnetizzazione delle stesse (e a pensare che alcune erano anche cariche, sigh). Sta' Telecom ci sta proibendo tutto anzi cerca ancora di aumentare le tariffe. Meno male che a salvarci la vita Ë arrivata Infostrada. Niente canone bimensile e le ubane si pagano anche meno. Sapete che in America in alcune zone le telefonate urbane sono gratis? Si avete capito bene, GRATIS! Ho sentito delle voci che dicevano che con l'arrivo della nuova finanziaria entrer‡ in vigore una legge che abolir‡ le urbane per internet. COOSSAAAA? Sto sbavando, speriamo che sia vero. La notte non riesco manco a dormire e mi sogno: 'Aspettando la finanziaria'. In Italia ci sono dei provider, ora non mi ricordo quali, che permettono di collegarti per un certo numero di ore alla settimana senza pagare niente e scusatemi se Ë poco, Ë pochissimo perchË settimana non significa giorno. Conoscete il progetto NetFraternity? Quello che, a patto che ti scarichi un programmino che ti fa vedere della pubblicit‡, ti paga un ora giono. Risultato? Una bella iniziativa per chi si non si collega pi˘ di un'ora al giorno. Ma chi, come me, sta collegato due tre ore al giorno e a volte anche di pi˘? Beh praticamente dobbiamo farci in culo. Sapete che con IOL Ë possibile usare lo stesso abbonamento per pi˘ persone? Basta riprovare fino a che siete dentro ed il gioco Ë fatto. Bella schifezza per un provider di grande dimensione come IOL. Avete un motorola 7500? Bene alzate il volume della ricezione e dello squillo al massimo. Disattivate lo squillo del telefono e a questo punto fate una prova. Telefonate al telefonino e, mentre il telefono emette il segnale di libero e il telefonino segnala che si sta ricevendo una chiamata, parlate dal telefono chiamante; noterete che Ë possibile comunicare in questo modo. Volete sentire le chiamate dei cellulari? Prima cosa dovrete disporre di un vecchio televisore dove Ë possibile cambiare frequenza. Selezionate la frequenza uhf e mettete i canali 70 o 83. Non Ë che si sente bene ma Ë un buon metodo per ascoltare le telefonate altrui. Metti che ascoltiamo la nostra ragazza parlare ad un uomo mentre gli dice le sue misure con conseguente scassamiento del televisore e della ragazza. Poi, solo alla fine ci accorgeremo che stava dicendo al suo sarto le misure del'ex vestito da sposa. Avete mai sentito parlare di clonazione si sim card? Ora vi spiego passo passo cosa dovrete fare per riuscire a clonare un cellulare. Per poter clonarne uno dovrete possedere almeno un serial number di un cellulare ATTIVO (cioe' che ha un contratto o una Tim card ricaricabile ATTIVA) e il numero di telefono di quel cellulare. In pratica tutto quello che dovete fare e' prendere un cellulare, sollevare la batteria, leggere il Serial Number che in genere e' accompagnato da un codice a barre, leggere il modello preciso del cellulare e infine appuntarsi anche il numero di telefono di quel cellulare. siete gia' al 50% del lavoro.
Iniziate ad entrare nel "test mode" del vostro cellulare, cosi' potrete esplorare le funzioni nascoste e le opzioni impostate dal gestore telefonico della vostra zona. Per riuscire a modificare il software di un cellulare in alcuni casi basta possedere i codici di riprogrammazione, mentre in altri casi bisogna "costruire" un cavo per interfacciare il Telefono cellulare con il vostro Personal Computer, dal quale poi lanceremo un programma di programmazione cellulare che variera' da modello a modello, ma che avra' sostanzialmente le stesse funzioni, cioe' riprogrammazione NAM. Naturalmente il modo piu' semplice per riprogrammare un cellulare e' quello di utilizzare i codici di riprogrammazione segreti, ma spesso (soprattutto grazieai nuovi sistemi di sicurezza degli stessi) diviene indispensabile costruire un cavo di interfaccia Parallelo-Piede del telefono armati di molta pazienza, cavi di rame, nastro isolante ed un paio di forbici.
Una volta inserito il codice si entra nel menu' del test mode che purtroppo varia non solo da modello a modello ma da software a software, per questo non troverete mai nulla di preciso su come sono strutturati i menu', ma potrete fare benissimo affidamento sulle vostre capacita' intuitive. Quello che dovrete fare e' in pratica riprogrammare il MIN ovvero i numero di identificazione , piu' precisamente entrare nel menu' del MIN, cancellare con il tasto C il vecchio e riscrivere il nuovo, riprogrammare il SN naturalmente con quello che ci siamo procurati, salvare le impostazioni e riavviare il cellulare. Fatto questo il vostro cellulare si dovrebbe comportare adesso come il cellulare che e' stato clonato, quindi dovrebbe squillare quando qualcuno fa quel numero e addebbitare la chiamata su quel numero, naturalmente senza che il leggittimo proprietario se ne accorga. Le uniche cose a cui dovrete prestare attenzione sono:
1) non rispondere alle chiamate in entrata
2) non abusare del cellulare, perche' se al malcapitato dovesse arrivare una bolletta esuberante egli non solo si farebbe disdire il contratto, ma la Telecom aprirebbe un'indagine utilizzando come indizi i numeri chiamati da quel telefono, con conseguente rapida gattabuia. E se quei codici non avessero funzionato? In tal caso useremo il nostro bel Pc per clonare il nostro cellulare dovendo pero' costruire un cavo che colleghi il cellulare alla porta parallela dello stesso PC.
" I think I'm paranoid! "
Irc: regole da seguire
Credo che tutti sapete cosa sia IRC e per questo non mi dilungo molto su esso ba bensÏ sulle regole da seguire. IRC Ë stato creato con lo scopo di comunicare con altre persone in real-time ma se volessimo comunicare con le persone in un altro modo. Come, per esempio, facendo degli scherzi. Un giorno mi trovavo su IRC e subito rintracciai un nuke che mi era stato mandato da un novellino; facendo la parte di quello che non sapeva niente gli comunicai se voleva l'IP di una persona che stava comunicando con noi. Egli subito accettÚ: senza accorgersi che l'IP che gli avevo dato non era di quell'altra persona ma era il suo. Sapete le risate che mi sono fatto quando ho visto quest'ultimo che lasciava IRC con una scritta DEAD SOCKET. Ah!Ah!Ah! Non Ë che sono un hacker malicious ma odio le persone che perseguitano altri mentre parlano tra loro e poi ad una simile sfida non potevo tirarmi indietro.
Consigli:
- Prima di iniziare a chattare prendete tutte le precauzioni possibili.
- Installatevi uno script. Alcuni dicono che non servono a niente ma secondo un mio parere servono eccome. Infatti in certi script Ë possibile mettere delle protezioni. Per me il migliore Ë 7th Sphere. Potete prendervelo al sito www.7thsphere.com
- Non nukkate nessuno tranne che in casi eccezionali
- Per rintracciare l' ip di una persona fate /dns Nickname. Poi andate in dos e digitate tracert + l'ip che ci siamo ricavati prima. Ora dovrebbe dare una serie di Ip, prendete il penutlimo che corrisponde al vostro obbiettivo. Potete perÚ fare anche /finger Nickname ma non sempre funziona. Se volete fare i brillanti possiamo usare un finger di un client ftp o scoprire il suo provider e ci colleghiamo con telnet al provider usando la porta 79. Dentro baster‡ digitare il nickname del povero fesso.
- Non accettate nessun file a meno che il mittente del file sia un vostro amico fidato di cui avete l' IP.
- Cercate un modo per nascondere il vostro ip. In giro ci sono molti programmi che fanno ciÚ. Eccone uno
Per avere maggiori informazioni su irc potrete scaricarvi i seguenti file ircfaq.zip e mircfq37.zip. Lo so che potevo farne a meno e che sta' gente parla male degli hacker ma prima o poi dovrete impararvi seriamente l'irc. O no?
Cracking: attrezzi del mestiere
Per fare del cracking non Ë che dobbiate per forza saper programmare ma l'importante Ë avere tanta voglia di apprendere e molta pazienza. Si puÚ dire che ciÚ Ë alla base di tutto.
Per iniziare avete bisogno di 3 cose:
-Un disasemblattore
-Un hex editor
-Una minima conoscenza di assembler (e te pareva!)
Come disassemblatore consiglio W32DASM, come hex editor uno qualsiasi ma penso questo vada bene. Mentre come conoscenza di assembler vi consiglio di avere tanta pazienza. Se non l'avete non leggete ciÚ perchË il cracking, anche quello pi˘ facile, richiede del tempo per capire cosa bisogna modificare.
ASSEMBLER (perchË È stato inventato!)
Qui visto la mia grande conoscenza dell'assembler (conosco solo 4 comandi) riporto una mini-guida all'assembler tratta dalla guida al cracking di Xoanon (consiglio di leggervela se volete approfondire il cracking).
MINI CORSO CRACKING-ORIENTED DI ASSEMBLER (ORA SI RIDE!)
Partiamo con la parte sull'assembler. Premetto che all'inizio avevo in mente di fare solo un breve excursus (senti vi' che paroloni!), ma ciÚ penso che vi avrebbe lasciato con parecchi punti interrogativi. Quindi, per evitare di essere sommerso da e-mail sull'argomento (che se il server-administrator me le becca, probabilmente mi manda alle Sughere, rinomato carcere livornese) ho pensato di farmi dare una mano da MoonShadow (lui parla in assembler!)... quindi, se un giorno andrete in galera per aver formato un cracking-group dopo esservi esaltati a leggere questo manualino, ringraziate anche lui!
Allora...iniziamo con il funzionamento dei registri principali:
[AX].... registro accumulatore, utilizzato per le operazioni matematiche e di I/O.
Tutto passa da questo registro, le funzioni di COMPARE (CMP) di solito avvengono confrontando un valore inserito da voi (es. un numero del serial number, una lettera della password, il numero riferito ad una icona da scegliere) con quello contenuto in AH, AL o in tutto il registro (non Ë perÚ una regola generale, voglio dire cioË che questi valori possono essere anche contenuti in un'altro registro, es.BX, perÚ nel 99% dei casi Ë cosÏ). Questo valore Ë qui precedentemente mosso dalla routine che vi trasferisce uno ad uno i valori (naturalmente, in HEX o in DEC) della password o del serial number.
[BX].... Viene utilizzato di solito come base o puntatore ad una locazione.
[CX].... Il contatore. Viene usato per i loops (cicli) e viene decrementato o incrementato secondo le esigenze. Di solito contiene un numero (ad es. il numero delle volte che potete provare ad inserire la password prima che il tutto si blocchi) che viene poi decrementato (con l'istruzione DEC CX oppure SUB CX,AX) ogni volta che sbagliate. Utile in questo caso eliminare queste istruzioni per poter lavorare con pi˘ tranquillit‡.
[DX].... Funzioni simili a BX.
Da notare che ognuno di questi registri puÚ essere suddiviso ulteriormente in 2 parti, ossia parte alta (es. AH,BH,ecc.) e parte bassa (AL,BL,ecc.). Quindi in questa maniera ogni "parte" del registro puÚ contenere un valore da 00 a FF (mentre il registro "intero" contiene valori da 0000 a FFFF). Facciamo un esempio: se muoviamo un valore in AX (MOV AX, 01AFh), il registro AL conterr‡ il valore AFh ed il registro AH conterr‡ invece 01h. Tutto qua!
Ora, i segment-registers:
[CS].... Il code-segment, cioË l'area di memoria nella quale si trova il codice del programma che state sodomizzando. L'indirizzo CS:IP serve ad identificare proprio l'istruzione che state per eseguire.
[DS].... Data-segment, l'area di memoria alla quale la CPU accede in lettura. i dati.
[ES].... Extra-segment, altra area di memoria alla quale la CPU accede, ma questa volta in scrittura. In pratica, la CPU legge da DS:SI e v‡ a scrivere il byte (o la word) letta in ES:SI.
[IP]..... Istruction Pointer. Cos'Ë? Semplice, l'indirizzo dell'istruzione che state per eseguire nel code segment attuale. Io di solito, durante il crakkaggio nel debugger, modifico questo registro invece del jump, in maniera da non danneggiare per il momento il programma. Ma Ë solo una mia abitudine...
[SS].... Stack-segment, area di memoria di "parcheggio" nella quale la CPU tiene nota di tutti i return-address dalle subroutines. Usando l'istruzione PUSH o POP, lo stack viene riempito o svuotato (questa ci st‡ che sia una stronzata, comunque se non Ë proprio cosÏ la funzione di queste istruzioni Ë simile..... chiederÚ a MoonShadow!).
Altri registri, ma questi li potete anche tralasciare, sono:
[SI]..... Source-index, usato insieme all'istruzione MOV. E' un puntatore all'interno di un segment (di solito DS) che viene letto dalla CPU.
[DI]..... Destination-index, anche questo usato insieme a MOV. E' un puntatore all'interno di un segment (di solito ES) dove la CPU v‡ a scrivere. Andando a vedere all'indirizzo ES:DI, se vedete che ci viene mosso qualcosa, potreste anche capitare in locazioni interessanti... (potreste trovarci addirittura la password che cercate.... boh, voi provate!)
[BP]..... Base-pointer, usato insieme allo Stack-segment.
[SP]..... Stack-pointer, altro pointer usato insieme allo Stack-segment
Una particolare nota merita il seguente registro:
[FLAG].. Nel vostro debugger, vedrete (di solito in cima) un'insieme di lettere maiuscole e minuscole (oppure illuminate o no, oppure con sotto dei numeri 0 e 1). Questi sono i flag, che servono ad indicare se un particolare jump deve avvenire o no. Logicamente, flag=0=spento flag=1=acceso. Agevoliamo un esempio (Agevoliamo TM of Enzino Iachetti)
CMP AL,2A......... confronta il valore di AL con 2A. Il risultato Ë un cambiamento dello stato del flag Z. CioË, se Ë vero il flag viene attivato (1) sennÚviene disattivato (0).
JZ 8EDF........... salta -SE- il flag Z=1 (quindi se AL=2A)
Comunque, io di solito non li guardo mai,anche perchË tutti i debugger (di solito) ti dicono con una freccetta se il jump avviene o no..... ma Ë una mia abitudine.
Piaciuti i registri? Ganzi eh? (comunque non preoccupatevi, si puÚ crakkare bene anche senza conoscerli molto... io stesso di solito, a meno che il programma non sia una brutta bestia, non li guardo nemmeno..... poi vi spiego)
Ora, qualcosa sulle istruzioni (altra sigaretta.... Ulp! Le ho quasi finite!)
[MOV]..... E' un'istruzione le cui funzioni sono fondamentali nel cracking. Difatti, molte volte vi ritroverete a dover magari muovere un valore giusto in una locazione semplicemente cambiando un CMP in un MOV (poi vi spiego.... non temete). La sua sintassi Ë: MOV [destination],[source]
es 1. MOV AX,BX ----------> muove il valore di BX in AX
es 2. MOV CX,[0400] ----------> muove i due bytes contenuti all'indirizzo specificato (DS:0400) in CX. In questo caso se dumpate a DS:0400 trovate lo stesso valore di CX, solo rovesciato (es. se in CX c'Ë 002Ah, troverete 2A00h); non sÚ perchË, (stasera non ho fame), ma Ë cosÏ....
es 3. MOV AL,DL ----------> muove la parte bassa di DX nella parte bassa di AX
es 4. MOV [ES:300],AX ---------> muove il valore di AX nella locazione specificata. Notare che se ES non Ë menzionato, si usa DS. Se prima di una istruzione del genere si muove un valore in BX (es. 03) questo viene usato come base da aggiungere all'indirizzo specificato. Quindi, in questo caso, il valore di AX verrebbe mosso in ES:300+BX = ES:303.
[CMP]..... Semplicemente, confronta due valori in memoria, siano essi registri oppure bytes, cambiando di conseguenza il flag relativo. La sintassi, secondo i casi, puÚ essere:
es 1. CMP AX,01 -----> confronta AX con 01
es 2. CMP AX,BX -----> confronta AX con BX
es 3. CMP AX,[0550] -----> confronta AX con i 2 bytes a DS:0550
(eccetera eccetera...)
Questa funzione funziona (bello!) come una sottrazione source-destination, cioË:
ponendo AX=20 e BX=21, il risultato del CMP AX,BX sar‡ 20-21=-1. Il risultato di questa sottrazione attiver‡ il flag CARRY (C), attivato quando si sottrae un valore pi˘ grande da uno pi˘ piccolo; se invece la sottrazione non d‡ risultato negativo, il flag rimane 0 (disattivato). Dal punto di vista crakkistico, le istruzioni CMP sono usate *SEMPRE* per verificare il vostro input, oppure per far sapere al programma se Ë registrato o meno. Quindi, truffando il CMP si puÚ benissimo far credere al tapino una cosa per un'altra!
[JMP].... Lo troverete *SEMPRE* dopo il CMP, nelle varie forme. La pi˘ semplice, e ovvia, Ë la forma JMP <indirizzo>, che naturalmente provoca un salto all'indirizzo desiderato, quali che siano i valori dei flags dati dal CMP. Per quanto riguarda l'indirizzo, questo puÚ essere nello stesso CS (JMP 0AF4) oppure in un'altro (JMP 2000:18A0 oppure JMP DWORD PTR ES:[DI], che vi spedir‡ alla locazione contenuta in ES:DI. Ma sono solo alcuni esempi). Questa comunque Ë l'istruzione che userete pi˘ spesso (anzi, mi sbilancio: nel 99% dei casi) nei vostri scopi pirateschi. Difatti, se la vostra protezione, ad esempio, controlla una locazione e poi f‡ un JNZ che riporta il programma all'inserimento della password/serialnumber, basta che sostituiate il jump condizionale con un JMP, e..... et voil‡! Comunque, se ne riparla dopo! Ora, vi agevolo la lista dei vari jump condizionali, spudoratamente copiata dal Cracking Manual di The Cyborg (quindi, grazie tante, leggetelo che Ë bellino, ma il mio Ë meglio perchË Ë pi˘ aggiornato!). Dunque, supponendo un CMP AX,BX, si possono avere i seguenti casi:
(Z,O,S,C,P sono i flags che i jump vanno a controllare)
Istruzione Definizione, condizione, flag
JNZ 030A (Jump if not zero, AX diverso da BX, Z=0)
JNE 030A (Jump if not equal, identico a JNZ)
JZ 030A (Jump if zero, AX=BX, Z=1)
JE 030A (Jump if equal, identico a JNZ)
JB 030A (Jump if below, AX<BX, C=1)
JA 030A (Jump if above, AX>BX, C=0)
JL 030A (Jump if less, AX<BX, S diverso da O)
JNGE 030A (Jump if not greater or equal, AX<=BX, S diverso da O)
JGE 030A (Jump if greater or equal, AX>=BX, S=O)
JNL 030A (Jump if not less, in pratica uguale a JGE)
JLE 030A (Jump if less or equal, AX<=BX Z=1 oppure S=F)
JNG 030A (Jump if not greater, come JLE)
JG 030A (Jump if greater, AX>BX Z=0 oppure S=O)
JNLE 030A (Jump if not less or equal, AX>=BX Z=0 oppure S=O)
JS 030A (Jump if sign, /, S=1)
JNS 030A (Jump if not sign, /, S=0)
JC 030A (Jump if carry, /, C=1)
JNC 030A (Jump if not carry, /, C=0)
JO 030A (Jump if overflow, /, O=1)
JNO 030A (Jump if not overflow, /, O=0)
JP 030A (Jump if parity, /, P=1)
JPE 030A (Jump if parity even, come JP)
JNP 030A (Jump if no parity, /, P=0)
JPO 030A (Jump if no parity odd, come JNP)
(ce ne sarebbero altri, ma nella lista da cui li ho copiati non venivano menzionati.)
Puff,Puff..... spero di non aver scritto minchiate! (tanto poi lo riguarda MoonShadow!). E comunque, non fatevici tante seghe mentali.... il funzionamento dei jump lo imparerete strada facendo.... nemmeno io mi ricordo a memoria il funzionamento di tutti questi jmp (anzi, a dire il vero non vado oltre le prime 5/6 righe!).
[LOOP]..... Indica un ciclo, che si ripete per CX volte (naturalmente, CX decrementa ogni volta che trova questa istruzione). Per quanto riguarda il formato, Ë LOOP <indirizzo>, che indica appunto l'inizio del LOOP dove questo ogni volta ritorna finchË CX non diventa 0. Istruzione piuttosto pallosa da debuggare, utile in questo caso la funzione "Breakpoint Here" dei debugger, che permette di settare un breakpoint all'istruzione successiva e ripartire direttamente da l‡ senza sorbirsi tutto il ciclo (sempre che funzioni, sennÚ ve lo dovete puppare tutto).
[REP]..... Repeat. Stesso discorso del loop per quanto riguarda la pallosit‡ e l'uso della funzione "Here". Indica il ripetersi di istruzioni MOVS, LODS, STOS (quindi si trover‡ nel formato REP MOVS, REP LODS, REP STOS). Le istruzioni suddette vengono ripetute CX volte.
[MOVSB]..... Muove un byte dall'indirizzo DS:SI all'indirizzo ES:SI.
[MOVSW]..... Stesso discorso, ma per una word (4 bytes)
[LODSB/LODSW]..... Con queste istruzioni, viene letto un byte o una word residenti in memoria all'indirizzo DS:SI. Il byte o la word in questione viene messo in AL (o in tutto AX, naturalmente, se Ë una word)
[STOSB/STOSW]..... Se le istruzioni prima leggevano, questa cosa f‡? mah..... forse scrive! Difatti, scrive il byte (o la word) in AL (o AX se word) all'indirizzo ES:SI.
[CALL]...... Richiama una subroutine, e dopo l'esecuzione di questa torna all'indirizzo successivo alla CALL stessa (tramite un RET/RETF). Esempio:
CALL 68AB ----> esegue la subroutine a CS:68AB
subroutine:
CS:68AB ......
68AE ......
68B0 ......
68B3 RET ----> torna all'istruzione successiva a CALL 68AB
Una call puÚ essere anche nel formato CALL FAR (come anche il JMP),cioË viene eseguita una subroutine ad un'indirizzo in un altro CS. Nei vostri primi approcci crakkistici, se avete la fortuna di trovare la CALL che salta *DIRETTAMENTE E SOLO* alla protezione, potete benissimo togliere quella. Pi˘ in l‡ sar‡ meglio che impariate a districarvi con i jump e i compare, identificando e modificando quelli relativi al solo controllo della protezione. Difatti, se per caso quella CALL chiamasse una subroutine che contiene la protezione ma anche istruzioni necessarie al buon funzionamento del programma, eliminandola siete fottuti.... (cosa che ho imparato dopo mooooooooooooooolto tempo e moooooooooooolte figure penose distribuendo crack che si sproteggevano il programma, ma che avevano anche "alcuni" effetti collaterali!)
[INT]...... Chiama un interrupt (tipo una CALL ma non relativa al programma) , con una specifica funzione assegnata da un valore, di solito mosso in AX. E' utile ad esempio monitorare l'interrupt 13 con il debugger (nel caso si voglia sproteggere un programma che accede al floppy), oppure l'interrupt 16 con funzione 10 (AX=10) nel caso il programma attenda la pressione di un tasto.... Utile ma non indispensabile, si crakka anche senza usare questa funzione del debugger.....
FFFFFFFFFFFFIIIIIIIIIIIIINNNNNNNNNEEEEEEEEE!!!!!!!!!!!!!
Consiglio di leggervi questa guida che vi aiuter‡ molto. Sapete, Ë una bella soddisfazione crakkare da soli il proprio programma. Comunque, anche se non dovrei dirvelo, se non ci riuscite potete sempre andare su http://astalavista.box.sk e trovare il crack per il programma. Vi consiglio sempre di andarci in casi estremi, perchË, anche se all'inizio potr‡ sembrare difficile e potrebbe anche non riuscire, col tempo acquisirete bravura e potrete distribuire i crack ai vostri amici (non fate nessuna figura di merda!).
Cracking: come posso togliere la protezione a un gioco?
Per poter togliere la protezione ad un gioco non Ë molto difficile. Allora vi sono molti esempi da fare:
Il primo consiste nel copiare l'intero contenuto del cd sull'hard disk e far credere al PC che l'unita del cd-rom corrisponde alla directory del cd-rom. Come? In questo modo:
- Create sull'hard-disk una directory col nome del gioco
- Copiate tutto il contenuto del CD in quella directory e cancellate eventuali file inutili (tipo directx, etc)
- Vedere se in questo modo(senza installarlo) parte. A me World Cup 98 Ë partito cosÏ!
- Se non parte non preoccupatevi; andate nell'autoexec.bat, cancellate l'MSCDEX, aggiungete le seguenti righe:
SUBST D: DIRECTORY FAKECD DIRECTORY /L:D
Ora dovrete modificare la lettera del cdrom, se a voi cambia, e al posto di directory inserite la directory nella quale avete copiato il gioco. Ora riavviate, andate in D: (o E:) e fate partire il gioco.
Il subst Ë un comando del dos e serve ad associare un percorso di ricerca ad una lettera di unit‡. Mentre FAKECD Ë un utility, se non l'avete ECCOLA, che serve ad emulare il CD-ROM sull'unit‡ specificata. Dimenticavo di dirvi che questo metodo funziona solo sotto dos. Per farlo funzionare in windows dovrete eliminare il cdrom oppure dovrete farlo partire in modalit‡ provvisoria e, dentro il win, digitate autoexec.bat. Ma ci sono altri metodi sotto win:
- Usare il regedit che sta nella cartella windows. Andare in HKEY_LOCAL_MACHINE e dovreste trovare il suddetto gioco. Ora se avrete molta fortuna incontrate delle parti dove modificare, per esempio, il path del CD.
- Usate un programma chiamato Virtual Cd. I giochi che si possono fregare con questo programma sono tantissimi quindi cercate di procurarvelo. Come funziona? Be Ë semplicissimo, basta lanciare il programma, inserire il cd da "craccare" e al resto pensa tutto lui! Praticamente il programma compatta in un unico file tutto il contenuto del cd e quando noi vogliamo giocare con il gioco in questione basta che lanciamo il virtual cd, cliccare sul gioco desiderato e via! Come ho gi‡ detto poche righe sopra secondo me questo programma Ë quello che d‡ pi˘ soddisfazioni dal punto di vista di pratico in quanto si riescono a craccare moltissimi giochi. Ci sono perÚ dei contro:
- per fare funzionare i giochi in questione io devo usare sempre il suddetto programma
- il programma mi fa una sorta di immagine dell'intero cd includendo, quind,i anche cose che a volte possono risultare inutili tipo i demo o le directx, e io non le posso eliminare.CiÚ causa occupazione di spazio su HD del tutto inutile
- funziona solo sotto windows 95. - A volte alcuni giochi quando vengono installati creano generalmente nella directory principale di installazione dei file con estensione .cfg o dei file setup.xxx (xxx Ë l'estensione). Io vi consiglio di dare sempre uno sguardo con il comune edit del Dos a questi file. PerchË fare ciÚ ? Semplice a volte all'interno di questi file troviamo diciture tipo:
cdpath= d:\
o cd= d:\
Tutto quello che dobbiamo fare Ë cambiare queste diciture con altre di nostro comodo tipo:
cdpatch= c:\gioco1
o\par cd= c:\gioco1
Dove gioco1 Ë ad esempio la directory in cui noi abbiamo copiato il gioco.
E se tutto va bene abbiamo saltato il cd-check. - In certi casi basta cambiare il label dell'hard disk. CioË andare in d:, vedere il label e rinominare con quest'ultimo il label dell'hard disk. Esempio tipico di ciÚ Ë MDK.
- Se nessuno di questi metodi ha funzionato fate una cosa: datevi all'ippica! No, scherzavo. Dicevo se nessuno di questi metodi ha funzionato utilizzate questo che Ë il pi˘ difficile ma, se avete imparato le nozioni di assembler che c'erano prima, avrete delle grandi soddisfazioni.
Per prima cosa esaminare in che punto il gioco richiede il cd, cioË far partire il file eseguibile del gioco e appuntarsi su un foglietto la frase che vi mostrer‡ il gioco per richiedere il cdrom. Ora se non avete fatto una copia del file exe, fatela! Prendete l'utile W32DASM, un'utility che serve a disassemblare i file, poi andate su refs ed infine su string data reference. Qui cercate la frase che prima vi siete segnati e, una volta trovata, cliccateci sopra due volte. Il programma vi porter‡ al punto che desiderate. Ora, nella maggior parte dei casi, di dovr‡ controllare un po' il procedimento che fa' il programma quanto richiede il cd-check. Esempio:
-Apre finestra che dice di inserire il cd
-Controlla se c'Ë
-Se c'Ë salta al procedimento che fa continuare il gioco
-Altrimenti esce dal programma e torna in windows
Allora in questo caso (molto banale) baster‡ inserire dei comandi che dicono al programma di non aprire la finestra e di saltare direttamente al procedimento che fa continuare il gioco. PerÚ in W32DASM non Ë possibile programmare in assembler e per cambiare le istruzioni dovrete andare sulla linea da cambiare, guardare nella parte bassa dello schermo e segnarvi a quale offset corrisponde. Aprire l'editor esadecimale, andare sull'offset e cambiare il valore. Ora vi posso dire alcuni consigli su come procedere:
-la maggior parte delle volte vi baster‡ cambiare un jne in je cioË una volta trovato l'offset, nell'editor esadecimale, cambiare 75 con 74 oppure 75 con EB.
-le prime volte andate per tentativi: di solito per chiamare la finestra di'errore c'Ë una CALL. Segnatevi l'indirizzo che sta vicino alla call, andate su goto, poi su goto code location e inserite l'indirizzo da cercare (via Hacker N∞¢). Vi troverete davanti la chiamata e se c'Ë un jne, beh sapete cosa fare!
"...tu sei un hacker che canta e mi avvisa che Ë il primo del mese, se un nuke ti colpisse qui nel centro di Varese.." Sottotono - Tranquillo(come un hacker)
Regole di vita
Come tutti i giornali, libri, testi, codici ed altro che si rispetti anche questo magazine purtroppo ha una fine. Spero che vi sia di aiuto e che non vi siete troppo scandalizzati a leggerlo. PerÚ non credete che in questo modo siete degli hacker. Non potete leggerlo tutto e alla fine dire di essere finalmente degli hacker. Io stesso non mi definisco un hacker perchË autodefinirsi hacker solo per avere letto molto e per aver fatto un sito hacker Ë da stupidi. In alcune parti di questo giornale ho tratto degli articoli da sopra altre riviste o guide non per il motivo che io sono ignorante e che non so nemmeno di cosa sto parlando ma perchË ritengo che quello persone lo avessero spiegato molto meglio di come l'avrei spiegato io. Quello che ho descritto qui lo potete trovare ovunque su internet, basta fare un po' di ricerca. Ho cercato di parlare in modo semplice e chiaro. L'ho fatto perchË conosco molte persone che aspirano a diventare hackers ma si trovano in difficolt‡ davanti a dei termini. Ora se tu che stai leggendo sei un hacker ti considero un amico, uno che sa pi˘ di me mentre se tu che stai leggendo sei un aspirante hacker ti considero lo stesso un amico perchË io avrei voluto molto un amico hacker appena iniziai questa passione, bene ora non l'hai trovato. Ehm!
Prima di compiere un'azione trova il motivo della stessa
Hacker non Ë colui che cerca di entrare nei dati di una banca