tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Nota importante:

image

dl es una funci贸n de PHP que se puede usar para cargar extensiones de PHP. Si la funci贸n no est谩 deshabilitada, podr铆a ser abusada para eludir disable_functions y ejecutar comandos arbitrarios.
Sin embargo, tiene algunas limitaciones estrictas:

  • La funci贸n dl debe estar presente en el entorno y no deshabilitada
  • La extensi贸n de PHP debe estar compilada con la misma versi贸n principal (versi贸n de API de PHP) que est谩 utilizando el servidor (puedes ver esta informaci贸n en la salida de phpinfo)
  • La extensi贸n de PHP debe estar ubicada en el directorio que est谩 definido por la directiva extension_dir (puedes verlo en la salida de phpinfo). Es muy improbable que un atacante que intente abusar del servidor tenga acceso de escritura sobre este directorio, por lo que este requisito probablemente te impedir谩 abusar de esta t茅cnica).

Si cumples con estos requisitos, contin煤a leyendo la publicaci贸n https://antichat.com/threads/70763/ para aprender c贸mo eludir disable_functions. Aqu铆 hay un resumen:

La funci贸n dl se utiliza para cargar extensiones de PHP din谩micamente durante la ejecuci贸n del script. Las extensiones de PHP, t铆picamente escritas en C/C++, mejoran la funcionalidad de PHP. El atacante, al notar que la funci贸n dl no est谩 deshabilitada, decide crear una extensi贸n de PHP personalizada para ejecutar comandos del sistema.

Pasos Tomados por el Atacante:

  1. Identificaci贸n de la Versi贸n de PHP:
  • El atacante determina la versi贸n de PHP usando un script (<?php echo 'PHP Version is '.PHP_VERSION; ?>).
  1. Adquisici贸n del C贸digo Fuente de PHP:
  1. Configuraci贸n Local de PHP:
  • Extrae e instala la versi贸n espec铆fica de PHP en su sistema.
  1. Creaci贸n de la Extensi贸n:

Notas para Compilar la Extensi贸n Personalizada:

  1. ZEND_MODULE_API_NO:
  • El ZEND_MODULE_API_NO en bypass.c debe coincidir con la versi贸n de construcci贸n de la extensi贸n Zend actual, recuperable con:
bash
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
  1. Modificaci贸n de PHP_FUNCTION:
  • Para versiones recientes de PHP (5, 7, 8), PHP_FUNCTION(bypass_exec) puede necesitar ajustes. El fragmento de c贸digo proporcionado detalla esta modificaci贸n.

Archivos de la Extensi贸n Personalizada:

  • bypass.c:
  • Implementa la funcionalidad principal de la extensi贸n personalizada.
  • php_bypass.h:
  • Archivo de encabezado, definiendo las propiedades de la extensi贸n.
  • config.m4:
  • Usado por phpize para configurar el entorno de construcci贸n para la extensi贸n personalizada.

Construcci贸n de la Extensi贸n:

  1. Comandos de Compilaci贸n:
  • Usa phpize, ./configure y make para compilar la extensi贸n.
  • El resultado bypass.so se encuentra en el subdirectorio de m贸dulos.
  1. Limpieza:
  • Ejecuta make clean y phpize --clean despu茅s de la compilaci贸n.

Carga y Ejecuci贸n en el Host V铆ctima:

  1. Compatibilidad de Versiones:
  • Asegura que las versiones de API de PHP coincidan entre los sistemas del atacante y de la v铆ctima.
  1. Carga de la Extensi贸n:
  • Utiliza la funci贸n dl, eludiendo restricciones mediante el uso de rutas relativas o un script para automatizar el proceso.
  1. Ejecuci贸n del Script:
  • El atacante sube bypass.so y un script PHP al servidor de la v铆ctima.
  • El script utiliza la funci贸n dl_local para cargar din谩micamente bypass.so y luego llama a bypass_exec con un comando pasado a trav茅s del par谩metro de consulta cmd.

Ejecuci贸n de Comandos:

  • El atacante ahora puede ejecutar comandos accediendo a: http://www.example.com/script.php?cmd=<command>

Este recorrido detallado describe el proceso de creaci贸n y despliegue de una extensi贸n de PHP para ejecutar comandos del sistema, explotando la funci贸n dl, que idealmente deber铆a estar deshabilitada para prevenir tales brechas de seguridad.

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks