FortiGate Sniffer Output in Wireshark

diag sniffer packet via Pipe an Wireshark

Fortinet beinhaltet bei ihren FortiGate Appliance den in FortiOS mit eingebauten Packet Sniffer, zur Analyse von Paketweiterleitungen. Bei umfangreichen Analysen mit der Anwendung von Filtern, zeigt sich die Auswertung in der Console als unkomfortabel.

In diesem Post wird gezeigt, wie unter Linux ein Sniffer Packet Output direkt via Pipe von Wireshark gelesen wird. Falls Wireshark noch nicht installiert sein sollte, wird das Paket für die entsprechende Distribution wie folgt bereitgestellt.

Damit Wireshark als non-root User ausführbar wird, ist bei Ubuntu folgender Befehl aus dem Terminal auszuführen.

dpkg-reconfigure wireshark-common

Bei der Auswahl die bei der Wireshark Reconfigartion erscheint, wird YES gewählt, bei i18n Einstellung deutsch ist es JA.

Die Red Hat Distributionen CentOS und Fedora erfordern die folgenden Befehle zur Ausführung, so auch bei Ubuntu.

FortiGate Sniffer Wireshark Analyse

Wireshark zum Analysier einer FortiGate machen, mit dem Output von diagnose sniffer packet, dazu den Script sdump.pl hier herunterladen und ausführbar machen.

Nun wird in einem Terminal eine SSH Verbindung zur Firewall aufgebaut, um den Output direkt via Pipe an Wireshark zu senden.

Es wird via SSH der Sniffer auf der FortiGate gestartet, sdump.pl liest Output von STDIN, erzeugt den hexdump 16 Bytes space-delimited, text2pcap formatiert den hexdump in das PCAP Format, um dann den Output in Wireshark einzulesen und zu analysieren.

 Erscheint beim Aufruf von Wireshark folgende Ausgabe:

couldn’t run /usr/bin/dumpcap in child process: Permission Denied.

Wurde bis hier noch nicht neu eingeloggt! Ferner ist wahrscheinlich noch folgende Zuweisung erforderlich.

 Filter werden zwischen Hochkommata eingebunden, wie folgende Beispiele zeigen.

Der Perl-Script sdump.pl kann im Terminal mit  Copy Paste der folgenden Zeilen angelegt werden, oder hier per Download bereitstellen.

Die Script Datei sdump.pl verschiebt man nun nach /usr/bin als sdump, und wird ausführbar gemacht.

Jetzt kann das CLI command diag sniffer packet über SSH Authentifizierung auf der FortiGate ausgeführt werden, um anschlissend via Pipe den Output in Wireshark zu analysieren.

  Bei Umgebungen mit erhöhter Netzwerk Traffic ist zu berücksichtigen, das eine Reduzierung durch Mitschnittfilter erreicht werden sollte.

Eine weitere Anwendung besteht darin, den PCAP Output in eine Dump Datei zu speichern, mit der Möglichkeit, die Analyse später mit Wireshark oder anderen Protocol Analyzer vornehmen zu können. Hierbei kommt folgende Zeile zur Anwendung.

 

ESXi Scratch Partition erstellen

VMware ESXi Host Scratch Partition ist zu klein

Findet man diese Nachricht in der Ereignisanzeige eines ESXi Host, sollte eine Scratch Partition erstellt werden.

Dazu öffnet man den vSphere Web Client, um ein Verzeichnis .Locker-ESXhost anzulegen. Auf Speicher gehen und das Kontextmenu Durchsuchen über dem gewünschten Datenspeicher öffnen, oder auf Datenspeicherbrowser klicken.

Datenspeicherbrowser – Scratch Verzeichnis anlegen

Dann im vSphere Web Client navigiert man zu:

Verwaltung > System > Erweiterte Einstellungen

und gibt den Suchbegriff rechts in das Suchfeld ein:
ScratchConfig.ConfiguredScratchLocation. Dann auf Option bearbeiten klicken und den Pfad zu dem zuvor angelegten Verzeichnis hinzufügen.

vSphere – ScratchConfig.ConfiguredScratchLocation

Mit klick auf Verzeichnis erstellen wird hier zum Beispiel das Vereichnis .locker-ESXHost für die Scratch Partition angelegt.

Scratch Partition in der ESX-Shell anlegen

Ein Scratch Verzeichnis kann auch über die ESXi Shell Console angelegt werden, beispielsweise mit KiTTY ein SSH-Terminal öffnen, und per CLI ein Scratch Verzeichnis anlegen.

Hinweis: Es muss der Pfad zum Scratch Verzeichnis mit der UUID angegeben werden, hier als beispiel ist /vmfs/volumes/datastore1 der Pfad /vmfs/volumes/5b2fb100-bbe22f82-fe22-ececc8968f68/.locker-ESXHost. Der Punkt zu beginn bedeutet das es ein hidden Verzeihnis ist, wie dies bei unixoiden Systemen üblich ist.

 

SID Query in Command Prompt and PowerShell

Windows Benutzer SID abfragen

Für System Administratoren ist das abfragen von Informationen zur Umgebung und Konfiguration eine alltägliche Arbeit. Eine dieser Information ist die SID (Security Identifier), diese von Windows zur Identifikation von Benutzer und Gruppen verwendet wird. Benutzernamen in einem Netzwerk können doppelt vorhanden sein, damit es zu keinem Konflikt kommt, wird jedem Benutzer eine eindeutige SID zugewiesen.

Bei der zuwiesung der Benutzer Rechte, verwendet Windows die dafür definierte SID. Eine SID ist ungefähr so aufgebaut wie ein GUID (Globally Unique Identifier), das jedes Objekt bei Windows besitzt. SIDs erhalten aber ausschließlich sicherheitsrelevate Objekte, da die SID zur Echtheitsbestätigung verwendet wird.

Durch diese SID wird der Benutzer im ganzen Netzwerk identifiziert. Auch wenn der Name des Benutzer geändert wird, bleibt die SID bestehen, wird der Benutzer im Netzwerk gelöscht, wird seine SID aufgehoben.

Aufbau meiner SID

S-1-5-214147432549-3588766049-1627529166-1001

Die SID (Security Identifier) Token haben folgende Bedeutungen:

SEs handelt sich um eine SID
1Revisionsnummer
5Identifier Authority
18Systemprofile
19Localservice
20NetworkService
21Benutzerprofile
4147432549-3588766049-1627529166Domain ID, Computer ID
1001Benutzer ID (RID)

Tabelle mit SID der Systemkonten

SID Abfragen

Möchte man nun die SID aller Benutzerkonten abfragen, geht das mit folgendem Befehl in einem Command Prompt (cmd).

Es werden alle SIDs und Benutzernamen ausgegeben.

Hier die SIDs der lokalen Konten. Bei einer abfrage in einer Netzwerk Domäne können es einige mehr sein.

Computer- und Domänen-SIDs bestehen aus einer Basis-SID und einer relativen ID (RID), die an die Basis-SID angehängt wird. Wenn der Computer einer Domäne angehört, kommt eine andere SID ins Spiel. Der Computer verfügt weiterhin über eine eigene Computer-SID und eigene lokale Konten und Gruppen, ist jedoch auch Mitglied einer Domäne und verfügt daher über eine SID, die das Computerkonto in dieser Domäne darstellt. Die SID eines Computerkonto besteht aus der SID des Administratorenkonto, abzüglich der RID, die letzten 3 bit oder 4 bit (500) entfallen.

Soll gezielt die SID eines Benutzers abgefragt werden, so zum Beispiel seine eigene SID, kann dies mit folgendem Command abgerfagt werden.

Möchte man die SID eines anderen Benutzers wissen, kann anstelle von %username% ein Benutzer angegeben werden, zB, john.

Mit folgendem Befehl lässt sich die SID des mit dem gerade angemeldeten Benutzer in einer AD-Domäne feststellen.

In umgekehrter folge geht es auch, es soll der Benutzername einer SID abgefragt werden.

In der PowerShell sieht die abfrage wie folgt aus.

Es wird der Benutzername und die SID des in der Domäne company angemeldeten Benutzers ausgegeben.

Hiermit kann beispielsweise mit der SID der ProfileImagePath zum Benutzerprofil in der Registry gefunden werden, um Reparaturen oder Anpassungen vornehmen zu können. Auch wird die SID als ObjectID in SQL-Tabellen verwendet, um Benutzer aus Active Directory in einer Anwendung identifizieren und authorisieren zu können, so zum Beispiel bei Dynamics AX.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList