Einleitung
Vulnerability Mapping ist eine Aktivität, die durchgeführt wird, um Sicherheitslücken zu identifizieren, die zur Kompromittierung eines Systems führen können. Manchmal verwenden Forscher den Begriff „Vulnerability Assessment“ anstelle von „Vulnerability Mapping“.“ Sie sind jedoch dasselbe.
Beim Pentesting und böswilligen Hacken ist die Schwachstellenzuordnung ein Schritt, der folgt, nachdem der Tester oder Hacker das Sammeln von Informationen und die Aufzählung des Zielnetzwerks oder -hosts angemessen durchgeführt hat.
In diesem Artikel werden wir uns ansehen, wie verschiedene Tools innerhalb des Kali Linux-Betriebssystems implementiert werden können, um Schwachstellen zu entdecken, die zu kompromittierenden Zielen führen und somit dazu führen können, dass der Hacker oder Penetrationstester die Vertraulichkeit, Integrität und Verfügbarkeit eines Geschäftssystems verletzt.
Schwachstellentypen
Heute gibt es drei Hauptklassen von Schwachstellen, von denen klar unterschieden werden kann. Die drei Klassen sind:
- Design-Schwachstellen: Diese werden über Schwachstellen aufgedeckt, die sich aus Softwarespezifikationen ergeben. Diese sind bei weitem am umständlichsten zu lösen, da Patches basierend auf den Sicherheitsanforderungen der Pentester
- Implementierungsschwachstellen angewendet werden müssen: Wenn Störungen im Softwarecode entdeckt werden, werden sie hier klassifiziert.
- Betriebliche Sicherheitsanfälligkeiten: Diese Sicherheitsanfälligkeiten resultieren aus einer unsachgemäßen Konfiguration und Bereitstellung von Software.
Die oben genannten Sicherheitsanfälligkeitsklassen treten entweder lokal oder remote in der Zielumgebung auf.
Lokale Schwachstellen erfordern, dass der Tester oder Angreifer lokalen Zugriff auf das Zielsystem hat, um sie auszunutzen. Ein gutes Beispiel dafür ist der CVE-2013-0232, auch bekannt als GP Trap Handler nt!KiTrap0D, mit dem ein Angreifer oder Tester mit Zugriff auf einen anfälligen Windows Server 2008-Computer eskalierten privilegierten Zugriff erhalten kann.
Remote-Sicherheitsanfälligkeiten ermöglichen die Ausnutzung ohne physischen Zugriff auf das Zielsystem. Diese können über das Internet oder innerhalb des Netzwerks erfolgen, in dem sich das anfällige System befindet. Ein häufiges Beispiel dafür ist die Sicherheitsanfälligkeit MS08-067 Windows Server Service, die Windows XP-Systeme betrifft.
Schwachstellentaxonomie
Da die Anzahl der Technologien täglich zunimmt, gab es zahlreiche Versuche, eine Taxonomie zu entwerfen, die am besten auf häufig identifizierbare Schwachstellen eingehen kann. Trotz dieser Bemühungen ist es wirklich immer noch nicht möglich, alle Codierungsfehler zu berücksichtigen, die gemacht werden können.
Organisationen haben die folgenden Standards entwickelt, die sogar in vielen Tools implementiert wurden, die bei der Suche nach Schwachstellen verwendet werden können.
Sicherheitstaxonomie | Ressourcenlink |
Gemeinsame Schwäche Aufzählung | http://cwe.mitre.org/data/index.html |
OWASP Top 10 | https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project |
WASC-Bedrohungsklassifizierung | http://projects.webappsec.org/w/page/13246978/Threat%20Classification |
Nationale Vulnerability Database | https://nvd.nist.gov/vuln |
Google Hacking-Datenbank (GHDB) | https://www.exploit-db.com/google-hacking-database/ |
Schwachstellenscan mit Kali Linux
Kali Linux enthält zahlreiche Tools für den Penetrationstester. Einige dieser Tools können während eines Pentests effektiv verwendet werden, um Schwachstellen-Mapping über die drei oben diskutierten Klassen hinweg durchzuführen.
Scannen von Schwachstellen in Webanwendungen
Webanwendungen werden täglich generiert, doch die meisten Programmierer beachten nicht die sicheren Codierungsprinzipien, die beim Entwerfen von Anwendungen befolgt werden müssen. Mit den folgenden Tools können Entwickler oder Pentester Schwachstellen entdecken, die in die Dokumentation in der obigen Tabelle fallen.
Nikto2
Nikto2 ist ein sehr einfacher Webanwendungs-Schwachstellenscanner, der auf LibWhisker2 basiert und über zahlreiche Funktionen verfügt. Zum Beispiel kann es plattformübergreifend bereitgestellt werden, es unterstützt SSL, es kann die Host-Authentifizierung über NTLM verwalten und sogar die IDS-Umgehung verwalten.
Wenn Sie Nikto wie oben gezeigt mit dem Befehl „nikto -h “ gegen einen Host starten, werden Ergebnisse zurückgegeben, die je nach Anfälligkeit des Ziels variieren. Sie können sicher sein, dass Nikto veraltete Serverimplementierungen, Standardinstallationsdateien, Serverfehlkonfigurationen und zahlreiche andere Sicherheitsprobleme erkennt. Sie können den Port auch angeben, indem Sie nach Angabe des Ziels „-p “ anhängen, um Probleme an den gewünschten Ports zu finden.
OWASP ZAP
Der OWASP Zed Attack Proxy (ZAP) wird vom OWASP-Projekt erstellt, einer der Parteien in der obigen Tabelle. Es ist ein Open-Source-Webanwendungs-Proxy-Tool und bietet einige gute Funktionen wie das Scannen von Web-App-Schwachstellen.
Unter Kali Linux starten Sie es einfach, indem Sie den folgenden Befehl im Terminal eingeben:
#owasp-zap
Sie werden mit dem Hauptbildschirm angezeigt. Das Durchführen eines Scans ist jedoch recht einfach. Sie würden das zu scannende Ziel wie unten gezeigt ausgeben:
Sobald Sie auf die Schaltfläche „Attack“ klicken, beginnt der Scanvorgang und Sie sehen einige Aktivitäten im Abschnitt unten auf Ihrem Bildschirm.
OWASP ZAP crawlt die Zielwebsite auf der Suche nach Schwachstellen. Es werden auch einige Fehlkonfigurationen identifiziert, die auf der Registerkarte Warnungen angezeigt werden. OWASP ZAP ermöglicht es Ihnen, auf betroffene Links einzugrenzen, wie unten gezeigt:
Ein kommerzieller Konkurrent zu ZAP ist BurpSuite, die ähnliche Funktionalität mit seiner kostenlosen Version bietet, aber viel mehr in seiner kommerziellen Version.
Nessus
Nessus bietet Ihnen ein automatisiertes Scannen von Schwachstellen in Webanwendungen für Situationen, in denen Sie zeitlich begrenzt sind und eine schnelle Schwachstellenbewertung oder einen Pentest benötigen.
Nessus kann kostenlos mit eingeschränkten Funktionen oder als kommerzielles Tool mit viel mehr Funktionen ausgeführt werden, die sich als nützlich erweisen können — insbesondere für große Pentest-Teams und Engagements.
Um einen Schwachstellenscan durchzuführen, müssen Sie zuerst die kostenlose Version von Nessus installieren und dann in Ihrem Browser zu https://localhost:8834 navigieren. Siehe unten:
Sie würden dann oben auf die Schaltfläche „Neuer Scan“ klicken und aus den zahlreichen verfügbaren Vorlagen die Art des durchzuführenden Scans auswählen.
Die oben gezeigten Vorlagen sind in der kostenlosen Version von Nessus eingeschränkt, wenn Sie diese ausführen, aber in der kommerziellen Version sind sie viel umfangreicher und leistungsfähiger.
Sie würden dann Ihre Ziele ausgeben. Nessus ist in der Lage, Scans an mehreren Zielen durchzuführen, die durch Kommas getrennt sind oder im CIDR-Format ausgegeben werden.
Sobald Sie mit dem Ausfüllen der erforderlichen Felder fertig sind, wird Ihnen der Bildschirm oben angezeigt. Klicken Sie auf das Symbol „Wiedergabe“, um den Scan zu starten.
Sicherheitsanfälligkeiten werden wie im obigen Bildschirm dargestellt und fassen den Schweregrad und die Fälle der entdeckten Probleme zusammen.
Mit Nessus können Sie sogar einen Drilldown zu bestimmten Hosts und Schwachstellen durchführen und weitere Informationen darüber erhalten, wie diese entdeckt wurden, sowie Empfehlungen zum Patchen identifizierter Risiken.
Network Vulnerability Scanning
Kali Linux bietet auch Tools, mit denen Netzwerkgeräte wie Datenbanken, Router, Switches und Protokolle wie SNMP und SMB gescannt werden können. Es gibt zahlreiche Tools, aber wir werden uns die gebräuchlichsten ansehen.
CISCO-Analyse
CISCO-Geräte sind anfällig für eine Reihe von Schwachstellen, die mit einigen Tools bewertet werden können. Bei der Überwachung von Routern wird Kali Linux mit dem Cisco Auditing Tool (CAT) ausgeliefert, mit dem ein Angreifer oder Penetrationstester Schwachstellen identifizieren kann, die von SNMP-Community-Strings über alte CISCO-Fehler bis hin zu Standardanmeldeinformationen reichen, mit denen illegaler Zugriff auf den Router erhalten werden kann.
Um unseren Host auf Kali zu testen, haben wir den folgenden Befehl ausgeführt:
#CAT -h 192.168.67.73 -w lists/community -a lists/passwords -i
CAT führt die Prüfung auf Standardanmeldeinformationen und SNMP-Community-Zeichenfolgen wie oben gezeigt durch.
SNMP-Analyse
Kali Linux ermöglicht es Angreifern und Pentestern auch, Informationen von Hosts mit dem SNMP-Protokoll (Simple Network Management Protocol) abzurufen. Dies kann bei der Vorbereitung weiterer Angriffe auf den Host äußerst wichtig sein.
Auf unserer angreifenden Maschine haben wir den folgenden Befehl ausgeführt und konnten eine Menge Informationen über unser Ziel erhalten.
Wie oben zu sehen ist, konnten wir die Ethernet-Karteninformationen identifizieren, wie lange das System über diese Karte verbunden war, den Hostnamen und, wie unten gezeigt, die Anzahl der Netzwerkschnittstellen mit ihren jeweiligen Informationen.
Datenbankbewertung in Kali Linux
Kali Linux ermöglicht das Testen von MySQL-, Oracle- und Microsoft MSSQL-Datenbanken auf Schwachstellen wie SQL Injection. Tests zu Kennwortrichtlinien und Standardkennwortprüfungen werden von einigen Tools ebenfalls unterstützt.
SQLMap
SQLMap ist ein nettes Tool in Kali Linux, das verschiedene SQL-Injection-Tests für einige Datenbanken wie PostgreSQL, MSSQL, Oracle und MySQL durchführen kann. Es ist in der Lage, die erkannten Fehler zu erkennen und auszunutzen, was es zu einem sehr verbreiteten Werkzeug für Angreifer und Tester macht. SQLMap kann Sie schnell bei der Durchführung der folgenden Angriffe unterstützen, die sonst schwierig und zeitaufwändig wären:
- Inferential Blind SQL Injection
- UNION Query SQL Injection
- Stacked Query SQL Injection
- Zeitbasierte Blind SQL Injection
Auf unserem Kali Linux-System haben wir den folgenden Befehl ausgeführt, um Informationen über unsere zugrunde liegende Datenbank in unserem Zielsystem zu ermitteln.
# sqlmap -u "http://192.168.0.30/mutillidae/index.php?page=view-someones-blog.php" --forms --batch --dbs
Das obige Ergebnis zeigt uns die verfügbaren Datenbanken und informiert uns auch über die injizierbaren Parameter in unserer Webanwendung unter der angegebenen URL.
Um den Inhalt der Datenbank „owasp10“ zu finden, würden wir den folgenden Befehl ausgeben:
# sqlmap -u "http://192.168.0.30/mutillidae/index.php?page=view-someones-blog.php" --forms --batch -D owasp10 –tables
Die Option -D gibt die zu verwendende Datenbank an und –tables fordert SQLMap auf, verfügbare Tabellen aufzulisten.
SQLMap bietet viel mehr Funktionen, die nicht behandelt werden, die Sie jedoch in der Hilfedokumentation mit dem Befehl „sqlmap -h“ überprüfen sollten.
Es gibt auch andere Tools wie SQLNinja , die in ihrer Funktionalität SQLMap ähneln.
Fazit
Nachdem Sie die Schwachstellen mit den oben beschriebenen verfügbaren Tools abgebildet haben, können Sie nun mit der nächsten Phase fortfahren, die während eines Penetrationstests oder Angriffs ausgenutzt werden würde. Sie könnten jedoch nur daran interessiert sein, Schwachstellen für eine Schwachstellenbewertung aufzulisten. In diesem Fall funktionieren die oben genannten Tools.