```
## DSN Reports
-**Звіти про статус доставки**: Якщо ви надішлете **електронну пошту** організації на **недійсну адресу**, організація повідомить, що адреса була недійсною, надіславши **лист назад вам**. **Заголовки** повернутого електронного листа **міститимуть** можливу **чутливу інформацію** (таку як IP-адреса поштових служб, які взаємодіяли зі звітами, або інформацію про антивірусне програмне забезпечення).
+**Звіти про статус доставки**: Якщо ви надішлете **електронну пошту** організації на **недійсну адресу**, організація повідомить, що адреса була недійсною, надіславши **лист назад вам**. **Заголовки** повернутого електронного листа **міститимуть** можливу **чутливу інформацію** (таку як IP-адреса поштових сервісів, які взаємодіяли зі звітами, або інформацію про антивірусне програмне забезпечення).
## [Commands](smtp-commands.md)
@@ -234,10 +234,10 @@ smtp-smuggling.md
### SPF
> [!CAUTION]
-> SPF [був "декларований" у 2014 році](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Це означає, що замість створення **TXT запису** в `_spf.domain.com` ви створюєте його в `domain.com`, використовуючи **ту ж синтаксис**.\
-> Більше того, для повторного використання попередніх SPF записів досить поширено знайти щось на кшталт `"v=spf1 include:_spf.google.com ~all"`
+> SPF [був "декларований застарілим" у 2014 році](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Це означає, що замість створення **TXT запису** в `_spf.domain.com` ви створюєте його в `domain.com`, використовуючи **ту ж синтаксис**.\
+> Більше того, для повторного використання попередніх SPF записів досить поширено знайти щось на зразок `"v=spf1 include:_spf.google.com ~all"`
-**Sender Policy Framework** (SPF) — це механізм, який дозволяє Mail Transfer Agents (MTAs) перевіряти, чи авторизований хост, що надсилає електронний лист, запитуючи список авторизованих поштових серверів, визначених організаціями. Цей список, який вказує IP-адреси/діапазони, домени та інші сутності **авторизовані для відправки електронної пошти від імені доменного імені**, включає різні "**Механізми**" у SPF записі.
+**Sender Policy Framework** (SPF) — це механізм, який дозволяє Mail Transfer Agents (MTAs) перевіряти, чи має хост, що надсилає електронний лист, право на це, запитуючи список авторизованих поштових серверів, визначених організаціями. Цей список, який вказує IP-адреси/діапазони, домени та інші сутності, **уповноважені надсилати електронну пошту від імені доменного імені**, включає різні "**Механізми**" у SPF записі.
#### Механізми
@@ -253,14 +253,14 @@ smtp-smuggling.md
| PTR | Якщо доменне ім'я (PTR запис) для адреси клієнта знаходиться в заданому домені і це доменне ім'я розв'язується до адреси клієнта (попередньо підтверджений зворотний DNS), збігається. Цей механізм не рекомендується і слід уникати, якщо це можливо. |
| EXISTS | Якщо задане доменне ім'я розв'язується до будь-якої адреси, збігається (незалежно від адреси, до якої воно розв'язується). Це рідко використовується. Разом з макромовою SPF пропонує більш складні збіги, такі як DNSBL-запити. |
| INCLUDE | Посилається на політику іншого домену. Якщо політика цього домену проходить, цей механізм проходить. Однак, якщо включена політика не проходить, обробка продовжується. Щоб повністю делегувати політику іншого домену, необхідно використовувати розширення перенаправлення. |
-| REDIRECT | Перенаправлення — це вказівник на інше доменне ім'я, яке містить політику SPF, воно дозволяє кільком доменам ділитися однією і тією ж політикою SPF. Це корисно при роботі з великою кількістю доменів, які ділять одну й ту ж інфраструктуру електронної пошти.
Політика SPF домену, вказаного в механізмі перенаправлення, буде використана.
|
+| REDIRECT | Перенаправлення — це вказівник на інше доменне ім'я, яке містить політику SPF, воно дозволяє кільком доменам ділитися однією і тією ж політикою SPF. Це корисно при роботі з великою кількістю доменів, які ділять одну й ту ж інфраструктуру електронної пошти.
Політика SPF домену, вказаному в механізмі перенаправлення, буде використана.
|
Також можливо визначити **Кваліфікатори**, які вказують **що слід робити, якщо механізм збігається**. За замовчуванням використовується **кваліфікатор "+"** (тому, якщо будь-який механізм збігається, це означає, що це дозволено).\
-Зазвичай ви помітите **в кінці кожної політики SPF** щось на кшталт: **\~all** або **-all**. Це використовується для вказівки, що **якщо відправник не збігається з жодною політикою SPF, ви повинні позначити електронний лист як ненадійний (\~) або відхилити (-) електронний лист.**
+Зазвичай ви помітите **в кінці кожної політики SPF** щось на зразок: **\~all** або **-all**. Це використовується для вказівки, що **якщо відправник не збігається з жодною політикою SPF, ви повинні позначити електронний лист як ненадійний (\~) або відхилити (-) електронний лист.**
#### Кваліфікатори
-Кожен механізм у політиці може бути попереджений одним з чотирьох кваліфікаторів для визначення бажаного результату:
+Кожен механізм у політиці може бути префіксований одним з чотирьох кваліфікаторів для визначення бажаного результату:
- **`+`**: Відповідає результату PASS. За замовчуванням механізми припускають цей кваліфікатор, що робить `+mx` еквівалентним `mx`.
- **`?`**: Представляє результат NEUTRAL, обробляється аналогічно NONE (без конкретної політики).
@@ -294,7 +294,7 @@ _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:1
DKIM використовується для підписування вихідних електронних листів, що дозволяє їх валідацію зовнішніми агентами передачі пошти (MTA) через отримання публічного ключа домену з DNS. Цей публічний ключ знаходиться в TXT записі домену. Щоб отримати цей ключ, потрібно знати як селектор, так і ім'я домену.
-Наприклад, для запиту ключа необхідні ім'я домену та селектор. Ці дані можна знайти в заголовку пошти `DKIM-Signature`, наприклад, `d=gmail.com;s=20120113`.
+Наприклад, щоб запитати ключ, необхідні ім'я домену та селектор. Їх можна знайти в заголовку пошти `DKIM-Signature`, наприклад, `d=gmail.com;s=20120113`.
Команда для отримання цієї інформації може виглядати так:
```bash
@@ -304,7 +304,7 @@ dig 20120113._domainkey.gmail.com TXT | grep p=
```
### DMARC (Domain-based Message Authentication, Reporting & Conformance)
-DMARC покращує безпеку електронної пошти, базуючись на протоколах SPF та DKIM. Він визначає політики, які керують поштовими серверами у обробці електронних листів з конкретного домену, включаючи способи вирішення проблем з автентифікацією та куди надсилати звіти про дії з обробки електронної пошти.
+DMARC покращує безпеку електронної пошти, спираючись на протоколи SPF та DKIM. Він визначає політики, які керують поштовими серверами у обробці електронних листів з конкретного домену, включаючи способи вирішення проблем з автентифікацією та куди надсилати звіти про дії з обробки електронної пошти.
**Щоб отримати запис DMARC, вам потрібно запитати піддомен \_dmarc**
```bash
@@ -327,9 +327,9 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
| v | Версія протоколу | v=DMARC1 |
| pct | Відсоток повідомлень, що підлягають фільтрації | pct=20 |
| ruf | URI для звітів про форензичні звіти | ruf=mailto:authfail@example.com |
-| rua | URI для звітів про агреговані звіти | rua=mailto:aggrep@example.com |
+| rua | URI для звітів про агреговані дані | rua=mailto:aggrep@example.com |
| p | Політика для організаційного домену | p=quarantine |
-| sp | Політика для піддоменів ОД | sp=reject |
+| sp | Політика для піддоменів ОД | sp=reject |
| adkim | Режим вирівнювання для DKIM | adkim=s |
| aspf | Режим вирівнювання для SPF | aspf=r |
@@ -357,7 +357,7 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
```bash
mynetworks = 0.0.0.0/0
```
-Для перевірки, чи є поштовий сервер відкритим релеєм (що означає, що він може пересилати електронну пошту з будь-якого зовнішнього джерела), зазвичай використовується інструмент `nmap`. Він включає специфічний скрипт, призначений для тестування цього. Команда для проведення детального сканування на сервері (наприклад, з IP 10.10.10.10) на порту 25 за допомогою `nmap` виглядає так:
+Для перевірки, чи є поштовий сервер відкритим релеєм (що означає, що він може пересилати електронну пошту з будь-якого зовнішнього джерела), зазвичай використовується інструмент `nmap`. Він включає специфічний скрипт, призначений для тестування цього. Команда для проведення детального сканування сервера (наприклад, з IP 10.10.10.10) на порту 25 за допомогою `nmap` виглядає так:
```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
```
@@ -382,7 +382,7 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com
```
> [!WARNING]
-> Якщо ви отримали будь-яку **помилку при використанні бібліотеки dkim python** під час парсингу ключа, не соромтеся використовувати наступний.\
+> Якщо ви отримали будь-яку **помилку при використанні бібліотеки dkim python** для парсингу ключа, не соромтеся використовувати наступний.\
> **ПРИМІТКА**: Це просто брудне рішення для швидких перевірок у випадках, коли з якоїсь причини приватний ключ openssl **не може бути розпарсений dkim**.
>
> ```
@@ -496,7 +496,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix
-Зазвичай, якщо встановлено, в `/etc/postfix/master.cf` містить **скрипти для виконання** коли, наприклад, нова пошта отримується користувачем. Наприклад, рядок `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` означає, що `/etc/postfix/filtering` буде виконано, якщо нова пошта отримана користувачем mark.
+Зазвичай, якщо встановлено, в `/etc/postfix/master.cf` містяться **скрипти для виконання** коли, наприклад, нова пошта отримується користувачем. Наприклад, рядок `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` означає, що `/etc/postfix/filtering` буде виконано, якщо нова пошта отримана користувачем mark.
Інші конфігураційні файли:
```
diff --git a/src/network-services-pentesting/pentesting-snmp/README.md b/src/network-services-pentesting/pentesting-snmp/README.md
index 31a2c5724..9cdc65b40 100644
--- a/src/network-services-pentesting/pentesting-snmp/README.md
+++ b/src/network-services-pentesting/pentesting-snmp/README.md
@@ -2,6 +2,7 @@
{{#include ../../banners/hacktricks-training.md}}
+
## Основна інформація
**SNMP - Simple Network Management Protocol** є протоколом, що використовується для моніторингу різних пристроїв у мережі (таких як маршрутизатори, комутатори, принтери, IoT...).
@@ -10,16 +11,16 @@ PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
```
> [!NOTE]
-> SNMP також використовує порт **162/UDP** для **трапів**. Це дані **пакети, надіслані з SNMP сервера до клієнта без явного запиту**.
+> SNMP також використовує порт **162/UDP** для **трапів**. Це дані **пакети, надіслані з SNMP-сервера до клієнта без явного запиту**.
### MIB
Щоб забезпечити роботу доступу SNMP між виробниками та з різними комбінаціями клієнт-сервер, була створена **База управлінської інформації (MIB)**. MIB є **незалежним форматом для зберігання інформації про пристрої**. MIB - це **текстовий** файл, в якому всі запитувані **об'єкти SNMP** пристрою перераховані в **стандартизованій** ієрархії дерева. Він містить принаймні один `Object Identifier` (`OID`), який, крім необхідної **унікальної адреси** та **імені**, також надає інформацію про тип, права доступу та опис відповідного об'єкта.\
-Файли MIB написані в форматі ASCII тексту `Abstract Syntax Notation One` (`ASN.1`). **MIB не містять даних**, але пояснюють **де знайти яку інформацію** і як вона виглядає, які значення повертаються для конкретного OID або який тип даних використовується.
+Файли MIB написані в `Abstract Syntax Notation One` (`ASN.1`) у форматі ASCII. **MIB не містять даних**, але пояснюють **де знайти яку інформацію** і як вона виглядає, які значення повертаються для конкретного OID або який тип даних використовується.
### OIDs
-**Ідентифікатори об'єктів (OIDs)** відіграють важливу роль. Ці унікальні ідентифікатори призначені для управління об'єктами в **Базі управлінської інформації (MIB)**.
+**Ідентифікатори об'єктів (OIDs)** відіграють вирішальну роль. Ці унікальні ідентифікатори призначені для управління об'єктами в **Базі управлінської інформації (MIB)**.
Найвищі рівні ідентифікаторів об'єктів MIB, або OIDs, виділені різним організаціям, що встановлюють стандарти. Саме в цих верхніх рівнях встановлюється структура для глобальних практик управління та стандартів.
@@ -27,8 +28,8 @@ PORT STATE SERVICE REASON VERSION
.png>)
-Ви можете **перейти** через **дерево OID** з вебу тут: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) або **подивитися, що означає OID** (наприклад, `1.3.6.1.2.1.1`), звернувшись до [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\
-Є деякі **відомі OIDs**, такі як ті, що всередині [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1), які посилаються на змінні Simple Network Management Protocol (SNMP), визначені в MIB-2. І з **OID, що очікують від цього**, ви можете отримати цікаві дані про хост (дані системи, дані мережі, дані процесів...)
+Ви можете **переглядати** через **дерево OID** в Інтернеті тут: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) або **подивитися, що означає OID** (наприклад, `1.3.6.1.2.1.1`), звернувшись до [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\
+Є деякі **відомі OIDs**, такі як ті, що знаходяться всередині [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1), які посилаються на змінні Simple Network Management Protocol (SNMP), визначені в MIB-2. І з **OID, що очікують від цього**, ви можете отримати цікаві дані про хост (дані системи, дані мережі, дані процесів...)
### **Приклад OID**
@@ -42,10 +43,10 @@ PORT STATE SERVICE REASON VERSION
- 3 – це називається ORG, і воно використовується для вказівки організації, яка виготовила пристрій.
- 6 – це dod або Міністерство оборони, яке є організацією, що першою встановила Інтернет.
- 1 – це значення Інтернету, що позначає, що всі комунікації відбуватимуться через Інтернет.
-- 4 – це значення визначає, що цей пристрій виготовлено приватною організацією, а не урядовою.
-- 1 – це значення позначає, що пристрій виготовлено підприємством або бізнес-структурою.
+- 4 – це значення визначає, що цей пристрій виготовлений приватною організацією, а не урядовою.
+- 1 – це значення позначає, що пристрій виготовлений підприємством або бізнес-структурою.
-Ці перші шість значень зазвичай однакові для всіх пристроїв і надають основну інформацію про них. Ця послідовність чисел буде однаковою для всіх OIDs, за винятком випадків, коли пристрій виготовлено урядом.
+Ці перші шість значень зазвичай однакові для всіх пристроїв і надають основну інформацію про них. Ця послідовність чисел буде однаковою для всіх OIDs, за винятком випадків, коли пристрій виготовлений урядом.
Продовжуючи до наступного набору чисел.
@@ -67,15 +68,15 @@ PORT STATE SERVICE REASON VERSION
Існує 2 важливі версії SNMP:
-- **SNMPv1**: Основна, вона все ще найчастіше використовується, **автентифікація базується на рядку** (рядок спільноти), який передається в **звичайному тексті** (вся інформація передається в звичайному тексті). **Версії 2 і 2c** також передають **трафік у звичайному тексті** і використовують **рядок спільноти як автентифікацію**.
-- **SNMPv3**: Використовує кращу **автентифікацію** і інформація передається **зашифрованою** (може бути виконано **атака методом підбору**, але буде набагато важче знайти правильні дані, ніж у SNMPv1 і v2).
+- **SNMPv1**: Основна, вона все ще найпоширеніша, **автентифікація базується на рядку** (рядок спільноти), який передається в **звичайному тексті** (вся інформація передається в звичайному тексті). **Версії 2 і 2c** також передають **трафік у звичайному тексті** і використовують **рядок спільноти як автентифікацію**.
+- **SNMPv3**: Використовує кращу **форму автентифікації**, і інформація передається **зашифрованою** (може бути виконано **атака методом підбору**, але знайти правильні дані буде набагато важче, ніж у SNMPv1 і v2).
### Рядки спільноти
Як вже згадувалося, **для доступу до інформації, збереженої в MIB, вам потрібно знати рядок спільноти у версіях 1 і 2/2c та облікові дані у версії 3.**\
Існує **2 типи рядків спільноти**:
-- **`public`** в основному **тільки для читання** функцій.
+- **`public`** в основному **тільки для читання** функції.
- **`private`** **Читання/Запис** в загальному.
Зверніть увагу, що **можливість запису OID залежить від використаного рядка спільноти**, тому **навіть** якщо ви виявите, що використовується "**public**", ви можете мати можливість **записувати деякі значення.** Також можуть існувати об'єкти, які **завжди "тільки для читання".**\
@@ -87,11 +88,11 @@ PORT STATE SERVICE REASON VERSION
[З Вікіпедії](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol):
-- SNMP агент отримує запити на UDP порт **161**.
+- SNMP-агент отримує запити на UDP-порт **161**.
- Менеджер отримує сповіщення ([Traps](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#Trap) та [InformRequests](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#InformRequest)) на порт **162**.
- Коли використовується з [Transport Layer Security](https://en.wikipedia.org/wiki/Transport_Layer_Security) або [Datagram Transport Layer Security](https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security), запити отримуються на порт **10161**, а сповіщення надсилаються на порт **10162**.
-## Брутфорс рядка спільноти (v1 та v2c)
+## Брутфорс рядка спільноти (v1 і v2c)
Щоб **вгадати рядок спільноти**, ви можете виконати атаку методом підбору. Перевірте [тут різні способи виконання атаки методом підбору проти SNMP](../../generic-hacking/brute-force.md#snmp). Часто використовуваний рядок спільноти - `public`.
@@ -124,7 +125,7 @@ braa @:.1.3.6.* #Bruteforce specific OID
```bash
snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull
```
-**SNMP** має багато інформації про хост, і речі, які можуть вас зацікавити, це: **мережеві інтерфейси** (IPv4 та **IPv6** адреси), імена користувачів, час роботи, версія сервера/ОС та **процеси**
+**SNMP** має багато інформації про хост, і речі, які можуть бути вам цікаві: **мережеві інтерфейси** (IPv4 та **IPv6** адреси), імена користувачів, час роботи, версія сервера/ОС та **процеси**
**які працюють** (можуть містити паролі)....
@@ -141,16 +142,16 @@ snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull
- **`rwcommunity`** для **IPv4** адрес, та
- **`rwcommunity6`** для **IPv6** адрес.
-Обидві команди вимагають **строку спільноти** та відповідну IP-адресу, пропонуючи повний доступ незалежно від походження запиту.
+Обидві команди вимагають **рядок спільноти** та відповідну IP-адресу, пропонуючи повний доступ незалежно від походження запиту.
### Параметри SNMP для Microsoft Windows
Серія **значень бази управлінської інформації (MIB)** використовується для моніторингу різних аспектів системи Windows через SNMP:
- **Системні процеси**: Доступно через `1.3.6.1.2.1.25.1.6.0`, цей параметр дозволяє моніторити активні процеси в системі.
-- **Запущені програми**: Значення `1.3.6.1.2.1.25.4.2.1.2` призначене для відстеження програм, які наразі працюють.
+- **Запущені програми**: Значення `1.3.6.1.2.1.25.4.2.1.2` призначене для відстеження поточних запущених програм.
- **Шлях до процесів**: Щоб визначити, звідки запускається процес, використовується значення MIB `1.3.6.1.2.1.25.4.2.1.4`.
-- **Сховища**: Моніторинг сховищ здійснюється за допомогою `1.3.6.1.2.1.25.2.3.1.4`.
+- **Одиниці зберігання**: Моніторинг одиниць зберігання здійснюється за допомогою `1.3.6.1.2.1.25.2.3.1.4`.
- **Назва програмного забезпечення**: Для ідентифікації програмного забезпечення, встановленого на системі, використовується `1.3.6.1.2.1.25.6.3.1.2`.
- **Облікові записи користувачів**: Значення `1.3.6.1.4.1.77.1.2.25` дозволяє відстежувати облікові записи користувачів.
- **Локальні порти TCP**: Нарешті, `1.3.6.1.2.1.6.13.1.3` призначене для моніторингу локальних портів TCP, надаючи інформацію про активні мережеві з'єднання.
@@ -165,7 +166,7 @@ cisco-snmp.md
## Від SNMP до RCE
-Якщо у вас є **строка**, яка дозволяє вам **записувати значення** всередині служби SNMP, ви можете зловживати цим для **виконання команд**:
+Якщо у вас є **рядок**, який дозволяє вам **записувати значення** в сервісі SNMP, ви можете зловживати цим для **виконання команд**:
{{#ref}}
snmp-rce.md
@@ -187,7 +188,7 @@ braa ignite123@192.168.1.125:.1.3.6.*
### **Пристрої**
-Процес починається з витягування **sysDesc MIB даних** (1.3.6.1.2.1.1.1.0) з кожного файлу для ідентифікації пристроїв. Це досягається за допомогою **grep команди**:
+Процес починається з витягування **sysDesc MIB data** (1.3.6.1.2.1.1.1.0) з кожного файлу для ідентифікації пристроїв. Це досягається за допомогою **grep command**:
```bash
grep ".1.3.6.1.2.1.1.1.0" *.snmp
```
@@ -203,7 +204,7 @@ Logs stored within MIB tables are examined for **failed logon attempts**, which
```bash
grep -i "login\|fail" *.snmp
```
-### **Emails**
+### **Електронні листи**
Нарешті, для витягування **адрес електронної пошти** з даних використовується **grep команда** з регулярним виразом, зосереджуючись на шаблонах, які відповідають форматам електронної пошти:
```bash
diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md
index 4e5e532fa..e88d89037 100644
--- a/src/network-services-pentesting/pentesting-telnet.md
+++ b/src/network-services-pentesting/pentesting-telnet.md
@@ -17,13 +17,13 @@ Telnet - це мережевий протокол, який надає кори
```bash
nc -vn 23
```
-Вся цікава енумерація може бути виконана за допомогою **nmap**:
+Всі цікаві перерахунки можна виконати за допомогою **nmap**:
```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23
```
Скрипт `telnet-ntlm-info.nse` отримає інформацію NTLM (версії Windows).
-З [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): У протоколі TELNET є різні "**options**", які будуть санкціоновані і можуть використовуватися з структурою "**DO, DON'T, WILL, WON'T**", щоб дозволити користувачу та серверу погодитися використовувати більш складний (або, можливо, просто інший) набір конвенцій для їхнього з'єднання TELNET. Такі опції можуть включати зміну набору символів, режиму еха тощо.
+З [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): У протоколі TELNET є різні "**options**", які будуть санкціоновані і можуть бути використані з структурою "**DO, DON'T, WILL, WON'T**", щоб дозволити користувачу та серверу погодитися використовувати більш складний (або, можливо, просто інший) набір конвенцій для їхнього з'єднання TELNET. Такі опції можуть включати зміну набору символів, режиму еха тощо.
**Я знаю, що можливо перерахувати ці опції, але не знаю як, тому дайте знати, якщо знаєте як.**
diff --git a/src/network-services-pentesting/pentesting-web/README.md b/src/network-services-pentesting/pentesting-web/README.md
index 980c87768..34d344289 100644
--- a/src/network-services-pentesting/pentesting-web/README.md
+++ b/src/network-services-pentesting/pentesting-web/README.md
@@ -25,18 +25,18 @@ web-api-pentesting.md
## Методологія
-> У цій методології ми будемо припускати, що ви збираєтеся атакувати домен (або піддомен) і тільки його. Тому ви повинні застосовувати цю методологію до кожного виявленого домену, піддомену або IP з невизначеним веб-сервером у межах обсягу.
+> У цій методології ми будемо припускати, що ви збираєтеся атакувати домен (або піддомен) і тільки його. Тому ви повинні застосувати цю методологію до кожного виявленого домену, піддомену або IP з невизначеним веб-сервером у межах обсягу.
- [ ] Почніть з **ідентифікації** **технологій**, що використовуються веб-сервером. Шукайте **поради**, які слід пам'ятати під час решти тесту, якщо вам вдасться успішно ідентифікувати технологію.
- [ ] Чи є якісь **відомі вразливості** версії технології?
- [ ] Використовується якась **відомо технологія**? Якась **корисна порада** для отримання додаткової інформації?
- [ ] Чи є якийсь **спеціалізований сканер** для запуску (наприклад, wpscan)?
-- [ ] Запустіть **сканери загального призначення**. Ви ніколи не знаєте, чи знайдуть вони щось цікаве.
-- [ ] Розпочніть з **початкових перевірок**: **robots**, **sitemap**, **404** помилка та **SSL/TLS сканування** (якщо HTTPS).
-- [ ] Розпочніть **спайдеринг** веб-сторінки: час **знайти** всі можливі **файли, папки** та **параметри, що використовуються.** Також перевірте на **особливі знахідки**.
-- [ ] _Зверніть увагу, що кожного разу, коли під час брутфорсингу або спайдерингу виявляється новий каталог, його слід спайдерити._
+- [ ] Запустіть **сканери загального призначення**. Ви ніколи не знаєте, чи знайдуть вони щось або чи знайдуть якусь цікаву інформацію.
+- [ ] Розпочніть з **початкових перевірок**: **robots**, **sitemap**, **404** помилка та **сканування SSL/TLS** (якщо HTTPS).
+- [ ] Розпочніть **павукоподібне сканування** веб-сторінки: час **знайти** всі можливі **файли, папки** та **параметри, що використовуються.** Також перевірте на **особливі знахідки**.
+- [ ] _Зверніть увагу, що щоразу, коли під час брутфорсингу або павукоподібного сканування виявляється новий каталог, його слід просканувати._
- [ ] **Брутфорсинг каталогів**: спробуйте брутфорсити всі виявлені папки в пошуках нових **файлів** та **каталогів**.
-- [ ] _Зверніть увагу, що кожного разу, коли під час брутфорсингу або спайдерингу виявляється новий каталог, його слід брутфорсити._
+- [ ] _Зверніть увагу, що щоразу, коли під час брутфорсингу або павукоподібного сканування виявляється новий каталог, його слід брутфорсити._
- [ ] **Перевірка резервних копій**: перевірте, чи можете ви знайти **резервні копії** **виявлених файлів**, додаючи загальні розширення резервних копій.
- [ ] **Брутфорсинг параметрів**: спробуйте **знайти приховані параметри**.
- [ ] Як тільки ви **ідентифікували** всі можливі **кінцеві точки**, що приймають **введення користувача**, перевірте на всі види **вразливостей**, пов'язаних з цим.
@@ -47,7 +47,7 @@ web-api-pentesting.md
### Ідентифікація
Перевірте, чи є **відомі вразливості** для версії сервера, що працює.\
-**HTTP заголовки та куки відповіді** можуть бути дуже корисними для **ідентифікації** **технологій** та/або **версії**, що використовуються. **Nmap сканування** може ідентифікувати версію сервера, але також можуть бути корисні інструменти [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)або [**https://builtwith.com/**](https://builtwith.com)**:**
+**HTTP заголовки та куки відповіді** можуть бути дуже корисними для **ідентифікації** **технологій** та/або **версії**, що використовуються. **Сканування Nmap** може ідентифікувати версію сервера, але також можуть бути корисні інструменти [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)або [**https://builtwith.com/**](https://builtwith.com)**:**
```bash
whatweb -a 1 #Stealthy
whatweb -a 3 #Aggresive
@@ -64,7 +64,7 @@ Search **for** [**вразливості веб-додатку** **версії*
### Трюки веб-технологій
-Деякі **трюки** для **пошуку вразливостей** у різних відомих **технологіях**:
+Декілька **трюків** для **пошуку вразливостей** у різних відомих **технологіях**:
- [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
- [**Apache**](apache.md)
@@ -202,12 +202,12 @@ sslyze --regular
Запустіть якийсь **spider** всередині вебу. Мета spider'а - **знайти якомога більше шляхів** з протестованого додатку. Тому слід використовувати веб-краулінг та зовнішні джерела, щоб знайти якомога більше дійсних шляхів.
- [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder у JS файлах та зовнішні джерела (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
-- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, з LinkFider для JS файлів та Archive.org як зовнішнє джерело.
+- [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, з LinkFinder для JS файлів та Archive.org як зовнішнє джерело.
- [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, також вказує на "соковиті файли".
- [**evine** ](https://github.com/saeeddhqan/evine)(go): Інтерактивний CLI HTML spider. Він також шукає в Archive.org.
- [**meg**](https://github.com/tomnomnom/meg) (go): Цей інструмент не є spider'ом, але може бути корисним. Ви можете просто вказати файл з хостами та файл з шляхами, і meg отримає кожен шлях на кожному хості та збере відповідь.
- [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider з можливостями рендерингу JS. Однак, виглядає так, що він не підтримується, попередньо скомпільована версія стара, а поточний код не компілюється.
-- [**gau**](https://github.com/lc/gau) (go): HTML spider, який використовує зовнішні постачальники (wayback, otx, commoncrawl).
+- [**gau**](https://github.com/lc/gau) (go): HTML spider, який використовує зовнішніх постачальників (wayback, otx, commoncrawl).
- [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Цей скрипт знайде URL з параметрами та виведе їх.
- [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider з можливостями рендерингу JS.
- [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, з можливостями beautify для JS, здатний шукати нові шляхи в JS файлах. Також варто звернути увагу на [JSScanner](https://github.com/dark-warlord14/JSScanner), який є обгорткою для LinkFinder.
@@ -223,7 +223,7 @@ sslyze --regular
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Це інструмент, що використовується для виявлення кінцевих точок для заданої цілі.
- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Виявляє посилання з wayback machine (також завантажуючи відповіді в wayback та шукаючи більше посилань).
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Краулінг (навіть заповнюючи форми) та також знаходження чутливої інформації, використовуючи специфічні regex.
-- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite - це розширений багатофункціональний GUI веб-безпековий краулер/spider, розроблений для професіоналів у сфері кібербезпеки.
+- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite - це розширений багатофункціональний GUI веб-безпековий краулер/spider, розроблений для фахівців з кібербезпеки.
- [**jsluice**](https://github.com/BishopFox/jsluice) (go): Це пакет Go та [інструмент командного рядка](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) для витягування URL, шляхів, секретів та інших цікавих даних з вихідного коду JavaScript.
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge - це просте **розширення Burp Suite** для **витягування параметрів та кінцевих точок** з запиту для створення користувацького списку слів для фуззингу та перерахунку.
- [**katana**](https://github.com/projectdiscovery/katana) (go): Чудовий інструмент для цього.
@@ -264,14 +264,14 @@ sslyze --regular
- _/usr/share/wordlists/dirb/big.txt_
- _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
-_Зверніть увагу, що щоразу, коли під час brute-forcing або spidering виявляється новий каталог, його слід Brute-Forced._
+_Зверніть увагу, що щоразу, коли під час brute-forcing або spidering виявляється новий каталог, його слід brute-force._
-### Що перевіряти в кожному знайденому файлі
+### Що перевірити в кожному знайденому файлі
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Знайти зламані посилання всередині HTML, які можуть бути схильні до захоплення.
- **Резервні копії файлів**: Після того, як ви знайшли всі файли, шукайте резервні копії всіх виконуваних файлів ("_.php_", "_.aspx_"...). Загальні варіації для назви резервної копії: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp та file.old._ Ви також можете використовувати інструмент [**bfac**](https://github.com/mazen160/bfac) **або** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
- **Виявлення нових параметрів**: Ви можете використовувати інструменти, такі як [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **та** [**Param Miner**](https://github.com/PortSwigger/param-miner) **для виявлення прихованих параметрів. Якщо зможете, спробуйте шукати** приховані параметри в кожному виконуваному веб-файлі.
-- _Arjun всі стандартні списки слів:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
+- _Arjun всі стандартні словники:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
- _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
- _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
- _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
@@ -283,12 +283,12 @@ _Зверніть увагу, що щоразу, коли під час brute-fo
### Спеціальні знахідки
-**Під час** виконання **spidering** та **brute-forcing** ви можете знайти **цікаві** **речі**, на які вам потрібно **звернути увагу**.
+**Під час** виконання **spidering** та **brute-forcing** ви можете знайти **цікаві** **речі**, на які вам слід **звернути увагу**.
**Цікаві файли**
- Шукайте **посилання** на інші файли всередині **CSS** файлів.
-- [Якщо ви знайдете файл _**.git**_, можна витягнути деяку інформацію](git.md).
+- [Якщо ви знайдете файл _**.git**_, з нього можна витягти деяку інформацію](git.md).
- Якщо ви знайдете _**.env**_, можна знайти інформацію, таку як API ключі, паролі бази даних та іншу інформацію.
- Якщо ви знайдете **API кінцеві точки**, ви [також повинні їх протестувати](web-api-pentesting.md). Це не файли, але, ймовірно, "виглядатимуть" як вони.
- **JS файли**: У розділі spidering згадувалися кілька інструментів, які можуть витягувати шляхи з JS файлів. Також було б цікаво **моніторити кожен знайдений JS файл**, оскільки в деяких випадках зміна може вказувати на те, що потенційна вразливість була введена в код. Ви можете використовувати, наприклад, [**JSMon**](https://github.com/robre/jsmon)**.**
@@ -318,7 +318,7 @@ _Зверніть увагу, що щоразу, коли під час brute-fo
**HTTP Redirect (CTF)**
-Можливо **вставити вміст** всередину **Redirection**. Цей вміст **не буде показаний користувачу** (оскільки браузер виконає перенаправлення), але щось може бути **сховане** там.
+Можливо **вставити вміст** всередину **перенаправлення**. Цей вміст **не буде показаний користувачу** (оскільки браузер виконає перенаправлення), але щось може бути **сховане** там.
### Перевірка веб-вразливостей
diff --git a/src/network-services-pentesting/pentesting-web/angular.md b/src/network-services-pentesting/pentesting-web/angular.md
index 806aede5d..2e12ad982 100644
--- a/src/network-services-pentesting/pentesting-web/angular.md
+++ b/src/network-services-pentesting/pentesting-web/angular.md
@@ -14,7 +14,7 @@ Checklist [from here](https://lsgeurope.com/post/angular-security-checklist).
## What is Angular
-Angular є **потужним** та **відкритим** фреймворком для фронтенду, який підтримується **Google**. Він використовує **TypeScript** для покращення читабельності коду та налагодження. Завдяки сильним механізмам безпеки, Angular запобігає поширеним вразливостям на стороні клієнта, таким як **XSS** та **відкриті перенаправлення**. Його також можна використовувати на **стороні сервера**, що робить питання безпеки важливими з **обох сторін**.
+Angular є **потужним** і **відкритим** фреймворком для фронтенду, який підтримується **Google**. Він використовує **TypeScript** для покращення читабельності коду та налагодження. Завдяки сильним механізмам безпеки, Angular запобігає поширеним вразливостям на стороні клієнта, таким як **XSS** та **відкриті перенаправлення**. Його також можна використовувати на **стороні сервера**, що робить питання безпеки важливими з **обох сторін**.
## Framework architecture
@@ -39,11 +39,11 @@ my-workspace/
├── angular.json #provides workspace-wide and project-specific configuration defaults
└── tsconfig.json #provides the base TypeScript configuration for projects in the workspace
```
-Згідно з документацією, кожен Angular-додаток має принаймні один компонент, кореневий компонент (`AppComponent`), який з'єднує ієрархію компонентів з DOM. Кожен компонент визначає клас, який містить дані та логіку додатка, і асоціюється з HTML-шаблоном, який визначає вигляд, що має бути відображений у цільовому середовищі. Декоратор `@Component()` ідентифікує клас безпосередньо під ним як компонент і надає шаблон та відповідну метадані, специфічні для компонента. `AppComponent` визначено у файлі `app.component.ts`.
+Згідно з документацією, кожен Angular-додаток має принаймні один компонент, кореневий компонент (`AppComponent`), який з'єднує ієрархію компонентів з DOM. Кожен компонент визначає клас, який містить дані та логіку додатка, і асоційований з HTML-шаблоном, який визначає вигляд, що має бути відображений у цільовому середовищі. Декоратор `@Component()` ідентифікує клас безпосередньо під ним як компонент і надає шаблон та відповідну специфічну метадані компонента. `AppComponent` визначено у файлі `app.component.ts`.
-Angular NgModules оголошують контекст компіляції для набору компонентів, який присвячений домену додатка, робочому процесу або тісно пов'язаному набору можливостей. Кожен Angular-додаток має кореневий модуль, звичайно названий `AppModule`, який забезпечує механізм завантаження, що запускає додаток. Додаток зазвичай містить багато функціональних модулів. `AppModule` визначено у файлі `app.module.ts`.
+Angular NgModules оголошують контекст компіляції для набору компонентів, який присвячений домену додатка, робочому процесу або тісно пов'язаному набору можливостей. Кожен Angular-додаток має кореневий модуль, звичайно названий `AppModule`, який надає механізм завантаження, що запускає додаток. Додаток зазвичай містить багато функціональних модулів. `AppModule` визначено у файлі `app.module.ts`.
-NgModule Angular `Router` надає сервіс, який дозволяє визначити навігаційний шлях між різними станами додатка та ієрархіями виглядів у вашому додатку. `RouterModule` визначено у файлі `app-routing.module.ts`.
+NgModule Angular `Router` надає сервіс, який дозволяє визначити навігаційний шлях серед різних станів додатка та ієрархій виглядів у вашому додатку. `RouterModule` визначено у файлі `app-routing.module.ts`.
Для даних або логіки, які не пов'язані з конкретним виглядом і які ви хочете поділитися між компонентами, ви створюєте клас сервісу. Визначення класу сервісу безпосередньо передує декоратору `@Injectable()`. Декоратор надає метадані, які дозволяють іншим провайдерам бути впровадженими як залежності у ваш клас. Впровадження залежностей (DI) дозволяє зберігати ваші класи компонентів стрункими та ефективними. Вони не отримують дані з сервера, не перевіряють введення користувача і не ведуть безпосередній лог до консолі; вони делегують такі завдання сервісам.
@@ -58,13 +58,13 @@ NgModule Angular `Router` надає сервіс, який дозволяє в
"hidden": false
}
```
-Загалом, файли sourcemap використовуються для налагодження, оскільки вони відображають згенеровані файли на їх оригінальні файли. Тому не рекомендується використовувати їх у виробничому середовищі. Якщо sourcemaps увімкнено, це покращує читабельність і допомагає в аналізі файлів, відтворюючи оригінальний стан проекту Angular. Однак, якщо вони вимкнені, рецензент все ще може вручну проаналізувати скомпільований JavaScript файл, шукаючи антисекюрні шаблони.
+Загалом, файли sourcemap використовуються для налагодження, оскільки вони відображають згенеровані файли на їх оригінальні файли. Тому не рекомендується використовувати їх у виробничому середовищі. Якщо sourcemaps увімкнено, це покращує читабельність і допомагає в аналізі файлів, відтворюючи оригінальний стан проекту Angular. Однак, якщо вони вимкнені, рецензент все ще може вручну проаналізувати скомпільований JavaScript файл, шукаючи антибезпекові шаблони.
Більш того, скомпільований JavaScript файл з проектом Angular можна знайти в інструментах розробника браузера → Sources (або Debugger і Sources) → \[id].main.js. Залежно від увімкнених опцій, цей файл може містити наступний рядок в кінці `//# sourceMappingURL=[id].main.js.map` або може не містити, якщо опція **hidden** встановлена на **true**. Проте, якщо sourcemap вимкнено для **scripts**, тестування стає більш складним, і ми не можемо отримати файл. Крім того, sourcemap може бути увімкнено під час збірки проекту, наприклад, `ng build --source-map`.
## Прив'язка даних
-Прив'язка відноситься до процесу комунікації між компонентом і відповідним виглядом. Вона використовується для передачі даних до та з фреймворку Angular. Дані можуть передаватися різними способами, такими як через події, інтерполяцію, властивості або через механізм двосторонньої прив'язки. Більш того, дані також можуть бути спільними між пов'язаними компонентами (відношення батька і дитини) та між двома несумісними компонентами за допомогою функції Service.
+Прив'язка відноситься до процесу комунікації між компонентом і відповідним виглядом. Вона використовується для передачі даних до та з фреймворку Angular. Дані можуть передаватися різними способами, такими як через події, інтерполяцію, властивості або через механізм двосторонньої прив'язки. Більш того, дані також можуть бути спільними між пов'язаними компонентами (відношення батька і дитини) та між двома непов'язаними компонентами за допомогою функції Service.
Ми можемо класифікувати прив'язку за потоком даних:
@@ -115,7 +115,7 @@ test = "test
";
* `None`;
* `HTML` використовується, коли інтерпретується значення як HTML;
* `STYLE` використовується, коли прив'язується CSS до властивості `style`;
-* `URL` використовується для URL властивостей, таких як ``;
+* `URL` використовується для URL-властивостей, таких як ``;
* `SCRIPT` використовується для JavaScript коду;
* `RESOURCE_URL` як URL, який завантажується та виконується як код, наприклад, у `test
";
#### Візуалізація на стороні клієнта (CSR)
-Angular використовує шаблони для динамічного створення сторінок. Цей підхід передбачає обгортання виразів шаблону, які Angular має оцінити, в подвійні фігурні дужки (`{{}}`). Таким чином, фреймворк пропонує додаткову функціональність. Наприклад, шаблон `{{1+1}}` відобразиться як 2.
+Angular використовує шаблони для динамічного створення сторінок. Цей підхід передбачає обгортання виразів шаблону для оцінки Angular в подвійні фігурні дужки (`{{}}`). Таким чином, фреймворк пропонує додаткову функціональність. Наприклад, шаблон `{{1+1}}` відобразиться як 2.
Зазвичай Angular екранує введення користувача, яке може бути сплутане з виразами шаблону (наприклад, символи такі як \`< > ' " \`\`). Це означає, що для обходу цього обмеження потрібні додаткові кроки, такі як використання функцій, які генерують об'єкти рядків JavaScript, щоб уникнути використання заборонених символів. Однак, щоб досягти цього, ми повинні враховувати контекст Angular, його властивості та змінні. Тому атака ін'єкції шаблону може виглядати наступним чином:
```jsx
@@ -229,11 +229,11 @@ template: 'title
' + _userInput
```
Як показано вище: `constructor` посилається на область видимості властивості Object `constructor`, що дозволяє нам викликати конструктор String і виконувати довільний код.
-#### Серверний рендеринг (SSR)
+#### Серверне рендеринг (SSR)
-На відміну від CSR, який відбувається в DOM браузера, Angular Universal відповідає за SSR шаблонних файлів. Ці файли потім доставляються користувачу. Незважаючи на це відмінність, Angular Universal застосовує ті ж механізми санітизації, що використовуються в CSR, для підвищення безпеки SSR. Вразливість до ін'єкцій шаблонів в SSR можна виявити так само, як і в CSR, оскільки використовувана мова шаблонів є такою ж.
+На відміну від CSR, яке відбувається в DOM браузера, Angular Universal відповідає за SSR шаблонних файлів. Ці файли потім доставляються користувачу. Незважаючи на це відмінність, Angular Universal застосовує ті ж механізми санітизації, що використовуються в CSR, для підвищення безпеки SSR. Вразливість ін'єкції шаблону в SSR можна виявити так само, як і в CSR, оскільки використовувана мова шаблонів є такою ж.
-Звичайно, також існує можливість введення нових вразливостей до ін'єкцій шаблонів при використанні сторонніх шаблонних движків, таких як Pug і Handlebars.
+Звичайно, також існує можливість введення нових вразливостей ін'єкції шаблону при використанні сторонніх шаблонних движків, таких як Pug і Handlebars.
### XSS
@@ -292,9 +292,9 @@ document.body.appendChild(a);
```
#### Angular класи
-Є кілька класів, які можна використовувати для роботи з елементами DOM в Angular: `ElementRef`, `Renderer2`, `Location` та `Document`. Детальний опис останніх двох класів наведено в розділі **Open redirects**. Основна різниця між першими двома полягає в тому, що API `Renderer2` забезпечує рівень абстракції між елементом DOM та кодом компонента, тоді як `ElementRef` просто містить посилання на елемент. Тому, згідно з документацією Angular, API `ElementRef` слід використовувати лише як останній засіб, коли потрібен прямий доступ до DOM.
+Є кілька класів, які можна використовувати для роботи з елементами DOM в Angular: `ElementRef`, `Renderer2`, `Location` та `Document`. Детальний опис останніх двох класів наведено в розділі **Open redirects**. Основна різниця між першими двома полягає в тому, що API `Renderer2` забезпечує рівень абстракції між елементом DOM та кодом компонента, тоді як `ElementRef` просто містить посилання на елемент. Тому, згідно з документацією Angular, API `ElementRef` слід використовувати лише в крайньому випадку, коли потрібен прямий доступ до DOM.
-* `ElementRef` містить властивість `nativeElement`, яка може бути використана для маніпуляції з елементами DOM. Однак неправильне використання `nativeElement` може призвести до вразливості XSS, як показано нижче:
+* `ElementRef` містить властивість `nativeElement`, яка може бути використана для маніпуляції елементами DOM. Однак неправильне використання `nativeElement` може призвести до вразливості XSS, як показано нижче:
```tsx
//app.component.ts
@@ -315,7 +315,7 @@ this.elementRef.nativeElement.appendChild(s);
}
}
```
-* Незважаючи на те, що `Renderer2` надає API, який можна безпечно використовувати, навіть коли прямий доступ до рідних елементів не підтримується, він все ще має деякі недоліки в безпеці. З `Renderer2` можна встановлювати атрибути на HTML-елементі за допомогою методу `setAttribute()`, який не має механізмів запобігання XSS.
+* Незважаючи на те, що `Renderer2` надає API, який можна безпечно використовувати навіть коли прямий доступ до рідних елементів не підтримується, він все ще має деякі недоліки в безпеці. З `Renderer2` можна встановлювати атрибути на HTML-елемент за допомогою методу `setAttribute()`, який не має механізмів запобігання XSS.
```tsx
//app.component.ts
@@ -371,11 +371,11 @@ this.renderer2.setProperty(this.img.nativeElement, 'innerHTML', '
Click me!
```
-Під час нашого дослідження ми також вивчали поведінку інших методів `Renderer2`, таких як `setStyle()`, `createComment()` та `setValue()`, у відношенні до XSS та CSS-ін'єкцій. Однак ми не змогли знайти жодних дійсних векторів атак для цих методів через їх функціональні обмеження.
+Під час нашого дослідження ми також вивчили поведінку інших методів `Renderer2`, таких як `setStyle()`, `createComment()` та `setValue()`, у відношенні до XSS та CSS-ін'єкцій. Однак ми не змогли знайти жодних дійсних векторів атак для цих методів через їх функціональні обмеження.
#### jQuery
-jQuery - це швидка, маленька та багатофункціональна бібліотека JavaScript, яку можна використовувати в проекті Angular для допомоги в маніпуляції з HTML DOM об'єктами. Однак, як відомо, методи цієї бібліотеки можуть бути використані для досягнення вразливості XSS. Щоб обговорити, як деякі вразливі методи jQuery можуть бути використані в проектах Angular, ми додали цей підрозділ.
+jQuery - це швидка, мала та багатофункціональна бібліотека JavaScript, яку можна використовувати в проекті Angular для допомоги в маніпуляції HTML DOM об'єктами. Однак, як відомо, методи цієї бібліотеки можуть бути використані для досягнення вразливості XSS. Щоб обговорити, як деякі вразливі методи jQuery можуть бути використані в проектах Angular, ми додали цей підрозділ.
* Метод `html()` отримує HTML вміст першого елемента в наборі відповідних елементів або встановлює HTML вміст кожного відповідного елемента. Однак за дизайном будь-який конструктор або метод jQuery, який приймає HTML рядок, може потенційно виконувати код. Це може статися через ін'єкцію `test
```
-### CSRF - Неправильна обробка параметра стану
+### CSRF - Неправильна обробка параметра state
У реалізаціях OAuth неправильне використання або пропуск параметра **`state`** може значно підвищити ризик атак **Cross-Site Request Forgery (CSRF)**. Ця вразливість виникає, коли параметр `state` або **не використовується, використовується як статичне значення, або не перевіряється належним чином**, що дозволяє зловмисникам обходити захист CSRF.
Зловмисники можуть скористатися цим, перехоплюючи процес авторизації, щоб зв'язати свій обліковий запис з обліковим записом жертви, що може призвести до потенційних **взломів облікових записів**. Це особливо критично в додатках, де OAuth використовується для **автентифікаційних цілей**.
-Реальні приклади цієї вразливості були задокументовані в різних **CTF викликах** та **хакерських платформах**, підкреслюючи її практичні наслідки. Проблема також поширюється на інтеграції з сторонніми сервісами, такими як **Slack**, **Stripe** та **PayPal**, де зловмисники можуть перенаправляти сповіщення або платежі на свої облікові записи.
+Приклади цієї вразливості в реальному світі були задокументовані в різних **CTF викликах** та **хакерських платформах**, підкреслюючи її практичні наслідки. Проблема також поширюється на інтеграції з сторонніми сервісами, такими як **Slack**, **Stripe** та **PayPal**, де зловмисники можуть перенаправляти сповіщення або платежі на свої облікові записи.
Належна обробка та перевірка параметра **`state`** є критично важливими для захисту від CSRF та забезпечення безпеки потоку OAuth.
### Перед взломом облікового запису
1. **Без перевірки електронної пошти при створенні облікового запису**: Зловмисники можуть заздалегідь створити обліковий запис, використовуючи електронну пошту жертви. Якщо жертва пізніше використовує сторонній сервіс для входу, додаток може ненавмисно зв'язати цей сторонній обліковий запис з попередньо створеним обліковим записом зловмисника, що призведе до несанкціонованого доступу.
-2. **Використання слабкої перевірки електронної пошти в OAuth**: Зловмисники можуть скористатися сервісами OAuth, які не перевіряють електронні адреси, зареєструвавшись у їхньому сервісі, а потім змінивши електронну адресу облікового запису на електронну адресу жертви. Цей метод також несе ризик несанкціонованого доступу до облікового запису, подібно до першого сценарію, але через інший вектор атаки.
+2. **Використання слабкої перевірки електронної пошти в OAuth**: Зловмисники можуть скористатися сервісами OAuth, які не перевіряють електронні адреси, зареєструвавшись у їхньому сервісі, а потім змінивши електронну пошту облікового запису на електронну пошту жертви. Цей метод також несе ризик несанкціонованого доступу до облікового запису, подібно до першого сценарію, але через інший вектор атаки.
### Розкриття секретів
-Визначення та захист секретних параметрів OAuth є критично важливими. Хоча **`client_id`** можна безпечно розкривати, розкриття **`client_secret`** несе значні ризики. Якщо `client_secret` буде скомпрометовано, зловмисники можуть скористатися ідентичністю та довірою додатка, щоб **вкрасти `access_tokens`** та приватну інформацію.
+Визначення та захист секретних параметрів OAuth є критично важливими. Хоча **`client_id`** можна безпечно розкривати, розкриття **`client_secret`** несе значні ризики. Якщо `client_secret` буде скомпрометовано, зловмисники можуть скористатися ідентичністю та довірою додатка, щоб **вкрасти `access_tokens`** користувачів та приватну інформацію.
-Загальна вразливість виникає, коли додатки помилково обробляють обмін авторизаційним `code` на `access_token` на стороні клієнта, а не на стороні сервера. Ця помилка призводить до розкриття `client_secret`, що дозволяє зловмисникам генерувати `access_tokens` під виглядом додатка. Більше того, через соціальну інженерію зловмисники можуть підвищити привілеї, додаючи додаткові області до авторизації OAuth, ще більше експлуатуючи довірений статус додатка.
+Загальна вразливість виникає, коли додатки помилково обробляють обмін авторизаційного `code` на `access_token` на стороні клієнта, а не на стороні сервера. Ця помилка призводить до розкриття `client_secret`, що дозволяє зловмисникам генерувати `access_tokens` під виглядом додатка. Більше того, через соціальну інженерію зловмисники можуть підвищити привілеї, додаючи додаткові області до авторизації OAuth, ще більше експлуатуючи довірений статус додатка.
### Брутфорс секрету клієнта
@@ -118,7 +118,7 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au
### Authorization/Refresh Token not bound to client
-Якщо ви можете отримати **код авторизації і використати його з іншим клієнтом, то ви можете захопити інші акаунти**.
+Якщо ви можете отримати **код авторизації і використати його з іншим клієнтом, то ви можете захопити інші облікові записи**.
### Happy Paths, XSS, Iframes & Post Messages to leak code & state values
@@ -126,7 +126,7 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au
### AWS Cognito
-У цьому звіті про баг-баунті: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) ви можете побачити, що **токен**, який **AWS Cognito** повертає користувачу, може мати **достатньо прав для переписування даних користувача**. Тому, якщо ви можете **змінити електронну пошту користувача на іншу електронну пошту**, ви можете **захопити** акаунти інших.
+У цьому звіті про баг-баунті: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) ви можете побачити, що **токен**, який **AWS Cognito** повертає користувачу, може мати **достатньо прав для переписування даних користувача**. Тому, якщо ви можете **змінити електронну пошту користувача на іншу електронну пошту**, ви можете **захопити** інші облікові записи.
```bash
# Read info of the user
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
@@ -166,16 +166,16 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticat
### Обхід взаємодії з підказкою
-Як пояснено в [**цьому відео**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), деякі реалізації OAuth дозволяють вказати параметр **`prompt`** GET як None (**`&prompt=none`**), щоб **запобігти запитам до користувачів на підтвердження** наданого доступу в підказці в вебі, якщо вони вже увійшли на платформу.
+Як пояснено в [**цьому відео**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), деякі реалізації OAuth дозволяють вказати GET параметр **`prompt`** як None (**`&prompt=none`**), щоб **запобігти запитам до користувачів на підтвердження** наданого доступу в підказці в вебі, якщо вони вже увійшли на платформу.
### response_mode
Як [**пояснено в цьому відео**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), можливо вказати параметр **`response_mode`**, щоб вказати, де ви хочете, щоб код був наданий у фінальному URL:
- `response_mode=query` -> Код надається всередині GET параметра: `?code=2397rf3gu93f`
-- `response_mode=fragment` -> Код надається всередині фрагмента URL параметра `#code=2397rf3gu93f`
+- `response_mode=fragment` -> Код надається всередині фрагменту URL параметра `#code=2397rf3gu93f`
- `response_mode=form_post` -> Код надається всередині POST форми з полем введення, названим `code`, і значенням
-- `response_mode=web_message` -> Код надсилається в повідомленні: `window.opener.postMessage({"code": "asdasdasd...`
+- `response_mode=web_message` -> Код надсилається в пост-повідомленні: `window.opener.postMessage({"code": "asdasdasd...`
### OAuth ROPC потік - обхід 2 FA
@@ -202,14 +202,14 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticat
- Ця функція відповідає специфікаціям, викладеним у **RFC7591** та **OpenID Connect Registration 1.0**, які включають параметри, потенційно вразливі до SSRF.
- Процес реєстрації може ненавмисно піддавати сервери SSRF кількома способами:
- **`logo_uri`**: URL для логотипу клієнтського додатку, який може бути отриманий сервером, викликаючи SSRF або призводячи до XSS, якщо URL обробляється неправильно.
-- **`jwks_uri`**: URL до документа JWK клієнта, який, якщо зловмисно створений, може змусити сервер здійснити вихідні запити до сервера, контрольованого зловмисником.
+- **`jwks_uri`**: URL до документа JWK клієнта, який, якщо його зловмисно створити, може змусити сервер здійснити вихідні запити до сервера, контрольованого зловмисником.
- **`sector_identifier_uri`**: Посилається на JSON масив `redirect_uris`, які сервер може отримати, створюючи можливість SSRF.
- **`request_uris`**: Перераховує дозволені запитувані URI для клієнта, які можуть бути використані, якщо сервер отримує ці URI на початку процесу авторизації.
**Стратегія експлуатації:**
- SSRF може бути ініційовано реєстрацією нового клієнта з зловмисними URL в параметрах, таких як `logo_uri`, `jwks_uri` або `sector_identifier_uri`.
-- Хоча пряма експлуатація через `request_uris` може бути зменшена за допомогою контролю білого списку, надання попередньо зареєстрованого, контрольованого зловмисником `request_uri` може полегшити SSRF під час фази авторизації.
+- Хоча пряма експлуатація через `request_uris` може бути пом'якшена контролем білого списку, надання попередньо зареєстрованого, контрольованого зловмисником `request_uri` може полегшити SSRF під час фази авторизації.
## Умови гонки постачальників OAuth
diff --git a/src/pentesting-web/xss-cross-site-scripting/other-js-tricks.md b/src/pentesting-web/xss-cross-site-scripting/other-js-tricks.md
index 329264b39..8e924f2f6 100644
--- a/src/pentesting-web/xss-cross-site-scripting/other-js-tricks.md
+++ b/src/pentesting-web/xss-cross-site-scripting/other-js-tricks.md
@@ -121,7 +121,12 @@ l = chr(int(L[-2:],16))
if(h == findHex[0]) and (l == findHex[1]):
print(H.replace("0x","\\u")+L.replace("0x","\\u"))
```
-### `javascript{}:` Протокол Фаззинг
+Більше інформації:
+
+- [https://github.com/dreadlocked/ctf-writeups/blob/master/nn8ed/README.md](https://github.com/dreadlocked/ctf-writeups/blob/master/nn8ed/README.md)
+- [https://mathiasbynens.be/notes/javascript-unicode](https://mathiasbynens.be/notes/javascript-unicode) [https://mathiasbynens.be/notes/javascript-encoding](https://mathiasbynens.be/notes/javascript-encoding)
+
+### `javascript{}:` Протокол Фаззингу
```javascript
// Heyes, Gareth. JavaScript for hackers: Learn to think like a hacker (p. 34). Kindle Edition.
log=[];
@@ -188,7 +193,7 @@ console.log(log) //33,45,62
```
## **Аналіз атрибутів**
-The tool **Hackability inspector** from Portswigger helps to **analyze** the **атрибути** of a javascript object. Check: [https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow\&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E](https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E)
+The tool **Hackability inspector** from Portswigger helps to **analyze** the **атрибутів** of a javascript object. Check: [https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow\&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E](https://portswigger-labs.net/hackability/inspector/?input=x.contentWindow&html=%3Ciframe%20src=//subdomain1.portswigger-labs.net%20id=x%3E)
## **.map js файли**
@@ -197,7 +202,7 @@ The tool **Hackability inspector** from Portswigger helps to **analyze** the **
## "--" Присвоєння
-The decrement operator `--` is also an asignment. This operator takes a value and then decrements it by one. If that value is not a number, it will be set to `NaN`. This can be used to **видалити вміст змінних з середовища**.
+The decrement operator `--` is also an asignment. This operator takes a value and then decrements it by one. If that value is not a number, it will be set to `NaN`. This can be used to **remove the content of variables from the environment**.
.png>)
@@ -264,7 +269,7 @@ let a = 4;
let b = 2;
() => a + b + 1;
```
-Отже, більшість попередніх функцій насправді марні, оскільки ми їх ніде не зберігаємо, щоб зберегти та викликати їх. Приклад створення функції `plusone`:
+Отже, більшість попередніх функцій насправді марні, оскільки ми їх ніде не зберігаємо, щоб зберегти та викликати. Приклад створення функції `plusone`:
```javascript
// Traductional
function plusone(a) {
@@ -276,7 +281,7 @@ plusone = (a) => a + 100
```
### Bind function
-Функція bind дозволяє створити **копію** **функції, модифікуючи** об'єкт **`this`** та **параметри**, що передаються.
+Функція bind дозволяє створити **копію** **функції, модифікуючи** **об'єкт `this`** та **параметри**, що передаються.
```javascript
//This will use the this object and print "Hello World"
var fn = function (param1, param2) {
@@ -345,7 +350,7 @@ return String(this)
```
## Sandbox Escape - Відновлення об'єкта window
-Об'єкт Window дозволяє отримати доступ до глобально визначених функцій, таких як alert або eval.
+Об'єкт Window дозволяє отримувати доступ до глобально визначених функцій, таких як alert або eval.
```javascript
// Some ways to access window
window.eval("alert(1)")
diff --git a/src/welcome/hacktricks-values-and-faq.md b/src/welcome/hacktricks-values-and-faq.md
index 2e15ed4cd..c73547ed5 100644
--- a/src/welcome/hacktricks-values-and-faq.md
+++ b/src/welcome/hacktricks-values-and-faq.md
@@ -25,7 +25,7 @@
>
> - **Дуже дякую за ці ресурси, як я можу вас подякувати?**
-Ви можете публічно подякувати командам HackTricks за те, що зібрали всі ці ресурси публічно в твітті, згадавши [**@hacktricks_live**](https://twitter.com/hacktricks_live).\
+Ви можете публічно подякувати командам HackTricks за те, що зібрали всі ці ресурси публічно в твітті, згадуючи [**@hacktricks_live**](https://twitter.com/hacktricks_live).\
Якщо ви особливо вдячні, ви також можете [**підтримати проект тут**](https://github.com/sponsors/carlospolop).\
І не забудьте **поставити зірку в проектах Github!** (Знайдіть посилання нижче).
@@ -44,14 +44,14 @@
>
> - **Чи можу я скопіювати деякий контент з HackTricks і розмістити його в своєму блозі?**
-Так, ви можете, але **не забудьте вказати конкретне посилання(я),** звідки був взятий контент.
+Так, ви можете, але **не забудьте згадати конкретне посилання(я),** звідки був взятий контент.
> [!TIP]
>
> - **Як я можу цитувати сторінку HackTricks?**
Досить, щоб з'явилося посилання **на** сторінку(і), звідки ви взяли інформацію.\
-Якщо вам потрібен bibtex, ви можете використовувати щось на кшталт:
+Якщо вам потрібен bibtex, ви можете використати щось на кшталт:
```latex
@misc{hacktricks-bibtexing,
author = {"HackTricks Team" or the Authors name of the specific page/trick},
@@ -76,9 +76,9 @@ url = {\url{https://book.hacktricks.wiki/specific-page}},
Якщо ви вважаєте, що книги HackTricks створені для **комерційних цілей**, ви **ЦІЛКОМ ПОМИЛЯЄТЕСЬ**.
-У нас є спонсори, тому що, навіть якщо весь контент БЕЗКОШТОВНИЙ, ми хочемо **надати спільноті можливість оцінити нашу роботу**, якщо вони цього хочуть. Тому ми пропонуємо людям можливість донатити HackTricks через [**Github sponsors**](https://github.com/sponsors/carlospolop), а також **відповідним компаніям з кібербезпеки** спонсорувати HackTricks і **мати деякі оголошення** в книзі, при цьому **оголошення** завжди розміщуються в місцях, де вони **видимі**, але **не заважають процесу навчання**, якщо хтось зосереджується на контенті.
+У нас є спонсори, тому що, навіть якщо весь контент БЕЗКОШТОВНИЙ, ми хочемо **надати спільноті можливість оцінити нашу роботу**, якщо вони цього хочуть. Тому ми пропонуємо людям можливість донатити HackTricks через [**Github sponsors**](https://github.com/sponsors/carlospolop), а також **відповідні компанії з кібербезпеки** спонсорувати HackTricks і **мати деякі оголошення** в книзі, при цьому **оголошення** завжди розміщуються в місцях, де вони **видимі**, але **не заважають процесу навчання**, якщо хтось зосереджується на контенті.
-Ви не знайдете HackTricks, заповнені набридливими оголошеннями, як інші блоги з набагато меншою кількістю контенту, тому що HackTricks не створено для комерційних цілей.
+Ви не знайдете HackTricks, заповнені набридливими оголошеннями, як інші блоги з набагато меншою кількістю контенту, оскільки HackTricks не створено для комерційних цілей.
> [!CAUTION]
>
@@ -92,7 +92,7 @@ url = {\url{https://book.hacktricks.wiki/specific-page}},
Зверніть увагу, що наявність посилань на вашу сторінку в HackTricks:
-- Покращує ваш **SEO**
+- Покращує ваше **SEO**
- Контент **перекладається на більше ніж 15 мов**, що дозволяє більшій кількості людей отримати доступ до цього контенту
- **HackTricks заохочує** людей **перевіряти вашу сторінку** (декілька людей згадували нам, що з тих пір, як деяка їхня сторінка є в HackTricks, вони отримують більше відвідувань)
@@ -111,12 +111,12 @@ Copyright © Усі права захищені, якщо не вказано і
#### Підсумок ліцензії:
- Attribution: Ви вільні:
-- Share — копіювати та перерозподіляти матеріал у будь-якому середовищі або форматі.
+- Share — копіювати та розповсюджувати матеріал в будь-якому середовищі або форматі.
- Adapt — реміксувати, трансформувати та розвивати матеріал.
#### Додаткові умови:
-- Контент третіх сторін: Деякі частини цього блогу/книги можуть містити контент з інших джерел, такі як уривки з інших блогів або публікацій. Використання такого контенту здійснюється відповідно до принципів добросовісного використання або з явним дозволом відповідних правовласників. Будь ласка, зверніться до оригінальних джерел для отримання конкретної інформації про ліцензування щодо контенту третіх сторін.
+- Контент третіх сторін: Деякі частини цього блогу/книги можуть містити контент з інших джерел, таких як уривки з інших блогів або публікацій. Використання такого контенту здійснюється відповідно до принципів добросовісного використання або з явним дозволом відповідних правовласників. Будь ласка, зверніться до оригінальних джерел для отримання конкретної інформації про ліцензування щодо контенту третіх сторін.
- Авторство: Оригінальний контент, створений HackTricks, підлягає умовам цієї ліцензії. Вам рекомендується вказувати цю роботу автору при її поширенні або адаптації.
#### Винятки:
diff --git a/src/windows-hardening/active-directory-methodology/README.md b/src/windows-hardening/active-directory-methodology/README.md
index fcef8a49c..704cb09fe 100644
--- a/src/windows-hardening/active-directory-methodology/README.md
+++ b/src/windows-hardening/active-directory-methodology/README.md
@@ -4,9 +4,9 @@
## Basic overview
-**Active Directory** служить основною технологією, що дозволяє **мережевим адміністраторам** ефективно створювати та управляти **доменами**, **користувачами** та **об'єктами** в межах мережі. Вона спроектована для масштабування, полегшуючи організацію великої кількості користувачів у керовані **групи** та **підгрупи**, контролюючи **права доступу** на різних рівнях.
+**Active Directory** служить основною технологією, що дозволяє **мережевим адміністраторам** ефективно створювати та керувати **доменами**, **користувачами** та **об'єктами** в межах мережі. Вона спроектована для масштабування, полегшуючи організацію великої кількості користувачів у керовані **групи** та **підгрупи**, контролюючи **права доступу** на різних рівнях.
-Структура **Active Directory** складається з трьох основних рівнів: **домени**, **дерева** та **ліси**. **Домен** охоплює колекцію об'єктів, таких як **користувачі** або **пристрої**, які ділять спільну базу даних. **Дерева** — це групи цих доменів, пов'язані спільною структурою, а **ліс** представляє колекцію кількох дерев, взаємопов'язаних через **довірчі відносини**, формуючи найвищий рівень організаційної структури. Специфічні **права доступу** та **права на зв'язок** можуть бути призначені на кожному з цих рівнів.
+Структура **Active Directory** складається з трьох основних рівнів: **домени**, **дерева** та **ліси**. **Домен** охоплює колекцію об'єктів, таких як **користувачі** або **пристрої**, які ділять спільну базу даних. **Дерева** — це групи цих доменів, пов'язані спільною структурою, а **ліс** представляє колекцію кількох дерев, з'єднаних через **довірчі відносини**, формуючи найвищий рівень організаційної структури. Конкретні **права доступу** та **права на зв'язок** можуть бути призначені на кожному з цих рівнів.
Ключові концепції в **Active Directory** включають:
@@ -18,11 +18,11 @@
**Active Directory Domain Services (AD DS)** охоплює ряд послуг, критично важливих для централізованого управління та зв'язку в межах мережі. Ці послуги включають:
-1. **Domain Services** – Централізує зберігання даних та управляє взаємодією між **користувачами** та **доменами**, включаючи функції **автентифікації** та **пошуку**.
+1. **Domain Services** – Централізує зберігання даних і керує взаємодією між **користувачами** та **доменами**, включаючи функції **автентифікації** та **пошуку**.
2. **Certificate Services** – Контролює створення, розподіл та управління безпечними **цифровими сертифікатами**.
3. **Lightweight Directory Services** – Підтримує програми, що використовують каталог, через **LDAP протокол**.
4. **Directory Federation Services** – Надає можливості **одного входу** для автентифікації користувачів через кілька веб-додатків в одній сесії.
-5. **Rights Management** – Допомагає захистити авторські матеріали, регулюючи їх несанкціонований розподіл та використання.
+5. **Rights Management** – Допомагає захистити авторські матеріали, регулюючи їх несанкціоноване розповсюдження та використання.
6. **DNS Service** – Критично важливий для розв'язання **доменних імен**.
Для більш детального пояснення перегляньте: [**TechTerms - Active Directory Definition**](https://techterms.com/definition/active_directory)
@@ -68,7 +68,7 @@
- Доступ до хоста [**зловживаючи атакою реле**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)
- Збирати облікові дані **викриваючи** [**підроблені UPnP сервіси з evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
- [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html):
-- Витягувати імена користувачів/імен з внутрішніх документів, соціальних мереж, сервісів (в основному веб) в середовищах домену, а також з публічно доступних джерел.
+- Витягувати імена користувачів/імена з внутрішніх документів, соціальних мереж, сервісів (в основному веб) в середовищах домену, а також з публічно доступних джерел.
- Якщо ви знайдете повні імена працівників компанії, ви можете спробувати різні конвенції **імен користувачів AD** (**[читайте це**](https://activedirectorypro.com/active-directory-user-naming-convention/)). Найбільш поширені конвенції: _NameSurname_, _Name.Surname_, _NamSur_ (3 літери з кожного), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 _випадкові літери та 3 випадкові цифри_ (abc123).
- Інструменти:
- [w0Tx/generate-ad-username](https://github.com/w0Tx/generate-ad-username)
@@ -77,7 +77,7 @@
### User enumeration
- **Anonymous SMB/LDAP enum:** Перевірте сторінки [**pentesting SMB**](../../network-services-pentesting/pentesting-smb/index.html) та [**pentesting LDAP**](../../network-services-pentesting/pentesting-ldap.md).
-- **Kerbrute enum**: Коли запитується **недійсне ім'я користувача**, сервер відповість, використовуючи **код помилки Kerberos** _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, що дозволяє нам визначити, що ім'я користувача було недійсним. **Дійсні імена користувачів** викличуть або **TGT в AS-REP** відповіді, або помилку _KRB5KDC_ERR_PREAUTH_REQUIRED_, що вказує на те, що користувачеві потрібно виконати попередню автентифікацію.
+- **Kerbrute enum**: Коли запитується **недійсне ім'я користувача**, сервер відповість, використовуючи код помилки **Kerberos** _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, що дозволяє нам визначити, що ім'я користувача було недійсним. **Дійсні імена користувачів** викличуть або **TGT в AS-REP** відповіді, або помилку _KRB5KDC_ERR_PREAUTH_REQUIRED_, що вказує на те, що користувачеві потрібно виконати попередню автентифікацію.
```bash
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
@@ -171,7 +171,7 @@ kerberos-double-hop-problem.md
Дуже легко отримати всі імена користувачів домену з Windows (`net user /domain`, `Get-DomainUser` або `wmic useraccount get name,sid`). У Linux ви можете використовувати: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` або `enum4linux -a -u "user" -p "password" `
-> Навіть якщо цей розділ перерахунку виглядає маленьким, це найважливіша частина всього. Перейдіть за посиланнями (в основному на cmd, powershell, powerview і BloodHound), навчіться, як перерахувати домен, і практикуйтеся, поки не відчуєте себе комфортно. Під час оцінки це буде ключовий момент, щоб знайти свій шлях до DA або вирішити, що нічого не можна зробити.
+> Навіть якщо цей розділ перерахунку виглядає маленьким, це найважливіша частина всього. Перейдіть за посиланнями (в основному на cmd, powershell, powerview і BloodHound), дізнайтеся, як перерахувати домен, і практикуйтеся, поки не відчуєте себе комфортно. Під час оцінки це буде ключовий момент, щоб знайти свій шлях до DA або вирішити, що нічого не можна зробити.
### Kerberoast
@@ -215,7 +215,7 @@ kerberoast.md
### Вкрасти NTLM креденціали
-Якщо ви можете **доступитися до інших ПК або спільних ресурсів**, ви можете **розмістити файли** (наприклад, файл SCF), які, якщо їх якось відкриють, **запустять NTML аутентифікацію проти вас**, щоб ви могли **вкрасти** **NTLM challenge** для його зламу:
+Якщо ви можете **доступитися до інших ПК або спільних ресурсів**, ви можете **розмістити файли** (наприклад, файл SCF), які, якщо їх якось відкриють, **запустять NTML аутентифікацію проти вас**, щоб ви могли **вкрасти** **NTLM виклик** для його зламу:
{{#ref}}
../ntlm/places-to-steal-ntlm-creds.md
@@ -235,8 +235,8 @@ printnightmare.md
### Витягування хешів
-Сподіваюся, вам вдалося **компрометувати деякий локальний обліковий запис адміністратора**, використовуючи [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) включаючи реле, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [підвищення привілеїв локально](../windows-local-privilege-escalation/index.html).\
-Тепер час вивантажити всі хеші в пам'яті та локально.\
+Сподіваюся, вам вдалося **компрометувати деякий локальний адміністратор** за допомогою [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) включаючи реле, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [підвищення привілеїв локально](../windows-local-privilege-escalation/index.html).\
+Тоді настав час вивантажити всі хеші в пам'яті та локально.\
[**Прочитайте цю сторінку про різні способи отримання хешів.**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
### Pass the Hash
@@ -275,7 +275,7 @@ crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9c
### Зловживання MSSQL та Довірені Посилання
Якщо користувач має привілеї для **доступу до екземплярів MSSQL**, він може використовувати це для **виконання команд** на хості MSSQL (якщо працює як SA), **викрадення** хешу NetNTLM або навіть виконання **атаки** **реле**.\
-Також, якщо екземпляр MSSQL є довіреним (посилання на базу даних) іншим екземпляром MSSQL. Якщо користувач має привілеї над довіреною базою даних, він зможе **використовувати довірчі відносини для виконання запитів також в іншому екземплярі**. Ці довіри можуть бути з'єднані, і в якийсь момент користувач може знайти неправильно налаштовану базу даних, де він може виконувати команди.\
+Також, якщо екземпляр MSSQL є довіреним (посилання на базу даних) іншим екземпляром MSSQL. Якщо користувач має привілеї над довіреною базою даних, він зможе **використовувати довірчі відносини для виконання запитів також в іншому екземплярі**. Ці довірчі відносини можуть бути з'єднані, і в якийсь момент користувач може знайти неправильно налаштовану базу даних, де він може виконувати команди.\
**Зв'язки між базами даних працюють навіть через довіри лісу.**
{{#ref}}
@@ -303,7 +303,7 @@ constrained-delegation.md
### Делегація на основі ресурсів
-Маючи привілей **WRITE** на об'єкті Active Directory віддаленого комп'ютера, ви отримуєте можливість виконання коду з **підвищеними привілеями**:
+Маючи привілей **WRITE** на об'єкт Active Directory віддаленого комп'ютера, можна отримати виконання коду з **підвищеними привілеями**:
{{#ref}}
resource-based-constrained-delegation.md
@@ -317,7 +317,7 @@ resource-based-constrained-delegation.md
acl-persistence-abuse/
{{#endref}}
-### Зловживання службою спулера принтерів
+### Зловживання службою спулера принтера
Виявлення **служби спулера**, що слухає в домені, може бути **зловжито** для **отримання нових облікових даних** та **ескалації привілеїв**.
@@ -327,7 +327,7 @@ printers-spooler-service-abuse.md
### Зловживання сесіями третіх сторін
-Якщо **інші користувачі** **доступають** до **скомпрометованої** машини, можливо **збирати облікові дані з пам'яті** і навіть **впроваджувати маяки в їхні процеси** для видачі себе за них.\
+Якщо **інші користувачі** **доступають** до **скомпрометованої** машини, можливо **збирати облікові дані з пам'яті** і навіть **впроваджувати маяки в їхні процеси** для видавання себе за них.\
Зазвичай користувачі отримують доступ до системи через RDP, тому ось як виконати кілька атак на сесії RDP третіх сторін:
{{#ref}}
@@ -336,7 +336,7 @@ rdp-sessions-abuse.md
### LAPS
-**LAPS** забезпечує систему для управління **паролем локального адміністратора** на комп'ютерах, що приєднані до домену, забезпечуючи його **випадковість**, унікальність та часту **зміну**. Ці паролі зберігаються в Active Directory, а доступ контролюється через ACL лише для авторизованих користувачів. З достатніми правами для доступу до цих паролів стає можливим перемикання на інші комп'ютери.
+**LAPS** забезпечує систему для управління **паролем локального адміністратора** на комп'ютерах, що приєднані до домену, забезпечуючи його **випадковість**, унікальність та часту **зміну**. Ці паролі зберігаються в Active Directory, а доступ контролюється через ACL лише для авторизованих користувачів. З достатніми правами для доступу до цих паролів стає можливим переміщення до інших комп'ютерів.
{{#ref}}
laps.md
@@ -368,7 +368,7 @@ ad-certificates/domain-escalation.md
[**Більше інформації про те, як вкрасти NTDS.dit можна знайти тут**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
-### Привілеї як Постійність
+### Privesc як Постійність
Деякі з технік, обговорених раніше, можуть бути використані для постійності.\
Наприклад, ви могли б:
@@ -401,7 +401,7 @@ silver-ticket.md
### Золотий Квиток
-**Атака Золотого Квитка** передбачає, що зловмисник отримує доступ до **NTLM хешу облікового запису krbtgt** в середовищі Active Directory (AD). Цей обліковий запис є особливим, оскільки використовується для підписання всіх **квитків на надання послуг (TGT)**, які є необхідними для аутентифікації в мережі AD.
+Атака **Золотого Квитка** передбачає, що зловмисник отримує доступ до **NTLM хешу облікового запису krbtgt** в середовищі Active Directory (AD). Цей обліковий запис є особливим, оскільки використовується для підписання всіх **квитків на надання послуг (TGT)**, які є необхідними для аутентифікації в мережі AD.
Якщо зловмисник отримує цей хеш, він може створити **TGT** для будь-якого облікового запису, який вибере (атака Срібного Квитка).
@@ -425,9 +425,9 @@ diamond-ticket.md
ad-certificates/account-persistence.md
{{#endref}}
-### **Постійність Сертифікатів у Домені**
+### **Постійність Сертифікатів в Домені**
-**Використання сертифікатів також можливе для підтримки високих привілеїв у домені:**
+**Використання сертифікатів також можливе для збереження високих привілеїв у домені:**
{{#ref}}
ad-certificates/domain-persistence.md
@@ -457,7 +457,7 @@ acl-persistence-abuse/
### Описники Безпеки
-**Описники безпеки** використовуються для **зберігання** **дозволів**, які має **об'єкт** **над** **об'єктом**. Якщо ви зможете **зробити** **невелику зміну** в **описнику безпеки** об'єкта, ви зможете отримати дуже цікаві привілеї над цим об'єктом без необхідності бути членом привілейованої групи.
+**Описники безпеки** використовуються для **зберігання** **дозволів**, які має **об'єкт** **над** **об'єктом**. Якщо ви можете просто **зробити** **невелику зміну** в **описнику безпеки** об'єкта, ви можете отримати дуже цікаві привілеї над цим об'єктом, не будучи членом привілейованої групи.
{{#ref}}
security-descriptors.md
@@ -491,7 +491,7 @@ dcshadow.md
### Постійність LAPS
-Раніше ми обговорювали, як ескалювати привілеї, якщо у вас є **достатні права для читання паролів LAPS**. Однак ці паролі також можуть бути використані для **підтримки постійності**.\
+Раніше ми обговорювали, як ескалювати привілеї, якщо у вас є **достатні права для читання паролів LAPS**. Однак ці паролі також можуть бути використані для **збереження постійності**.\
Перевірте:
{{#ref}}
@@ -504,16 +504,16 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз
### Основна Інформація
-[**Доменна довіра**]() є механізмом безпеки, який дозволяє користувачу з одного **домену** отримувати доступ до ресурсів в іншому **домені**. Це фактично створює зв'язок між системами аутентифікації двох доменів, дозволяючи безперешкодний потік перевірок аутентифікації. Коли домени встановлюють довіру, вони обмінюються та зберігають специфічні **ключі** в своїх **Контролерах Домену (DC)**, які є критично важливими для цілісності довіри.
+[**Доменна довіра**]() є механізмом безпеки, який дозволяє користувачу з одного **домену** отримувати доступ до ресурсів в іншому **домені**. Це фактично створює зв'язок між системами аутентифікації двох доменів, що дозволяє безперешкодно проходити перевірки аутентифікації. Коли домени встановлюють довіру, вони обмінюються та зберігають певні **ключі** в своїх **Контролерах Домену (DC)**, які є критично важливими для цілісності довіри.
-У типовій ситуації, якщо користувач має намір отримати доступ до служби в **довіреному домені**, спочатку він повинен запитати спеціальний квиток, відомий як **квиток TGT між царствами**, у DC свого власного домену. Цей TGT шифрується спільним **ключем**, на якому обидва домени погодилися. Користувач потім представляє цей TGT **DC довіреного домену**, щоб отримати квиток на службу (**TGS**). Після успішної перевірки TGT між царствами DC довіреного домену видає TGS, надаючи користувачу доступ до служби.
+У типовій ситуації, якщо користувач має намір отримати доступ до служби в **довіреному домені**, спочатку він повинен запитати спеціальний квиток, відомий як **квиток TGT між царствами**, у DC свого власного домену. Цей TGT зашифрований спільним **ключем**, на якому обидва домени погодилися. Користувач потім представляє цей TGT **DC довіреного домену**, щоб отримати квиток на службу (**TGS**). Після успішної перевірки TGT між царствами DC довіреного домену видає TGS, надаючи користувачу доступ до служби.
**Кроки**:
1. **Клієнтський комп'ютер** в **Домені 1** починає процес, використовуючи свій **NTLM хеш** для запиту **Квитка на Надання Квитків (TGT)** у свого **Контролера Домену (DC1)**.
2. DC1 видає новий TGT, якщо клієнт успішно аутентифікований.
3. Клієнт потім запитує **квиток TGT між царствами** у DC1, який потрібен для доступу до ресурсів у **Домені 2**.
-4. Квиток TGT між царствами шифрується за допомогою **ключа довіри**, спільного між DC1 та DC2 в рамках двосторонньої довіри домену.
+4. Квиток TGT між царствами зашифрований **ключем довіри**, спільним між DC1 та DC2 в рамках двосторонньої довіри домену.
5. Клієнт приносить квиток TGT між царствами до **Контролера Домену 2 (DC2)**.
6. DC2 перевіряє квиток TGT між царствами, використовуючи свій спільний ключ довіри, і, якщо він дійсний, видає **Квиток на Надання Послуг (TGS)** для сервера в Домені 2, до якого клієнт хоче отримати доступ.
7. Нарешті, клієнт представляє цей TGS серверу, який зашифрований хешем облікового запису сервера, щоб отримати доступ до служби в Домені 2.
@@ -529,7 +529,7 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз
- **Довіри Батьків-Дітей**: Це звичайна налаштування в межах одного лісу, де дитячий домен автоматично має двосторонню транзитивну довіру з батьківським доменом. Це означає, що запити на аутентифікацію можуть безперешкодно проходити між батьком і дитиною.
- **Перехресні Довіри**: Відомі як "скорочені довіри", вони встановлюються між дитячими доменами для прискорення процесів посилання. У складних лісах запити на аутентифікацію зазвичай повинні подорожувати до кореня лісу, а потім вниз до цільового домену. Створюючи перехресні зв'язки, подорож скорочується, що особливо корисно в географічно розподілених середовищах.
- **Зовнішні Довіри**: Вони встановлюються між різними, несвязаними доменами і за своєю природою є нетранзитивними. Згідно з [документацією Microsoft](), зовнішні довіри корисні для доступу до ресурсів у домені поза поточним лісом, який не підключений через довіру лісу. Безпека посилюється через фільтрацію SID з зовнішніми довірами.
-- **Довіри Кореня Дерева**: Ці довіри автоматично встановлюються між кореневим доменом лісу та новим коренем дерева. Хоча їх не часто зустрічають, довіри кореня дерева важливі для додавання нових доменних дерев до лісу, дозволяючи їм зберігати унікальну доменну назву та забезпечуючи двосторонню транзитивність. Більше інформації можна знайти в [посібнику Microsoft]().
+- **Довіри Кореня Дерева**: Ці довіри автоматично встановлюються між кореневим доменом лісу та новим коренем дерева. Хоча їх не часто зустрічають, довіри кореня дерева важливі для додавання нових доменних дерев до лісу, дозволяючи їм зберігати унікальну назву домену та забезпечуючи двосторонню транзитивність. Більше інформації можна знайти в [посібнику Microsoft]().
- **Довіри Лісу**: Цей тип довіри є двосторонньою транзитивною довірою між двома кореневими доменами лісу, також забезпечуючи фільтрацію SID для підвищення заходів безпеки.
- **Довіри MIT**: Ці довіри встановлюються з не-Windows, [RFC4120-сумісними](https://tools.ietf.org/html/rfc4120) доменами Kerberos. Довіри MIT є дещо більш спеціалізованими і призначені для середовищ, які потребують інтеграції з системами на основі Kerberos поза екосистемою Windows.
@@ -543,13 +543,13 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз
1. **Перелічити** довірчі відносини
2. Перевірте, чи має будь-який **суб'єкт безпеки** (користувач/група/комп'ютер) **доступ** до ресурсів **іншого домену**, можливо, через записи ACE або через членство в групах іншого домену. Шукайте **відносини між доменами** (довіра була створена для цього, напевно).
1. У цьому випадку kerberoast може бути ще одним варіантом.
-3. **Скомпрометувати** **облікові записи**, які можуть **перемикатися** між доменами.
+3. **Скомпрометувати** **облікові записи**, які можуть **переміщатися** між доменами.
Зловмисники можуть отримати доступ до ресурсів в іншому домені через три основні механізми:
- **Членство в Локальних Групах**: Суб'єкти можуть бути додані до локальних груп на машинах, таких як група "Адміністратори" на сервері, що надає їм значний контроль над цією машиною.
- **Членство в Групах Зовнішнього Домену**: Суб'єкти також можуть бути членами груп у зовнішньому домені. Однак ефективність цього методу залежить від природи довіри та обсягу групи.
-- **Списки Контролю Доступу (ACL)**: Суб'єкти можуть бути вказані в **ACL**, особливо як сутності в **ACE** в рамках **DACL**, надаючи їм доступ до специфічних ресурсів. Для тих, хто хоче глибше зануритися в механіку ACL, DACL та ACE, документ під назвою “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” є безцінним ресурсом.
+- **Списки Контролю Доступу (ACL)**: Суб'єкти можуть бути вказані в **ACL**, особливо як сутності в **ACE** в рамках **DACL**, надаючи їм доступ до конкретних ресурсів. Для тих, хто хоче глибше зануритися в механіку ACL, DACL та ACE, документ під назвою “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” є безцінним ресурсом.
### Ескалація Привілеїв Лісу від Дитини до Батька
```
@@ -604,7 +604,7 @@ sid-history-injection.md
**Від DA до EA з ADCS ESC5**
-Уразливість ADCS ESC5 націлюється на контроль над об'єктами Інфраструктури відкритих ключів (PKI), щоб створити шаблон сертифіката, який дозволяє автентифікацію як будь-який користувач у лісі. Оскільки об'єкти PKI знаходяться в Configuration NC, компрометація записуваного дочірнього DC дозволяє виконувати атаки ESC5.
+Уразливість ADCS ESC5 націлюється на контроль над об'єктами Інфраструктури відкритих ключів (PKI) для створення шаблону сертифіката, який дозволяє аутентифікацію як будь-який користувач у лісі. Оскільки об'єкти PKI знаходяться в Configuration NC, компрометація записуваного дочірнього DC дозволяє виконувати атаки ESC5.
Більше деталей про це можна прочитати в [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). У сценаріях, де немає ADCS, зловмисник має можливість налаштувати необхідні компоненти, як обговорюється в [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/).
@@ -619,7 +619,7 @@ TrustDirection : Inbound --> Inboud trust
WhenCreated : 2/19/2021 10:50:56 PM
WhenChanged : 2/19/2021 10:50:56 PM
```
-У цьому сценарії **ваш домен довіряється** зовнішньому, що надає вам **невизначені дозволи** над ним. Вам потрібно буде з'ясувати, **які принципи вашого домену мають який доступ до зовнішнього домену** і потім спробувати це експлуатувати:
+У цьому сценарії **ваш домен довіряє** зовнішньому, що надає вам **невизначені дозволи** над ним. Вам потрібно з'ясувати, **які принципи вашого домену мають який доступ до зовнішнього домену** і потім спробувати це експлуатувати:
{{#ref}}
external-forest-domain-oneway-inbound.md
@@ -639,16 +639,16 @@ WhenChanged : 2/19/2021 10:15:24 PM
```
У цьому сценарії **ваш домен** **довіряє** деяким **привілеям** принципу з **інших доменів**.
-Однак, коли **домен довіряється** довіреним доменом, довірений домен **створює користувача** з **передбачуваним ім'ям**, який використовує **пароль довіреного пароля**. Це означає, що можливо **отримати доступ до користувача з довіреного домену, щоб потрапити всередину довіреного** для його перерахунку та спроби підвищити більше привілеїв:
+Однак, коли **домен довіряється** довіреним доменом, довірений домен **створює користувача** з **передбачуваним ім'ям**, який використовує **пароль довіреного пароля**. Це означає, що можливо **отримати доступ до користувача з довіреного домену, щоб потрапити всередину довіреного** для його перерахунку та спроби підвищити привілеї:
{{#ref}}
external-forest-domain-one-way-outbound.md
{{#endref}}
-Ще один спосіб скомпрометувати довірений домен - це знайти [**SQL trusted link**](abusing-ad-mssql.md#mssql-trusted-links), створений у **протилежному напрямку** довіреності домену (що не є дуже поширеним).
+Ще один спосіб скомпрометувати довірений домен - це знайти [**SQL trusted link**](abusing-ad-mssql.md#mssql-trusted-links), створений у **протилежному напрямку** довірчих доменів (що не є дуже поширеним).
-Ще один спосіб скомпрометувати довірений домен - це чекати на машині, де **користувач з довіреного домену може отримати доступ** для входу через **RDP**. Тоді зловмисник може ввести код у процес сесії RDP і **отримати доступ до початкового домену жертви** звідти.\
-Більше того, якщо **жертва змонтувала свій жорсткий диск**, з процесу **сесії RDP** зловмисник може зберігати **бекдори** у **папці автозавантаження жорсткого диска**. Цю техніку називають **RDPInception.**
+Ще один спосіб скомпрометувати довірений домен - це чекати на машині, до якої **користувач з довіреного домену може отримати доступ**, щоб увійти через **RDP**. Тоді зловмисник може впровадити код у процес сесії RDP і **отримати доступ до початкового домену жертви** звідти.\
+Більше того, якщо **жертва підключила свій жорсткий диск**, з процесу **сесії RDP** зловмисник може зберігати **бекдори** у **папці автозавантаження жорсткого диска**. Цю техніку називають **RDPInception.**
{{#ref}}
rdp-sessions-abuse.md
@@ -682,11 +682,11 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
- **Обмеження для адміністраторів домену**: Рекомендується, щоб адміністраторам домену дозволялося входити лише на контролери домену, уникаючи їх використання на інших хостах.
- **Привілеї облікових записів служб**: Служби не повинні працювати з привілеями адміністратора домену (DA) для підтримки безпеки.
-- **Обмеження тимчасових привілеїв**: Для завдань, що вимагають привілеїв DA, їх тривалість повинна бути обмежена. Це можна досягти за допомогою: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
+- **Обмеження тривалості привілеїв**: Для завдань, що вимагають привілеїв DA, їх тривалість повинна бути обмежена. Це можна досягти за допомогою: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
### **Впровадження технік обману**
-- Впровадження обману передбачає встановлення пасток, таких як приманкові користувачі або комп'ютери, з такими функціями, як паролі, які не закінчуються або позначені як Довірені для делегування. Детальний підхід включає створення користувачів з певними правами або додавання їх до груп з високими привілеями.
+- Впровадження обману передбачає встановлення пасток, таких як приманкові користувачі або комп'ютери, з такими функціями, як паролі, які не закінчуються або позначені як довірені для делегування. Детальний підхід включає створення користувачів з певними правами або додавання їх до груп з високими привілеями.
- Практичний приклад включає використання інструментів, таких як: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
- Більше про впровадження технік обману можна знайти на [Deploy-Deception на GitHub](https://github.com/samratashok/Deploy-Deception).
@@ -700,7 +700,7 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
- **Обхід виявлення Microsoft ATA**:
- **Перерахування користувачів**: Уникнення перерахування сесій на контролерах домену, щоб запобігти виявленню ATA.
- **Імітація квитків**: Використання **aes** ключів для створення квитків допомагає уникнути виявлення, не знижуючи до NTLM.
-- **Атаки DCSync**: Рекомендується виконувати з не-контролера домену, щоб уникнути виявлення ATA, оскільки безпосереднє виконання з контролера домену викличе сповіщення.
+- **Атаки DCSync**: Рекомендується виконувати з не контролера домену, щоб уникнути виявлення ATA, оскільки безпосереднє виконання з контролера домену викличе сповіщення.
## Посилання