Инструкция по использованию HTTrack: создание зеркал сайтов, клонирование страницы входа
С программой HTTrack вы можете создать копию сайта у себя на диске. Программа доступна для всех популярных платформ, посмотреть подробности об установке на разные системы, о графическом интерфейсе и ознакомиться со всеми опциями вы можете на странице https://kali.tools/?p=1198.
Далее я рассмотрю несколько примеров использования HTTrack с уклоном на пентестинг.
В плане пентестинга HTTrack может быть полезна для:
- исследования структуры сайта (подкаталоги, страницы сайта)
- поиск файлов на сайте (документы, изображения)
- поиск по документам и метаданным файлов с сайта
- клонирование страниц входа с целью последующего использования для фишинга
Создадим директорию, где мы будем сохранять скаченные зеркала сайтов:
mkdir websitesmirrors
Посмотрим абсолютный путь до только что созданной директории:
readlink -f websitesmirrors
В моём случае это /home/mial/websitesmirrors, у вас будет какой-то другой адрес – учитывайте это и заменяйте пути в приведённых мною командах на свои.
Простейщий запуск HTTrack выглядит так:
httrack адрес_сайта -O "путь/до/папки/зеркала"
Здесь:
- адрес_сайта – сайт, зеркало которого нужно сохранить на диск
- путь/до/папки/зеркала – папка, куда будет сохранён скаченный сайт
Я бы рекомендовал с каждым запуском программы использовать опцию -F, после которой указывать пользовательский агент:
httrack адрес_сайта -F "User Agent" -O "путь/до/папки/зеркала"
Списки строк User Agent я смотрю здесь.
Пример запуска:
httrack http://z-oleg.com/ -F "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" -O "/home/mial/websitesmirrors/z-oleg.com"
Этой командой будет сделано локальное зеркало сайта с сохранением его оригинальной структуры папок и файлов.
Если вы хотите сосредоточится на файлах (документы, изображения), а не на структуре сайта, то обратите внимание на опцию -N4: все HTML страницы будут помещены в web/, изображения/другое в web/xxx, где xxx это расширения файлов (все gif будут помещены в web/gif, а .doc в web/doc)
Пример запуска с опцией -N4:
httrack http://thailandcer.ru/ -N4 -F "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" -O "/home/mial/websitesmirrors/thailandcer.ru/"
По умолчанию HTTrack учитывает содержимое файла robots.txt, т.е. если он запрещает доступ к папкам, документам и файлам, то HTTrack не пытается туда зайти. Для игнорирования содержимого robots.txt используется опция -s0
Пример запуска с опцией -s0:
httrack http://spryt.ru/ -s0 -N4 -F "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" -O "/home/mial/websitesmirrors/spryt.ru/"
Для обновления уже созданного зеркала можно использовать сокращённую опцию --update, которая означает обновить зеркало, без подтверждения и которая равнозначна двум опциям -iC2.
Для продолжения создания зеркала, если процесс был прерван, можно использовать сокращённую опцию --continue (означает продолжить зеркало, без подтверждения), либо эквивалентные опции -iC1.
Создание клона страницы входа на сайт
Думаю, нет нужды объяснять, зачем пентестеру может понадобиться клон страницы входа, например, сайта vk.com, mail.ru и т.д.
Нужно учитывать следующее:
- у сайта могут быть разные страницы для входа с мобильного устройства и для входа с компьютера
- адрес страниц для входа с мобильного устройства и с компьютера может быть одинаковым или разным
- нам не нужно клонировать весь сайт – достаточно только одной страницы
Чтобы притвориться мобильным браузером нужно использовать соответствующую строку User Agent, я буду использовать эту (рекомендую вам выбрать свою собственную строку!):
Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9
Чтобы узнать, какой адрес используется для входа с мобильных устройств, я воспользуюсь программой cURL. Опция -i означает показывать не только полученные данные, но и заголовки. После опции -A можно указать Пользовательский Агент:
curl -i -A "Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" https://vk.com
Получаем:
HTTP/2 302 server: nginx date: Tue, 04 Jul 2017 09:46:47 GMT content-type: text/html; charset=windows-1251 content-length: 0 location: https://m.vk.com/ x-powered-by: PHP/3.13127 set-cookie: remixlang=0; expires=Sun, 01 Jul 2018 18:09:12 GMT; path=/; domain=.vk.com strict-transport-security: max-age=0
Интересующей нас строкой является location: https://m.vk.com/. Она означает, что вход для мобильных клиентов размещён по адресу https://m.vk.com/
Проблема с адресом решена. Также нам нужно менять User Agent в программе HTTrack (опция -F).
Кроме этого, нам нужно использовать опцию -r2, которая ограничит HTTrack получением одной страницы, без попытки клонировать сайт.
Примечание: сайт может выдавать различное содержимое на уровне скриптов веб-приложения, основываясь на полученной строке Пользовательского Агента), а не в зависимости от адреса. Также возможен вариант, когда сайт использует универсальный шаблон, подстраивающийся под любое разрешение экрана – в этом случае адрес входа на сайт будет одинаковым для всех типов устройств, и HTML код также будет одинаковым.
Примечание 2: даже перейдя на адрес мобильной версии, веб-приложение, основываясь на строке User Agent может перенаправить вас на полную версию сайта. Поэтому при создании клона страницы важно и вводить правильный адрес, и подменять строку Пользовательского Агента.
Итак, делаем клон страницы входа vk.com для компьютеров:
httrack https://vk.com -r2 -F "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" -O "/home/mial/websitesmirrors/vk.com/"
Результат:
Получение мобильной версии сайта:
httrack https://m.vk.com -r2 -F "Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9" -O "/home/mial/websitesmirrors/vk.com.mob/"
При попытке просмотреть полученную страницу, имеется бесконечный редирект. Судя по всему, встроена какая-то проверка на путь страницы. Она не может быть реализована иначе, чем через JavaScript, поэтому ищем и удаляем лишний код. В данном случае «лишним» является подсвеченный блок (второй блок JavaScript кода):
После этого удаления, клонированная страница прекрасно открывается в веб-браузере:
Как можно убедиться по скриншотам, нам показаны англоязычные версии сайта. Чтобы этого избежать, нужно отправлять дополнительные заголовки (опция --headers) с языковыми настройками ("Accept-Language: ru-RU,ru;q=0.5"). Т.е. к нашим командам нужно добавить строку --headers "Accept-Language: ru-RU,ru;q=0.5"
Получится:
httrack https://vk.com --headers "Accept-Language: ru-RU,ru;q=0.5" -r2 -F "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" -O "/home/mial/websitesmirrors/vk.com/"
И:
httrack https://m.vk.com --headers "Accept-Language: ru-RU,ru;q=0.5" -r2 -F "Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9" -O "/home/mial/websitesmirrors/vk.com.mob/"
Результат:
И:
Рассмотрим ещё один пример для yandex.ru
curl -i -A "Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9" https://yandex.ru
Редиректа не происходит! Это означает, что нам нужно поменять только User Agent, адрес менять не нужно.
Получение полной версии сайта:
httrack https://yandex.ru -r2 -F "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" -O "/home/mial/websitesmirrors/yandex.ru/"
Получение мобильной версии сайта:
httrack https://yandex.ru -r2 -F "Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9" -O "/home/mial/websitesmirrors/yandex.ru.mob/"
Немного сбила с толку ситуация с mail.ru – редиректа при попытке притвориться мобильным устройством не происходило и для моего любого User Agent’а в любом случае показывалась полная версия (думаю, дело в неудачной строке User Agent). Зато набрав в браузере m.mail.ru, я сразу получил адрес мобильной версии https://mail.ru/?from=m, тогда:
Получение полной версии сайта:
httrack https://mail.ru -r2 -F "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" -O "/home/mial/websitesmirrors/mail.ru/"
Получение мобильной версии сайта:
httrack "https://mail.ru/?from=m" -r2 -F "Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9" -O "/home/mial/websitesmirrors/mail.ru.mob/"
Соответствующие результаты:
и
Клонирование сайта требующего входа (ввод логина и пароля)
Если вам нужно клонировать сайт, требующий входа (например, форум), то настройте Burp Suite для работы с вашим веб-браузером. Перейдите на сайт и посмотрите, какие кукиз передаются на него. После этого запустите HTTrack с опцией --headers, после которой укажите передаваемые кукиз.
Заключение
В данной статье было показано, как создать зеркало сайта на своём компьютере, как полностью клонировать его структуру, либо распределить файлы в зависимости от их типа по соответствующим папкам. Также был показан примерный алгоритм создания клонов страниц входа на сайты, причём как для полной версии, так и для мобильной.
Если у вас есть свои интересные способы использования HTTrack или вопросы по функционалу программы, то пишите ваши идеи в комментариях.
Связанные статьи:
- badKarma: Продвинутый набор инструментов для сетевой разведки (65.4%)
- Веб-архивы Интернета: как искать удалённую информацию и восстанавливать сайты (63.1%)
- Массовый поиск геотэгов на сайтах и в локальном хранилище (58.4%)
- Сбор информации о владельце сайта. Поиск сайтов одного лица (53.8%)
- Как узнать настоящий IP сайта в Cloudflare (53.8%)
- Полное руководство по mod_rewrite (часть 2): Регулярные выражения (RANDOM - 0.7%)
Забыли написать, куда вписывать все эти команды. Потому что в httrack ничего подобного нет. По крайней мере, я не нахожу.
Приветствую! Вероятно, вы говорите о WinHTTrack (версия для Windows), либо о WebHTTrack (веб-интерфейс для HTTrack).
HTTrack – это версия для Linux, которая представляет собой консольную утилиту (т.е. программа с интерфейсом командной строки). Команды из этой инструкции нужно вводить в консоль Linux.
Хоть и кратко, но об этом говориться по ссылке, которая дана в самом начале статьи.
Т.е., в графическом интерфейсе не нужно вводить никаких команд – там ставьте галочки и нажимайте на кнопки – как в любом графическом интерфейсе. Консольная утилита нужна для автоматизации и тонкой настройки.
Здраствуйте, подскажите, мне необходимы pdf-файлы с сайта, в сети есть ссылки на некоторые из них; когда я удаляю папки со строки http****.info/upload/user_files/ то мне всегда выдает ошибку 404, очевидно что у меня нет к ним доступа. Я установил kali linux, установил программу HTTrack и запускал её с всеми опциями, в том числе и с -s0, но ничего так и не нашёл. Извините за отсуствие тех. лексики, изъясняюсь как могу.