
Plugin de Burp para descifrar tráfico cifrado con AES sobre la marcha
Plugin de Burpsuite para descifrar tráfico cifrado AES sobre la marcha
NOTA: Actualmente soporta cifrado/descifrado AES/CBC/PKCS5Padding && AES/ECB/PKCS5Padding.
$ git clone https://github.com/Ebryx/AES-Killer/
$ cd AES-Killer
$ ./gradlew clean build
AES_Killer-Parameters.java: Supongamos que la aplicación fuerza el cifrado en algunos parámetros de la solicitud y estos parámetros cambian cada vez según el endpoint/solicitud, entonces todo lo que necesitas hacer es lo siguiente:
- Añadir endpoints añadiendo this.endpoints.add("abc"); en la función registerExtenderCallbacks
- Añadir parámetros que se cifrarán en `String[][] parameters`
- Añadir el resto de parámetros en grant_type o dejar entrada en blanco
y deja que el código haga la magia por ti.
AES_Killer_v3.0.java: Esta variante es genérica y puede manejar cualquier tipo de formato de solicitud, i.e. GET, POST (Form, JSON) con parámetros alternativos en diferentes endpoints
- Clonar el proyecto y reemplazar el BurpExtender.java con el código de AES_Killer_v3.0.java - Modificar los endpoints y parámetros de cada tipo de solicitud en orden como se muestra abajo - Actualizar los parámetros SecretKey e IV y otros métodos requeridos - Compilar el proyecto y listo
AES_Killer_v4.0.java: Esta variante es para cifrado multinivel donde la aplicación cifra algunos parámetros de la solicitud con una clave y luego cifra todo el cuerpo de la solicitud con otra clave
- Clonar el proyecto y reemplazar el BurpExtender.java con el código de AES_Killer_v4.0.java - Modificar los endpoints y parámetros como se muestra abajo - Actualizar las Claves Secretas y otros métodos requeridos - Compilar el proyecto y añadir el archivo jar a tu extender
NOTA: Estas variantes no funcionarán directamente para ti debido a la naturaleza de tu solicitud, por lo que puede ser necesario ajustarlas un poco.
Descargar el archivo jar desde Release y añadirlo en burpsuite
Secret KeyInitialize VectorStart AES Killer
Una vez que iniciamos AES Killer, toma el control de IHttpListener.processHttpMessage de Burp, que es responsable de manejar todo el tráfico saliente y entrante, y AES Killer hace lo siguiente:
ProcessHttpMessage cifra la solicitudProcessHttpMessage descifra la respuesta primero antes de mostrárnoslaAsí que solo obtendremos la Respuesta en Texto Plano y podemos jugar con la solicitud en Texto Plano.
También podemos cifrar y descifrar cadenas manualmente usando AES Killer. Tomemos una cadena cifrada de la solicitud TYROd49FWJjYBfv02oiUzwRQgxWMWiw4W3oCqvNf8h3bnb7X0bobypFzMt797CYU y descifrémosla usando AES Killer. De igual manera, podemos realizar el cifrado también.
Descargar la App de Demostración desde aquí