Исследователь Оранж Цай (Orange Tsai), консультант DevCore, увлекался поиском уязвимостей в сервисах Facebook, желая поучаствовать в bug bounty программе компании. В итоге вместо какой-нибудь XSS уязвимости, Цай обнаружил бэкдор (“черный ход”) неизвестного злоумышленника, который собирал учетные данные сотрудников популярной соцсети.

Об этом этом Цай написал в своем блоге.

Так, еще в конце февраля 2016 года Цай решил поискать уязвимости в Facebook, и начал с исследования бэкэнда компании. Стоит отметить, что эти сервисы не принимают участия в программе вознаграждений за уязвимости.

Используя reverse whois, Цай сумел обнаружить домен files.fb.com, который используется сотрудниками социальной сети как хостинг для файлов и работает под управлением Accellion Secure File Transfer (FTA).

В итоге кропотливой работы исследователь обнаружил целый букет проблем: три XSS уязвимости; два бага допускающие локальное повышение привилегий; давно известную проблему с секретным ключом, которая может привести к удаленному исполнению кода; и pre-auth SQL-инъекцию, которая тоже позволяла удаленно выполнить произвольный код.

Последним багом в FTA Цай воспользовался сам. В результате чего получил доступ к серверу Facebook и полный контроль над машиной. В принципе, Цай достиг своей цели – нашел проблему, так что он принялся собирать данные для отправки отчета в Facebook.

3 1040x561

Кроме того, Цай обратил внимание, что в логе /var/opt/apache/php_error_log присутствуют странные сообщения об ошибках. Отследив причину этих ошибок, исследователь обнаружил непонятный webshell, который явно был загружен на сервер не сотрудниками Facebook. Просмотрев его исходный код, Цай понял, что кто-то перехватывает учетные данные сотрудников компании, а затем сохраняет логины и пароли в локальный файл.

В include_once значился sclient_user_class_standard.inc.orig, который используется PHP для верификации пароля. По мнению Цая, хакер, по сути, внедрил в процесс прокси для перехвата GET, POST, COOKIE значений и запросов.

4 copy copy copy

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

Всю собранную информацию Цай передал в службу безопасности Facebook, за что его наградили призом в размере $10 000.