Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
iocextract — Estrattore di Indicatori di Compromissione (IOC) Disarmati. | Kitploit
Strumenti/GitHubGitHub/pedramamini/iocextract
Gestione degli Indicatori di Compromissione (IOC)OSINT (Open Source Intelligence)Feed e Aggregatori di MinacceInformatica ForenseRaccolta InformazioniAnalisi MalwareDigital ForensicsThreat Intelligence
GitHubpedramamini/iocextract

iocextract

Estrattore di Indicatori di Compromissione (IOC) Disarmati.

Vedi Repository
58492142 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Sito web
Condividi

iocextract

Sviluppato da InQuest Stato della Build Stato della Documentazione Versione PyPI

Indicatore di Compromissione (IOC) per alcuni degli artefatti più comunemente ingeriti.

Indice

  • Panoramica
    • Il Problema
    • La Nostra Soluzione
    • Esempio di Caso d'Uso
  • Installazione
  • Utilizzo
    • Libreria
    • Interfaccia a Riga di Comando
  • Informazioni Utili
    • FAQ
    • Maggiori Dettagli
    • Regex Personalizzate
    • Progetti Correlati
    • Contribuire

Panoramica

Il pacchetto iocextract è una libreria e un'interfaccia a riga di comando (CLI) per estrarre URL, indirizzi IP, hash MD5/SHA, indirizzi email e regole YARA da corpus di testo. Permette di estrarre IOC codificati e "defangati" e, opzionalmente, di decodificarli o rifangarli.

Il Problema

È prassi comune che gli analisti di malware o i software di endpoint "defanghino" gli IOC, come URL e indirizzi IP, per prevenire l'esposizione accidentale a contenuti dannosi in tempo reale. Essere in grado di estrarre e aggregare questi IOC è spesso prezioso per gli analisti. Sfortunatamente, gli strumenti esistenti di "estrazione IOC" spesso li ignorano, poiché non vengono catturati dalle regex standard.

Ad esempio, la semplice tecnica di defanging di circondare i punti con parentesi quadre:

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

Gli strumenti esistenti che usano una semplice regex per indirizzi IP ignoreranno completamente questo IOC.

La Nostra Soluzione

Combinando regex appositamente create con una post-elaborazione personalizzata, siamo in grado di rilevare e deoffuscare gli IOC "defangati". Questo fa risparmiare tempo e fatica all'analista, che altrimenti dovrebbe trovare e convertire manualmente gli IOC in un formato leggibile dalla macchina.

Esempio di Caso d'Uso

Molti utenti di Twitter pubblicano C2 o altre preziose informazioni IOC con URL defangati. Ad esempio, questo tweet di @InQuest:

Lettura consigliata e ottimo lavoro di @unit42_intel:
https://researchcenter.paloaltonetworks.com/2018/02/unit42-sofacy-attacks-multiple-government-entities/ ...
I clienti InQuest hanno rilevamento per minacce provenienti da hotfixmsupload[.]com
dal 6/3/2017 e cdnverify[.]net dal 2/1/18.

Se lo elaboriamo con l'estrattore, possiamo facilmente estrarre gli URL:

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

Passando refang=True al momento dell'estrazione rimuoverebbe l'offuscamento, ma poiché questi sono IOC reali, lasciamoli defangati nella nostra documentazione.

Installazione

Potrebbe essere necessario installare gli header di sviluppo di Python per installare la dipendenza regex. Su sistemi basati su Ubuntu/Debian, provare:

sudo apt-get install python-dev

Quindi installare iocextract da pip:

pip install iocextract

Se si hanno problemi di installazione su Windows, provare a installare regex direttamente scaricando la wheel appropriata da PyPI e installando tramite pip:

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

Utilizzo

Libreria

Provare a estrarre alcuni URL defangati:

import iocextract

contenuto = \
"""
Adoro example[.]com!
Tutti i bot sono su hxxp://example.com/bad/url in questi giorni.
C2: tcp://example[.]com:8989/bad
"""

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

    # Output

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

NOTA: Alcuni URL potrebbero apparire due volte se vengono catturati da più regex.

Se lo si desidera, è anche possibile "rifangare", ovvero rimuovere i metodi comuni di offuscamento dagli IOC:

import iocextract

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

    # Output

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

Se non si desidera defangare affatto gli IOC estratti durante l'estrazione, è possibile disabilitare anche questo:

import iocextract

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

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

    # Output

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

Tutte le funzioni extract_* di questa libreria restituiscono iteratori, non liste. Il vantaggio di questo comportamento è che iocextract può elaborare input estremamente grandi con un overhead molto basso. Tuttavia, se per qualche motivo è necessario iterare sugli IOC più di una volta, è necessario salvare i risultati come lista:

import iocextract

contenuto = \
"""
Adoro example[.]com!
Tutti i bot sono su hxxp://example.com/bad/url in questi giorni.
C2: tcp://example[.]com:8989/bad
"""

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

Interfaccia a Riga di Comando

È incluso anche uno strumento a riga di comando:

$ 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]

    Estrattore avanzato di Indicatori di Compromissione (IOC). Se non vengono
    specificati argomenti, il comportamento predefinito è estrarre tutti gli IOC.

    argomenti opzionali:
      -h, --help            mostra questo messaggio di aiuto ed esce
      --input INPUT         default: stdin
      --output OUTPUT       default: stdout
      --extract-emails
      --extract-ips
      --extract-ipv4s
      --extract-ipv6s
      --extract-urls
      --extract-yara-rules
      --extract-hashes
      --custom-regex REGEX_FILE file con stringhe regex personalizzate, una per riga, con un gruppo di cattura ciascuna
      --refang              default: no
      --strip-urls          rimuove possibili detriti dalla fine degli URL. default: no
      --wide                preprocessa l'input per consentire match di caratteri a codifica estesa. default: no

NOTA: Solo URL, email e indirizzi IPv4 possono essere "rifangati".

Informazioni Utili

FAQ

State...

D. Estraendo IOC potenzialmente defangati da testo semplice, come il contenuto di tweet o post di blog?

R. Sì! Questo è esattamente ciò per cui è stato progettato iocextract e dove dà il meglio di sé. Vuoi andare oltre e automatizzare l'estrazione e l'archiviazione? Dai un'occhiata a ThreatIngestor.

Scarica lo strumento