Todos os posts tagados javascript

DOMScan - Examinar e analisar DOM

DOMScan - é um utilitário interessante que permite capturar em tempo real objectos DOM.
Além de ter algumas regras pré definidas para examinar DOM, esta pequena aplicação permite fazer um trace a variáveis JavaScript.

Encontrar falhas em DOM ficou mais fácil.

Bónus: Para acompanhar, deixo também a referência ao plugin para Firefox DOMTracer, também da mesma empresa do DOMScan - BlueInfy.

Como analisar documentos PDF por conteúdos maliciosos

Nos últimos meses, muito se tem falado nos perigos em abrir documentos PDF de origem desconhecida (e não só) e como o cibercrime tem utilizado este método para propagar malware em empresas e governos.

O meu objectivo neste artigo é, para além de alimentar a curiosidade de investigação, proporcionar um meio de identificar possíveis conteúdos maliciosos em documentos PDF que muitos serviços online não conseguem.

Ferramentas utilizadas:

Todas as ferramentas acima mencionadas são opensource e disponíveis gratuitamente por Didier Stevens.

Requisitos:

Como actualmente não tenho disponível um PDF infectado com código malicioso, decidi recorrer à ferramenta make-pdf-javascript.py para criar um documento PDF com código Javascript.

Neste momento temos um documento PDF com um Javascript inofensivo, que apenas mostra uma caixa de alerta.

De referir que o software utilizado para abrir o PDF é a versão mais recente do Acrobat Reader - 9.3.2 PT.

Podem também criar Javascript personalizado com o mesmo programa.


De seguida, vamos analisar e identificar algumas palavra chave importantes numa análise e validação de um documento PDF.
Para tal, vamos utilizar o pdfid.py.

Nota: Dado que esta ferramenta pesquisa por palavras chave no código, pode gerar alguns falsos positivos.

Praticamente todos os PDFs contêm as 7 primeiras palavras chave:

  • obj
  • endobj
  • stream
  • endstream
  • xref
  • trailer
  • startxref

No entanto, vou entrar em pormenor nas seguintes palavras chave porque podem ser necessárias a uma análise de malware num documento PDF.

  • /Page - Indica o número de páginas do documento PDF.
  • /Encrypt - Indica que o documento PDF está protegido com palavra passe ou DRM.
  • /ObjStm - Conta o número de fluxo de objectos. Esse fluxo de objectos pode conter objectos específicos para ofuscar outros objectos indesejados.
  • /JS e /Javascript - O documento PDF contém código Javascript ou importa um ficheiro externo .JS. Caso encontre algum PDF com esta palavra chave é provável que encontre código malicioso.
  • /AA e /OpenAction - Indica que é executada uma acção quando é aberta uma página ou documento PDF. Tenha em conta que se esta palavra chave for encontrada no documento PDF em conjunto com Javascript, podemos considerar que é um documento PDF altamente suspeito.
  • /AcroForm - Número de objectos AcroForm encontrados no documento PDF. Estes objectos podem ser caixas de texto ou selecção com Javascript. Convém analisar.
  • /JBIG2Decode - Indica que foi utilizado a compressão JBIG2 no documento PDF. Não é sinónimo de código malicioso no entanto é conveniente investigar.
  • /RichMedia - existência de código Flash embutido.
  • /Launch - Conta o número de acções executadas.

Voltando ao meu exemplo. Podemos reparar que usando o pdfid.py detectámos a existência da palavra chave Javascript. Vamos analisar e identificar os elementos fundamentais do documento PDF usando outro utilitário - o pdf-parser.py.

Dado que no exemplo apenas detectámos Javascript, vamos pesquisar por essa palavra chave.

Como podemos ver na imagem, o código Javascript apenas executa um alerta.
Para poderem comparar com uma ferramenta de análise online, Wepawet, podem consultar aqui o resultado.
Caso o exemplo tivesse o código Javascript ofuscado, esta ferramenta online (tal como outras) não iria detectar um código possivelmente malicioso. O próprio site alerta a essa situação.

Em resumo, devemos usar o pdf-parser.py como complemento a uma identificação de actividade suspeita num documento PDF encontrado pelo pdfid.py.

Espero futuramente colocar um artigo mais aprofundado sobre documentos PDFs com código ofuscado e com ligações a sites remotos para descarregar malware para o sistema da vítima.

Para os mais impacientes, deixo alguns artigos interessantes sobre o assunto:

Espero ter contribuído com este artigo de iniciação a análise de documentos PDF e agradeço qualquer feedback com algumas experiências reais com documentos PDF suspeitos.

Javascript ofuscado em temas WordPress

Já que estou numa de publicar artigos sobre malware e WordPress, encontrei um artigo bastante completo de uma análise de malware em blogues WordPress.

O autor descreve a modificação de ficheiros Javascript conhecidos (mootools) para versões com código malicioso. Esses .js são fornecidos juntamente quando o utilizador descarrega o tema para WordPress.

Tenham sempre cuidado com os temas ou extensões que descarregam e verifiquem sempre o código fonte.

Aconselho a extensão Exploit Scanner porque automatiza muitas tarefas de detecção de código potencialmente perigoso.

Inserir Javascript em nomes DNS

Artigo sobre um novo vector de cross-site scripting que possibilita a adição de Javascript em nomes DNS.
Leitura completa aqui.

XSS mostra passwords gravadas no gestor do Firefox

No website do RSnake ficou demonstrado que não devemos gravar autenticações nos gestores de passwords dos browsers.
O exemplo [aqui] funcionou no meu Firefox 3.6 e parece que pode ser usado para todos os browsers disponíveis no mercado.

O que se pode fazer com apenas 2 linhas de código Javascript…

Como já alguém dizia, don’t trust no one.