In einem vorherigen Beitrag zu Log4j bzw. Log4Shell beim vCenter wurde die Thematik bereits aufgegriffen – wenn auch nur für das VMware-Thema.
Hier geht es nun um die Log4j Erkennung und Benachrichtigung bei allgemeinen Anwendungen im Falle eines Treffers. Als Beispiel wird eine Methode erläutert, welche einfach realisierbar ist.
Eine weitere Möglichkeit findet sich hier.
Hinweis: Alles auf eigene Gefahr!
Lösung
Zuerst auf die Seite von Canary Tokens gehen und ein entsprechendes (kostenloses) Token für Log4Shell generieren. Hierzu wird eine E-Mail-Adresse benötigt, da an diese eine Nachricht versendet wird, falls das Token getriggert wurde.
Nachdem das Token generiert wurde, erhält man ein Snippet. Dieses kann nun für Tests auf Systemen verwendet werden.
Sobald dieser Code von einer anfälligen Log4J Bibliothek verarbeitet wurde, sendet Canary eine E-Mail an die im Token hinterlegte E-Mail-Adresse mit Angabe des entsprechenden Hostnamens. Auch wenn im Snippet ein Eintrag mit ldap zu finden ist, so wird die Erkennung mit hoher Wahrscheinlichkeit durch DNS realisiert.
Hinweis: Es können mehrere Tokens erstellt werden. Besonders bei vielen Systemen erhält man dadurch eine bessere Übersicht, falls der Hostname nicht korrekt ausgegeben wurde.
Ein einfacher Weg potentiell anfällige Webanwendungen zu testen, ist die Verwendung eines Internet Browsers und eines benutzerdefinierten User-Agents.
Dazu im Browser (in diesem Beispiel Google Chrome) auf einer beliebigen Internetseite einen Rechtsklick machen und Untersuchen wählen.
Im öffnenden Teilfenster oben rechts auf den Doppelpunkt klicken und über Weitere Tools den Punkt Netzwerkbedingungen auswählen.
Im Reiter Netzwerkbedingungen nun zum Punkt User-Agent navigieren und den Haken bei Browserstandard verwenden entfernen. Im Dropdownmenü Benutzerdefiniert wählen und in das Textfeld das vorher erstellte Snippet einfügen.
Navigiert man nun über den Internet-Browser auf eine Webanwendung mit anfälliger Log4j Bibliothek und diese verarbeitet das Snippet, erhält man eine E-Mail von Canary mit Angaben zum betreffenden System.
Zur Wiederherstellung des standardmäßigen User-Agents, einfach die benutzerdefinierte Zeile löschen und den Haken bei Browserstandard verwenden wieder setzen.
Es sei nochmals erwähnt , dass das generierte Snippet nicht ausschließlich mit dem Browser verwendet werden muss. Dieses Beispiel ist eines von vielen Möglichkeiten.