Безопасность VOIP
Недавно, моих знакомых нагрели на хорошую сумму пролив через их voip сеть изрядное количество забугорного трафика...
Я подумал, а ведь черт возьми наверно это просто написать скрипт который будет шерстить интернет в поисках глупых админов...
Сказано, сделано, скрипт написан но я им не поделюсь, потому как это чистой воды криминал, а вот рассказать про механизм могу...
you are welcome
Итак задача по получению несанкционированного доступа на asterisk...
SIPVicious tool suite
Задача №1, определить список SIP proxy доступных в некой сети X, поиск ведется пингом SIP сообщениями по порту 5060…
./svmap.py X.X.X.X/16
:) мы будем искать на просторах сети всеми любимый asterisk
./svmap.py X.X.X.X/16 | grep -i asterisk
на выходе… если он есть конечно:) , имеем список чужих IP PBX asterisk…
Задача №2, определить список живых userID ( в случае с IP PBX мы будем искать phone extensions) на удаленном SIP Proxy. Технология чудовищна проста, мы будем посылать на удаленный proxy сообщения REGISTER (также можно INVITE или OPTIONS задается опцией -m) в которых перебираем значения userID, очень тупо и очень эфективно. В процессе перебора скрипт анализирует ответ SIP Proxy, в случае если мы получаем 401 или 200 OK , –> userID найден, во всех остальных случаях результат отрицательный. Вы конечно будут смеяться но первый найденный мною asterisk рассказал о себе следующее:
./svwar.py -p 5060 ip_address_IP_PBX -e100-999
| Extension | Authentication |
——————————
| 200 | noauth|
| 201 | reqauth |
На удаленном прокси мы нашли два userID, на запрос с userID = 200 пришел ответ 200 OK, берем любой sip softphone, указываем в качестве sip proxy ip address нашей жертвы, в качестве userID пишем 200, поле пароля оставляем пустым, пробуем позвонить…Asterisk оказался польским, я позвонил в варшаву:), я сходил за пивом и успокоился…
Задача №3, что делать с userID для которых скрипт svwar.py выдал “reqauth” (необходима авторизация) ? Тут мы подошли к самой главной ошибке всех админов, внимание никогда, НИКОГДА, не указывайте authorization username = username для регистрации абонентов по SIP ! В случае если нерадивый админ для простоты решил сделать “authorization username = username” нам осталось вычислить пароль, будем делать это тупым перебором…либо перебором по словарю(см.доп. опции в справке -h)
./svcrack.py ip_address_IP_PBX -u 200
| Extension | Password |
————————
| 200 | 200 |
Вот собственно пароль подобран… Более подробно о опциях вышеуказанных скриптов можно узнать запустив их с опцией -h;)
Вкратце всё, естественно весь вышеописанный процесс можно автоматизировать, лучше и правильней это делать с помощью SIPP (я это сделал…) для глобального тестирования сетей.
Естественно всё вышесказанное я категорически рекомендую использовать только для проверки собственных сетей и самообразования. Ну и как всегда, автор не несет ответственности за ваши эксперименты…
Выводы:
1. В мире полно идиотов, за час было взломано три астериска.
2. Всегда указывайте указывайте различные значения для authorization username и username для регистрации SIP абонентов.
3. Контролируйте количество сигнальных сообщений приходящих на ваш SIP proxy, кругом не только идиоты(см.пункт№1) но и негодяи которые только и думают как нажиться за ваш счет.
4. Если кто желает оформить красивую статью на эту тему, то welcome в личку , мне тупо лень…
|