Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
it-security:blog:buffer_overflow_x64-2 [2024/03/04 19:46] psycoreit-security:blog:buffer_overflow_x64-2 [2024/08/02 11:51] (aktuell) psycore
Zeile 2: Zeile 2:
 ====== Buffer Overflow im 64-Bit Stack - Teil 2 ====== ====== Buffer Overflow im 64-Bit Stack - Teil 2 ======
  
-{{page>vorlagen:attention}}+Im zweiten Teil aktivieren wir das NX-Bit, welches uns vor Buffer Overflows schützen soll. Damit es spaßig bleibt, hebeln wir diesen Schutz natürlich direkt aus. Dies erreichen wir, indem der auszuführende Befehl an die [[https://de.wikipedia.org/wiki/C-Standard-Bibliothek|libc-Funktion]] ''system()'' weitergeleitet wird. Grundlegend basiert dieses Tutorial auf der Arbeit von [[https://blog.techorganic.com|superkojiman]] ((https://blog.techorganic.com/2015/04/21/64-bit-linux-stack-smashing-tutorial-part-2/))
  
-^ Projektdateien | {{ :it-security:nosoc-repo-bof-part2.zip |}} <label type="info" icon="glyphicon glyphicon-compressed">ZIP</label>+===== Einleitung =====
-^ Größe | 4,00 KB | +
-^ Prüfsumme (SHA256) | 88bda11b4652344bb9113a400b79e78abf028ef5eb89a74538061c96e2d306e5 |+
  
 +{{page>vorlagen:64_bit_stack_nav}}
 +
 +{{page>vorlagen:attention}}
  
-Im zweiten Teil aktivieren wir das NX-Bit, welches uns vor Buffer Overflows schützen soll. Damit es spaßig bleibt, hebeln wir diesen Schutz natürlich direkt aus. Dies erreichen wir, indem der auszuführende Befehl an die [[https://de.wikipedia.org/wiki/C-Standard-Bibliothek|libc-Funktion]] ''system()'' weitergeleitet wird. Grundlegend basiert dieses Tutorial auf der Arbeit von [[https://blog.techorganic.com]] ((https://blog.techorganic.com/2015/04/21/64-bit-linux-stack-smashing-tutorial-part-2/))+{{:it-security:blog:bof64-2.jpg?800|}}
  
 Weiterführende Infos zum Thema ROP (Return Oriented Programming) und Grundlagen zum Thema Buffer Overflows gibt es in der Linksammlung am Ende. ((https://book.hacktricks.xyz/reversing-and-exploiting/linux-exploiting-basic-esp/rop-leaking-libc-address)) ((https://ir0nstone.gitbook.io/notes/types/stack)) Weiterführende Infos zum Thema ROP (Return Oriented Programming) und Grundlagen zum Thema Buffer Overflows gibt es in der Linksammlung am Ende. ((https://book.hacktricks.xyz/reversing-and-exploiting/linux-exploiting-basic-esp/rop-leaking-libc-address)) ((https://ir0nstone.gitbook.io/notes/types/stack))
Zeile 64: Zeile 65:
 \\ \\
 ===== C Programm ===== ===== C Programm =====
 +
 +Quellcode und kompilierte Binaries findet Ihr auch auf meinem [[gh>psycore8/nosoc-bof/tree/main/part-2|github repository]]
  
 Das Ursprungs-Tutorial ist schon ein bisschen älter, so dass der Quellcode nicht 1:1 übernommen werden konnte. Zum einen musste das ''UID'' und ''EUID'' zusätzlich gesetzt werden ((http://disq.us/p/1klc7u2)), zum anderen funktioniert ''/bin/sh'' nicht mehr in dieser Art und Weise. ((http://disq.us/p/1n4ipc8)) Das Ursprungs-Tutorial ist schon ein bisschen älter, so dass der Quellcode nicht 1:1 übernommen werden konnte. Zum einen musste das ''UID'' und ''EUID'' zusätzlich gesetzt werden ((http://disq.us/p/1klc7u2)), zum anderen funktioniert ''/bin/sh'' nicht mehr in dieser Art und Weise. ((http://disq.us/p/1n4ipc8))
Zeile 199: Zeile 202:
  
 Unsere User Shell wird zur root Shell aufgewertet und wir haben unser Ziel erreicht. Unsere User Shell wird zur root Shell aufgewertet und wir haben unser Ziel erreicht.
 +\\
 +\\
 +===== Repository =====
 +
 +^ Projektdateien | {{ :it-security:nosoc-repo-bof-part2.zip |}} <label type="info" icon="glyphicon glyphicon-compressed">ZIP</label> |
 +^ Größe | 4,00 KB |
 +^ Prüfsumme (SHA256) | 88bda11b4652344bb9113a400b79e78abf028ef5eb89a74538061c96e2d306e5 |
  
 +~~DISCUSSION~~