DVWAサーバ構築(1)

Uncategorized
この記事は約10分で読めます。

DVWA(Damn Vulnerable Web Application)は、意図的に脆弱性を持たせたWebアプリケーションです。

早く言うとDVWAをインストールすると “ヤラれ役サーバ” が構築出来るので、これをターゲットとした各種ペンテストの演習が出来ます。

長編の投稿になりますので、今回はDVMWのインストールまでを報告します。

サーバ構築のアウトライン

まず2台のRaspberry piを用意し、ラズパイ5(左)は攻撃用、ラズパイ4B(右)を守備用(やられサーバ)を担当させます。(いずれもOSはkali linuxです)

raspberry pi 5 & 4B

ちなみにこの2台のマシンは、ディスプレイ1台とマウス・キーボード1組のみで操作しています。
Raspberry pi 5 & 4B
ディスプレイとマウス・キーボードは左のラズパイ5にのみ接続しています。
右のラズパイ4Bには何も繋がず、ラズパイ5からのSSH接続を通じて操作しています。
SSH
例えば上図のように1画面の中に、左にラズパイ5のターミナル、右にSSH接続したラズパイ4Bのターミナルを並べておくと同時に操作できます。

なお、ラズパイ4Bの方には既に、

1) “apache2(webサイトを閲覧させるソフト)” が導入済みであり(詳細はapache導入記事)

2) “wordpress” (サイトのコンテンツ管理ソフト)と “MariaDB” (サイトのコンテンツを格納するデータベースソフト)が搭載稼働済みです(詳細はwordpress導入記事)

今回はこの状態から出発して、さらに脆弱webアプリである “dvwa” を搭載・稼働します。

dvwaはwordpressに並列で配置し、データベースソフトはMariaDBを流用しますが、データベース本体は別に新たに作成します。

< 現在の構成 >
Kali Linux
 L  apach2, PHP
    L  Wordpress ー MariaDB(wordpress用DB) 

< 予定する構成 >
kali Linux
 L  apach2, PHP
    L  Wordpress ー MariaDB(wordpress用DB) 
    L  dvwa ー MariaDB(dvwa用DB)

dvwa導入後のサイトのページ構成:
/        ➡️ wordpressのサイト
/DVWA/     ➡️dvwaのサイト
  (トップ下のDVWAディレクトリの下にdvwaサイトを置きます)

現在の環境の確認

まずは現在の関係各種ソフトのバージョンを確認しておきます。

バージョン情報の確認

搭載している ‘apache’, ‘php’, ‘mysql’, ‘mariadb’ のバージョン情報の確認です。

version
ソフトバージョン
apache22.4.68
php8.4.24
mysql11.8.8 (互換のmariadbとして)
mariadb11.8.8

phpのモジュール確認

phpのモジュール一覧を表示します。

php -m

*DVWAの稼働には、モジュールとして上記以外に ‘gd’ 不足しています。
(https://github.com/digininja/DVWA/blob/master/setup.php の135行目)
後ほどインストールします。

php-gdモジュールの確認

念の為 ‘gd’ の不存在の確認と、その名称の確認です。

php-gd

php-gd:PHPの画像編集ライブラリ

webページ構造とその所有者の確認

現時点(wordpressのみ)のサイト構造と、その所有者の確認

/var/www/html/

wordpressは、所有者が “www-data” 、所有グループが “www-data” となっています。

apacheの確認

apacheの状態として下記を順に確認します。

apachectl

apacheのvirtual hostの状態

*:80
│
├─ default server 127.0.0.1
│    └─ /var/www/html
│
└─ wordpress vhost
     ServerName 192.168.11.21
     DocumentRoot /var/www/html/wordpress

Document Rootとは、Webサーバー上でWebサイトの公開データ(HTMLや画像など)を格納する最上位のディレクトリ(フォルダ)のことです。 ユーザーがブラウザでURLにアクセスした際、Webサーバーはこのドキュメントルートを起点としてファイルを探し出し、画面に表示させます。

mariadbの確認

mariadbの稼働状態と、mariadbのデータベース状態の確認

mariadb

データベース中に “wordpress” という名のデータベースを確認出来ます。

wordpressの確認

wordpressサイトのコンテンツ情報と、DBの設定情報取得

wordpress site

確認出来る情報

データベース名DB_NAMEwordpress
ユーザ名DB_USERwpuser
ホスト名DB_HOSTlocalhost

apache上のphp稼働の確認

Apache経由でもphp稼働を確認し、curlでアクセスして確認しておきます。

apachectl php

phpモジュールは稼働しており、アクセスも正常(200 OK)に出来ています。

これまで繰り返し出ている、”AH00558: apache2: Could not reliably determine the server’s
fully qualified domain name, using 127.0.1.1
“の警告は「ServerNameが明確に設定されていないので127.0.1.1を使う」とのApacheの警告です。放置して構いません。

wordpressのvirtual host設定確認

現在のwordpressのvirtual hostの設定の確認

wordpress.conf

将来この設定ファイルに、DVWAへ分岐用のエイリアスを書き加えます。

DVWAインストール

準備

準備として、phpのモジュールの中で不足している “php-gd” をインストールします。

install php8.4-gd

gdの存在確認

php -m

apache再起動

インストールした ‘gd’ をapache2に反映させる為、再起動します。

restart apache2

apache稼働の確認

DVWAインストール

DVWAは、”apt install” ではなく、”git” から “clone” して持ってきます。

まずは “git” が入っているかどうかの確認

git

入っているとの結果です。

インストール先のディレクトリへ移動して、githubからcloneしてきます。

clone DVWA.git

インストール内容の確認

var/www/html/DVWA

まとめ

脆弱サーバ “DVWA” のインストールまでを取り上げました。

既に稼働しているwordpressのサーバに、どうやってDVWAを置くのかが全く見当もつかず、chatGPTに一々聞きながらの設定です。

最初に延々と自分の環境を聞かれましたが、そのおかげでchatGPT先生、今回はほとんど嘘をつかずに教えてくれました。

但し、繰り返し部分が多く口説い印象でした。

節目節目でchatGPTにスクショをアップしていたのですが、ファイルのアップは1スレッド24時間あたり4回の制限があることが分かりました。(それ以上の回数は有料コースとなります)

但し、24時間を超えると、またアップが可能になります。

次回は設定編です。


<PR>

コメント

タイトルとURLをコピーしました