В данной статье мы рассмотрим процесс создания собственной пентест-лаборатории для WordPress на:


  • Ubuntu 20.04
  • Docker
  • Windows с использованием XAMPP

Непосредственно тесты на проникновения можно делать с помощью WPScan, о котором мы уже писали.


WordPress в Ubuntu 20.04


Для работы WordPress необходимы:


  • Apache
  • База данных (MySQL / Mariadb)
  • PHP

Apache


Запустим службу HTTP с помощью Apache, используя учетную запись с root-правами. Для этого выполним следующую команду в терминале:


apt install apache2


Установка MySQL


Для работы WordPress понадобиться сервер базы данных, в качестве которого мы собираемся выбрать MariaDB.


apt install mariadb-server mariadb-client


Следующая команда защитит базу данных от удаленного доступа с root-правами.


mysql_secure_installation

После чего нужно ответить на ряд вопросов:


  • Введите текущий пароль для root (введите, если нет): нажимаем Enter
  • Установить пароль root? [Y/n]: Y
  • Новый пароль: вводим пароль
  • Повторно введите новый пароль: повторяем пароль
  • Удалить анонимных пользователей? [Y/n]: Y
  • Запретить удаленный вход с root правами? [Y/n]: Y
  • Удалить тестовую базу данных и получить к ней доступ? [Y/n]: Y
  • Перезагрузить таблицы привилегий сейчас? [Y/n]: Y


Установить php


Завершаем этап подготовки установки php php-MySQL, для чего нужно выполнить следующую команду.


apt install php php-mysql


Создать базу данных для WordPress


Вводим команду для создания базы данных для WP:


mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit


Установка и настройка WordPress


Теперь пришло время загрузить и установить WordPress на нашем локальном хосте. С помощью команды wget мы получаем архив с установщиком wordpress и извлекаем его в каталог /var/www/html.


cd /var/www/html
wget http://www.wordpress.org/latest.tar.gz
tar –xvf latest.tar.gz


Данная команда изменит владельца каталога «wordpress» и даст разрешение на загрузку файлов.


chown -R www-data:www-data wordpress/
chmod -R 755  wordpress/
mkdir wordpress/wp-content/uploads
chown -R  www-data:www-data wordpress/wp-content/uploads


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


http://localhost/wordpress/

Первым этапом в процессе установки WordPress будет выбор языка.



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



Чтобы WordPress правильно установился и работал необходимо ввести данные для подключения к созданной ранее базе данных.



Далее необходимо ввести данные нашего веб-сайта.



Стоит отметить, что запрашиваемые данные логина и пароля:


  • Перед установкой WP – относятся к информации о базе данных.
  • После установки WP – относятся к админке WordPress.

После этого откроется страница входа в админку WordPress.



Откройте файл wp-config.php в каталоге wordpress и вставьте в него следующие строки, чтобы получить доступ к странице веб-сайта.


define( 'WP_SITEURL', 'http://' .$_SERVER['HTTP_HOST'].'/wordpress');
define( 'WP_HOME', 'http://' .$_SERVER['HTTP_HOST'].'/wordpress');


Вот и все готово и наш WordPress для пентеста готов к работе.



Установка WordPress на Docker


Установка WordPress на Docker намного проще в плане предподготовки. Это очень простой и быстрый метод настройки WordPress. Необходимо обладать лишь базовыми знаниями о docker и его функциях.


Первым делом обновим репозиторий Ubuntu и установим последнюю версию docker.io с помощью команды apt:


apt install docker.io


Docker Compose используется для запуска нескольких контейнеров как одной службы. Давайте начнем установку docker-compose с помощью apt:


apt install docker-compose


Теперь мы должны создать каталог с именем "WordPress", а также файл .yml, который будет содержать необходимую для установки информацию.


mkdir wordpress
cd wordpress/
nano docker-compose.yml


Теперь вставьте следующий текст в .yml и сохраните конфигурацию. Исходный код взят отсюда.


version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}


Теперь запустим докер в режиме отсоединения с помощью команды:


docker–compose up -d


После выполнения всех пошаговых настроек переходим к локальному хосту через порт 8000. Теперь остается лишь установить WP, что мы уже проделывали ранее.



После завершения установки необходимо в админке WP ввести адрес своего локального хоста с номером порта, на котором работает ваш докер.



Вот и все. Теперь WordPress готов для пентестов.



WordPress на Windows


На Windows установить WordPress опять проще, чем на Ubuntu, ведь с помощью XAMPP мы можем сэкономить время на установке:


  • Apache
  • MySQL


Распакуем zip-архив WordPress в папку htdocs в папке xampp на диске C.



Теперь откроем PHPMYADMIN в браузере. Для этого зайдём в /localhost/phpMyAdmin, где создадим базу данных для WordPress.



Вводим данные доступа к базе данных.



Как и в предыдущих случаях устанавливаем WordPress.



Чтобы сделать движок более уязвимым для пентеста можно установить подобные плагины.



Также WordPress для пентеста всегда можно разместить на серверах AlexHost.


image