From 0ab7b33d9c9915e6bcbfca1c5bd3e5c82b88e036 Mon Sep 17 00:00:00 2001 From: Florian Hoss Date: Thu, 12 May 2022 12:16:24 +0200 Subject: [PATCH] include missing text --- Lab02/documentation/bufferOverflow/bufferOverflow.tex | 11 +++++++++-- Lab02/documentation/format-string/format-string.tex | 2 ++ Lab02/documentation/shell/shell.tex | 5 ++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Lab02/documentation/bufferOverflow/bufferOverflow.tex b/Lab02/documentation/bufferOverflow/bufferOverflow.tex index 27eb78f..c98e63c 100644 --- a/Lab02/documentation/bufferOverflow/bufferOverflow.tex +++ b/Lab02/documentation/bufferOverflow/bufferOverflow.tex @@ -118,7 +118,7 @@ Damit werden 28x'A' und die Adresse der Win-Funktion als argument der Software m \end{center} \end{figure} -Die erneute Ausgabe der wichtigen Adressen zeigt uns nun, dass der EIP mit \verb|\x41\x41\x41\x41| überschrieben wurde (Abbildung \ref{fig:Zweiter Stackpointer}) und deshalt korrekt gesetzt werden sollte. Deswegen endet das weitere Ausführen, nach einer erfolgreichen Runde in einem segmentation fault (Abbildung \ref{fig:Segmentation Fault}). +Die erneute Ausgabe der wichtigen Adressen zeigt uns nun, dass der EIP mit \verb|\x41\x41\x41\x41| überschrieben wurde (Abbildung \ref{fig:Zweiter Stackpointer}) und deshalb korrekt gesetzt werden sollte. Deswegen endet das weitere Ausführen, nach einer erfolgreichen Runde in einem segmentation fault (Abbildung \ref{fig:Segmentation Fault}). \begin{figure}[H] \begin{center} @@ -154,7 +154,7 @@ Und es wird 5 mal in Folge gewonnen: \subsection{Stack} -\textcolor{codegray}{Startaddresse} \textcolor{codegreen}{Eingefügte ``A''} \textcolor{codepurple}{Alte EBP Adresse} \textcolor{weborange}{Win-Funktion} +\textcolor{codegray}{Startaddresse} \textcolor{codegreen}{Eingefügte ``A''s} \textcolor{codepurple}{EBP} \textcolor{weborange}{Win-Funktion} \begin{center} \begin{tabular}{|l|l||r|} @@ -193,3 +193,10 @@ Und es wird 5 mal in Folge gewonnen: \end{tabular} \end{center} +\subsection{Warum so gefährlich \& was getan werden muss} + +Veränderung des Ablaufs der Software kann ewaige Authentifizierung und Validierung ausschalten und somit Zugriff auf Informationen erlangt werden. + +Gegenmaßnahmen: + +Um den Buffer Overflow zu verhindern, sollten Funktionen wie strcpy vermieden werden. Im Beispielprogramm wurde die Eingabe des Nutzers direkt an die Funktion als Pointer weitergegeben anstatt davor eine Validierung durchzuführen. diff --git a/Lab02/documentation/format-string/format-string.tex b/Lab02/documentation/format-string/format-string.tex index 0a01e79..9b3addc 100644 --- a/Lab02/documentation/format-string/format-string.tex +++ b/Lab02/documentation/format-string/format-string.tex @@ -26,4 +26,6 @@ Der Key ist im Speicher unter der Adresse 0xbffff2ec abgespeichert und kann mit Durch einen Format String Exploit kann jede Stelle im Speicher ausgelesen werden. Damit ist die Vertraulichkeit, ein Teil der ``CIA'', gebrochen. +Gegenmaßnahmen: + Format Strings sollten immer als Teil des Programms angegeben werden, nicht als Teil der Eingabe. Außerdem könnten die Formatzeichenfolgen als konstanten deklariert werden. diff --git a/Lab02/documentation/shell/shell.tex b/Lab02/documentation/shell/shell.tex index 5fb0171..9828dcc 100644 --- a/Lab02/documentation/shell/shell.tex +++ b/Lab02/documentation/shell/shell.tex @@ -67,8 +67,11 @@ Zusätzlich muss damit auch der EBP getroffen werden. Der shell-code ist 106 byt \lstinputlisting[language=python] {images/shell/exploit.py} -\subsection{Verhindern des Buffer Overflows} +\subsection{Warum so gefährlich \& was getan werden muss} +Es können eigene Skripte ausgeführt werden. Damit gibt es kein Limit für den Angreifer. Somit auf jeden Fall zu vermeiden! + +Gegenmaßnahmen: \begin{list}{-}{} \item ASLR (Address space layout randomization) - das Programm landet an unterschiedlichen Speicherstellen \item Never Execute Bit (NX-BIT) - Stellen als ``nicht ausführbar'' markieren