23 августа 2013 в 18:29

Отправка сообщения от любого пользователя любому. ̶$̶6̶0̶0̶ Бесплатно ;)



Немного новостей с рынка продажи эксплойтов


Для введения в экскурс дела — существуют различные биржи эксплойтов, и сегодня на одной из них — 1337day.com, появился эксплойт со следующим названием — "Facebook Send Messages From Anyone 0day" с ценой в $600…

Итак, начало истории. В очередной раз проверяя 1337day.com и завидев эксплойт стало сразу интересно, так как подобные случаи (эксплойты для сервисов, где есть bugbounty) бывают редко. Открыв эксплойт, видим цену в $600 и следующее описание:
This Exploit allowed you to send messages from any person to any one on facebook

Первым делом вбиваем в гугл и находим видео-демо эксплойта, загруженное несколько часов назад:



Просмотрев которое можно понять схему работы эксплойта за считанные секунды, зная работу facebook. Facebook выдает каждому юзеру почту, вида username@facebook.com. username — публичен, идет после facebook.com/username. Это первый момент.

Второй — если отправить письмо на почту username@facebook.com — сообщение попадет в общий чат (где обычные сообщения). Ну а если письмо придет с почты, на которую зарегистрирован какой-либо аккаунт — мы получим письмо от этого юзера. И момент, если к аккаунту привязаны еще емейлы, то можно использовать любой из них. Т.е. зная почту, на которую зарегистрирован пользователь, мы можем слать от него сообщения. Но есть 2 отличия:
  • У юзера, от кого мы пишем сообщение — его не будет в отправленных
  • Сообщение будет помечено очень мелкой иконкой


Готовим атаку


Чтобы повторить эксплойт достаточно поднять свой smtp сервер (на примере debian)
sudo apt-get postfix
и поставить sendemail
apt-get install sendemail

Дальше всего одна строчка:
sendemail -f from@gmail.com -t username@facebook.com -u subj -m message
Works is done ;) И да, PTR запись, откуда шлем — обязательна (т.е. у домена в конфигах postfix). Иначе сообщения не будут доходить.

Конечно же, мы решили об этом сначала сообщить (в ФБ). И уже после некоторый поиск дал еще информацию, что это уже очень старая «фича», и подобный сплойт до сих пор находится в продаже на этом же ресурсе, но за $700
1337day.com/exploit/description/20296
Где в комментах можно увидеть, что люди это используют свыше 2х лет. Ну а эксплойт выше все также в продаже…


Demo from 090h

Всем пятницы и хороших выходных ;)

upd: минуту назад ответили из FB:
Hi,

The ability to deliver unauthenticated messages is a core «feature» of how SMTP email operates. Essentially, email messages are spoofable by design. Facebook products that integrate with SMTP validate the authenticity of email messages whenever possible (with SPF, DKIM, and/or DMARC). In the absence of these authentication signatures, Facebook will display a visible warning to the user indicating that the sender of the message could not be verified.

More information is available here: www.facebook.com/help/200366226674864
Автор: @BeLove
Digital Security
рейтинг 221,72
Безопасность как искусство

Комментарии (31)

  • +12
    Теперь их будет ещё штук пять по цене $500, $400, $300 и т.д.? :)
    • +30
      Надо онлайн сервис поднять, мол «Отправка сообщений Facebook от выбранного пользователя. 50 центов за 5 сообщений!». Более выгодно ИМХО ;)
      • 0
        … отправь СМС на номер…
  • 0
    Видимо что-то случилось. Мне вообще не доходят сообщения на фейсбуковский ящик отправленные из почтового клиента.
    • 0
      Они сваливаются в «другое» или как-там называют эту штуку…
      • 0
        В моём случае всё оказалось иначе:
        ----- The following addresses had permanent fatal errors ----- <*****@facebook.com> (reason: 554 5.1.8 DNS-P3 http://postmaster.facebook.com/response_codes?ip=91.***.**.**#dns-p No PTR Record)
    • 0
      Только что проверил — почтовые сервера facebook-а сообщения принимают, возвращают 250 ОК, но во входящих ничего не видно. В other тоже.
      Может, уже починили? ;-)
  • +26
    Судя по всему продавать уязвимости таким образом куда проще, чем участвовать в программе поиска уязвимостей и получать за это бонусы.
    • +3
      Как понимаю, это фича (хоть и не додуманная), раз об этом настолько давно известно в Сети.
      • –1
        > раз об этом настолько давно известно в Сети
        Невозможность проверить отправителя smtp?
        Да, давно, с 1982 года.
    • +5
      Недавний случай это подтверждает
  • +1
    Почему sendemail если sendmail?
    • +3
      Да можно и вообще другие утилиты использовать. Я использовал именно sendemail, а не sendmail, ваш выбор.
      • +3
        Понятно, думал опечатка.
  • 0
    Точно на facebook.com, а не facebookmail.com? У меня ни так, ни так не получилось ничего.
    • 0
      Точно facebook, проверено на пачке юзеров. Видимо пытаются сделать что-то, так как и с легитимной почты не приходит письмо.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +2
    Больше всего поражают ответы фейсбука. Неужели они думают, что маленький желтый треугольничек в углу — достаточно, чтоб среднестатистический пользователь фейсбука не доверял отправителю? Там должно однозначно читаться «Сообщение неизвестно от кого», а в уголке мелкими буквами «возможно от Васи Пупкина, но мы этого точно не знаем».
    • –1
      В gmail такая же штука, можно послать от любого адреса и кроме еле-заметной серой надписи «via addressofserver.com» ничего не будет.
      • НЛО прилетело и опубликовало эту надпись здесь
      • НЛО прилетело и опубликовало эту надпись здесь
    • +2
      У меня в одном из сообщений где указана тема письма, не показывался треугольник.

  • –1
    может я чего-то не понимаю, но если у вас есть PTR Record т.е. ФБ идентифицирует отправителя по IP, то после отправки, скажем 50 писем с этого и-мейла (айпи), отправителя легко забанят за спам. Ну да, можно отправить парочку писем, но удивляться что ФБ не парится по этому поводу — не стоит.
  • 0
    Зачем сендмейл для отправки мыла?
    • 0
      Вообще-то в статье речь идет о sendEmail.
      • 0
        А он зачем? Письмо и телнетом послать можно (:
        • 0
          Может сразу Почтой России? :)
        • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Немного не понял. Ведь автор эксплойта пишет:

    buglab
    09/02/2013 in 23:34
    @Tr0jaN_Dz.eXe — with this exploit, you will not get any yellow sign at all.
    • 0
      Сегодня тоже заметил. В некоторых случаях способом выше так же нет желтого знака, нужно покопать еще.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка