Ist die Geschäftskontinuität nicht Teil der Sicherheit?
Andrea Covello
Im Rahmen der Analyse von Computersystemen, sind in der heutigen Zeit Webapplikationen in den meisten Fällen das Hauptziel. Allerdings sind netzwerkbasierte Tests (und damit auch Angriffe) mindestens genau so wichtig. Besonders dann, wenn mehrere Systeme einer Organisation im Internet erreichbar sind. In diesem Artikel erkunden wir die grundlegenden Schritte zum Erfassen und Erproben von Computersystemen einer Organisation.
In den meisten Fällen gehen wir von einem IP-Adressblock (z.B. 192.0.2.0/24
in CIDR-Form) oder einem Domänennamen (z.B. example.com
) aus. Unser Ziel ist es, eine möglichst vollständige Liste von IP-Adressen wie auch Domänennamen und Informationen über die Domäne zu erhalten. Um dieses Ziel zu erreichen, machen wir uns das Domain Name System (DNS) zu Nutze. Es wurde dafür entwickelt, lesbare Domänennamen in zugehörige IP-Adressen zu übersetzen. In einigen Fällen ist diese Übersetzung sogar in der entgegengesetzten Richtung möglich.
Unter der Annahme, dass wir nur den Domänennamen kennen, befragen wir die Whois-Datenbank zur Domäne, dessen Registrar und entsprechende DNS-Server. Ein Whois-Eintrag muss jeweils erstellt werden, wenn eine Domäne registriert wird. Leider enthält der Eintrag in vielen Fällen persönliche Informationen über IT-Personal und Angaben über Partnerorganisationen.
$ whois example.com whois: This information is subject to an Acceptable Use Policy. See https://www.nic.ch/terms/aup/ Domain name: example.com Holder of domain name: Example Holdings Inc. Jane Doe 101 First Street New York, NY United States of America Contractual Language: English Technical contact: Any Hosting Inc. Philip Johnson 525 Flower Lane New York, NY United States of America Registrar: Network Registrar Corp. First registration date: 2001-01-01 DNSSEC:N Name servers: ns1.net-reg.com ns2.net-reg.com
Entsprechend unserem Ziel würden wir jedoch gerne Informationen über die DNS- oder gar Web-Server der Domäne example.com
sammeln. Dafür verwenden wir dig
, ein mächtiges Werkzeug um DNS-Einträge aufzulisten. Dig selbst hat viele Optionen, um verschiedene DNS-Anfragen zu versenden. Aber als erster Versuch reicht eine simple A
-Abfrage. Madboa hat eine sehr gute Einführung in den Gebrauch von Dig.
$ dig example.com A ; <<>> DiG 9.10.3-P4-Debian <<>> example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: xxxxx ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 85937 IN A 192.0.2.1 ;; AUTHORITY SECTION: example.com. 3137 IN NS ns1.net-reg.com. example.com. 3137 IN NS ns2.net-reg.com. ;; ADDITIONAL SECTION: ns1.net-reg.com. 494 IN A 192.0.3.53 ns2.net-reg.com. 494 IN A 192.0.3.52
Basierend auf den obigen Resultaten, kennen wir nun die IP-Adresse der zwei DNS-Server und des Web-Servers. Das sind jedoch mit Sicherheit noch nicht alle am Internet angeschlossenen Computer der Organisation “Example Inc.”
Der MX
-Eintrag liefert uns in den meisten Fällen Informationen über die E-Mail Server der Organisation und der SOA
-Eintrag teilt uns mit, welcher der DNS-Server eine authoritative Rolle einnimmt. Der TXT
-Eintrag kann beliebige Informationen enthalten, wird jedoch heute hauptsächlich für das sogenannte Sender Policy Framework (SPF) verwendet. Ursprünglich wurde SPF entwickelt, E-Mail Spoofing einzudämmen, indem der TXT
-Eintrag angibt, welche Hosts der Domäne überhaupt E-Mail verwenden dürfen.
Letztlich versuchen wir eine abschliessende Liste der Hosts in der Domäne mittels des AXFR
-Eintrags zu erhalten. Dieser Eintrag erlaubt sogenannte Zonentransfers, die DNS Servern erlauben, Einträge zu delegieren. Aus guten Gründen sind Zonentransfers meist nicht möglich.
$ dig example.com MX +short 10 mail.example.com $ dig example.com SOA +short ns1.net-reg.com. net-reg.anyhosting.com. 2017042502 10800 3600 604800 600 $ dig example.com TXT +short "v=spf1 mx a ip4:192.0.2.0/24 ip4:192.0.3.52/31 ip4:192.0.4.0/24 ~all" $ dig example.com AXFR +short ; Transfer failed.
Trotz der Tatsache, dass wir keinen Zonentransfer durchführen konnten, lieferte uns der TXT
-Eintrag alle IP-Adressen der Domäne example.com
. Nun können wir die Sicherheit der einzelnen Hosts überprüfen.
Bis jetzt gingen wir davon aus, dass wir den Domänennamen der Organisation bereits kennen. Was ist, wenn wir nur wenige IP-Adressen (z.B. 192.0.2.0/24
) kennen? Während die Resultate irreführend sein können, wird auch hier der Whois-Eintrag in den meisten Fällen genug Informationen über die Domäne liefern, damit wir die obigen Schritte erneut anwenden können. In unserem Fall lieferte uns der Eintrag Telefonnummern, den Internet Service Provider und Hinweise auf den Domänennamen. Damit können wir Suchmaschinen oder Dig verwenden, um den tatsächlichen Domänennamen zu finden.
$ whois 192.0.2.0 inetnum: 192.0.2.0 - 192.0.2.255 netname: EXAMPLE-NET descr: Example Inc. descr: New York country: US admin-c: JD92-RIPE tech-c: JD92-RIPE status: ASSIGNED PA mnt-by: US-UNISOURCE-MNT created: 2009-05-15T09:20:00Z last-modified: 2009-06-19T08:42:58Z source: RIPE person: Jane Doe address: Example Inc. address: 101 First Street address: New York phone: +1-(555)-800 10 30 fax-no: +1-(555)-800 10 03 nic-hdl: JD92-RIPE created: 2009-05-10T00:00:00Z last-modified: 2016-02-01T00:00:00Z mnt-by: RIPE-NCC-LOCKED-MNT source: RIPE # Filtered route: 192.0.0.0/8 descr: Some-ISP NET-REG aggregate origin: ASxxxx mnt-by: US-UNISOURCE-MNT created: 2003-02-01T00:00:00Z last-modified: 2003-02-01T00:00:00Z source: RIPE
Sobald wir eine einigermassen vollständige Liste von Hosts in der Domäne example.com
besitzen, können wir diese einzeln scannen, um bereitgestellte Dienste und Informationen über diese Dienste zu sammeln. Im Gegensatz zum Versenden von Anfragen an DNS, wird dieser Schritt zwangsläufig Netzwerkverkehr an die Hosts der Domäne senden. Dies ist nicht immer erwünscht, da es das Risiko, entdeckt zu werden, steigert. Es gibt im Allgemeinen zwei Lösungen für dieses Problem: Einerseits können Suchmaschinen wie Shodan dazu verwendet werden, indirekte Scans durchzuführen. Das SANS Institut erklärt Shodan in dessen Blog sehr aufschlussreich. Andererseits können Scanning Tools wie z.B. Nmap, ZMap, und Masscan ein viel grösseres Mass an Kontrolle und Flexibilität im Scan ermöglichen.
Unsere Spezialisten kontaktieren Sie gern!
Andrea Covello
Michèle Trebo
Lucie Hoffmann
Yann Santschi
Unsere Spezialisten kontaktieren Sie gern!