Cursos Asterisk en México

Sip Guest

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Sip Guest

    Buen dia el dia de ayer revisando mi PBX me encontre con un comportamiento extraño, veia en mi FOP que derrepente salian llamadas cortas a numeros deconocidos de extensiones en las que nadie esta logueado actualmente, corri el comando sip show channels y me mostro lo que adjunto en la imagen, inmediatamente bloquee esa ip, pero me queda la duda de como es que llego hasta ahi y si ese ataque de no ser detectado pudo haber llegado a hacer llamadas validas desde mi pbx, tenemos implementadas las medidas de seguridad recomendadas como contraseñas seguras el no permitir llamadas anonimas etc, alguien que sea mas especializado en esto me puede decir que significo esto que vi en pantalla porque me quede algo asustado y si es un peligro inminente quisiera ver la manera de cerrar algun posible agujero de seguridad.

    En mi cli se volvia loco tratando de hacer llamadas no validas atraves de esas extensiones es por eso que pense que habian logrado validarse con alguna extension pero en la pantalla mostraba el peer como "guest" alguna idea de que estaba pasando aqui y como lo puedo evitar??


    Muchas Gracias de antemano

    Jorge
    Archivos Adjuntos

  • #2
    El puerto SIP de tu Asterisk está expuesto y por lo tanto, alguien desde el exterior trató de hacer llamadas a través de él. Lo que ves son los rastros de los invites para terminar esas llamadas. Ahora bien, no creo que hayan sido exitosos, pero de que lo intentaron, lo hicieron.

    Mi pregunta sería: ¿Por qué tienes abierto el puerto SIP en tu firewall?

    Dado que un INVITE a una extensión que no existe no es considerado un ataque sino una mala marcación, aún si tienes fail2ban por default éste no se defiende, pero seria conveniente que lo reconfigures para que bloquee este tipo de intentos.

    Saludos.
    dCAP Christian Cabrera R.
    Para aprender a usar Asterisk, asiste a uno de mis cursos Asterisk
    Si deseas asesoría pagada, por favor contáctame

    Comentario


    • #3
      Buenos dias Cristhian, el puerto esta abierto porque tenemos extensiones remotas, el dia de hoy mi servidor amanecio caido porque se saturo la memoria y no me permitía entrar a loguearme, imagino que es por la misma situacion aunque el día de ayer tuve que hacer un reset fisico del servidor, mi duda aqui es, si necesito tener ese puerto expuesto a Internet, que puedo hacer en este caso para solucionarlo? comentaste que fail2ban podría configurarlo para bloquear este tipo de ataques, me podrias dar alguna referencia de como hacer esto?

      Muchas Gracias de antemano.

      Jorge

      Comentario


      • #4
        Hola Jorge, que distribucion tienes ?, si gustas te paso la config que yo tengo de mi Fail2ban, Saludos !!

        Comentario


        • #5
          Buen dia, es un elastix 2.4, claro pasamela para ver si todo esta en orden, estuve toda la mañana haciendo pruebas con diferentes herramientas hacia mi ip y ninguna paso de mostrar esto en mi pantalla:

          192.168.100.110 2004 ada49f1ea83e761 0x0 (nothing) No Rx: INVITE <guest>
          Lo mismo con la ip que esta hacia internet, pero en los logs de mi asterisk cuando tuve el ataque, estaban saliendo llamadas invalidas desde 2 de mis extensiones, agrego una porcion del log aqui:

          [Jul 16 15:45:52] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:1] ResetCDR("SIP/2004-0000086e", "") in new stack
          [Jul 16 15:45:52] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:2] NoCDR("SIP/2004-0000086e", "") in new stack
          [Jul 16 15:45:52] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:3] Progress("SIP/2004-0000086e", "") in new stack
          [Jul 16 15:45:52] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:4] Wait("SIP/2004-0000086e", "1") in new stack
          [Jul 16 15:45:53] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:5] Progress("SIP/2004-0000086e", "") in new stack
          [Jul 16 15:45:53] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:6] Playback("SIP/2004-0000086e", "silence/1&cannot-complete-as-dialed&check-numb$
          [Jul 16 15:45:53] VERBOSE[10904] file.c: -- <SIP/2004-0000086e> Playing 'silence/1.gsm' (language 'en')
          [Jul 16 15:45:54] VERBOSE[10852] res_musiconhold.c: -- Stopped music on hold on SIP/ipsol18669780006-0000086c
          [Jul 16 15:45:54] VERBOSE[10904] file.c: -- <SIP/2004-0000086e> Playing 'cannot-complete-as-dialed.gsm' (language 'en')
          [Jul 16 15:45:57] VERBOSE[10904] file.c: -- <SIP/2004-0000086e> Playing 'check-number-dial-again.gsm' (language 'en')
          [Jul 16 15:45:58] VERBOSE[10882] res_musiconhold.c: -- Started music on hold, class 'default', on Local/2000@from-queue-0000002c;2
          [Jul 16 15:45:59] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:7] Wait("SIP/2004-0000086e", "1") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [00088213222804@from-internal:8] Congestion("SIP/2004-0000086e", "20") in new stack
          [Jul 16 15:46:00] WARNING[10904] channel.c: Prodding channel 'SIP/2004-0000086e' failed
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: == Spawn extension (from-internal, 00088213222804, 8) exited non-zero on 'SIP/2004-0000086e'
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [h@from-internal:1] Macro("SIP/2004-0000086e", "hangupcall") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:1] GotoIf("SIP/2004-0000086e", "1?endmixmoncheck") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Goto (macro-hangupcall,s,9)
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:9] NoOp("SIP/2004-0000086e", "End of MIXMON check") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:10] GotoIf("SIP/2004-0000086e", "1?nomeetmemon") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Goto (macro-hangupcall,s,28)
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:28] NoOp("SIP/2004-0000086e", "End of MEETME check") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:29] GotoIf("SIP/2004-0000086e", "1?noautomon") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Goto (macro-hangupcall,s,34)
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:34] NoOp("SIP/2004-0000086e", "TOUCH_MONITOR_OUTPUT=") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:35] GotoIf("SIP/2004-0000086e", "1?noautomon2") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Goto (macro-hangupcall,s,41)
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:41] NoOp("SIP/2004-0000086e", "MONITOR_FILENAME=") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:42] GotoIf("SIP/2004-0000086e", "1?skiprg") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Goto (macro-hangupcall,s,45)
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:45] GotoIf("SIP/2004-0000086e", "1?skipblkvm") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Goto (macro-hangupcall,s,48)
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:48] GotoIf("SIP/2004-0000086e", "1?theend") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Goto (macro-hangupcall,s,50)
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:50] AGI("SIP/2004-0000086e", "hangup.agi") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] res_agi.c: -- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
          [Jul 16 15:46:00] VERBOSE[10904] res_agi.c: -- <SIP/2004-0000086e>AGI Script hangup.agi completed, returning 0
          [Jul 16 15:46:00] VERBOSE[10904] pbx.c: -- Executing [s@macro-hangupcall:51] Hangup("SIP/2004-0000086e", "") in new stack
          [Jul 16 15:46:00] VERBOSE[10904] app_macro.c: == Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'SIP/2004-0000086e' in macro 'hangupcall'


          Como pueden ver en este punto yo siento que ya era cuestion de que le atinara a mi tipo de marcacion... esa extension no tenia a nadie logueado y no logro replicar la falla de seguridad con las herramientas y scripts que he encontrado hasta ahora, es script que probe es el siguiente y me regresa un no autorizado, no encuentro como es que llego hasta mi dial plan, aqui les muestro el script por si le sirve a alguien mas:

          Hace casi un año (cómo pasa el tiempo) escribí una entrada sobre cómo es posible realizar llamadas a través de un sistema de VoIP sin disponer de ninguna cuenta en el sistema, si se diera el caso de que el servidor no está bien configurado. Si no has leído la entrada, la puedes ver aquí: Asterisk – INVITE attack Tal y como comenté, en la web de Sinologic podemos comprobar si nuestro servidor es vulnerable ante estos ataques, pero para una mejor comprensión, he programado un pequeño script con el que podemos comprobarlo: El script únicamente admite un host a


          en mi extensions.conf esta de la siguiente manera:

          ;this is where parked calls go if they time-out. Should probably re-ring
          [default]
          include => ext-local
          exten => s,1,Playback(vm-goodbye)
          exten => s,2,Macro(hangupcall)

          Me hace un poco de ruido el que incluya ext-local pero no me atrevo a moverlo por temor a que heche a perder algo, este contexto default esta correcto asi o debo quitar todo de ahi??

          alguien que me de un ejemplo de como es que pudieran entrar por ahi??

          Muchas gracias de antemano.

          Comentario


          • #6
            Te recomeindo que uses una VPN para usar telefonos remotos, en el caso de que tengas que dejar abierto el puerto si o si te recomeindo que para los sip guest crees un contexto especifico con una _X. y lo envies a un playback en ingles donde hagas una especie de reporte de la IP a la autoridades. Es lo que hago y ellos se cansan de escucharlo y dejan de atacar tu PBX.

            Si quieres saber como llegan ahí habilita el sip debug y ve de donde vienen, a que contexto, con que extensión, etc., etc.

            Comentario


            • #7
              No soy muy diestro en el tema de los Dial plan para hacer lo que comentas des contexto para sip guest, el tema del puerto no se si sea mucho mas efectivo y sencillo cambiar el puerto sip default a algun otro al azar, modificaciones al dial plan aun no me atrevo a modificarlo, igual la parte del sip debug tendria que tenerlo activado y esperar que ataquen ya que actualmente bloquee la ip y nadie mas me ha atacado, supongo que tendre que leer mucho para documentarme mas al respecto, saben que logs puedo revisar aparte del full de asterisk y el fail2ban?? por ejemplo para ver los intentos de invite esos solo me salen en el momento que esta ocurriendo y corro el comando sip show channels, no se si todo eso se queda en algun log? sobre todo sigo con la duda de como es que entraron hasta realizar una llamada si se supone que mi pbx no permite llamadas anonimas... y las contraseñas son de mas de 8 digitos con caracteres especiales etc.

              Comentario


              • #8
                Te dejo mi configuracion de fail2ban, estos parametros son para México, te lo digo por que si eres de otro pais solo editas tus direcciones IP, saludos
                Código:
                https://app.box.com/s/mc6cmjgs71zjqxjy6eyi

                Comentario

                Principales Usuarios Activos

                Colapsar

                No hay usuarios activos superiores.
                Trabajando...
                X