diff --git a/bof.pdf b/bof.pdf index db9e1a8..c22d63c 100644 Binary files a/bof.pdf and b/bof.pdf differ diff --git a/bof.tex b/bof.tex index e7803ab..4f5c315 100644 --- a/bof.tex +++ b/bof.tex @@ -43,12 +43,11 @@ \AtBeginSection[] {% - \begin{frame} - \frametitle{Inhalt} + \begin{frame}[shrink]{Inhalt} \tableofcontents[ currentsection, hideothersubsections, - sectionstyle=show/hide, + sectionstyle=show/shaded, subsectionstyle=show/shaded/hide, ] \end{frame} @@ -89,24 +88,22 @@ \maketitle -\frame{% - \frametitle{Inhalt} +\begin{frame}[shrink]{Inhalt} \tableofcontents[ sectionstyle=show/show, subsectionstyle=hide/hide, ] -} +\end{frame} \section{Problem} -\begin{frame} -\frametitle{Problem} -\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}) +\begin{frame}{Problem} + \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 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 -\end{itemize} + \item Entsprechend präparierter Input kann dazu führen, dass ein Angreifer den Ablauf der Programmausführung übernehmen kann + \end{itemize} \end{frame} \section{Beispiel} @@ -114,13 +111,8 @@ \inputminted[firstline=4,lastline=13]{c}{assets/bof/logic/logic.c} \end{frame} -% \begin{frame} -% \inputminted[firstline=3,lastline=7]{c}{assets/bof/vuln.c} -% \end{frame} - \section{Stack Layout, Execution Flow} -\begin{frame} - \frametitle{Stack Layout} +\begin{frame}{Stack Layout} \begin{figure} \centering \includegraphics[width=.25\textwidth]{stack.png} @@ -128,8 +120,7 @@ \end{figure} \end{frame} -\begin{frame} - \frametitle{Stack Layout} +\begin{frame}{Stack Layout} \begin{figure} \centering \includegraphics[width=.60\textwidth]{stack_overflow.png} @@ -137,8 +128,7 @@ \end{figure} \end{frame} -\begin{frame} - \frametitle{Execution Flow} +\begin{frame}{Execution Flow} \begin{itemize} \item Beim Aufruf einer Funktion, aktuelle Adresse auf Stack \item \emph{\Ac{ip}} auf Adresse der aufgerufenen Funktion @@ -164,8 +154,7 @@ \end{frame} \section{Exploitation} -\begin{frame} - \frametitle{Code Execution} +\begin{frame}{Code Execution} \begin{itemize} \item Shellcode im Speicher plazieren \item Buffer überschreiben @@ -175,8 +164,7 @@ \end{frame} \section{Aktuelles Beispiel} -\begin{frame} - \frametitle{Beispiel in freier Wildbahn} +\begin{frame}{Beispiel in freier Wildbahn} \begin{description} \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} @@ -186,8 +174,7 @@ \end{frame} \section{Aktuelle Situation} -\begin{frame} - \frametitle{Migrationen} +\begin{frame}{Migrationen} \begin{itemize} \item \Ac{aslr} \item \emph{w\^{}x} Memory @@ -200,9 +187,7 @@ \appendix % \nocite{*} \section*{Quellen} -\begin{frame}[allowframebreaks] - \frametitle{Quellen} - +\begin{frame}[allowframebreaks]{Quellen} \printbibliography[heading=none]{} \end{frame} diff --git a/linux_intro.pdf b/linux_intro.pdf index 8293087..68f1015 100644 Binary files a/linux_intro.pdf and b/linux_intro.pdf differ diff --git a/linux_intro.tex b/linux_intro.tex index 2e86747..12cc45e 100644 --- a/linux_intro.tex +++ b/linux_intro.tex @@ -43,21 +43,21 @@ \AtBeginSection[] {% - \begin{frame} - \frametitle{Inhalt} + \begin{frame}[shrink]{Inhalt} \tableofcontents[ currentsection, hideothersubsections, - sectionstyle=show/hide, + sectionstyle=show/shaded, subsectionstyle=show/hide/hide, ] \end{frame} \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}}% +\begin{document} + \title{Linux Einführung} \author{Magdalena Reif \inst{1} \and Valentin Brandl \inst{2}} @@ -68,17 +68,15 @@ \maketitle -\frame{% - \frametitle{Inhalt} +\begin{frame}[shrink]{Inhalt} \tableofcontents[ sectionstyle=show/show, subsectionstyle=hide/hide, ] -} +\end{frame} \section{Linux} -\begin{frame} - \frametitle{Ganz kurze Geschichte} +\begin{frame}{Ganz kurze Geschichte} \begin{itemize} \item ab 1991 von dem Finnen Linux Torvalds entwickelt \item organisiert Kernelentwicklung bis heute @@ -96,8 +94,7 @@ \end{frame} \section{Navigation im Terminal} -\begin{frame} - \frametitle{whoami? whereami? whenami?} +\begin{frame}{whoami? whereami? whenami?} \begin{itemize} \item \mintinline{bash}{whoami} \item \mintinline{bash}{pwd} (print working directory) @@ -106,8 +103,7 @@ \end{itemize} \end{frame} -\begin{frame} - \frametitle{looking around} +\begin{frame}{looking around} \begin{itemize} \item \mintinline{bash}{tree} \item \mintinline{bash}{ls} (list) @@ -115,8 +111,7 @@ \end{itemize} \end{frame} -\begin{frame} - \frametitle{Change directories} +\begin{frame}{Change directories} \begin{itemize} \item \mintinline{bash}{cd} \mintinline{bash}{cd ..} \mintinline{bash}{cd ../../..} \item absolute path @@ -138,43 +133,36 @@ \section{Unix Stuff} -\begin{frame} - \frametitle{Aktueller Benutzer --- \emph{id}} +\begin{frame}{Aktueller Benutzer --- \emph{id}} \includegraphics[width=\textwidth]{id.png} \end{frame} -\begin{frame} - \frametitle{Aktuell aktive Benutzer --- \emph{w}} +\begin{frame}{Aktuell aktive Benutzer --- \emph{w}} \includegraphics[width=\textwidth]{w.png} \end{frame} -\begin{frame} - \frametitle{\emph{man}, where is my car} +\begin{frame}{\emph{man}, where is my car} \includegraphics[width=\textwidth]{man.png} \end{frame} \section{Dateien Analysieren} -\begin{frame} - \frametitle{Dateiinhalt einsehen} +\begin{frame}{Dateiinhalt einsehen} \begin{description} \item[\emph{cat}] Für Textdateien \item[\emph{xxd}] Für Binärdateien \end{description} \end{frame} -\begin{frame} - \frametitle{Dateiinhalt einsehen --- \emph{cat}} +\begin{frame}{Dateiinhalt einsehen --- \emph{cat}} \includegraphics[width=.7\textwidth]{cat.png} \end{frame} -\begin{frame} - \frametitle{Dateiinhalt einsehen --- \emph{xxd}} +\begin{frame}{Dateiinhalt einsehen --- \emph{xxd}} \includegraphics[width=\textwidth]{xxd.png} \end{frame} -\begin{frame} - \frametitle{In Dateien Suchen --- \emph{grep}} +\begin{frame}{In Dateien Suchen --- \emph{grep}} \begin{itemize} \item \mintinline{bash}{grep regex datainame} \item \mintinline{bash}{grep --ignore-case regex datainame} @@ -182,8 +170,7 @@ \end{itemize} \end{frame} -\begin{frame} - \frametitle{In Dateien Suchen --- \emph{grep}} +\begin{frame}{In Dateien Suchen --- \emph{grep}} \centering \begin{tabular}{@{}c@{}} \begin{tabular}{c} @@ -195,8 +182,7 @@ \end{tabular} \end{frame} -\begin{frame} - \frametitle{Ausgaben Umleiten und Wiederverwenden} +\begin{frame}{Ausgaben Umleiten und Wiederverwenden} \begin{itemize} \item Ausgabe in Datei umleiten: \mintinline{bash}{>} \item Verketten durch pipes: \mintinline{bash}{|} @@ -204,19 +190,16 @@ \end{itemize} \end{frame} -\begin{frame} - \frametitle{Ausgaben Umleiten und Wiederverwenden} +\begin{frame}{Ausgaben Umleiten und Wiederverwenden} \includegraphics[width=\linewidth]{redirect_pipe.png} \end{frame} -\begin{frame} - \frametitle{Ausgabe als temporäre Datei} +\begin{frame}{Ausgabe als temporäre Datei} \includegraphics[width=\textwidth]{temp_file.png} \end{frame} -\begin{frame} - \frametitle{Strings in Binärdateien finden --- \emph{strings}} +\begin{frame}{Strings in Binärdateien finden --- \emph{strings}} \includegraphics[width=\textwidth]{strings.png} \end{frame} @@ -224,32 +207,26 @@ \section{Networking} -\begin{frame} - \frametitle{Dateien Herunterladen --- \emph{wget}} +\begin{frame}{Dateien Herunterladen --- \emph{wget}} \includegraphics[width=\textwidth]{wget.png} \end{frame} -\begin{frame} - \frametitle{Dateien Herunterladen --- \emph{curl}} +\begin{frame}{Dateien Herunterladen --- \emph{curl}} \includegraphics[width=\textwidth]{curl.png} \end{frame} -\begin{frame} - \frametitle{Portscan --- \emph{nmap}} +\begin{frame}{Portscan --- \emph{nmap}} \includegraphics[width=\textwidth]{nmap.png} \end{frame} -\begin{frame} - \frametitle{DNS Lookups --- \emph{dig}} +\begin{frame}{DNS Lookups --- \emph{dig}} \includegraphics[width=.9\textwidth]{dig.png} \end{frame} \appendix % \nocite{*} \section*{Quellen} -\begin{frame}[allowframebreaks] - \frametitle{Quellen} - +\begin{frame}[allowframebreaks]{Quellen} \printbibliography[heading=none]{} \end{frame}