がじぇ

お金と家電とプログラミングのブログ

ハッキングを行うために脆弱なアプリケーション(bWAPP)を構築する

おはようございます。

がじぇったー (@hackmylife7) | Twitter


です。

以前kai linuxで攻撃側の環境を構築しましたが、
今回は攻撃対象となる脆弱なウェブアプリケーションを構築していきたいと思います。



f:id:gadgeterkun:20190811222933j:plain

TL;DR(要約)

  • bWAPPはセキュリティの勉強を行うために作られた無料のWEBアプリケーション
  • このアプリケーションをローカル環境に構築することにより、ハッキングを行う

bWAPPとは?

bWAPPは意図的に安全ではない状態で作られた無料のオープンソースWebアプリケーションです。

ローカル環境に構築することで侵入テストや、セキュリティに関する攻撃手法を勉強することができます。

bWAPPの特徴

  • 100以上のWebバグを持っており、主要な既知のWeb脆弱性を網羅
  • MySQLデータベースを使用するPHPアプリケーション
  • WEBサーバに Apacheを使ってLinux / Windowsでホストすることができる
  • 使用はセキュリティテストおよび教育目的のみ


このアプリケーション仮想環境上に構築し、様々なハッキングを仕掛けていきたいと思います。



Docker imageでアプリケーションを起動する


Docker imageが提供されているのでそれを使います。
https://hub.docker.com/r/raesene/bwapp/

docker コマンドで起動させます。
※ docker for macがインストールされていない場合はググって導入してください。

$ docker run -d -p 80:80 raesene/bwapp
5729863f0c09223d5610221ca2900ec01714ee7c14c670cd7ecde65236e0924d
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                          NAMES
5729863f0c09        raesene/bwapp       "/run.sh"           3 seconds ago       Up 2 seconds        0.0.0.0:80->80/tcp, 3306/tcp   inspiring_galileo
$


bashで入ってみましょう
docker ps で出力したコンテナIDを指定します

$ docker exec -i -t 5729863f0c09 bash
root@5729863f0c09:/#

プロセスを確認してみましょう。apachemysqlが起動していればOKでしょう

 
root@5729863f0c09:/# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.8  52136 17004 ?        Ss   11:51   0:01 /usr/bin/python /usr/bin/supervisord -n
root       434  0.0  0.0   4444  1740 ?        S    11:51   0:00 /bin/sh /usr/bin/mysqld_safe
root       435  0.0  1.1 315528 23708 ?        S    11:51   0:00 apache2 -D FOREGROUND
www-data   527  0.0  0.6 315748 13968 ?        S    11:51   0:00 apache2 -D FOREGROUND
www-data   528  0.0  0.3 315576  7532 ?        S    11:51   0:00 apache2 -D FOREGROUND
www-data   529  0.0  0.5 315608 11716 ?        S    11:51   0:00 apache2 -D FOREGROUND
www-data   530  0.0  0.7 316132 14396 ?        S    11:51   0:00 apache2 -D FOREGROUND
www-data   532  0.0  0.6 315748 13312 ?        S    11:51   0:00 apache2 -D FOREGROUND
mysql      799  0.0  3.0 509028 61556 ?        Sl   11:51   0:03 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-er
www-data   850  0.0  0.6 315812 14092 ?        S    11:59   0:00 apache2 -D FOREGROUND
www-data  1230  0.0  0.3 315576  7532 ?        S    13:12   0:00 apache2 -D FOREGROUND
www-data  1231  0.0  0.3 315576  7532 ?        S    13:12   0:00 apache2 -D FOREGROUND
www-data  1232  0.0  0.3 315576  7532 ?        S    13:12   0:00 apache2 -D FOREGROUND
root      1233  0.7  0.1  18176  3252 pts/0    Ss   13:18   0:00 bash
root      1247  0.0  0.1  15568  2212 pts/0    R+   13:18   0:00 ps -aux
root@5729863f0c09:/#

以下でURLにログインします。
http://localhost/install.php


install成功の画面がでてくればOKです。
f:id:gadgeterkun:20190811233016p:plain


次はUser "bee"でログインしてみましょう


http://localhost/login.php

デフォルトのuserはbee、パスワードはbugではいれます。
こちらは/app/admin/settings.phpファイルに設定が記載されています。

f:id:gadgeterkun:20190811233405p:plain


ログインに成功するとこちらの画面がでてきます。

f:id:gadgeterkun:20190811233619p:plain



環境構築はこれでOKなので、
次はSQLインジェクションをこのアプリケーションに対して実施していきたいと思います。