Funcionamiento y mejoras de svwar

La herramienta svwar, que forma parte de la suite SIPVicious ha tenido una serie de mejoras. Esta herramienta nos permite obtener usuarios de una PBX o servidor VoIP.

El funcionamiento es bastante sencillo y ahora svwar prueba con una serie de números por defecto, buscando en los siguientes rangos: 1000,2000... 9000, 1001, 2001..9001, 1111,2222... 9999, 11111,22222...99999, 100-999, 1234,2345 ..7890. Así es posible identificar extensiones en varias configuraciones del PBX. Adicionalmente ahora svwar envía una respuesta ACK a la respuestas SIP con código 200 porque varios PBX continúan enviando paquetes hasta que reciben una confirmación.

Podemos obtener SIPVicious utilizando un cliente subversion:

svn checkout http://sipvicious.googlecode.com/svn/trunk/ sipvicious-read-only

Esta hecho en Python y su funcionamiento es sencillo, no necesitamos compilar y se ejecuta pasando el hostname o IP del PBX que queremos analizar:

./svwar.py direccion_IP
| Extension | Authentication |
------------------------------
| 203       | reqauth        |

Aunque también es posible especificar los rangos que queremos analizar o utilizar un diccionario:

./svwar.py 
Usage: svwar.py [options] target
examples:
svwar.py -e100-999 10.0.0.1
svwar.py -d dictionary.txt 10.0.0.2

Cuando lo ejecutamos, svwar manda peticiones REGISTER al PBX especificado:

Internet Protocol, Src: 192.168.1.2 (192.168.1.2), Dst: 192.168.1.8 (192.168.1.8)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
    Request-Line: REGISTER sip:200@192.168.1.8 SIP/2.0
    Message Header
        Via: SIP/2.0/UDP 127.0.1.1:5060;branch=z9hG4bK-1896472302;rport
        Content-Length: 0
        From: "200"<sip:200@192.168.1.8>; tag=3230300131353839393338393336
        Accept: application/sdp
        User-Agent: friendly-scanner
        To: "200"<sip:200@192.168.1.8>
        Contact: sip:200@192.168.1.8
        CSeq: 1 REGISTER
        Call-ID: 1996629828
        Max-Forwards: 70
Internet Protocol, Src: 192.168.1.2 (192.168.1.2), Dst: 192.168.1.8 (192.168.1.8)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
    Request-Line: REGISTER sip:203@192.168.1.8 SIP/2.0
    Message Header
        Via: SIP/2.0/UDP 127.0.1.1:5060;branch=z9hG4bK-2170107283;rport
        Content-Length: 0
        From: "203"<sip:203@192.168.1.8>; tag=3230330133303638383631363437
        Accept: application/sdp
        User-Agent: friendly-scanner
        To: "203"<sip:203@192.168.1.8>
        Contact: sip:203@192.168.1.8
        CSeq: 1 REGISTER
        Call-ID: 1932039182
        Max-Forwards: 70

El PBX responderá con un 404 (Not Found) en caso de que no se encuentre el usuario:

Internet Protocol, Src: 192.168.1.8 (192.168.1.8), Dst: 192.168.1.2 (192.168.1.2)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
    Status-Line: SIP/2.0 404 Not found
    Message Header
        Via: SIP/2.0/UDP 127.0.1.1:5060;branch=z9hG4bK-1896472302;received=192.168.1.2;rport=5060
        From: "200"<sip:200@192.168.1.8>; tag=3230300131353839393338393336
        To: "200"<sip:200@192.168.1.8>;tag=as5878360c
        Call-ID: 1996629828
        CSeq: 1 REGISTER
        User-Agent: Asterisk PBX
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
        Supported: replaces
        Content-Length: 0

O bien un 401 (Unauthorized) en caso contrario:

Internet Protocol, Src: 192.168.1.8 (192.168.1.8), Dst: 192.168.1.2 (192.168.1.2)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
    Status-Line: SIP/2.0 100 Trying
    Message Header
        Via: SIP/2.0/UDP 127.0.1.1:5060;branch=z9hG4bK-2170107283;received=192.168.1.2;rport=5060
        From: "203"<sip:203@192.168.1.8>; tag=3230330133303638383631363437
        To: "203"<sip:203@192.168.1.8>
        Call-ID: 1932039182
        CSeq: 1 REGISTER
        User-Agent: Asterisk PBX
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
        Supported: replaces
        Contact: <sip:203@192.168.1.8>
        Content-Length: 0
Internet Protocol, Src: 192.168.1.8 (192.168.1.8), Dst: 192.168.1.2 (192.168.1.2)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
    Status-Line: SIP/2.0 401 Unauthorized
    Message Header
        Via: SIP/2.0/UDP 127.0.1.1:5060;branch=z9hG4bK-2170107283;received=192.168.1.2;rport=5060
        From: "203"<sip:203@192.168.1.8>; tag=3230330133303638383631363437
        To: "203"<sip:203@192.168.1.8>;tag=as116b027c
        Call-ID: 1932039182
        CSeq: 1 REGISTER
        User-Agent: Asterisk PBX
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
        Supported: replaces
        WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6109636f"
        Content-Length: 0

Una vez se obtiene la respuesta se manda un ACK:

Internet Protocol, Src: 192.168.1.2 (192.168.1.2), Dst: 192.168.1.8 (192.168.1.8)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
    Request-Line: ACK sip:200@192.168.1.8 SIP/2.0
    Message Header
        Via: SIP/2.0/UDP 127.0.1.1:5060;branch=z9hG4bK-4090165706;rport
        Content-Length: 0
        From: "200"<sip:200@192.168.1.8>; tag=3230300132353234393537343136
        Accept: application/sdp
        User-Agent: friendly-scanner
        To: "200"<sip:200@192.168.1.8>
        Contact: sip:200@192.168.1.8
        CSeq: 1 REGISTER ACK
        Call-ID: 1996629828
        Max-Forwards: 70
Internet Protocol, Src: 192.168.1.2 (192.168.1.2), Dst: 192.168.1.8 (192.168.1.8)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
    Request-Line: ACK sip:203@192.168.1.8 SIP/2.0
    Message Header
        Via: SIP/2.0/UDP 127.0.1.1:5060;branch=z9hG4bK-2294203812;rport
        Content-Length: 0
        From: "203"<sip:203@192.168.1.8>; tag=3230330131353539313933373732
        Accept: application/sdp
        User-Agent: friendly-scanner
        To: "203"<sip:203@192.168.1.8>
        Contact: sip:203@192.168.1.8
        CSeq: 1 REGISTER ACK
        Call-ID: 1932039182
        Max-Forwards: 70

Interesante, a la vez que efectiva herramienta. Para detectar un posible escaneo, puede resultar útil un analizador de tráfico como Wireshark con el cual podremos observar dicho comportamiento (señal que alguien puede estar haciendo algo feo en nuestra red).

URL para hacer trackback a este post:

http://bytecoders.homelinux.com/trackback/709