Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
iocextract — Extrator de Indicador de Comprometimento (IOC) Desarmado. | Kitploit
Ferramentas/GitHubGitHub/pedramamini/iocextract
Gerenciamento de Indicadores de Comprometimento (IOC)OSINT (Inteligência de Fontes Abertas)Feeds e Agregadores de AmeaçasAnálise ForenseColeta de InformaçõesAnálise de MalwareForensia DigitalInteligência de Ameaças
GitHubpedramamini/iocextract

iocextract

Extrator de Indicador de Comprometimento (IOC) Desarmado.

Ver Repositório
5849214há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Site
Compartilhar

iocextract

Desenvolvido pela InQuest Status de Build Status da Documentação Versão PyPI

Indicador de Comprometimento (IOC) extrator para alguns dos artefatos mais comumente ingeridos.

Índice

  • Visão Geral
    • O Problema
    • Nossa Solução
    • Exemplo de Caso de Uso
  • Instalação
  • Uso
    • Biblioteca
    • Interface de Linha de Comando
  • Informações Úteis
    • FAQ
    • Mais Detalhes
    • Regex Personalizado
    • Projetos Relacionados
    • Contribuindo

Visão Geral

O pacote iocextract é uma biblioteca e interface de linha de comando (CLI) para extrair URLs, endereços IP, hashes MD5/SHA, endereços de e-mail e regras YARA de corpora de texto. Permite extrair IOCs codificados e "desarmados" (defanged) e opcionalmente decodificá-los ou rearmá-los (refang).

O Problema

É prática comum entre analistas de malware ou softwares de endpoint "desarmar" IOCs como URLs e endereços IP, a fim de evitar exposição acidental a conteúdo malicioso ativo. Ser capaz de extrair e agregar esses IOCs é frequentemente valioso para analistas. Infelizmente, as ferramentas existentes de "extração de IOC" muitas vezes passam por eles, pois não são capturadas por regex padrão.

Por exemplo, a técnica simples de desarme de cercar períodos com colchetes:

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

Ferramentas existentes que usam um regex simples de endereço IP ignorarão completamente este IOC.

Nossa Solução

Combinando regex especialmente elaborado com algum pós-processamento personalizado, somos capazes tanto de detectar quanto de desobfuscar IOCs "desarmados". Isso economiza tempo e esforço para o analista, que de outra forma teria que encontrar e converter manualmente IOCs em formato legível por máquina.

Exemplo de Caso de Uso

Muitos usuários do Twitter postam C2s ou outras informações valiosas de IOC com URLs desarmadas. Por exemplo, este tweet de @InQuest:

Leitura recomendada e ótimo trabalho de @unit42_intel:
https://researchcenter.paloaltonetworks.com/2018/02/unit42-sofacy-attacks-multiple-government-entities/ ...
Os clientes da InQuest têm detecção para ameaças entregues de hotfixmsupload[.]com
desde 6/3/2017 e cdnverify[.]net desde 1/2/18.

Se executarmos isso através do extrator, podemos facilmente extrair as URLs:

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

Passar refang=True no momento da extração removeria a ofuscação, mas como estes são IOCs reais, vamos mantê-los desarmados em nossa documentação.

Instalação

Você pode precisar instalar os cabeçalhos de desenvolvimento do Python para instalar a dependência regex. Em sistemas baseados em Ubuntu/Debian, tente:

sudo apt-get install python-dev

Em seguida, instale o iocextract via pip:

pip install iocextract

Se tiver problemas para instalar no Windows, tente instalar o regex diretamente baixando a wheel apropriada do PyPI e instalando via pip:

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

Uso

Biblioteca

Tente extrair algumas URLs desarmadas:

import iocextract

content = \
"""
Eu realmente adoro example[.]com!
Todos os bots estão em hxxp://example.com/bad/url atualmente.
C2: tcp://example[.]com:8989/bad
"""

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

    # Saída

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

NOTA: Algumas URLs podem aparecer duas vezes se forem capturadas por vários regexes.

Se você quiser, também pode "rearmar" ou remover métodos comuns de ofuscação dos IOCs:

import iocextract

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

    # Saída

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

Se você não quiser desarmar os IOCs extraídos durante a extração, também pode desabilitar isso:

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)

    # Saída

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

Todas as funções extract_* nesta biblioteca retornam iteradores, não listas. O benefício desse comportamento é que o iocextract pode processar entradas extremamente grandes, com uma sobrecarga muito baixa. No entanto, se por algum motivo você precisar iterar sobre os IOCs mais de uma vez, terá que salvar os resultados como uma lista:

import iocextract

content = \
"""
Eu realmente adoro example[.]com!
Todos os bots estão em hxxp://example.com/bad/url atualmente.
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 de Linha de Comando

Uma ferramenta de linha de comando também está incluída:

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

    Extrator Avançado de Indicadores de Comprometimento (IOC). Se nenhum argumento for
    especificado, o comportamento padrão é extrair todos os IOCs.

    argumentos opcionais:
      -h, --help            mostra esta mensagem de ajuda e sai
      --input INPUT         padrão: stdin
      --output OUTPUT       padrão: stdout
      --extract-emails
      --extract-ips
      --extract-ipv4s
      --extract-ipv6s
      --extract-urls
      --extract-yara-rules
      --extract-hashes
      --custom-regex REGEX_FILE arquivo com strings regex personalizadas, uma por linha, com um grupo de captura cada
      --refang              padrão: não
      --strip-urls          remove possível lixo do final das URLs. padrão: não
      --wide                pré-processa a entrada para permitir correspondências de caracteres codificados em wide. padrão: não

NOTA: Apenas URLs, e-mails e endereços IPv4 podem ser "rearmados".

Informações Úteis

FAQ

Você está...

P. Extraindo IOCs possivelmente desarmados de texto simples, como o conteúdo de tweets ou postagens de blog?

R. Sim! É exatamente para isso que o iocextract foi projetado e onde ele tem melhor desempenho. Quer ir mais longe e automatizar a extração e armazenamento? Confira o ThreatIngestor.

P. Extraindo URLs que foram codificadas em hex ou base64?

R. Sim, mas a CLI pode não fornecer os melhores resultados. Tente escrever um script Python e chamar iocextract.extract_encoded_urls diretamente.

Nota: Você provavelmente terá lixo extra no final das URLs.

Baixar ferramenta