• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Статья Взлом акканутов Instagram

Доброго времени суток, эта статья является переводом оригинальных ( , ).

Из-за того что оригинальные статьи небольшие, я решил объединить их в одну

Как я мог взломать любой инстаграм аккаунт


Эта статья описывает мой поиск уязвимости в Instagram, которая позволяет хакнуть любой аккаунт без явного разрешения. Facebook и команда безопасности Instagram уже исправили уязвимость и выплатили мне 30.000 $ по программе bug-bounty.


Facebook работает изрядно для улучшения их контроля безопасности на всех их платформах. И часть из этой работы можно увидеть в их недавнем повышении выплат о нахождении критических уязвимостей, которые включают взлом аккаунтов. Поэтому, я решил попробовать найти что-то в Facebook и Instagram. К счастью, я был способен найти одну такую уязвимость в Instagram.



«Instagram забывает конечную точку отправки пароля» - первое, что пришло мне в голову, пока я искал уязвимость. Я попытался восстановить свой пароль на сайте Instagram. Механизм сброса пароля оказался довольно сильный, и по этому, я ничего не нашел за несколько минут тестирования.

После этого, использовал восстановления пароля на мобильном устройстве, где я уже нашел предсказуемое поведение. Когда пользователь вводит свой номер телефона, ему отправляется код из 6 цифр в виде смс на его телефон. И что бы изменить свой пароль, пользователь должен ввести этот код. И из этого следует, что если мы способны попробовать все вариации кода на конечную точку, мы сможем изменить пароль на любом аккаунте. Но я был уверен, что должен существовать такой механизм и лимит ввода кода, чтобы избежать подобного брут форса. И я решил протестировать.

Мои тесы показали наличие подобного механизма. Я отправил около 1000 запросов, и 250 из них прошли удачно, но 750 были уже не приняты из-за ограничение попыток (ошибка rate limit). Я попробовал другую 1000 запросов, но теперь еще больше запросов имели эту ошибку. Поэтому, их система определяет и отвергает запросы превосходно.

Всего двумя вещами я был поражен: количеством запросов и отсутствием черного списка. Я могу отправлять запросы непрерывно, без ошибок и блокировок, хотя количество запросов, которые я могу отправить за короткий промежуток времени, ограничено.

После двух дней тестирования, я нашел такие способы решения, которые мне бы позволяли обойти этот лимит запросов:

  • Конкуренция ( Race Hazard)
  • Смена IP
Если вы впервые столкнулись с первым пунктом, вы можете более детально ознакомиться здесь ( ). Отправка конкурентных запросов, используя огромное количество IP, позволит мне отправлять большое количество запросов без лимитов.

Номера запросов, которые мы можем отправлять, зависят от условий и от IP, которые мы используем. Также, код работает 10 минут, и это делает атаку еще сильнее, поэтому, нам необходимо тысячи IP что бы выполнить атаку.

Я отписал про уязвимость в команду безопасности Facebook, и они не смогли воспроизвести из-за малого количество информации в моем докладе. Спустя пару сообщений и качественного доказательства, в виде видеозаписи атаки, я все же смог убедить их, что атака осуществима.


PoC (Proof of Concept)

Запрос кода
Код:
POST /api/v1/users/lookup/ HTTP/1.1
User-Agent: Instagram 92.0.0.11.114 Android (27/8.1.0; 440dpi; 1080×2150; Xiaomi/xiaomi; Redmi Note 6 Pro; tulip; qcom; en_IN; 152830654)
Accept-Language: en-IN, en-US
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Host: i.instagram.com
Connection: keep-alive

q=mobile_number&device_id=android-device-id-here

Жертва получит код и он исчезнит через 10 минут.


Проверка кода
Код:
POST /api/v1/accounts/account_recovery_code_verify/ HTTP/1.1
User-Agent: Instagram 92.0.0.11.114 Android (27/8.1.0; 440dpi; 1080×2150; Xiaomi/xiaomi; Redmi Note 6 Pro; tulip; qcom; en_IN; 152830654)
Accept-Language: en-IN, en-US
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Host: i.instagram.com
Connection: keep-alive

recover_code=123456&device_id=android-device-id-here

Теперь нам надо пробрутфорсить эту конечную точку, используя большое количество IP. Приблизительно 200 000 запросов я смог отправить, используя только один IP, при этом обходя лимит.

Секрет заключается в использовании 1000 разных устройств (чтобы легко достигнуть конкуренции) и IP, что бы отправить 200 000 запросов в моих тестах.



В сценарии реальной атаки, хакер должен иметь 5000 IP чтобы взломать аккаунт. Звучит сложно, но будет гораздо легче, если у вас имеется облако от Amazon или Google. Это будет стоить приблизительно 150 $ что бы воспроизвести полную атаку.

Команда безопасности Facebook была убеждена, предоставив вышеупомянутое видео об отправке 200 000 действительных запросов. Они также быстро решили и устранили проблемы.


1567319991341.png


Сообщение от Facebook для автора статьи, о начислении 30 000$ за найденый баг.


Как я опять взломал Инстаграм

Эта статься описывает мой поиск уязвимости в Instagram, которая позволяет хакнуть любой аккаунт без явного разрешения. Facebook и команда безопасности Instagram‘а уже исправили уязвимость и выплатили мне 10.000 $ по программе bug-bounty.



В прошлом месяце я опубликовал уязвимость по взлому аккаунта в Instagram, где за 10 минут смог взломать любой аккаунт. Эта уязвимость похожа с прошлой, но с меньшей критичностью.

Как вы могли заметить в моем предыдущем посту, ID устройства – уникальный идентификатор, используемый Instagram‘ом для проверки кодов сброса пароля. Когда пользователь запрашивает код, используя свой номер телефона, ID устройства отправляется с запросом. Тот же ID устройства использовался снова для проверки кода.


Проверка кода


Код:
POST /api/v1/accounts/account_recovery_code_verify/ HTTP/1.1
User-Agent: Instagram 92.0.0.11.114 Android (27/8.1.0; 440dpi; 1080×2150; Xiaomi/xiaomi; Redmi Note 6 Pro; tulip; qcom; en_IN; 152830654)
Accept-Language: en-IN, en-US
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Host: i.instagram.com
Connection: keep-alive


Recover_code=123456&device_id=device-id



ID устройства является случайной сгенерированной Instagram‘ом строкой. Поэтому, что если тот же ID устройства снова использовать для запроса кодов от нескольких учетных записей Instagram.



В чем заключается взлом?

Что бы проверить все возможное коды, которые состоят из 6 цифр, понадобится 1 миллион кодов (от 000001 до 999999). Когда мы запрашиваем код от нескольких пользователей, мы повышаем возможность взлома аккаунтов. К примеру, если вы запрашиваете код от 100 000 пользователей используя один ID устройства, вы можете уже достичь 10% успеха, потому то для одного ID выдается 100 000 кодов. Если мы запросим пароли для 1 миллиона пользователей, мы сможем взломать все миллионные учетные записи, увеличивая код доступа по одному.

Поэтому, хакеру стоит запросить кода от 1 миллиона пользователй чтобы завершить атаку с полным успехом. Стоит отметить, что код существует только 10 минут, и поэтому, вся атака должна произойти в течении 10 минут.

Сейчас все проблемы уже были решены командой безопасности Facebook и мы не можем взломать Instagram аккаунты используя эту уязвимость.



После патча

1567320119285.png


Сообщение от Facebook для автора статьи, о начислении 10 000$ за найденый баг.
 
Последнее редактирование:
А почему не использовать тор для получений та адресов
 
М-да, вместо того, чтобы заработать в десятки раз больше, автор слил уязвимости по дешовке...
 
Я тоже подумал об этом когда читал статью, сейчас же они по сути что там изменили, уже не получиться использовать этот вектор атаки?
Думаю попробовать можно. Но тогда следует менять абсолютно все данные: user-agent, постоянно создавать новую цепь Tor и прочее... Думаю за 10 минут 1 миллион запросов можно и не создать.
 
Здраствуйте, а есть возможность востановить удаленные сообщения в instagram?
 
Здрастуйте який програмний код можна використати щоб встановити мою сторінку інстаграм
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD