no one is safe ...

Automatisierung im Rahmen eines Pentests - part 8 (Nessus cleaner)

Wer hätte sich gedacht dass Metasploit diese umfangreichen Möglichkeiten der Automatisierung bietet. Mittlerweile sind wir bei Teil 8 angelangt und haben in keinem Satz db_autopwn erwähnt ;) Alle bisherigen Post zur Automatisierung mit Metasploit findet ihr hier.

Die meisten Leser kennen sicher das Problem nach einem Import von Nessus Vulnerability Ergebnissen.

Das könnte in einem kleinen Testlabor folgendermaßen aussehen:

  • 53 hosts discovered
  • 3071 services detected
  • 1648 vulnerabilities identified

Na dann, viel Spaß diese 1648 Schwachstellen zu analysieren. Wenn wir uns die Schwachstellendetails in der grafischen Oberfläche von Metasploit Pro anschauen, dann finden wir folgendes vor:

Dabei ist zu erkennen, dass es eine Unmenge an scheinbaren Schwachstellen gibt die ausschließlich eine Nessus ID aufweisen. Findings dieser Art sind tyischerweise keine direkten Schwachstellen, sondern eher zusätzliche Findings die typischerweise einen sehr niedrigen Risiko Level aufweisen. Nachdem Metasploit diese Nessus ID nicht nutzt, lassen sich diese Einträge aus der Datenbank löschen. Ein manuelles Vorgehen ist an dieser Stelle nicht zielführend, da es sich bei umfangreichen Pentests um mehrere Hundert bis mehrere Tausend Einträge handeln kann. Aus diesem Grund habe ich ein kleines Resource Skript geschrieben das von der Grundstruktur folgendermaßen aussieht:

framework.db.workspace.vulns.each do |vuln|
      next if (vuln.refs.to_s !~ /NSS/)
      next if (vuln.refs.size > 1)
      vuln.destroy
end

Das vollständige Skript ist mittlerweile im Framework integriert. Ihr findet den Code zudem auf Github.

Eine Anwendung gestaltet sich überaus einfach:

10.8.28.2 - (Sessions: 1 Jobs: 0)> resource nessus_vulns_cleaner.rc
[*] Processing nessus_vulns_cleaner.rc for ERB directives.
[*] resource (nessus_vulns_cleaner.rc)> Ruby Code (909 bytes)
starting with 1648 vulnerabilities
cleaned out 1227 vulnerabilities, results with 421 vulnerabilities

Mit dem globalen VERBOSE Parameter lassen sich weitere Informationen ausgeben.


Falls ihr weitere Informationen zu Metasploit benötigt findet ihr diese in meinem Buch. Erste Probekapitel findet ihr zudem auf der dpunkt-Webseite.

Das Buch lässt sich natürlich auf Amazon bestellen.

Bis zum nächsten Teil wo wir weitere Automatisierungsmöglichkeiten von Metasploit betrachten werden.

have phun,
mIke