株式会社セキュアイノベーション

    Menu

    セキュリティコラム

    • ネットワーク

    公開:2022.03.14 10:00 | 更新: 2022.08.09 07:39

    Dockerで脆弱性のあるサイト環境構築

    セキュリティ業務に携わっていると、脆弱性診断のため脆弱性のある環境が必要になることが多々あります。
    環境構築にはサーバーOS、ミドルウェア、アプリケーションのインストールなど少しサーバーの知識が必要となります。
    その後、脆弱性の作り込みなど、やられサイトの下準備が必要となります。
    これらを一から構築すると結構な時間がかかる上、環境構築の経験がない人にとっては少しハードルが高いように思います。
    何より目的は脆弱性診断なので環境構築にあまり時間はかけたくないものです。
    そこで役立つのがDockerです。
    過去に「手軽にハッキングのテストがしたいって?ならDocker立てなよ!」という記事でも紹介がありましたが、改めてDockerについて紹介します。

    Dockerとは?

    コンテナのアプリケーション実行環境を管理するソフトウェアです。
    VMWare や VirtualBox など仮想マシンよりも軽量で高速に動作します。
    必要な時にコンテナを立ち上げ、不要になれば使い捨てできるところがおすすめです。
    しかもローカル環境となりますので、自身のPC内で完結できます。

    システム要件

    • Windows 10 Professional 64-bit
    • Windows 10 Enterprise 64-bit
    • Windows 10 Home 64-bit with WSL 2

    環境

    Windows10
    └ Docker Desktop for Windows
     └DVWA(Webアプリケーション)

    インストール

    • Docker Desktop for Windows
    • WSL 2(Linuxカーネル)

    手順

    ■ 事前準備

    Windows を最新版にアップデートしておきます。
    そしてアップデート後のバージョンが『1903/1909以降』であることを確認します。

    ■ Windows の機能の有効化または無効化を開く

    Windows のスタートメニュー > Windows システムツール > プログラム > Windows の機能の有効化または無効化 を開きます。

    『Linux 用 Windows サブシステム』『仮想マシン』の二つにチェックを入れます。

    システムの再起動を要求された場合は再起動します。

    ■ Linux カーネルをダウンロードし、アップデートする


    こちら(https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)から Linux カーネルをダウンロードします。
    ダウンロードしたら、そのファイルを起動しLinuxカーネルをアップデートします。

    ■ Docker Desktop for Windows インストール

    こちら(https://hub.docker.com/editions/community/docker-ce-desktop-windows/ )から Docker Desktop for Windows をダウンロードしインストールします。
    インストール途中で表示される環境設定は、すべてにチェックを付けてOKボタンを押します。
    すると必要なファイル一式がダウンロードされ、インストールされます。

    インストールが完了するとクジラのアイコンが出てきます。
    正常な状態では左下クジラアイコンが緑色になっています。

    Docker のインストールはできましたでしょうか?
    ここからはWindowsのコマンドプロンプトを使用します。

    ■ DVWA(やられアプリ)

    コマンドプロンプトを開き下記コマンドを実行します。

    docker pull infoslack/dvwa

    DVWAのイメージがダウンロードされます
    次に、ダウンロードしたイメージをコンテナに展開し起動します。

    docker run -d -p 8000:80 -p 3306:3306 -e MYSQL_PASS="mypass" vulnerables/web-dvwa

    うまく起動しない場合、指定したポートが既に使用されている可能性がありますのでポートを変更します。
    『-p xxxx:80 -p xxxx:3306』 ※ xxxx は自由に変更してOKです
    [例] docker run -d -p 8080:80 -p 3336:3306 -e MYSQL_PASS="mypass" vulnerables/web-dvwa

    起動したら下記コマンドでSTATUSが『UP』になっていることを確認します。

    docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    23ec6d13bf3a vulnerables/web-dvwa "/main.sh" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, 0.0.0.0:8000->80/tcp magical_saha

    下記URLをコピーしブラウザにペーストするとサイトへアクセスできます。
    http://localhost:8000

    初回ログインは『Login』ボタンを押せば入れます。
    その後、『Create / Reset Database』ボタンを押し、しばらくするとログイン画面へ戻されます。
    ここで下記情報で再度ログインします。

     ID:admin
     PW:password

    うまくログインできたでしょうか?
    これで脆弱性のあるサイト(やられサイト)が出来上がりました。
    『DVWA』で検索すると使い方や解答が出てきます。
    このやられサイトはローカル環境なので、心置きなくけちょんけちょんにしてやりましょう。

    要らなくなったら下記コマンドは捨てられます。

    docker stop <コンテナID>
    docker rm <コンテナID>

    脆弱性診断を自由に勉強できる本番環境はあまり多くありません。
    そこで活躍するのが、Docker や仮想マシンなどです。
    このようなツールうまく利用してスキルを高めていきたいのもです。

    最新のコラム記事

    LOADING...

    セキュアイノベーション サービス一覧

    ネットワーク・サーバー

    Webサイトを守る

    ヘルプデスク・サポート