樹莓派
網絡安全
DVWA
WooYun-DVWA
bWAPP
WackoPicko
sqli-labs
ZVulDrill
MCIR
OWASP Mutillidae II
Hackademic
練習環境的搭建
搭建DVWA、DVWA-WooYun、bWAPP等練習應用需要服務器,經典的搭配就是LAMP了。筆者搜索相關資料后覺得nginx比Apache更適合樹莓派,但無奈筆者嘗試配置nginx均失敗,搜索一番也找不到個所以然,故改用了Apache。根據DVWA的github和bWAPP的官網等信息,安裝Apache、PHP5和MySQL(筆者用MariaDB代替MySQL好像 好像 好像 也沒有什么問題)。
搭建服務器
-
安裝 Apache
sudo apt-get install apache2
-
安裝PHP相關
sudo apt-get install php5 php5-gd libapache2-mod-php5 php5-mysql php5-curl
-
安裝MySQL
sudo apt-get install mysql-server
在安裝數據庫的時候需要設置數據庫的密碼,根據提示操作,記住密碼即可。筆者安裝的是MariaDB==
安裝MariaDB
MySQL遠程登陸設置:
-
設置遠程登錄權限
mysql -uroot -p密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.222' IDENTIFIED BY 'P@ssW0rd' WITH GRANT OPTION; /*允許root用戶以 P@ssW0rd 密碼從192.168.1.222(%則是任何地方)登陸*/ FLUSH PRIVILEGES; -- 刷新,使修改生效 SELECT user,password,host FROM mysql.user; -- 查看記錄 quit; -- 退出
-
設置MySQL允許遠程連接
設置允許遠程連接是為了方便對mysql的操作,筆者在后面內容中對mysql的操作(例如導入數據庫、創建數據庫等)是從樹莓派上演示的,筆者同樣可以從電腦上連接遠程操作。
sudo nano /etc/mysql/my.cnf
ctrl+w
搜索bind-address,將它注釋掉# bind-address = 127.0.0.1
重啟MySQL
sudo service mysql restart
如果出現
Job for mysql.service failed.
錯誤,說明是配置文件出錯了,查看一下是不是自己剛才修改了配置文件的什么,例如筆者就錯誤的修改了bind-address
==,如果查不出來 就sudo apt-get purge mysql-server mysql-common
卸載mysql后重新裝,同時把缺少的包一同裝上再重來即可。在電腦上用工具連接一下,如果還是遠程連接失敗,重啟樹莓派試試?或者可以查看一下防火墻的設置?
?
-
以上完成之后重啟一下Apache
sudo service apache2 restart
筆者遇到Apache重啟
Job for apache2.service failed
錯誤,筆者的解決的方法也是使用sudo apt-get purge apache2
卸載Apache后再重裝,就是這么玄學==,[筆者參考這](http://blog.csdn.net/u014271612/article/details/53765229。
關于安裝phpMyAdmin連接管理數據庫,筆者認為可以不安裝,因為不是很需要的。同時考慮到樹莓派瘦小的身板,筆者認為MySQL都可以不在樹莓派上安裝,站庫分離,可以遠程連接。需要管理樹莓派的數據庫,建議使用電腦上的mysql連接管理工具(如果讀者電腦上有的話,例如SQLyog、Navicat)連接管理。
測試服務器
打開瀏覽器輸入樹莓派的ip,看到Apache2 Debian缺省首頁說明服務器正常運行。
配置練習環境
注意!注意!!注意!!!筆者演示和安裝是多個環境在同一站點,有可能在使用的過程中遇到未知的錯誤(很可能就是路徑的問題)!如果可以,還是建議讀者配置多站點或者一個一個環境的安裝練習,練習完成刪除再安裝其他。
準備
FTP軟件用于上傳文件到樹莓派,還可以修改文件屬性、重命名等操作,用root登錄才能進行有效的操作。
下載一個php雅黑探針,下載DVWA、DVWA-WooYun、bWAPP、WackoPicko、sqli-labs、OWASP Mutillidae II、ZVulDrill、MCIR和Hackademic Challenges(解壓時sqli-labs提示什么什么已存在,選擇覆蓋即可)。
-
將解壓后的tz.php和解壓的文件夾(bWAPP解壓后, 選bWAPP_latest中的bWAPP的文件夾,WackoPicko解壓后把website文件夾里的東西和解壓出來的current.sql文件)上傳到網站的根目錄 /var/www/html</font>,刪除文件操作可以在FileZilla中右鍵刪除。要注意WackoPicko!website文件夾里的所有東西要在默認的網站根目錄下(多站點配置除外),否則配置會失敗。
記住文件夾對應的應用,修改文件夾的名稱也要記住==。當然,讀者可以動手嘗試一下Apache的多站點配置,相關的一些配置說明在剛才的默認首頁寫有。
站點服務器
上傳完成后在瀏覽器中輸入樹莓派的即可瀏覽看到剛才上傳的文件夾,點擊訪問tz.php,能看到服務器的相關信息,這說明服務器解析PHP正常。探針是多功能的,有PHPinfo,還可以檢測MySQL連接是否正常。如果tz.php是空白的,再重新安裝PHP試試?如果還是不行,重啟再試試?
設置
配置練習壞境主要有兩種方法,一是在本地修改配置文件好了之后再上傳到樹莓派,或是先上傳文件到樹莓派在樹莓派上配置,二是通過git安裝(部分支持)。兩種方法修改的內容都是相同的。筆者主要演示的是第一種方法中的在樹莓派上修改。
DVWA和DVWA-WooYun**
DVWA-WooYun(烏云靶場)基于DVWA的修改的,同用一個數據庫,配置方法一樣。
點擊dvwa 的文件夾會自動跳轉到dvwa/setup.php頁面,如果你的Setup Check里有狀態是紅的,則說明這些模塊有問題,配置信息參考DVWA的github或者頁面Instructions。
修改配置文件
sudo nano /var/www/html/dvwa/config/config.inc.php #編輯DVWA的配置文件
sudo nano /var/www/html/wooyun_dvwa/config/config.inc.php #編輯烏云靶場的配置文件
以下是筆者DVWA的配置信息
<?php
# 選擇使用的數據庫管理系統,一般是MySQL
$DBMS = 'MySQL';
#$DBMS = 'PGSQL'; #一般不用PGSQL,注釋掉
# 設置DVWA的數據庫變量.
$_DVWA = array();
$_DVWA[ 'db_server' ] = '127.0.0.1'; # 數據庫的ip,本地為127.0.0.1
$_DVWA[ 'db_database' ] = 'dvwa'; #數據庫名就使用默認的dvwa,烏云靶場也是默認使用同樣的數據庫名
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = '數據庫用戶root的密碼';
# PostgreSQL的數據庫連接端口,用PGSQL才有用設置
$_DVWA[ 'db_port '] = '5432';
# 驗證碼設置要翻墻
# 以下密鑰是來自poclist的CSDN博客http://blog.csdn.net/bfboys/article/details/52486044,感謝~
$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
# DVWA的默認挑戰等級,可以設置為'low', 'medium', 'high'或者 'impossible'
$_DVWA[ 'default_security_level' ] = 'low';
#######################以下配置信息烏云靶場沒有###########################
# PHPIDS(PHP入侵檢測系統)的默認狀態,可以設置為 開啟'enabled'或者 不開啟'disabled'.
$_DVWA[ 'default_phpids_level' ] = 'disabled';
# 冗余的PHPIDS信息,顯示WAF防火墻攔截的原因
# 當設置PHPIDS的狀態為disabled時,可以設置此值為 true 或者 false
$_DVWA[ 'default_phpids_verbose' ] = 'true';
?>
ctrl+o
回車保存后 ctrl+x
退出編輯器。
PHP相關功能需要到PHP配位文件中修改,其實在dvwa文件夾wooyun_dvwa文件夾下都有php.ini。
但是里面都有這樣一句話This file attempts to overwrite the original php.ini file. Doesnt always work.
在文件夾下的.htaccess文件好像也可以修改一些配置,筆者選擇修改/etc/php5/apache2/php.ini
。
sudo nano /etc/php5/apache2/php.ini
使用組合快捷鍵ctrl+w
搜索allow_url_include
、allow_url_fopen
、display_errors
等
筆者是小白一個,所以基于挑戰容易來配置,讀者可根據需要自行修改,這是關于php.ini的官方文檔。
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-fopen
;是否允許遠程打開文件
allow_url_fopen = On
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-include
;是否允許遠程包含文件
allow_url_include = On
; http://php.net/sql.safe-mode
sql.safe_mode = Off
;magic_quotes_gpc這個選項已經PHP5.4中被移除。但好像在dvwa文件夾下的.htaccess文件可以設置
;以下設置好像筆者并感覺到沒有起作用orz。。。
;顯示出錯誤信息作為輸出
display_startup_errors = On
;顯示PHP的啟動中的錯誤
display_startup_errors = On
;html形式的錯誤信息
html_errors = On
ctrl+o
回車保存后 ctrl+x
退出編輯器
設置權限
sudo chmod -R 777 /var/www/html/dvwa/hackable/uploads/
sudo chmod -R 777 /var/www/html/dvwa/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
重啟Apache
sudo service apache2 restart
完成后訪問/dvwa/即可
點擊下面的Create / Reset Database
按鈕就可以創建或者重置數據庫,創建完成后過一會會自動跳轉到登錄頁面默認賬號是admin,密碼是password。開始吧,騷年!
創建好DVWA后訪問烏云靶場也可以用了。
bWAPP
修改目錄權限
sudo chmod 777 /var/www/html/bWAPP/passwords/
sudo chmod 777 /var/www/html/bWAPP/images/
sudo chmod 777 /var/www/html/bWAPP/documents/
sudo chmod 777 /var/www/html/bWAPP/logs/
修改配置文件
sudo nano /var/www/html/bWAPP/admin/settings.php
以下是筆者的配置文件
<?php
// 數據庫連接設置
$db_server = "localhost";
$db_username = "root";
$db_password = '數據庫用戶root的密碼';
$db_name = "bWAPP";
// SQLite數據庫,使用默認就好
$db_sqlite = "db/bwapp.sqlite";
// 郵箱設置
$smtp_sender = "bwapp@mailinator.com";
$smtp_recipient = "bwapp@mailinator.com";
$smtp_server = "";
// A.I.M.模式,筆者不太明白,望知情的讀者告知,謝謝
// It can be used for testing web scanners and crawlers
// Steps to crawl all pages, and to detect all vulnerabilities without authentication:
// 1. Change the IP address(es) in this file to the IP address(es) of your tool(s)
// 2. Point your web scanners, crawlers or attack tools to this URL: http://[bWAPP-IP]/bWAPP/aim.php
// 3. Push the button: all hell breaks loose...
$AIM_IPs = array("6.6.6.6", "6.6.6.7", "6.6.6.8", "10.0.1.66");
$AIM_subnet = "6.6.6.0/30";
// A.I.M.模式中排除的文件
$AIM_exclusions = array("aim.php", "ba_logout.php", "cs_validation.php", "csrf_1.php", "http_verb_tampering.php", "ldap_connect.php", "ldapi.php", "portal.php", "sm_dos_2.php", "sm_obu_files.php");
// 邪惡模式,是蜜罐嗎?筆者不太明白,望知情的讀者告知,謝謝
// All bWAPP security levels are bypassed in this mode by using a fixed cookie (security_level: 666)
// It can be combined with the A.I.M. mode, your web scanner will ONLY detect the vulnerabilities
$evil_bee = 0;
// 設置賬號密碼
$login = "bee";
$password = "bug";
?>
ctrl+o
回車保存后 ctrl+x
退出編輯器。
瀏覽器訪問/bWAPP/install.php,Click here to install bWAPP,點擊here進行安裝,稍等片刻提示bWAPP has been installed successfully!。再訪問bWAPP文件夾即可,會自動跳轉到login.php,輸入剛才設置的賬號bee,密碼bug就可以開工了
sqli-labs
sqlilabs解壓文件夾下有個tomcat-files.zip,里面的關卡需要安裝配置jsp,筆者就不演示配置了。(好吧ヽ(  ̄д ̄;)ノ,其實是筆者還不會將Apache和tomcat搭配。。。)
修改配置文件
sudo nano /var/www/html/sqlilabs/sql-connections/db-creds.inc
一下是筆者的配置
<?php
$dbuser ='root';
$dbpass ='數據庫用戶root的密碼';
$dbname ="security";
$host = 'localhost';
$dbname1 = "challenges";
?>
ctrl+o
回車保存后 ctrl+x
退出編輯器。
訪問/sqlilab/首頁,點擊左上角的Setup/reset Database for labs稍等片刻
WackoPicko
方法一:源碼安裝,參考WackoPicko的github
修改配置文件
sudo nano /etc/php5/apache2/php.ini
ctrl+w
搜索short_open_tag
,去掉前面的分號,修改為
short_open_tag = On
導入WackoPicko database進入MySQL
mysql -uroot -p密碼 < /var/www/html/current.sql
坑來了,MariaDB導入會報錯 ERROR 1396 (HY000) at line 20: Operation CREATE USER failed for 'wackopicko'@'%'</font>筆者也不知道為什么。。。黑人問號.jpg
應該是兼容性的問題吧,使用MySQL導入沒有問題!
筆者MariaDB的導入數據庫出錯的決解方案:
-
先刪除wackopicko數據庫和名為wackopicko的用戶,防止之前導入創建的數據報錯
mysql -uroot -p密碼
drop database wackopicko; -- 如果不存在wackopicko數據庫會報Can't drop database 'wackopicko'; database doesn't exist DELETE FROM mysql.user WHERE User = 'wackopicko'; -- 刪除用戶wackopicko
-
修改SQL文件
sudo nano /var/www/html/current.sql
/* 這條語句 CREATE USER 'wackopicko'@'%' IDENTIFIED BY 'webvuln!@#'; 替換為 */ INSERT INTO mysql.user (Host,User,Password) VALUES ("%","wackopicko",password("webvuln!@#"));
ctrl+o
回車保存后ctrl+x
退出編輯器。再次導入即可。
修改權限
sudo chmod 777 /var/www/html/upload
最后直接訪問ip即可
方法二:通過git下載安裝,參考WackoPicko的WiKi
github上的有的環境都可以通過這個方式下載安裝和配置。
安裝git
sudo apt-get install git-core
下載WackoPicko
cd /var/www/ #進入目錄
git clone https://github.com/adamdoupe/WackoPicko.git #下載
導入數據庫
如果已經使用過方法一,則MySQL中已經存在用戶和數據庫,導入會報錯Can't create database 'wackopicko'; database exists,可以跳過這步
導入數據庫有兩種方式。
方法一:
手動導入
cd WackoPicko/ #進入目錄
mysql -uroot -p密碼 < current.sql #導入數據庫
方法二:
運行目錄下的create_mysql_admin_user.sh
文件,可能會出錯,需要修改文件。
移動目錄
sudo mv website/* /var/www/html
設置目錄權限
sudo chmod 777 /var/www/html/website/upload
設置完成之后直接訪問ip即可。
ZVulDrill
配置參考ZVulDrill的github
從ZVulDrill的github下載的壓縮包中有漏洞注釋版本ZVulDrill.zip,兩個版本筆者認為用哪個都沒什么問題。
創建并導入數據庫
mysql -uroot -p密碼 #登錄數據庫
CREATE DATABASE zvuldrill; -- 創建名為zvuldrill的數據庫
USE zvuldrill; -- 切換數據庫
SOURCE /var/www/html/ZVulDrill/sys/zvuldrill.sql; -- 導入數據庫
quit; -- 退出
設置根目錄
因為筆者的樹莓派上并不是只有一個站點,所以沒有將ZVulDrill文件夾下的文件直接部署在網站的根目錄/var/www/html/,而是將整個文件夾放在網站根目錄。
sudo nano /var/www/html/ZVulDrill/sys/config.php
以下是筆者的配置
<?php
//鏈接數據庫
$host = 'localhost';
$username = 'root';
$password = '數據庫用戶root的密碼';
$database = 'zvuldrill';
$dbc = mysqli_connect($host, $username, $password, $database);
if (!$dbc)
{
die('Could not connect: ' . mysql_error());
}
//啟用session
session_start();
//根目錄
$basedir = '/ZVulDrill'; // 根目錄是/加你文件夾的名稱
//載入函數庫
include_once('lib.php');
?>
but。。。。。。發現這個平臺有點有點"美中不足",比如注冊或者登錄用戶名密碼部分是空的會報404,比如登錄后用戶界面顯示不正常。。。。。。
讀者若是糾結,筆者的修復方案可以參考一下:
-
顯示不正常是因為css的路徑不對,修復方法如下
sudo mkdir /var/www/html/ZVulDrill/user/css sudo cp /var/www/html/ZVulDrill/css/* /var/www/html/ZVulDrill/user/css #把css復制到/user/css/
修復相關的php文件路徑,編輯
/user/user.php
,在include_once('../sys/config.php');
的后面加上$basedir = '..';
即可。
?
修復后的效果 :-P
?
MCIR
這個也是ZVulDrill的Chanllege里SQL注入繞過管理后臺登陸的拓展練習。
修改配置文件
sudo nano /var/www/html/MCIR/sqlol/includes/database.config.php
以下是筆者的配置
<?php
$dbtype = 'mysqli';
$server = '127.0.0.1';
$port = '3306';
$username = 'root';
$password = '數據庫用戶root密碼';
$database = 'sqlol';
$persist = '';
$hostspec = $username.':'.$password.'@'.$server.':'.$port;
?>
當然,你也可以配置PostgreSQL或者SQLite。修改完成之后直接訪問/MICR/即可
OWASP Mutillidae II
修改配置文件
sudo nano /var/www/html/mutillidae/classes/MySQLHandler.php
修改以下語句
static public $mMySQLDatabaseHost = "127.0.0.1"; //數據庫地址
static public $mMySQLDatabaseUsername = "root"; //用戶名
static public $mMySQLDatabasePassword = "數據庫用戶root的密碼";
ctrl+o
回車保存后 ctrl+x
退出編輯器,訪問/mutillidae/即可
因為我們并沒有進行https的相關設置,在點擊Enforce SSL等涉及https鏈接時會顯示Browsing via HTTP Forbidden。
Hackademic_Challenges
不需要配置,直接訪問/Hackademic_Challenges/即可
webug漏洞練習平臺
這個平臺是和我一起學習的朋友推薦給我的,這是webug的官網和github,將網站的根目錄傳到樹莓派Apache的根目錄下/自己的文件夾即可。官網和下載壓縮包中已經包含了詳細的安裝的方法了,我就不再復述。提醒讀者注意一下在安裝(包括各種cms)的時候運行sql文件時注意文件的編碼,一些高級的功能需要安裝cms才能使用。
后記
閑置的樹莓派算是利用起來了,在搭建環境的時候碰到了不少問題,基本是靠搜索引擎解決的。這是筆者的第二篇博客,從對編程感興趣到現在的動手去實踐,其中感悟感想不少,日后再專門寫一篇記錄吧。
業精于勤荒于嬉,行成于思毀于隨。共勉!