Sicherheit in Industrial Control Systems
Sicherheit in Industrial Control Systems

Wireshark Dissector für ADS

Wireshark Dissector.zip
Archivdatei im ZIP Format [343.0 KB]

Neue Features
Im Rahmen dieser Arbeit wurde der Wireshark Display-Filter für das ADS-Protokoll anhand eines Lua-Dissectors erweitert, um ebenfalls die Discovery-Phase sowie den Routenaufbau zwischen zwei Kommunikationsteilnehmern zu unterstutzen.

 

Das Skript ads_dissector.lua analysiert alle ADS-Datenpakete die Port 48899 als Quell- oder Zielport haben und das UDP-Protokoll nutzen.

 

Die Erweiterung des Display-Filters bringt folgende Vorteile mit sich:

  • ˆADS-Nachrichten und deren Typ (Discovery-Phase oder Routenaufbau) können sofort identiziert und analysiert werden. Es kann ebenfalls zwischen Anfragen und Antworten unterschieden werden.
  • Benutzereingaben, wie Benutzername und Kennwort, können bequem aus dem Paket ausgelesen werden. Des Weiteren wird angezeigt, ob die Eingaben verschlüsselt sind oder nicht.
  • Bei verschlüsselten Eingaben können die Hashwerte aus dem Paket ausgelesen werden um in einem Replay-Angriff angewandt zu werden.
  • Antworten auf Anmeldeversuche in der Phase des Routenaufbaus zeigen, ob die Anmeldung erfolgreich war.

 

Abbildung: Ansicht eines ADS-Datenpakets des Routenaufbaus in Wireshark

 

Die Abbildung zeigt ein ADS-Datenpaket, welches von einer Engineering Workstation an eine PLC geschickt wurde. Es handelt sich bei der Nachricht um einen Routenaufbau mit verschlüsselten Benutzerdaten (TwinCAT Encryption Byte: 0x0f). Des Weiteren wird angezeigt, welche AmsNetId der Absender nutzt und wie der Name der aufzubauenden Route lautet. Sind die Benutzerdaten verschlüsselt, so werden diese als Hashwerte angezeigt. Für alle null-terminierten Strings, die in der Nachricht genutzt werden, wird ebenfalls die Anzahl der Zeichen als Zusatz-information angegeben.

 

Der Dissector erweitert den ADS-Display-Filter um folgende Felder:

  • ˆads.messagetype
    • Gibt an, ob es sich um eine Nachricht der Discovery-Phase (0x06) oder des Routenaufbaus (0x01) handelt.
  • ˆads.requestresponse
    • Gibt an, ob es sich um eine Anfrage (0x00) oder eine Antwort (0x80) handelt.
  • ˆads.netid
    • Gibt die AmsNetId des Absenders an.
  • ˆads.hostname (nur Discovery-Phase)
    • Gibt den Hostnamen des Systems an.
  • ads.os (nur Discovery-Phase)
    • Gibt an, welches Betriebssystem das System nutzt.
  • ads.route  (nur Routenaufbau)
    • Gibt den Namen der aufzubauenden Route an.

  • ads.is_encrypted { (nur Routenaufbau)

    • Gibt an, ob die Benutzerdaten verschlüsselt (0x0f) oder unverschlüsselt (0x0d) sind.

  • ads.username { (nur Routenaufbau)

    • Gibt den Benutzernamen eines Anmeldeversuchs an.

    • Sind die Benutzerdaten verschlüsselt, so wird ein Hashwert angegeben. Ansonsten erscheint der Benutzername als null-terminierter String im Klartext.

  • ads.password (nur Routenaufbau)

    • Gibt das Kennwort eines Anmeldeversuchs an.

    • Sind die Benutzerdaten verschlüsselt, so wird ein Hashwert angegeben. Ansonsten erscheint das Kennwort als null-terminierter String im Klartext.

  • ads.loginok { (nur Routenaufbau)

    • Gibt an, ob ein Anmeldeversuch erfolgreich war (0x0000) oder ob ein Fehler aufgetreten ist (z.B. 0x04007 als Fehlermeldung für falsche Anmeldedaten).

    • Die Tabelle unten zeigt eine Liste moglicher Fehlercodes.

 

Einige der angegebenen Felder werden nur in verschiedenen Phasen der Kommunikation genutzt (z.B. ads.hostname während der Discovery-Phase), während andere Felder spezifisch für Anfragen (z.B. ads.is_encrypted) oder Antworten (z.B. ads.loginok) sind.

 

Hier finden Sie uns

Institut für IT-Sicherheit
in Industrial Control Systems
Ahornstr. 16
52074 Aachen

Kontakt

Senden Sie eine Email an Email-Link

 

oder nutzen Sie unser Kontaktformular.

SCADA Security Weiterbildung
Zertifizierung zum Certified SCADA Security Engineer
170721_CSSE-Newsletter.pdf
PDF-Dokument [42.7 KB]
Cyber Security Seminar
Inhalt des Cyber Security Seminars
170721_CSSE-Newsletter.pdf
PDF-Dokument [42.7 KB]
Einführung in den Standard IEC 62443
170721_IEC_62443-Newsletter.pdf
PDF-Dokument [41.4 KB]
Druckversion Druckversion | Sitemap
© ISICS-Institut - @-yet Industrial IT Security GmbH 2017