Тренировка по взлому веб-сайтов в 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().
Связанные статьи:
- Как установить SamuraiWTF 4.0 (100%)
- Установка OWASP Mutillidae II и Damn Vulnerable Web Application (DVWA) в Kali Linux (99.4%)
- Как пользоваться Kali Linux в WSL (подсистеме Windows для Linux): подборка лучших программ (ч. 1) (54.3%)
- OpenSSL: принципы работы, создание сертификатов, аудит (51.5%)
- Азы работы с веб-сервером для пентестера (50.9%)
- Взлом сетевой аутентификации Windows (RANDOM - 0.7%)