> 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/writeups-ctf/hackthebox/linux-easy/delivery-hackthebox-writeup.md).

# Разбор Delivery на HackTheBox

{% embed url="<https://app.hackthebox.com/machines/Delivery>" %}

{% hint style="warning" %}
**Навыки:**

* Перечисление виртуальных хостов
* Злоупотребление системой тикетов поддержки
* Доступ к Mattermost
* Утечка информации
* Перечисление базы данных — MySQL
* Взлом хэшей
* Работа с правилами hashcat для создания паролей
* Использование sucrack, чтобы выяснить пароль пользователя
  {% endhint %}

## Разведка

**Настройка рабочей среды:**

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

<figure><img src="/files/ef29412dcbd116469873de2a3cd24b02aba7bb39" alt="" width="563"><figcaption></figcaption></figure>

**Проверка подключения VPN**

Проверьте подключение к VPN, чтобы обеспечить стабильную связь с целевой машиной.

<figure><img src="/files/8bb0aab0a0ca41390d69b9e9faf6eb7aa7ece444" alt="" width="563"><figcaption></figcaption></figure>

**Обнаружение открытых портов с помощью Nmap:**

Перечислите открытые порты и экспортируйте результаты в файл "allPorts" в каталоге Nmap:

```bash
nmap -p- --open -sS -n -Pn --min-rate 5000 -vvv 10.10.10.222 -oG allPorts
```

<figure><img src="/files/9518a8d9efbb8426a1037657e4e9770974798d58" alt=""><figcaption></figcaption></figure>

**Анализ открытых портов с помощью extractPorts:**

Используем функцию extractPorts для отображения открытых портов в кратком формате и копирования их в буфер обмена (22,80,8085)

<figure><img src="/files/cccbdfb1fe6d65a9165fcf630c879abe334ed8e9" alt="" width="563"><figcaption></figcaption></figure>

**Сканирование версий портов с Nmap:**

Используйте Nmap для сканирования версий сервисов и сохраните вывод в файл "targeted":

```bash
nmap -sCV -p22,80,8065 10.10.10.222 -oN targeted
```

<figure><img src="/files/cbda9a3676c87b40b9e37c57631bf18138e66ca5" alt=""><figcaption></figcaption></figure>

### Порт 80:

<figure><img src="/files/595db0791fb9f5770665926c21597027a8e4071c" alt=""><figcaption></figcaption></figure>

**Выявление информации с помощью WhatWeb:**

Запуск WhatWeb выявляет пользователя **jane** с адресом электронной почты **<jane@untitled.tld>**.

```bash
whatweb 10.10.10.222
```

<figure><img src="/files/e2b3916a8d00192ac1eaf3e8410b1afe07d9609b" alt=""><figcaption></figcaption></figure>

Также мы находим домен **delivery.htb** и поддомен **helpdesk.delivery.htb**.

<figure><img src="/files/fbd6be594124ccbd75f48b68fe5f9302d19d67b5" alt="" width="563"><figcaption></figcaption></figure>

**Настройка файла /etc/hosts**

Мы добавляем IP-адрес цели в наш `/etc/hosts` файл, чтобы упростить локальное разрешение DNS.

<figure><img src="/files/6744b0a77fc120482744da2f591bdfdc228ac47f" alt="" width="563"><figcaption></figcaption></figure>

## **Support Center - HelpDesk :**

У `helpdesk.delivery.htb` поддомен позволяет создавать тикеты поддержки. Мы пытаемся создать аккаунт со следующими данными:

<figure><img src="/files/594283a582e14073fcf58ac16aae1e461abe145c" alt=""><figcaption></figcaption></figure>

**Создание тикета**

* `jordan@delivery.com`

<figure><img src="/files/f4f8940a256d4b2914858f41dbb12c31c3c1188d" alt=""><figcaption></figcaption></figure>

Открыт новый тикет, и мы получаем письмо, содержащее идентификатор:

* **Эл. почта** : <7990131@delivery.htb>
* **ID тикета**: 7990131

<figure><img src="/files/0e788dcbcacc917b4f688dae259bee4e9beaba4a" alt=""><figcaption></figcaption></figure>

При проверке тикета мы используем наш собственный адрес электронной почты (**<jordan@delivery.com>**), хотя мы его не создавали, а также номер полученного тикета (**7990131**).

<figure><img src="/files/ce53c0e0cc645b09f72bd055aec860f3aed7b43f" alt=""><figcaption></figcaption></figure>

Это позволяет нам получить доступ к связанному почтовому ящику.

<figure><img src="/files/10b2b5918514a9313a2faa1e6d0f940fe4311b9d" alt=""><figcaption></figcaption></figure>

### Порт 8065 - Mattermost

**Обнаружение Mattermost:**

Порт **8065** размещает **Mattermost** CMS.

<figure><img src="/files/487cccc9b5fe8ab429cbd0789fb01724cacdcd99" alt=""><figcaption></figcaption></figure>

**Попытка создать аккаунт:**

Мы пытаемся создать аккаунт, затем используем адрес электронной почты: <7990131@delivery.htb> имя: jordan1 пароль Jordan1234#

<figure><img src="/files/5cf44d44f0e70644c88bced21297ff105ed28914" alt=""><figcaption></figcaption></figure>

Мы получаем сообщение с подтверждением, содержащее **токен** для активации аккаунта:

<figure><img src="/files/7ffaa27db8ff89e1286b9f535acf027a9d6920de" alt="" width="563"><figcaption></figcaption></figure>

{% code overflow="wrap" %}

```
http://delivery.htb:8065/do_verify_email?token=hs36amqfpkm3hcguxsmrton83e7a9k7xp595rga6zhwzd35awf1krpftfqink3go&email=7990131%40delivery.htb 
```

{% endcode %}

<figure><img src="/files/51a73c59eb103ec17a526422c512fd9013a14f15" alt=""><figcaption></figcaption></figure>

После подтверждения мы подключаемся со своими учетными данными и получаем доступ к Mattermost **панель управления**.

<figure><img src="/files/60367d7afb63fc9be246bb86635d673859ed25c5" alt=""><figcaption></figcaption></figure>

**Восстановление учетных данных**

В **«Переключить каналы»** в разделе мы находим сообщение, содержащее имя пользователя и пароль:

* **Имя пользователя**: `maildeliverer`
* **Пароль**: Youve/\_G0t/\_Mail!

<figure><img src="/files/d946cf0597db4574fd8d0eec2a90062c42af33fc" alt=""><figcaption></figcaption></figure>

Затем мы пытаемся подключиться по SSH с этими учетными данными:

```bash
ssh maildeliverer@delivery.htb
```

<figure><img src="/files/1a847e04d62dc5c5d82c288940af4544e40838f2" alt=""><figcaption></figcaption></figure>

### Флаг user.txt :)

<figure><img src="/files/01ee01b40cff2d2d5eb24226be55a4b6a33a91c5" alt="" width="563"><figcaption></figcaption></figure>

## **Повышение привилегий**

Переходим в корень системы, в `/var/www/html/osticket` папке и фильтруем по слову **пароль**:

```bash
grep -ir "password"
```

Мы не находим ничего интересного.

Теперь мы будем искать информацию для **Mattermost** путем фильтрации запущенных процессов:

```bash
ps -faux
```

<figure><img src="/files/5d139c40b7d2e87c4ac7f1536e56b8b7c489630a" alt=""><figcaption></figcaption></figure>

Мы замечаем, что Mattermost установлен в `/opt` и находим **config.json** файле.

<figure><img src="/files/95d5097f77d2a8c2891961febde057ebc26bb565" alt=""><figcaption></figcaption></figure>

Открыв его, мы обнаруживаем учетные данные для SQL-базы данных:

<figure><img src="/files/67de7f76ac6c2524ce0b4549b2ba8ca23889109b" alt=""><figcaption></figcaption></figure>

* Имя пользователя: `mmuser`
* Пароль: `Crack_The_MM_Admin_PW`

### Подключение к MySQL

Мы используем эти учетные данные для подключения к базе данных:

```bash
mysql -u mmuser -p
```

Мы выводим список баз данных:

```sql
show databases;
use mattermost
```

<figure><img src="/files/450a6606054c078b90052670d1e3a9825beec603" alt="" width="563"><figcaption></figcaption></figure>

Мы выводим доступные таблицы и описываем структуру **Users** таблице:

```sql
show tables;
describe Users;
```

<figure><img src="/files/98cd2be0fe366a11306869acc47a85b60b91912c" alt=""><figcaption></figcaption></figure>

Затем мы находим **Имя пользователя** и **Пароль** столбцов:

```sql
select Username, Password from Users;
```

Затем мы находим **хеш пароля root:**

`$2a$10$VM6EeymRxJ29r8Wjkr8Dtev0O.1STWb4.4ScG.anuu7v0EFJwgjjO`

<figure><img src="/files/8f5e93f4a380c34cd1c7c2060c7f55d3663a13b8" alt=""><figcaption></figcaption></figure>

### 1. Брутфорс — хеш

Мы используем **hashid** для определения типа хэша:

```bash
hashid hash
```

<figure><img src="/files/e42f098961b04aec1a2f18fc73430105ac881da8" alt=""><figcaption></figcaption></figure>

Хэш определяется как **bcrypt**.

С **John the Ripper**, мы запустим атаку перебором, указав **bcrypt** формат:

```bash
john --format=bcrypt hash -w /usr/share/wordlists/rockyou.txt
```

Однако это не работает с **rockyou.txt**, пароль не найден.

<figure><img src="/files/057058d01512c1bde22042c340ffe28229061327" alt=""><figcaption></figcaption></figure>

Наблюдая за групповым чатом, мы замечаем, что они прямо говорят, что пароль **"PleaseSubscribe!"** используется повторно. Этот пароль не встречается в **rockyou.txt**, но хакер мог бы использовать **hashcat** для генерации вариантов.

<figure><img src="/files/67a627f1a12992e33f522ed1ff5cd80ee9d3c866" alt=""><figcaption></figcaption></figure>

### Варианты паролей — Hashcat

**Генерация вариантов с помощью Hashcat**

С **hashcat**, мы создадим варианты пароля:

```bash
hashcat --stdout -r /usr/share/hashcat/rules/best64.rule password
```

<figure><img src="/files/96d9ade4611fb79acb19a758764f34e881641b9b" alt=""><figcaption></figcaption></figure>

Затем мы попытаемся взломать хэш, используя **hashcat** и новый словарь:

```bash
hashcat -m 3200 -a 0 hash passwords
```

Найденный пароль:  **PleaseSubscribe!21**

<figure><img src="/files/1c4e4fc620d56cf40a5d39cc225ad93fd89a29d3" alt=""><figcaption></figcaption></figure>

### 2. Брутфорс для "su" — sucrack

Мы запустим атаку против **su**:

```bash
sucrack -w 20 -u root passwords
```

<figure><img src="/files/18eeb022144762523742126164737ce22100cd10" alt=""><figcaption></figcaption></figure>

Это говорит нам, что пароль правильный: **PleaseSubscribe!21**

Мы успешно входим как **root**.

<figure><img src="/files/d387339d4c29b12a20754204ee18c8046f8d429b" alt="" width="563"><figcaption></figcaption></figure>

### Флаг root.txt :)

<figure><img src="/files/fb0e7519dd460168365bd7e345dd40b8853c166c" alt="" width="530"><figcaption></figcaption></figure>

<figure><img src="/files/86527bccb171ff7cfef8b8a4958f3f21a72c8d06" alt="" width="498"><figcaption></figcaption></figure>


---

# 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/writeups-ctf/hackthebox/linux-easy/delivery-hackthebox-writeup.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.
