Тренировка по взлому веб-сайтов в Windows


Для тренировки своих хакерских навыков создано немало веб-приложений, которые специально содержат уязвимости.

Некоторые из них распространяются установленными и настроенными на специально для этого предназначенные дистрибутивы Linux, некоторые можно самому установить в любой дистрибутив Linux (в качестве примера смотрите статью «Установка OWASP Mutillidae II и Damn Vulnerable Web Application (DVWA) в Kali Linux».

В этой же статье я пока как установить и настроить уязвимые веб-приложения в Windows. Будут даны инструкции по установке:

Можете установить только одно из них или сразу все — они независимы друг от друга.

Эта инструкция будет полезной тем, кому привычнее работать в Windows. Также в некоторых уязвимостях есть своя специфика: например, внедрение команд уровня операционной на Linux и на Windows по (я надеюсь) очевидным причинам эксплуатируется по-разному.

Все эти уязвимые веб-приложения работают на веб-сервере (собственно, как и любые другие веб-приложения). Поэтому нам нужен веб-сервер. Вы можете установить его любым способом, у меня есть инструкция «Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 7, phpMyAdmin) на Windows 10» и мой веб-сервер установлен в соответствии с ней, поэтому и устанавливать приложения для тренировки пентестинга я буду в него. Если у вас веб-сервер установлен другим способом, то вам может понадобиться чуть подредактировать пути в файловой системе, но, в целом, принцип установки везде одинаковый.

После установки веб-сервера, также смотрите статью «Как защитить веб-сервер Apache от взлома в Windows» — иначе пока вы учитесь взламывать, вас самих взломают.

В папке c:\Server\data\htdocs\ создайте каталог pentest.

В папке c:\Server\data\htdocs\pentest\ создайте файл .htaccess, откройте его текстовым редактором, и скопируйте туда:

Require local

Эта настройка гарантирует, что никто из вне не сможет получить доступ к этим уязвимым средам. Поскольку в противном случае хакер может через эти уязвимые веб-приложения взломать весь компьютер — в Windows у веб-сервера есть права доступа ко всем папкам и файлам.

Если вам нужно, чтобы веб-сервер был доступен в локальной сети (например, вы будете атаковать веб-приложения с другого компьютера с Kali Linux), то вместо указанной выше строки впишите в файл .htaccess:

Require ip 127
Require ip 192.168
Require ip ::1

Эта настройка разрешает вход диапазонам 127.0.0.0/8 и 192.168.0.0/16, а также IPv6 адреса ::1/128 (0:0:0:0:0:0:0:1) (аналог localhost).

Более тонкую настройку под ваши нужды вы можете сделать с помощью статьи «Контроль доступа к сайту (блокировка по IP, User-Agent)».

В любом случае, доступ к уязвимым средам должен быть максимально ограничен для посторонних.

Как установить OWASP Mutillidae II в Windows

Переходим к установке и настройке OWASP Mutillidae II.

Скачайте OWASP Mutillidae II: https://github.com/webpwnized/mutillidae/archive/master.zip (это официальный сайт, всегда последняя версия).

Распакуйте скаченный архив в папку c:\Server\data\htdocs\pentest\ и переименуйте из mutillidae-master в mutillidae.

Откройте файл c:\Server\data\htdocs\pentest\mutillidae\.htaccess, удалите из него строки:

Order Deny,Allow
Deny from all

## This allows access from localhost
Allow from 127.
Allow from localhost

## This is to allow access from other machines on Virtual Box host-only networks.
Allow from 192.168.0.0/16

и вместо них добавьте строки:

Require ip 127
Require ip 192.168
Require ip ::1

Сохраните и закройте файл.


Откройте файл c:\Server\data\htdocs\pentest\mutillidae\includes\database-config.inc и в строке

define('DB_PASSWORD', 'mutillidae');

вместо mutillidae установите ваш пароль от MySQL (по умолчанию пустой).

Сохраните и закройте файл.

Теперь в веб-браузере откройте адрес http://localhost/pentest/mutillidae

На странице найдите пункт 3. Try to setup/reset the DB to see if that helps и в нём перейдите по ссылке http://localhost/pentest/mutillidae/set-up-database.php

Теперь вновь откройте http://localhost/pentest/mutillidae:

Всё готово — теперь можно начинать тренироваться взламывать веб-сайты.

Как установить Damn Vulnerable Web Application (DVWA) в Windows

Теперь установим и настроем Damn Vulnerable Web Application (DVWA).

Скачайте последнюю версию Damn Vulnerable Web Application (DVWA) с официального сайта по ссылке: https://github.com/ethicalhack3r/DVWA/archive/master.zip

Распакуйте скаченный архив в c:\Server\data\htdocs\pentest\ и переименуйте из DVWA-master в DVWA.

В папке c:\Server\data\htdocs\pentest\DVWA\config\ найдите файл config.inc.php.dist и скопируйте его в эту же папку, но с названием config.inc.php (или просто переименуйте).

Откройте файл c:\Server\data\htdocs\pentest\DVWA\config\config.inc.php и найдите там строку

$_DVWA[ 'db_password' ] = 'p@ssw0rd';

и замените p@ssw0rd на ваш пароль. По умолчанию пароль является пустым.

Откройте файл c:\Server\bin\PHP\php.ini и найдите там строку:


allow_url_include = Off

замените эту строку на:

allow_url_include = On

Чтобы изменения вступили в силу, перезапустите веб-сервер:

c:\Server\bin\Apache24\bin\httpd.exe -k restart

Откройте адрес http://localhost/pentest/DVWA/ и нажмите там кнопку Create / Reset Database:


Выполните вход http://localhost/pentest/DVWA/login.php:

Кстати, имя пользователя: admin, пароль: password.

И всё готово:

Не забудьте поменять уровень сложности, так как по умолчанию установлен impossible (невозможный), для этого зайдите во вкладку DVWA Security: http://localhost/pentest/DVWA/security.php​

Как установить bWAPP в Windows

Наконец установим и настроем bWAPP в Windows

Скачиваем последнюю версию bWAPP: https://sourceforge.net/projects/bwapp/files/latest/download

В папке c:\Server\data\htdocs\pentest\ создайте каталог bWAPP. Распакуйте содержимое архива bWAPP_latest.zip в директорию c:\Server\data\htdocs\pentest\bWAPP\.

Откройте файл c:\Server\data\htdocs\pentest\bWAPP\bWAPP\admin\settings.php и найдите в нём строку:

$db_password = "bug";

В этой строке поменяйте bug на пароль вашей MySQL (по умолчанию пустой). Сохраните и закройте этот файл.


Перейдите по ссылке http://localhost/pentest/bWAPP/bWAPP/install.php

Найдите там надпись Click here to install bWAPP и на ней ссылку http://localhost/pentest/bWAPP/bWAPP/install.php?install=yes — перейдите по ней.

Всё готово, перейдите на http://localhost/pentest/bWAPP/bWAPP/

Для входа Имя пользователя: bee, а пароль: bug

Примечание: к сожалению, из-за того, что bWAPP уже давно не обновлялась, некоторые из её страниц не совместимы с новыми версиями PHP. Например, страницы для отработки SQL-инъекции будут выдавать ошибку из-за использования функции mysql_connect(). В принципе, особых проблем в исправлении нет — достаточно просто перейти на mysqli_connect(). Для этого нужно отредактировать файл c:\Server\data\htdocs\pentest\bWAPP\bWAPP\connect.php (можно просто скопировать в него содержимое c:\Server\data\htdocs\pentest\bWAPP\bWAPP\connect_i.php, а также все файлы вида c:\Server\data\htdocs\pentest\bWAPP\bWAPP\sqli_*.php.

При желании, вы можете этим заняться самостоятельно — бонусное упражнение, так сказать. Либо просто используйте другие уязвимые среды, рассмотренные выше, для практики в эксплуатации SQL-инъекций.

Заключение

Если вы установили веб-сервер специально для тренировки в уязвимых веб-приложениях и вы опасаетесь, что сервер может ослабить безопасность вашего компьютера, то вы можете отключить веб-сервер после практики пентеста.

Чтобы отключить веб-сервер и убрать его службы из автозагрузки выполните:

c:\Server\bin\Apache24\bin\httpd.exe -k stop
c:\Server\bin\Apache24\bin\httpd.exe -k uninstall
net stop mysql
c:\Server\bin\mysql-8.0\bin\mysqld --remove

При этом сервер будет полностью отключён, как будто его вообще нет на компьютере, но сайты и базы данных остануться.

В следующий раз, когда вы вновь заходите потренироваться и вам будет нужен веб-сервер, запустите все нужные вам службы:

c:\Server\bin\Apache24\bin\httpd.exe -k install
c:\Server\bin\Apache24\bin\httpd.exe -k start
C:\Server\bin\mysql-8.0\bin\mysqld --install
net start mysql

После окончания работы вновь остановите службы веб-сервера, как это показано выше.

Решение проблем

Ошибка (Mutillidae):

By default, Mutillidae only allows access from localhost (127.*.*.*). Edit the .htaccess file to change this behavior (not recommended on a public network).

Решение:

В этом сообщении сказано, что по умолчанию Mutillidae позволяет доступ только с (127.*.*.*). Также там предлагается изменить файл .htaccess если вы хотите изменить это поведение, что не рекомендуется в публичных сетях.

Эта ошибка может возникать даже если вы на самом деле открываете Mutillidae на локальном компьютере. Дело в том, что авторы забыли про IPv6, а в Windows при обращении к localhost используется локальный адрес IPv6, который в исходном .htaccess не предусмотрен. Поэтому для исправления ситуации без ослабления защиты откройте файл .htaccess, найдите там строки

Order Deny,Allow
Deny from all

## This allows access from localhost
Allow from 127.
Allow from localhost

## This is to allow access from other machines on Virtual Box host-only networks.
Allow from 192.168.0.0/16

и вместо них добавьте строки:

Require ip 127
Require ip 192.168
Require ip ::1

Ошибка (DVWA):

DVWA System error - config file not found. Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.

Решение:

Вам нужно скопировать или переименовать файл config/config.inc.php.dist в config/config.inc.php, а также ввести туда имя пользователя и пароль вашего MySQL сервера.

Ошибка (bWAPP)

Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\Server\data\htdocs\pentest\bWAPP\bWAPP\connect_i.php on line 23
Connection failed: Access denied for user 'root'@'localhost' (using password: YES)

И также:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Server\data\htdocs\pentest\bWAPP\bWAPP\connect.php:23 Stack trace: #0 C:\Server\data\htdocs\pentest\bWAPP\bWAPP\sqli_3.php(23): include() #1 {main} thrown in C:\Server\data\htdocs\pentest\bWAPP\bWAPP\connect.php on line 23
Fatal error: Uncaught Error: Call to undefined function mysql_query() in C:\Server\data\htdocs\pentest\bWAPP\bWAPP\sqli_3.php:144 Stack trace: #0 {main} thrown in C:\Server\data\htdocs\pentest\bWAPP\bWAPP\sqli_3.php on line 144

Ошибку вызывает функция mysql_connect(), которая не определена (неизвестна).

Данное расширение — mysql_connect() — устарело, начиная с версии PHP 5.5.0, и в последних версиях PHP оно удалено. Используйте вместо него MySQLi или PDO_MySQL. Альтернативы для данной функции:

  • mysqli_connect()
  • PDO::__construct()

Если вы столкнулись с этой ошибкой, то обратитесь к автором с просьбой её исправить, или самостоятельно отредактируйте исходный код, чтобы перейти с mysql_connect() на mysqli_connect().


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *