Взлом акканутов Instagram c Fuckerom

 Взлом акканутов Instagram c Fuckerom

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


Многие хотят знать как это выглядит. Я покажу в видео, которое для вас записал. Многие не поймут, но если интересно - смотрите.

Количество потоков ))




Эта статья описывает мой поиск уязвимости в 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. Это будет стоить приблизительно 50 $ что бы воспроизвести полную атаку.


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

Report Page