it-security:blog:buffer_overflow_x64-3

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
it-security:blog:buffer_overflow_x64-3 [2024/04/08 20:46] psycoreit-security:blog:buffer_overflow_x64-3 [2024/05/11 23:33] (aktuell) psycore
Zeile 2: Zeile 2:
 ====== Buffer Overflow im 64-Bit Stack - Teil 3 ====== ====== Buffer Overflow im 64-Bit Stack - Teil 3 ======
  
-{{:it-security:blog:bof-part3-header.jpg?800|}}+{{:it-security:blog:bof-part3-header.jpg?250|}}
  
-Der dritte Teil der Buffer Overflow Serie.+In [[it-security:blog:buffer_overflow_x64-2|Teil 2]] haben wir den String ''/bin/zsh'' an die Funktion ''System()'' gesendet, um eine root Shell zu öffenHierzu mussten wir aber ASLR deaktivieren- ASLR verändert Funktionsadressen bei jedem Programmneustart. Superkojiman beschreibt in seinem Blog((https://blog.techorganic.com/2016/03/18/64-bit-linux-stack-smashing-tutorial-part-3/)) ausführlich, wie man diesen Schutz dennoch umgehen kann. Hierzu müssen wir uns aber erstmal ein paar Dinge veranschaulichen
 \\ \\
 \\ \\
Zeile 11: Zeile 11:
 ==== Theorie ==== ==== Theorie ====
  
-In [[it-security:blog:buffer_overflow_x64-2|Teil 2]] haben wir den String ''/bin/zsh'' an die Funktion ''System()'' gesendet, um eine root Shell zu öffen. Hierzu mussten wir aber ASLR deaktivierenASLR verändert Funktionsadressen bei jedem ProgrammneustartSuperkojiman beschreibt in seinem Blog((https://blog.techorganic.com/2016/03/18/64-bit-linux-stack-smashing-tutorial-part-3/)) ausführlich, wie man diesen Schutz dennoch umgehen kann. Hierzu müssen wir uns aber erstmal ein paar Dinge veranschaulichen+{{:it-security:blog:bof-part3-header.jpg?500 |}}
  
 In Linux Systemen verwendet man üblicherweise dynamische Programmbibliotheken. Dies hat den Vorteil, dass wir nicht jede Funktion in jedem Programm neuschreiben müssen, sondern einfach auf die Funktion des Systems zugreifen können, welche z.B. in ''libc'' liegt. Ist ASLR nun aktiviert, werden die Adressen bei jedem Programmstart verändert. In Linux Systemen verwendet man üblicherweise dynamische Programmbibliotheken. Dies hat den Vorteil, dass wir nicht jede Funktion in jedem Programm neuschreiben müssen, sondern einfach auf die Funktion des Systems zugreifen können, welche z.B. in ''libc'' liegt. Ist ASLR nun aktiviert, werden die Adressen bei jedem Programmstart verändert.
Zeile 447: Zeile 447:
 ^ Prüfsumme (SHA256) | d1212026504c7a90680e3f1e430244734695971c73f1461bed12605644c707d8 | ^ Prüfsumme (SHA256) | d1212026504c7a90680e3f1e430244734695971c73f1461bed12605644c707d8 |
  
 +~~DISCUSSION~~
  • it-security/blog/buffer_overflow_x64-3.1712602004.txt.gz
  • Zuletzt geändert: 2024/04/08 20:46
  • von psycore