Schutz vor Buffer Overflows unter Windows 2003 kann umgangen werden

David Litchfield von NGSSoftware hat eine Methode entwickelt, mit denen er die Stack Protection unter Windows 2003 Server umgehen kann.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Daniel Bachfeld

Ein Angreifer kann die Funktionen zum Schutz vor den Auswirkungen von Buffer Overflows unter Windows 2003 Server umgehen. Bei einem Buffer Overflow überschreibt ein Angreifer Teile des Stacks und manipuliert die Rücksprungadressen von Funktionen, um seinen eigenen Code anzusprigen. Die Stack Protection von Windows 2003 Server schreibt beim Aufruf von Funktionen ein sogenanntes Cookie beziehungsweise Canary vor die Rücksprungadresse auf den Stack. Beim Beenden einer Funktion wird vor der Rückkehr dieses Cookie mit einer Kopie verglichen. Ist das Cookie nicht mit der Kopie identisch, ist mit hoher Wahrscheinlichkeit der Stack inklusive Cookie durch einen Buffer Overflow überschrieben worden und der aufrufende Prozess wird zum Schutz gestoppt.

David Litchfield von NGSSoftware hat eine Methode entwickelt, mit der er den Schutzmechanismus umgehen kann. Dabei macht er sich die Behandlung von Exceptions zu nutze, die bestimmte Ausnahmefälle, zum Beispiel Speicherzugriffsverletzungen, abfangen sollen. Informationen über Exception-Handler werden in sogenannten EXCEPTION_REGISTRATION-Strukturen auf dem Stack abgelegt. Zusätzlich wird ein Zeiger auf diese Struktur auf dem Stack gespeichert. Litchfields Angriff überschreibt nicht nur den Cookie und die Rücksprungadresse einer Funktion, sondern auch den Pointer auf diese Struktur, um die Schutzfunktion auszuhebeln und trotzdem eigenen Code auszuführen.

Siehe dazu auch: (dab)