[Перевод] Как я взломал Facebook
Хорошо, хорошо. Я не совсем «взломал Facebook». Я добился выполнение команды уровня операционной системы на одном из серверов Facebook.Рассказ, как я это сделал.В прошлом сентябре я оказался в постели со страшным гриппом. Пока был прикован к постели, заскучал и начал копаться программе Поиска уязвимостей Facebook (Bug Bounty Facebook). Я и раньше участвовал в подобных программах, но никогда в программе Facebook.
Кстати, это совсем не сложный хак, но он сработал.
Начал с nmap, просканировал порты и ограничился доменами принадлежащих Facebook. Обнаружил несколько сервисов на разных IP-адресах. Также я посмотрел на поглощения, которые сделал Facebook. Провел подобное сканирование стандартных портов обнаруженных сервисов.
На одном из IP-адресов приобретенном Facebook оказался Jenkins, работающий на стандартном порту. Открыв его в моем браузере, к сожалению, получил окно логина базовой аутентификации (Basic Authentication). Полагаю, это место, где большинство других охотников за головами и собственная команда безопасности Facebook заканчивают тестирование.
Решил сделать nmap полное сканирование портов. Результаты показали, другой сервис Jenkins работающею на менее стандартном порту. Получив к нему доступ, меня не ожидала аутентификация. Бинго!
Для тех из вас, кто не знают, Jenkins — сервер непрерывной интеграции (CI, Continuous Integration). После проверки подлинности позволяет запускать Groovy-код через Jenkins Script Console.
С помощью Groovy-кода и Jenkins Script Console я мог выполнять команды на сервере под пользователем jenkins.Пример Groovy-кода для запуска whoami команды:
def command = »«whoami»« def proc = command.execute () proc.waitFor ()
println «stdout: ${proc.in.text}» Сообщил об этой проблеме Facebook, и они исправил это очень быстро. Я получил $7500 через их программу поиска уязвимостей. На платеж потребовалось несколько месяцев и много писем туда и обратно. Но конечном счете я его получил.Что в итоге? Не забывайте, основ. Я был в состоянии найти довольно рискованную ошибку в одном из приобретений Facebook, будучи в моей кровати, только с помощью nmap.
Я хотел бы сказать спасибо Facebook за платеж и надеюсь, что смогу сообщить им еще об ошибках в будущем.