Log4shell-detector

De OSWiki
Révision datée du 14 décembre 2021 à 11:40 par Acryline (discussion | contributions) (Page créée avec « Ceci est la traduction du README de log4shell-detector, détecteur de tentatives d'exploitation de Log4Shell Je n'ai aucun lien avec les développeurs de ce projet. = Sou… »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Ceci est la traduction du README de log4shell-detector, détecteur de tentatives d'exploitation de Log4Shell Je n'ai aucun lien avec les développeurs de ce projet.

Source

https://github.com/Neo23x0/log4shell-detector

Ce qu'il fait et ne fait pas

Il vérifie les fichiers journaux locaux à la recherche d'indicateurs de tentatives d'exploitation, même celles qui sont fortement obscurcies et que les modèles basés sur des chaînes ou des expressions régulières ne pourraient pas détecter.

  • Il ne trouve pas d'applications vulnérables
  • Il ne vérifie pas et ne peut pas vérifier si les tentatives d'exploitation ont réussi.

Idée

Le problème de l'exploitation de log4j CVE-2021-44228 est que la chaîne de caractères peut être fortement obscurcie de nombreuses manières différentes. Il est impossible de couvrir toutes les formes possibles avec une expression régulière raisonnable.

L'idée derrière ce détecteur est que les caractères respectifs doivent apparaître dans une ligne de journal dans un certain ordre pour correspondre.

${jndi:ldap :

Divisé en une liste, cela ressemblerait à ceci :

["$", "{", "j", "n", "d", "i", " :", "l", "d", "a", "p", " :"]

J'appelle ces listes "blocs de détection" dans mon script et je traite chaque ligne de journal caractère par caractère. Je vérifie si chaque caractère correspond au premier élément des blocs de détection. Si le caractère correspond à un caractère de l'un des blocs de détection, un pointeur avance.

Lorsque le pointeur atteint la fin de la liste, la détection se déclenche et le script imprime le nom du fichier, la ligne complète du journal, la chaîne détectée et le numéro de la ligne dans le fichier.

J'ai inclus un décodeur pour les encodages basés sur les URL. Si nous avons besoin de plus, faites-le moi savoir.

Utilisation

utilisation : log4shell-detector.py [-h] [-p path [path ...]]] [-d maxdis] [--quick] [--defaultpaths] [--debug]

Détecteurs d'exploitation Log4Shell

arguments facultatifs :
 -h, --help affiche ce message d'aide en anglais et sort
 -p path [path ...] Chemin à analyser
 -d distance Distance maximale entre chaque caractère
 --debug Sortie de débogage
 --defaultpaths Analyse un ensemble de chemins par défaut qui devraient contenir des fichiers journaux pertinents.
 --quick Ignorer les lignes de journal qui ne contiennent pas d'horodatage 2021 ou 2022.
 --summary Afficher uniquement le résumé

Démarrage

  • Assurez-vous que python est installé sur les systèmes cibles sur lesquels vous souhaitez exécuter log4shell-detector :
 python -V 

et vérifiez si Python 3 est disponible

python3 -V
  • Téléchargez ce Repo en cliquant sur "Code" > "Download ZIP".
  • Extrayez le paquet et amenez seulement log4shell-detector.py sur le système cible (par exemple avec scp)
unzip main.zip
  • Exécutez-le avec
 python3 log4shell-detector.py -p /var/log 

(si python3 n'est pas disponible utilisez python)

  • Si vos applications écrivent dans un dossier différent de /var/log, trouvez où résident les fichiers de log et analysez ces dossiers. Trouvez les emplacements dans lesquels les applications écrivent des journaux avec
lsof | grep '\.log'.
  • Examinez les résultats (voir les FAQ pour plus de détails).

FAQs