Цели публикации:
1. Показать на примере простоту взлома популярного open-source продукта Asterisk.
2. Разобраться в популярной ошибке большинства администраторов VOIP сетей связанной с механизмом аутентификации в протоколе SIP.
3. Получить возможность зарегистрироваться на удаленном Asterisk по протоколу SIP, и как следствие получить доступ в телефонную сеть общего пользования в в образовательных целях.
Первым делом необходимо скачать пакет скриптов SIPVicious tool suite, я в собственных изысканиях использую open-source продукт SIPP, но недавно я нашел пакет SIPVicious и решил что он более подходит для решения этой вполне конкретной задачи.
Задача №1:
Определить список SIP proxy доступных в некой сети X.X.X.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 найден, во всех остальных случаях результат отрицательный.
Результатом поиска userID на удаленном asterisk может являться следующая информация:
./svwar.py -p 5060 ip_address_IP_PBX -e100-999
| Extension | Authentication |
——————————
| 200 | noauth|
| 201 | reqauth |
В данном примере на удаленном прокси мы нашли два userID, на запрос с userID = 200 пришел ответ 200 OK (регистрация не требуется).
Для теста можно взять любой программный SIP телефон, указываем в качестве sip proxy ip address asterisk, в качестве userID пишем 200, поле пароля оставляем пустым, пробуем позвонить.
На этом этапе придется применить смекалку, так как «взломанный» asterisk может оказаться не в default moscow city а например где нибудь в Конго, но ведь нам не нужно на этом зарабатывать деньги и заниматься мошенничеством?
Правда?
Что делать с userID для которых скрипт svwar.py выдал “reqauth” (необходима авторизация)?
Тут мы подошли к самой главной ошибке всех администраторов: никогда не указывайте authorization username = username для регистрации SIP абонентов!
В случае если нерадивый администратор для простоты решил сделать “authorization username = username” ( в 50% случаев так и происходит), нам осталось вычислить пароль, будем делать это простым перебором, либо перебором по словарю при помощи скрипта svcrack.py.
./svcrack.py ip_address_IP_PBX -u 201
| Extension | Password |
————————
| 200 | 201 |
Вот собственно пароль подобран…
Более подробно о опциях вышеуказанных скриптов можно узнать запустив их с опцией -h.
Всё вышесказанное я категорически рекомендую использовать только для проверки собственных сетей и самообразования. Ну и как всегда, автор не несет ответственности за все ваши эксперименты…
Выводы:
1. Практика показала что за час в ручном режиме можно подобрать пароли к трём серверам asterisk, и как следствие получить незаконный выход в телефонную сеть общего пользования.
2. Всегда указывайте указывайте различные значения для authorization username и username для регистрации SIP абонентов.
3. Контролируйте количество сигнальных сообщений приходящих на ваш SIP proxy, вполне возможно что вас сканируют, ведь в мире достаточно много мошенников которые только и думают как нажиться за ваш счет.
1. Показать на примере простоту взлома популярного open-source продукта Asterisk.
2. Разобраться в популярной ошибке большинства администраторов VOIP сетей связанной с механизмом аутентификации в протоколе SIP.
3. Получить возможность зарегистрироваться на удаленном Asterisk по протоколу SIP, и как следствие получить доступ в телефонную сеть общего пользования в в образовательных целях.
Первым делом необходимо скачать пакет скриптов SIPVicious tool suite, я в собственных изысканиях использую open-source продукт SIPP, но недавно я нашел пакет SIPVicious и решил что он более подходит для решения этой вполне конкретной задачи.
Задача №1:
Определить список SIP proxy доступных в некой сети X.X.X.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 найден, во всех остальных случаях результат отрицательный.
Результатом поиска userID на удаленном asterisk может являться следующая информация:
./svwar.py -p 5060 ip_address_IP_PBX -e100-999
| Extension | Authentication |
——————————
| 200 | noauth|
| 201 | reqauth |
В данном примере на удаленном прокси мы нашли два userID, на запрос с userID = 200 пришел ответ 200 OK (регистрация не требуется).
Для теста можно взять любой программный SIP телефон, указываем в качестве sip proxy ip address asterisk, в качестве userID пишем 200, поле пароля оставляем пустым, пробуем позвонить.
На этом этапе придется применить смекалку, так как «взломанный» asterisk может оказаться не в default moscow city а например где нибудь в Конго, но ведь нам не нужно на этом зарабатывать деньги и заниматься мошенничеством?
Правда?
Что делать с userID для которых скрипт svwar.py выдал “reqauth” (необходима авторизация)?
Тут мы подошли к самой главной ошибке всех администраторов: никогда не указывайте authorization username = username для регистрации SIP абонентов!
В случае если нерадивый администратор для простоты решил сделать “authorization username = username” ( в 50% случаев так и происходит), нам осталось вычислить пароль, будем делать это простым перебором, либо перебором по словарю при помощи скрипта svcrack.py.
./svcrack.py ip_address_IP_PBX -u 201
| Extension | Password |
————————
| 200 | 201 |
Вот собственно пароль подобран…
Более подробно о опциях вышеуказанных скриптов можно узнать запустив их с опцией -h.
Всё вышесказанное я категорически рекомендую использовать только для проверки собственных сетей и самообразования. Ну и как всегда, автор не несет ответственности за все ваши эксперименты…
Выводы:
1. Практика показала что за час в ручном режиме можно подобрать пароли к трём серверам asterisk, и как следствие получить незаконный выход в телефонную сеть общего пользования.
2. Всегда указывайте указывайте различные значения для authorization username и username для регистрации SIP абонентов.
3. Контролируйте количество сигнальных сообщений приходящих на ваш SIP proxy, вполне возможно что вас сканируют, ведь в мире достаточно много мошенников которые только и думают как нажиться за ваш счет.