Pular para o conteúdo
Skillpedia
Código em geral35 mil · #5613

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/deobfuscating-javascript-malware/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/deobfuscating-javascript-malware/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-malware

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/deobfuscating-javascript-malware/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.

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 jsbeautifier para 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

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5613
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