Jump to content

Flubber

Active Members
  • Posts

    1765
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by Flubber

  1. <sarcasm>Adaugat din motivul ca include boobies si o tipa ce cauta pr0n pe hdd.</sarcasm> http://www.youtube.com/embed/x_R_JSiupzo
  2. Protectiile precum ASLR,NX,exec-shield si SELinux au fost de mult depasite. Sunt deja mii de exemple si tool-uri functionale, insa ce-i drept, fiecare exploatare a unui sistem depinde de acel sistem (cred ca este logic pentru toata lumea). Si ca sa demonstrez ca nu vorbesc aiurea: VNSecurity @ BlackHat 2010 - Payload already inside data: reuse for ROP exploits [v1] :: include ASLR,NX,ASCII-Armor bypass si un tool ce automatizeaza procesele de exploiting ^-- insa la Hack in The Box Malaysia - slides - buggy SELinux usureaza munca de exploatare Advanced exploitation in exec-shield (Fedora Core case study) etc .. etc .. etc Insa da, unele lucrari dateaza chiar si de prin 2006, ce duc la deprecated (desi mecanismele au ramas cam aceleasi ... aproape). Si da, sunt unele cazuri in care se dezactiveaza alte mecanisme de protectie ca sa se demonstreze ca se pot exploata altele, de exemplu, NX,ASLR si ASCII-Armor bypass functioneaza dupa cele prezentate de cei de la VNSecurity in 2010 la BlackHat, insa odata introdus si PaX cu PIE pe executabile, ei bine se schimba povestea, la fel si in cazul StackGuard + Canary, si sa nu incepem sa vorbim si de kernel grsecurity-hardened, o cu totul alta poveste (patch mentinut gratuit pana in ziua de azi de insusi whitehat-ul spender pe care toti il urasc). - Si mai sunt exemple, insa ce-i drept, securitatea vine in mai multe layere, iar toate acestea lucrand impreuna fac grea exploatarea unui sistem, in special daca se incearca remote. Nu cred ca ar strica cursuri PenTesting, ba din contra. Insa cu totii suntem satui de wep cracking unde se dau copy paste la comenzi, cred ca am vrea ceva mai degraba de aceasta calitate: Penetration Testing in the Real World on Vimeo (vechi de doi ani si totusi ... wow).
  3. Oups! Mersi ca ai adus in atentie. Eu spun ca merge, nu este mentionat in acel thread link-ul catre blog,desi cineva ar putea da un Google Search cu informatiile din el pentru a il gasi sau sa il ia de pe site-ul sursei.
  4. Full article More related
  5. PROGRAMATOR AUTOIT , UBOT la SC ONLINE ADVERTISING INTERNATIONAL SRL, BUCURESTI, Sector 3 - BestJobs
  6. Slab procesorul pentru AE.
  7. Avand in vedere autorul articolului (CNN - yeacks) stim cu totii ca buletinele de stiri (si companiile/bransele asociate) mananca mereu rahat cand vine vorba de acest domeniu. Oricum: As 450,000 passwords exposed, Yahoo fails security 101 -- If it wasn't clear before, it certainly is now: Your username and password are almost impossible to keep safe. Nearly 443,000 e-mail addresses and passwords for a Yahoo site were exposed late Wednesday. The impact stretched beyond Yahoo because the site allowed users to log in with credentials from other sites -- which meant that user names and passwords for Yahoo (YHOO, Fortune 500), Google's (GOOG, Fortune 500) Gmail, Microsoft's (MSFT, Fortune 500) Hotmail, AOL (AOL) and many other e-mail hosts were among those posted publicly on a hacker forum. Full article: Yahoo fails security 101 as 443,000 passwords exposed - Jul. 12, 2012 Sursa: Yahoo's password hack shows that it failed security 101 - The Community's Center for Security
      • 1
      • Upvote
  8. Problem Description: A vulnerability has been discovered and corrected in pidgin: Incorrect handing of inline images in incoming instant messages can cause a buffer overflow and in some cases can be exploited to execute arbitrary code (CVE-2012-3374). This update provides pidgin 2.10.6, which is not vulnerable to this issue. Sursa: Mandriva: 2012:105: pidgin - The Community's Center for Security
  9. Pentru cei ce cred ca imaginile nu sunt periculoase: cititi in continuare. Problem Description: Multiple vulnerabilities has been discovered and corrected in openjpeg: OpenJPEG allocated insufficient memory when encoding JPEG 2000 files from input images that have certain color depths. A remote attacker could provide a specially-crafted image file that, when opened in an application linked against OpenJPEG (such as image_to_j2k), would cause the application to crash or, potentially, execute arbitrary code with the privileges of the user running the application (CVE-2009-5030). An input validation flaw, leading to a heap-based buffer overflow, was found in the way OpenJPEG handled the tile number and size in an image tile header. A remote attacker could provide a specially-crafted image file that, when decoded using an application linked against OpenJPEG, would cause the application to crash or, potentially, execute arbitrary code with the privileges of the user running the application (CVE-2012-3358). The updated packages have been patched to correct these issues. Sursa: Mandriva: 2012:104: openjpeg - The Community's Center for Security
  10. Ce-i drept, si pe mine m-a derutat la inceput cand i-am facut o analiza superficiala. M-am orientat catre valori ca in post-ul #3 a lui pyth0n3 din acest thread, insa dupa un timp i-am trimis PM cu screenshot[1], la care raspunsul a fost sa public binarul. [1] Screenshot cu challenge-ul rezolvat in Slackware:
  11. Cam tarziu (am zis ca o sa postez insa am uitat, iar prin articolul scris de Nemessis, mi-am amintit), insa acestia sunt veneratii Anonymous: Sincer sa fiu, habar nu am cum au reusit sa intre la o asemenea conferinta, este incredibil. M-a lasat uimit si in acelasi timp dezgustat, mai ales dupa ce m-am uitat la tot clipul.
  12. Download bomb.disarmed from Sendspace.com - send big files the easy way
  13. Am inteles acum la ce te referi tu. Top-ul ca fiind in ordine inversa dupa modelul LIFO (Last In First Out) ar reprezenta top-ul ca fiind ultimul element impins pe stack, asemenator ultimului prosop pus in cosul de rufe este primul ce va fi scos din cosul de rufe. Eu luasem in ordinea in care se executa instructiile, topul pentru mine fiind EBP pentru acel segment, insa ce-i drept, ESP la returnare va spune lui EBP care va fi baza in urmatorul segment. Ai dreptate in privinta modelului LIFO, scuze. Abordam diferit.
  14. Intocmai. In cazul care l-am prezentat singura functie este main(), insa chiar daca ar fi fost alte functii (declarate dupa main() si folosite ulterior in aceasta) la fiecare CALL atunci cand se intra in functie, se impinge pe stack o adresa de return insa si EBP, iar valoarea lui ESP este din nou copiata in EBP, insa asa cum ai mentionat si tu, este pentru acel segment de memorie (alocat functiei), in exemplul scris de mine, asta inseamna pana la RET, dupa care la intoarcerea din functie (prin adresa impinsa la inceput de return) valorile revin in registrii si depinzand de functie, valoarea computatiei este returnata in EAX (de cele mai multe ori asa se intampla, EAX fiind Accumulator). Eu am mentionat faptul ca in post ai scris despre ESP ca acesta arata mereu topul stack-ului cand de fapt, el creste spre 0xffffffff (downwards), iar EBP ramane static. Acesta este motivul pentru care am spus ca faci confuzie, faptul ca trebuia sa specifici EBP in loc de ESP (desi afirmatia ta este partial adevarata, ESP arata pentru inceput top-ul stack-ului pana ce valoarea acestuia este copiata in EBP pentru segmentul respectiv in care se opereaza, iar apoi revenind la segmentul anterior, valorile vor corespunde respectivului pentru a continua flow-ul programului).
  15. Cred ca faci confuzie intre ESP si EBP. La inceputul unui executabil in debugger (gdb spre exemplu), valoarea lui ESP este copiata in EBP. Din acest moment EBP va servi ca Base Pointer, iar Stack Pointer-ul (SP) va avea valori diferite acestea depinzand de flow-ul programului si ce se executa (operatii de PUSH, POP, CALL etc.). EBP va avea mereu (spre exemplu) valoarea 0 fiindca ESP se va referi la EBP cand va face diferite "salturi". Spre exemplu intr-un CALL atunci cand se intra in el pentru executarea continutului, se impinge pe stack o adresa de return, la operatia PUSH a acestei adrese, ESP se va schimba si va folosi EBP pe post de referinta. [B]$> gcc -g hello.c -o hello[/B] [B] $> gdb -q hello[/B] Reading symbols from /home/x/Desktop/hello...done. [B](gdb) disassemble main[/B] Dump of assembler code for function main: 0x080483b4 <+0>: push %ebp[B] # Extended Base Pointer pe stack[/B] [COLOR=#b22222][B][1][/B][/COLOR] 0x080483b5 <+1>: mov %esp,%ebp [B]# valoarea lui ESP [/B][B]copiata in EBP - din acest moment EBP va fi "base pointer", va arata [I]"TOP-ul stack-ului"[/I] in timp ce ESP va creste in jos (catre 0xffffffff)[/B] [COLOR=#b22222][B][2][/B][/COLOR] 0x080483b7 <+3>: and $0xfffffff0,%esp [B]# operatie AND[/B] [COLOR=#b22222][B][3][/B][/COLOR] 0x080483ba <+6>: sub $0x10,%esp [B]# esp - 10[/B] 0x080483bd <+9>: movl $0x8048494,(%esp) [B]# esp == functia __dso_handle [COLOR=#b22222][4][/COLOR][/B] 0x080483c4 <+16>: call 0x80482f0 <puts@plt> [B]# printf[/B] 0x080483c9 <+21>: leave 0x080483ca <+22>: ret End of assembler dump. [4] __dso_handle: [B](gdb) disassemble 0x8048494[/B] Dump of assembler code for function __dso_handle: 0x08048490 <+0>: add %al,(%eax) 0x08048492 <+2>: add %al,(%eax) 0x08048494 <+4>: dec %eax 0x08048495 <+5>: gs 0x08048496 <+6>: insb (%dx),%es:(%edi) 0x08048497 <+7>: insb (%dx),%es:(%edi) 0x08048498 <+8>: outsl %ds:(%esi),(%dx) 0x08048499 <+9>: and %dh,0x6f(%edi) 0x0804849c <+12>: jb 0x804850a 0x0804849e <+14>: and %eax,%fs:(%eax) End of assembler dump. [1] 0x080483b4 => valoarea lui ESP in hex la "PUSH EBP" (inainte sa se execute) [B](gdb) break *0x080483b4[/B] Breakpoint 1 at 0x80483b4: file hello.c, line 4. [B](gdb) break *0x080483b5[/B] Breakpoint 2 at 0x80483b5: file hello.c, line 4. [B](gdb) break *0x080483b7[/B] Breakpoint 3 at 0x80483b7: file hello.c, line 4. [B](gdb) run[/B][I] [...][/I] Breakpoint 1, main () at hello.c:4 4 { [B](gdb) x/h $esp[/B] 0xbffff36c: 0x1ce6 [B]# 7398[/B][B](d)[/B] [2] 0x080483b5 => valorile lui ESP si EBP in hex dupa ce "PUSH EBP" s-a executat [B](gdb) continue[/B] Continuing. Breakpoint 2, 0x080483b5 in main () at hello.c:4 4 { [B](gdb) x/h $esp[/B] 0xbffff368: -3096 [B](gdb) x/h $ebp[/B] 0xbffff3e8: 0 [B]# valoare 0 fiindca a fost impins pe STACK, iar registrul este "initializat" (este pregatit pentru viitoare operatii) cu valoare 0[/B] [3] 0x080483b7 => valorile lui ESP si EBP dupa ce s-a executat instructia de "MOV ESP, EBP" [B](gdb) continue[/B] Continuing. Breakpoint 3, 0x080483b7 in main () at hello.c:4 4 { [B](gdb) x/h $esp[/B] 0xbffff368: -3096 [B](gdb) x/h $ebp[/B] 0xbffff368: -3096 Din acest moment, ESP va fi dinamic (isi va schimba valoarea in functie de flow-ul programului), iar EBP nu, el va fi folosit drept referinta (de-aia este si numit Base Pointer). [B](gdb) disassemble main[/B] Dump of assembler code for function main: 0x080483b4 <+0>: push %ebp 0x080483b5 <+1>: mov %esp,%ebp => 0x080483b7 <+3>: and $0xfffffff0,%esp 0x080483ba <+6>: sub $0x10,%esp 0x080483bd <+9>: movl $0x8048494,(%esp) 0x080483c4 <+16>: call 0x80482f0 <puts@plt> 0x080483c9 <+21>: leave 0x080483ca <+22>: ret End of assembler dump. [B](gdb) break *0x080483c4[/B] Breakpoint 4 at 0x80483c4: file hello.c, line 5. [B](gdb) continue[/B] Continuing. Breakpoint 4, 0x080483c4 in main () at hello.c:5 5 printf("Hello world!\n"); [B](gdb) stepi[/B] 0x080482f0 in puts@plt () [B](gdb) x/h $esp[/B] 0xbffff34c: -31799 [B](gdb) x/h $ebp[/B] 0xbffff368: -3096 [B]#[/B] [B]valoarea lui EBP a ramas ca la inceput, neschimbata[/B]
  16. Felicitari pentru tutorial. Intr-adevar sunt mai multe greseli, si anume: Eroarea se afla atunci cand este specificata lungimea string-ului ASCII ce trebuie printat de functia "write()" .text # codul in sine .globl _start _start: pushl $0x0a6b6f # 0a 6b 6f(h) => ASCII "\nko" 0a [\n] ; 6b [k] ; 6f [o] -- (little-endian) mov %esp, %ecx # muta valoarea lui esp in ecx (dupa schema folosita de AT&T) mov $0x4, %edx # 4h in EDX -- functia write mov $0x4, %eax # ce ia ca parametru 4h (4d) lungimea string, de fapt trebuie 3 ( len("ok\n") == 3 ) # exit(0) movl $1, %eax # exit movl $0, %eb # return code 0 int $0x80 # tipic Linux -- process interrupt (pe viitor daca se va discuta despre Exploit Development, modelul Linux-ului de abordare prin process interrupt prezinta o mare gaura de securitate) Si apropo, ai spus 0x6f 0x6b == "ok" (lower case) , insa ai mentionat "OK" (upper case) in hex asta inseamna: 0x4f 0x4b Pentru cine vrea sa invete mai multe: The Art of Assembly -- ce foloseste HLA (High Level Assembly -- ce este specificat si de pyth0n3 in primul post din thread) Insa cine vrea hardcore (pe romaneste: ceva de calitate), sa citeasca manualele de la Intel (cine cauta va fi rasplatit si cine cauta cu adevarat inseamna ca este interesat, Google pentru download link).
  17. Pe cine intereseaza, incepe in 24 de ore pe BrightTALK: http://www.brighttalk.com/webcast/5418/47639 Dureaza doua ore, iar inregistrarea este necesara (din pacate). Alte webcast-uri - 27,28 Iunie: Webcast: Jun 27 2012 10:00 pm Where to Begin With GRC in the Cloud? IAAS, PAAS and SAAS Channel: Information Security Community Attend: [URL]http://www.brighttalk.com/webcast/5418/46117[/URL] Webcast: Jun 28 2012 9:00 pm Adobe Acrobat X: Reduce Risk and Protect Documents Channel: Information Security Community Attend: [URL]http://www.brighttalk.com/webcast/5418/49457[/URL] Mai multe despre: CEH (Certified Ethical Hacker) | BrightTALK
  18. (Jun 24) It was discovered that that the ElGamal code in PythonCrypto, a collection of cryptographic algorithms and protocols for Python used insecure insufficient prime numbers in key generation, which lead to a weakened signature or public key space, allowing easier brute force. [FONT=Courier]- ------------------------------------------------------------------------- Debian Security Advisory DSA-2502-1 security@debian.org http://www.debian.org/security/ Moritz Muehlenhoff June 24, 2012 http://www.debian.org/security/faq - ------------------------------------------------------------------------- Package : python-crypto Vulnerability : programming error Problem type : remote Debian-specific: no CVE ID : CVE-2012-241[/FONT][FONT=Courier] [/FONT] [More...]
  19. Si uite asa am mai invatat cate ceva despre syscalls in Linux. Destul de interesant sa cunosti cum se lucreaza sub capota. Mai multe detalii (pe i86) la adresa urmatoare http://tldp.org/LDP/khg/HyperNews/get/syscall/syscall86.html
  20. Se poate sa dai mai multe detalii? ???????
  21. Sa nu uitam insa ca intai ti se face training, iar apoi se ia cursul. Insa majoritatea companiilor mari cer acest certificat de la un System Administrator (mai ales daca in acea companie se lucreaza cu sisteme RHEL), iar daca nu, reprezinta un (mare - in opinia mea) plus sa il ai. Nu doar teoria este indeajuns, insa nici doar practica. Practica fara teorie nu exista, iar teoria de viitor (avansul si imbunatatirea tehnologica?) fara practica tot nu exista, altfel am fi visat cai verzi pe tavan, precum fac regizorii de filme cand vine vorba de scenariu cu hackeri (la o apasare de buton se realizeaza o pana de curent la nivel global, haha). Puteti vedea video-uri de la RedHat, unele legate de aceste examene (RHCSA, RHCE, RH124, RH290 etc.) la adresa: http://www.youtube.com/user/RedHatVideos
  22. Mersi frumos, insa, inca mai vreau sa vad sursa ... Da, curiozitatea moare ultima.
  23. Vreo sansa sa imparti codul sursa si cu noi (*whisper*sau macar prin private message hehe*whisper*)?
  24. Fun facts:
×
×
  • Create New...