05.12.2008

Недавно, моих знакомых нагрели на хорошую сумму пролив через их 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) но и негодяи которые только и думают как нажиться за ваш счет.