Кругом одни расходы! Вот взять хотя бы телефонные разговоры. Кажется мелочь, но обходится недешево. А частенько вообще влетает в копеечку, особенно если вечером взбредет в голову позвонить давней подружке с Камчатки. Или, что еще хуже, из США - вот ведь куда ее занесло! Конечно, Skype - это выход из положения, но быстрый инет и компьютер есть под рукой далеко не всегда. А разговаривать бесплатно хочется и желательно по обычному телефону. Потому-то мы и задались большой и значимой целью - научиться звонить бесплатно. И ведь научились же!
В давние времена для того, чтобы позвонить куда-либо на халяву, приходилось обманывать АТС. Это было непросто, и без знания специальной системы сигнализации №7 (Signaling System 7, SS7) рыпаться было бесполезно. Освоив огромную кипу документации, можно было по-настоящему гордиться собой и считать себя авторитетным фрикером. Существовал также вариант применения навыков социальной инженерии при общении с оператором, но и это не гарантировало результатов. Тем более постоянных. Сейчас же все изменилось и подходы стали совершенно другими.
Впрочем, и связь уже не та. Повсюду цифровые АТС, в метро - реклама многочисленных альтернативных операторов, предлагающих звонки по межгороду и за рубеж за копейки. А по сети и вовсе - звони в любые точки мира через тот же Skype. А все благодаря чему? Все благодаря технологии VoIP, с помощью которой, как выяснилось, можно звонить не только дешево, но и вообще бесплатно!
Вот оно, решение
Признаться, на возможность бесплатно звонить по межгороду я наткнулся совершенно случайно. На глаза попалась ссылка на программу, якобы позволяющую совершать звонки в другие города и страны абсолютно 4free. И если бы не пара восторженных комментариев от авторизированных пользователей, то я тут же бы определил для себя эту программу как очередное средство выманивания многочисленных паролей пользователей или тупой маркетинговый ход. Но нет. Оказалось, что по ссылке wwwpoivy.com действительно можно скачать некое приложение, внешний вид которого говорил о том, что позвонить с его помощью все-таки реально. Но куда, пока было неясно. Никакого намека на принадлежность к России не было, поэтому в возможность звонков на российские городские телефоны я верил с трудом. Но все-таки решил попробовать!
Как и в любой сети, для работы требовалось завести себе аккаунт. В случае с PoivY все, что нужно, - это желаемое имя пользователя, пароль и рабочий email. После этого можно пользоваться. В нижней части интерфейса есть текстовое поле; оно никак не обозначено, но по иконкам с зеленой и красной трубкой телефона несложно догадаться, что предназначено оно для ввода номера. Итак, попробуем. Я ввожу свой домашний телефон в международном формате (+74842546743) и звоню.
Каково же было мое удивление, когда стоящий рядом телефон действительно запищал. я снял трубку, соединение было установлено практически моментально. Тут же начались эксперименты со звонками в Москву, Питер, Рязанскую область - куда бы я не звонил, соединение устанавливалось мгновенно. Связь на самом высоком уровне, с небольшими и вполне простительными задержками. К сожалению, радость длилась недолго, и очень скоро сервис сообщил о том, что лимит бесплатных минут исчерпан. Далее - внимание: я просто выбрал в меню «Файл -> Войти как новый пользователь» и получил новую порцию бесплатных звонков. Вот это сервис .
Но решение с ограничениями
Без ложки дегтя, конечно, не обошлось. Самый главный недостаток этого сервиса - отсутствие возможности звонить на мобильные телефоны (забегая вперед, скажу, что для этого пришлось искать другой способ). Но зато широта всевозможных направлений бесплатных звонков впечатляет. Хотя и тут есть свои тонкости. Сразу после регистрации оператор выделяет небольшую сумму для пробного звонка (0,151 евро). Звонки с пометкой Free, то есть бесплатные, на самом деле стоят денег (пускай и ничтожных). В зависимости от выбранного направления, бесплатных разговоров с одного аккаунта может хватить на 5-30 минут. Повторная регистрация решает проблему, но лишь отчасти, потому как количество учетных записей с одного IP ограничена и каждый раз придется не только регистрировать, но еще и периодически заботиться о смене своего сетевого адреса. Выход из этой ситуации - положить на счет 10 евро. После этого у тебя в течение трех месяцев будет 300 бесплатных минут в неделю, а сами деньги ты можешь потратить на мегадешевые звонки (гораздо выгоднее именитого Skype), к примеру, на мобилы. Впрочем, на этом тонкости не заканчиваются.
Небольшое расследование
В ходе небольшого расследования выяснилось, что подобных PoivY-сервисов как минимум с десяток. Они имеют разные названия и разные клиенты, но все как один являются реселлерами (то есть обычными перепродавцами) крупной телекоммуникационной компании Betamax (wwwbetamax.com). Но нам это даже на руку!
У каждого из реселлеров есть свой список бесплатных направлений, зависящий от ориентированности их клиентов. Поэтому если с одного сервиса звонки в ту же Турцию платные (как, например, в случае с описанным PoivY), то есть все шансы найти оператора, который предоставляет их бесплатно. Кстати, такой действительно есть – www12voip.com. Остается только вопрос: как найти нужного? Для этого есть специальный сайт, на котором автоматически собираются и группируются тарифы всех реселлеров. Держи его в секрете: http://backsla.sh/betamax. Для справки: сразу 16 сервисов предоставляют бесплатные звонки в Россию.
И еще один момент. Каждый из Betamax-сервисов предоставляет замечательную услугу - Direct Call, позволяющую обоим собеседникам обходиться одним только телефоном безо всякой гарнитуры. Итак, смысл в следующем. В одно из предложенных текстовых полей ты вводишь свой телефон, в другое - телефон своего собеседника, тут же нажимая кнопку «Соединить». Не пройдет и пары секунд, как раздастся телефонный звонок. Один на связи! Теперь сервис позвонит твоему собеседнику. Как только тот возьмет трубку, между вами будет установлена прямая связь. Вот так просто и эффектно. Причем состояние («идет звонок», «занято», «абонент не отвечает») ты в реальном времени можешь посмотреть на сайте (если, конечно, для звонка используешь именно его).
А как же мобилы?
Неприятное ограничение, связанное с отсутствием возможности позвонить на мобильные телефоны, заставило нас продолжить эксперименты. Новая задумка появилась довольно скоро. А почему бы самим не устроить бесплатное направление туда, куда нужно? Для того чтобы лучше понять суть идеи, давай разберемся, каким образом устроены популярные VoIP-сервисы.
Огромную роль во всей индустрии играет замечательная технология SIP (Session Initiation Protocol), отвечающая за передачу голоса, трансляцию видео и отправку факсимильных сообщений. Это не единственный протокол, используемый для передачи данных в цифровом виде, однако именно он получил наибольшее распространение за счет своей открытости. И именно его использует абсолютное большинство приложений, как клиентских для осуществления звонков пользователями, так и серверных, которые эти звонки обрабатывают.
Общая схема работы следующая. Есть клиенты, которые с помощью специальных VoIP-телефонов либо чисто программных средств (тот же Skype или Gizmo) соединяются со специальным координирующим звеном - учрежденческой АТС (в английских терминах - BPX, Private Branch eXchange). BPX управляет звонками между своими пользователями или, в случае необходимости, перенаправляет их на обычные телефоны (сотовые или городские), то есть в так называемую телефонную сеть общего пользования (PSTN, Public Switched Telephone Network). Перенаправление осуществляется за счет специальных шлюзов - SIP-прокси. Поэтому общая идея заключалась в том, чтобы найти SIP-прокси, просканировав диапазон IP-адресов, получить к ним доступ (в случае если они закрытые), а потом использовать полученные аккаунты в настроенном нами VoIP-софте. Вот тебе и бесплатные звонки.
Ищем SIP-прокси
Реализовать эту затею можно при помощи SIPVicious. Это известный набор утилит, написанных на Python, который идеально подходит для SIP-хакинга. Состоит он из нескольких приложений:
svmap - сканер SIP-устройств в сетях;
svwar – сканер активных подключений на PBX;
svcrack – пасс-крякер для SIP PBX.
Зачастую на VoIP-устройствах используются распространенные пароли, поэтому подобрать их не составляет труда. Этим когда-то воспользовался VoIP-хакер Робер Муре (Moorer). Им было украдено кредитов на 10 миллионов минут разговора общей стоимостью 1 миллион долларов. Неплохо. Однако за этим последовал его арест ФБР, но это уже другая история , а факт остается фактом.
Итак, приступим. Качаем пакет с сайта code.google.com/p/sipvicious и с помощью интерпретатора Python запускаем сканер:
python swmap.py 10.1.1.1/24 -p(порт)-o scan.csv
Через некоторое время будет готов отчет о сканировании scan.csv, в котором мы увидить список найденных устройств для подключения. В тех же целях можно использовать никсовую утилиту smap, в этом случае команда для начала сканирования выглядит примерно так:
smap -0 -t 10.1.1./24
Двигаемся дальше. Среди найденных шлюзов большая часть, наверняка, будет запаролена, поэтому натравляем на них брутфорс (файл с паролями для перебора ты найдешь на нашем диске):
python swcrack.py хост -p(порт) -u(предположительное имя пользователя) -d (файл с паролями для перебора)
Что делать дальше
Итак, у нас есть серверы, параметры учетной записи. Что делать дальше? Нужно понять, что с помощью этих данных можно направить звонки в чужие сети, имеющие выход на PSTN-гейт, а значит, звонить фактически на любые номера! Поэтому сразу после того, как мы обзавелись SIP-аккаунтами, мы подняли свою собственную PBX, то есть небольшую АТС. Тут мы могли поступить двумя способами: либо купить дорогостоящее физическое оборудование, что для нас явно не вариант, либо же использовать программные реализации. Самым авторитетным инструментом, конечно, является никсовый Asterix, но мучиться с ним не хотелось. В наших целях был вполне пригоден его виндовый порт или решение от компании Brekeke. Последнее поставляется в практически настроенном виде, и все, что от нас требуется, - это создать нового пользователя и указать насканенный SIP-gate (Voip provider), обозначив его IP-адрес (или имя), а также порт, что, собственно, мы и сделали. В качестве программного телефона (softphone) был взят уже проверенный вариант - программа X-Lite from Xten, в которой нужно лишь указать сервер, а также параметры созданного пользователя. Готово!
Не работает!
Казалось бы: есть шлюз на PSTN, есть своя PBX, есть софтовый телефон. Звони не хочу. Но и тут есть нюансы. Во-первых, номер набирать нужно обязательно в международном формате, об этом подробно написано в журнале, во врезке. Но это ерунда по сравнению со вторым нюансом. Дело в том, что заранее определить, в какие направления разрешает переадресацию звонков взломанный SIP-прокси, мы не можем. Возможно, только в Штаты. Или только в Европу. Вполне реально, что во все направления или вообще никуда. Определить это можно фактически только методом тыка. Хотя посмотреть географию сервера (воспользовавшись сервисом wwwip2location.com) тоже не помешает. Если выяснится, что SIP-прокси находится в Германии, то есть все основания полагать, что туда-то звонки будут перенаправлены точно. С остальными странами все аналогично!
Поехали!
Запускаем X-Lite. Идет соединение с нашей BPX. Все ОК. Впрочем, по-другому и быть не может. Теперь вводим московский мобильный номер и, практически не дыша, жмем на клавишу соединения… А-а-а! Телефон на столе завибрировал, указав какой-то странный немецкий номер. Мы дозвонились!