Fix ToC layout

This commit is contained in:
Valentin Brandl 2022-10-21 16:50:48 +02:00
parent 4039548472
commit 03c7eb3866
4 changed files with 44 additions and 82 deletions

BIN
bof.pdf

Binary file not shown.

43
bof.tex
View File

@ -43,12 +43,11 @@
\AtBeginSection[] \AtBeginSection[]
{% {%
\begin{frame} \begin{frame}[shrink]{Inhalt}
\frametitle{Inhalt}
\tableofcontents[ \tableofcontents[
currentsection, currentsection,
hideothersubsections, hideothersubsections,
sectionstyle=show/hide, sectionstyle=show/shaded,
subsectionstyle=show/shaded/hide, subsectionstyle=show/shaded/hide,
] ]
\end{frame} \end{frame}
@ -89,24 +88,22 @@
\maketitle \maketitle
\frame{% \begin{frame}[shrink]{Inhalt}
\frametitle{Inhalt}
\tableofcontents[ \tableofcontents[
sectionstyle=show/show, sectionstyle=show/show,
subsectionstyle=hide/hide, subsectionstyle=hide/hide,
] ]
} \end{frame}
\section{Problem} \section{Problem}
\begin{frame} \begin{frame}{Problem}
\frametitle{Problem} \begin{itemize}
\begin{itemize}
\item Maschinennahe Programmiersprachen ohne Memorysafety (z.B. C, C++, Assembly, FORTRAN) erlauben es, Speicher beliebig zu beschreiben (\mintinline{c}{arr[i] == arr + sizeof(int) * i}) \item Maschinennahe Programmiersprachen ohne Memorysafety (z.B. C, C++, Assembly, FORTRAN) erlauben es, Speicher beliebig zu beschreiben (\mintinline{c}{arr[i] == arr + sizeof(int) * i})
\item Bei fehlender Validierung kann ein Programm mehr Speicher schreiben, als eigentlich reserviert wurde und dabei andere Daten im RAM überschreiben \item Bei fehlender Validierung kann ein Programm mehr Speicher schreiben, als eigentlich reserviert wurde und dabei andere Daten im RAM überschreiben
\item Entsprechend präparierter Input kann dazu führen, dass ein Angreifer den Ablauf der Programmausführung übernehmen kann \item Entsprechend präparierter Input kann dazu führen, dass ein Angreifer den Ablauf der Programmausführung übernehmen kann
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\section{Beispiel} \section{Beispiel}
@ -114,13 +111,8 @@
\inputminted[firstline=4,lastline=13]{c}{assets/bof/logic/logic.c} \inputminted[firstline=4,lastline=13]{c}{assets/bof/logic/logic.c}
\end{frame} \end{frame}
% \begin{frame}
% \inputminted[firstline=3,lastline=7]{c}{assets/bof/vuln.c}
% \end{frame}
\section{Stack Layout, Execution Flow} \section{Stack Layout, Execution Flow}
\begin{frame} \begin{frame}{Stack Layout}
\frametitle{Stack Layout}
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=.25\textwidth]{stack.png} \includegraphics[width=.25\textwidth]{stack.png}
@ -128,8 +120,7 @@
\end{figure} \end{figure}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Stack Layout}
\frametitle{Stack Layout}
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=.60\textwidth]{stack_overflow.png} \includegraphics[width=.60\textwidth]{stack_overflow.png}
@ -137,8 +128,7 @@
\end{figure} \end{figure}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Execution Flow}
\frametitle{Execution Flow}
\begin{itemize} \begin{itemize}
\item Beim Aufruf einer Funktion, aktuelle Adresse auf Stack \item Beim Aufruf einer Funktion, aktuelle Adresse auf Stack
\item \emph{\Ac{ip}} auf Adresse der aufgerufenen Funktion \item \emph{\Ac{ip}} auf Adresse der aufgerufenen Funktion
@ -164,8 +154,7 @@
\end{frame} \end{frame}
\section{Exploitation} \section{Exploitation}
\begin{frame} \begin{frame}{Code Execution}
\frametitle{Code Execution}
\begin{itemize} \begin{itemize}
\item Shellcode im Speicher plazieren \item Shellcode im Speicher plazieren
\item Buffer überschreiben \item Buffer überschreiben
@ -175,8 +164,7 @@
\end{frame} \end{frame}
\section{Aktuelles Beispiel} \section{Aktuelles Beispiel}
\begin{frame} \begin{frame}{Beispiel in freier Wildbahn}
\frametitle{Beispiel in freier Wildbahn}
\begin{description} \begin{description}
\item[\emph{Chromium}] Heap Buffer Overflown WebGPU: \emph{CVE-2022-1483}~\cite{CVE-2022-1483} \item[\emph{Chromium}] Heap Buffer Overflown WebGPU: \emph{CVE-2022-1483}~\cite{CVE-2022-1483}
\item[\emph{Linux Kernel}] Heap Buffer Overflow durch Integer Overflow: \emph{CVE-2022-39842}~\cite{CVE-2022-39842} \item[\emph{Linux Kernel}] Heap Buffer Overflow durch Integer Overflow: \emph{CVE-2022-39842}~\cite{CVE-2022-39842}
@ -186,8 +174,7 @@
\end{frame} \end{frame}
\section{Aktuelle Situation} \section{Aktuelle Situation}
\begin{frame} \begin{frame}{Migrationen}
\frametitle{Migrationen}
\begin{itemize} \begin{itemize}
\item \Ac{aslr} \item \Ac{aslr}
\item \emph{w\^{}x} Memory \item \emph{w\^{}x} Memory
@ -200,9 +187,7 @@
\appendix \appendix
% \nocite{*} % \nocite{*}
\section*{Quellen} \section*{Quellen}
\begin{frame}[allowframebreaks] \begin{frame}[allowframebreaks]{Quellen}
\frametitle{Quellen}
\printbibliography[heading=none]{} \printbibliography[heading=none]{}
\end{frame} \end{frame}

Binary file not shown.

View File

@ -43,21 +43,21 @@
\AtBeginSection[] \AtBeginSection[]
{% {%
\begin{frame} \begin{frame}[shrink]{Inhalt}
\frametitle{Inhalt}
\tableofcontents[ \tableofcontents[
currentsection, currentsection,
hideothersubsections, hideothersubsections,
sectionstyle=show/hide, sectionstyle=show/shaded,
subsectionstyle=show/hide/hide, subsectionstyle=show/hide/hide,
] ]
\end{frame} \end{frame}
\addtocounter{framenumber}{-1}% If you don't want them to affect the slide number \addtocounter{framenumber}{-1}% If you don't want them to affect the slide number
} }
\begin{document}
\newcommand{\genemail}[1]{\href{mailto:#1}{\textless\nolinkurl{#1}\textgreater}}% \newcommand{\genemail}[1]{\href{mailto:#1}{\textless\nolinkurl{#1}\textgreater}}%
\begin{document}
\title{Linux Einführung} \title{Linux Einführung}
\author{Magdalena Reif \inst{1} \and Valentin Brandl \inst{2}} \author{Magdalena Reif \inst{1} \and Valentin Brandl \inst{2}}
@ -68,17 +68,15 @@
\maketitle \maketitle
\frame{% \begin{frame}[shrink]{Inhalt}
\frametitle{Inhalt}
\tableofcontents[ \tableofcontents[
sectionstyle=show/show, sectionstyle=show/show,
subsectionstyle=hide/hide, subsectionstyle=hide/hide,
] ]
} \end{frame}
\section{Linux} \section{Linux}
\begin{frame} \begin{frame}{Ganz kurze Geschichte}
\frametitle{Ganz kurze Geschichte}
\begin{itemize} \begin{itemize}
\item ab 1991 von dem Finnen Linux Torvalds entwickelt \item ab 1991 von dem Finnen Linux Torvalds entwickelt
\item organisiert Kernelentwicklung bis heute \item organisiert Kernelentwicklung bis heute
@ -96,8 +94,7 @@
\end{frame} \end{frame}
\section{Navigation im Terminal} \section{Navigation im Terminal}
\begin{frame} \begin{frame}{whoami? whereami? whenami?}
\frametitle{whoami? whereami? whenami?}
\begin{itemize} \begin{itemize}
\item \mintinline{bash}{whoami} \item \mintinline{bash}{whoami}
\item \mintinline{bash}{pwd} (print working directory) \item \mintinline{bash}{pwd} (print working directory)
@ -106,8 +103,7 @@
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{looking around}
\frametitle{looking around}
\begin{itemize} \begin{itemize}
\item \mintinline{bash}{tree} \item \mintinline{bash}{tree}
\item \mintinline{bash}{ls} (list) \item \mintinline{bash}{ls} (list)
@ -115,8 +111,7 @@
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Change directories}
\frametitle{Change directories}
\begin{itemize} \begin{itemize}
\item \mintinline{bash}{cd} \mintinline{bash}{cd ..} \mintinline{bash}{cd ../../..} \item \mintinline{bash}{cd} \mintinline{bash}{cd ..} \mintinline{bash}{cd ../../..}
\item absolute path \item absolute path
@ -138,43 +133,36 @@
\section{Unix Stuff} \section{Unix Stuff}
\begin{frame} \begin{frame}{Aktueller Benutzer --- \emph{id}}
\frametitle{Aktueller Benutzer --- \emph{id}}
\includegraphics[width=\textwidth]{id.png} \includegraphics[width=\textwidth]{id.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Aktuell aktive Benutzer --- \emph{w}}
\frametitle{Aktuell aktive Benutzer --- \emph{w}}
\includegraphics[width=\textwidth]{w.png} \includegraphics[width=\textwidth]{w.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{\emph{man}, where is my car}
\frametitle{\emph{man}, where is my car}
\includegraphics[width=\textwidth]{man.png} \includegraphics[width=\textwidth]{man.png}
\end{frame} \end{frame}
\section{Dateien Analysieren} \section{Dateien Analysieren}
\begin{frame} \begin{frame}{Dateiinhalt einsehen}
\frametitle{Dateiinhalt einsehen}
\begin{description} \begin{description}
\item[\emph{cat}] Für Textdateien \item[\emph{cat}] Für Textdateien
\item[\emph{xxd}] Für Binärdateien \item[\emph{xxd}] Für Binärdateien
\end{description} \end{description}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Dateiinhalt einsehen --- \emph{cat}}
\frametitle{Dateiinhalt einsehen --- \emph{cat}}
\includegraphics[width=.7\textwidth]{cat.png} \includegraphics[width=.7\textwidth]{cat.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Dateiinhalt einsehen --- \emph{xxd}}
\frametitle{Dateiinhalt einsehen --- \emph{xxd}}
\includegraphics[width=\textwidth]{xxd.png} \includegraphics[width=\textwidth]{xxd.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{In Dateien Suchen --- \emph{grep}}
\frametitle{In Dateien Suchen --- \emph{grep}}
\begin{itemize} \begin{itemize}
\item \mintinline{bash}{grep regex datainame} \item \mintinline{bash}{grep regex datainame}
\item \mintinline{bash}{grep --ignore-case regex datainame} \item \mintinline{bash}{grep --ignore-case regex datainame}
@ -182,8 +170,7 @@
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{In Dateien Suchen --- \emph{grep}}
\frametitle{In Dateien Suchen --- \emph{grep}}
\centering \centering
\begin{tabular}{@{}c@{}} \begin{tabular}{@{}c@{}}
\begin{tabular}{c} \begin{tabular}{c}
@ -195,8 +182,7 @@
\end{tabular} \end{tabular}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Ausgaben Umleiten und Wiederverwenden}
\frametitle{Ausgaben Umleiten und Wiederverwenden}
\begin{itemize} \begin{itemize}
\item Ausgabe in Datei umleiten: \mintinline{bash}{>} \item Ausgabe in Datei umleiten: \mintinline{bash}{>}
\item Verketten durch pipes: \mintinline{bash}{|} \item Verketten durch pipes: \mintinline{bash}{|}
@ -204,19 +190,16 @@
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Ausgaben Umleiten und Wiederverwenden}
\frametitle{Ausgaben Umleiten und Wiederverwenden}
\includegraphics[width=\linewidth]{redirect_pipe.png} \includegraphics[width=\linewidth]{redirect_pipe.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Ausgabe als temporäre Datei}
\frametitle{Ausgabe als temporäre Datei}
\includegraphics[width=\textwidth]{temp_file.png} \includegraphics[width=\textwidth]{temp_file.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Strings in Binärdateien finden --- \emph{strings}}
\frametitle{Strings in Binärdateien finden --- \emph{strings}}
\includegraphics[width=\textwidth]{strings.png} \includegraphics[width=\textwidth]{strings.png}
\end{frame} \end{frame}
@ -224,32 +207,26 @@
\section{Networking} \section{Networking}
\begin{frame} \begin{frame}{Dateien Herunterladen --- \emph{wget}}
\frametitle{Dateien Herunterladen --- \emph{wget}}
\includegraphics[width=\textwidth]{wget.png} \includegraphics[width=\textwidth]{wget.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Dateien Herunterladen --- \emph{curl}}
\frametitle{Dateien Herunterladen --- \emph{curl}}
\includegraphics[width=\textwidth]{curl.png} \includegraphics[width=\textwidth]{curl.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{Portscan --- \emph{nmap}}
\frametitle{Portscan --- \emph{nmap}}
\includegraphics[width=\textwidth]{nmap.png} \includegraphics[width=\textwidth]{nmap.png}
\end{frame} \end{frame}
\begin{frame} \begin{frame}{DNS Lookups --- \emph{dig}}
\frametitle{DNS Lookups --- \emph{dig}}
\includegraphics[width=.9\textwidth]{dig.png} \includegraphics[width=.9\textwidth]{dig.png}
\end{frame} \end{frame}
\appendix \appendix
% \nocite{*} % \nocite{*}
\section*{Quellen} \section*{Quellen}
\begin{frame}[allowframebreaks] \begin{frame}[allowframebreaks]{Quellen}
\frametitle{Quellen}
\printbibliography[heading=none]{} \printbibliography[heading=none]{}
\end{frame} \end{frame}