25. April 2023

ChatGPT ein Segen für Pentester:innen oder nicht zu gebrauchen? #4

Script Erstellung – Kann ChatGPT kleine Skripte erstellen welche Pentester:innen das Leben einfacher gestalten können?

Manchmal können herkömmliche Tools eine bestimmte Aufgabe nicht erfüllen, sind nicht zugänglich oder werden einfach von einer Antivirenlösung blockiert. Hier kann es hilfreich sein, eigene kleine Skripte zu schreiben. Es kursieren sehr viele Meldungen, dass ChatGPT von Cyberkriminellen zur Entwicklung von Malware genutzt wird oder Softwareentwickler:innen die KI nutzen, um sich die Arbeit zu erleichtern. Daher wurde auch hier überprüft, ob ChatGPT tatsächlich dazu verwendet werden kann, Skripte und funktionsfähige Software zu erstellen. Hier sollte ein Powershell Skript erstellt werden, welches automatisch alle Benutzer im AD scannt, ob diese ihren Benutzernamen als Passwort verwenden. Ziel des Ganzen war es zu testen ob ChatGPT, Skripte nur anhand von Vorgaben schreiben kann. Lustigerweise musste explizit angegeben werden, dass die Erlaubnis dazu vorliegt und es sich um einen legalen Pentest handelt, ansonsten verweigerte ChatGPT die Ausgabe des Codes. Der Codeabschnitt wurde wie erwartet ausgegeben. Allerdings enthält der ausgegebene Code einen Fehler. Wenn der Code ausgeführt wird, gibt er immer die Meldung „SUCCESS: …“ aus, auch wenn der Benutzer seinen Benutzernamen nicht als Passwort verwendet.

In einem weiteren Versuch sollte die KI ein Python-Skript erstellen, das eine zeitbasierte Blind-SQL-Injection ausnutzen sollte. Dabei werden gültige Zeichen anhand von Zeitunterschieden ausgelesen. Normalerweise könnte das auch das Tool SQLMap, aber hier soll die KI getestet werden. Diesmal funktioniert ChatGPT besser und liefert ein funktionierendes Template, das tatsächlich verwendet werden könnte.

Auch hier muss also überprüft werden, ob ChatGPT bei der Erstellung von Skripten tatsächlich ein funktionierendes Skript ausgibt oder ob an diesem noch gefeilt werden muss. Es ist daher schwer zu glauben, dass Cyberkriminelle tatsächlich ganze Malware mit ChatGPT generieren, da doch ein gewisses Know-How vorhanden sein muss, um Fehler zu erkennen oder generell Anweisungen zu geben. In vielen Beispielen wird ChatGPT-Malware mit Python-Code geschrieben. Da dieser in der Regel einen Python Interpreter benötigt, um die Malware überhaupt ausführen zu können, sind die meisten Beispiele eher irreführender Natur. Es kann jedoch gesagt werden, dass ChatGPT in der Lage ist, Skripte zu erstellen und Fehler in diesen zu erkennen, wenn ChatGPT darauf angesetzt wird. Es ist jedoch nicht in der Lage, komplexe Software zu generieren.

Hilfe beim Erstellen von Demos – Kann ChatGPT Demos für Workshops schreiben?

Pentester:innen sind oft nicht nur Tester:innen, sondern auch Organisatoren von Workshops und Schulungen. Daher ist es praktisch, Beispiele zur Hand zu haben, wenn eine Demonstration stattfindet. ChatGPT wurde daher beauftragt, eine Demonstration einer DOM-basierten XSS-Schwachstelle zu erstellen. Dabei wurde nur Text verwendet und keine Beispiele.

Die KI hat die Aufgabe souverän gelöst und eine Beispielwebseite mit einem Eingabefeld ausgegeben. Der eingegebene Code wird auf der Seite gespiegelt. So ist es einfach, einen Cross-Site-Scripting-Angriff zu demonstrieren. Dies konnte schnell und ohne großen Aufwand durchgeführt werden.

Im Gegenzug zur Schwachstelle wäre es auch gut, ein Beispiel zu haben, wie Entwickler vermeintliche Eingabefelder absichern. Hierbei ist jedoch zu beachten, dass es mehrere Möglichkeiten gibt, dies umzusetzen und nicht alle erfolgversprechend sind. Daher sollte der Code von ChatGPT so angepasst werden, dass der Code zwar vermeintlich abgesichert ist, aber dennoch eine Schwachstelle besteht. Auch diese Aufgabe wurde von ChatGPT zuverlässig gelöst.

Als allgemeine Schlussfolgerung kann man sagen, dass die KI in einigen Bereichen Zeit sparen kann. Es sollte jedoch immer überprüft werden, ob die Ausgaben von ChatGPT fehlerfrei sind. Man kann sich nicht zu 100% darauf verlassen, dass die Ausgaben korrekt sind und funktionieren. Meistens ist es daher schneller selbst zu googeln. ChatGPT kann jedoch gut dazu verwendet werden, sich für Aufgaben inspirieren zu lassen, Texte zu generieren und Skripte und Demonstrationen zu erstellen. Es sollte jedoch immer mit Vorsicht verwendet werden. Es ist auch sicher zu sagen, dass die KI noch nicht in der Lage ist, die Arbeit von Menschen zu ersetzen.

Zusammenfassung der getesteten Beispiele

In der folgenden Abbildung wird eine kleine Übersicht dargestellt wofür ChatGPT hilfreich sein kann und wo die KI eher Defizite aufweist.

Sie haben die vorherigen Teile von „ChatGPT ein Segen für Pentester:innen oder nicht zu gebrauchen?“ verpasst oder möchten die detaillierten Ergebnisse nochmals nachlesen?

In Teil 1 finden Sie die Ergebnisse zu folgenden Beispielen:

  • Hilfe bei Programmfehlern – Kann ChatGPT bei Fehlermeldungen assistieren?
  • Vorschläge für Tools durch beschreiben der Situation – Kann ChatGPT Tools empfehlen womit z.B. Schwachstellen besser identifiziert werden können?

In Teil 2 wird außerdem folgende Fragestellung thematisiert:

  • Code Analyse – Kann ChatGPT Schwachstellen in Codeschnipseln finden?

In Teil 3 wurden folgende Beispiele vorgestellt:

  • Suche nach CVEs anhand von Versionsnummern – Kann ChatGPT anhand von übergebenen Produktinformationen und Versionsnummern CVEs ausfindig machen?
  • Schreiben von Schwachstellen Beschreibungen – Kann ChatGPT Schwachstellen beschreiben und Lösungsvorschläge unterbreiten?