С программой HTTrack вы можете создать копию сайта у себя на диске. Сразу предупреждаем — внешний вид у этой программы ужасный, но не пугайтесь сильно ибо софт очень полезный в умелых руках.
Рассмотрим несколько примеров использования HTTrack с уклоном на пентестинг.
В плане пентестинга HTTrack может быть полезна для:
- исследования структуры сайта (подкаталоги, страницы сайта)
- поиск файлов на сайте (документы, изображения)
- поиск по документам и метаданным файлов с сайта
- клонирование страниц входа с целью последующего использования для фишинга
Создаем директорию, где мы будем сохранять скаченные зеркала сайтов:
Посмотрим абсолютный путь до только что созданной директории:
readlink -f websitesmirrors
В данном случае это /home/mial/websitesmirrors, у вас будет какой-то другой адрес – учитывайте это и заменяйте пути в приведённых командах на свои.
Простейщий запуск HTTrack выглядит так:
httrack адрес_сайта -O "путь/до/папки/зеркала"
Здесь:
- адрес_сайта – сайт, зеркало которого нужно сохранить на диск
- путь/до/папки/зеркала – папка, куда будет сохранён скаченный сайт
Я бы рекомендовал с каждым запуском программы использовать опцию -F, после которой указывать пользовательский агент:
httrack адрес_сайта -F "User Agent" -O "путь/до/папки/зеркала"
Пример запуска:
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, после которой укажите передаваемые кукиз.
Заключение
В данной статье было показано, как создать зеркало сайта на своём компьютере, как полностью клонировать его структуру, либо распределить файлы в зависимости от их типа по соответствующим папкам. Также был показан примерный алгоритм создания клонов страниц входа на сайты, причём как для полной версии, так и для мобильной.
Отказ от ответственности: Эта статья написана только для образовательных целей. Автор или издатель не публиковали эту статью для вредоносных целей. Если читатели хотели бы воспользоваться информацией для личной выгоды, то автор и издатель не несут ответственность за любой причиненный вред или ущерб.