Jump to content

zbeng

Active Members
  • Posts

    2402
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by zbeng

  1. ori va este rusine ori nu aveti nu stiu ce sa inteleg
  2. sa cresti mic poate ne faci rost si de v5
  3. na si de la mine
  4. o sa la folosim cu multa mandrir :D
  5. zbeng

    SAluty!

    noroc si bunvenit pe acest mareee forum
  6. perfecte au picat 50 pana acuma:))
  7. http://rapidshare.de/files/28755126/mario.doc.html cam asat am pana acuma
  8. zbeng

    usersig...

    sa cresti mare chiar imi place
  9. superbbbbbb
  10. 1. Conceptul de regiuni de memorie non executabile 2. Metode de oprire a executiei codului injectat 3. Implementare proprie. 3.1 Apeluri de sistem si interceptarea lor. 3.2 Utilizarea interceptarii in scopuri non executabile. 3.3 Intrarea in kernel mode fara suport lkm. 3.4 Etapele aplicarii patch-ului. 1. Exploiturile se bazeaza in general pe urmatorul concept: directionarea executiei programului la un set de instructiuni (shellcode) furnizate de atacator. Prin faptul ca shellcode-ul este primit sub forma de date de intrare, este plasat intr-una din urmatoarele portiuni de memorie: stack, heap, .data sau .bss. Impiedicare executiei unui shellcode se poate face deci prin marcarea logica a portiunilor de memorie mentionate mai sus ca non executabile . O implementare a conceptului a fost realizata de Solar Designer impotriva executiei codului din stack prin proiectul Openwall (openwall.com/linux). Un proiect mai nou de acelasi gen este PaX (http://pageexec.virtualave.net). PaX impiedica executia din toate zonele de memorie writable, aplica metode de generare aleatorie a regiunilor de memorie alocate pentru protectie impotriva tehnicilor return-into-libc, ... . 2. Discutarea crearii unui soft pentru marcarea regiunilor de memorie ca non executabile are sens pe sistemele fara suport hardware pentru acest lucru. Principala si singura exceptie pana acum sunt arhitecturile IA-32. PaX implementeaza memoria non executabila prin urmatorul mod: de fiecare data cand accesam o pagina de memorie in linux, daca este setat bitul supervisor in PTE ( page table entry ), actiunea normala in cazul accesului unui program din ring 3 (user space) este trimiterea semnalului SIGSEGV programului. PaX seteaza supervisor in toate zonele writable de memorie si modifica functia care se ocupa de protectia paginilor cu bitul supervisor cu o functie proprie.In cazul cererii de executie a memoriei functia testeaza daca executia din zona respectiva de memorie este permisa. In caz negativ programul este terminat si are loc scrierea in loguri a incidentului. 3. 3.1 In linux toate functiile puse la dispozitia utilizatorului se executa prin intermediul apelurilor de sistem (system calls). Un apel de sistem este executat prin apelarea intreruperii 0x80 cu numarul apelului in registrul eax si cu parametrii in ebx,ecx,edx. Intreruperea 0x80 trece in kernel mode si apeleaza functia system_call, care preia adresa functiei corespunzatoare apelului de sistem cerut dintr-un tabel de adrese de memorie ( sys_call_table ). RootKit-urile clasice de kernel isi fac treaba prin modificarea adreselor din tabela respectiva. O alta idee de a intercepta apelurile de sistem a fost inovata de sd si devik prin SucKIT (http://www.phrack.org/phrack/58/p58-0x07). Ideea este de a modifica adresa sys_call_table in system_call. Alterarea executiei apelurilor de sistem se poate face si prin schimbarea functiei corespunzatoare int 0x80 in IDT ( interrupt descriptor table ). (http://www.phrack.org/phrack/59/p59-0x04.txt) Ideea prezentata de acest articol este de a redirectiona toate apelurile de sistem prin inserarea la inceputul functiei system_call a unui ansamblu push - ret, determinand astfel fiecare apel de sistem sa treaca intai prin codul nostru. 3.2. La apelul functiei system_call eip-ul ( instruction pointer) de provenienta se gaseste pe stack. Impiedicarea executiei codului din portiuni de memorie nepermise ( stack, heap, .data, .bss) se poate face prin verificarea apartenentei eip-ului extras unei reuniuni de intervale de memorie : stack ( in linux 0xbf000000-0xbfffffff), heap ( current->mm->start_brk pana la current->mm->brk ) , .data ( current->mm->start_data pana la current->mm->end_data) si .bss. 0x0807814c->0x080790e4 at 0x0002f14c: .data ALLOC LOAD DATA HAS_CONTENTS 0x08079110->0x08079f78 at 0x00030110: .bss ALLOC 0x08079f78 : current->mm->start_brk 0xxxxxxxx : current->mm->brk Avem mai sus un exemplu de asezare a zonelor de memorie writable a unui elf. Din asezare se vede ca multimea zonelor protejate este cuprinsa in stack ( 0xbf000000-0xbfffffff) si current->mm->start_data --- current->mm->brk. Functia noastra trebuie sa testeze daca eipul salvat pe stack apartine zonei descrise ; daca da apeleaza int 0x80 cu eax 0x1 ( exit ), daca nu executa primi 6 bytes inlocuiti din system_call si apoi sare la system_call+6. 3.3 Sarcinile de mai sus pot fi indeplinite de un loadable kernel module. Calea pe care am ales-o este de a scrie in /dev/kmem - fisierul prin care se poate citi sau scrie in memoria kernelului. Tehnica a fost aplicata pentru prima data de Silvio Cesare ( http://www.big.net.au/~silvio/runtime-kern...em-patching.txt ). Locul in care va fi plasata functia de filtrare este spatiul alocat in memoria kernel pentru sys_olduname. Obtinerea variabilei current se obtine prin macroul definit in entry.S din sursa kernelului #define GET_CURRENT(reg) movl $-8192, reg; andl %esp, reg Mai ramane o problema: determinarea structurii task_struct si mm_struct (este diferita pentru aproximativ fiecare versiune de kernel) pentru a determina current->mm->start_data si current->mm->brk. In sys_getuid avem urmatoarea portiune de cod: mov $0xffffe000,%eax and %esp,%eax mov 0x58(%eax),%eax andb $0xfe,0x74(%eax) primele doua instructiuni extrag current iar ultimele adreseaza current->mm->dumpable care se afla de obicei la o distanta de 15*4 bytes dupa start_data. Din codul de mai sus extragem distanta mm in task_struct (0x5b) si distanta dumpable in mm_struct (0x74) si le introducem in codul propriu. 3.4 Etape: 1. determinarea adresei IDT ( interrupt descriptor table ) prin instructiunea sidt 2. aflarea din IDT a adresei functiei system_call 3. prepararea functiei prin extragerea din sys_setgid a distantei mm in task_struct si dumpable in mm_struct 4. adaugarea primilor 6 bytes din system_call la sfarsitul functiei de filtrare 5. adaugarea unui push $(system_call+6) - ret la sfarsitul functiei noastre 6. introducerea functiei in sys_olduname. 7. inserarea unui push $sys_olduname - ret in system_call.
  11. e este DNS ?DNS (Domain Name Server) este un server ce rezolva interogarile TLD catre ip-uri. Unul dintre cele mai des utilizate servere DNS este BIND (Berkeley Internet Name Domain). Ultima distributie de BIND poate fi gasita la http://www.isc.org/products/BIND . Nu este nevoie sa inregistrati un domeniu pt a putea experimenta cu DNS. Serverul poate exista si pe retele locale (LAN), cu sau fara connexiune la internet. .ro este un examplu de TLD (Top-Level Domain). Cand dati un whois la www.gnudevelopers.ro este cautat serverul root al gnudevelopers . De acolo sunteti trimis la nameserverul (DNS) pentru GNUDevelopers.ro, server ce are toate informatiile despre domeniu . Acesta va trimite raspunsul la " whois GNUDevelopers.ro ". Putem sa ne creeam propriul TLD, cum ar fi de exemplu " opensource.ro ". Din pacate el nu va fi vizibil in Internet, dar pe o retea privata (LAN) toti userii il vor putea accesa. Astfel se poate avea www.opensource.ro sau subdomeniu.opensource.ro pe reteaua dvs. Privata. Dar inainte de a continua, sa intelegem cum lucreaza un DNS. Interogarile DNS functoineaza in 2 feluri: Direct sau invers (reverse-addressing). Nu este o mare diferenta intre cele 2 metode, dar important e ca exista ! Pentru inceput vom explica interogarea directa. Elemente ce lucreaza in ambele metode: 1. Utilizatorul PC ce foloseste un Web Browser numit " Client ". 2. Serverul DNS ce este setat in Dial-up Networking sau in configuratia TCP/IP , numit si DNS de ISP. 3. Serverul Network Solutions ( Internic ) supranumit si Root Server sau " . " . 4. Serverul DNS destinatie. Sa spunem ca Clientul deschide un web browser si tasteaza www.gnudevelopers.ro . PC-ul sau trimite interogarea la primul DNS gasit in configuratia sa (DNS-ul de ISP). DNS-ul de la ISP se uita mai intai in chache-ul sau sa vada daca are IP-ul pt domeniul respectiv. Daca il gaseste, trimite ip-ul la client si gata! Daca nu il gaseste se va cauta in toate domeniile pentru care gazduieste DNS, daca gaseste aici, trimite raspunsul la Client. Daca tot nu gaseste el va trimite cererea de interogare la serverul Root (Internic). Serverul Root cauta in fisierele de zona inregistrarea pentru GNUDevelopers.ro si trimite rezultatele NS pentru zona inapoi la DNS-ul de ISP, care are acum DNS-ul pentru zona respectiva. El va trimite iar interogarea " www.GNUDevelopers.ro " la DNS-ul trimis de Root. DNS-ul destinatie va raspunde "Da eu sunt DNS-ul autoritar pentru zona aceasta, si am inregistrare pentru www " El va trimite inapoi inregistrarea pentru www.GNUDevelopers.ro , dar si alte inregistrari de gen www.subdomeniu.GNUDevelopers.ro serverului de DNS al ISP-ului. DNS-ul de ISP "va tine minte" inregistrarea, si va trimite Clientului IP-ul pentru www . Interogarea inversa (Reverse lookup) functioneaza cam in acelasi fel. Un client sau un server vrea sa stie cine este 192.168.1.33 , la ce domeniu duce. Unele servere de mail fac reverse lookup asupra domeniului de la care primesc, pentru a se asigura ca exista, inainte de a accepta mail de la el. Clientul intreaba DNS-ul ISP-ului " Cine e 192.168.1.33.in.addr.arpa. ?" . DNS-ul va actiona ca un "agent" si va intreba DNS-ul Root aceeasi intrebare. DNS-ul Root va trimite inapoi inregistrarea NS a serverului delegat pentru acel subnet. Sa zicem ca DNS Root trimite inapoi un raspuns de genul "Nu stiu cine e, dar stiu ca am delegat 0.0.0.33.in.addr.arpa. catre ISP 1, care are adresa IP a DNS x.x.x.x ". Atunci cererea va fi facuta iar catre DNS-ul ISP 1, "Cine e 192.168.1.33.in-addr.arpa. ?" . Iar ISP 1 va raspunde "Nu stiu cine e, dar stiu ca am delegat 0.0.1.33.in.addr.arpa. catre ISP 2 care are DNS cu adresa IP x.x.x.x ". Acum aceeasi intrebare va fi iar trimisa catre ISP 2 , care va raspunde "N-am idee cine e dar eu am delegat 0.168.1.3.in.addr.arpa. catre ISP 3, care are un DNS cu adresa IP x.x.x.x" Si din nou aceeasi intrebare va fi trimisa si catre ISP 3 : "Cine e 192.168.1.33.in-addr.arpa. ?". Si ISP 3 va raspunde: Stiu cine e ! Este mail.GNUDevelopers.ro . Si va trimite informatia inapoi catre Client. ------------ Peste ceva timp, "Cum sa configurezi un server DNS pentru un domeniu TLD", dar mai e pana traduc + modificari
  12. n ultimii ani au aparut pe Internet articole despre hackeri care s-au folosit de motorul de cautare Google.com pentru a avea acces la fisiere in retea la care nu aveau acces si pe care nu trebuiau sa le vada. Astfel de cunostiinte nu sunt ceva nou in domeniu, dar de multe ori m-am gandit chiar, cum merge un lucru ca asta. Prin 2001 un editor de pe VNUnet, James Middleton a scris un articol in care vorbea despre hackeri care au folosit o fraza de cautare specifica pentru a gasi si mai apoi avea acces la baze de date apartinand unor banci franceze, care contineau informatii confidentiale. Un alt articol din revista Wired.com spunea despre un hacker, care a reusit prin google.com sa aiba acces la bazele de date de pe multe site-uri ale unor corporatii importante. Astfel de articole au continuat sa apara tot timpul in buletinele de stiri. Site-uri apartinand armatei SUA si guvernului SUA erau vulnerabile pentru ca scripturi ale adminilor puteau fi "gasite" prin Google; fisiere medicale, fisiere personale confidentiale, etc. au devenit imediat accesibile doar la un search cu Google. Totusi majoritatea articolelor gasite pe Internet despre astfel de incidente nu prezentau informatii detaliate si exemple comcrete de fraze de cautare sau alte informatii de acest fel. Asa ca m-am gandit sa incerc sa gasesc chiar eu astfel de referinte si sa dau exemple. [Teoria] Conceptul acesta este defapt destul de simplu. Un utilizator se gandeste la ce fel de date vrea sa acceseze, apoi la locuri unde acestea ar putea fi continute si dupa aceea el doar cauta locurile respective. Cel mai usor este daca vrei sa cauti ceva anume care este continut intr-un pachet software. Ai putea sa iei pachetul software respectiv, sa vezi ce tipuri de fisiere foloseste si cu acestea sunt accesate si mai apoi sa cauti cuvinte cheie care descriu optiunile din pachetul software. Astfel ai putea gasi de ex. referinte la o baza de date printr-o simpla cautare a unui string de genul "viewdbase" care ar putea fi continut de un software care administreaza baze de date. Dupa o astfel de cautare, daca ai noroc, poti gasi referinte exacte prin Google spre astfel de baze de date care pot fi accesate online. Totul este sa stii ce vrei sa cauti exact ! Si apoi sa cauti exact dupa acel lucru sau legaturi cel putin direct cu acel lucru. [Optiuni Google search] -1. Comanda "Filetype": *.xls (Excel), *.doc (Word), *.pdf (PDF), *.txt (text) etc. Google ne da voie sa cautam direct fisiere de un anumit fel, nu numai pagini html cu referinte la nume de astfel de fisiere. Optiunea de cautare doar pentru un tip anume de fisier este: Cautare: Filetype:@ls -(pentru fisiere Excel); Cautare: Filetype:Doc -(pentru fisiere Word); -2. Comanda "inURL" care ofera optiunea de a cauta dupa un anumit cuvant continut intr-un URL: Cautare: inurl:mp3 referinte: www.mp3.com | www.mp3network.com |www.mp3world.com etc. Dupa cum vedem Google ne va gasi referinte care contin cuvantul "mp3" in numele adresei site-ului respectiv (URL). -3. Optiunea "Index of" Aceasta optiune ofera referinte cu listinguri de directoare pe diverse site-uri web: Cautare: Index of /cgi-bin referinte: www.site1.com/cgi-bin/ Index of cgi-bin *fisier_1 *fisier_hhdakaka *fisier_4422 ......... De obicei pentru a gasi rezultate cat mai bune se cauta acesta comanda intre ghilimele: Cautare: "Index of /cgi-bin" Vor aparea mult mai multe referinte directe la listinguri de directoare, in cazul nostru directorul "cgi-bin" de pe orice server care permite accesul. -4. Comanda "Site" Acesta comanda cauta referinte numai intr-un anumit domeniu specificat ca argument la cautare. Cautare: Site:ro -va afisa foarte multe referinte la site-uri apartinand domeniului .ro Cautare: Site:1337.ro "FORUM" -va gasi in domeniul specificat "1337.ro" cuvantul "FORUM" -5. Comanda "Intitle" Aceasta comanda este asemanatoare cu "inurl" dar spre deosebire de aceasta, nu cauta in URL-ul unei anumite pagini si in titlul paginii un anumit cuvant cautat: Cautare: intitle:forum -va afisa referinte care contin in titlul unei pagini cuvantul "forum". -6. Comanda "Link" O astfel de comanda este una dintre cele mai bune. Ea da voie unui utilizator sa caute ce alte site-uri au link-uri pe un anumit domeniu cautat. Poate oferi de exemplu referinte la pagini de logare pentru webmail, pagini de administrare remote si alte astfel de link-uri care la prima vedere nu sunt afisate pe site-ul cautat. [Combinarea optiunilor de cautare] Poate comenzile de mai sus, folosite separat nu vor returna referinte foarte precise. Dar dupa ce le vom combina in timpul unei cautari, atunci vom gasi rezultate mult mai bune si mai clare despre ceea ce avem de cautat. Spre exemplu daca combinam urmatoarele comenzi in felul urmator: Cautare: inurl:gov filetype:@ls "password" Cautare: inurl:com "Index of" admin vom gasi referinte la site-uri guvernamentale care ofera fisiere de tip .xls (Excel) care contin o baza de date cu parole sau in cazul 2 vom gasi referinte din domeniul .com site-uri care listeaza folderul "Admin" online. Dupa ce combinam mai multe comenzi de mai sus in diverse moduri si cautam cuvinte de genul "passwords", "admin", "userid", "login", "secret", "private", "clients", "accounts" s.a. vom gasi destule referinte importante care duc la rezultate cel putin "interesante". Alte idei ar fi sa folositi diverse astfel de cuvinte traduse si in alte limbi. Pe Internet sunt destule site-uri care nu folosesc numai limba engleza. Astfel se pot gasi referinte de pe tot globul la cuvantul cautat de noi. Experimentati cat mai mult cu diverse cuvinte cheie folosite des atat de useri cat si de programe care ruleaza online. Numai astfel veti gasi rezultate dintre cele mai bune. [Concluzie] Internetul este o retea imensa care leaga milioane de computere si alte retele, deci am putea avea acces la o mare de servere web, ftp si alte resurse online, in cazul in care nu sunt protejate. Cel mai adesea prada ne cad serverele care au instalari de baza (default instalations) sau care nu sunt bine configurate de catre administratori. Tot timpul vor fi oameni care vor vrea sa caute lucruri interesante pe Internet si de multe ori aceste persoane chiar vor gasi ce cauta. Ca masuri de siguranta impotriva unor astfel de cautari ar fi: Pentru comanda "index of" se poate folosi .htacces sau mai simplu se pune o pagina de index in folderul respectiv, astfel impiedicandu-se listarea directa. Pentru comanda "Filetype" care gaseste un anumit tip de fisiere pe o multime de site-uri web, ar trebui folosita o sesiune de autentificare pentru toate fisierele puse online, inainte de acestea sa fie accesate remote de un utilizator. Si in general administratorii ar trebuie sa fie atenti la instalerile de baza si la configurarea optiunilor oricarui pachet software cu acces online. In final tot timpul se vor gasi oameni curiosi sa gaseasca orice pe Internet si Google poate ajuta astfel de persoane foarte mult. Ca sfaturi personale, atunci cand cautati pe Google.com informatii confidentiale folositi un proxy server, folositi-va imaginatia cat mai mult si sigur veti gasi ceea ce cautati.
  13. frumuase chiar aveam nevoie de unul dintre ele
  14. uite ceva care iti poate folosi pana termin tutorialul in rom http://martybugs.net/wireless/biquad/
  15. 11591 sau 10797 care vrei u ms anticipat
  16. un admin sau moderator ce opina?
  17. pe fundal daca se poate ceva cu FBI sau chiar sa scrie FBI my nik si jos undeva rst[scz ca am facut 2 posturi da nu stiu unde trebuie sa postez ]
  18. )) care e explicatia la asa ceva
  19. zbeng

    user avatar

    da e cam mare pt avatar aici tre sal tai:((
  20. zbeng

    user avatar

    mss se potriveste de minune
  21. atunci iati femeia si tineo langa tine cand vezi ca nu ai treaba mai dai putin la buci dupa aiaiar la treaba si tot asa )
  22. hai noroc si bun venit si ia si invata cat mai mult cai de folos
  23. Mam gandit ca aici sa imi cereti ce tutoriale vreti si in maxim 24 ore sa vil postez REGULA SA AI +30 POSTURI [daca nu e bun rog un admin sa stearga topicu]sau sa mai puna el vro regulal
×
×
  • Create New...