Перехват сессии мобильного приложения VK

Discussion in 'Безопасность и Анонимность' started by 6agupa, 3 Jun 2015.

  1. 6agupa

    6agupa New Member

    Joined:
    8 May 2015
    Messages:
    27
    Likes Received:
    4
    Reputations:
    0
    Всем привет. Озадачилась недавно перехватом сессии VK. Если с HTTP-сессией открываемой в браузере всё ясно и понятно (просто перехватываешь cookie и дело в шляпе - можно выкачивать весь профиль для дальнейшего изучения в офлайне), то с мобильным приложением дела обстоят похуже.

    Мобильное приложение VK использует тот же самый публичный API, что и другие приложухи. Идентификатор приложения для Android: app2274003. Секретный ключ API: hHbZxrka2uZ6jB1inYsH. (Посмотреть можно в классе com.vkontakte.android.Auth декомпилятором Java) API предполагает, что каждый запрос нужно подписывать параметром sig (сигнатура). Сигнатура вычисляется по следующему правилу:

    Code:
    sig=md5('uri запроса со всеми параметрами и access_token'+SECRET)
    (Подробнее смотри метод com.vkontakte.android.api.APIRequest.getSig())

    Если с uri запроса проблем нет - он виден в снифере, то проблемы с полем SECRET есть и большие. Этот параметр передаётся по сети и перехватить его можно только непосредственно при аутентификации с телефона. Дальше этот параметр хранится в памяти телефона (смотри класс com.vkontakte.android.Global и поле secret) и каждый раз восстанавливается из памяти и никогда не запрашивается с сервера.

    У кого какие идеи на этот счёт?

    SECRET имеет размерность 18 символов и словарь для брутфорса будет занимать 12 393 496 ТБ. Таким образом брутфорс параметра SECRET полностью исключён. Радужные таблицы так же не имеют смысла, так как по сути, URI запроса является salt - он каждый раз разный.

    Кажется, что единственным возможным способом перехватить SECRET это каким-то образом разлогинить приложение (или заставить его думать, что оно разлогинилось) и уже после этого перехватывать SECRET.
     
    #1 6agupa, 3 Jun 2015
    Last edited: 3 Jun 2015
  2. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Не все так просто. Для перехвата запроса авторизации нужно будет добавить на устройстве свой сертификат в доверенные.
     
  3. 6agupa

    6agupa New Member

    Joined:
    8 May 2015
    Messages:
    27
    Likes Received:
    4
    Reputations:
    0
    Я так понимаю, что для того, чтобы приложение работало по HTTPS, пользователь должен зайти в настройки и включить эту опцию. Кажется, что по умолчанию она выключена и какая-то часть пользователей никогда не заходила на вкладку "Безопасность" в настройках профиля.

    Или я заблуждаюсь?
     
  4. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Авторизация по https, остальные запросы в зависимости от настроек.
     
    VentaL74 likes this.
  5. 6agupa

    6agupa New Member

    Joined:
    8 May 2015
    Messages:
    27
    Likes Received:
    4
    Reputations:
    0
    Вот чёрт. Совсем вылетело из головы, что запросы на авторизацию идут по HTTPS.
    Как на счёт SSL Strip? Вариант?
     
  6. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    SSLstrip перенаправляет https на http. При отправке запроса авторизации по http мы получим ответ:
    Code:
    {"error":"invalid_request","error_description":"You must use HTTPS for oauth\/token requests"}
     
  7. 6agupa

    6agupa New Member

    Joined:
    8 May 2015
    Messages:
    27
    Likes Received:
    4
    Reputations:
    0
    Беда... То есть, тупик.
    Загнать сертификат на устройство жертвы незаметно для неё - это что-то фантастическое, на мой взгляд.
     
  8. SXZhbgo

    SXZhbgo New Member

    Joined:
    17 Jan 2016
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Если я не ошибаюсь, SSLstrip не "перенаправляет", а находясь посередине делает что-то типа fallback'a и клиент посылает человеку в середине не зашифрованные данные, а вот SSLstrip может дальше работать по https
     
  9. Leonidus_a

    Leonidus_a New Member

    Joined:
    28 Feb 2016
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    Да, но только при условии, что в телефоне уже будет установлен сертификат для соединения Телефон - ССЛ стрип. Посокльку данные с телефона на страницу авторизации наверняка пойдут по HTTPS, и еще нужно чтобы данные пошли именно к тебе. Но это уже совсем другая история и как я понимаю перед вопрошаюшим она уже не стоит.
     
  10. CoolHacker

    CoolHacker New Member

    Joined:
    1 Sep 2016
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Лично я когда чекаю с помощью sslstrip я получаю токен. Как я понимаю про взлом аккуантов, в которые заходят с помощью мобилного приложения - можно забыть?
     
  11. pornosporno

    pornosporno New Member

    Joined:
    24 Sep 2016
    Messages:
    4
    Likes Received:
    0
    Reputations:
    1
    Вроде Intercepter-NG должен справиться:
    https://habrahabr.ru/post/263789/