Содержание статьи
Еще не так давно сервис
Clickatel,
позволяющий отправлять SMS с любого номера, казался настоящей находкой.
Побаловались - и надоело. Пора сделать следующей шаг и разобраться, как с
произвольного номера можно... позвонить и поговорить с человеком. А заодно
посмотреть, как возможно перехватить голосовой трафик, подобрать пароль для
аккаунта у SIP-провайдера и просто умело использовать замечательную технологию
VoIP.
Где взять дешевую связь?
Реализаций технологии, которая в целом называется Voice over IP (передача
голоса по IP), существует очень много. Взять хотя бы всем известный Skype.
Создатели разработали свой собственный протокол для передачи данных, позволяющий
обмениваться данными тем абонентам, между которыми прямое соединение установить
невозможно из-за файрволов и маршрутизаторов. К слову, перед тем как продать
eBay сам Skype Никлас Зеннстрём и Янус Фриис запатентовали фирменную пиринговую
технологию, и теперь (после сделки в несколько миллиардов долларов) собираются
вернуть свое детище назад. Впрочем, речь не об этом. Вопрос - так кто же
предоставляю самую дешевую связь посредствам VoIP? Ответить просто - никто.
Выбирать решение нужно исходя из своих потребностей и направлений для
звонков. Тот же Skype, в общем-то, предоставляет вполне вменяемые тарифы, а за
небольшую абонентскую плату готов вообще предложить безлимитные звонки (сразу
оговорюсь, что российское направление под эти условия не попадает). С другой
стороны, ты сразу становишь заложником оригинального клиента, а это значит, что
ты не сможешь привязать Skypе-аккаунт к аппаратным железкам. Чтобы не быть
связанным по рукам и ногам, многие отдают предпочтение технологии SIP (Session
Initiation Protocol) и AIX (Inter-Asterisk eXchange), которую использует
огромное количество провайдеров. Поскольку стандарты открытые, то и вариантов
использования море, включая многочисленные программные реализации, так и
аппаратные средства. Одна из самых удачных программных реализаций телефона, у
которой фактически нет достойных конкурентов является программа X-Lite (http://www.counterpath.com).
Операторов, предоставляющий услуги с использованием этих технологий настолько
много, что приводить обзор или банально сравнение было бы просто глупо. Вместо
этого упомяну одну интересную компанию, а именно Betamax. Это один из крупнейших
провайдеров VoIP связи в Европе, который, однако, не работает напрямую с
частными лицами, но зато предоставляет свои мощности и технологии для работы
многочисленных ресселеров. Фишка в том, что у каждого из таких ресселеров есть
определенная целевая аудитория, для которого каждый из них подгоняет свои
тарифы. Если с одного сервисов звонки в ту же Турцию платные, то есть все шансы
найти оператора, который предоставляет их бесплатно. Кстати, такой действительно
есть – www.12voip.com.
Остается только вопрос: как найти нужного? Для этого есть специальный сайт, на
котором автоматически собираются и группируются тарифы всех реселлеров. Держи
его в секрете:
http://backsla.sh/betamax. Если поискать, то практически для всех
европейский стран возможно найти оператора, который предлагает звонки по этому
направлению вообще бесплатно. Увы, в Россию бесплатные звонки доступны только в
направлении Питера и Москвы.
Еще один интересный момент. Каждый из Betamax-сервисов предоставляет
замечательную услугу — Direct Call, позволяющую обоим собеседникам обходиться
одним только телефоном безо всякой гарнитуры. Итак, смысл в следующем. В одно из
предложенных текстовых полей ты вводишь свой телефон, в другое — телефон своего
собеседника, тут же нажимая кнопку «Соединить». Не пройдет и пары секунд, как
раздастся телефонный звонок. Один на связи! Теперь сервис позвонит твоему
собеседнику. Как только тот возьмет трубку, между вами будет установлена прямая
связь. Вот так просто и эффектно. Причем состояние («идет звонок», «занято»,
«абонент не отвечает») ты в реальном времени можешь посмотреть на сайте (если,
конечно, для звонка используешь именно его).
Как пробрутить SIP-аккаунт
Практика показывает, что в Сети существует огромное количество неправильно
настроенных PBX (private branch exchange) или, по-русски говоря, офисных АТС, а
также просто SIP-аккаунтов со слабыми паролями. Для демонстрации этого поднимем
программную реализацию АТС на базе проекта Asterisk PBX (www.asterisk.org)
и проверим его на стойкость с помощью специального набора утилита SIPVicious (sipvicious.org),
написанных на Python'е. Для того чтобы долго не заморачиваться с установкой
Linux'а и дальнейшей настройкой АТС, мы взяли за основу проект Trixbox (www.trixbox.org),
в котором большинство сервисов уже толково настроены, а тебе остается лишь
ввести несколько настроек вручную через удобный веб-интерфейс. На офсайте есть
образ для виртуальной машины VMware, который можно запустить бесплатной утилитой
VMware Player (www.vmware.com/products/player/).
После запуска необходимо установить несколько так называемых extensions -
внутренних номеров: 100, 101 и 123. Для первого установим простой числовой
пароль, поле пароля для второго оставим пустым, а для третьего номера укажем
какое-нибудь простое слово, которое есть в любом словаре для брута: secret.
Опять же повторюсь: все эти действия мы провернули, чтобы создать площадку для
экспериментов. Для того чтобы найти уязвимые акки используется утилиты из пакета
SIPVicious: каждая из них работает в консоли и может запускать как под виндой,
так и туксом.
Для этого сначала просканируем заданную подсеть (скажем, это будет
192.168.1.1/24), чтобы найти BPX:
[you@box sipvicious]$ ./svmap 192.168.1.1/24
| SIP Device | User Agent
|
---------------------------------------------
| 192.168.1.103:5060 | Asterisk PBX
|
[you@box sipvicious]$
Таким образом, мы нашли нашу АТС-ку. Далее необходимо провести ее анализ и
отыскать extention'ы:
[you@box sipvicious]$ ./svwar.py 192.168.1.103
| Extension | Authentication |
------------------------------
| 123 | reqauth
|
| 100 | reqauth
|
| 101 | noauth
|
[you@box sipvicious]$
И хотя результат для нас вряд ли можно назвать неожиданным, мы видим, что
номер 101 не требует авторизации. А для 100 и 123 требуется ввести пароль.
Попробуем подобрать его для 100, используя подбор по числовым значениям (а они
используются более чем часто):
[you@box sipvicious]$ ./svcrack.py 192.168.1.103 -u 100
| Extension | Password |
------------------------
| 100 | 100 |
Пароль подобран! Теперь попробуем взломать пасс для аккаунта 123, используя
словарик:
[you@box sipvicious]$ ./svcrack.py 192.168.1.103 -u 123 -d
dictionary.txt
| Extension | Password |
------------------------
| 123 | secret |
Пассы найдены: осталось подставить найденные логин-пароль в свой SIP клиент и
проверить их в действии.
Конечно, вероятность успешного брутфорса на отдельно взятый аккаунт невелика.
Но среди сотен extention'ов всегда найдется хотя бы один со слабым паролем.
Более того, подход "обнаружить bpx, найти extention, подобрать пароль" является
одной из самых простых на VoIP. В ближайших номерах мы вернемся к этому вопросу
более детально.
Как подделать номер?
Возможность звонить по дешевым тарифам - это уже само по себе хорошо. Только
вот вместо твоего номера у абонента отображается либо "номер скрыт", либо
непонятный номер VoIP-шлюза, обратные звонки на который ни к чему хорошему не
приведут. Намного веселее, если бы в качестве CallerID можно было указать номер
своего сотового телефона, а еще веселее - любой произвольный номер! В былые
времена и, по правде говоря, не такие уж и давние, фокус с подделкой Caller ID
можно было провернуть, используя лояльность в настройках SIP-операторов. Правда
для этого приходилось серьезно попыхтеть, чтобы среди огромного количества
SIP-провайдеров найти тех, которые своими политиками жестко не фиксировали поле
CallerID, позволяя установить в него произвольное значение. Повторить фокус
сейчас, увы, не удалось, поэтому мы решили искать другие варианты.
Подставить в поле CallerID номер своего сотового телефона позволяются
большинство операторов, но требуют при этом пройти процедуру проверки. На
заявленный тобой номер отправляется SMS-сообщение со специальным кодом
верификации, который нужно ввести на сайте оператора. Примерно такую процедуру
мы ожидали увидеть и для использования приемиум-услуги от sipnet, благодаря
которой можно было "дать возможность абонентам видеть Ваш номер". Как и
полагается, используя услугу, возможно зарегистрировать свой сотовый на сайте и
подставлять его номер при исходящих звонках. Достаточно выбрать в личном
кабинете "Премиум услуги -> АОН -> SMS заказ звонка", где есть кнопка
"Зарегистрировать сотовый телефон". Но далее видим, что для регистрации
(внимание!) требуется всего лишь отправить со своего номера SMS, содержащее код,
полученный на сайте. Причем само SMS бесплатное и отправляется на обычный
федеральный номер. Понимаешь, к чему мы ведем? Ведь все, думаю, пользовались
отправкой смс с подменой номера отправителя? Некоторые сервисы предоставляют эту
услугу бесплатно, но добавляют в сообщение свою информацию, например, рекламу.
Нам же нужно, чтобы в смс ничего не было, кроме кода. Идеально подходит для
этого сервис от Yakoon.com.
Скачиваем с их сайта специальное клиент-приложение и регистрируемся.
На указанное при регистрации мыло придет код активации, который позволит нам
залогиниться. После этого на сотовый придет смс с кодом для получения 3
бесплатных смс, причем в качестве отправителя можно указать даже латинские
символы. Ну разве ж можно этим не воспользоваться? Создаем новое смс - его текст
и номер мы уже получили на сайте sipnet, осталось только указать номер
отправителя. В качестве номера можно указать любой номер телефона, например,
123456789. После того, как сообщение будет доставлено, в премиум услуге АОН
появится номер, с которого мы отправили смс. И то, ради чего мы этого делали:
этот номер можно будет подставить при звонках. Проще простого!
Имей ввиду, что когда номер регистрируется в сипнет, то на него приходит смс:
"Ваш номер зарегистрирован в sipnet". Кстати говоря, для удобства регистрации
новых номеров можно набросать небольшой скрипт, который сам будет запрашивать
номер верификации и через API Yakoon'а отправлять SMS для подтверждения номера.
Как прослушать Skype и SIP?
Перехват данных VoIP отличается от традиционного снифинга, имея свои нюансы,
хотя в общем перехват данных осуществляется по той же самой схеме. Нюанс
заключается в том, что прослушивание голосового трафика требуется перехвата
пакетов установления связи и ассоциированного медийного потока. Сигнальные
сообщения используют другой сетевой протокол (UDP или TCP) и порт, отличный от
самой передачи данных. В тоже самое время едиа поток обычно передается через UDP
с использованием RTP (Real Time Protocol). К счастью, задачи по перехвату RTP
пакетов и их декодирования, а также анализ сессии может автоматически
выполняться продвинутыми сниферами. Наш любимый Wireshark (www.wireshark.org)
имеет соответствующий пункт "Statistics -> VoIP Calls". Получив список VoIP
звонков, можно изучить, как происходил обмен данными на графической диаграмме,
или банально прослушать голосовые данные. Возможность для записи VoIP трафика
есть также у другой известной утилиты Cain and Abel (www.oxid.it),
а также UCSniff (http://ucsniff.sourceforge.net/).
Последний умеет перехватывать трафик и видеоконференций. Конечно, все это
действительно только в том случае, если трафик передается в незащищенном виде. В
качестве противодействия снифера можно использовать TLS (Transport Layer
Security) для криптования SIP сигналов и RTP (Secure Real Time Protocol) для
защиты голоса, но в большинстве случаев голос передается в открытом виде.
В плане защищенности намного более выигрышнее смотрится Skype, который в
обязательном порядке криптует все передаваемые данные. Ни одного решения для
перехвата и дешифрования трафика в публичном доступе не существуют. Многие
специалисты по ИБ заявляют, что их нет даже у спецслужб. И все-таки... отловить
разговоры по Skype все-таки можно, но только если получить доступ к системе
звонящего. Буквально за неделю до сдачи номера в печать швейцарский разработчик
программного обеспечения Рубен Уттереггер опубликовал исходники трояна,
перехватывающего разговоры по Skype. Троян принимает команды со специального
сервера и отправляет на него аудио файлы. Самая главная изюминка малвари
заключается в модели Skype-Tap, которая перехватывает API-вызовы Skype'а,
находит среди прочего PCM аудио данные, и преобразовывает их в MP3, после его
шлет на сервер-хранилище в зашифрованном виде. Подробнее прочитать, а также
посмотреть сорцы ты можешь на сайте разработчика:
www.megapanzer.com.
Как завести бесплатный номер за границей
Одна из интереснейших услуг Skype'а с давних времен была опция SkypeIn,
позволяющая завести номер в США и принимать звонки, используя клиент Skype.
Правда, за использование взималась абонентская плата. И вот теперь обзавестись
своим собственным номером в других странах появилась можно совершенно бесплатно.
Groovy Tel (www.groovytel.com)
предоставляет бесплатный номер в Штатах. Каждый звонок на этот номер будет
переадресован одной из систем, в которой реализовано голосовое общение: Google
Talk, MSN Messenger, Yahoo Messenger, Free World Dialup или Gizmo. Правда, для
регистрации тебе придется иметь профиль в социальной сети Facebook и
обзавестись, как минимум, 20 друзьями. 🙂 При регистрации позволяют выбрать
номер из 3 предложенных, но кнопка "Обновить" позволяет очень быстро отыскать
наиболее достойный вариант. Я тестировал систему с GTalk: все отлично работает,
а при поступлении звонка даже отображается номер абонента. Другой сервис
JetNumber пригодится если номер нужен всего на несколько дней - срок триального
периода, в ходе которого услугой можно пользоваться бесплатно. Для проверки
можно взять номерочек в Аргентине, Франции, Мексике, Соединенном Королевстве,
США.
Конечно, здорово, что Groovy Tel переадресуют звонки на IM-клиент, но было бы
еще лучше если в качестве точки назначения можно было указать любого SIP/IAX-оператора.
Такую услугу, и опять же бесплатно предоставляет IPKall (www.ipkall.com).
Поддержка открытых протоколов, позволяет не только использовать софтварные
решения, но и аппаратные девайсы. Ничего не стоит перенаправлять звонки на
SIP-аккаунт (купленный в том же
sipnet.ru), который привязан к VoIP-шлюзу. Такой адаптер позволяет
подключить самый обычный телефон, а с IPKall'а на него можно принимать звонки со
своего бесплатного номера в Штатах. Правда, у сервиса нет мгновенной регистрации
и после составления заявки придется немного подождать.
Мини-атс из точки доступа!
Для того чтобы поднять офисную АТС вовсе необязательно приобретать
дорогостоящий девайс. Если ты внимательно читал наш раздел SYN/ACK, то вероятно
уже разобрался с тем, как поднять программное решение на базе
Asterisk (www.asterisk.org).
Правда в этом случае нам все равно понадобится компьютер с поднятыми никсами
(хотя бы под виртуальной машиной), можно поступить еще хитрее. Если у тебя дома
есть точка доступа или другой управляемое сетевое устройство, то поднять сервер
Asterisk можно попробовать на
нем. На моем Asus Wl500gP, о котором я уже не раз писал, после установки
прошивки от Oleg'а, установка осуществляется всего двумя командами:
ipkg uninstall asterisk
ipkg install asterisk14
reboot
Далее остается лишь добавить нескольких пользователей и привязать их к
extention'ам (внутренним номерам), воспользовавшись мануалом для начинающих:
http://www.en.voipforo.com/asterisk/asterisk-first-steps.php. После этого
остается установить на разных машинах SIP-клиенты, прописать сервер и учетки.
WWW
Отличная подборка софта по VoIP:
http://www.voipsa.org/Resources/tools.php
Список провайдеров, предоставляющих прямые телефонные номера в разных
странах:
http://www.voip-info.org/wiki/view/DID+Service+Providers
WARNING
Некоторые владельцы хотспотов намеренно блокируют протокол SIP, чтобы клиенты
не использовали IP-телефонию.
Вся информация представлена исключительно в ознакомительных целях. В случае
использования ее в незаконных целях редакция ответственности не несет.