Security Record

セキュリティ全般に関する情報を発信しています

Kali LinuxにXAMPPをインストールしてWordPress環境を構築する方法

Kali LinuxにXAMPPをインストールしてWordPress環境を構築する方法についてまとめました。

WordPressのダウンロード

まずは日本語の公式サイトにアクセスします。 本番運用をするのであれば最新版をダウンロードしてください。 https://ja.wordpress.org/

それ以外の目的がある場合、下記ページで好きなバージョンをダウンロードします。 https://ja.wordpress.org/download/releases/

本番運用で使用するなら最新版を、脆弱性のテストなどを行う場合は目的にあったバージョンをダウンロードします。 今回は脆弱性の学習用としてインストールするので、やや古いバージョン5.0をダウンロードします。 WordPress5.0のPHPバージョンは7.4系になります。

tar.gzをクリックしてダウンロードを行います。

ハッシュ値の確認

CURLコマンドを使用してハッシュ値が記載されたファイルをダウンロードします。 CURLコマンドのOオプションは対象のファイルをダウンロードするオプションになります。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# curl -O https://ja.wordpress.org/wordpress-5.0-ja.tar.gz.sha1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    40    0    40    0     0     61      0 --:--:-- --:--:-- --:--:--    61

次に、catコマンドでダウンロードしたファイルのハッシュ値を確認します。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# cat wordpress-5.0-ja.tar.gz.sha1                             
e6c11d43a3aac06f1b4d046c9dc031296d279aae  

sha1sumコマンドでダウンロードしたダウンロードしたtar.gzファイルのハッシュ値を計算します。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# sha1sum wordpress-5.0-ja.tar.gz
e6c11d43a3aac06f1b4d046c9dc031296d279aae  wordpress-5.0-ja.tar.gz

ハッシュ値が一致したので正しくダウンロードされていることが分かります。

XAMPPのダウンロード

次にXAMPPをダウンロードします 下記URLよりLINUX用のXAMPPをダウンロードします。 https://www.apachefriends.org/jp/index.html

home/kali/Downloadsディレクトリ以下に以下のファイルがダウンロードされているかと思います。

xampp-linux-x64-8.2.4-0-installer.run

ハッシュ値の確認

XAMPPのチェックサムは下記ページで公開されています。 https://www.apachefriends.org/jp/download.html

チェックサムコマンドで一致するか確認します。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# sha1sum xampp-linux-x64-8.2.4-0-installer.run 
8618a94586e26d3464287dc0e93c841443d4ba9b  xampp-linux-x64-8.2.4-0-installer.run

サイト上で公開されているハッシュ値と一致したので、正常にダウンロードできたようです。

このようにダウンロードしたファイルが改変されていないか確認するためには、 事前にチェックサムを確認しておく事で安全性を確認する事ができます。

XAMPPをインストールする

次にXAMPPをインストールします。 まず、ダウンロードしたXAMPPに実行権限を付与します。

実行権限付与のコマンドを実行。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# chmod +x xampp-linux-x64-8.2.4-0-installer.run 

実行権限が付与されているか確認します。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# ll
合計 164920
-rw-r--r-- 1 kali kali  11117245  5月 22 21:02 wordpress-5.0-ja.tar.gz
-rw-r--r-- 1 root root        40  5月 22 21:42 wordpress-5.0-ja.tar.gz.sha1
-rwxr-xr-x 1 kali kali 157746191  5月 22 21:39 xampp-linux-x64-8.2.4-0-installer.run

実行権限が正しく付与されていることが確認できたら、インストーラーを実行してしばらく待ちます。 ダウンロードしたファイルを実行することでインストールが開始されます。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# ./xampp-linux-x64-8.2.4-0-installer.run 

インストールには数分かかるのでしばらく待ちます。

XAMPPの起動

インストールが完了したらXAMPP利用者にはおなじみのなコンソールが表示されました。

CUIでXAMPPを操作する

一度、XAMPPのコンソール画面を閉じて下記コマンドを実行します

┌──(root㉿kali)-[/home/kali/Downloads]
└─# cd /opt/lampp                          
                                                                                                
┌──(root㉿kali)-[/opt/lampp]
└─# ./xampp status                         
Version: XAMPP for Linux 8.2.4-0
Apache is running.
MySQL is not running.
ProFTPD is not running.

そうするとCUIでもXAMPPの起動状況が確認できるのが分かります。 (初期状態ではApacheのみ起動しています)

コマンドからXAMPPを起動するには下記コマンドを実行します。

┌──(root㉿kali)-[/opt/lampp]
└─# ./manager-linux-x64.run 

そうするとXAMPPのコンソールが起動します。

XAMPPのデフォルトページの表示確認

ブラウザを立ち上げてlocalhostにアクセスしてみます。

無事にXAMPPの初期ページが表示されました。

WordPressのインストールを行う

ファイルの解凍

ファイルを解凍してwordpressフォルダをリネームした後、 /opt/lampp/htdocs ディレクトリにコピーします。

┌──(root㉿kali)-[/home/kali/Downloads]
└─# tar xvf wordpress-5.0-ja.tar.gz

┌──(root㉿kali)-[/home/kali/Downloads]
└─# mv wordpress blog
                            
┌──(root㉿kali)-[/home/kali/Downloads]
└─# cp -R blog /opt/lampp/htdocs
                                                                                                
┌──(root㉿kali)-[/home/kali/Downloads]
└─# cd /opt/lampp/htdocs     

権限の変更

blogフォルダの権限を705にします。 まずfindコマンドでblogフォルダのみを抽出して、exexコマンドchmodを実行します。 (波括弧にはfindの実行結果が入ります)

権限の変更

┌──(root㉿kali)-[/opt/lampp/htdocs]
└─# find ./blog -type d -exec chmod 705 {} \;

llコマンドを実行して権限が変更されているか確認します。

┌──(root㉿kali)-[/opt/lampp/htdocs]
└─# ll
合計 60
-rw-r--r--  1 root   root    3607  6月 16  2022 applications.html
-rw-r--r--  1 root   root     177  6月 16  2022 bitnami.css
drwx---r-x  5 daemon daemon  4096  5月 22 22:40 blog
drwxrwxr-x 20 root   root    4096  5月 22 22:07 dashboard
-rw-r--r--  1 root   root   30894  5月 11  2007 favicon.ico
drwxr-xr-x  2 root   root    4096  5月 22 22:07 img
-rw-r--r--  1 root   root     260  7月  9  2015 index.php
drwxr-xr-x  2 daemon daemon  4096  5月 22 22:06 webalizer

ファイルの権限を604にします。 フォルダの権限を変更したときと同様、findコマンドを使用して、今度は-type fでファイルのみを抽出して、権限を変更します。

┌──(root㉿kali)-[/opt/lampp/htdocs]
└─# find ./blog -type f -exec chmod 604 {} \;
                                                                                                
┌──(root㉿kali)-[/opt/lampp/htdocs]
└─# cd blog                                       

権限を確認したら604になっているのが分かります。

┌──(root㉿kali)-[/opt/lampp/htdocs/blog]
└─# ll
合計 200
-rw----r--  1 daemon daemon   418  5月 22 22:40 index.php
-rw----r--  1 daemon daemon 19935  5月 22 22:40 license.txt
-rw----r--  1 daemon daemon 10305  5月 22 22:40 readme.html
-rw----r--  1 daemon daemon  5458  5月 22 22:40 wp-activate.php
drwx---r-x  9 daemon daemon  4096  5月 22 22:40 wp-admin
-rw----r--  1 daemon daemon   364  5月 22 22:40 wp-blog-header.php
-rw----r--  1 daemon daemon  1889  5月 22 22:40 wp-comments-post.php
-rw----r--  1 daemon daemon  3886  5月 22 22:40 wp-config-sample.php
drwx---r-x  5 daemon daemon  4096  5月 22 22:40 wp-content
-rw----r--  1 daemon daemon  3669  5月 22 22:40 wp-cron.php
drwx---r-x 19 daemon daemon 12288  5月 22 22:40 wp-includes
-rw----r--  1 daemon daemon  2422  5月 22 22:40 wp-links-opml.php
-rw----r--  1 daemon daemon  3306  5月 22 22:40 wp-load.php
-rw----r--  1 daemon daemon 37286  5月 22 22:40 wp-login.php
-rw----r--  1 daemon daemon  8048  5月 22 22:40 wp-mail.php
-rw----r--  1 daemon daemon 17421  5月 22 22:40 wp-settings.php
-rw----r--  1 daemon daemon 30091  5月 22 22:40 wp-signup.php
-rw----r--  1 daemon daemon  4620  5月 22 22:40 wp-trackback.php
-rw----r--  1 daemon daemon  3065  5月 22 22:40 xmlrpc.php

WordPressのインストール・初期ページ確認

http://localhost/blog/ にアクセスすると WordPressのインストールウィザードが起動します。

事前にデータベースで設定しておいた、 データベース名、ユーザ名、パスワード、ホスト名を入力した後、 WordPressをインストールします。

インストール完了後サイトにアクセスすると、WordPressが無事表示されました!

ここまでの設定で、一応はWordPressのインストールが完了しました。 次に、よりセキュアにするため、重要なファイルのパーミッションを変更します。

.htaccessとwp-config.phpのパーミッションの設定

.htaccess とwp-config.php については所有者のみが読み取れるように権限を400に変更します。

┌──(root㉿kali)-[/opt/lampp/htdocs/blog]
└─# chmod 400 .htaccess     

┌──(root㉿kali)-[/opt/lampp/htdocs/blog]
└─# chmod 400 wp-config.php 

権限が400になっていることが分かります。

-r--------  1 daemon daemon   245  5月 22 23:24 .htaccess
-rw----r--  1 daemon daemon   418  5月 22 22:40 index.php
-rw-r--r--  1 daemon daemon 19935  5月 22 23:24 license.txt
-rw-r--r--  1 daemon daemon  7415  5月 22 23:24 readme.html
-rw-r--r--  1 daemon daemon  6878  5月 22 23:24 wp-activate.php
drwx---r-x  9 daemon daemon  4096  5月 22 22:40 wp-admin
-rw----r--  1 daemon daemon   364  5月 22 22:40 wp-blog-header.php
-rw----r--  1 daemon daemon  1889  5月 22 22:40 wp-comments-post.php
-rw-r--r--  1 daemon daemon  2853  5月 22 23:24 wp-config-sample.php
-r--------  1 daemon daemon  4157  5月 22 23:23 wp-config.php

不要ファイルの削除

まず、http://localhost/blog/readme.htmlにアクセスしてみます。 すると、readme.htmlが表示されることが分かります。

次に、http://localhost/blog/license.txtにアクセスしてみます。 するとWordPressのライセンス情報が表示されてしまします。

これらのファイルをサーバー上に残しておくと攻撃者に有利な情報を与えてしまうので削除しておきます。 これらのファイルを削除して、最低限のセキュリティを担保したWordPressのインストールが完了となります。

一旦まとめ

上記手順を実施して適切にインストールを行ったとしても、あくまで最低限のセキュリティが担保されたにすぎません。 追加でセキュリティ関係のプラグインを導入などの対応が必要になるかと思います。

今回古いバージョンのWordPressをKali Linuxにインストールしたので、どの程度の脆弱性が検出されるか、実験してみようと思います。