Desofuscar PowerShell

Si bien analizar un malware escrito en PowerShell no es una tarea muy complicada, uno de los problemas más comunes al momento realizar ingeniería inversa a este lenguaje de programación interpretado, ocurre cuando su código viene ofuscado, técnica la cual tiene como finalidad hacer el código menos legible para evitar su análisis.

A través de distintos métodos como el renombrado de variables y funciones, codificación de strings, entre otras técnicas, permiten dificultar el análisis estático del script.

Es por ello que frente a esta problemática común, he ideado un script en Python el cual tiene como finalidad lidiar con este tipo de técnicas por medio de las siguientes acciones:

  • Decodifica strings ASCII y Unicode codificadas en base64.
  • Renombra las variables según su entropía y tipo.
  • Renombra las funciones.
Demostración

https://github.com/victorgutierrez92/PS1Decoder

PS1Decoder.py
Conclusión

Como conclusión, fue posible desarrollar un script en Python capaz de hacer más legible los scripts ofuscados. Si bien el script presentado en esta entrada no es una solución definitiva, de cierto modo sienta las bases para la elaboración de scripts que faciliten el proceso de ingeniería inversa en lenguajes de programación interpretado.

Compartir

Agregar un comentario