POWERSHELL OBFUSCATION

Primera Parte

3xploit
4 min readApr 18, 2022

Durante el compromiso de Red Team es muy importante tener en cuenta entornos donde encontraremos soluciones de defensa activas, como controles de seguridad y Avs activos los cuales complican un vector de ataque para realizar una operacion en concreto.

Que es un red team?

Un Red Team es un ejercicio, el cual consiste en simular un ataque dirigido a una organización, lo que se traduce que un grupo de personas internas o externas a la empresa, comprueban la posibilidad de tener acceso a los sistemas, comprometerlos y el impacto que esto podría tener en el negocio.

Fases de un Red Team

  • Reconocimiento Inical
  • Compromiso Inicial
  • Establecer punto de apoyo
  • Escalacion de Privilegios
  • Reconocimiento interno
  • Mantener Persistencia
  • Movimiento Lateral
  • Mision Completa

Enfoquemonos en un ambiente De Active Directory(AD) donde nos encontremos en escenario con solucion de Defensa activa que nos complica un poco las operaciones en fases de reconocimineto interno,Compromiso inicial,mantener persistencia debido a la deteccion de scripts y herramientas de nuestro arsenal las cuales la gran mayoria son detectadas actualmente por los antivirus tales como:

https://github.com/61106960/adPEAS

Entre muchos repositorios que contienen una gran utilidad de scripts y binarios al momento de realizar una operacion ya sea para facilitar un contexto de enumeracion,obtener alguna shell reverse o incluso el uso de mimikatz.

el objetivo de este breve post es incentivar a los colegas de Red Team a enfocar un poco de tiempo en la parte de desarrollo ofensivo para tener un poco de skills al momento de evaluar un entorno con soluciones de defensa en esta ocasion sere puntual con scritps de powershell entonces sin mas preambulo vamos a la practica.

iniciaremos creando un proyecto en c# con interfaz grafica para facilitar su uso

Aplicacion de Windows Form NET FRAMEWORK
Configuracion inicial del proyecto

Posteriormente se creara nuestra solucion de proyecto

en la parte izquierda del IDE encontraremos una opcion llamada cuadro de herramientas el cual nos provee un listado de items segun el enfoque del proyecto en este caso seleccionaremos 4 Botones,2 Textbox ,1 RichTextbox, 1 ComboBox

demo esquema basico
avance skin form terminado

despues de tener el esquema basico de nuestra interfaz procedemos agregar codigo para funcion y boton correspondiente segun la estructura de nuestra herramienta

button 1

la funcionalidad de esta linea de codigo asignada al boton 1 es generar un cuadro de dialogo para seleccionar graficamente la ubicacion del script powershell en este caso el cual vamos a realizar un proceso de encryptacion y obfuscacion.

Generamos una funcion la cual nos permita crear un Password aleatoriamente invocado desde el boton key y pueda ser reflejado en el TextBox2

botton key

asignacion de la funcion CreatePassword con argumento de un length Int (entero) como parametro para indicar la longitud de caracteres de la contraseña la cual vamos a generar para nuestro cifrado

dentro del metodo del botton copy escribiremos una linea de codigo la cual nos permita seleccionar todo lo que se genere en el RichTextBox como resultado para obtenerlo en el clipBoard

Botton Copy

acontinuacion usaremos la idea de generar caracteres aleatorios para generar variables dinamicas en cada cifrado dando asi una caracteristica al codigo estatico de ser autonomo en las plantillas para la ejecucion de scritps

Generador de variables dinamicas

Por ahora ha sido todo nos vemos en una segunda parte para continuar con el desarrollo del obfuscador con capacidad de evasion :)

--

--

3xploit

Ethical Hacker | Pentester Cloud | Red Team | Offensive Developer | Adversary Simulation | Golang Developer