Pular para o conteúdo
Skillpedia
Coleta de dados (scraping)35 mil · #5770

extracting-iocs-from-malware-samples

Faz seu agente extrair informações de ameaças de arquivos maliciosos. Ajuda a identificar e bloquear ataques, protegendo sistemas e redes.

O que ela faz

Esta ferramenta extrai informações importantes (chamadas de 'indicadores') de amostras de malware. Ela encontra coisas como endereços de sites, arquivos e padrões de comportamento que podem ser usados para se defender contra ameaças.

Quando usar

  • ✓Após analisar um programa malicioso e precisar coletar as pistas.
  • ✓Para criar listas de bloqueio em firewalls ou sistemas de segurança.
  • ✓Para gerar regras de detecção para outras ferramentas de segurança.

Exemplo do que pedir para a IA

“Extraia os indicadores de comprometimento da amostra de malware 'malware.exe'.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/extracting-iocs-from-malware-samples/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/extracting-iocs-from-malware-samples/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta examina o arquivo e os relatórios de análise para encontrar endereços IP, nomes de domínio, caminhos de arquivos e outros artefatos. Em seguida, ela formata essas informações para que possam ser usadas facilmente por outras ferramentas de segurança.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill extracting-iocs-from-malware-samples

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/extracting-iocs-from-malware-samples/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Extraindo IOCs de Amostras de Malware

Quando Usar

  • A análise de malware (estática ou dinâmica) foi concluída e indicadores acionáveis precisam ser extraídos para as equipes de defesa.
  • Construindo listas de bloqueio para firewalls, proxies e DNS sinkholes a partir de amostras analisadas.
  • Criando regras YARA, assinaturas Snort/Suricata ou conteúdo de detecção SIEM a partir de artefatos de malware.
  • Contribuindo para plataformas de compartilhamento de inteligência de ameaças (MISP, OTX, ThreatConnect).
  • Rastreando campanhas de malware correlacionando IOCs entre várias amostras.

Não use para IOCs de fontes não verificadas sem validação; falsos positivos em listas de bloqueio podem interromper operações comerciais legítimas.

Pré-requisitos

  • Python 3.8+ com as bibliotecas iocextract, pefile, yara-python instaladas.
  • Relatório de análise de malware concluído (análise estática, análise dinâmica ou engenharia reversa).
  • Acesso a arquivos PCAP, dumps de memória ou relatórios de sandbox da análise.
  • Instância MISP ou servidor STIX/TAXII para compartilhamento estruturado de IOCs.
  • Chave de API do VirusTotal para enriquecimento e validação de IOCs.
  • CyberChef para decodificar indicadores ofuscados.

Fluxo de Trabalho

Etapa 1: Extrair IOCs Baseados em Arquivos

Calcule hashes e identifique indicadores de metadados de arquivos:

# Generate all standard hashes
md5sum malware_sample.exe
sha1sum malware_sample.exe
sha256sum malware_sample.exe

# Generate ssdeep fuzzy hash for similarity matching
ssdeep malware_sample.exe

# Generate imphash (import hash) for PE files
python3 -c "
import pefile
pe = pefile.PE('malware_sample.exe')
print(f'Imphash: {pe.get_imphash()}')
"

# Generate TLSH (Trend Micro Locality Sensitive Hash)
python3 -c "
import tlsh
with open('malware_sample.exe', 'rb') as f:
    h = tlsh.hash(f.read())
print(f'TLSH: {h}')
"

# Compile file metadata IOCs
python3 << 'PYEOF'
import pefile
import os
import hashlib
import datetime

pe = pefile.PE("malware_sample.exe")

print("FILE IOCs:")
with open("malware_sample.exe", "rb") as f:
    data = f.read()
    print(f"  MD5:        {hashlib.md5(data).hexdigest()}")
    print(f"  SHA-1:      {hashlib.sha1(data).hexdigest()}")
    print(f"  SHA-256:    {hashlib.sha256(data).hexdigest()}")
    print(f"  File Size:  {len(data)} bytes")

ts = pe.FILE_HEADER.TimeDateStamp
print(f"  Compile:    {datetime.datetime.utcfromtimestamp(ts)} UTC")
print(f"  Imphash:    {pe.get_imphash()}")
PYEOF

Etapa 2: Extrair IOCs de Rede

Obtenha indicadores de rede de strings, PCAP e relatórios de sandbox:

# Extract network IOCs from strings
import re

with open("malware_sample.exe", "rb") as f:
    data = f.read()

# Extract ASCII and Unicode strings
ascii_strings = re.findall(b'[ -~]{4,}', data)
unicode_strings = re.findall(b'(?:[ -~]\x00){4,}', data)

all_strings = [s.decode('ascii', errors='ignore') for s in ascii_strings]
all_strings += [s.decode('utf-16-le', errors='ignore') for s in unicode_strings]

# IP addresses (excluding private ranges for C2 indicators)
ip_pattern = re.compile(r'\b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\b')
ips = set()
for s in all_strings:
    for ip in ip_pattern.findall(s):
        # Filter out private/reserved ranges
        octets = [int(o) for o in ip.split('.')]
        if octets[0] not in [10, 127, 0] and not (octets[0] == 172 and 16 <= octets[1] <= 31) and not (octets[0] == 192 and octets[1] == 168):
            ips.add(ip)

# Domain names
domain_pattern = re.compile(r'\b[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z]{2,})+\b')
domains = set()
for s in all_strings:
    for d in domain_pattern.findall(s):
        if not d.endswith(('.dll', '.exe', '.sys', '.com.au')):
            domains.add(d)

# URLs
url_pattern = re.compile(r'https?://[^\s<>"{}|\\^`\[\]]+')
urls = set()
for s in all_strings:
    for u in url_pattern.findall(s):
        urls.add(u)

print("NETWORK IOCs:")
print(f"  IPs:     {ips}")
print(f"  Domains: {domains}")
print(f"  URLs:    {urls}")

Etapa 3: Extrair IOCs Baseados em Host

Identifique caminhos de arquivo, chaves de registro, mutexes e serviços:

# Extrair IOCs baseados em host do relatório de sandbox
import json

with open("cuckoo_report.json") as f:
    report = json.load(f)

print("IOCs de HOST:")

# Caminhos de arquivo criados ou modificados
print("\nCaminhos de Arquivo:")
for f in report["behavior"]["summary"].get("files", []):
    if any(p in f.lower() for p in ["temp", "appdata", "system32", "programdata"]):
        print(f"  [DROPPED] {f}")

# Chaves de registro para persistência
print("\nChaves de Registro:")

…
Perguntas frequentes

O que são 'indicadores de comprometimento' (IOCs)?

São pistas digitais, como um endereço IP ou um nome de domínio, que indicam que um sistema pode ter sido invadido ou comprometido por malware.

Por que é importante 'desfangar' os IOCs?

'Desfangar' significa modificar os IOCs (como adicionar colchetes a um endereço IP) para que não sejam acidentalmente ativados se alguém clicar neles em um documento ou e-mail, evitando assim infecções.

Preciso ser um especialista em segurança para usar isso?

Embora a ferramenta seja poderosa, o objetivo é simplificar a extração de IOCs. No entanto, entender o contexto da análise de malware ajuda a interpretar os resultados.

Detalhes

Descrição original do autor

Extracts indicators of compromise (IOCs) from malware samples, including file hashes, network indicators (IPs, domains, URLs, PCAP indicators), host artifacts (file paths, registry keys, mutexes), and behavioral patterns, using tools like CyberChef, then defangs and exports them in standard threat-intel formats. Use for IOC extraction, threat indicator harvesting, or building detection content fro

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5770
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas