ENGINSIGHT
Search…
Penetrationstests
Automatisierte Pentests sind ein wichtiger Bestandteil des Featuresets von Enginsight. Mit ihnen können Sie ihre Systeme regelmäßig einem Härtetest unterziehen. Dabei kommt die Softwarekomponente Hacktor zum Einsatz.

Funktionsumfang

Automatisierte Pentests bestehen bei Enginsight aus vier Schritten:
    1.
    Information Gathering
    2.
    Bruteforce-Angriff
    3.
    CVE-Scan
    4.
    Discovery
Engnisight ermittelt automatisiert, welche Tests für das jeweilige Zielsystem herangezogen werden müssen. Dabei werden nur die Services geprüft, die auch von uns implementiert wurden. Das minimiert die Anzahl der False-Positive-Meldungen.
Hier erfahren Sie im Detail, was Hacktor prüft.

Pentest durchführen

Mit Enginsight ist es Ihnen jederzeit möglich, einen automatisierten Pentest innerhalb Ihrer IT Landschaft durchführen zu lassen. Wie Sie dies tun können, wird Ihnen Schritt für Schritt im folgenden Tutorial erklärt.
1. Um einen automatisierten Pentest durchzuführen, muss zunächst die Softwarekomponente Hacktor im entsprechenden Netzsegment auf einem Linux-System installiert werden. Hierzu 'Hacktors' → 'Hacktor hinzufügen' (oben rechts) wählen und den Anweisungen der Plattform folgen.
2. Als zweiten Schritt müssen Sie die Zielsysteme definieren. Um neue Zielsysteme anzulegen, klicken Sie unter auf den Menüpunkt Zielsysteme und oben rechts auf 'Zielsysteme hinzufügen'. Vergeben Sie einen Namen und eine Beschreibung. Klicken Sie auf 'Zielsysteme hinzufügen', um die Zielsysteme abzuspeichern.
3. In einem dritten Schritt legen Sie mit einer Vorlage fest, welcher Hacktor welche Zielsysteme attackieren soll. Hierzu wählen Sie unter Vorlagen oben rechts 'Vorlage hinzufügen'. Vergeben Sie einen Namen und eine Beschreibung. Die Option 'Wiederkehrende Durchführung' erlaubt es Ihnen zukünftige Ausführungen zu planen. Über 'Erweiterte Einstellungen' können Sie die Bruteforce-Tests zuschalten. Um die Vorlage hinzuzufügen, klicken Sie auf den Button 'Vorlage hinzufügen'.
4. Von der Übersicht der angelegten Vorlagen aus, können Sie den Penetrationstest starten. Drücken Sie einfach auf 'Scan starten'.
5. In den Audits können Sie die Ergebnisse des durchgeführten Pentest einsehen.
Bitte beachten Sie, dass ein Pentest unter Umständen die Verfügbarkeit Ihres Systems temporär beeinträchtigen kann! Außerdem können Zuwiderhandlungen rechtliche Konsequenzen nach sich ziehen.

Audits

Mit dem Audit erhalten Sie eine umfangreiche, standardisierte und versionierte Auswertung über Ihre durchgeführten Penetrationstests.
Zu jedem durchgeführten Pentest sowie einzelnen Zielsystem erhalten Sie einen Status. Dabei unterscheiden wir zwischen:
    Secure: Der Pentest wurde bestanden und es wurden keine sicherheitskritischen Einfallstore gefunden. Das heißt alle Checks wurden entweder bestanden oder Abweichungen als Low bewertet.
    Vulnerable (gelb): Es wurden Szenarien aufgedeckt, welche die Sicherheit Ihres Systems negativ beeinflussen und als Medium und/oder Low bewertet wurden. Sie sollten sich mit diesem Punkten auseinandersetzen, Ihr System befindet sich jedoch nicht in einem unmittelbar kritischen Zustand.
    Vulnerable (rot): Der Pentest wurde nicht bestanden, Sie sollten sich unmittelbar mit den Ergebnissen auseinandersetzen und insbesondere die als "critical" oder "high" klassifizierten Sicherheitslücken prüfen und ggf. beheben.
Unter Fortschritt geben wir an, ob die Durchführung des Pentests erfolgreich war. Ein Penetrationstest kann sein:
    Finished: Der Pentest konnte durchgeführt werden.
    Error: Bei der Durchführung sind Probleme aufgetreten (bspw. ist die Verbindung mit dem Hacktor abgebrochen). Sollte Dies der Fall sein überprüfen Sie die Konfigurationen und starten Sie den Pentest erneut.

Audit-Zusammenfassung

In einer Zusammenfassung erhalten Sie eine zielsystemübergreifende Ansicht und eine statistische Auswertung des gesamten Pentests. Es werden nur nicht-bestandene Checks angezeigt die Ergebnisse sind nach Dringlichkeit sortiert. Zu wichtigen Checks erhalten Sie neben einer Beschreibung auch eine Empfehlung, wie Sie mit der Sicherheitslücke umgehen sollten.
Die Audit-Zusammenfassungen stehen Ihnen ab Hacktor in der Version 4.9.21 zu Verfügung. Sollten Sie keine Audit-Zusammenfassung angezeigt bekommen, prüfen Sie auf ein mögliches Update.
Um weiterführende Informationen zum einzelnen Check zu erhalten, klicken Sie auf Details anzeigen. Den Details können Sie die betroffenen Zielsysteme und Ports sowie die expliziten Ergebnisse des Checks entnehmen. Die Zusammenfassung steht Ihnen auch als PDF-Bericht zu Verfügung.

Audit-Details

Um eine detaillierte Auswertung, differenziert nach Zielsystemen, zu erhalten. klicken Sie oben rechts auf „Zu den Details“. Alternativ können Sie auch aus den Details des einzelnen Checks heraus in die Detailansicht navigieren („Zum Zielsystem“).
    Auf der rechten Seite sehen Sie alle Zielsysteme, die gescannt wurden und ob der Test bestanden (passed) wurde oder das System potentiell verwundbar ist (warning bzw. failed). Klicken Sie auf ein Zielsystem um dessen Ergebnisse einzusehen.
    Im Reiter Ergebnisse sehen Sie alle Checks, die durchgeführt wurden und ob der Test bestanden wurde (ok) bzw. die Dringlichkeit, sollte der Test nicht bestanden worden sein.
    Unter dem Reiter Ports und Services sehen Sie alle Ports, die durch Hacktor gescannt wurden und welche Services erkannt wurden.

Vorlagen

Vorlagen helfen Ihnen für standardisierte Penetrationtests. So können Sie die Reproduzierbarkeit und Vergleichbarkeit, sich wiederholender Pentests, gewährleisten. Mit einer Vorlage legen Sie fest, welcher Hacktor welche Zielsysteme attackieren soll. Außerdem können Sie weitere Vorgaben definieren.

Allgemeine Einstellungen

Vergeben Sie einen aussagekräftigen Namen und eine Beschreibung. Wählen Sie einen Hacktor aus, welcher die ausgewählten Zielsyteme attackieren soll. Geben Sie die Zielsysteme an, die Hacktor angreifen soll. Sie können sowohl ein einzelnes Zielsystem als auch mehrere Zielsysteme zur Vorlage hinzufügen.
Der Host, auf welchem der Hacktor installiert ist, muss mit den Zielsystemen kommunizieren können.

Wiederkehrende Durchführung

Die Option "Wiederkehrende Durchführung" erlaubt es Ihnen zukünftige Ausführungen zu planen. Sie haben die Wahl eine Ausführung an einem bestimmten Wochentag zu wiederholen (Täglich), einem bestimmten Tag im Monat (Monatlich) oder mit einem Cronjob zu arbeiten (Custom).
Audits lassen sich maximal einmal stündlich über die Option "Geplante Ausführung" starten.

Per E-Mail versenden

Haben Sie die wiederkehrende Durchführung aktiviert, besteht die Möglichkeit, den Audit Report als PDF automatisch per E-Mail an Teammitglieder zu versenden. Wählen Sie einen oder mehrere Mitglieder aus und vergeben Sie ein Passwort, mit dem der Audit Report verschlüsselt werden soll.
Es besteht auch die Möglichkeit, die Audit Reports unverschlüsselt zu versenden. Wir empfehlen jedoch dringlich die Möglichkeit der Verschlüsselung in Anspruch zu nehmen.

Erweiterte Einstellungen

Mittels Bruteforce-Attacken können Sie unsichere Benutzernamen-Passwort-Kombinationen aufdecken. Die Bruteforce-Nutzung können Sie hinzuschalten bzw. deaktivieren.
Außerdem können Sie festlegen, ob Sie die Passwort-Liste von Enginsight nutzen möchten oder lediglich die von Ihnen unter Payloads hinterlegten Passwörter nutzen möchten. Hier erfahren Sie, auf welche Services Hacktor Bruteforce-Attacken ausführen kann.
Sie können außerdem festlegen, ob Sie die hinterlegten Custom Scripts nutzen möchten.

Payloads

Unter Payloads können Sie eigene Daten zum Pentest hinzufügen, um ihn zu personalisieren.
Geben Sie hier Ihre eigene Passwortliste ein. Beachten Sie dabei die folgende Syntax:
1
<username>:<passwort>
Copied!
Trennen Sie Usernamen und Passwort durch einen Doppelpunkt. Ist kein Doppelpunkt vorhanden, wird der Eintrag als Passwort verwendet und der Standard-Nutzer des jeweiligen Dienstes als Benutzer verwendet.

Zielsysteme

Als Zielsysteme bezeichnen wir einen oder mehrere Ziele, auf die ein Pentest angesetzt werden kann. Dies können konkrete IP-Adressen sein, die erkannte Asset Discovery eines Watchdogs oder Endpunkte. Nachdem Sie Zielsysteme festgelegt haben, können Sie eine Vorlage erstellen und den Penetrationstest starten.

Zielsysteme hinzufügen

Um Zielsysteme hinzuzufügen, klicken Sie unter dem Menüpunkt Zielsysteme oben rechts 'Zielsysteme hinzufügen'. Wählen Sie dafür einen aussagekräftigen Namen und eine Beschreibung, welche die Ziele ausreichend beschreiben. Danach können Sie entweder manuell IP-Adressen hinzufügen, Ziele von einem Ihrer Watchdogs bestimmen oder angelegt Endpunkte auswählen. Klicken Sie dann auf 'Zielsystem hinzufügen', um ein Angriffsziel für den Hacktor zu definieren.
Es können maximal 2048 Ziele (IP-Adressen) in einem gemeinsamen Audit gescannt werden, unabhängig davon, ob die Ziele erreichbar sind oder nicht. Starten Sie einen Audit auf ein Zielsystem, das mehr als 2048 IP-Adressen umfasst, werden die restlichen IP-Adressen verworfen und nur die ersten 2048 bearbeitet.

IP Ranges angeben

Sie können prinzipiell auch IP Ranges angeben.
Prüfen Sie zuvor, ob es nicht sinnvoller ist, die Inventarisierung des Watchdogs zur Grundlage des Pentests herzunehmen. Ein Pentest über eine IP Range dauert deutlich länger, da der Hacktor jede IP-Adresse anpingt. In den Ergebnissen werden Sie zudem viele Offline-Ziele erhalten, da in den meisten Fällen nur kleine Teile des Netzes verwendet werden.
Beachten Sie zudem, dass maximal 2048 IP-Adressen in einem gemeinsamen Audit gescannt werden, unabhängig davon, ob die Ziele erreichbar sind oder nicht. Starten Sie einen Audit auf ein Zielsystem, das mehr als 2048 IP-Adressen umfasst, werden die restlichen IP-Adressen verworfen und nur die ersten 2048 bearbeitet.
Syntax
Beispiel
Beschreibung
[] . [] . [] . [] / []
192.168.178.0/30
Geben Sie eine Subnetzmaske an.
[] . [] . [] . [] - []
192.168.178.12-16
Geben Sie eine Sequenz an.
[] . [] . [] . [] , []
192.168.178.30,45
Geben Sie eine Reihe an.
[] . [] . [] , [] . [] - []
192.168.5,8.10-12
Kombinieren Sie Reihe und Sequenz.

Auth-Providers

Mit einem Auth-Provider können Sie Zugangsdaten von Zielsystemen hinterlegen, um mehr Informationen abrufen zu können. Der Zugriff auf das Zielsystem ermöglicht den Abruf des Betriebssystems und installierter Software. Deshalb kann Hacktor mehr Sicherheitslücken (CVEs) detektieren und validieren, als wenn ihm nur die öffentlich erreichbaren Informationen zur Verfügung stehen.
Zugangsdaten können für die folgenden Services hinterlegt werden:
    SSH (Secure Shell): Protokoll zur Fernwartung und Administration von Servern und Clients, die hauptsächlich für Linux Server und Clients zum Einsatz kommt.
    WMI (Windows Management Instrumentation): Service zur Fernwartung und Administration von Windows Servern und Clients.
    SNMP v1/v2/v3 (Simple Network Management Protocol): Protokoll zur Überwachung und Steuerung von Netzwerkgeräten, das vor allem für Drucker, Switches oder Industrieanalagen zum Einsatz kommt.
Für Server und Clients, auf denen eine Version von Windows oder Linux zum Einsatz kommt, empfehlen wir weiterhin die Installation eines Enginsight Pulsar-Agents, um Sicherheitslücken von innen zu überwachen. Umfang und Validität der Ergebnisse des CVE-Scans von innen sind auch bei hinterlegtem Auth-Provider dem Hacktorscan überlegen. Darüber hinaus erlaubt der CVE-Scan mit installiertem Pulsar-Agent eine komfortablere Verwaltung und ist aus Sicherheitsaspekten zu bevorzugen, da keine Zugangsdaten hinterlegt bzw. Zugriffe freigeschaltet werden müssen.

Berichte

Hier erhalten Sie eine Übersicht aller generierten PDF-Berichte von Audit Reports.
Um einen PDF-Bericht zu erstellen gehen Sie in den entsprechenden Audit und klicken Sie oben rechts auf "Report erstellen":

Hacktors

Der Hacktor ist eine Softwarekomponente, die in einem spezifischen Netzwerksegment installiert werden kann, um Penetrationstests auf den erreichbaren Assets durchzuführen..

Hacktor anlegen

Um einen Hacktor hinzuzufügen reicht es auf den Button Hacktor hinzufügen zu drücken und den Quellcode mit Rootrechten auf einem linuxbetriebenen Server oder Computer auszuführen.
Sie können hier selbstverständlich auch auf mit einer virtueller Maschine arbeiten. Achten Sie dabei darauf, eine Netzwerkbrücke einzurichten. Wir bieten außerdem eine fertig eingerichtete Appliance an, auf welcher der Hacktor bereits installiert ist und die nur noch in das entsprechende Netzsegment gehängt werden muss.

Hacktor konfigurieren

Klicken Sie den gewünschten Hacktor in der Liste an, um ihn entsprechend Ihrer Anforderungen zu konfigurieren.

Frequenz wählen

Unter 'Allgemeine Einstellungen' können Sie die Frequenz festlegen, mit welcher der Penetrationstest durchgeführt wird. Richten Sie sich dabei nach den Ressourcen, die vorhanden sind. Eine höhere Frequenz bedeutet kürzere Timeouts und mehr Requests. Dadurch verkürzt sich die Zeit, die der Pentest in Anspruch nimmt, deutlich. Sollte jedoch eine zu hohe Frequenz gewählt werden, welche die getesteten Systeme überlastet, können Ergebnisse verloren gehen.
Im Details bedeuten die Frequenzeinstellungen:
LOW
MEDIUM
HIGH
Minimale Paketumlaufzeit (RTT)
100ms
100ms
50ms
Maximale Paketumlaufzeit (RTT)
10s
1,250ms
300ms
Maximale Verbindungsversuche
10ms
6ms
2ms
Maximale TCP Scan Verzögerung
1s
10ms
5ms
Maximale UDP Scan Verzögerung
1s
1s
1s
Zeitüberschreitung pro Ziel
---
---
15min

Port Range festlegen

Legen Sie manuell die Port Range fest, die bei den attackierten Assets angesteuert werden soll. In der Standardeinstellungen werden die 3500 meist verwendeten Ports gescannt und getestet. Abweichend können Sie einzelne Ports als Reihe angeben oder eine Sequenz. Alternativ können Sie beide Varianten auch kombinieren oder eine andere Anzahl an häufig verwendeten Ports definieren.
Richten Sie sich dabei nach der folgenden Syntax:
SYNTAX
BEISPIEL
BESCHREIBUNG
TOP_PORTS:[number]
TOP_PORTS:3500
Steuere eine bestimmte Anzahl von häufig verwendeten Ports an.
[number],[number],[number],[number]
21,22,80,443
Gib in einer Reihe deine manuell festgelegten Ports an.
[number]-[number]
1-65535
Gib in einer Sequenz deine manuell festgelegten Ports an.
[number],[number]-[number]
21-22,80-433
Kombiniere Reihe und Sequenz.

Logs auslesen

Um aktuelle Logs der Softwarekomponente Hacktor abzurufen haben Sie drei Möglichkeiten.

Über die Benutzeroberfläche: Logs-Button

Klicken Sie unter Penetrationstests → Hacktors auf den 'Logs'-Button.
Nachdem Sie auf den Logs-Button geklickt haben, werden die aktuellen Logs abgerufen. Die Übertragung ist auf 2MB beschränkt.
Wie weit die Logs in die Vergangenheit zurückreichen hängt außerdem von der Konfiguration und der Auslastung des Servers ab.

Auf dem Hacktor-Server: Logs abrufen und abspeichern

Haben Sie Zugriff auf den Hacktor-Server können Sie die aktuellen Logs auch selbst auslesen. Am besten speichern Sie sich die Logs selbst in eine .txt-Datei ab.
Nutzen Sie dazu die unten stehenden Befehle. Passen Sie zuvor den Dateinamen an.
Debian:
1
cat /var/log/syslog | grep -a hacktor-m24 > /tmp/<dateiname>.txt
Copied!
CentOS:
1
cat /var/log/messages | grep -a hacktor-m24 > /tmp/<dateiname>.txt
Copied!
Wie weit die Logs in die Vergangenheit zurückreichen hängt von der Konfiguration und der Auslastung des Servers ab.

Auf dem Hacktor-Server: Gespeicherte Logs von Audits

Um auf die Logs eines speziellen Audits zuzugreifen, navigieren Sie in folgenden Ordner:
1
/opt/enginsight/hacktor/logs
Copied!
Dort finden Sie die Logs der in den letzten 7 Tagen durchgeführten Audits als .txt-Datei.

Custom Scripts

Sie können die von uns eingepflegten Checks durch eigene Skripte erweitern, um den Funktionsumfang des Penetrationstests nochmals zu erweitern. Die Skripte hinterlegen Sie direkt auf dem Linux-Server, auf dem der Hacktor installiert ist.
Um Custom Scripts hinzuzufügen brauchen Sie Administrationsrechte auf dem Server/der VM, auf dem die Softwarekomponente Hacktor installiert ist.

Custom Script hinzufügen

Gehen Sie folgendermaßen vor, um ein eigenes Skript hinzuzufügen:
1. Navigieren Sie in den Ordner scripts.
1
cd /opt/enginsight/hacktor/scripts
Copied!
2. Legen Sie eine Datei für das Custom Script an. Der Dateiname muss dem folgendem Schema entsprechen: <runtime>_<severity>_name.extension, z.B. python2_critical_CVE1234.py oder ruby_ok_my custom script.rb.
Unterstützte Runtimes:
    bash
    python2
    python3
    ruby
Unterstützte Severities (Dringlichkeit):
    ok
    low
    medium
    high
    critical
1
nano <runtime>_<severity>_name.extension
Copied!
3. Fügen Sie Ihr Skript, das Sie gemäß der Richtlinien erstellt haben, ein.
4. Speichern und schließen Sie die Datei.
5. Machen Sie Ihre angelegte Datei für Hacktor ausführbar.
1
chmod 755 <filename>
Copied!
6. Starten Sie Hacktor neu.
1
systemctl restart ngs-hacktor
Copied!

Richtlinien für Custom Scripts

Damit Hacktor das Ergebnis des Custom Scripts auslesen kann, muss die folgende Konvention für den Exit Code eingehalten werden.
Status
Exit Code
Beschreibung
passed
exit code 0
Der Check ist bestanden.
error
exit code 1
Der Check hat nicht funktioniert.
skipped
exit code 5
Der Check ist für das Zielsystem irrelevant.
failed
exit code 9
Das Zielsystem ist verwundbar.
Jeder andere exit code wird wie error behandelt.
Unabhängig vom Check Status werden stdout und stderr im Audit ausgegeben. Ab 1024 Zeichen wird der Output abgeschnitten.
Das erste Argument ist immer der hostname, das zweite bis n (2-n) sind immer die offenen Ports.

Muster

python2, python3
1
import sys
2
3
print("Host:",sys.argv[1])
4
print("Ports:",sys.argv[2:])
5
6
print("Use 'sys.exit(1)' with error codes (1=error, 5=skipped, 9=failed) to determine check status")
7
8
sys.exit(9)
Copied!
1
import socket
2
import sys
3
4
# This is an example script
5
# It checks if a host uses an OpenSSH implementation
6
7
host = sys.argv[1]
8
ports = sys.argv[2:]
9
10
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
11
12
if '22' in ports:
13
14
addr = (host, 22)
15
16
try:
17
sock.connect(addr)
18
except:
19
print >>sys.stderr, 'failed to connect'
20
sys.exit(1) # check has 'error' status
21
22
try:
23
message = 'SSH-2.0-Hacktor'
24
sock.sendall(message)
25
26
data = sock.recv(256)
27
print >>sys.stdout, "Banner: %s" % data
28
29
if 'OpenSSH' in data:
30
print >>sys.stdout, "Host uses OpenSSH implementation"
31
sock.close()
32
sys.exit(0)
33
34
else:
35
print >>sys.stdout, "Host does not use OpenSSH implementation."
36
sock.close()
37
sys.exit(9) # check is 'failed'
38
39
finally:
40
sock.close()
41
42
else:
43
print >>sys.stdout, 'host %s does not use port 22' % host
44
sys.exit(5) # check is 'skipped'
Copied!
ruby
1
puts "Host: "+ARGV[0]
2
puts "Ports: "+ARGV.inspect[0..-1]
3
4
puts "Use 'exit(1)' with error codes (1=error, 5=skipped, 9=failed) to determine check status"
Copied!
bash
1
#!/bin/bash
2
3
echo "Host: $1"
4
5
shift # remove the first argument
6
echo "Shift. Then Ports:" "[email protected]"
7
8
exit 5 # Use 'exit 1' with error codes (1=error, 5=skipped, 9=failed) to determine check status
Copied!

Eigenen Titel und Empfehlungstext hinzufügen

Optional können Sie einen eigenen Titel hinterlegen, der im Audit Ihren im Dateinamen hinterlegten Titel ersetzt. Außerdem können Sie eine Empfehlung hinterlegen, wie mit der Schwachstelle umzugehen ist.
1. Öffnen Sie die Datei descriptions.json.
1
nano /opt/enginsight/hacktor/scripts/descriptions.json
Copied!
Fügen Sie die Informationen nach folgendem Schema ein:
1
{
2
<filenameA>":{
3
"title":"<check title>",
4
"recommendation":"<recommendation on how to fix>"
5
},
6
"<filenameB>":{
7
"title":"<check title>",
8
"recommendation":"<recommendation on how to fix>"
9
}
10
}
Copied!
2. Speichern und schließen Sie die Datei.
3. Starten Sie Hacktor neu.
1
systemctl restart ngs-hacktor
Copied!

Custom Script ausführen

Um ein Custom Script für einen Penetrationstest zu nutzen, fügen Sie das Skript einfach gemäß der Anleitung zum entsprechenden Hacktor hinzu. Achten Sie außerdem darauf, in den erweiterten Einstellungen der Vorlage die Ausführung von Custom Scripts zu erlauben.
Last modified 6d ago