Útok
Ještě než začneme, řekneme si co všechno takový útok obnáší a jaké jsou jeho možnosti:
- Sběr informací, footprinting etc.
- Monitorování trafficu a zachytávání hovorů
- Útok na autentifikaci
- Vlan Hopping
- DoS
- Spoofing ID volajícího
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