Как установить DVWA в Кали Линукс?

В статье описывается поэтапно как установить DVWA в Кали Линукс 2017. Это PHP/MySQL приложение, которое нарочито пронизано уязвимостями, чтобы мы с вами могли просто потренироваться для приобретения специальных навыков.

Как установить DVWA в Кали Линукс: условия и план установки.

  • настройка и доустановка необходимого в Кали Линукс Rolling 2017
  • учётная запись в Google
  • обзор ошибок

Начинаем установку.

  • Качаем zip-архив с DVWA по ссылке со страницы “изобретателей”. Прямую ссылку не даю, чтобы информация была всегда свежей и не указывать на устаревшие источники:

http://www.dvwa.co.uk/

  • Ищите на странице кнопку Download. Распаковываем архив на Рабочий стол, в последних сборках он именуется как DVWA-master. И для удобства в дальнейшей с ним работе переименуем. Естественно, напрашивается имя dvwa. Эту папку переместите в директорию по адресу:
/var/www/html/

папка dvwa

  • Сразу получаем к ней все права через терминал, открытый в этой папке, чтобы не было проблем с доступом и изменением с файлами (это позволит в будущем избежать многих ошибок):
chmod -R 777 dvwa

Как установить DVWA в Кали других версий?

На секунду отвлеку. Сами разработчики косвенно, а некоторые “супер-хакеры” уверяют, что DVWA работает только с php 5 версии. В Кали давно сидит версия php7, и потому некоторые советуют её удалить, а затем поставить 5-ю версию. Это слишком, а потому я попробовал обе версии совместить. Мне неизвестно, насколько корректно работала бы DVWA без телодвижений из следующего абзаца, но я всё-таки добавил пакеты уже не поддерживаемого PHP 5.6.30 к своей Debian 9 вот этими командами из терминала:

apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update

Однако на пробы об установленной в Кали версии php ничего, кроме той же php 7 не отозвалось:

dpkg -l | grep php

как узнать версию php в кали линукс

Всё, что описано выше касается именно сборки Кали Линукс 2017. В 2016-й версии ну никак я не смог добиться корректного ответа от страницы регистрации: явно неправильно работал php. Причём я танцевал с бубном на большом количестве сборок Кали Rolling 2016: всё без толку; видимо, ума не хватило. Не могу давать советы глобального масштаба, но все мои более-менее серьёзные манипуляции заканчивались крахом системы, так что предостерегаю вас от слепых советов по перестройки прошитого php. Не делайте того, чего не знаете.

В этой сборке никаких манипуляций с php здесь проводить нам вообще не придётся.

Как установить DVWA в Кали: идём дальше.

  • Отправляемся к файлу config.inc.php.dist, который лежит в папке /var/www/html/dvwa/config и переименовываем его, отсекая расширение. Он становится файлом config.inc.php

переименуем файл

Сразу открываем его и находим строчку:

$_DVWA[ ‘db_password’ ]

Вычищаем символы password, оставив только одинарные кавычки, обеспечив доступ к пользователю root (если вы будете работать из-под другого пользователя, придётся сменить строчкой выше и root-а на имя пользователя, позже присвоив ему права; я этого делать не собираюсь, так что пропускаем ход). В этом пункте, однако, вас могут подстерегать некоторые ошибки (последний абзац).

удалить пароль

  • Запускаем Апач и SQL:
service mysql start && service apache2 start
  • Подготовим одноимённую СУБД (это можно будет сделать и позже, однако…):
mysql -u root -p

Поле Enter password пропускаем, нажав Enter. Вводим команду:

create database dvwa;

создать базу данных для dvwa

проверьте, появилась ли она в числе остальных:

show databases

выходим командой exit.

Здесь снова отступление. Разрабы DVWA настаивают на том, что из-под root пользователя, работая с базой Maria, ничего из последующего не выйдет. И для работы необходимо создать базу данных, доступную отдельно для имени другого пользователя. По этому поводу некоторая информация появится в разделе Вероятные ошибки.

  • Идём дальше. Рестартуем сервер и базу:
service mysql restart && service apache2 restart
  • Открываем браузер и вводим адрес localhost/dvwa. Вы должны увидеть окно приветствия:

страница приветствия dvwaКстати, внизу страницы должна быть кнопка, которая воссоздаёт в случае необходимости созданную нами СУБД. Обратите внимание на красный шрифт некоторых пунктов. Эти настройки лучше сразу подправить. Найдём вот этот документ настройки:

leafpad /etc/php/7.0/apache2/php.ini

Надеюсь, вы не открыли пустой документ . С помощью Ctrl + F ищем в документе все директивы allow_ . Заменяем Off на On (она только одна). Сохраняемся и выходим:

разрешаем директиву

Это должно исправить разрешения на недостающую функцию php.

  • Как видите, это ещё не всё. Чтобы доустановить необходимый модуль, через терминал доустановим библиотечку:
apt-get install php-gd

дополнительная библиотека для dvwa

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

окно состояния dvwa

  • Теперь нам нужно получить для нашего сайта ключ на установку капчи. У меня это много времени не отняло: в Google у меня давно есть аккаунт. Если у вас нет – обзаведитесь. Я оба ключа получил здесь:

https://www.google.com/recaptcha/admin

А вот и они:

заказ на регистрацию капчи

ключи для сайта

Вводим оба в соответствующие поля в известном нам документе, открытом через терминал:

leafpad /var/www/html/dvwa/config/config.inc.php

ключи для капчи dvwa

Перезагрузим страницу в DVWA браузере и проверим:

ключи для капчи на месте

Теперь момент истины: внизу нас ждёт кнопка Create/Reset Datebase. Жмём, и внизу страницы мы должны увидеть поля ввода информации о регистрации нового пользователя. Эта страница автоматически перенаправит вас на страницу регистрации, где вы должны заполнить поля как admin и ввести пароль password и, поиграв со сложностью степени уязвимости приложения в DVWA Security (выбирайте low), можете приступать к тренировкам.

как понизить уровень безопасности в dvwa

Как установить DVWA в Кали: вероятные ошибки.

Практически все сложности крутятся вокруг только двух настроек. Это:

  • использование подходящей версии php
  • неверная конфигурация файла config.inc.php: непрекращающаяся ошибка финального этапа при попытке залогиниться, когда по нажатию на кнопку Create/Reset Database страница продолжает возвращать сообщение

Could not connect to the MySQL service. Please check the config file dvwa.

О версии PHP

Повторюсь, в Кали 2016 проблема для меня оказалась неразрешимой. Страница Instructions DVWA прямо указывает на то, что для корректной работы необходимо использовать версию php5, тут же давая при этом пример команды apt-get, которая поможет скачать необходимые пакеты.

Пока я пытался установить DVWA в Кали, мне результаты всегда возвращали сообщение о том, что такие пакеты уже недоступны. Теоретически их можно скачать указанными выше командами, но, опять же повторюсь, для меня всё закончилось бестолково. Однако, перейдя на следующую версию Кали Rolling 2017 о проблеме совместимости версий “пхп” я сразу забыл. Что делал не так, не понимаю до сих пор.

Ошибка Could not connect to the MySQL service…

Здесь проще, однако пользователя могут сбить не столько настройки указанного файла, сколько отсутствие опыта обращения с БД, в частности установленной в Debian MariaDB. Разрабы DVWA на той же странице по ссылке Instructions заставляют пользователей Кали создать пользователя не-root, и передать ему необходимые привилегии. Если ошибка Could not connect to the MySQL service стала для вас непреодолимым размером, сделайте так:

  • Для установленной MySQL в Кали пароль root-а пуст. Зададим его из-под root-пользователя:
mysql_secure_installation

чтобы не путаться, я поставил его таким же как и на учётку root (при вводе, напомню, пароль не отображается):

разрешение доступа к базе данных dvwa

Проверьте, что ваши настройки выглядят так, как на фото. А теперь, когда пароль на MariaDB задан, повторите процедуру конфигурации базы dvwa и настроек файла примерно так (“тупо” не повторяйте, а следите за логикой):

  • создаём нового не-root пользователя, если его ещё нет (не знаю почему у вас его ещё нет, кстати). Я создам юзера 1 с паролем “321”.
  • в root запускаю базу данных, чтобы делегировать полномочия новому пользователю 1 такими командами:
service mysql restart && service apache2 restart

mysql -u root -p

grant all on dvwa.* to dvwa@localhost identified by '1';

flush privileges;

quit

делегирование полномочий для пользователя в MariaDB

  • вернёмся к файлу config.inc.php в директории /var/www/html/dvwa/config.  Настройки теперь примут такой вид:

настройки для файла config.inc

Сохранимся. Перезагрузим  сервисы и веб-страницу с DVWA. Пробуем. Если “что-то кое-где у вас порой…”, почаще перезагружайте страницу и оба сервиса.

Успехов.

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

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

Максимальный размер загружаемого файла: 50 МБ. Вы можете загрузить: изображение, видео. Ссылки на YouTube, Facebook, Twitter и другие сервисы, вставленные в текст комментария, будут автоматически встроены. Перетащите файлы сюда