![]() |
Хотел написать заметку по мотивам конкурса, но получилась статья )
И так, имеем веб-приложение - корпоративный портал. В портале тысячи пользователей, все сотрудники организации (или почти все). Внутри портала корпоративные чаты, личные чаты, задачи, планы, такой отечественный аналог Jira и Confluence. Главная страница представляет из себя форму логина: https://forum.antichat.xyz/attachments/4934935/0.png Также есть форма восстановления пароля, в которой можно перебрать имена пользователей. Но кроме юзеров admin и test там никого перебрать не удалось. Никакие известные сплоиты не сработали, уже найденные пароли не подошли, брутфорс тоже дело безнадёжное. Хотелось уже оставить это приложение, как не пробитое, но я решил поискать мобильные приложения Заказчика и нашел! У компании имеется собственное мобильное приложение для Андроид, существующее исключительно для сотрудников компании. В приложении, как и в веб-портале, есть личные и общие чаты, новости компании и еще какой-то функционал. Главный экран приложения выглядит так: https://forum.antichat.xyz/attachments/4934935/1.png "Забыли пароль?" выглядит так: https://forum.antichat.xyz/attachments/4934935/2.png Как связаны веб-портал Битрикс24 и это приложение? Я пробросил трафик приложение через Burp и увидел, что запросы от мобильного приложения летят как раз в портал, в котором есть REST API. Это повод для оптимизма ) Что имеем на данный момент: 1. Нужно знать ФИО; 2. Нужно знать дату рождения; 3. Нужно знать пароль; 4. Если не знаем пароль, нужно знать номер телефона. Пока из всех четырех пунктов мы не знаем ничего. Попробуем поковырять код приложения (для этого можно использовать jadx). Внутри найдем номер телефона: https://forum.antichat.xyz/attachments/4934935/3.png Как видите, кроме номера телефона еще был найден пароль, но он никуда не залетел. Пробуем ввести номер телефона в форму восстановления пароля в мобильном приложении и получаем такую картинку: https://forum.antichat.xyz/attachments/4934935/4.png То есть нам надо ввести 4 каких-то неизвестных цифры. Это всего-то 10000 вариантов. Напоминаю, что весь трафик идет через Burp, поэтому сразу отправляю в Intruder и перебираю код. Код подобрался, никаких ограничений на перебор нет. Вводим код и после этого можем установить новый пароль. К сожалению скрин с установкой нового пароля у меня не под рукой, но надеюсь вы мне верите. Но далее загвоздка. Владельца номера телефона на тот момент я не установил, его ФИО не знаю. Получается, что просто кому-то пароль сменил и на этом всё. На данном этапе надо: 1. Найти достоверно сотрудника компании; 2. Получить его ФИО и дату рождения; 3. Получить его номер телефона; 4. Сбросить пароль. Тогда мы сможем залогиниться в мобильное приложение. Чтож, приступаем к ОСИНТу ) Поиск группы компании в ВК длился пару минут. Среди подписчиков стал перебирать по одному и смотреть, у кого в профиле указаны максимально полные данные. Нашелся такой сотрудник (по понятным соображениям я скрываю информацию о нем): https://forum.antichat.xyz/attachments/4934935/5.png По скриншоту видно, что указана его полная дата рождения и номер телефона без последней цифры. Также есть его имя и фамилия, но нет отчества. Уже что-то. А точнее почти всё! Осталось узнать отчество, а последню цифру номера телефона я подобрал руками прямо в интерфейсе приложения. Дело в том, что приложение сообщало о не правильном номере в форме восстановления пароля. Как узнать отчество? В друзьях ВК я не нашел его отца, хотя нашел братьев и сестер. По братьям и сестрам тоже не понятно, родные или нет, поэтому я пошел другим путем. На его странице нашел несколько занятных фоток - он любитель рыбалки. Настолько любитель, что явно спортсмен. Быстрый гугл по соревнованиям по спортивной рыбалке в рамках региона проживания цели дал результат. Я нашел таблицу соревнований, в которой были указаны полные данные этого парня, включая отчество (верифицировал по дате рождения). (я хотел тут вставить скрин с таблицей, но смысла нет, так как там все замазано) Теперь все данные на руках, сбрасываем ему пароль, и логинимся в приложении: https://forum.antichat.xyz/attachments/4934935/6.png В его профиле ничего интересного, рядовой сотрудник. Но напомню, что мобилка работает с веб-порталом через api и трафик идет через Burp. Максимально потыкал приложение, собрал эндпоинты апи и нашел несколько IDOR-ов. Проще говоря, я смог собрать достаточно полную информацию о всех юзерах приложения, включая их логины, номера телефонов, фио, и многое другое. Забегая далеко вперед, там было найдено несколько прикольных уязвимостей, например, позволяющих добавить себя в любой чат, в который тебя не приглашали. Но не об этом речь, наша цель - выполнение команд на сервере. Так как были найдены логины и номера телефонов, теперь можно попробовать сбросить пароль для юзера (желательно привилегированного), от которого можно зайти веб-портал. От текущего юзера я почему-то не смог залониться в веб. Нашел нужного юзера, сбросил ему пароль (вышеуказанным способом) и залогинился в портал через веб. https://forum.antichat.xyz/attachments/4934935/7.png Внутри портала: https://forum.antichat.xyz/attachments/4934935/8.png Дальше все оказалось совсем просто. Поиском ищем админов портала, смотрим их профили, берем их номера телефонов, логины (их так просто не увидешь, надо пошерстить код веб-страниц), сбрасываем пароли, и заходим в портал от имени админа. Что дальше? Думаю, что мало для кого секрет, что внутри битрикса есть интерфейсы, которые позволяют выполнять произвольный код на PHP совершенно легально. Таким образом и было пробито это веб-приложение через мобилку. Мобилка не входила в scope, но оказалась точкой входа внутрь сети. https://forum.antichat.xyz/attachments/4934935/9.png Спасибо за внимание! ) |
Твоя статья про взлом Bitrix24 через мобилку — просто огонь! Ты круто разобрался в теме и всё так понятно расписал, что даже новичку ясно. Видно, что ты в теме кибербезопасности шаришь на все 100%. Было реально интересно читать про все эти фишки и этапы взлома. Отличная работа, так держать!
|
Хорошоая статья, на одном дыхании
|
получается, что RCE легальная для определенного пула ролей, а весь взлом за счет osint'a
какое может быть решение по предотвращению? кажется только блочить перебор кода для восстановления |
Цитата:
|
Огонь, можешь попродробнее рассказать про то как ты пробросил трафки приложения через Burp?
Добавил в закладки |
Цитата:
P.S. Друзья, используйте дефолтный шрифт, пожалуйста. |
Цитата:
|
Цитата:
Цитата:
|
| Время: 23:39 |