Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
iocextract — Extractor de Indicadores de Compromiso (IOC) desarmados. | Kitploit
Herramientas/GitHubGitHub/pedramamini/iocextract
Gestión de Indicadores de Compromiso (IOC)OSINT (Inteligencia de Fuentes Abiertas)Feeds y Agregadores de AmenazasAnálisis ForenseRecopilación de InformaciónAnálisis de MalwareForensia DigitalInteligencia de Amenazas
GitHubpedramamini/iocextract

iocextract

Extractor de Indicadores de Compromiso (IOC) desarmados.

Ver Repositorio
5849215hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Sitio web
Compartir

iocextract

Desarrollado por InQuest Estado de compilación Estado de documentación Versión PyPI

Indicador de Compromiso (IOC) para algunos de los artefactos más comúnmente ingeridos.

Índice

  • Resumen
    • El problema
    • Nuestra solución
    • Ejemplo de uso
  • Instalación
  • Uso
    • Biblioteca
    • Interfaz de línea de comandos
  • Información útil
    • Preguntas frecuentes
    • Más detalles
    • Regex personalizado
    • Proyectos relacionados
    • Contribuciones

Resumen

El paquete iocextract es una biblioteca e interfaz de línea de comandos (CLI) para extraer URLs, direcciones IP, hashes MD5/SHA, direcciones de correo electrónico y reglas YARA de corpus de texto. Permite extraer IOCs codificados y "defanged" y, opcionalmente, decodificarlos o "refangearlos".

El problema

Es práctica común que los analistas de malware o el software de endpoints "defangeen" IOCs como URLs y direcciones IP, para evitar la exposición accidental a contenido malicioso en vivo. Poder extraer y agregar estos IOCs suele ser valioso para los analistas. Desafortunadamente, las herramientas existentes de "extracción de IOCs" a menudo los pasan por alto, ya que no son capturados por expresiones regulares estándar.

Por ejemplo, la técnica simple de defanging de rodear los puntos con corchetes:

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

Las herramientas existentes que usan una expresión regular simple de dirección IP ignorarán este IOC por completo.

Nuestra solución

Combinando expresiones regulares especialmente diseñadas con algún post-procesamiento personalizado, podemos detectar y desobfuscar IOCs "defanged". Esto ahorra tiempo y esfuerzo al analista, que de otro modo tendría que encontrar y convertir manualmente los IOCs a un formato legible por máquina.

Ejemplo de uso

Muchos usuarios de Twitter publican C2s u otra información valiosa de IOC con URLs defanged. Por ejemplo, este tuit de @InQuest:

Lectura recomendada y gran trabajo de @unit42_intel:
https://researchcenter.paloaltonetworks.com/2018/02/unit42-sofacy-attacks-multiple-government-entities/ ...
Los clientes de InQuest han tenido detección para amenazas entregadas desde hotfixmsupload[.]com
desde el 6/3/2017 y cdnverify[.]net desde el 1/2/18.

Si ejecutamos esto a través del extractor, podemos extraer fácilmente las URLs:

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

Pasando refang=True en el momento de la extracción eliminaría la ofuscación, pero como son IOCs reales, dejémoslos defanged en nuestra documentación.

Instalación

Es posible que necesites instalar los encabezados de desarrollo de Python para poder instalar la dependencia regex. En sistemas basados en Ubuntu/Debian, prueba:

sudo apt-get install python-dev

Luego instala iocextract desde pip:

pip install iocextract

Si tienes problemas para instalar en Windows, prueba instalando regex directamente descargando la rueda adecuada de PyPI e instalando mediante pip:

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

Uso

Biblioteca

Prueba a extraer algunas URLs defanged:

import iocextract

content = \
"""
¡Me encanta example[.]com!
Todos los bots están en hxxp://example.com/bad/url estos días.
C2: tcp://example[.]com:8989/bad
"""

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

    # Salida

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

NOTA: Algunas URLs pueden aparecer dos veces si son capturadas por múltiples expresiones regulares.

Si lo deseas, también puedes "refangear", o eliminar métodos comunes de ofuscación de los IOCs:

import iocextract

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

    # Salida

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

Si no quieres defangear los IOCs extraídos durante la extracción, también puedes deshabilitar esto:

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)

    # Salida

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

Todas las funciones extract_* en esta biblioteca devuelven iteradores, no listas. El beneficio de este comportamiento es que iocextract puede procesar entradas extremadamente grandes, con una sobrecarga muy baja. Sin embargo, si por alguna razón necesitas iterar sobre los IOCs más de una vez, tendrás que guardar los resultados como una lista:

import iocextract

content = \
"""
¡Me encanta example[.]com!
Todos los bots están en hxxp://example.com/bad/url estos días.
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']

Interfaz de línea de comandos

También se incluye una herramienta de línea de comandos:

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

    Advanced Indicator of Compromise (IOC) extractor. If no arguments are
    specified, the default behavior is to extract all IOCs.

    optional arguments:
      -h, --help            show this help message and exit
      --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 with custom regex strings, one per line, with one capture group each
      --refang              default: no
      --strip-urls          remove possible garbage from the end of urls. default: no
      --wide                preprocess input to allow wide-encoded character matches. default: no

NOTA: Solo las URLs, correos electrónicos y direcciones IPv4 pueden ser "refanged".

Información útil

Preguntas frecuentes

¿Estás...

P. Extrayendo IOCs posiblemente defanged de texto plano, como el contenido de tuits o publicaciones de blog?

R. ¡Sí! Esto es exactamente para lo que fue diseñado iocextract, y donde mejor funciona. ¿Quieres ir un paso más allá y automatizar la extracción y almacenamiento? Echa un vistazo a ThreatIngestor.

Descargar herramienta