Создание зеркал сайтов, клонирование страницы входа

ins1der

Member
Joined
May 29, 2017
Messages
346
Reaction score
82
С программой HTTrack вы можете создать копию сайта у себя на диске. Программа доступна для всех популярных платформ, посмотреть подробности об установке на разные системы, о графическом интерфейсе и ознакомиться со всеми опциями вы можете на странице https://kali.tools/?p=1198.

Далее я рассмотрю несколько примеров использования HTTrack с уклоном на пентестинг.

В плане хакинга HTTrack может быть полезна для:

  • исследования структуры сайта (подкаталоги, страницы сайта)
  • поиск файлов на сайте (документы, изображения)
  • поиск по документам и метаданным файлов с сайта
  • клонирование страниц входа с целью последующего использования для фишинга
Создадим директорию, где мы будем сохранять скаченные зеркала сайтов:
Code:
mkdir websitesmirrors

Посмотрим абсолютный путь до только что созданной директории:
Code:
readlink -f websitesmirrors
В моём случае это /home/mial/websitesmirrors, у вас будет какой-то другой адрес – учитывайте это и заменяйте пути в приведённых мною командах на свои.

Простейщий запуск HTTrack выглядит так:
Code:
httrack адрес_сайта -O "путь/до/папки/зеркала"

Здесь:

  • адрес_сайта – сайт, зеркало которого нужно сохранить на диск
  • путь/до/папки/зеркала – папка, куда будет сохранён скаченный сайт
Я бы рекомендовал с каждым запуском программы использовать опцию -F, после которой указывать пользовательский агент:
Code:
httrack адрес_сайта -F "User Agent" -O "путь/до/папки/зеркала"

Списки строк User Agent я смотрю здесь.

Пример запуска:
Code:
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:
Code:
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:
Code:
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, я буду использовать эту (рекомендую вам выбрать свою собственную строку!):
Code:
Mozilla/5.0 (Linux; U; Android 2.3; ru-ru) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9
Чтобы узнать, какой адрес используется для входа с мобильных устройств, я воспользуюсь программой cURL. Опция -i означает показывать не только полученные данные, но и заголовки. После опции -Aможно указать Пользовательский Агент:
Code:
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
31.jpg

Получаем:
Code:
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 для компьютеров:
Code:
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/"

Результат:
32.jpg

Получение мобильной версии сайта:
httrack https://m.vk.com -r2 -F "Mozilla/5.0 (Linux;

При попытке просмотреть полученную страницу, имеется бесконечный редирект. Судя по всему, встроена какая-то проверка на путь страницы. Она не может быть реализована иначе, чем через JavaScript, поэтому ищем и удаляем лишний код. В данном случае «лишним» является подсвеченный блок (второй блок JavaScript кода):
33.jpg

После этого удаления, клонированная страница прекрасно открывается в веб-браузере:
34.jpg

Как можно убедиться по скриншотам, нам показаны англоязычные версии сайта. Чтобы этого избежать, нужно отправлять дополнительные заголовки (опция --headers) с языковыми настройками ("Accept-Language: ru-RU,ru;q=0.5"). Т.е. к нашим командам нужно добавить строку --headers "Accept-Language: ru-RU,ru;q=0.5"

Получится:
Code:
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/"

И:

Code:
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/"
Результат:
38-1.jpg


И:

39.jpg


Рассмотрим ещё один пример для yandex.ru
Code:
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, адрес менять не нужно.

Получение полной версии сайта:
Code:
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/"
35.jpg

Получение мобильной версии сайта:
Code:
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/"
36.jpg


Немного сбила с толку ситуация с mail.ru – редиректа при попытке притвориться мобильным устройством не происходило и для моего любого User Agent’а в любом случае показывалась полная версия (думаю, дело в неудачной строке User Agent). Зато набрав в браузере m.mail.ru, я сразу получил адрес мобильной версии https://mail.ru/?from=m, тогда:
Получение полной версии сайта:

Code:
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/"

Получение мобильной версии сайта:

Code:
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/"
Соответствующие результаты:

37.jpg


И:

38.jpg


Клонирование сайта требующего входа (ввод логина и пароля)
Если вам нужно клонировать сайт, требующий входа (например, форум), то настройте Burp Suite для работы с вашим веб-браузером. Перейдите на сайт и посмотрите, какие кукиз передаются на него. После этого запустите HTTrack с опцией --headers, после которой укажите передаваемые кукиз.

Заключение
В данной статье было показано, как создать зеркало сайта на своём компьютере, как полностью клонировать его структуру, либо распределить файлы в зависимости от их типа по соответствующим папкам. Также был показан примерный алгоритм создания клонов страниц входа на сайты, причём как для полной версии, так и для мобильной.
 
Last edited:

ci2020

New member
Joined
Jun 2, 2006
Messages
1
Reaction score
0
I ain't gonna promote any cloners or scrapers here, but if anyone needs help with creating mirror sites, I'd suggest looking into some simple website building platforms like Wix or Weebly. They offer drag-and-drop tools that can help you create a site without needing to know much about coding.
 

achmed

New member
Joined
Jan 6, 2010
Messages
1
Reaction score
0
I'm not sure what you're referring to with "Создание зеркал сайтов, клонирование страницы входа". Could you be talking about creating website clones or mirror sites in general? If so, I'd advise against it, as it's not exactly on the up and up.
 
Top