2019年4月1日 星期一

【建置】CentOS7安裝DVWA

STEP 0:建置說明
STEP 1:安裝Apache HTTP伺服器
  • 安裝Apache
  # yum -y install httpd  
  • 啟用Apache服務
  # systemctl start httpd  
  • 預設開機啟用
  # systemctl enable httpd  
Created symlink from /etc/systemd/system/multi-user.target.
wants/httpd.service to /usr/lib/systemd/system/httpd.service.
  • 確認網頁與服務是否正常啟用
  # systemctl status httpd  
 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-04-01 14:07:08 CST; 5min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 11678 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
  • 連線至127.0.0.1確認網站是否正常
  • 確認安裝後版本
[root@localhost ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov  5 2018 01:47:09
STEP 2:安裝PHP
  • 安裝php與php常用套件。
  # yum install -y php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel  
  • 重新啟用Apache服務
  # systemctl restart httpd  
  • 確認PHP是否成功安裝
[root@localhost ~]# php -v
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
STEP 3:安裝MariaDB資料庫
  • 安裝MariaDB資料庫
  # yum install -y mariadb-server mariadb  
  • 啟用MariaDB服務
  # systemctl start mariadb.service  
  • 預設啟用MariaDB
  # systemctl enable mariadb.service  
Created symlink from /etc/systemd/system/multi-user.target.
wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
  • 登入MariaDB指令如下
[root@localhost ~]# mysql -u root
  • 登入後開頭變成"MariaDB [(none)]>",請使用use使用mysql資料庫,進入mysql修改密碼
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
  • 修改root密碼
MariaDB [mysql]> update user set password=PASSWORD("你的密碼") where User='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0
  • 修改Mysql帳戶資訊或權限設定後,不重啟mysql服務直接生效後quit離開
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> quit
  • 重新登入與確認版本
  # mysql -u root -p  
[root@localhost ~]# mysql -V
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
STEP 4:安裝DVWA與相關設定

  • 利用wget下載DVWA之zip檔並且解壓縮,並移動至網頁目錄
  # wget https://github.com/ethicalhack3r/DVWA/archive/master.zip  
  # mv master.zip /var/www/html/  
  • 移動至該目錄並解壓縮(參數-q:不顯示任何解壓訊息)
  # cd /var/www/html/  
  # unzip -q master.zip  
  • 由於是MariaDB是所以要建立資料庫
  # mysql -u root -p  
MariaDB [(none)]> create database dvwa;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on dvwa.* to dvwa@localhost identified by 'dvwa';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye
  • 請編輯config.inc.php.dist後,設定資料庫之帳號密碼與Database,並重新命名為config.inc.php
  # vim config.inc.php.dist  
$_DVWA = array();
$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'dvwa';
$_DVWA[ 'db_password' ] = 'dvwa';
  # mv config.inc.php.dist config.inc.php  
  • 請設定selinux預設開啟遠端資料庫連線
  # setsebool -P httpd_can_network_connect_db 1  
  • 預設登入頁面,帳號admin / 密碼password,完成安裝~
STEP 5:修復各項紅字設定

  • PHP function allow_url_include: Disabled

  # vim /etc/php.ini  
vim語法的搜尋為 /
後面加上allow_url_include找到該字串,將值Off改為On即可。
; 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

; Define the anonymous ftp password (your email address). PHP's default setting
重啟web服務後即可。
  # systemctl restart httpd  
  • reCAPTCHA key: Missing
https://www.google.com/recaptcha以Gmail進去Admin console申請key。
申請完成後,將申請完成的key貼入config.inc.php以下這兩個欄位。
  # vim /var/www/html/DVWA-master/config/config.inc.php  

重啟web服務後即可。
  # systemctl restart httpd  

  • [User: apache] Writable folder /var/www/html/DVWA-master/hackable/uploads/: No
  # chmod 777 /var/www/html/DVWA-master/hackable/uploads/  
  • [User: apache] Writable file /var/www/html/DVWA-master/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt: No
  # chcon -t httpd_sys_rw_content_t /var/www/html/DVWA-master/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt -R  
  • [User: apache] Writable folder /var/www/html/DVWA-master/config: No
  # chcon -t httpd_sys_rw_content_t /var/www/html/DVWA-master/config -R  

完成後如上圖所示~Question

1. DVWA System error - config file not found. Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.
A:
如上述字面上的意思,找不到該檔案,請重新命名成config.inc.php檔即可
  # cd /var/www/html/DVWA-master/config/  
  # mv config.inc.php.dist config.inc.php  

2.Could not connect to the MySQL service.Please check the config file.
A:
默認的情況下httpd_can_network_connect_db遠端連線資料庫為關閉的(off)
請設定Selinux將httpd_can_network_connect_db開啟即可解決這問題
  # setsebool -P httpd_can_network_connect_db 1  
(參數-P為永久有效,後面1為啟用,0則反之)

2019年3月21日 星期四

【建置】OWASP Juice Shop充滿漏洞的果汁網站

本次要安裝充滿漏洞的網站,是bkimminich這位作者針對常見的網站弱點所開發的,網站內有給使用者登入的平台、購買商品、及留言回饋表等普遍購物網站上的功能,這些功能都有相關的漏洞,讓使用者能作滲透測試體驗。

何謂OWASP?
OWASP是非營利社群,目標是改善網頁安全性。 OWASP Top 10是指10項風險最嚴重的網頁漏洞風險,例如:Injection、驗證失敗、暴露機敏資訊等

以下為建置指令

1.首先安裝docker
 # yum install docker -y 

2.開機啟用docker(不需要可略過此步驟)
 # systemctl enable docker 

3.開啟docker
 # systemctl start docker 

4.運用docker使用的pull參數下載juice-shop的映像檔(image)
 # docker pull bkimminich/juice-shop 

5.運行docker映像檔(image)環境
 # docker run -d -p 3000:3000 bkimminich/juice-shop 

6.開啟瀏覽器開始玩果汁店~
 https://localhost:3000 

docker參數:
run:標準docker建立容器(Container)且執行指令。
-d:背景執行。
-p:要設定的Port(上述是設定是開Port:3000)。
bkimminich/juice-shop:要放入的容器的映像檔。

建置影片:


參考資料:
Juice-Shop:https://github.com/bkimminich/juice-shop

2017年8月25日 星期五

【架設】PHP安裝筆記

由於最近要寫一些php相關的網頁,而要架設php環境,先前我寫了Apache的安裝筆記,接下來繼續延伸下去,本次安裝的是php。

安裝需求:
  • Apache Web Server安裝完成 (未安裝者請參考我上一篇文章->傳送門)
1.就按照教學網站,安裝php與php常用套件。
  $ sudo yum install -y php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel  

2.安裝完成以後,重啟httpd.service。
  $ sudo systemctl restart httpd  

3.寫一段小小程式碼,去測試php是否有編譯成功。
  $ vi /var/www/html/first.php  

4.複製以下代碼後,貼上first.php並且在http://localhost/first.php去測試看看,是否有成功。
<?php
    echo "Hello World";
?>

5.測試成功

參考資料:

2017年8月24日 星期四

【架設】CentOS7安裝Apache Web Server

Apache HTTP Server是全球最流行網站伺服器,
可在大多數電腦作業系統運行,是目前主流的網站伺服器。
然而他是我第一個架設的Web Server,既簡單又實用。

本次安裝以非root的身分去執行安裝Apache Web Server。
安裝需求:
  • 作業系統CentOS7
  • 參考以下架設流程

STEP 1:安裝Apache與設置重啟啟動

1.首先清除暫存區rpm文件與文件包
  $ sudo yum clean all  
(如安裝完Apache也可以執行此指令清除,節省硬碟空間。)

2.再來更新系統
  $ sudo yum -y update  

3.安裝Apache,就是這麼簡單~
  $ sudo yum -y install httpd  
※參數『-y』是系統幫你自動回答『yes』,對於懶著按Y的我,是蠻好用的。
詳細請參考:鳥哥yum說明文件(http://bit.ly/2wp7LnH)

4.啟用Apache服務
  $ sudo systemctl start httpd  

5.重啟時啟動Apache服務
  $ sudo systemctl enable httpd  

6.查看Apache狀態(要養成好習慣,安裝好看狀態,確認是否有啟用。)
  $ sudo systemctl status httpd  

7.要停用Apache服務
  $ sudo systemctl stop httpd  

STEP 2:開啟防火牆80/443 port

1.請開啟HTTP與HTTPS,HTTP預設是80port,HTTPS則是443,防火牆要開通,否則被防
   火牆擋掉而無法連上網站。
  $ sudo firewall-cmd --permanent --add-port=80/tcp  
  $ sudo firewall-cmd --permanent --add-port=443/tcp  

2.最後記得要重啟防火牆。
  $ sudo firewall-cmd --reload   

STEP 3:關閉SElinux(可選擇略過)

個人是建議不要關閉SElinux,除非是建立給自己玩的,否則還蠻危險的。

1.修改selinux設定
  $ vi /etc/sysconfig/selinux  

2.找到SELINUX=enforcing 修改成 SELINUX=disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

3.重啟
  $ sudo reboot  

4.使用getenforce查看是否disabled
  $ getenforce  
輸出結果如下:
[creemeow@localhost ~]$ getenforce
Disabled             

STEP 4:連線成果測試(已VirtualBox為例)
1.新增NAT網路 (喜好設定>網路>加入新的NAT網路>確認)
2.設定成NAT網路,選擇剛剛新增的NAT網路
3.打上指令ip addr確認『NAT網路』的IP
  $ ip addr  
如下圖IP為10.0.2.7/24
4.設定你的轉送規則,我設定連入81port會轉成80port到目的地網站
5.查看你要連入的VirtualBox的IP
6.確定好後就連入192.168.56.1:81,以下是成功的畫面!
※補充-1連入Putty:
1.開啟22port
2.去官方網站下載Putty(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)

3.Host Name打上192.168.56.1;Port22
4.這樣就連線成功囉
※補充-2修改SSH預設port :
1.關閉ssh防火牆port
  # firewall-cmd --remove-service=ssh --permanent  
2.開啟要SSH的port,舉例來說,我開2486的port做ssh連線
  # firewall-cmd --permanent --add-port=2486/tcp  
3.重啟防火牆
  # firewall-cmd --reload  
4.到sshd_config修改ssh預設port
  # vim /etc/ssh/sshd_config  
5.把#Port 22改成Port 2486
#以上省略...
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 2486
#AddressFamily any
#以下省略...
6.設定selinux,允許開啟ssh的2486port
  # semanage port -a -t ssh_port_t -p tcp 2486  
7.最後重啟ssh服務,做測試連線
  # systemctl restart sshd  
8.完成
※補充-3關閉防火牆設備 :
如果有需要關掉防火牆設備,可以執行以下指令。

1.設定防火牆重開機後禁用
  $ sudo systemctl disable firewalld  

2.防火牆停用
  $ sudo systemctl stop firewalld  

3.最後查看防火牆狀態,確認是否關閉
  $ sudo systemctl status firewalld  

參考資料:
 How to Install Apache on CentOS 7:http://bit.ly/2wnZVdW

CentOS 7 變更 SSH 埠號 (+SELinux 設定) :https://is.gd/q3WVob

2017年8月13日 星期日

【架設】VirtualBox安裝CentOS7建置筆記

本次使用虛擬機VirtualBox建立CentOS7的安裝教學,
來記錄一下,我安裝的過程,與一些個人的小筆記。
如果有誤,或是我哪裡寫錯,請在底下留言,我會做一些修改的~

目錄:
  • VirtualBox建置CentOS7環境
  • CentOS7基本安裝教學
本次實作版本說明:
  • VirtualBox版本為5.0.8 r103449
  • CentOS版本為
事前安裝準備:
  • 一台VitualBox虛擬機 (用VMware或是其他的VM平台也是可以)

VirtualBox建置CentOS7環境


1.開啟VirtualBOX點選新增


2.名稱和作業系統設定
  • 名稱:自訂
  • 類型:Linux
  • 版本:RedHat(64-bit)


3.設定記憶體大小,看個人需求,通常1GB(1024MB)就足夠了。


4.選擇立即建立虛擬硬碟,並且建立。


5.選擇VDI即可。


6.選擇動態配置,因為我想用多少,就用多少,用不到的地方也不會浪費空間。

  • 動態配置:虛擬機多少,實體硬碟就用多少,直到切出去的最大值。
EX:VM切了50G,只用了20G,你的D槽有500G,用動態配置,請問實體硬碟用了多少空間?

Ans: 20GB ,VM:20GB/50GB,D槽:20GB/500GB。

  • 固定大小:虛擬機多少,實體硬碟就切多少出去。
EX:VM切了50G,只用了20G,你的D槽有500G,用固定大小,請問實體硬碟用了多少空間?

Ans: 50GB ,VM:20GB/50GB,D槽:50GB/500GB。



7.切硬碟大小,想切多少就切多少,通常20~60GB即可。


8.前面設定完成後,點選設定值,把ISO放進去。


9.存放裝置>控制器:IDE>選擇虛擬光碟檔案,如下圖所示。


10.設定完成啟動!!


補充:預設1CPU,如果要快一點可以加CPU,下圖是加2CPU。


CentOS7基本安裝教學

1.選擇安裝,『Install CentOS 7』。


2.選擇安裝的語言,建議還是用『English』,因為切換目錄,還是以英語比較方便。


3.首先會先看到安裝介面,一大堆需要設定的,接下來會依依介紹。


4.DATE & TIME : 設定成自已國家的地理位置時間,時間設定相當重要喔!
※請記住,要啟用Network Time線上校時前,請去NETWORK & HOST NAME開啟服務,
 否則會無法開啟。


5.KEYBOARD : 設定鍵盤配置,右邊可以做測試。(我個人用預設就好)



6.LANGUAGE SUPPORT : 支持語言,替你的系統,配置Language,通常我還是用默認英文。



7.SECURITY : 安全設定,只需要把『Apply security polocy』開起來就行了。(預設開啟)



8.INSTALLATION SOURCE : 安裝來源設定,可以點選『Verify』驗證,
   存放在這裡是否可行,通常不會去動它,預設即可。



9.SOFTWARE SELECTION : 可以選擇軟體的類型。


  • 選擇最小安裝(Minimal Install),可擴充性較高,可以減少一些不必要的資源。
  • 選擇GNOME Desktop有圖形化介面,是一般使用者較為能夠接受的。
  • Basic Web Server,能立即把Web Server的相關套件安裝起來,如PHP、MairaDB等。


最小安裝(Minimal Install)的配置如下圖,因預設是Minimal,都是文字介面,
對於剛入門的新手來說,較為苦手。此類型適合熟悉Linux的高手,
需要什麼套件,就裝什麼 :


GNOME Desktop :
有桌面環境,適合剛接觸Linux的初學者,有圖形介面的輔助,與文字介面相較之下,
較有親和力。(從小就用Windows系統...沒桌面圖示真的怪怪的...)


10.INSTALLATION DESTINATION : 安裝目的地設定。


一般來說,我會以『I will configure partitioning』來做設定,自己來分配硬碟空間,與相關的設定;純粹來練習安裝的使用者,就使用預設選項『Autom atically configure partitioning』。


11.NETWORK & HOST NAME : 網路與主機名稱設定。


本次用VirtualBox安裝,用Dhcp去自動抓取,如果後續要做網路相關設定,我後續的文章會提到。(下圖右上角要記得On)


12.KDUMP :

當發生Linux當機事件後,會把記憶體資訊紀錄存起來,此功能偏向於核心開發Debug用,由於我是個人用,我就不啟用它了。



以上設定完後,就可以按左下角開始安裝!

開始安裝後,可以開始設定root密碼,還有使用者的帳號密碼囉!


1.設定root密碼 : 下圖為範例,因為是測試用機器,可以設定弱一點,但實體建議別這麼做!

壞人:ROOT到手希望無窮啊!

密碼建議8碼以上,最好是英文數字符號混和搭配。


2.設定使用者密碼 : 在這裡可以設定使用者帳號與密碼。

選擇『Make this user administrator』,可以讓這個帳號有ROOT的權限,即使忘記ROOT密碼,可以切換成ROOT的權限。

3.安裝完成!!請Reboot!!


4.重啟後,會有授權同意填寫。

輸入1->Enter


輸入2->Enter



輸入c->Enter


輸入c->Enter


5.到這裡輸入帳號密碼就安裝成功囉!


結論 :
安裝CentOS7是不是很簡單呢?依照個人需求設定,
後續讀者想自行加其他套件,可以自行擴充喔。

※安裝完成後進入Terminal要記得做更新的動作喔!!


--------------------2018/01/27--------------------每次安裝好CentOS7 自己依照個人需求,所寫的安裝套件懶人語法~

# yum install epel-release -y;yum update -y;yum install wget bash-completion vim net-tools tmux tcpdump -y


參考資料 :
鳥哥-第三章、安裝 CentOS7.x: http://linux.vbird.org/linux_basic/0157installcentos7.php
GTW-CentOS 7 的 Linux 系統安裝步驟教學 : http://bit.ly/2wUmFCG
Kevin Linul 網路日記本 : http://blog.kevinlinul.idv.tw/?p=58

【建置】CentOS7安裝DVWA

STEP 0:建置說明 OS:CentOS7 httpd-2.4.6-88.el7.centos.x86_64 php-5.4.16-46.el7.x86_64 mariadb-5.5.60-1.el7_5.x86_64 DVWA檔案( https://github...