Ние търсим и хакнем VoIP шлюзове за всеки хакер, използващ VoIP


Xakep # 239. Отворете и разгледайте

Xakep # 238. Забравен Android

Xakep # 237. Darknet 2018


Xakep # 235. Прераждане на експлоатационни китове
Съдържанието на статията
Как започна всичко
На темата за звездичките и избора на пароли за тях са написани много статии. Хората в темата вероятно са чували за пренебрежителния набор от помощни програми и мнозина дори са ги опитвали. Когато обаче сканирате мрежата с помощта на svmap.py (скриптът е включен в гореспоменатия комплект), в допълнение към звездичките в мрежата има различен VoIP хардуер, като Cisco, AddPac, Linksys и т.н. Те обикновено имат собствен уеб интерфейс. И ако смятате, че е защитен с парола, тогава вероятно сте прав. Но не винаги:). Linksys по подразбиране няма парола в уеб интерфейса. Но напразно, тъй като много от техните парчета желязо могат да бъдат достъпни отвън.
Свиквам с
SIP регистрация
Нека да видим как работи процесът на регистрация на SIP. Първоначално клиентът изпраща заявка „РЕГИСТРИРАНЕ“ до Softswitch (например Asterisk), в която няма парола, а само контакт. В отговор се получава съобщението „401 Unauthorized“, което показва, че трябва да преминете „Digest удостоверяване на достъпа“. В изпратеното съобщение се генерират nonce и сфера. Използвайки nonce и realm (получени от сървъра), парола и потребителско име (регистрирани на шлюза), както и digesturi, шлюзът генерира md5 хеш - отговор - и изпраща всичко това обратно към Softswitch, който проверява изпратените данни. Ако те са верни, тогава връща 200 ОК, ако не - отново 401. Оказва се, че ако получите регистрационния дъмп, ще имате всички данни с изключение на паролата и можете да я познаете. За да направите това, инсталирайте звездичка, стартирайте един връстник в нея, въведете потребителското име, като на шлюз, и напишете всяка парола. След това прилагаме настройките.
Най-простият връстник от /etc/sip.conf:
[Перу]
тип = приятел
username = потребителско име от шлюза
тайна = helloworld
хост = динамичен
disallow = всички
позволи = alaw
позволи = ulaw
11 милиона евро щети от хакери на VOIP
Според документите на разследването, първоначално момчетата бяха ограничени до безплатни разговори в различни посоки. Но апетитите, както знаете, нарастват и момчетата бързо осъзнаха как могат да го монетизират. За две години те направиха над 23 500 обаждания (това са 315 000 минути) към платени номера, които предлагат разнообразни услуги за пари (предимно от референтен тип). Печалбата е получена от участие в партньорски програми с доставчици на същите тези платени номера. Направена е първата печалба. Осъзнавайки, че няма да е възможно да печелим много заедно, специална компания, Shadow Communication Company Ltd. От този момент нататък бизнесът достигна съвсем ново ниво. Чрез наемане на хора и внедряване на удобен за потребителя интерфейс за служителите (например, той показва цени за повиквания до премиум тарифи и специални условия, като ограничения за броя на обажданията на ден), те успяват да достигнат напълно нови висоти. Освен това беше организирана компания, която сама предоставяше възможност за регистриране на платени номера, а за по-ефективна работа - система за препоръчване, която стимулира активността.
Сега става ясно откъде идва толкова страхотна сума на щетите на честни VoIP потребители. Компанията Shadow Communication осъществи 1 541 187 неоторизирани обаждания, което е 11 094 167 минути разговор. Не се изненадвайте от тези цифри: това е броене от регистрационните файлове, предоставени от доставчиците на VoIP. Сега 42 души са замесени в случая в различни градове на Европа.
Предполагане на парола
След това отварям сметището (например с помощта на Wireshark). Там намирам РЕГИСТЪР пакет с отговор - сега всички данни са налице и няма какво да се направи - напишете скрипт, за да познаете паролата. Между другото, можете също да улавяте данни в конзолата на звездичката, за това въвеждаме "sip set debug on" в CLI и разглеждаме съдържанието на пакетите. С оглед на факта, че скриптът, с който е намерен шлюзът, е написан на Python, реших да не се отклонявам от традицията и написах друг скрипт също на Python. В него трябва да повторя цялата азбука. За целта използвах готов клас - той решава проблема с генерирането на всички възможни опции за парола и ви позволява да зададете азбуката на груба сила (т.е. да търсите само между цифри, малки букви и всяка тяхна комбинация) . И също така задайте дължината на паролата, нейните начални и крайни стойности.