2023年3月5日 星期日

在KALI Linux建置黑、白箱掃描系統(Arachni及SonarQube)

前言

最近因資安教學,需要介紹免費的Web黑、白箱掃描工具,看網路上許多大大推薦arachni(黑箱)及SonarQube(白箱),由於筆者從事滲透測試時,經常使用Kali Linux,加上Kali有完整的第三方環境,便興起於Kali安裝這兩套工具的念頭。

網路上有很多關於arachni和SonarQube的安裝及使用說明,筆者照著做,卻踩了不少坑、撞了許多牆,便藉部落格留下紀錄,以供日後回顧。

壹、Kali環境說明

筆者是從Kali-Org直接下載現成的VMware虛擬機映像檔壓縮檔,下載後解壓縮,然後用VMware workstation Player開啟,可以省掉安裝虛擬的過程,也可簡化教學步驟。

Kali VM預設的帳號和密碼都是「kali」此帳號非系統管理員(root),很多指令必須藉由sudo讓kali暫時以系統管理員角色來執行。

進入Kali後,第一件事是執行系統更新,請開啟一個終端機(或稱主控台),並執行「 sudo apt updage && sudo apt upgrade -y 」(參考下圖)

接著以「 sudo service --status-all | grep post 」查看postgresql是否已啟動,前頭是 [ - ]表示未啟動,是 [ + ]表示已啟動。如果未啟動,請以「 sudo systemctl enable postgresql 」將它設成開機後自動啟動,並以「 sudo systemctl start postgresql 」立即啟動postgressql服務。

確認PostgreSQL啟動後,便可進行後續工作。

貳、設定PostgreSQL資料庫   (參考這篇文章

arachni和SonarQube都支援PostgreSQL資料庫,而且Kali也已預安裝此資料系統,只須少少步驟設定,便可啟用。

確認PostgreSQL服務啟動後,可參考本段建立所需的資料庫及設定。

sudo passwd postgres               #為postgres 設定新密碼(預設是無密碼)
                              #接著輸入新密碼及再次確認新密碼,
請記住新密碼

su - postgres          #切換成postgres角色的作業環境
密碼:  <輸入postgres的密碼>

createuser  kali       #在PostgreSQL 建立新使用者,可自定使用者名稱

psql                       #進入PostgreSQL 資料庫命令列環境

ALTER USER kali WITH ENCRYPTED password 'kali'; 
          
#為kali設定密碼
          #這裡延用 kali,是為了方便操作,也可以另定密碼,
          #此密碼在OS的kali密碼並不是同一組

CREATE DATABASE sonar WITH ENCODING 'UTF8' OWNER kali TEMPLATE=template0;
          
#為sonar(白箱工具)建立資料庫,名為 sonar,
          # 並將此資料庫擁有者設為kali (上面建立的 kali,不是OS的帳號 kali)

\q                 #離開 PostgreSQL 資料庫命令列環境

exit              #離開PostgreSQL管理環境


叁、安裝arachni   (參考這篇文章

將 arachni安裝於 /opt 目錄,指令如下:

wget /P /tmp https://github.com/Arachni/arachni/releases/download/v1.6.1.3/arachni-1.6.1.3-0.6.1.1-linux-x86_64.tar.gz        #將arachni下載至 /tmp 目錄

cd /opt          #切換到 /opt 目錄,arachni 將安裝至此

sudo tar -zxvf /tmp/arachni-1.6.1.3-0.6.1.1-linux-x86_64.tar.gz     #將檔案解壓至 /opt

cd arachni-1.6.1.3-0.6.1.1/.system/arachni-ui-web/db/           #切換到arachni的資料庫目錄

chmod 666 production.sqlite3                      # 設定預設使用的sqlite資料庫的讀寫權限

完成安裝後,請以下列命令啟動arachni web伺服器:

cd /opt/arachni-1.6.1.3-0.6.1.1/bin               # 切換到arachni的bin目錄

./arachni_web -o 0.0.0.0 -p 8888                #啟動arachni

          # -o 指定來源網卡,0.0.0.0 表示此機器上的所有網卡
          # 8888 表示連線端口,瀏覽器可以 http://VM-IP:8888 連線。

啟動arachni web serve後,從Kali裡的瀏覽器連線http://127.0.0.1:8888,如果出現登入畫面,就表示安裝成功了。arachnii預設的兩組帳密分別是:

admin@admin.adminadministrator
user@user.userregular_user

看到登入畫面,表示arachni安裝成功
看到登入畫面,表示arachni安裝成功

上面的安裝方式是使用arachni自帶的sqllite3資料庫,如果想使用PostgreSQL資料庫來保存arachni執行結果,可按下列步驟調整:

cd /opt/arachni-1.6.1.3-0.6.1.1/.system/arachni-ui-web/config/     #切換到 config 目錄

sudo mv database.yml database.yml.sqlite3                 #備份原來sqlite3的連線組態

sudo mv database.yml.pgsql database.yml                 # 啟用postgresql的連線組態

cat database.yml                                                      #查看連線組態的內容
        #要注意裡頭 username: arachni 及 password: secret 的值

cd ~                                                            #回到kali的家目錄

接著設定arachni的資料庫。假如一開始就打算讓arachni使用PostgreSQL資料庫,可以在步驟貳完成以下的資料庫設置。

su - postgres          #切換成postgres角色的作業環境
密碼:  <輸入postgres的密碼>

createuser  arachni       # 配合database.yml裡的username值,建立新使用者

psql                        #進入PostgreSQL 資料庫命令列環境

ALTER USER arachni WITH ENCRYPTED password 'secret'; 
                   
# 配合database.yml裡的password,為arachni帳號設定密碼

CREATE DATABASE arachni_production WITH ENCODING 'UTF8' OWNER arachni;
                 
#建立arachni_production資料庫,並將擁有者設為arachni

ALTER USER arachni CREATEDB;                         #賦予arachni建立DB的權限

\q                 #離開 PostgreSQL 資料庫命令列環境

exit              #離開PostgreSQL管理環境

完成arachni的資料庫設定後,還需要執行

 cd /opt/arachni-1.6.1.3-0.6.1.1/bin
 ./arachni_web_task db:setup 

來設定arachni_production的資料庫綱要。


肆、安裝SonarQube

這裡有SonarQube的所有下載檔,筆者選用免費的社群版,並安裝於 /opt目錄。

wget -P /tmp https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.0.65466.zip                        # 將SonarQube下載到 /tmp 目錄

cd /opt                                     # 將工作目錄切換到 /opt

sudo unzip /tmp/sonarqube-9.9.0.65466.zip         #解壓縮 SonarQube

sudo chown -R kali:kali /opt/sonarqube-9.9.0.65466/*       # 變更sonarqube的權限設定

sudo chmod 777 -R /opt/sonarqube-9.8.0.63668/temp     # #變更temp的權限設定

sudo nano /opt/sonarqube/conf/sonar.properties   #編輯sonar 組態檔

# DATABASE               #有關資料庫連線的設定

sonar.jdbc.username=kali           #帳號,見步驟貳的設定

sonar.jdbc.password=kali            #帳號,見步驟貳的設定

sonar.jdbc.url=jdbc:postgresql://localhost/sonar     #sonar是步驟貳建立的資料庫

# WEB SERVER         #有關Web Server的設定

sonar.web.host=0.0.0.0        #指定可連入的網卡,0.0.0.0表所有IP皆供連線

sonar.web.port=9000           #指定監聽連入的端口

/opt/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh console    #啟動SonarQube

啟動SonarQube伺服器後,由Kali裡的瀏覽器連線http://127.0.0.1:9000,若出現登入畫面,就表示安裝成功了。

看到登入畫面,表示SonarQube安裝成功

至此已完成Arachni及SonarQube安裝,有空再介紹這兩套工具的基本用法。


註:若一切從頭安裝,必須逐一安裝java、PostgreSQL、Ruby,利用現成的Kali VM,將心思專注於arachni及SonarQube的安裝,省卻許多除錯程序,可大大提高成功率。


白箱掃描範例:

掃描dotNet Core專案源碼
掃描.netFramework專案源碼
掃描maven專案源碼

3 則留言:

  1. 請KALI linux 的書會有新版的嗎?

    回覆刪除
    回覆
    1. 碁峰暫時沒有更版計畫,短時間應該不會出新版

      刪除
    2. 雖然Kali這套工具每季都有新映像檔,但常用工具變化不大,現行書籍內容有八成以上都還適用。

      刪除