Zpět na seznam článků     Číst komentáře (1)     Verze pro tisk

Bezpečnost VoIP (3)

Autor: phr3akDom   
5.12.2012

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:

  • 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
  1.  
  2. root@bt:/pentest/voip/smap# ./smap
  3.  
  4. smap 0.6.0 http://www.wormulon.net/
  5.  
  6. usage: smap [ Options ]
  7.  
  8.            -h: this help
  9.            -d: increase debugging
  10.            -o: enable fingerprinting
  11.            -O: enable more verbose fingerprinting
  12.            -l: fingerprint learning mode
  13.            -t: TCP transport
  14.            -u: UDP transport (default
  15.           -P0: Treat all hosts as online - skip host discovery
  16.     -p : destination port
  17.     -r : messages per second rate limit
  18.   -D : SIP domain to use without leading sip:
  19.  -w : timeout in msec
  20.  
Scanning jedné IP adresy:
  1.  
  2. root@bt:/pentest/voip/smap# ./smap 192.168.1.104
  3.  
  4. smap 0.6.0 http://www.wormulon.net/
  5.  
  6. 192.168.1.104: ICMP reachable, SIP enabled
  7.  
  8. 1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)
  9.  
Scanning rozsahu IP adres:
  1.  
  2. root@bt:/pentest/voip/smap# ./smap 192.168.1.130/24
  3.  
  4. smap 0.6.0 http://www.wormulon.net/
  5.  
  6. 192.168.1.20: ICMP reachable, SIP enabled
  7. 192.168.1.22: ICMP reachable, SIP enabled
  8. 192.168.1.0: ICMP unreachable, SIP disabled
  9. 192.168.1.1: ICMP unreachable, SIP disabled
  10. 192.168.1.2: ICMP unreachable, SIP disabled
  11. 192.168.1.3: ICMP unreachable, SIP disabled
  12. ----EDIT---
  13. 192.168.1.250: ICMP unreachable, SIP disabled
  14. 192.168.1.251: ICMP unreachable, SIP disabled
  15. 192.168.1.252: ICMP unreachable, SIP disabled
  16. 192.168.1.253: ICMP unreachable, SIP disabled
  17. 192.168.1.254: ICMP unreachable, SIP disabled
  18. 192.168.1.255: ICMP unreachable, SIP disabled
  19.  
  20. 256 hosts scanned, 7 ICMP reachable, 2 SIP enabled (0.8%)
  21.  
Teď když známe SIP enabled zařízení v síti použijeme SMAP pro fingerprint:
  1.  
  2. root@bt:/pentest/voip/smap# ./smap -O 192.168.1.104
  3.  
  4. smap 0.6.0 http://www.wormulon.net/
  5.  
  6. 192.168.1.104: ICMP reachable, SIP enabled
  7. best guess (70% sure) fingerprint:
  8.  Asterisk PBX SVN-trunk-r56579
  9.  User-Agent: Asterisk PBX
  10.  
  11. 1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)
  12.  

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í:

  1.  
  2. root@bt:/pentest/voip/smap# ./smap -l 192.168.1.104
  3.  
  4. smap 0.6.0 http://www.wormulon.net/
  5.  
  6. NOTICE: test_accept: "Accept: application/sdp"
  7. NOTICE: test_allow: "Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY"
  8. NOTICE: test_supported: "Supported: replaces"
  9. NOTICE: test_via: transport capitalization: 2
  10. NOTICE: test_via: "branch;alias;received;rport"
  11. NOTICE: test_via: Please add new cmpstr
  12. NOTICE: test_via: transport capitalization: 2
  13. 192.168.1.104: ICMP reachable, SIP enabled
  14. best guess (70% sure) fingerprint:
  15.  Asterisk PBX SVN-trunk-r56579
  16.  
  17. FINGERPRINT information:
  18. newmethod=501
  19. accept_class=2
  20. allow_class=201
  21. supported_class=8
  22. via_class=2
  23. hoe_class=ignore
  24. options=200
  25. brokenfromto=404
  26. prack=481
  27. ping=501
  28. invite=200
  29.  User-Agent: Asterisk PBX
  30.  
  31. 1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)
  32.  

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:

  1.  
  2. root@bt:/pentest/voip/smap# ./smap -l 192.168.1.104
  3.  
  4. smap 0.6.0 http://www.wormulon.net/
  5.  
  6. NOTICE: test_accept: "Accept: application/sdp"
  7. NOTICE: test_allow: "Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY"
  8. NOTICE: test_supported: "Supported: replaces"
  9. NOTICE: test_via: transport capitalization: 2
  10. NOTICE: test_via: "branch;alias;received;rport"
  11. NOTICE: test_via: Please add new cmpstr
  12. NOTICE: test_via: transport capitalization: 2
  13. 192.168.1.104: ICMP reachable, SIP enabled
  14. best guess (70% sure) fingerprint:
  15.  Asterisk PBX SVN-trunk-r56579
  16.  
  17. FINGERPRINT information:
  18. newmethod=501
  19. accept_class=2
  20. allow_class=201
  21. supported_class=8
  22. via_class=2
  23. hoe_class=ignore
  24. options=200
  25. brokenfromto=404
  26. prack=481
  27. ping=501
  28. invite=200
  29.  User-Agent: Asterisk PBX
  30.  
  31. 1 host scanned, 1 ICMP reachable, 1 SIP enabled (100.0%)
  32.  

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.

  1.  
  2. root@bt:~# sipsak -vv -s sip:192.168.1.221
  3.  
  4. message received:
  5. SIP/2.0 200 OK
  6. Via: SIP/2.0/UDP 127.0.1.1:51601;branch=z9hG4bK.18a1b21f;rport;alias
  7. From: sip:sipsak@127.0.1.1:51601;tag=97ac9e5
  8. To: sip:192.168.1.221;tag=1c1785761661
  9. Call-ID: 159042021@127.0.1.1
  10. CSeq: 1 OPTIONS
  11. Contact:
  12. Supported: em,100rel,timer,replaces,path,resource-priority
  13. Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,UPDATE
  14. Server: Audiocodes-Sip-Gateway-MP-114 FXS/v.5.40A.040.005
  15. X-Resources: telchs=4/0;mediachs=0/0
  16. Accept: application/sdp, application/simple-message-summary, message/sipfrag
  17. Content-Type: application/sdp
  18. Content-Length: 343
  19.  
  20. v=0
  21. o=AudiocodesGW 1785763980 1785763858 IN IP4 192.168.1.221
  22. s=Phone-Call
  23. c=IN IP4 192.168.1.221
  24. t=0 0
  25. m=audio 6000 RTP/AVP 18 8 0 127
  26. a=rtpmap:18 G729/8000
  27. a=fmtp:18 annexb=no
  28. a=rtpmap:8 PCMA/8000
  29. a=rtpmap:0 PCMU/8000
  30. a=rtpmap:127 telephone-event/8000
  31. a=fmtp:127 0-15
  32. a=ptime:20
  33. a=sendrecv
  34. a=rtcp:6001 IN IP4 192.168.1.221
  35.  
  36.  
  37. ** reply received after 67.923 ms **
  38.   SIP/2.0 200 OK
  39.   final received
  40.  

SIPScan

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

  1.  
  2. root@bt:/pentest/voip/sipscan# ./sip-scan --help
  3. ./sip-scan version [unknown] calling Getopt::Std::getopts (version 1.05),
  4. running under Perl version 5.10.0.
  5.  Usage: sip-scan [options]
  6.  
  7. -v        Be verbose.
  8. -i ip|if  Interface/IP for SIP-headers (default: IP from ppp0)
  9. -p port   remote port to scan. (default: 5060)
  10. -l port   local origin of packets. (default: 5060)
  11. -d n[p]   Wait n ms after each sent packet (default: 50ms) or if 'p' is
  12.           given, send n packets per second (default: 20)
  13. -w n      Wait n ms for remaining answers (default: 2000ms)
  14.  
  15. Network spec contains the wildcard * or ranges n-m.
  16.  
Scanning subnetu:
  1.  
  2. root@bt:/pentest/voip/sipscan# ./sip-scan -i eth0 192.168.1.1-254
  3. 192.168.1.20: Grandstream HT-502  V1.2A 1.0.1.35
  4. 192.168.1.21: Grandstream HT-502  V1.2A 1.0.1.35
  5. 192.168.1.22: Asterisk PBX
  6. 192.168.1.104: Asterisk PBX
  7. 192.168.1.128: FreeSWITCH-mod_sofia/1.0.trunk-16055
  8. 192.168.1.174: Grandstream HT-502  V1.2A 1.0.1.35
  9. 192.168.1.175: Asterisk PBX 1.6.0.9-samy-r27
  10. 192.168.1.219: "Exelmind Call-Control Switch (CCS)"
  11. 192.168.1.248: MailVision HostLynx/2.1 'GA'
  12.  

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ů.

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



Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 3.6/5

1  2  3  4  5    
(známkování jako ve škole)