Archive

Archive for the ‘Blog’ Category

Het zekere voor het onzekere: de IPv6 Scan

Als gevolg van het nog altijd groeiende aantal internetgebruikers en de toename van apparatuur met een netwerkfunctie raakt het aantal IP-adressen op korte termijn uitgeput. De oplossing daarvoor is IPv6, een nieuw numeriek systeem dat aan deze schaarste een einde maakt. Om de overgang op dit Internet Protocol version 6 soepel te laten verlopen, zullen bedrijven hun netwerk en aanverwante apparatuur moeten aanpassen. Als specialist op gebied van ICT speelt aaZoo BV in op deze ontwikkeling met de IPv6-scan.

Ooit werd het huidige internetwerk ontworpen om ongeveer vier miljard internet – of IP – adressen te ondersteunen. Een enorm aantal, dat anno 2010 bij lange na niet volstaat om de explosieve groei in netwerktoepassingen het hoofd te kunnen bieden. Behalve computers krijgen ook andere apparaten steeds vaker een netwerkfunctie. Voorbeelden daarvan zijn in een zakelijke omgeving bijvoorbeeld beveiligingscamera’s, telefooncentrales en gebouwbeheersystemen die via internet kunnen worden aangestuurd. De oplossing voor de uitputting van het huidige Internet Protocol (IPv4) staat reeds in de startblokken en heet IPv6. Een belangrijk verschil tussen de beide versies is de lengte van de IP-adressen: 32-bits voor IPv4 en 128-bits voor IPv6. Het aantal IP-adressen is hiermee in theorie oneindig.

Migratie naar IPv6
“Veel fabrikanten leveren apparatuur die al geschikt is voor IPv6, terwijl bestaande apparatuur in veel gevallen met een software-update kan worden voorbereid op het nieuwe protocol”, vertelt Gert-Jan de Boer van aaZoo. “Voorafgaand aan een migratietraject naar IPv6 is het belangrijk om duidelijkheid te hebben over de status van het bestaande netwerk. Mede daarom ontwikkelden wij de IPv6-scan. Daarbij inventariseren we alle netwerkapparatuur bij onze opdrachtgever en onderzoeken we in hoeverre deze ‘IPv6-ready’ is. Op basis van de resultaten doen we vervolgens aanbevelingen voor eventuele vervangingen van apparatuur, zodat bedrijven zichzelf goed kunnen voorbereiden op een overstap naar IPv6. We zien nu overigens al dat de IPv6-capaciteit in de toekomst een verplicht onderdeel wordt in aanbestedingen van de overheid. Het bedrijfsleven moet er op termijn echter ook aan geloven om netwerken goed te kunnen blijven benutten.”

Over aaZoo
Vanuit het hoofdkantoor in Emmeloord verzorgt aaZoo sinds begin van dit jaar ICT-diensten voor middelgrote tot grote bedrijven. De dienstverlening van het bedrijf is gebaseerd op techniek die in dienst staat van de gebruiker. In de filosofie van aaZoo ondersteunt een goede ICT-infrastructuur haar klanten in de belangrijkste bedrijfsprocessen, zonder dat daar ingewikkelde beheertaken voor in de plaats komen.

Voor meer informatie:
aaZoo B.V.
Postbus 1017
8300 BA Emmeloord
E-mail: info@aazoo.nl

Troubleshooting en packet captures op een Cisco ASA

Een handige feature op Cisco ASA’s is de mogelijkheid om op de firewall .pcap packet captures te maken en deze dan later in te lezen met Wireshark.

Om verkeer van een bepaald interface te capturen voer je de volgende regel uit:


aazoo-testasa(config)# capture maandag-capture interface outside

Wil je specifiek verkeer capturen doe je het volgende:


aazoo-testasa(config)# access-list test-packetcapture permit ip 10.15.1.0 255.255.255.0 host 10.19.1.1
aazoo-testasa(config)# capture dinsdag-capture access-list test-packetcapture

De capture kun je vervolgens op twee manieren ophalen, via de console:


aazoo-testasa# show capture maandag-capture

514 packets captured

1: 08:58:01.354672 arp who-has 10.19.1.1 tell 10.32.15.11
2: 08:58:01.356518 arp who-has 10.19.1.1 tell 10.32.15.11
3: 08:58:01.554628 arp who-has 10.19.1.1 tell 10.32.15.12
4: 08:58:01.556474 arp who-has 10.19.1.1 tell 10.32.15.11
5: 08:58:01.754584 arp who-has 10.19.1.1 tell 10.32.15.12
6: 08:58:01.756445 arp who-has 10.19.1.1 tell 10.32.15.11
7: 08:58:01.954555 arp who-has 10.19.1.1 tell 10.32.15.12
8: 08:58:01.956401 arp who-has 10.19.1.1 tell 10.32.15.11
9: 08:58:02.154563 arp who-has 10.19.1.1 tell 10.32.15.12
10: 08:58:02.156425 arp who-has 10.19.1.1 tell 10.32.15.11
11: 08:58:02.354519 arp who-has 10.19.1.1 tell 10.32.15.12
12: 08:58:02.356381 arp who-has 10.19.1.1 tell 10.32.15.11

Of via de webinterface, je krijgt dan een .pcap file die je kunt importeren in het zwitserse zakmes Wireshark. Ga hiervoor naar de URL https://<Management IP ASA>/capture/<naam capture/pcap bijvoorbeeld:


https://aazoo-testasa.aazoo.nl/capture/dinsdag-capture/pcap

Een andere handige troubleshooting tool voor Cisco ASA’s is de packet-tracer.
Deze roep je aan op de console van een ASA met het commando: packet-tracer input <interface naam> <protocol> <van IP> <van poort> <naar IP> <naar poort>

Voorbeeld:


aazoo-testasa# packet-tracer input inside tcp 10.19.1.1 32322 217.115.199.40 80

Phase: 1
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list

Phase: 2
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found no matching flow, creating a new flow

Phase: 3
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in 0.0.0.0 0.0.0.0 outside

Phase: 4
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in 10.19.1.0 255.255.255.0 inside

Phase: 5
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 6
Type: FOVER
Subtype: standby-update
Result: ALLOW
Config:
Additional Information:

Phase: 7
Type: NAT
Subtype: host-limits
Result: ALLOW
Config:
nat (inside) 1 access-list vpn-access-list
nat-control
match ip inside 10.19.1.1 255.255.255.0 bastion host 1.1.1.1
dynamic translation to pool 1 (No matching global)
translate_hits = 0, untranslate_hits = 0
Additional Information:

Phase: 8
Type: NAT
Subtype:
Result: DROP
Config:
nat (inside) 0 0.0.0.0 0.0.0.0
nat-control
match ip inside any outside any
no translation group, implicit deny
policy_hits = 1
Additional Information:

Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: inside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule

Voice over IP en Netwerkbeveiliging

Een vaak onderschat component van een Voice over IP (VoIP) implementatie is netwerkbeveiliging. Hoewel in de afgelopen maanden er af en toe berichten opduiken over gedupeerde bedrijven zien we dat er in de praktijk nog steeds erg weinig aandacht aan de beveiliging van VoIP wordt besteed. Het blijkt in de praktijk mogelijk te zijn om ongeauthenticeerd gesprekken op te kunnen zetten met interne toestellen of zelfs met externe lijnen zoals ISDN of een SIP Trunk.

Een sprekend voorbeeld hiervan is een klant waar ik gevraagd werd om een onderzoek uit te voeren naar de kraakbaarheid van hun Voice over IP telefooncentrale. De klant had namelijk een hoge rekening gekregen van hun telefoonprovider waaruit bleek dat er in een weekend duizenden gesprekken waren gevoerd naar een Afrikaans land. Deze klant maakte gebruik van een Cisco UCM Express telefooncentrale, een systeem waarbij een Cisco router als telefooncentrale ingezet kan worden. De klant had intern Cisco telefoons staan die op basis van SCCP, ook wel Skinny genoemd, werkten en hun verbinding naar buiten bestond uit een drietal ISDN-2 aansluitingen. Eigenlijk een vrij eenvoudige configuratie die je vaak tegenkomt in de praktijk.

Bij deze klant ging het mis op twee punten:

  • Remote Beheer
  • Interne Netwerkscheiding
  • Niet uitschakelen van onnodige services

De leverancier van deze klant vond het een goed idee om extern beheer mogelijk te maken. Daarom had men een extern IP adres op deze telefooncentrale geconfigureerd en deze aan de WAN kant van het netwerk geplaatst. Hier zat een firewall tussen, maar deze was geconfigureerd om alles door te laten en het netwerk te bridgen.

Daarnaast had deze klant maar een enkel VLAN, in dit VLAN zaten de telefoons, de telefooncentrale, de werkstations en het onbeveiligde wireless access point geconfigureerd.

Wat uiteindelijk de deur wagenwijd openzette was het feit dat onnodige services niet waren uitgeschakeld. Op de Cisco router stond een SIP service te luisteren.
De volgende dial-peers waren geconfigureerd op de router:


dial-peer voice 10 pots
translation-profile incoming TRANSLATE_CALLING
preference 7
destination-pattern 0T
port 2/0
!
dial-peer voice 20 pots
translation-profile incoming TRANSLATE_CALLING
preference 4
destination-pattern 0T
direct-inward-dial
port 2/1
!
dial-peer voice 30 pots
translation-profile incoming TRANSLATE_CALLING
preference 2
destination-pattern 0T
port 3/0
!
dial-peer voice 40 pots
translation-profile incoming TRANSLATE_CALLING
preference 3
destination-pattern 0T
port 3/1
!
dial-peer voice 50 pots
translation-profile incoming TRANSLATE_CALLING
preference 5
destination-pattern 0T
direct-inward-dial
port 1/0

Dit zorgt er voor dat alle nummers die met een 0 beginnen doorgestuurd worden naar de genoemde poort, in dit geval een ISDN poort. Er werd geen controle uitgevoerd of de nummers wel lokaal bekend waren.

Een simpele regel: “sip:00512751015@externIP.vandeklant.nl” in een willekeurige SIP Client was voldoende om vanaf extern te bellen naar het nummer “0512751015″.

Er zijn mensen die het internet afzoeken naar openstaande SIP poorten om vervolgens daar gratis verkeer over heen te kunnen sturen. Stel je eens voor dat je een goedkope telefoonprovider bent: gratis bellen naar de hele wereld! Maar voor elke telefoontik naar buiten moet je zelf geld betalen, op dat moment kan het lonend zijn om met een script openstaande SIP poorten te zoeken en daar gedurende een periode telefoonverkeer over heen te routeren. Uiteraard is dit verboden, maar het internet is zonder grenzen.

Dat de beveiliging van VoIP een veelvoorkomend probleem is blijkt wel uit het onderzoekje wat ik heb uitgevoerd.

Een willekeurige scan van een internet subnet met svmap uit de SIPVicious toolkit geeft binnen 15 minuten de volgende interessante resultaten:

SIP Device User Agent Fingerprint
2×2.x9.2×4.18:5060 Cisco-SIPGateway/IOS-12.x Cisco-SIPGateway/IOS-12.x
2×3.x0.x0.112:5060 Asterisk PBX Asterisk / BandwidthVoice
2×3.1×0.1×9.154:5060 Tilgin Vood 322_ESA1100_03_05_08_00 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.11x.2×6.94:5060 Tilgin Vood 111s_1_12_2_RC_1 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7141 (UI)
40.04.35 (Jun 19 2007) / AVM FRITZ!Box Fon WLAN 7050
14.04.15 (Jul 12 2006)
2×3.12x.1×2.35:5060 BT Home Hub 2.0A Build 8.1.H.G T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
2×3.1×0.1×9.174:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
2×3.1×1.xx0.215:5060 Tilgin Vood 453W_B_AS0000-03_05_08_08 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.1×2.xx4.90:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
2×3.x7.x16.114:5060 SAGEM / 3202.2 / 2601EA F139R72-0.00
2×3.x17.x97.162:5060 SAGEM / 3202.3 / 2601EA F139R72-0.00
2×3.1×4.xx7.69:5060 Tilgin Vood 452W_B_AS0000-03_05_08_08 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.1×0.xx2.13:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
2×3.2×3.xx9.218:5060 AVM FRITZ!Box Fon WLAN Annex A 08.04.26 (Sep 6 2006) AVM or Speedport
2×3.2×7.xx1.238:41542 unknown AVM FRITZ!Box Fon WLAN 7141 (UI) 40.04.35 (Jun 19 2007)
2×3.2×8.xx9.189:5060 unknown AVM or Speedport
2×3.x27.xx0.226:5060 unknown F309R19-2.00 / F142R75-0.00 / F139R72-0.00
2×3.x65.x12.61:5060 Telefonadapter – Telia Bredbandstelefoni Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.xx4.2×7.254:5060 Pirelli Broadband Solutions/Discus Asterisk / BandwidthVoice
Platform/DWV_TEL_4.3.2.0025
2×3.x84.2×1.166:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
x82.2×0.1×1.54:5060 Cisco-SIPGateway/IOS-12.x Cisco-SIPGateway/IOS-12.x
2×3.xx0.xx9.71:5060 Tilgin Vood 342_ESA1100_03_05_08_00 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.x00.x83.231:5060 Tilgin Vood 342_ESA1100_03_05_08_00 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.1×0.1×2.13:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
2×3.x03.1×9.218:5060 AVM FRITZ!Box Fon WLAN Annex A 08.04.26 (Sep 6 2006) AVM or Speedport
2×3.2×7.1×1.238:41542 unknown AVM FRITZ!Box Fon WLAN 7141 (UI) 40.04.35 (Jun 19 2007)
2×3.2×8.1×9.189:5060 unknown AVM or Speedport
2×3.x27.2×0.226:5060 unknown F309R19-2.00 / F142R75-0.00 / F139R72-0.00
2×3.x65.x12.61:5060 Telefonadapter – Telia Bredbandstelefoni Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.x74.xx7.254:5060 Pirelli Broadband Solutions/Discus Asterisk / BandwidthVoice
Platform/DWV_TEL_4.3.2.0025
2×3.x84.xx1.166:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
x2.2×0.xx1.54:5060 Cisco-SIPGateway/IOS-12.x Cisco-SIPGateway/IOS-12.x
2×3.1×0.xx9.71:5060 Tilgin Vood 342_ESA1100_03_05_08_00 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.1×0.x8x.231:5060 Tilgin Vood 342_ESA1100_03_05_08_00 Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.1×6.xx6.214:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
2×3.1×7.xx7.18:5060 M5T SIP-UA SAFE/v3.6.4.8 Linksys/SPA2102-3.3.6 / M5T SIP-UA SAFE/v3.6.4.8
2×3.1×5.xx3.138:5060 Asterisk PBX Asterisk / Linksys/PAP2T-3.1.15(LS)
2×3.1x.x0.68:5060 SAGEM / 3202.2 / 2601EA Viceroy 1.2 / F139R72-0.00
2×3.1×2.xx8.236:5060 Linksys/SPA2102-5.2.3 Linksys or Sipura
2×3.1×5.x0.89:5060 Linksys/SPA2102-5.1.9 Linksys/SPA2102-5.1.9 / Linksys/SPA2102-5.1.12
2×3.1×6.xx9.111:5060 Sphairon UA – 2.26-2.15.7 NetConnect AVM FRITZ!Box Fon WLAN 7170 29.04.22 (Sep 6 2006)
2×3.2×3.xx4.161:5060 AVM FRITZ!Box Fon WLAN Annex A 08.03.62 AVM or Speedport
2×3.2×8.xx7.66:5060 unknown Grandstream phone
2×3.x9.xx1.213:5060 AVM FRITZ!Box Fon WLAN 7140 (AOL) 30.04.33 (May 10 2007) AVM or Speedport
2×3.x9.xx9.177:5060 AVM FRITZ!Box Fon WLAN 7050 (UI) 14.04.33 (May 10 2007) AVM or Speedport
2×3.4x.xx8.60:5060 AVM FRITZ!Box Fon WLAN 7270 54.04.68 (Dec 17 2008) AVM or Speedport
2×3.xx.xx3.87:5060 unknown Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7050 14.04.15
(Jul 12 2006)
2×3.x3.x22.16:5060 unknown T-Com Speedport W500V / Firmware v1.37 MxSF/v3.2.6.26
2×3.x4.x35.77:5060 Telefonadapter – Telia Bredbandstelefoni Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7141 (UI)
40.04.35 (Jun 19 2007) / AVM FRITZ!Box Fon WLAN 7050
14.04.15 (Jul 12 2006)
2×3.x4.x36.14:5060 Telefonadapter – Telia Bredbandstelefoni Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7170 29.04.22
(Sep 6 2006) / 3CXPhoneSystem
2×3.x6.xx7.220:5060 Telefonadapter – Telia Bredbandstelefoni Linksys/SPA2102-3.3.6 / AVM FRITZ!Box Fon WLAN 7141 (UI)
40.04.35 (Jun 19 2007)

Deze apparaten zullen allemaal gesprekken accepteren, misschien niet naar externe telefoonnummers, maar zeker wel naar interne extensies. Om deze interne extensies te leren kennen hebben we de tool svwar uit de SIPVicious toolkit.
Op een willekeurige host uit deze lijst krijg ik met een scan op extensies 10 – 5000 het volgende antwoord:


INFO:TakeASip:trying to get self ip .. might take a while
INFO:root:start your engines
INFO:TakeASip:Ok SIP device found
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-1383820685;rport\r\nFrom: "10" <sip:10@xxx.xxx.xxx.xxx>;tag=313001373636383833363935\r\nTo: "10" <sip:10@xxx.xxx.xxx.xxx>;tag=994394975\r\nCall-ID: 823320980\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-2206181257;rport\r\nFrom: "11" <sip:11@xxx.xxx.xxx.xxx>;tag=31310132373535303230383836\r\nTo: "11" <sip:11@xxx.xxx.xxx.xxx>;tag=880968812\r\nCall-ID: 3952691097\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-990536748;rport\r\nFrom: "12" <sip:12@xxx.xxx.xxx.xxx>;tag=31320132313136363439323538\r\nTo: "12" <sip:12@xxx.xxx.xxx.xxx>;tag=2356592349\r\nCall-ID: 919958410\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-3023029120;rport\r\nFrom: "13" <sip:13@xxx.xxx.xxx.xxx>;tag=313301333738303930353136\r\nTo: "13" <sip:13@xxx.xxx.xxx.xxx>;tag=3879336450\r\nCall-ID: 398996016\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-4166942786;rport\r\nFrom: "14" <sip:14@xxx.xxx.xxx.xxx>;tag=31340133383530393234383930\r\nTo: "14" <sip:14@xxx.xxx.xxx.xxx>;tag=3142010219\r\nCall-ID: 341819626\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-3347144645;rport\r\nFrom: "15" <sip:15@xxx.xxx.xxx.xxx>;tag=31350132393230383138373137\r\nTo: "15" <sip:15@xxx.xxx.xxx.xxx>;tag=1609553384\r\nCall-ID: 1818435497\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-2423719321;rport\r\nFrom: "16" <sip:16@xxx.xxx.xxx.xxx>;tag=313601343135353239303835\r\nTo: "16" <sip:16@xxx.xxx.xxx.xxx>;tag=3931031177\r\nCall-ID: 1313715558\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-2380026049;rport\r\nFrom: "17" <sip:17@xxx.xxx.xxx.xxx>;tag=31370131383332373434373030\r\nTo: "17" <sip:17@xxx.xxx.xxx.xxx>;tag=1340984734\r\nCall-ID: 1213899189\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-2709629244;rport\r\nFrom: "18" <sip:18@xxx.xxx.xxx.xxx>;tag=31380133323030323334373531\r\nTo: "18" <sip:18@xxx.xxx.xxx.xxx>;tag=2171041207\r\nCall-ID: 3089834486\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
ERROR:TakeASip:Response: 'SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=z9hG4bK-3977079662;rport\r\nFrom: "19" <sip:19@xxx.xxx.xxx.xxx>;tag=313901313839393634303236\r\nTo: "19" <sip:19@xxx.xxx.xxx.xxx>;tag=345811620\r\nCall-ID: 1604000460\r\nCSeq: 1 REGISTER\r\nContent-Length: 0\r\n\r\n'
INFO:root:Total time: 0:00:03.242660


Hoewel we geen verbinding kunnen maken met de extensies geeft dit dus aan dat de extensies 10 – 19 in gebruik zijn, anders zou er ook een reactie op de overige nummers die we scannen (20 – 5000) komen.
We kunnen nu twee dingen doen, we kunnen met svcrack uit de SIPVicious de authenticatie proberen te kraken en de extensie overnemen of we kunnen op dit moment het toestel bereiken door sip:10@xxx.xxx.xxx.xxx te bellen in onze SIP Client. Een ideale manier om mensen te bereiken op hun interne nummer en verder te gaan met bijvoorbeeld social engineering.

Voor een voorbeeld hoe makkelijk het is om een VoIP netwerk te kraken zie de volgende demonstratie video van de tool “sipautohack” : http://vimeo.com/2524735?hd=1

Bij het implementeren van een Voice over IP netwerk is het altijd zaak om goed na te denken over de infrastructuur en de beveiliging:

  • Maak altijd een ontwerp en laat deze zo nodig controleren door een partij met ervaring
  • Doe een VoIP Security Scan test na de implementatie zodat je zeker weet dat de implementatie veilig is

Quick-win configuratie tips:

  • Zorg ervoor dat de telefooncentrale niet direct aan het internet gekoppeld wordt
  • Configureer altijd een Firewall op of voor de telefooncentrale die SIP of H.323 connecties alleen toestaat vanaf een vertrouwde partij, bijvoorbeeld een SIP provider
  • Als je een SIP trunk tussen meerdere gebouwen of bedrijven wilt opzetten doe dit nooit over het internet, maar gebruik een private lijn of een VPN tunnel (zoals IPSec Site2Site of OpenVPN)
  • Zorg er voor dat ongeauthenticeerde extensies nooit naar nummers mogen bellen die geld kosten (zoals ISDN poorten of een SIP trunk)
  • Op Asterisk centrales zet “alwaysauthreject=yes” in sip.conf, dit zorgt ervoor dat extensie scanners niet kunnen zoeken naar bruikbare extensies doordat authenticatie requests met een valide gebruikersnaam maar een onjuist wachtwoord met dezelfde foutmelding worden geweigerd als requests met een onjuiste gebruikersnaam
  • Op Asterisk centrales schakel de Asterisk Manager Interface uit als je deze niet gebruikt of blokkeer externe toegang daartoe
  • Schakel ongebruikte services altijd uit

Configureren van Sun Storage Link Aggregation op Cisco 3750

Bij een van onze klanten moest een Sun Storage systeem gekoppeld worden aan een stack van Cisco 3750 switches. Deze switches gebruiken wij vaak als netwerk componenten voor storage en server systemen omdat ze redelijk goedkoop zijn, makkelijk redundantie bieden door middel van het stacken van de switches en goede performance bieden.

Redundantie implementeren we door middel van LACP (802.3ad) op de switches, LACP mag cross-stack aangemaakt worden, dit in tegenstelling tot Cisco’s eigen PAgP waar alle portmembers in een etherchannel op 1 stackmember aanwezig moeten zijn. De configuratie ziet er dan als volgt uit:

interface GigabitEthernet1/0/24
description sun-storage
channel-protocol lacp
channel-group 15 mode active

interface GigabitEthernet2/0/24
description sun-storage
channel-protocol lacp
channel-group 15 mode active

interface Port-channel15
description sun-storage
switchport access vlan 20
switchport mode access

Op de Sun Storage zet je de volgende parameters onder datalink:

Policy: L2
Mode: Active
Timer: Long

Om te controleren of de port-channel goed werkt kun je een show int port-channel 15 uitvoeren, dit geeft de volgende output:

aazoo-testswitch3750#show int port-channel 15
Port-channel15 is up, line protocol is up (connected)
Hardware is EtherChannel, address is 0026.986d.a287 (bia 0026.986d.a287)
Description: sun-storage
MTU 1500 bytes, BW 2000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full-duplex, 1000Mb/s, link type is auto, media type is unknown
input flow-control is off, output flow-control is unsupported
Members in this channel: Gi1/0/24 Gi2/0/24
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/0 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 1000 bits/sec, 1 packets/sec
92 packets input, 10638 bytes, 0 no buffer
Received 92 broadcasts (66 multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 66 multicast, 0 pause input
0 input packets with dribble condition detected
708 packets output, 70378 bytes, 0 underruns
0 output errors, 0 collisions, 7 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 PAUSE output
0 output buffer failures, 0 output buffers swapped out

Om een overzicht van de port-channel te kunnen krijgen gebruik je show etherchannel, dit geeft een overzicht zoals:

aazoo-testswitch3750#show etherchannel

Channel-group listing:
----------------------

Group: 15
----------
Group state = L2
Ports: 2 Maxports = 16
Port-channels: 1 Max Port-channels = 16
Protocol: LACP
Minimum Links: 0

aazoo-testswitch3750#sh etherchannel 15 summary
Flags: D - down P - bundled in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator

M - not in use, minimum links not met
u - unsuitable for bundling
w - waiting to be aggregated
d - default port

Number of channel-groups in use: 7
Number of aggregators: 7

Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
15 Po15(SU) LACP Gi1/0/24(P) Gi2/0/24(P)

Voor uitgebreide informatie voer je het commando show ether-channel detail uit:

aazoo-testswitch3750#sh etherchannel 15 detail
Group state = L2
Ports: 2 Maxports = 16
Port-channels: 1 Max Port-channels = 16
Protocol: LACP
Minimum Links: 0
Ports in the group:
-------------------
Port: Gi1/0/24
------------

Port state = Up Mstr Assoc In-Bndl
Channel group = 15 Mode = Active Gcchange = -
Port-channel = Po15 GC = - Pseudo port-channel = Po15
Port index = 0 Load = 0x00 Protocol = LACP

Flags: S - Device is sending Slow LACPDUs F - Device is sending fast LACPDUs.
A - Device is in active mode. P - Device is in passive mode.

Local information:
LACP port Admin Oper Port Port
Port Flags State Priority Key Key Number State
Gi1/0/24 SA bndl 32768 0xF 0xF 0x108 0x3D

Partner's information:

LACP port Admin Oper Port Port
Port Flags Priority Dev ID Age key Key Number State
Gi1/0/24 SA 4096 0021.2845.bd6c 9s 0x0 0x3E9 0x3 0x3D

Age of the port in the current state: 0d:00h:17m:08s

Port: Gi2/0/24
------------

Port state = Up Mstr Assoc In-Bndl
Channel group = 15 Mode = Active Gcchange = -
Port-channel = Po15 GC = - Pseudo port-channel = Po15
Port index = 0 Load = 0x00 Protocol = LACP

Flags: S - Device is sending Slow LACPDUs F - Device is sending fast LACPDUs.
A - Device is in active mode. P - Device is in passive mode.

Local information:
LACP port Admin Oper Port Port
Port Flags State Priority Key Key Number State
Gi2/0/24 SA bndl 32768 0xF 0xF 0x208 0x3D

Partner's information:

LACP port Admin Oper Port Port
Port Flags Priority Dev ID Age key Key Number State
Gi2/0/24 SA 4096 0021.2845.bd6c 10s 0x0 0x3E9 0x4 0x3D

Age of the port in the current state: 0d:00h:17m:06s

Port-channels in the group:
---------------------------

Port-channel: Po15 (Primary Aggregator)

------------

Age of the Port-channel = 3d:23h:10m:39s
Logical slot/port = 10/15 Number of ports = 2
HotStandBy port = null
Port state = Port-channel Ag-Inuse
Protocol = LACP
Port security = Disabled

Ports in the Port-channel:

Index Load Port EC state No of bits
------+------+------+------------------+-----------
0 00 Gi1/0/24 Active 0
0 00 Gi2/0/24 Active 0

Time since last port bundled: 0d:00h:17m:06s Gi2/0/24
Time since last port Un-bundled: 0d:00h:17m:13s Gi2/0/24

Website beveiliging bij de overheid

Onze overheid heeft halverwege dit jaar de campagne “Veilig internetten heb je zelf in de hand” gestart. Deze campagne is in het leven geroepen om gebruikers te wijzen op de gevaren van het internet.

In de zelfde periode is door de Nederlandse Vereniging van Banken de campagne “3x kloppen” gestart en begin December 2009 heeft de overheid een platform Internetveiligheid gestart.

Kern van de campagnes was dat gebruikers zelf goed op moeten letten welke informatie ze op internet delen en dat gebruikers goed controleren of de identiteit van een webpagina klopt. Zoals de meeste mensen wel zullen weten is de kern van het beveiligen van webpagina’s het gebruik van een SSL Certificaat. Met dit SSL Certificaat wordt de informatie die uitgewisseld wordt tussen de internet browser en de server(s) achter de website versleuteld. Certificaten kunnen zelf gegenereerd worden of door een “vertrouwde” certificerings organisatie. Deze organisaties zijn vertrouwd doordat hun certificaat meegeleverd wordt met de internet browser. De leverancier van de browser heeft de identiteit van de organisatie vastgesteld. Een organisatie of consument kan zijn of haar certificaat laten tekenen door deze organisatie waardoor automatisch de identiteit is gecontroleerd en de webpagina door de webbrowser als veilig wordt aangemerkt. Dit systeem is volledig gebaseerd op vertrouwen.

Helaas zijn theorie en praktijk niet altijd gelijk. Bij het aanvragen van een bedrijfsnummer voor aaZoo B.V. kwam ik terecht bij het loket elektronische formulieren van de OPTA. Dit loket wordt aangeboden door de overheid en is ingericht om veilig formulieren uit te kunnen wisselen of online in te kunnen vullen. Zodra ik terecht kwam op de pagina begonnen de alarmbellen van mijn browser te rinkelen.

Ongeldig certificaat OPTA

Blijkbaar is het certificaat verlopen op 23 November 2009 en dus niet meer geldig op mijn bezoek van 28 December.

Weergave ongeldig certificaat

Overigens heeft de OPTA nog een functie in de webpagina ingebouwd die de beveiliging van de elektronische formulieren moet verbeteren. Terwijl ik bezig was met het schrijven van deze blogpost kreeg ik een popup met de volgende tekst: “U bent meer dan 55 minuten bezig met het invullen van dit scherm. Klik op een knop onderin het invulscherm. U heeft hiervoor nog 5 minuten (tot 11:19). Anders moet u alle gegevens opnieuw invullen.
Ik weet niet zeker hoe dit de veiligheid van de pagina vergroot, maar gebruiksvriendelijk is het zeker niet.

Voor onze overheid heb ik nog een spreekwoord: “Goed voorbeeld doet goed volgen” of het bekende “Practice what you preach“. Het verbeteren van de veiligheid op het internet is uiteraard een goed streven, echter onze overheid dient hier een voortrekkersrol in te spelen. Het verlengen van een SSL Certificaat is een kleine actie die keurig een maand voor het verlopen kan en behoord te gebeuren. Uiteraard wordt de informatie nog wel versleuteld verstuurd, maar een niet-vertrouwde organisatie zou het originele certificaat gestolen kunnen hebben en zou kunnen proberen onze gegevens te onderscheppen. Het aanbrengen van beveiliging alleen is niet voldoende, ook onderhoud en controle is uitermate belangrijk zoals dit geval al aangeeft. Laat certificaten niet verlopen, zorg dat er regelmatig gecontroleerd wordt of breng een notificatie systeem in de lucht dat de data van certificaten automatisch controleert, zoals bijvoorbeeld Nagios.