Informationssammlung [Aktualisiert 2019]
Einführung in die Informationssammlung
Penetrationstests beginnen mit einer Pre-Engagement-Phase, in der der Pen-Tester den Kunden, die Ziele, Einschränkungen und den Umfang des Penetrationstests kennenlernt. Danach beginnt der Stifttester mit dem eigentlichen Penetrationstest und geht in der Regel mit einer Informationsbeschaffung vor, bei der der Stifttester öffentlich verfügbare Informationen über den Kunden findet und nach Wegen sucht, die ausgenutzt werden könnten, um in die Systeme zu gelangen. In dieser Phase verwendet der Stifttester auch Tools wie Portscanner, die ihm helfen können, die Systeme im Netzwerk und die darauf befindliche Software zu verstehen. Anhand dieser Informationen kann der Pen-Tester genau bestimmen, welche Auswirkungen die verschiedenen Ergebnisse auf den Client haben können, und der Schwachstellenanalyseteil kann fortfahren, in dem die gefundenen Informationen verwendet werden, um mögliche Schwachstellen in den Systemen zu lokalisieren, und die anschließende Ausnutzungsphase, in der versucht wird, die Schwachstellen auszunutzen, um in das System einzudringen. Ohne eine gute Informationsbeschaffung gäbe es also keine Schwachstellen, die es zu finden und auszunutzen gäbe.
Jetzt ist es an der Zeit, eine wichtige Unterscheidung zu treffen – die zwischen passiver und aktiver Informationsbeschaffung. Passives Sammeln von Informationen bezieht sich darauf, so viele Informationen wie möglich zu sammeln, ohne Kontakt zwischen dem Stifttester (sich selbst) und dem Ziel herzustellen, über das Sie Informationen sammeln. Das aktive Sammeln von Informationen beinhaltet den Kontakt zwischen dem Stifttester und dem tatsächlichen Ziel. Wenn Sie Systeme aktiv abfragen, um die Informationen zu erhalten, bewegen Sie sich in eine dunkle Rechtslage, da die meisten Länder Versuche verbieten, ohne die erforderliche Erlaubnis in Systeme einzudringen. Wenn Sie also keine Berechtigung zum Testen eines Systems haben (eine Get-Out-of-Jail-Free-Karte), ist es keine gute Idee, aktive Abfragen dagegen durchzuführen. Wenn Sie beispielsweise Nmap verwenden, um offene Ports und Anwendungen auf einem gewünschten Remote-System zu finden, interagieren Sie aktiv mit diesem System, um Schwachstellen zu finden, und wenn Sie eine WHOIS-Suche durchführen, die Website des Unternehmens durchsuchen oder die Suchmaschinen nach Informationen über das Unternehmen abfragen, sammeln Sie passiv Informationen. Ein Beispiel für aktives Sammeln von Informationen ist das Anrufen von Mitarbeitern des Unternehmens und der Versuch, sie dazu zu bringen, privilegierte Informationen preiszugeben.
Die Phase vor dem Angriff kann folgendermaßen beschrieben werden:
- Passive Informationssammlung, um vorläufige Informationen über die Systeme, ihre Software und die am Ziel beteiligten Personen zu erhalten.
- Passives Bestimmen der Netzwerkreichweite, um die Maschinen im Netzwerk zu ermitteln, auf die Sie sich konzentrieren können.
- Der Stifttester überprüft aktiv, welche der lokalisierten Maschinen am Leben sind, um zu wissen, worauf er zielen soll.
- Der Pen-Tester sucht aktiv nach offenen Ports und den darauf befindlichen Anwendungen für jede der Maschinen im Netzwerk, um den optimalen Einbruchsweg herauszufinden.
- Der Pen-Tester verwendet Tools wie traceroute und Cheops, um das Betriebssystem hinter jeder der Maschinen zu scannen.
- Der Pen-Tester bildet das Netzwerk ab, indem er alle gesammelten Daten aufschreibt und visualisiert und mit der Angriffsphase beginnt…
Passive Tools zum Sammeln von Informationen
theHarvester
Wir können den Harvester verwenden, um E-Mails über Zieldomänen zu sammeln. Wir können diese E-Mails dann verwenden, um Social Engineering zu initiieren oder andere Angriffe zu starten. Um es auszuführen, benötigen Sie Python auf Ihrem Computer und fügen es vorzugsweise Ihrer PATH Umgebungsvariablen hinzu. Sie können Python von https://www.python.org/downloads/ herunterladen. Wenn Sie git auf Ihrem Computer haben, können Sie Ihr Terminal öffnen, zu einem gewünschten Ordner navigieren und git clone https://github.com/laramies/theHarvester.git
eingeben, um das Tool herunterzuladen. Andernfalls müssten Sie nur das GitHub-Repository öffnen, auf „Klonen oder Herunterladen“ klicken und den Quellcode als ZIP herunterladen. Sobald Sie es installiert haben, können Sie Ihre Befehlszeile / Ihr Terminal öffnen und zu dem Ordner navigieren, in dem Sie den Harvester installiert haben, und python eingeben theHarvester.py um den Hilfebildschirm zu erhalten.
Abbildung 1: Der Hilfebildschirm des Harvesters sollte ungefähr so aussehen
Wenn wir nun nach E-Mails in der Domäne suchen möchten dimoff.biz wir können eine Abfrage wie diese durchführen:
python theHarvester.py -d dimoff.biz -l 100 -b google
Dies wird nach E-Mails in Google in dimoff suchen.biz und beschränkt die Suche auf die ersten 100 Abfrageergebnisse in Google.
Abbildung 2: Keine E-Mails in meiner Domain gefunden, da ich sie verschleiert habe
Versuchen wir, auf der Website des InfoSec Institute nach E-Mails zu suchen. Wir geben die gleiche Abfrage ein, ändern aber die Domäne: python theHarvester.py -d infosecinstitute.com -l 100 -b google
Abbildung 3: Die Abfrage nach E-Mails im InfoSec Institute ergab vier E-Mails, die wir möglicherweise nutzen können
Um unsere Forschung zu verbessern, können wir die Suche mit verschiedenen Suchmaschinen ausprobieren. Wenn wir in den ersten 30 Ergebnissen der Yahoo-Suchmaschine nach E-Mails suchen, erhalten wir nur eine E-Mail, die sich jedoch von den vier unterscheidet, die wir bei Google gesammelt haben. Wir tippen Python theHarvester.py -d infosecinstitute.com -l 20 -b) und am Ende die folgende Ausgabe:
Abbildung 4: Die Harvester-Suche mit Yahoo ergab ein anderes Ergebnis
Wie Sie vielleicht bemerkt haben, listet der Harvester neben dem Ausspucken der E-Mails innerhalb dieser Domain alle Subdomains auf, die er mit der angegebenen Domain gefunden hat, und ordnet sie ihrer jeweiligen IP-Adresse zu. Diese Informationen sind nützlich, da die verschiedenen Subdomains möglicherweise unterschiedliche Serversoftware und Softwareentwicklungsframeworks verwenden und sich sogar auf verschiedenen Computern befinden, was bedeuten würde, dass diese Subdomains möglicherweise anfällig für unterschiedliche Sicherheitsanfälligkeiten sind und unterschiedliche Ausnutzungsgrade aufweisen können.
Netcraft
Netcraft ist eine Webanwendung, mit der wir detaillierte Informationen über die Software, den Webserver und den Webhost einer beliebigen Website anzeigen können. Netcraft macht das Sammeln dieser Informationen schmerzlos, da es Millisekunden dauert, um die Software hinter der Website kennenzulernen. Wenn Sie beispielsweise wissen, wer der Webhosting-Anbieter der Website ist, kann dies hilfreich sein, wenn Sie sich für einen Social-Engineering-Angriff entscheiden. Anschließend können Sie eine E-Mail an einen Administrator schreiben, der anscheinend von seinem Webhosting-Unternehmen stammt, und ihn bitten, einen Link zu öffnen und eine Einstellung zu ändern. Darüber hinaus können die verschiedenen Softwareentwicklungsframeworks, die die Website verwendet und die Sie bei Netcraft finden, ihre eigenen Schwachstellen aufweisen, die Sie dann ausnutzen können. Das Bild unten zeigt eine Suche nach InfoSec Institute in http://www.netcraft.com/
Abbildung 5: Auf der Suche nach Informationen über das InfoSec Institute in Netcraft
Wir können sehen, dass der Hosting-Provider des InfoSec Institute Digital Ocean ist, so dass wir das irgendwo bemerken können. Wir können auch sehen, dass die Website ein Content Management System (CMS) namens Expression Engine verwendet, ein Softwareentwicklungsframework namens CodeIgniter, dass die Backend-Sprache PHP ist und so weiter. Wir können nach Fehlern in diesen Technologien suchen, die die Website Schwachstellen aussetzen würden. Wir können auch sehen, dass die Webserver-Software kürzlich von Apache / 2.2.31 geändert wurde. Die genaue Version der Serversoftware zu kennen ist nützlich, da Schwachstellen für verschiedene Serversoftware regelmäßig online veröffentlicht und mit neueren Versionen der Software gepatcht werden, die von den meisten Websites häufig nicht rechtzeitig implementiert werden. Darüber hinaus schränkt die Kenntnis der Serversoftware den Umfang der Forschung ein. Wenn wir wissen, dass auf dem Server Apache ausgeführt wird, suchen wir nicht nach Schwachstellen für den Microsoft IIS-Server. Manchmal können die von der Website bereitgestellten Serverinformationen jedoch ein Köder / Honeypot sein.
Maltego
Maltego ist ein Data-Mining-Tool, das uns helfen kann, Informationen zu sammeln und zu visualisieren. Es hat mehrere Versionen, von denen eine frei zu spielen, um mit. Die kostenlose Version ist die sogenannte „Community Edition“ und kann von https://www.paterva.com/web7/downloads.php#tab-3 heruntergeladen werden. Alles, was Sie tun müssen, um es auszuführen, ist ein Konto bei Paterva zu registrieren. Die kostenlose Version begrenzt jedoch die Anzahl der abgebauten Ergebnisse, die Ihnen angezeigt werden können.
Abbildung 6: Maltegos vorgefertigte Maschinen beschränken die Ergebnisse in der kostenlosen Version auf 12 Entitäten
Maltego Primer
Sobald Sie Maltego installiert, Ihr Konto eingerichtet und angemeldet haben, sollten Sie einen letzten Schritt sehen, wie unten gezeigt:
Abbildung 7: Maltego erfolgreich installiert
Klicken Sie auf „Öffnen Sie ein leeres Diagramm und lassen Sie spielen Sie herum.“
Im Palettenfeld links sehen Sie die verschiedenen Entitäten, die Sie in Ihre Suche integrieren können. Ziehen Sie die Domänenentität in der Palette per Drag & Drop in das Diagramm. Sie sollten ein einzelnes Erdsymbol mit der Site sehen paterva.com als Label.
Abbildung 8: Hinzufügen einer Domänenentität zum Diagramm
Ändern Sie nun den Domänennamen in die Domäne, für die Sie neue Informationen erhalten möchten. Dazu müssen Sie auf den Domainnamen doppelklicken und Ihren gewünschten Domainnamen eingeben.
Nachdem Sie die zu untersuchende Domäne vorbereitet haben, können Sie Transformationen oder Abfragen für verschiedene Informationen für die Domäne ausführen, indem Sie mit der rechten Maustaste auf die Domänenentität klicken und die gewünschte Abfrage auswählen.
Abbildung 9: Ein Ausschnitt aus den verschiedenen Transformationen, die in Maltego verfügbar sind
Um zu veranschaulichen, wie diese Transformationen funktionieren, wenn Sie die Entität mithilfe von Suchmaschinen in Telefonnummern umwandeln, erhalten Sie einige Telefonnummern für InfoSec Institute. Sie können diese Telefonnummern verwenden, um Ihren Social-Engineering-Angriff überzeugender zu gestalten, Vishing, Vorwand und so weiter einzusetzen.
Abbildung 10: Die Transformation zu Telefonnummern mittels Suchmaschinen wird auf InfoSec Institute angewendet und fünf Telefonnummern werden visualisiert.
Nun, wenn wir eine andere Transformation anwenden – unsere Ergebnisse werden nur zunehmen. Noch besser ist, dass wir neue Transformationen auf die Ergebnisse unserer vorherigen Transformationen anwenden können.
Um dies zu veranschaulichen, würden wir, wenn wir mit der rechten Maustaste auf die erste zurückgegebene Telefonnummer klicken, verschiedene Transformationen erhalten, die wir darauf anwenden können. Nehmen wir an, wir möchten die Telefonnummer in URLs umwandeln (dh die URLs abrufen, in denen die Telefonnummer erwähnt wird). Das würde uns eine Ebene tiefer in die Hierarchie / Beziehung der Ergebnisse bringen und uns ein paar URLs zeigen, wo manuell überprüft werden kann, wer die Telefonnummer beantwortet und so weiter.
Abbildung 11: Eine Ebene tiefer in Maltego. Abrufen der URLs, in denen eine der mit dem InfoSec Institute verknüpften Telefonnummern erwähnt wird
Wie Sie sehen können, gibt es eine ganze Reihe von Entitäten und Transformationen zu erkunden.
Aktive Tools zum Sammeln von Informationen
Nmap ermöglicht es, Scans auf Zielcomputern durchzuführen, um zu sehen, welche Ports auf ihnen geöffnet sind und welche Anwendungen auf ihnen ausgeführt werden. Der Unterschied zu den oben genannten Tools besteht darin, dass Sie aktiv mit dem angegebenen Computer interagieren, indem Sie speziell gestaltete Pakete an ihn senden. Außerdem können wir mit Open Ports Nmap potenziell das Betriebssystem des Computers erkennen und die Dienste ermitteln, die auf den geöffneten Ports ausgeführt werden.
Sie können Nmap von https://nmap.org/download.html oder http://nmap.en.softonic.com/ herunterladen. Sie können Nmap von Ihrer CLI oder von einer GUI-Anwendung verwenden.
Um nach der Installation zu sehen, wie Sie nmap verwenden können, müssen Sie nur nmap eingeben und die Eingabetaste drücken.
Abbildung 12: Nmaps Hilfebildschirm
Eine einfache Überprüfung auf offene Ports und die entsprechenden Dienste ist nmap -sS -Pn <IP-ADRESSE>. Dies wird eine Stealth-Entdeckung versuchen und die Maschine als lebendig behandeln.
Um das Betriebssystem zu erkennen, auf dem der Computer ausgeführt wird, können Sie das Flag -O usw. verwenden.
Wenn Nmap wie ein Werkzeug erscheint, das Sie mehr erforschen möchten, besuchen Sie bitte Irfan Shakeels Artikel über Nmap.
Fazit
Wir haben die Grundlagen des Penetrationstestprozesses, die Rolle der Informationsbeschaffung in diesem Prozess und einige der beliebtesten Tools zum Sammeln von Informationen demonstriert. Mit diesen Tools können Sie nicht nur ausreichende Informationen für eine fruchtbare Informationsbeschaffung sammeln, sondern auch die Effizienz und Effektivität des gesamten Penetrationstestprozesses steigern.