deobfuscating-javascript-malware
Ajuda seu agente a desofuscar códigos JavaScript maliciosos encontrados em páginas de phishing. Revela a lógica original do código para análise de segurança.
O que ela faz
Essa ferramenta ajuda a desvendar códigos JavaScript que foram "escondidos" (ofuscados) para disfarçar sua verdadeira intenção. Ela revela a lógica original do código malicioso.
Quando usar
- ✓Ao investigar uma página de phishing com scripts suspeitos.
- ✓Ao analisar um código que rouba dados de sites de compras.
- ✓Ao tentar entender um script que baixa outros programas maliciosos.
Exemplo do que pedir para a IA
“Desofusque este código JavaScript malicioso.”
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
Mensagem pronta para colar
Como funciona
A ferramenta analisa o código, identifica como ele foi escondido (por exemplo, usando códigos estranhos ou embaralhando a ordem das instruções) e aplica técnicas para reverter essas "camuflagens", mostrando o código original.
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 deobfuscating-javascript-malwareOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/deobfuscating-javascript-malware/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Desofuscando Malware JavaScript
Quando Usar
- Investigando uma página de phishing com JavaScript ofuscado que realiza coleta de credenciais ou redirecionamento
- Analisando um web skimmer (estilo Magecart) injetado em um site de e-commerce
- Desofuscando um dropper JavaScript que baixa e executa malware de segundo estágio
- Examinando anexos de e-mail maliciosos contendo arquivos HTML com scripts ofuscados embutidos
- Analisando kits de exploração de navegador que usam ofuscação pesada de JavaScript para ocultar a entrega de exploits
Não use para JavaScript ofuscado que seja meramente código de produção minificado; use um beautifier padrão em vez disso.
Pré-requisitos
- Node.js 18+ instalado para executar e depurar JavaScript em um ambiente controlado
- Python 3.8+ com a biblioteca
jsbeautifierpara formatação de código - Ferramentas de desenvolvedor do navegador (Chrome DevTools) para execução controlada em um navegador isolado
- CyberChef (https://gchq.github.io/CyberChef/) para operações de codificação/decodificação
- de4js ou JStillery para desofuscação automática de JavaScript
- VM de análise isolada sem acesso a sistemas de produção ou dados sensíveis
Fluxo de Trabalho
Passo 1: Extrair e Examinar o Script Ofuscado com Segurança
Isole o JavaScript malicioso sem executá-lo:
# Extract JavaScript from HTML file
python3 << 'PYEOF'
from html.parser import HTMLParser
class ScriptExtractor(HTMLParser):
def __init__(self):
super().__init__()
self.in_script = False
self.scripts = []
self.current = ""
def handle_starttag(self, tag, attrs):
if tag == "script":
self.in_script = True
self.current = ""
def handle_endtag(self, tag):
if tag == "script":
self.in_script = False
if self.current.strip():
self.scripts.append(self.current)
def handle_data(self, data):
if self.in_script:
self.current += data
with open("malicious_page.html") as f:
parser = ScriptExtractor()
parser.feed(f.read())
for i, script in enumerate(parser.scripts):
with open(f"script_{i}.js", "w") as f:
f.write(script)
print(f"Extracted script_{i}.js ({len(script)} bytes)")
PYEOF
# Beautify the extracted JavaScript
npx js-beautify script_0.js -o script_0_pretty.js
Passo 2: Identificar Técnicas de Ofuscação
Categorize os métodos de ofuscação utilizados:
Common JavaScript Obfuscation Techniques:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
String Encoding:
- Hex encoding: "\x68\x65\x6c\x6c\x6f" -> "hello"
- Unicode escapes: "\u0068\u0065\u006c\u006c\u006f" -> "hello"
- Base64: atob("aGVsbG8=") -> "hello"
- charCodeAt/fromCharCode: String.fromCharCode(104,101,108,108,111)
- Array-based lookup: var _0x1234 = ["hello","world"]; _0x1234[0]
Eval Chains:
- eval(atob("..."))
- eval(unescape("..."))
- new Function("return " + decoded)()
- document.write("<script>" + decoded + "</script>")
- setTimeout(decoded, 0)
Control Flow:
- Switch-case dispatcher with shuffled case order
- Opaque predicates (always-true/false conditions)
- Dead code insertion
- Variable name mangling (_0x4a3b, _0xab12)
Anti-Analysis:
- Debugger traps: setInterval(function(){debugger;}, 100)
- Console detection: overriding console.log
- Timing checks: performance.now() deltas
- DevTools detection: window.outerWidth - window.innerWidth > 100
Passo 3: Remover Proteções Anti-Análise
Neutralize armadilhas anti-depuração e anti-análise:
// Remove debugger traps before analysis
// Replace in the obfuscated script:
// Before:
setInterval(function() { debugger; }, 100);
// After (neutralized):
setInterval(function() { /* debugger removed */ }, 100);
// Neutralize DevTools detection
// Before:
if (window.outerWidth - window.innerWidth > 160) { window.location = "about:blank"; }
// After:
if (false) { window.location = "about:blank"; }
// Neutralize timing checks
// Override performance.now to return consistent values
const originalNow = performance.now;
performance.now = function() { return 0; };
Passo 4: Decodificar Camadas de Ofuscação de Strings
Decodifique progressivamente strings codificadas:
# Script Python para decodificar padrões comuns de ofuscação de JS
import re
import base64
import urllib.parse
def decode_hex_strings(code):
"""Substitui sequências \\xNN por caracteres ASCII"""
def hex_replace(match):
hex_str = match.group(0)
try:
…
Perguntas frequentes
O que é JavaScript ofuscado?
É um código JavaScript que foi intencionalmente modificado para ser difícil de ler e entender por humanos, geralmente para esconder atividades maliciosas.
Por que usar essa ferramenta em vez de um formatador de código normal?
Formatadores normais apenas organizam o código. Essa ferramenta é especializada em reverter técnicas específicas usadas para esconder código malicioso, não apenas para deixá-lo mais legível.
Isso executa o código malicioso?
Não, a ferramenta foi projetada para analisar e desofuscar o código sem executá-lo, garantindo a segurança durante a investigação.
Detalhes
Descrição original do autor
Deobfuscates malicious JavaScript found in phishing pages, web skimmers, and dropper scripts by reversing encoding layers, eval chains, string manipulation, and control-flow obfuscation to reveal the original malicious logic. Use when investigating a phishing page's obfuscated JavaScript, analyzing a Magecart-style web skimmer, or deobfuscating a JavaScript dropper that fetches second-stage malwar
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5613
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC