Asterisk – securitate

Despre asterisk cred că știți. Presupun că știți că băieții deștepți încearcă să obțină acces pe diferite sisteme care rulează asterisk pentru a putea realiza convorbiri telefonice (de obicei internaționale) pe cheltuiala deținătorului sistemului PBX.

În fișierele log ale unui sistem asterisk pe care îl administrez am observat intrări de genul:

[Jan 3 21:16:27] NOTICE[80538] chan_sip.c: Registration from ‘”110″ <sip:110@adresa.ip.server>’ failed for ‘adresa.ip.atacator’ – Wrong password
[Jan 3 21:16:27] NOTICE[80538] chan_sip.c: Registration from ‘”110″ <sip:110@adresa.ip.server>’ failed for ‘adresa.ip.atacator’ – Wrong password
[Jan 3 21:16:27] NOTICE[80538] chan_sip.c: Registration from ‘”110″ <sip:110@adresa.ip.server>’ failed for ‘adresa.ip.atacator’ – Wrong password
[Jan 3 21:16:28] NOTICE[80538] chan_sip.c: Registration from ‘”110″ <sip:110@adresa.ip.server>’ failed for ‘adresa.ip.atacator’ – Wrong password
[Jan 3 21:16:28] NOTICE[80538] chan_sip.c: Registration from ‘”110″ <sip:110@adresa.ip.server>’ failed for adresa.ip.atacator’ – Wrong password
[Jan 3 21:16:28] NOTICE[80538] chan_sip.c: Registration from ‘”110″ <sip:110@adresa.ip.server>’ failed for ‘adresa.ip.atacator’ – Wrong password
[Jan 3 21:16:28] NOTICE[80538] chan_sip.c: Registration from ‘”110″ <sip:110@adresa.ip.server>’ failed for ‘adresa.ip.atacator’ – Wrong password

Cum a ajuns la concluzia că există extensia 110 pe sistemul respectiv? Am zis că nu strică să folosesc un scaner SIP pentru a vedea ce poate obține un eventual atacator.
Am folosit pentru asta SIPVicious. Puteți descărca ultima versiune la data acestui articol de aici: https://sipvicious.googlecode.com/files/sipvicious-0.2.8.tar.gz. (PS: L-am găzduit și pe site-ul meu).

Cum l-am folosit eu:

cd /tmp
wget https://sipvicious.googlecode.com/files/sipvicious-0.2.8.tar.gz
tar xvfz sipvicious-0.2.8.tar.gz
cd sipvicious-0.2.8

Veți observa că avem la dispoziție câteva unelte în acest director:

  • svcrack.py
  • svcrash.py
  • svmap.py
  • svreport.py
  • svwar.py

Putem folosi unealta svmap.py pentru a scana blocuri de adrese în căutare serverelor SIP.  Eu știam deja ce doresc să scanez, așa că am introdus direct adresa IP a serverului:

./svmap.py adresa_ip_server_asterisk

Am obținut ca și rezultat ceva de genul următor:

| SIP Device | User Agent | Fingerprint |
––––––––––––––––-
| adresa_ip:5060 | asterisk | disabled |

O altă unealtă este svwar.py care scaneaza  serverul asterisk pentru a afla extensiile disponibile:

./svwar.py -e 100-9999 adresa_ip_server_asterisk

Rezultatul a fost neasteptat:

| Extension | Authentication |
––––––––––
| 120 | reqauth |
| 130 | reqauth |
| 110 | reqauth |
| 102 | reqauth |
| 103 | reqauth |
| 100 | reqauth |
| 101 | reqauth |
| 104 | reqauth |

Este îngrijorător că se pot afla astfel toate extensiile configurate pe serverul respectiv. Folosind apoi unealta svcrack.py se poate afla parola prin brute-force, mai ales dacă aceasta nu este de complexitate mare. Cum majoritatea folosesc parole simple (chiar de genul extensia 1000, parola 1000, pentru a fi ușor de reținut), vă dați seama ce ușor poate un răuvoitor să se autentifice acolo și să realizeze convorbiri telefonice.

De exemplu, puteți încerca:

./svcrack.py -u120 -r1-9999 adresa_ip_server_asterisk

pentru a testa parole de la 1 la 9999 pentru extensia 120.

Drept urmare am zis că este cazul să iau câteva măsuri pentru ca serverul respectiv să nu devină victima unui atacator. Astfel, prima dată am modificat în fișierul sip.conf directiva alwaysauthreject, astfel încât aceasta să fie:

alwaysauthreject=yes

Nu uitați să reporniți asterisk sau măcar reload la partea de SIP.

O nouă scanare acum cu svwar.py acum returnează:

ERROR:TakeASip:SIP server replied with an authentication request for an unknown extension. Set –force to force a scan.
WARNING:root:found nothing

Este mai bine, nu?

Rămâne în continuare problema în care un potențial atacator cunoaște sau ghicește numerotația extensiilor și încearcă prin brute-force să o afle. Ce putem face? Nativ, asterisk nu are o protectie pentru acest gen de atac.

O soluție voi prezenta în următorul articol.

 

 

Articole asemanatoare:

Bogdan Turcanu

Bogdan Turcanu

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.