Как я взломал Facebook

Original author: Ryan Dewhurst
  • Translation
Хорошо, хорошо. Я не совсем «взломал 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 за платеж и надеюсь, что смогу сообщить им еще об ошибках в будущем.
  • +22
  • 37.9k
  • 7
Share post

Comments 7

    +35
    Стилистических и пунктуационных ошибок настолько много, что отправлять это все в личку бессмысленно. Перечитайте, пожалуйста, текст еще раз на свежую голову и исправьте.
      +5
      Перевод. Хорошо, хорошо. Не совсем «перевод».
        +25
        Всегда, когда вижу пост с названием вроде «Взломал Facebook», в надежде хочу увидеть отсутствие значка «Перевод».
          +1
          Больше болда и италика, вдруг мы чего-то не заметили в этой огромной простыне текста.
            0
            К слову, в Groovy незачем писать столько кода чтобы вывести результат команды, достаточно

            println "ls -la".execute().text
            
              0
              Было бы интересно узнать сколько времени люди тратят на поиск уязвимостей в Facebook, и сколько из них успешно их находят. Чтобы оценить насколько вообще имеет смысл этим заниматься.
                –6
                $7500 наверное теперь в рублях храните?) а вообще перевод ни перевод, а прочитать было интересным!

                Only users with full accounts can post comments. Log in, please.