Infrastructure as a Problem: AXFR-Requests verraten Subdomains

In heutigen Zeiten vernetzter Infrastruktur und ECommerce müssen Betreiber von Internetsystemen darauf achten, die eigene Angriffsoberfläche gegen Hacker und Botnetze so gering wie möglich zu halten.

Neben dem regelmäßigen Patchen und Testen von Systemen (Pentests, Stresstest) ist vor allem darauf zu achten, keine internen Systeme im Internet bloßzustellen und potentiellen Angreifern so wenig wie möglich Informationen über die Serverstruktur zu geben (Rechenzentrumshygiene).

Ein fataler Fehler in der Konfiguration der DNS-Server einer Domain kann nun dazu führen, dass ein Angreifer mittels einer AXFR-Anfrage alle Informationen des zugehörigen Zonefiles auslesen und somit sehr leicht an Informationen über interne Systeme gelangen kann. Einem Hacker ermöglichen diese Infos, angreifbare Punkte zu finden, wie der Artikel How I Hacked Facebook, and Found Someone's Backdoor Script verdeutlicht.

Das Problem ist nicht neu, wie ein Advisory des US.CERT aus dem Jahre 2015 zeigt.

A remote unauthenticated user may request a DNS zone transfer from a public-facing DNS server. If improperly configured, the DNS server may respond with information about the requested zone, revealing internal network structure and potentially sensitive information.

Als Prior Art sei hier auf einen Scan der Alexa Top 1 Mio verwiesen, den das Team der Internetwache 2015 durchgeführt hat.

Anm: AXFR ist ein benötigtes Protokoll, vor allem zum Abgleich von DNS-Server untereinander, sollte aber strikt begrenzt und von externem Zugriff ausgeschlossen werden.

Analyse

Zwischen August und September 2017 haben wir die Top 25.000 DE-Domains auf AXFR-Probleme untersucht. Im ersten Durchlauf wurden 605 Domains bei 30 Providern gefunden, darunter einige Top-Domains. Bei einigen, teils auch größeren Providern waren mehr als eine Handvoll AXFR-Domains zu finden, sodass wir ein strukturelles Problem vermuten und diese direkt ansprachen. Auch auf die Domainbetreiber aus den Top 1000 sind wir direkt zugegangen. Die Resonanz bei den Domainbetreibern war überwiegend vorbildlich; der erste Fix mit der Bitte um Re-Test lag nach 15 Minuten vor, einige haben das Problem dann stillschweigend gefixt. Die Provider hingegen sahen sich kaum genötigt, etwas gegen dieses potentielle Sicherheitsrisiko zu unternehmen. Ingesamt waren 74 Domains und 2 Provider nach 2 Wochen gefixt.

Nach 3 Wochen haben wir den Test wiederholt und automatiserte Mails an die Kontaktadressen der Whois-Einträge versand. Nach dieser Runde wurden weitere 30 Domains gefixt.

Die größte AXFR-Response enthielt 1.600 Einträge zu Hostnamen, die meisten Domains hatten bis zu 30 Hostnamen verzeichnet; bei immerhin 13 Domains waren die AXFR-Einträge mehr als 1000 Hostnamen groß.

Sehr interessant waren einige AXFR-Responses, die Überblick über die komplette interne Infrastruktur nebst Entwicklungs- Test- und Desktopsystemen erlaubte, da alle Hostnamen, auch die mit privaten IPs dort verzeichnet waren.

axfr-by-length

Verteilung der AXFR-Reponses nach Anzahl der Einträge

Referenzen

Appendix

  • Beispiel-Antwort auf eine AXFR-Anfrage
; <<>> DiG 9.10.3-P4-Ubuntu <<>> axfr @ns1.victim.com victim.dom
; (1 server found)
;; global options: +cmd
victim.dom.     300 IN  SOA ns1.victim.com. postmaster.nsdomain.com. 2010080104 86400 10800 3600000 86400
victim.dom.     300 IN  MX  10 mail.victim.dom.
victim.dom.     300 IN  NS  ns23.victim.dom.
victim.dom.     300 IN  A   45.11.22.33
access        300   IN  A   45.11.22.33
admin             300   IN  A   45.11.22.33
api           300   IN  A   45.11.22.33
autodiscover  300   IN  A   45.11.22.33
backup          300 IN  A   45.11.22.33
conf              300   IN  A   45.11.22.33
confluen        300 IN  A   45.11.22.33
cpanel        300   IN  A   45.11.22.33
database        300 IN  A   45.11.22.33
db              300 IN  A   45.11.22.33
dbase             300   IN  A   45.11.22.33
dev             300 IN  A   45.11.22.33
elk             300 IN  A   45.11.22.33
files             300   IN  A   45.11.22.33
git             300 IN  A   45.11.22.33
gw              300 IN  A   45.11.22.33
hipchat       300   IN  A   45.11.22.33
icinga        300   IN  A   45.11.22.33
inmarsat        300 IN  A   45.11.22.33
intra             300   IN  A   45.11.22.33
jira              300   IN  A   45.11.22.33
log             300 IN  A   45.11.22.33
login             300   IN  A   45.11.22.33
mail              300   IN  A   45.11.22.33
maintain        300 IN  A   45.11.22.33
mainten       300   IN  A   45.11.22.33
mirror        300   IN  A   45.11.22.33
mongo             300   IN  A   45.11.22.33
monit             300   IN  A   45.11.22.33
nagios        300   IN  A   45.11.22.33
owa             300 IN  A   45.11.22.33
pix             300 IN  A   45.11.22.33
plesk             300   IN  A   45.11.22.33
redis             300   IN  A   45.11.22.33
sap             300 IN  A   45.11.22.33
share             300   IN  A   45.11.22.33
sicherung       300 IN  A   45.11.22.33
stage             300   IN  A   45.11.22.33
store             300   IN  A   45.11.22.33
support       300   IN  A   45.11.22.33
svn             300 IN  A   45.11.22.33
test              300   IN  A   45.11.22.33
ticket        300   IN  A   45.11.22.33
vpn             300 IN  A   45.11.22.33
webmail       300   IN  A   45.11.22.33
www             300 IN  A   45.11.22.33
zabbix        300   IN  A   45.11.22.33
victim.dom.     300 IN  SOA ns23.victim.dom. postmaster.nsdomain.com. 2017080104 86400 10800 3600000 86400
;; Query time: 94 msec
;; WHEN: Tue Aug 08 12:02:16 UTC 2017
;; XFR size: 52 records (messages 1, bytes 1224)