
Инструмент на Python для загрузки HTML и создания HTML-кода, подходящего для фишинговых кампаний.
(Это шутка про «рыбу в бочке». Я люблю каламбуры!)
Инструмент на Python для загрузки HTML и создания HTML-исходников, подходящих для фишинговых кампаний.
Cooper упрощает процесс клонирования целевого веб-сайта или электронного письма для использования в фишинговой кампании. Просто найдите URL или загрузите исходное содержимое письма, которое хотите использовать, и передайте его Cooper. Cooper клонирует содержимое, а затем автоматически подготовит его для вашей кампании. Скрипты, изображения и CSS могут быть изменены для использования прямых ссылок вместо относительных, ссылки изменяются, чтобы указывать на ваш фишинговый сервер, а формы обновляются для отправки данных вам — всё за считанные секунды. Cooper кроссплатформенный и должен работать на macOS, Linux и Windows.
Больше не нужно вручную редактировать ссылки и формы после использования wget для загрузки сайта. Вы можете сосредоточиться на детальной работе.
Cooper предлагает несколько модулей с разными целями:
Модуль page — основной модуль Cooper. Единственный обязательный аргумент: -t для указания целевого URL. Затем вы можете добавить --selenium, чтобы опционально использовать Selenium вместо Requests. В основном, если вывод выглядит неправильно или неполным (например, только фон и немного стилей), попробуйте использовать --selenium.
Некоторые веб-сайты требуют JavaScript для генерации HTML-содержимого. Если вывод выглядит неправильно или неполным, попробуйте использовать --selenium.
Кроме того, вы можете добавить -u с URL, который будет использоваться как базовый URL для изображений, скриптов и таблиц стилей. Cooper заменит относительные ссылки (например, /wp-content/images/foo.bar) на полный URL.
Всегда указывайте корректные URL с правильным протоколом для -t и -u (т.е. http://www.example.com).
Полный список настроек ниже:
Модуль email удобен, когда вы хотите использовать имеющееся письмо в качестве основы для новой фишинговой атаки. Обработка кодировок и многокомпонентных MIME-сообщений может быть утомительной при ручной работе, так что позвольте Cooper сделать это за вас. Этот модуль разберет содержимое сообщения, отбросит ненужные части, такие как вложения, и предоставит полностью декодированную версию основного тела письма — ту часть, которая вам нужна (plain/text или text/html).
Полный список настроек ниже:
Как упоминалось выше, этот модуль разовый. Обязательный и единственный аргумент — -i для указания файла изображения для кодирования. Он удобен, если вы создаете свою собственную целевую страницу или редактируете страницу и вам нужно добавить изображение. Если вы решите встроить его, попробуйте этот модуль. Он закодирует предоставленный файл в Base64 и выдаст текст, необходимый для встраивания изображения.
Cooper требует несколько библиотек для парсинга веб-сайтов и разбора HTML. Используйте pip или pipenv для установки всего необходимого. Имеется файл requirements.txt для pip и Pipfile для виртуальных окружений pipenv. Если вы используете pip, убедитесь, что используете подходящую версию для Python 3.9 (например, pip3 или pip3.9).
Вы можете быть уверены, что используется правильная версия, вызвав pip с указанием версии Python:
python3 -m pip install -r requirements.txt
Виртуальное окружение использовать ещё проще:
pipenv installpipenv shellИспользование Selenium для headless-браузера требует установки Google Chrome и загрузки соответствующего файла Chromewebdriver с сайта: https://chromedriver.chromium.org/downloads
Скачайте и распакуйте webdriver в корень этого проекта. Вы можете разместить его в другом месте, но убедитесь, что обновили конфиг (см. следующий раздел).
Затем вам нужно настроить свой конфигурационный файл. Файл cooper.config, поставляемый с этим репозиторием, предварительно настроен для использования с GoPhish (URL-адреса изменяются на {{.URL}}). В конфигурации по умолчанию также предполагается, что вы разместите Chrome webdriver в корне каталога.
Конфигурационный файл выглядит так:
[Replacement URLs]
landing_page_url_replacement: {{.URL}}
landing_page_form_action: {{.URL}}
email_replacement_url: {{.URL}}
[Browser]
driver_path: ./chromedriver
user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Safari/537.36
Вносите изменения по мере необходимости. Вы можете создать несколько конфигурационных файлов для разных используемых фишинговых платформ, дополнительных атакующих серверов или альтернативных user-agent. Разные конфиги можно использовать, указав аргументы -c или --config вместе с альтернативным файлом. В противном случае по умолчанию будет использоваться файл cooper.config.
Раздел [Replacement URLs] содержит все URL-адреса, которые Cooper будет использовать при замене ссылок и действий форм.
landing_page_url_replacement — это URL, используемый для целевой страницы. Возможно, вы захотите установить его равным IP-адресу фишингового сервера, чтобы посетители перенаправлялись обратно на целевую страницу, или отправлять их в другое место.
landing_page_form_action — это URL, на который вы хотите отправлять данные формы при её отправке.
email_replacement_url — это URL, используемый для писем; его следует установить равным домену или IP-адресу вашего фишингового сервера.
Если любой из этих URL оставить пустым, Cooper не будет заменять соответствующие URL. Это наиболее практично для landing_page_url_replacement, когда вы можете захотеть, чтобы целевая страница продолжала указывать на реальные ссылки. Однако предупреждаем: целевая веб-страница может использовать относительные ссылки, такие как /home.php, вместо прямых, что приведет к большому количеству битых ссылок на вашей целевой странице.
Раздел [Browser] предназначен только для настроек, связанных с веб-серфингом. Используйте этот раздел, чтобы указать Selenium и Cooper путь к драйверу вашего браузера, если вы решите использовать другой файл драйвера или расположение. Здесь также определяется user-agent, используемый для веб-серфинга. В Cooper есть user-agent по умолчанию, который вы можете переопределить с помощью конфигурационного файла.
Изображения могут быть закодированы в Base64 перед встраиванием в шаблон. Это делается для того, чтобы шаблоны не зависели от доступности сайта или сохранения изображений на исходных местах. Дополнительный размер для веб-сайта (скорее всего) незначителен, но использование этой опции для письма может стать проблемой. Некоторые почтовые клиенты не поддерживают изображения в Base64, например Outlook(!). Учитывайте почтовый клиент цели.
Опция HTTP-сервера существует, чтобы вы могли легко просмотреть вывод Cooper, перейдя по адресу 127.0.0.1:PORT. Вы могли бы просто открыть HTML-файл, но это не так удобно.
img выглядят так: <img src="https://raw.githubusercontent.com/chrismaddalena/cooper/HEAD/static1.squarespace.com/static/52ebedcae4b0ad4aad060b4a/t/533b687ae4b01d79d0ae12a3/1437187699809/?format=1500w"\>Особая благодарность Ninjasl0th и Hagbard за помощь в этом проекте!