Расшифровка TCP пакетов

Discussion in 'Этичный хакинг или пентестинг' started by Matrix3007, 2 Feb 2020.

  1. Matrix3007

    Matrix3007 New Member

    Joined:
    3 Aug 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    В общем, имеется ссылка на какую-то страницу какого-то сайта. Чтоб получить нормальный ответ, нужно открыть ссылку с их же приложения-клиента (на андроиде), иначе можно получить только предупреждение о том, что ссылка только для мобилок. Задача: посмотреть, как формируется запрос и подделать его. С самого приложения пакеты отправляются на 443 порт, только вот это TCP. На счет андроида я не заморачивался и сэмулировал его с помощью BlueStacks. Пакеты ловил с Wireshark. Приложение вроде как получает нормальный ответ, но в пакетах он нечитаем. То есть, всё, что я вижу, выглядит примерно так:

    ...G.9...p.a.C.U7448...Ky+..y:~._...,sW.......S.....b...9.Z...w4...\.E.?...\.a)...

    ...............................h2.http/1.1.......

    Понимаю, что шифрование, но делать с этим что-то надо. Есть какие-нибудь варианты?
     
  2. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,401
    Likes Received:
    875
    Reputations:
    858
    Я подобное перехватывал с помощь бурпа, на телефоне/эмуляторе устанавливаем прокси на комп где запущен бурп, далее импортируем сертификат бурпа, и начинаем юзать приложуху
     
    _________________________
  3. Matrix3007

    Matrix3007 New Member

    Joined:
    3 Aug 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Тоже мысль промелькала, но ведь он tcp не перехватывает, только http. Возможно, я чего-то не понимаю)
     
  4. Matrix3007

    Matrix3007 New Member

    Joined:
    3 Aug 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Там получается так: если приходит http, серв отправляет предупреждение, а нормальный ответ даёт только на сформированный клиентом tcp запрос, который я не то что подделать - прочитать не могу.
     
  5. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,401
    Likes Received:
    875
    Reputations:
    858
    Все норм он будет перехватывать, если правильно сделаете.
     
    _________________________
  6. Matrix3007

    Matrix3007 New Member

    Joined:
    3 Aug 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    И всё-таки, Burp Suite прокси работает по протоколу http. Да и я уже пробовал его юзать, только немного по-другому. Я весь трафик с компа отправлял на 127.0.0.1:8080 (прокси бурпа) и потом уже просматривал содержимое ссылки с приложения. Ответ получал, а в бурпе ничего не было.
     
  7. molemime

    molemime Member

    Joined:
    6 Dec 2017
    Messages:
    52
    Likes Received:
    17
    Reputations:
    0
    http это сетевой протокол, работающий на стеке протокола tcp/ip только уровень другой по модели osi
     
  8. aberkroft

    aberkroft Member

    Joined:
    9 Feb 2020
    Messages:
    43
    Likes Received:
    14
    Reputations:
    3
    Запишите трафик wireshark-ом, например
     
  9. Hohol99

    Hohol99 Member

    Joined:
    7 Apr 2020
    Messages:
    59
    Likes Received:
    18
    Reputations:
    0
    Неверно, к сожалению. HTTP/HTTPS - протколы прикладного уровня, а TCP - транспортного, представьте матрешку, в итоге мы имеем следующее - прикладной уровень разделили на порции и отправили внутри транспортного, см. модель OSI.

    В этом и суть зашифрованного трафика, что расшифровать его может только владелец приватного ключа (сервер), в клиентском приложении его нет.
    Решение выглядит вот так: распаковать приложение, заменить его родной сертификат сертификатом, выпущенным при помощи burp suit/Fidler
    настроить прокси и наблюдать за идущим расшифрованным
     
  10. tarasov2000

    tarasov2000 New Member

    Joined:
    9 Jun 2021
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Приватный ключ с приложения вытаскивай и им расшифровывай ответы с сервера. Чтоб посмотреть что на сервер уходит - подмени сервер на свой, узнаешь первый запрос, отправишь его на настоящий, посмотришь ответ и так далее
    Для твоей задачи не так много запросов будет, быстрее все в ручном режиме сделать
     
  11. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    585
    Likes Received:
    976
    Reputations:
    40
    Вот кстати тоже недавно открыл для себя метод для андроида:
    1. Устанавливаем приложение PCAP Remote из PlayStore / APK
    2. Запускаем PCAP и выбираем, что хотим снифить: если весь трафик, то выбираем кнопку плэй, если только одно приложение, то выбираем кнопку плэй с единичкой и потом выбираем в списке приложение, которое желаем снифить. Дальше в приложение будет указаны параметры соединения, допустим 192.168.1.111 и порт 12345)
    3. Запускаем на компе Wireshark и выбираем в списке интерфейсов "SSH remote capture: sshdump" и задаём параметры, которые указаны в приложение (192.168.1.111 и порт 12345). И важно указать какое-либо имя пользователя и пароль, иначе выкинет ошибку...
    4. Собственно всё... ну почти... приложение само подменяет сертификат (rootCA можно експортировать в настройках, там-же можно поменять порт и сетевой интерфейс), но начиная с 7-го андроида, по дефолту приложение не принимает левые серты и нужно пересобирать приложение (https://egorovandreyrm.com/pcap-remote-tutorial/#decrypting_https_tls_traffic)
    5. К тому же если в приложение будет стоять пининг сертификата, то нужно будет и его выпилить.
    Инструкция самого автора: https://egorovandreyrm.com/pcap-remote-tutorial/
    и исходники: https://github.com/egorovandreyrm/pcap-remote
     
    Spinus, seostock and Baskin-Robbins like this.