Bezpečnost VoIP (3)

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: phr3akDom
Datum: 5.12.2012
Hodnocení/Hlasovalo: 3.6/5

Další díl ze seriálu o bezpečnosti Voice over IP je na světě. Dnes se konečně dostaneme k samotnému útoku.

Útok

Ještě než začneme, řekneme si co všechno takový útok obnáší a jaké jsou jeho možnosti:

V našem případě bude VoIP síť tvořit TRIXBOX PBX System a 6 extensions, 2 IP telefony, jeden Linuxový SW client zvaný Twinkle a druhý SW client pro Windows zvaný X-Lite.

V ukázce bude použito Linuxové distro BackTrack 5 R2. Všechny nástroje pro penetraci VoIP naleznete v adresáři "/pentest/voip"

Sběr informací

Toto je fáze ve které sbíráme informace o topologii, serverech a clientech abychom mohli provést úspěšný útok. Co nás zajímá jsou “živí” clienti, verze a typ PBX, VoIP server/gateway, verze a typ clientů etc.

Ukažme si tedy některé nástroje které nám umožní najít, identifikovat a zjistit deatily o zapnutých VoIP zařízeních.

SMAP

BackTrack obsahuje nástroj zvaný SMAP. Jedná se o jednoduchý scanner pro SIP enabled zařízení. SMAP odesílá různé SIP requesty a čeká na odpověď od SIP enabled DSL routerů, proxyn a user-agentů.

Může být považován za obdobu NMAPu určenou pro sítě VoIP

Použití SMAPu
root@bt:/pentest/voip/smap# ./smap

smap 0.6.0 http://www.wormulon.net/

usage: smap [ Options ]

           -h: this help
           -d: increase debugging
           -o: enable fingerprinting
           -O: enable more verbose fingerprinting
           -l: fingerprint learning mode
           -t: TCP transport
           -u: UDP transport (default
          -P0: Treat all hosts as online - skip host discovery
    -p : destination port
    -r : messages per second rate limit
  -D : SIP domain to use without leading sip:
 -w : timeout in msec
Scanning jedné IP adresy:
root@bt:/pentest/voip/smap# ./smap 192.168.1.104

smap 0.6.0 http://www.wormulon.net/

192.168.1.104: ICMP reachable, SIP enabled

1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)
Scanning rozsahu IP adres:
root@bt:/pentest/voip/smap# ./smap 192.168.1.130/24

smap 0.6.0 http://www.wormulon.net/

192.168.1.20: ICMP reachable, SIP enabled
192.168.1.22: ICMP reachable, SIP enabled
192.168.1.0: ICMP unreachable, SIP disabled
192.168.1.1: ICMP unreachable, SIP disabled
192.168.1.2: ICMP unreachable, SIP disabled
192.168.1.3: ICMP unreachable, SIP disabled
----EDIT---
192.168.1.250: ICMP unreachable, SIP disabled
192.168.1.251: ICMP unreachable, SIP disabled
192.168.1.252: ICMP unreachable, SIP disabled
192.168.1.253: ICMP unreachable, SIP disabled
192.168.1.254: ICMP unreachable, SIP disabled
192.168.1.255: ICMP unreachable, SIP disabled

256 hosts scanned, 7 ICMP reachable, 2 SIP enabled (0.8%)
Teď když známe SIP enabled zařízení v síti použijeme SMAP pro fingerprint:
root@bt:/pentest/voip/smap# ./smap -O 192.168.1.104

smap 0.6.0 http://www.wormulon.net/

192.168.1.104: ICMP reachable, SIP enabled
best guess (70% sure) fingerprint:
 Asterisk PBX SVN-trunk-r56579
 User-Agent: Asterisk PBX

1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)

V případě že SMAP nedokázal fingerprintnout námi zadaný host, použijeme -l argument pro získání alespoň některých užitečných informací:

root@bt:/pentest/voip/smap# ./smap -l 192.168.1.104

smap 0.6.0 http://www.wormulon.net/

NOTICE: test_accept: "Accept: application/sdp"
NOTICE: test_allow: "Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY"
NOTICE: test_supported: "Supported: replaces"
NOTICE: test_via: transport capitalization: 2
NOTICE: test_via: "branch;alias;received;rport"
NOTICE: test_via: Please add new cmpstr
NOTICE: test_via: transport capitalization: 2
192.168.1.104: ICMP reachable, SIP enabled
best guess (70% sure) fingerprint:
 Asterisk PBX SVN-trunk-r56579

FINGERPRINT information:
newmethod=501
accept_class=2
allow_class=201
supported_class=8
via_class=2
hoe_class=ignore
options=200
brokenfromto=404
prack=481
ping=501
invite=200
 User-Agent: Asterisk PBX

1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)

Dalším užitečným argumentem může být -d který zapne debug outputu, pokud chcete větší podrobnost použijte -o který vám poskytne detaily o fingerprinting procesu:

root@bt:/pentest/voip/smap# ./smap -l 192.168.1.104

smap 0.6.0 http://www.wormulon.net/

NOTICE: test_accept: "Accept: application/sdp"
NOTICE: test_allow: "Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY"
NOTICE: test_supported: "Supported: replaces"
NOTICE: test_via: transport capitalization: 2
NOTICE: test_via: "branch;alias;received;rport"
NOTICE: test_via: Please add new cmpstr
NOTICE: test_via: transport capitalization: 2
192.168.1.104: ICMP reachable, SIP enabled
best guess (70% sure) fingerprint:
 Asterisk PBX SVN-trunk-r56579

FINGERPRINT information:
newmethod=501
accept_class=2
allow_class=201
supported_class=8
via_class=2
hoe_class=ignore
options=200
brokenfromto=404
prack=481
ping=501
invite=200
 User-Agent: Asterisk PBX

1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)

SIPSAK

SIPSAK se používá k testování SIP enabled aplikcí. Ve výstupu si můžeme všimnout, že zařízení na které jsme se “ptali” je Audiocodes MP-114 FXS gateway.

root@bt:~# sipsak -vv -s sip:192.168.1.221

message received:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 127.0.1.1:51601;branch=z9hG4bK.18a1b21f;rport;alias
From: sip:sipsak@127.0.1.1:51601;tag=97ac9e5
To: sip:192.168.1.221;tag=1c1785761661
Call-ID: 159042021@127.0.1.1
CSeq: 1 OPTIONS
Contact:
Supported: em,100rel,timer,replaces,path,resource-priority
Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,UPDATE
Server: Audiocodes-Sip-Gateway-MP-114 FXS/v.5.40A.040.005
X-Resources: telchs=4/0;mediachs=0/0
Accept: application/sdp, application/simple-message-summary, message/sipfrag
Content-Type: application/sdp
Content-Length: 343

v=0
o=AudiocodesGW 1785763980 1785763858 IN IP4 192.168.1.221
s=Phone-Call
c=IN IP4 192.168.1.221
t=0 0
m=audio 6000 RTP/AVP 18 8 0 127
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:127 telephone-event/8000
a=fmtp:127 0-15
a=ptime:20
a=sendrecv
a=rtcp:6001 IN IP4 192.168.1.221


** reply received after 67.923 ms **
  SIP/2.0 200 OK
  final received

SIPScan

SIPScan je jednoduchý scanner který umí oscannovat konkrétní host nebo celý subnet:

root@bt:/pentest/voip/sipscan# ./sip-scan --help
./sip-scan version [unknown] calling Getopt::Std::getopts (version 1.05),
running under Perl version 5.10.0.
 Usage: sip-scan [options]

-v        Be verbose.
-i ip|if  Interface/IP for SIP-headers (default: IP from ppp0)
-p port   remote port to scan. (default: 5060)
-l port   local origin of packets. (default: 5060)
-d n[p]   Wait n ms after each sent packet (default: 50ms) or if 'p' is
          given, send n packets per second (default: 20)
-w n      Wait n ms for remaining answers (default: 2000ms)

Network spec contains the wildcard * or ranges n-m.
Scanning subnetu:
root@bt:/pentest/voip/sipscan# ./sip-scan -i eth0 192.168.1.1-254
192.168.1.20: Grandstream HT-502  V1.2A 1.0.1.35
192.168.1.21: Grandstream HT-502  V1.2A 1.0.1.35
192.168.1.22: Asterisk PBX
192.168.1.104: Asterisk PBX
192.168.1.128: FreeSWITCH-mod_sofia/1.0.trunk-16055
192.168.1.174: Grandstream HT-502  V1.2A 1.0.1.35
192.168.1.175: Asterisk PBX 1.6.0.9-samy-r27
192.168.1.219: "Exelmind Call-Control Switch (CCS)"
192.168.1.248: MailVision HostLynx/2.1 'GA'

SVMAP

SVMap je častí sady nastrojů zvané SIPVicious. Může být použit k identifikaci a fingerprintu jedné IP adresy nebo celého rozsahu IP. SVMap také umožňuje definovat metodu která bude použita při scannování, defaultní je OPTIONS. Můžete použít ./svmap -h ke shlédnutí všech dostupných argumentů.

root@bt:/pentest/voip/sipvicious# ./svmap.py
Usage: svmap.py [options] host1 host2 hostrange
examples:
svmap.py 10.0.0.1-10.0.0.255 \
> 172.16.131.1 sipvicious.org/22 10.0.1.1/24 \
> 1.1.1.1-20 1.1.2-20.* 4.1.*.*
svmap.py -s session1 --randomize 10.0.0.1/8
svmap.py --resume session1 -v
svmap.py -p5060-5062 10.0.0.3-20 -m INVITE
Scanning rozsahu IP:
root@bt:/pentest/voip/sipvicious# ./svmap.py 192.168.1.1-254
| SIP Device         | User Agent    | Fingerprint |
----------------------------------------------------
| 192.168.1.104:5060 | Asterisk PBX  | disabled    |
| 192.168.1.103:5060 | Twinkle/1.4.2 | disabled    |
Zapnutí fingerprinting scanningu:
root@bt:/pentest/voip/sipvicious# ./svmap.py 192.168.1.1-254 --fp
fingerprinting

Tak a to je pro dnešek vše, v příštím díle si ještě povíme něco o nástrojích které nam BT5 nabízí a začneme s odposlechem a monitorováním trafficu.


ZDROJ