EAN-13- und TOTP-Hackvertor-Tags für Penetrationstests von Webanwendungen mit Burp
Hackvertor ist ein Standalone-Werkzeug und eine Erweiterung für das Penetrationstest-Tool Burp Suite. Gareth Heyes vom Portswigger Research Team hat Hackvertor entwickelt. Die Erweiterung führt dynamische Datenkonvertierungen durch. Das Tool kann beispielsweise dazu verwendet werden, Datenfelder als Base64 zu kodieren, bevor Burp eine HTTP-POST-Anfrage an einen Server sendet. Dies geschieht automatisch und es ist nicht notwendig, Daten manuell zu konvertieren oder zwischen verschiedenen Fenstern zu kopieren.
In unserem Blog schrieben wir über das Generieren schweizer Sozialversicherungsnummern bei einen Pentest und das Programmieren benutzerdefinierter Hackvertor-Tags. Es gibt verschiedene Arten von Tags. Viele sind bereits in Hackvertor integriert und Benutzer können darüber hinaus ihre eigenen Tags programmieren. Hackvertor verfügt mittlerweile über einen öffentlichen Tag Store, in dem Benutzer Tags einreichen können. Pentagrid hat nun zwei Tags entwickelt und im Hackvertor-Tag-Store veröffentlich. Ein Hackvertor-Tag dient der Prüfziffernberechnung von EAN-13-Codes und ein anderes für die Berechnung von Time-based one-time Passwords (TOTP).
Wie bereits in unserem Blog-Beitrag „Burp eine neue HTTP-Transportkodierung beibringen“ erläutert, ist das Anpassen von Tests in Burp ein wichtiges Instrument, um Tests zu automatisieren und eine hohe Test-Coverage bei einer Sicherheitsuntersuchung zu erzielen.
EAN-13-Hackvertor-Tag
EAN ist die European Article Number, ein Standard zur Kodierung von Artikelnummern. Und obwohl sie eher international als europäisch geworden ist und jetzt Global Trade Item Number heißt, wird dieses Artikelnummernformat oft noch als EAN-13 bezeichnet. Schweizer AHV-Nummern verwenden die Prüfsummenberechnung von EAN-13 und speichern die Prüfsumme als 13. Zeichen.
Den benutzerdefinierte Tag-Code aus unserem Blog-Artikel haben wir als Hackvertor-Tag im Tag Store veröffentlicht. Das EAN-13-Tag wird wie in den folgenden beiden Beispielen verwendet:
# the "append" parameter can be set to 0 or 1. <@_ean13(1,'[...]')>756.9217.0769.8<@/_ean13> # -> 756.9217.0769.85 <@_ean13(0,'[...]')>756.9217.0769.8<@/_ean13> # -> 5
An der Stelle der Auslassung [...] muss ein sogenannter Ausführungsschlüssel eingefügt werden. Die Hackvertor-Extension für Burp fügt den Code-Ausführungsschlüssel automatisch hinzu, wenn die Tags im Hackvertor-Tab in Burp vorbereitet und verwendet werden. Der Ausführungsschlüssel ist eine zufällige Zeichenfolge von 40 Hex-Ziffern, der verhindert, dass mit Burp verarbeitete Webseiten schädliche Aktionen in Burp auslösen. Burp würfelt bei jedem Start einen neuen Ausführungsschlüssel. Nur Codeausführungs-Tags (mit benutzerdefiniertem Code, wie z. B. die im Tag Store) benötigen einen Codeausführungsschlüssel.
TOTP-Hackvertor-Tag
Pentagrid implementierte ebenfalls ein Hackvertor-Tag für TOTP. Dieser zeitbasierte Token wird für Zweifaktor-Authentifizierung verwendet. Wenn während des Penetrationstests ein derartiger Token notwendig ist, kann das Hackvertor-Tag verwendet werden. Der Code wurde kürzlich dem Tag Store hinzugefügt. Um das TOTP-Tag zu verwenden, extrahiert man den Initialisierungswert aus dem QR-Code, der ausgehändigt wurde, um ihn mit einer Authentifikator-App zu scannen. Das Kommandozeilenwerkzeug zbarimg kann den Inhalt des QR-Codes aus einer Bilddatei auslesen:
% zbarimg ~/Authenticator-QR-Code.png QR-Code:otpauth://totp/SomeOrg:something?secret=MYSEEDMYSEED2342&issuer=SomeOrg scanned 1 barcode symbols from 1 images in 0.05 seconds
Das Hackervertor-Tag kann dann analog zu diesem Beispiel verwendet werden:
Es gibt mehrere Parameter für TOTP. Das Tag unterstützt nur die in der Praxis häufig verwendeten Parameter SHA1, 30 Sekunden und 6 Ziffern. Falls in der freien Wildbahn andere Konfiguration genutzt werden, sollte es recht einfach sein, das benutzerdefinierte Tag anzupassen.
Um auf den Tag Store zuzugreifen, gehen Sie einfach zum Menüeintrag „View tag store“ im Hackvertor-Menü in Burp und installieren die gewünschten Erweiterungen. Stellen Sie dann auch sicher, dass Sie die Codeausführungs-Tags über den Menüeintrag „Allow code execution tags“ im Hackvertor-Menü in Burp zulassen.