![]() | ||||||||||
![]() | ![]() | |||||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
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".
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:
1) Non dannegiare mai un sistema. Se lo fai potresti fregarti con le tue stesse mani;
2) 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;
3) Non distribuire i tuoi progetti sull'hacking a nessuno a cui non affideresti la tua vita;
4) 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;
5) Non usare mai il tuo vero nome o il tuo vero numero telefonico quando posti su un bbs, sulle news oppure su IRC;
6) Non lasciare i tuoi manipolamenti ( tranne quelli necessari ) su qualsiasi sistema in cui penetri;
7) NON hackerare i computer dei governi in particolar modo del TUO governo;
8) Non parlare dei tuoi progetti riguardo all'hacking quando parli sulla tua linea telefonica di casa;
9) SII PARANOICO. Metti tutto il materiale riguardo all'hacking in posti sicuri;
10) 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.
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.
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.
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 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 )
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!
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ò:
1) Create un file BAT con le istruzioni che vorrete far essere eseguite sul computer vittima
2) Procuratevi l'utility BAT2COM che serve a trasformare un file BAT in COM
3) Rinominate un file mettendoci un nome credibile
4) 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
-Q
si 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.
5) 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.
6) 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!!!
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! "
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:
1) Prima di iniziare a chattare prendete tutte le precauzioni possibili.
2) 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
3) Non nukkate nessuno tranne che in casi eccezionali
4) 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.
5) Non accettate nessun file a meno che il mittente del file sia un vostro amico fidato di cui avete l' IP.
6) 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?
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!).
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:
1) Create sull'hard-disk una directory col nome del gioco
2) Copiate tutto il contenuto del CD in quella directory e cancellate eventuali file inutili (tipo directx, etc)
3) Vedere se in questo modo(senza installarlo) parte. A me World Cup 98 è partito così!
4) 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:
1) 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.
2) 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.
3) 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.
4) 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.
5) 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)
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!