Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
iocextract — Extracteur d'Indicateur de Compromis (IOC) Désactivé. | Kitploit
Outils/GitHubGitHub/pedramamini/iocextract
Gestion des Indicateurs de Compromission (IOC)OSINT (Renseignement de Sources Ouvertes)Flux et Agrégateurs de MenacesAnalyse ForensiqueCollecte d'InformationsAnalyse de MalwareCriminalistique NumériqueRenseignement sur les Menaces
GitHubpedramamini/iocextract

iocextract

Extracteur d'Indicateur de Compromis (IOC) Désactivé.

Voir le dépôt
5849214il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Site web
Partager

iocextract

Développé par InQuest État de la build Statut de la documentation Version PyPI

Indicateur de compromission (IOC) pour certains des artefacts les plus couramment ingérés.

Table des matières

  • Aperçu
    • Le problème
    • Notre solution
    • Exemple d'utilisation
  • Installation
  • Utilisation
    • Bibliothèque
    • Interface en ligne de commande
  • Informations utiles
    • FAQ
    • Plus de détails
    • Expression régulière personnalisée
    • Projets connexes
    • Contribuer

Aperçu

Le paquet iocextract est une bibliothèque et une interface en ligne de commande (CLI) pour extraire des URL, adresses IP, hachages MD5/SHA, adresses e-mail et règles YARA à partir de corpus textuels. Il permet d'extraire des IOC encodés et « désarmés » (defanged) et, si vous le souhaitez, de les décoder ou de les réarmer.

Le problème

Il est courant que les analystes malware ou les logiciels endpoint « désarment » les IOC tels que les URL et adresses IP afin d'éviter une exposition accidentelle à du contenu malveillant actif. Pouvoir extraire et agréger ces IOC est souvent précieux pour les analystes. Malheureusement, les outils existants d'« extraction d'IOC » les ignorent souvent, car ils ne sont pas capturés par les expressions régulières standard.

Par exemple, la technique simple de désarmement qui consiste à entourer les points de crochets :

127[.]0[.]0[.]1

Les outils existants qui utilisent une expression régulière simple pour les adresses IP ignoreront complètement cet IOC.

Notre solution

En combinant des expressions régulières spécialement conçues avec un post-traitement personnalisé, nous sommes capables de détecter et de dés-obfusquer les IOC « désarmés ». Cela fait gagner du temps et des efforts à l'analyste, qui autrement devrait trouver et convertir manuellement les IOC dans un format lisible par machine.

Exemple d'utilisation

De nombreux utilisateurs de Twitter publient des C2 ou d'autres informations précieuses d'IOC avec des URL désarmées. Par exemple, ce tweet de @InQuest :

Lecture recommandée et excellent travail de @unit42_intel :
https://researchcenter.paloaltonetworks.com/2018/02/unit42-sofacy-attacks-multiple-government-entities/ ...
Les clients d'InQuest ont une détection pour les menaces provenant de hotfixmsupload[.]com
depuis le 03/06/2017 et de cdnverify[.]net depuis le 01/02/18.

Si on exécute cela via l'extracteur, on peut facilement extraire les URL :

https://researchcenter.paloaltonetworks.com/2018/02/unit42-sofacy-attacks-multiple-government-entities/
hotfixmsupload[.]com
cdnverify[.]net

En passant refang=True lors de l'extraction, on supprimerait l'obfuscation, mais comme ce sont des vrais IOC, laissons-les désarmés dans notre documentation.

Installation

Vous devrez peut-être installer les en-têtes de développement Python pour pouvoir installer la dépendance regex. Sur les systèmes basés sur Ubuntu/Debian, essayez :

sudo apt-get install python-dev

Ensuite, installez iocextract via pip :

pip install iocextract

Si vous rencontrez des problèmes d'installation sous Windows, essayez d'installer regex directement en téléchargeant la roue appropriée depuis PyPI et en installant via pip :

pip install regex-2018.06.21-cp27-none-win_amd64.whl

Utilisation

Bibliothèque

Essayez d'extraire quelques URL désarmées :

import iocextract

content = \
"""
J'aime vraiment example[.]com !
Tous les bots sont sur hxxp://example.com/bad/url ces jours-ci.
C2: tcp://example[.]com:8989/bad
"""

for url in iocextract.extract_urls(content):
    print(url)

    # Sortie

    # hxxp://example.com/bad/url
    # tcp://example[.]com:8989/bad
    # example[.]com
    # tcp://example[.]com:8989/bad

REMARQUE : Certaines URL peuvent apparaître deux fois si elles sont capturées par plusieurs expressions régulières.

Si vous le souhaitez, vous pouvez aussi « réarmer », ou supprimer les méthodes d'obfuscation courantes des IOC :

import iocextract

for url in iocextract.extract_urls(content, refang=True):
    print(url)

    # Sortie

    # http://example.com/bad/url
    # http://example.com:8989/bad
    # http://example.com
    # http://example.com:8989/bad

Si vous ne souhaitez pas désarmer du tout les IOC extraits lors de l'extraction, vous pouvez aussi le désactiver :

import iocextract

content = \
"""
http://example.com/bad/url
http://example.com:8989/bad
http://example.com
http://example.com:8989/bad
"""

for url in iocextract.extract_urls(content, defang=False):
    print(url)

    # Sortie

    # http://example.com/bad/url
    # http://example.com:8989/bad
    # http://example.com
    # http://example.com:8989/bad

Toutes les fonctions extract_* de cette bibliothèque renvoient des itérateurs, pas des listes. L'avantage de ce comportement est que iocextract peut traiter des entrées extrêmement volumineuses avec une très faible surcharge. Cependant, si pour une raison quelconque vous devez itérer plusieurs fois sur les IOC, vous devrez enregistrer les résultats sous forme de liste :

import iocextract

content = \
"""
J'aime vraiment example[.]com !
Tous les bots sont sur hxxp://example.com/bad/url ces jours-ci.
C2: tcp://example[.]com:8989/bad
"""

print(list(iocextract.extract_urls(content)))
# ['hxxp://example.com/bad/url', 'tcp://example[.]com:8989/bad', 'example[.]com', 'tcp://example[.]com:8989/bad']

Interface en ligne de commande

Un outil en ligne de commande est également inclus :

$ iocextract -h
    usage: iocextract [-h] [--input INPUT] [--output OUTPUT] [--extract-emails]
                  [--extract-ips] [--extract-ipv4s] [--extract-ipv6s]
                  [--extract-urls] [--extract-yara-rules] [--extract-hashes]
                  [--custom-regex REGEX_FILE] [--refang] [--strip-urls]
                  [--wide]

    Extracteur avancé d'indicateurs de compromission (IOC). Si aucun argument
    n'est spécifié, le comportement par défaut est d'extraire tous les IOC.

    arguments optionnels :
      -h, --help            affiche ce message d'aide et quitte
      --input INPUT         défaut : stdin
      --output OUTPUT       défaut : stdout
      --extract-emails
      --extract-ips
      --extract-ipv4s
      --extract-ipv6s
      --extract-urls
      --extract-yara-rules
      --extract-hashes
      --custom-regex REGEX_FILE fichier contenant des chaînes d'expression régulière personnalisées, une par ligne, avec un groupe de capture chacune
      --refang              défaut : non
      --strip-urls          supprime les possibles déchets à la fin des URL. défaut : non
      --wide                prétraite l'entrée pour permettre les correspondances de caractères encodés sur largeur. défaut : non

REMARQUE : Seules les URL, les e-mails et les adresses IPv4 peuvent être « réarmés ».

Informations utiles

FAQ

Est-ce que vous...

Télécharger l’outil