С программой HTTrack вы можете создать копию сайта у себя на диске. Программа доступна для всех популярных платформ, посмотреть подробности об установке на разные системы, о графическом интерфейсе и ознакомиться со всеми опциями вы можете на странице https://kali.tools/?p=1198.
Далее я рассмотрю несколько примеров использования HTTrack с уклоном на пентестинг.
В плане пентестинга HTTrack может быть полезна для:
- исследования структуры сайта (подкаталоги, страницы сайта)
- поиск файлов на сайте (документы, изображения)
- поиск по документам и метаданным файлов с сайта
- клонирование страниц входа с целью последующего использования для фишинга
Создадим директорию, где мы будем сохранять скаченные зеркала сайтов:
1
|
mkdir websitesmirrors |
Посмотрим абсолютный путь до только что созданной директории:
1
|
readlink -f websitesmirrors |
В моём случае это /home/mial/websitesmirrors, у вас будет какой-то другой адрес – учитывайте это и заменяйте пути в приведённых мною командах на свои.
Простейщий запуск HTTrack выглядит так:
1
|
httrack адрес_сайта -O "путь/до/папки/зеркала" |
Здесь:
- адрес_сайта – сайт, зеркало которого нужно сохранить на диск
- путь/до/папки/зеркала – папка, куда будет сохранён скаченный сайт
Я бы рекомендовал с каждым запуском программы использовать опцию -F, после которой указывать пользовательский агент:
1
|
httrack адрес_сайта -F "User Agent" -O "путь/до/папки/зеркала" |
Списки строк User Agent я смотрю здесь.
Пример запуска:
1
|
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:
1
|
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:
1
|
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, я буду использовать эту (рекомендую вам выбрать свою собственную строку!):
1
|
Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9 |
Чтобы узнать, какой адрес используется для входа с мобильных устройств, я воспользуюсь программой cURL. Опция -i означает показывать не только полученные данные, но и заголовки. После опции -A можно указать Пользовательский Агент:
1
|
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 |
Получаем:
1
2
3
4
5
6
7
8
9
|
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 для компьютеров:
1
|
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/" |
Результат:
Получение мобильной версии сайта:
1
|
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»
Получится:
1
|
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/" |
И:
1
|
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
1
|
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, адрес менять не нужно.
Получение полной версии сайта:
1
|
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/" |
Получение мобильной версии сайта:
1
|
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, тогда:
Получение полной версии сайта:
1
|
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/" |
Получение мобильной версии сайта:
1
|
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, после которой укажите передаваемые кукиз.
Заключение
В данной статье было показано, как создать зеркало сайта на своём компьютере, как полностью клонировать его структуру, либо распределить файлы в зависимости от их типа по соответствующим папкам. Также был показан примерный алгоритм создания клонов страниц входа на сайты, причём как для полной версии, так и для мобильной.
Добавить комментарий