Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› Подмена пакетов при обмене с сервером |
Посл.ответ | Сообщение |
|
Создано: 02 июля 2020 17:06 · Личное сообщение · #1 Добрый день. Есть некоторое приложение, которое использует TLS и внутри собственный протокол обмена данных с сервером. Решаемая задача в том, чтобы считывать весь трафик/отправлять нужные пакеты. Протокол разобрали на 70-80%. Приложение привязывается к железу, использует паспортные данные, карты пользователя и т.д. Т.е. любой пользователь, по-идее, может иметь только один аккаунт, т.к. там это всё проверяется. В приложении достаточно много различных вариантов обнаружения отладчиков, виртуальных машин, "запрещённого софта", контрольные суммы и т.п. Софт очень часто обновляется и все эти проверки сложно каждый раз отлавливать. Если на "той" стороне что-то не понравится, то этот пользователь банится "навсегда", т.к. использовались личные данные/карты при регистрации. Вопрос в том, в какой момент и как лучше всего подменять/читать данные? Варианты и pros/cons следующие: 1. Просто патч программы на входе/выходе с расшифрованными данными. Минус в том, что если какую-то проверку из софта не убрали, то если "вдруг" - пользователь больше не сможет им воспользоваться. 2. Поиск SSL структуры по паттерну и перехват на уровне системы. Плюс в том, что мы только читаем память приложения, но минус - в системе всё равно "висим". 3. Завернуть трафик на роутере на промежуточную машину, где выполнять расшифровку. С этим, к сожалению, плохо знаком. Я так понимаю мы можем подменить сертификат тут на свой (может неверно выразился) и завставить думать, что мы и есть целевая машина? Произойдёт обмен ключами, а с этой машины уже соединение с реальным сервером установить. Возможно ли это? Может есть другие варианты? |
|
Создано: 02 июля 2020 17:41 · Личное сообщение · #2 |
|
Создано: 02 июля 2020 19:22 · Поправил: Illuzion · Личное сообщение · #3 morgot пишет: Наверное, лучше проксировать программу и все уже подменять на прокси-сервере. Так работают банк-боты, правда, там протокол известен. Мне этот момент как раз не очень понятен - как проксировать систему с открытым ключом, читая данные при этом. Вопрос тут в том также, насколько просто/сложно подмена сертификата обнаруживается на клиенте? Например, Хром, если не ошибаюсь, сразу сообщение выдаёт если что-то не так с сертификатом. Я так понимаю, мы его в доверенные должны добавить? |
|
Создано: 02 июля 2020 19:53 · Личное сообщение · #4 |
|
Создано: 02 июля 2020 21:21 · Поправил: Illuzion · Личное сообщение · #5 sefkrd пишет: Чем трафик просматриваете? При дебаге Wireshark, там CRAND+MS, MS из SSL struct, последнюю по сигнатуре версия TLS + проверяю корректность ссылок внутри структуры и длина ключа. CRAND, соответвенно, при обмене ключей. Потом распаковка, отдельно уже. Где-то проще было просто пропатчить, чтобы данные получить, а контрольные суммы отправляемые, заменить оригиналом. Но там очень часто обновления, не уверен, что мы все проверки нашли, поэтому решили на протоколе остановиться. |
|
Создано: 03 июля 2020 01:11 · Личное сообщение · #6 |
eXeL@B —› Основной форум —› Подмена пакетов при обмене с сервером |