[Asterisk-ES] Captura de tráfico

790 views
Skip to first unread message

Daniel Bareiro

unread,
Apr 22, 2010, 6:00:16 AM4/22/10
to Lista Asterisk-es
Hola!

Haciendo unas pruebas de seguridad en la instalación de Asterisk que
tengo en casa con vistas a probar SRTP o ZRTP, la primera prueba que
estoy haciendo es un ataque man-in-the-middle entre dos extensiones para
capturar el tráfico VoIP entre ellas.

En este escenario, el atacante es una máquina virtual con la cual estoy
intentando capturar el tráfico VoIP entre una PC con un softphone y un
teléfono Grandstream BT200.

Pero me llama la atención que entre la PC con el softphone y el teléfono
solo obtengo en la captura tráfico ARP o algunos ICMP Echo Request que
hice para probar entre estos dos equipos, pero no logro capturar el
tráfico RTP al hacer una llamada. En la máquina virtual atacante estoy
haciendo la captura con tcpdump usando la siguiente sintaxis donde
10.1.0.65 es la PC con el softphone:

# tcpdump -i eth0 -n host 10.1.0.65 -w dump


¿Se me está pasando alguna consideración u opción de captura que no
estoy teniendo en cuenta?

Gracias anticipadas por responder.

Saludos,
Daniel
--
Daniel Bareiro - GNU/Linux registered user #188.598
Proudly running Debian GNU/Linux with uptime:
06:49:10 up 10 days, 11:09, 10 users, load average: 0.00, 0.02, 0.00

signature.asc

Saúl Ibarra Corretgé

unread,
Apr 22, 2010, 6:32:05 AM4/22/10
to aster...@googlegroups.com
Hola!

2010/4/22 Daniel Bareiro <daniel...@gmx.net>:
> Hola!
>
> Haciendo unas pruebas de seguridad en la instalación de Asterisk que
> tengo en casa con vistas a probar SRTP o ZRTP, la primera prueba que
> estoy haciendo es un ataque man-in-the-middle entre dos extensiones para
> capturar el tráfico VoIP entre ellas.
>
> En este escenario, el atacante es una máquina virtual con la cual estoy
> intentando capturar el tráfico VoIP entre una PC con un softphone y un
> teléfono Grandstream BT200.
>
> Pero me llama la atención que entre la PC con el softphone y el teléfono
> solo obtengo en la captura tráfico ARP o algunos ICMP Echo Request que
> hice para probar entre estos dos equipos, pero no logro capturar el
> tráfico RTP al hacer una llamada. En la máquina virtual atacante estoy
> haciendo la captura con tcpdump usando la siguiente sintaxis donde
> 10.1.0.65 es la PC con el softphone:
>
> # tcpdump -i eth0 -n host 10.1.0.65 -w dump
>
>
> ¿Se me está pasando alguna consideración u opción de captura que no
> estoy teniendo en cuenta?
>

Salvo que captures en el propio host por donde pasa el audio o en una
red que use un hub no vas a 'ver' el tráfico, ya que no es para ti :)

Para capturarlo tienes que hacer 'arp poisoning', es decir, envenenar
las tablar arp para poner tu host atacante en medio de la
comunicación.

En esta presentación tienes la línea que hace el arp poisoning con
ettercap: http://www.slideshare.net/saghul/in-seguridad-en-voip-presentation


Saludos,

--
/Saúl
http://saghul.net | http://sipdoc.net

--
Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)

~~~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Para anular la suscripción: asterisk-es...@googlegroups.com

Subscription settings: http://groups.google.com/group/asterisk-es/subscribe?hl=es

Angel Elena

unread,
Apr 22, 2010, 6:32:11 AM4/22/10
to aster...@googlegroups.com

- El puerto del switch donde está tu mc está en modo monitor / mirroring ???
- En la máquina virtual usas una tarjeta de red física o es un bridge con otra ???



________________________________
winmail.dat

Daniel Bareiro

unread,
Apr 22, 2010, 1:36:18 PM4/22/10
to aster...@googlegroups.com
El jueves 22 de abril del 2010 a las 12:32:05,
Saúl Ibarra Corretgé escribió:

> Hola!

Hola, Saúl!



> > Haciendo unas pruebas de seguridad en la instalación de Asterisk que
> > tengo en casa con vistas a probar SRTP o ZRTP, la primera prueba que
> > estoy haciendo es un ataque man-in-the-middle entre dos extensiones
> > para capturar el tráfico VoIP entre ellas.
> >
> > En este escenario, el atacante es una máquina virtual con la cual
> > estoy intentando capturar el tráfico VoIP entre una PC con un
> > softphone y un teléfono Grandstream BT200.
> >
> > Pero me llama la atención que entre la PC con el softphone y el
> > teléfono solo obtengo en la captura tráfico ARP o algunos ICMP Echo
> > Request que hice para probar entre estos dos equipos, pero no logro
> > capturar el tráfico RTP al hacer una llamada. En la máquina virtual
> > atacante estoy haciendo la captura con tcpdump usando la siguiente
> > sintaxis donde 10.1.0.65 es la PC con el softphone:
> >
> > # tcpdump -i eth0 -n host 10.1.0.65 -w dump
> >
> >
> > ¿Se me está pasando alguna consideración u opción de captura que no
> > estoy teniendo en cuenta?

> Salvo que captures en el propio host por donde pasa el audio o en una
> red que use un hub no vas a 'ver' el tráfico, ya que no es para ti :)
>
> Para capturarlo tienes que hacer 'arp poisoning', es decir, envenenar
> las tablar arp para poner tu host atacante en medio de la
> comunicación.
>
> En esta presentación tienes la línea que hace el arp poisoning con
> ettercap:
> http://www.slideshare.net/saghul/in-seguridad-en-voip-presentation

Gracias por el enlace a la presentación. Justamente, estas pruebas que
comentaba que estoy haciendo son para acompañar con una demo una charla
que pienso dar sobre seguridad en VoIP en una materia llamada Sistemas
distribuidos :-)

Efectivamente, estoy usando arp poisoning con ettercap en la máquina
atacante para ver el tráfico entre la PC con el softphone y el teléfono
Grandstream. Para esto la sintaxis que estoy usando es la siguiente:

# ettercap -Tq -M arp:remote /10.1.0.65/ /10.1.0.38/


Donde 10.1.0.65 es la IP de la PC con el softphone y la IP 10.1.0.38
corresponde al teléfono Grandstream. Ahora bien, como decía, estoy
observando en este escenario lo que planteaba más arriba. El único
tráfico que veo inicialmente son paquetes ARP de 10.1.0.65 o 10.1.0.38
pero no veo paquetes RTP al hacer un llamado. Incluso, si hago un ping
desde 10.1.0.65 a 10.1.0.38 veo también los paquetes de request y
respuesta ICMP Echo Request, pero no logro capturar los paquetes VoIP,
lo cual me llama la atención.

¿Tengo que usar alguna opción adicional a la sintaxis que comentaba más
arriba con tcpdump?

Gracias por responder.

Saludos,
Daniel
--
Mi frase del día:
All I ask of life is a constant and exaggerated sense of my own importance.

Daniel Bareiro - GNU/Linux registered user #188.598
Proudly running Debian GNU/Linux with uptime:

14:17:23 up 10 days, 18:37, 10 users, load average: 0.00, 0.00, 0.00

signature.asc

Saúl Ibarra Corretgé

unread,
Apr 22, 2010, 3:03:07 PM4/22/10
to aster...@googlegroups.com
2010/4/22 Daniel Bareiro <daniel...@gmx.net>:
Así a botepronto no se me ocurre... Prueba a capturar normal (tcpdump
-n -v -i eth0 -s0) en el servidor a ver si todo va way. Sino, mira a
ver donde manda el RTP... :-S

Daniel Bareiro

unread,
Apr 23, 2010, 6:42:31 AM4/23/10
to aster...@googlegroups.com
Hola, Saúl.

El jueves 22 de abril del 2010 a las 21:03:07,
Saúl Ibarra Corretgé escribió:

> > Gracias por el enlace a la presentación. Justamente, estas pruebas
> > que comentaba que estoy haciendo son para acompañar con una demo una
> > charla que pienso dar sobre seguridad en VoIP en una materia llamada
> > Sistemas distribuidos :-)
> >
> > Efectivamente, estoy usando arp poisoning con ettercap en la máquina
> > atacante para ver el tráfico entre la PC con el softphone y el
> > teléfono Grandstream. Para esto la sintaxis que estoy usando es la
> > siguiente:
> >
> > # ettercap -Tq -M arp:remote /10.1.0.65/ /10.1.0.38/
> >
> >
> > Donde 10.1.0.65 es la IP de la PC con el softphone y la IP 10.1.0.38
> > corresponde al teléfono Grandstream. Ahora bien, como decía, estoy
> > observando en este escenario lo que planteaba más arriba. El único
> > tráfico que veo inicialmente son paquetes ARP de 10.1.0.65 o
> > 10.1.0.38 pero no veo paquetes RTP al hacer un llamado. Incluso, si
> > hago un ping desde 10.1.0.65 a 10.1.0.38 veo también los paquetes de
> > request y respuesta ICMP Echo Request, pero no logro capturar los
> > paquetes VoIP, lo cual me llama la atención.
> >
> > ¿Tengo que usar alguna opción adicional a la sintaxis que comentaba
> > más arriba con tcpdump?

> Así a botepronto no se me ocurre... Prueba a capturar normal (tcpdump
> -n -v -i eth0 -s0) en el servidor a ver si todo va way. Sino, mira a
> ver donde manda el RTP... :-S

Creo que ya me di cuenta por qué no estaba capturando tráfico VoIP.
Porque no hay tráfico directo entre 10.1.0.65 (la PC con el softphone) y
10.1.0.38 (el teléfono Grandstream) sino que es entre cada parte y el
servidor Asterisk, claro :-) Entonces, ahora sí usando ettercap con la
IP del servidor Asterisk y 10.1.0.65, puedo capturar y reproducir los
llamados desde esta IP a 10.1.0.38 o viceversa.

Es un avance, aunque la reproducción desde Wireshark se escucha un tanto
retardada. ¿Es normal que suceda esto?

Por otra parte, tuve que cambiar el orden de preferencia de los codecs
en el sip.conf del servidor para que de preferencia a G711 por sobre
GSM, porque lo tenía configurado en un orden de preferencia inverso y
veo que el RTP player de Wireshark no soporta GSM. ¿Sabés de alguna
manera para reproducir GSM directamente desde los paquetes capturados?

Saludos,
Daniel
--

Daniel Bareiro - GNU/Linux registered user #188.598
Proudly running Debian GNU/Linux with uptime:

07:30:39 up 11 days, 11:50, 10 users, load average: 0.13, 0.06, 0.01

signature.asc

Saúl Ibarra Corretgé

unread,
Apr 23, 2010, 6:58:50 AM4/23/10
to aster...@googlegroups.com
> Es un avance, aunque la reproducción desde Wireshark se escucha un tanto
> retardada. ¿Es normal que suceda esto?
>
> Por otra parte, tuve que cambiar el orden de preferencia de los codecs
> en el sip.conf del servidor para que de preferencia a G711 por sobre
> GSM, porque lo tenía configurado en un orden de preferencia inverso y
> veo que el RTP player de Wireshark no soporta GSM. ¿Sabés de alguna
> manera para reproducir GSM directamente desde los paquetes capturados?
>

En GNU/Linux mal asunto... te recomiendo que para esto uses Cain&Abel
desde un windows. Tiene un bonito botón llamado 'Poison' así que nada
de preocuparse de ettercap. Además puedes reproducir audio hasta en
g729 :)

Daniel Bareiro

unread,
May 2, 2010, 7:54:58 AM5/2/10
to aster...@googlegroups.com
Hola, Saúl.

El viernes 23 de abril del 2010 a las 12:58:50,
Saúl Ibarra Corretgé escribió:

> > Es un avance, aunque la reproducción desde Wireshark se escucha un
> > tanto retardada. ¿Es normal que suceda esto?
> >
> > Por otra parte, tuve que cambiar el orden de preferencia de los
> > codecs en el sip.conf del servidor para que de preferencia a G711
> > por sobre GSM, porque lo tenía configurado en un orden de
> > preferencia inverso y veo que el RTP player de Wireshark no soporta
> > GSM. ¿Sabés de alguna manera para reproducir GSM directamente desde
> > los paquetes capturados?

> En GNU/Linux mal asunto... te recomiendo que para esto uses Cain&Abel
> desde un windows. Tiene un bonito botón llamado 'Poison' así que nada
> de preocuparse de ettercap. Además puedes reproducir audio hasta en
> g729 :)

Sí, había leído algo al respecto. Intentaré probarlo abriendo la captura
y reproduciéndola en un equipo con Windows usando Cain&Abel porque aquí
en casa tengo solo GNU/Linux y OpenBSD. ¿Eso que te decía más arriba de
que la reproducción se escuchaba como retardada desde Wireshark es algo
que también hayas experimentado?

Por otra parte, me están pidiendo que haga una demostración práctica de
las contramedidas. Si bien lo más práctico es lo de las VLANs, no creo
que al menos esa solución pueda probarla aquí en casa porque mi switch
no es tan sofisticado como para eso. Entonces había pensando en probar,
por ejemplo, SRTP o SIP sobre TCP/TLS. ¿Has llegado a implementar esto
sobre Asterisk 1.4? En tal caso, ¿Podrías recomentarme algún buen
documento al respecto? Estoy usando actualmente Asterisk 1.4.24.1.

Gracias por responder.

Saludos,
Daniel
--
Daniel Bareiro - GNU/Linux registered user #188.598
Proudly running Debian GNU/Linux with uptime:

08:37:48 up 20 days, 12:57, 10 users, load average: 0.05, 0.04, 0.01

signature.asc

Iñaki Baz Castillo

unread,
May 2, 2010, 8:10:28 AM5/2/10
to aster...@googlegroups.com
El día 2 de mayo de 2010 13:54, Daniel Bareiro <daniel...@gmx.net> escribió:
> Entonces había pensando en probar,
> por ejemplo, SRTP o SIP sobre TCP/TLS. ¿Has llegado a implementar esto
> sobre Asterisk 1.4?

Asterisk 1.4 no implementa ni SRTP ni SIP sobre TCP (y menos sobre TCP-TLS).
Asterisk 1.6, teóricamente, soporta SIP sobre TCP, pero no seré yo el
que pierda mi tiempo descubriendo un bug tras otro, sorbe todo
teniendo en cuenta que el máximo abanderado del chan_sip (Olle) ha
insinuado en muchas ocasiones que el TCP que se ha metido es una
marranada.

--
Iñaki Baz Castillo
<i...@aliax.net>

Saúl Ibarra Corretgé

unread,
May 3, 2010, 3:07:31 AM5/3/10
to aster...@googlegroups.com
Hola,

>> En GNU/Linux mal asunto... te recomiendo que para esto uses Cain&Abel
>> desde un windows. Tiene un bonito botón llamado 'Poison' así que nada
>> de preocuparse de ettercap. Además puedes reproducir audio hasta en
>> g729 :)
>
> Sí, había leído algo al respecto. Intentaré probarlo abriendo la captura
> y reproduciéndola en un equipo con Windows usando Cain&Abel porque aquí
> en casa tengo solo GNU/Linux y OpenBSD. ¿Eso que te decía más arriba de
> que la reproducción se escuchaba como retardada desde Wireshark es algo
> que también hayas experimentado?
>

No lo recuerdo...

> Por otra parte, me están pidiendo que haga una demostración práctica de
> las contramedidas. Si bien lo más práctico es lo de las VLANs, no creo
> que al menos esa solución pueda probarla aquí en casa porque mi switch
> no es tan sofisticado como para eso. Entonces había pensando en probar,
> por ejemplo, SRTP o SIP sobre TCP/TLS. ¿Has llegado a implementar esto
> sobre Asterisk 1.4? En tal caso, ¿Podrías recomentarme algún buen
> documento al respecto? Estoy usando actualmente Asterisk 1.4.24.1.
>

Actualmente ni siquiera el trunk tiene soporte para SRTP, pero puedes
probarlo con el branch que se indica en este bug:
https://issues.asterisk.org/view.php?id=5413 que al parecer está
cerca de ser integrado.

Que la fuerza te acompañe! :)
Reply all
Reply to author
Forward
0 new messages