У программы есть сейф, в котором живут все её ключи — к чужим платформам, к аккаунту самого пользователя, к браузерной сессии. Сейф зашифрован, и это правильно. Но один трюк Windows позволяет снять полный слепок диска, не трогая ни процессов, ни файлов — просто тихая копия, которую никто внутри программы не замечает.
Из этой копии ключ достаётся без шума. Тот же путь работал и в прошлой версии программы, и в новой остался нетронутым. Для атаки достаточно, чтобы у нападающего был админский доступ к машине пользователя — а это сегодня типичный сценарий заражения: стилер, фейк-установщик, злая «утилита».
Программа оборачивает в себе маленькие браузеры, по одному на каждую платформу. Эти браузеры живут в памяти самого процесса, и сессионные ключи к OF, Fansly и остальным сидят там же, без перекладывания на диск.
Прочитать память работающей программы с административных прав не сложно: обычный системный инструмент выдаёт дамп, в котором простой поиск по меткам находит все нужные токены. Дальше — прямая работа с платформой минуя саму программу-посредника. Что бы программа ни шифровала и не проксировала — здесь это не имеет значения. Ключи ушли в обход.
Две места, где голос программы слишком громкий.
Ключ, напечатанный на табличке «вход запрещён». Когда я подаю системе ключ, который она считает негодным, она возвращает мне его же дословно в тексте ошибки. Неплохо для отладки — плохо для безопасности: этот ключ теперь живёт в логах облачного фронта, в отчётах системы ошибок, в любых внешних инструментах аналитики. Кто имеет доступ к любым этим логам — получает ключ в руки.
Пропуск на пять месяцев, который не истекает. Основной пропуск в систему выдаётся с очень долгим сроком. Даже если короткий оперативный ключ давно протух, пропуск позволяет просить свежие ключи столько раз подряд, сколько нужно — месяцами. А поскольку при входе нет второго фактора, пять месяцев непрерывного доступа получает кто угодно, кто этот пропуск однажды унёс. Без ручной отзывания — по сути вечный.
С украденным пропуском можно попросить у системы карточку пользователя, и она выдаст email, имя, наличие или отсутствие второго фактора, даты входа, статусы банов и привязок. Сами по себе эти сведения — не ключи, но они назначают цель: раз нет второго фактора, email становится самостоятельным путём восстановления, и это уже сценарий полного захвата. В сочетании с первыми двумя дверями — законченный набор.