Rompiendo la privacidad utilizando la memoria RAM

En el siguiente texto vengo a romper una de las «normas» que desde siempre se han tomado como correctas en el término de la informática.

¿Que se SUPONE que es la memoria RAM?

Cuando hablamos de memoria RAM, desde la informática básica se dice de ella que es una memoria volátil, que al apagar el equipo toda la información almacenada en ella es borrada completamente. Esto no es 100% cierto, porque realmente, se ha desmotrado con estudios recientes que, los datos en la memoria RAM permanecen cierto tiempo antes de que sean borrados de dicha memoria. Alredededor de unos 10 minutos quedan los datos en la memoria RAM.

¿Que ocurre si conseguimos leer estos datos?

Esto seria un gran problema para nosotros (si somos la victima en este caso) ya qué, la memoria RAM no va encriptada y por esta pasan TODOS los datos que nosotros introducimos contraseñas y demás.

Ya pero…. ¿Si la información solo se mantiene unos 10 minutos en dicha memoria? En este tiempo no podemos hacer nada.

Bien, en este punto vamos a basarnos de nuevo en las investigaciones y pruebas que se han realizado. Dichos estudios afirman que si enfriamos la memoria RAM en cuestión a unos -50º, podemos conseguir alargar la vida de estos datos en dicha memoria.


¿Como conseguimos esto?

Utilizando sprays de aire durante varios segundos o minutos pueden ayudarnos a conseguir nuestro objetivo (Dejando la memoria alrededor de (-50º). Podemos alargar la vida de estos datos con este método unos 30 minutos apróximadamente (suficiente para hacer el volcado de una memoria de 2/4GB. En dichos estudios se ha llegado a alargar la vida de los datos más de una hora, con nitrógeno liquido, alcanzado la memoria una temperatura de (-196º).

Sprays de aire: utilizados para eliminar por ejemplo, el polvo del interior de los ordenadores.

¿Como volcamos el contenido de la RAM al disco?

Con Linux como no. Como todo en linux es un fichero, la memoria RAM en este caso es /dev/mem y utilizando dd podemos volcar los datos de esta a nuestro disco duro:

dd if=/dev/mem of=/root/memory.dd

Empezara la lectura sector por sector de la memoria y se irá haciendo la copia a nuestro disco duro en el directorio /root/ con nombre memory.dd.

(Para conseguir mayor información y evitar la sobreescritura de la memoria RAM, podriamos utilizar los siguientes metodos:

– Arrancar un sistema gnu/linux desde PXE (mediante RED), y arrancar dd desde este.

– Iniciar un pequeño entorno gnu/linux desde una memoria usb. (Sin utilizar RAMDISK).

Atención: Para esto no podriamos arrancar desde un live cd, ya que este, para no escribir en nuestro disco duro, lo que hace es escribir en la memoria RAM y esto haría que perdieramos los datos que tanto nos interesan.

Trabajando con los datos ya volcados en el disco.

Una vez hemos conseguido volcar los datos con cualquiera de los metodos anteriormente citados, vamos a proceder a leer los datos..

Leyendo datos..

En Linux podemos transformar a strings datos binarios con el comando ‘strings’, se utilizaria de la siguiente forma:

strings /root/memory.dd

Un extracto de lo que seria la visualizacion de estos datos con strings:

Con la ayuda de ‘strings’, pipes (|) y grep podemos buscar contenido más especifico.

Tambien podemos optar por visualizar este contenido con hexdump para la visualización de contenido hexádecimal:

Un ejemplo generico de la representación de hexdump:

Con este proceso, podemos obtener información muy ámplia, passwords y demás información confidencial que se nos representara con texto plano (strings) o en código hexádecimal (hexdump).

Una tarea muy valiosa si estamos atacando un pc de forma fisica y no podemos por ninguno de los medios acceder al sistema operativo.

Si tienen cualquier duda al respecto no duden en comentar.

Saludos.

Att.ZaPa

Share

Ataques XSS. ¿Que es? ¿Para que sirve?

Hola.

Voy a publicar este documento para que puedan comprender los 2 articulos posteriores.

– XSS en la página web de la universidad de Murcia (um.es)
– XSS en la página web de la universidad de elche (uhm.es)

Este árticulo va dirigido a la gente que…..

No conoce XSS.
Conoce XSS y creen que no sirve para nada.

A esas 2 tipos de personas les digo….Sigan leyendo…

¿Que es XSS?

El término XSS viene heredado de CSS, a este, se le cambió la C por una X para referirse a este tipo de ataques, inyección de código.

Tipos de ataque XSS.

– Persistente
– Reflejado.

Persistente, como bien da entender el término es la inyección que queda en un sitio, como puede ser, una inyección a traves de un libro de visitas de una página web. Esa inyección quedará hay para cualquier usuario que entre a ese libro de visitas. [[ Petición POST. ]]

Reflejado: Este ataque solo quedará reflejado en la URL, no quedaran grabados los cambios en la página web… [[ Petición GET]]



Se preguntaran…¿El reflejado entonces para que sirve, si no queda grabado? Mayoritariamente se utiliza para utilizar sesiones (cookies)..Sigan leyendo..

¿Que tipos de inyección podemos conseguir?

– Inyección de código HTML
– Inyección de código Javascript / Ajax ( el más peligroso )

¿Que permite la inyeccion de código javascript?

1 – Mostrar en ese momento lo que se quiera a cualquier visitante que visite nuestro recurso.

– Atacar a otras páginas web desde la web vulnerable a XSS.

– Infección de máquinas clientes al entrar a dicho en lace.

– Robo de sesiones. (Para mí el más importante).

– Y un largo etc que no termina mientras tengamos suficiente imaginación.

¿ Que es una sesión ?

Una sesión es un fichero que se almacena en la carpeta /tmp/ del servidor con nombre aleatorio que asigna el servidor a una sesión establecida.
Por ejemplo: Si entramos a www.ejemplo.com/admin.php y nos logeamos como administrador, esta, al utilizar cookies, para que no tener que introducir una y otra vez los datos cada vez accedemos hay, recuerda estos datos introducidos. Nos crea una sesión con nombre

¿Como recuerda estos datos?

Con las sesiones. Una vez introducidos los datos correctamente y logeados como administrador, el servidor establece una combinación de numeros y letras aleatorias, la cual, hace referencia a esa sesión. Si, a la sesión de administrador. (imaginemos que es 123456789aabcc)

¿Que significa esto?

Que si conseguimos obtener ese numero de sesión (123456789aabcc), tendremos acceso al panel de administración, sin introducir ni usuario ni password…

Esto no seria por tiempo ilimitado, tiene un tiempo limite y depende de cuanto tiempo se haya establecido como limite.
Normalmente son 3600s.

¿Como obtenemos el numero de sesión?

Con la ayuda de javascript. Sabemos o deberiamos saber que cada sitio solo puede acceder a los valores de cookie de ese sitio, es decir, www.sitio1.com, no puede mostrar los valores de la cookie de www.sitio2.com.

Entonces, si encontramos la forma de inyectar código javascript en www.sitio1.com podremos obtener la sesión sin problemas.

Esto se logra pasando el valor de document.cookie (cookie actual) por GET a un script php nuestro que tengamos alojado en otro servidor.
Este script, al leer el valor por GET de la cookie, la podrá almacenar en un fichero de texto, base de datos o donde se prefiera.
También es preferible mandar el contenido de la cookie por email o incluso algún aviso por sms si cabe la posibilidad, ya que, como he comentado arriba, la sesión tiene un tiempo limite. Estará activa mientras no haya alcanzando el limite de segundos o el usuario no haya pulsado expresamente el boton salir del interior de la aplicación web. (Por ejemplo de un panel de administración).

(Si cierra el navegador tal cual, sin pulsar en SALIR, no se eliminará la sesión, con lo que, quedará activa hasta X segundos).

Espero haberme explicado correctamente.
Nos vemos en los siguientes árticulos.
Saludos.

ZaPa.

Share

[Gnome] Gnome con soporte MP3.

Hola.

Esta seria la continuación de la anterior entrada, con algunos percances que he tenido con un equipo gentoo, con la visualización de imagenes (jpeg) en gnome anteriormente, y ahora, vamos a solucionar tambien para la reproducción de ficheros de audio comprimidos con diversos formatos (OGG,MP3….).

1 .

echo «media-plugins/gst-plugins-meta X alsa dvd ffmpeg lame mad mpeg ogg theora v4l vorbis» >> /etc/portage/package.use

2 .

emerge media-plugins/gst-plugins-meta

3.

A escuchar música se ha dicho 😀

Como mencioné en mi anterior entrada, colocar las USE flags necesarias como globales nos ahorraran bastantes problemas en un futuro. Antes de instalar un sistema gentoo evalua que vas a hacer con este y comprueba la correcta insercción de las USES necesarias.

Saludos.

Share

[Gentoo & Gnome] Visualización de imagenes

Hola a todo el mundo.

De nuevo vengo a publicar una receta que seguro que alguien le será útil. Ayer tuvé que preparar un servidor de ficheros que se utilizaria tambien para las necesidades básicas de un usuario domestico.
Estas necesidades suelen ser.. navegar, escuchar música, algo de tratamiento/visualización de imágenes y algúna que otra grabación de cd-roms.

El trabajo estaba casi finalizado (gnome instalado y funcionando) y cumplia casi todos los objetivos citados arriba.. pero faltaba algo!! no visualizaba imagenes jpg guardadas localmente!!.

Me llevo algo de tiempo averiguar de donde provenia el problema hasta que recientemente lo pudé solucionar.

La solución es sencilla (como en todos los problemas de este tipo, suelen ser problemas que molestan bastante y las soluciones bastante fáciles de implementar).

El problema era la falta de la USE jpg en el fichero make.conf de este gentoo.

Lo que hice fué, añadir jpeg al fichero make.conf (quedaria asi):

USE=»cdr win32codecs X gtk gnome -qt3 -qt4 -kde java nsplugin hal dvd alsa cdr dvd mp3 dbus java libnotify system vorbis xvid jpeg imagemagick»

Una vez realizado este paso, debemos compilar de nuevo el paquete gtk+ con la nueva USE:

emerge –update –newuse x11-libs/gdk-pixbuf

Con esto, se ha compilado de nuevo el paquete gtk-pixbuf (librerias para cargar imagenes de GTK) con la nueva USE flag.

Una vez realizado estos 2 sencillos pasos ya podremos visualizar correctamente imagenes en nuestro entorno gnome.

Cuando realicen una instalación nueva de gentoo, presten especial atención a las USE flags globales (make.conf) y añadan las esenciales para no tener problemas en algunas de las tareas cotidianas de un sistema.

Saludos.

Share

[SIP] Sip-retransmit.txt Spanish. Sip-retransmit en español.

Hola.

Hace unos dias estube pegando un repaso al documento sip-retransmit.txt y solamente lo encontre en ingles, lo leí y lo traducí personalmente, espero que alguien le pueda ayudar.

——————————————————————–
¿Que es el problema de la retransmision SIP? (Sip retransmits)
——————————————————————————-

Algunas veces aparecen mensajes en la consola de asterisk como los siguientes:

– «retrans_pkt» Hanging up call XX77yy – no reply to our critical packet.»
– «retrans_pkt»: Cancelling retransmit of OPTIONs»

El protocolo SIP se basa en peticiones y respuestas a esas peticiones. Ambas partes envian y reciben respuestas a las solicitudes. Algunas de estas partes son esenciales para una comunicación. En una red TCP/IP pueden ocurrir muchas cosas con los paquetes IP. Firewalls, dispositivos NAT (Routers), Session Border controllers y Proxys SIP, pueden provocar una mala señalización y afectar a la llamada.

SIP Establecer Llamada – INVITE – 200 OK – ACK

1 – Invite
2 – 200 OK
3 – ACK

Para iniciar una llamada SIP, se envia una petición INVITE.
El software sip con el que iniciamos la llamada envia una petición invite (al usuario que llama) y espera una respuesta.
Cuando la petición INVITE fué satisfactoria (el usuario se encuentra disponible y demás)el usuario»que es llamado» envia una petición ‘ACK’. Para informar al otro dispositivo que envió la petición INVITE hacia él, que la recibió correctamente.
Se trata de un acuerdo a 3 vias que se repite mientras una llamada transcurre para asegurarse que todos los dispositivos «el usuario que llama» y el «que es llamado» se encuentran encendidos y funcionando.

– La primera respuesta que esperamos a menudo es un ‘100 Trying’.
Este mensaje significa que algún tipo de servidor SIP ha recibido nuestra solicitud
y se asegura que vamos a obtener una respuesta.

Podria ser el otro extremo (el usuario al que llamamos) o un Proxy SIP o SBC que se encarga de las solicitud en nuestro nombre.

– Despues de eso, a menudo se recibe una respuesta de clase 18x,como «Ring 180″ o » 183 Progreso de sesión».
Esto significa que nuestra solicitud ha alcanzado al menos un extremo y alerta al otro dispositivo que ahi una llamada que viene.

– Por último (si todo a ido bien), la otra respuesta que recibimos del otro lado es un «200 OK». Esto es una respuesta positiva. Este mensaje contiene la dirección directa del dispositivo que nos da la respuesta 200 OK.
Recuerde podria haber varios telefonos sonando. La direccion del telefono es especificada en el campo Contact de la Cabecera SIP.

– Para confirmar que podemos «alcanzar» al telefono que respondió nuestra llamada y responder al 200 OK del otro telefono, ahora enviamos un «ACK’ a la dirección de Contacto de la cabecera SIP.
Si este ACK no es alcanzado por el otro telefono (al que llamamos), la llamada fallaria.
Si no podemos enviar un ACK, no podemos enviar nada ni un «colgado limpio».

Cuando una llamada falla la señalización no tiene sentido dejarla activa.

– Si recibimos una respuesta de error a nuestro INVITE, como «Busy» o «Rejected», enviamos un «ACK» a la dirección que enviamos anteriormente el INVITE, para confirmar su respuesta.

Para asegurar el orden de las llamadas, un cliente SIP retransmite mensajes si no se demora demasiado entre la solicitud y respuesta esperada. Podemos retransmitir varias veces durante un tiempo esperando una respuesta. Nosotros transmitidos varias veces esperando un ACK para INVITE. Si obtenemos respuestas múltiples, respondemos con ACK a cada una de ellas para hacerle saber que la respuesta nos llego correctamente.

Si no recibimos un ACK (confirmación del otro lado) a nuestro INVITE, incluso despues de reenviar nuestras peticiones al otro lado, la llamada finalizará con los mensajes citados más arribas.

Otras peticiones SIP —
————————
Otras peticiones SIP son solamente a 2 vías. Petición — Respuesta.
No hay confirmación de recibir el tráfico (ACK).

En asterisk marcamos estas como CRITICAL.

El proceso de calificación —– OPCIONES
———————————–

Si t uañades a tu sip.conf ‘qualify=yes’ para un dispositivo, Asterisk manda opciónes de respuesta cada minuto para el dispositivo y chequea si este responde.

Cada solicitud una vez añadida esta opción a nuestro sip.conf, se envia un numero de veces (para comprender la posible perdida de paquetes) y si no obtenemos respuesta, el dispositivo se considera inalcanzable. A partir de ese momento se envia una nueva solicitud cada decimo de segundo.

¿Por qué sucede esto?
—————————–

Por alguna razón la señalización no funciona como se espera entre el servidor Asterisk y el otro dispositivo. Puede haber muchas razones por qué sucede esto:

– Un dispositivo NAT enmedio de alguna de las 2 rutas

– Un dispositivo NAT mal configurado y no deja pasar mensajes SIP

– Un Firewall bloqueando los mensajes SIP o los redirecciona incorrectamente

– Un middlebox SIP (SBC), que reescribe la cabecera de contacto incorrectamente.

– Un proxy SIP mal configurado que se olvida de añadir cabecera de registro de ruta para asegurarse de la correcta señaliación.

– Perdida de paquetes. IP y UDP son medios de transporte poco fiable.
Si pierdes demasiados paquetes muchos paquetes de retransmisión serán enviados
y la comunicación será imposible. Si esto sucede con la señalización los medios de comunicación serán inservibles de todos modos.

¿Que puedo hacer?
—————————————

Activar la depuración SIP en asterisk (sip set debug on), tratar de comprender la señaliacion y ver si se pierden las respuestas a INVITE o si pierdes los ACK.
Cuando usted sabe lo que sucede, tu has tomado el primer paso para localizar el problema. Vea la lista de arriba e investigue en su red.

Para problemas de NAT o Firewall, ahi varios documentos que le ayudarán. Empiece por leer el fichero ‘sip.conf.sample’ este es parte de Asterisk distribution.

La señalización estándar SIP, incluyendo las retransmisions y contadores de tiempos para ellos. Esta bien documentando en el IETF RFC 3261

Buena suerte para solventar tus problemas SIP.

Saludos.

Share

Empathy no conecta a MSN.

Muchos de vosotros quizás no conozcais clientes de la red de msn messenger más lejos que aMSN…

aMSN en realidad funciona muy bien, pero no tanto cuando tienes una lista de contactos bastante extensa. El consumo de cpu sube por las nuves y si se trata de un ordenador portatil (funcionando con bateria) esto conlleva a que la bateria no durará mucho tiempo.

Mi uso con msn messenger es más bien básico, solamente escribir, algun emoticono que otro, y poco más. He estado buscando alternativas aMSN y he encontrado Empathy.

Empathy es un proyecto para crear un cliente de mensajeria maduro y funcional y lo estan consiguiendo.

Asi que, quisé instalarlo con mi gentoo, y lo hicé simplemente con un:

emerge empathy

Una vez terminada la compilación abrí empathy y cree mi cuenta. Pero una vez estaba todo configurado, que lástima empathy no conectaba..

Aparecia el siguiente mensaje: ` no se especifico ninguna razon `

La solución la encontré indagando por internet y es sencilla, solamente debemos cambiar una linea.

Si utilizas gentoo haz lo siguiente:

gedit /usr/lib/python2.6/site-packages/papyon/service/description/SingleSignOn/RequestMultipleSecurityTokens.py

si utilizas ubuntu lo siguiente:

sudo gedit /usr/share/pyshared/papyon/service/description/SingleSignOn/RequestMultipleSecurityToken.py

y cambiamos la linea:

1. CONTACTS = («contacts.msn.com», «?fs=1&id=24000&kv=7&rn=93S9SWWw&tw=0&ver=2.1.6000.1»)

por esta otra:

CONTACTS = («contacts.msn.com», «MBI»)

Cerramos empathy completamente, introducimos en consola:

killall empathy

Ahora ya podremos conectarnos sin problemas a nuestra cuenta de msn messenger.

Disfruten de empathy!

Un saludo.

Fuentes: http://www.isnull.com.ar/2010/11/solved-ubuntu-1010-empathy-not.html

Share

Intento Hack Asterisk. Fuerza Bruta contra Asterisk

Hoy me encontraba navegando tranquilamente y monitorizando todos los servidores propios, cuando de repente en la consola de asterisk me aparece lo siguiente:

[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5465″<sip:5465@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5466″<sip:5466@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5467″<sip:5467@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5468″<sip:5468@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»44114411″<sip:44114411@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5469″<sip:5469@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5470″<sip:5470@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»44124412″<sip:44124412@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5471″<sip:5471@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5472″<sip:5472@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5473″<sip:5473@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»44134413″<sip:44134413@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5474″<sip:5474@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5475″<sip:5475@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5476″<sip:5476@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»44144414″<sip:44144414@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5477″<sip:5477@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5478″<sip:5478@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5479″<sip:5479@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5480″<sip:5480@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5481″<sip:5481@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5482″<sip:5482@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5483″<sip:5483@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5484″<sip:5484@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5485″<sip:5485@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5486″<sip:5486@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5487″<sip:5487@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5488″<sip:5488@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5489″<sip:5489@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5490″<sip:5490@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5491″<sip:5491@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5492″<sip:5492@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5493″<sip:5493@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5494″<sip:5494@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found
[Feb 26 00:54:13] NOTICE[8658]: chan_sip.c:21821 handle_request_register: Registration from ‘»5495″<sip:5495@81.56.122.35>’ failed for ‘139.153.12.78’ – No matching peer found

Es obvio que estan atacando a nuestro asterisk con un ataque Brute Force (Fuerza bruta).
Seguro que no es ningúna persona fisica si no cualquier máquina comprometida con software instalado para tal fin
(Encontrar máquinas con asterisk y realizár ataques de fuerza bruta).
Con la cual pueden intentar millones de combinaciones para autentificarse en nuestro Asterisk.

La ip que generaba esto era la: 139.153.12.78 y según he podido averiguar es de una universidad de UK la cual tiene asignado un rango de ips que es el siguiente:

139.153.0.0/16

La solución fué sencilla, para este tema, Iptables como no 😛

iptables -t filter -A INPUT -s 139.153.0.0/16 -j DROP

Todo el tráfico que venga de ese rango, lo dropeará.

Ya he informado a la gente que administra dicha red y se han puesto manos a la obra para solventar el problema.

Saludos.

Share

Asterisk. Audio en un solo sentido llamadas entrantes. Incoming Calls

Hola.

Sigo con mi implementación de asterisk en gentoo y vengo a contar como solucionar un problemita con este…

Actualmente estoy saliendo a la Red Telefonica Básica (RTB), red de telefonia de toda la vida, por un proveedor voip.
Para enrutar llamadas por este, no hubo más problemas. Registrar nuestro asterisk con el proveedor, añadir un canal para este en sip.conf y crear un dialplan para sacar llamadas por ahi y FIN.

El problema no era ese, el problema era al intentar recibir llamadas. Tengo varios numeros DID asignados a varias extensiones de mi asterisk con lo cual es fundamental que puedan entrar llamadas, y estas lo hacian, pero solo tenia audio en 1 sentido (de dentro hacia fuera), el usuario que me llamaba yo no lo podia escuchar, el a mi perfectamente…

*Problema de NAT no era, ya que estaba trabajando fuera de un entorno con NAT
**por lo menos por mi parte, parece ser que por la del operador de números DID no

Lo primero que hice en este caso fué entrar a la consola de asterik:

asterisk -r

Y hacer un debug del protocolo RTP para ver que es lo que estaba pasando con los paquetes….

rtp set debug on

He aqui el resultado:

Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014191, ts 392580221, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026450, ts 392580216, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014192, ts 392580381, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026451, ts 392580376, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014193, ts 392580541, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026452, ts 392580536, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014194, ts 392580701, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026453, ts 392580696, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014195, ts 392580861, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026454, ts 392580856, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014196, ts 392581021, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026455, ts 392581016, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014197, ts 392581181, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026456, ts 392581176, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014198, ts 392581341, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026457, ts 392581336, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014199, ts 392581501, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026458, ts 392581496, len 000160)
Got  RTP packet from    192.168.10.15:16406 (type 08, seq 014200, ts 392581661, len 000160)
Sent RTP packet to      46.19.209.78:17962 (type 08, seq 026459, ts 392581656, len 000160)

Me pusé a leer de cabo a rabo el fichero sip.conf que trae asterisk de ejemplo y me encuentro con:

;directmedia=yes                ; Asterisk by default tries to redirect the
; RTP media stream to go directly from
; the caller to the callee.  Some devices do not
; support this (especially if one of them is behind a NAT).
; The default setting is YES. If you have all clients
; behind a NAT, or for some other reason want Asterisk to
; stay in the audio path, you may want to turn this off.

Nos dice que asterisk querrá establecer una conexión DIRECTA con el usuario que llama y el usuario que contesta a la llamada. Esto no es soportable por algunos dispositivos,especialmente si estan detrás de NAT…….. Esta opción es interesante cuando nos encontramos en un entorno LAN sin dispositivos NAT por enmedio, ya que la comunicación se hará directamente entre los 2 interlocutores. Si hay dispositivos NAT por enmedio es MUY recomendable desactivar dicha opción. (por defecto directmedia esta en YES)

Ahi tenia la respuesta…directmedia estaba en yes por defecto…. fuí al fichero sip.conf y añadí:

[general]
directmedia=off

Reinicio asterisk con:

asterisk -r
core restart now

……..Realizo la llamada desde el exterior, descuelgo el telefono que suena y olalalal!!!!! funcióna el audio en 2 sentidos..
Si ahora hacemos un: debug de rtp observamos lo siguiente….

Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)

Esto es todo por hoy, espero que mis cabezazos contra la pared impidan que otros se los de por esto jeje.

Un saludo.

Share

[Asterisk] No se registran los usuarios SIP

Hola.

Ayer publiqué una receta para instalar asterisk en gentoo de un plumazo, ya que me tope con la instalación de asterisk en un pc gentoo.

Horas más tarde esto se complicó un poco y misteriosamente los clientes SIP no conectaban con asterisk :S :S :S .

Estube haciendo las pruebas con Sjphone en la misma máquina que corria Asterisk pero nada…

Lo primero que hicé fué ver si verdaderamente el daemon de asterisk estaba escuchando en el puerto 5060, que lo pude corroborar enseguida:

netstat -tupl:

4257/asterisk
udp        0      0 *:5060                  *:*

Asterisk si estaba escuchando en el puerto 5060, osea todo estaba correcto… o casi todo..

Empecé un fichero ‘sip.conf‘ y ‘extensions.conf‘ totalmente desde 0 pero tampoco era la solución….

Cuando de repente se me ocurrió teclear »dmesg» para ver los mensajes del sistema y me encuentro con esto:

[   88.492694] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0
[   88.993099] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0
[   89.992296] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0
[   91.992871] nf_ct_sip: dropping packetIN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=449 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1000 DPT=5060 LEN=429 UID=0 GID=0

Nf_sip estaba dropeando paquetes con destino al puerto 5060… Entonces supusé que ese era el problema…

LA SOLUCIÓN (1) – La sencilla

echo «blacklist nf_nat_sip» >> /etc/modprobe.d/blacklist.conf

echo «blacklist nf_conntrack_sip» >> /etc/modprobe.d/blacklist.conf

reboot

Esto lo que hará es meter en la «lista negra» blacklist, los modulos nf_nat_sip y nf_conntrack_sip para que el kernel no los carge al inicio del sistema…

Esta solución funcionaria si dichos modulos estan seleccionados en el archivo .config del kernel como modulos…

¿¿La SOLUCIÓN (2)?? – Si NO los tenemos cmo modulos (<M>)

Ir a –> /usr/src/linux

Editar el archivo: .config

Cambiar las lineas:

CONFIG_NF_CONNTRACK_SIP

CONFIG_NF_NAT_SIP

###Por estas:

# CONFIG_NF_CONNTRACK_SIP is not set

# CONFIG_NF_NAT_SIP is not set

Guardar los cambios en .config

make && make modules_install && make install

cp arch/x86/boot/bzImage /boot/NOMBREKERNEL

reboot

– – NOMBREKERNEL: se sustituye por la imagen del kernel donde apunte grub (grub.conf)


Con esto desabilitamos totalmente la carga de los modulos CONFIG_NF_CONNTRACK_SIP y CONF_NAT_SIP en el kernel y se solucionaria nuestro problema.

Un saludo y espero que sirva de ayuda.

Bye!

Share

Instalar Asterisk en Gentoo. !! De un Plumazo !!

Hola.

Hoy he tenido que realizár una instalación de asterisk sobre una pc con gentoo. Ha sido sencillo, he tenido que desenmascarar todo lo relacionado con asterisk y emerger asterisk.

Para los más perezosos se lo dejo a golpe de copy & paste 😛

emerge –sync
echo «net-misc/asterisk ~x86» >> /etc/portage/package.keywords
echo «net-misc/asterisk-addons ~x86» >> /etc/portage/package.keywords
echo «net-misc/asterisk-core-sounds ~x86» >> /etc/portage/package.keywords
echo «net-misc/asterisk-extra-sounds ~x86» >> /etc/portage/package.keywords
echo «net-misc/asterisk-moh-opsound ~x86» >> /etc/portage/package.keywords
echo «net-misc/asterisk-extra-sounds alaw g722 g729 ulaw wav» >> /etc/portage/package.use
echo «net-misc/asterisk-moh-opsound alaw g722 g729 ulaw wav» >> /etc/portage/package.use
echo «net-misc/asterisk-core-sounds alaw g722 g729 ulaw wav» >> /etc/portage/package.use
emerge net-misc/asterisk net-misc/asterisk-addons

Solamente…Copiar & pegar y listo!

Un saludo.

Share