Как установить DVWA в Кали Линукс? - Компьютер76.
Linux

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

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

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

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

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

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

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

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

папка dvwaпапка 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

Всё, что описано выше касается именно сборки Кали Линукс 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;

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

show databases

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

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

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

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

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

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

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

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

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

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

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

А вот и они:

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

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

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

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

Как установить 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 (при вводе, напомню, пароль не отображается):

Проверьте, что ваши настройки выглядят так, как на фото. А теперь, когда пароль на 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

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

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

Успехов.