在現今網路環境中,無線網路和雲端服務的安全性至關重要。本文將探討如何使用 Kismet 和 cloud-enum 這兩個工具,分別對無線網路和雲端環境進行安全掃描。Kismet 是一款常用的無線網路掃描工具,能幫助安全研究人員發現網路中的潛在威脅。Cloud-enum 則是一款多雲端工具,可以列舉 Google Cloud、AWS 和 Azure 中的資源,並找出其中的安全漏洞。瞭解這兩個工具的使用方法,對於提升網路和雲端環境的安全性至關重要。Cloud-enum 並非 Kali Linux 預設安裝的工具,需要使用者自行安裝。安裝過程相對簡單,只需使用 apt 套件管理工具即可完成。Cloud-enum 的使用也相當直觀,透過命令列引數即可指定要搜尋的雲端平台和關鍵字。透過 cloud-enum,可以快速找出雲端環境中可能存在的安全風險,例如公開的儲存桶或資料函式庫。

無線網路與雲端掃描

在這部分,我們將探討 Kismet 工具的使用,它是一款常用於無線網路掃描的工具,並且能夠幫助我們在道德駭客的過程中進行無線網路掃描。接下來,我們將探討雲端掃描。

雲端掃描

雲端掃描是一種良好的實踐,能夠幫助組織找到並修復雲端佈署中的安全漏洞。這包括自動化地掃描已知的 CVEs、錯誤組態或安全漏洞。在這部分,我們將介紹一款開源工具:cloud-enum,它可以用於此目的。

cloud-enum

cloud-enum 是一款多雲端工具,能夠根據關鍵字在 Google Cloud、AWS 和 Azure 中列出資源。它以用於滲透測試而聞名。讓我們看看這個工具可以列出的服務或產品:

Google Cloud:

  • 公開或受保護的 GCP 儲存桶
  • 公開或受保護的 Firebase 即時資料函式庫
  • Google App Engine
  • 雲函式
  • 公開的 Firebase 應用

Amazon Web Services (AWS)::

  • 公開或受保護的 S3 儲存桶
  • AWS 應用

Azure:

  • Azure 儲存帳戶
  • 公開的 blob
  • 主機資料函式庫
  • 虛擬機器
  • 網站應用程式

掃描

cloud-enum 在 Kali Linux 2022 中並不預設安裝。要使用這個工具,你需要按照以下步驟進行安裝:

  1. 最佳實踐是確保更新並升級你的套件,可以執行以下命令:
sudo apt update && sudo apt upgrade -y
  1. 在完成更新後,執行以下命令來安裝 cloud-enum:
sudo apt install cloud-enum

這將下載所有相關的套件來構建 OpenVAS 應用程式。

  1. 若要列出選項並獲得高層次的描述,只需執行以下命令:
cloud_enum -h

在這裡,我們使用 cloud_enum 工具來搜尋 setup、auth 和 config 關鍵字:

$ cloud_enum -k setup -k auth -k config -t 10 -l scanning_output.txt

這些指令會輸出如下圖所示的一些結果範例:

此圖示顯示了 cloud_enum AWS 檢查結果的樣本

AWS 檢查結果

此圖示顯示了 AWS S3 桶中的公開可存取檔案列表

S3 桶公開可存取檔案

此圖示顯示了 Azure 儲存帳戶所使用的協定樣本結果

Azure 檢查結果

在此部分,我們介紹了雲端掃描技術和工具。其中一些工具在不同雲端平台的掃描階段可能會很有用。接下來,我們將介紹掃描的最佳實踐。

掃描練習

當你進行掃描時,請記住掃描階段是你根據前期偵察結果開始對目標環境進行掃查以尋找漏洞的過程。在此階段,你可以發現可能允許你存取環境的漏洞或入侵途徑。

以下活動旨在讓你熟悉使用這些工具。請記住要保持道德規範,不要對任何可能被認為違法的組織進行掃描活動。

港口掃描:

  • 嘗試使用 Zenmap 對環境進行網路對映。
  • 嘗試對特定 IP 進行 TCP 連線掃描以找到開放埠。
  • 嘗試使用 nmap -sV 對特定 IP 進行版本檢測以取得產品及其版本資訊。
  • 嘗試使用 -T4 對特定 IP 增加掃描速度以進行積極檢測。

漏洞掃描:

  • 試著使用 OpenVAS 對 IP 或 IP 範圍進行已知漏洞掃描。

無線網路與雲端掃描:

  • 試著使用 Aircrack-ng 對無線網路進行掃描,找出弱安全組態或加密。
  • 嘗試使用 cloud-enum 在雲端環境中根據特定關鍵字搜尋公開可存取的桶。

隨著你對掃描越來越熟悉,你會能夠識別保護自己免受掃描練習和攻擊所需的重要步驟和最佳實踐。

摘要

在這一章節中,我們涵蓋了一些掃描選項。首先說明瞭各種技術以及網路對映方式。然後我們探討了一些不同技術來檢測港口、Wi-Fi 和雲端環境以及如何開始利用這些工具進行道德駭客練習。本章內容不僅提供了執行掃描所需技能,還讓你熟悉最佳實踐來防範網路免受各種技術和工具導致的攻擊。

在下一章節中,我們將把偵察活動提升到新高度,開始利用已發現的漏洞或弱點來取得存取許可權。

取得存取許可權

當目標已經被掃描並且任何漏洞和潛在存取點都已被識別後,取得存取許可權階段就開始了。如果之前的偵察和掃描工作已經徹底完成,你應該對目標環境有很好地瞭解,例如網路範圍、作業系統及其執行服務等。有了這些知識後,你就可以開始攻擊網路並嘗試獲得對目標環境的存取許可權。通常情況下如果之前步驟完成正確地話,取得初始存取應該會順利。

在此章節中,我們將涵蓋以下主要主題:

社交工程學

魚叉攻擊

IP 地址嗅探與偽造

根據程式碼攻擊

漁獲服務

漁獲雲端服務

取得存取許可權練習和最佳實踐

網路攻擊與取得存取權

網路攻擊是資訊安全領域中一個重要且複雜的議題,攻擊者通常會利用多種技術手段來取得未經授權的存取權。本文將探討社交工程、IP 地址偵測與偽造、以及根據程式碼的攻擊等常見手段,並提供具體的工具及案例分析。

社交工程

社交工程是攻擊者透過操縱人性弱點來取得信任或存取權的手段。這種攻擊方式利用人們對於熟悉事物或人員的信任感,進而達到其目的。例如,攻擊者可能冒充長官管理階層、徵才者、老朋友、客服人員或其他常見角色來與受害者建立聯絡。

社交工程的技術流程

  1. 建立信任:攻擊者首先會收集受害者的個人資訊,通常這些資訊可以從社交媒體或公共網路上取得。
  2. 接觸受害者:利用收集到的資訊,攻擊者會選擇合適的方式與受害者接觸,例如傳送電子郵件、電話或社交媒體訊息。
  3. 詢問敏感資訊:一旦建立了信任,攻擊者會要求受害者提供敏感資訊,如密碼重置、開啟附件或允許遠端存取等。

防範措施

為了減少社交工程攻擊的風險,組織應該定期進行員工教育和模擬攻擊,讓員工瞭解這種攻擊手段及其風險。以下是一些具體的防範措施:

  • 教育培訓:定期舉辦安全意識培訓,教導員工如何識別和應對社交工程攻擊。
  • 多重驗證:使用多重驗證(MFA)來增加存取層級的安全性。
  • 監控和稽核:定期監控和稽核系統日誌,發現異常行為及時處理。

IP 地址偵測與偽造

IP 地址偵測與偽造是網路攻擊中的另一重要手段。這些技術可以用來分析和操控網路流量,進而取得敏感資訊。

Wireshark

Wireshark 是一個開源的網路分析工具,可以捕捉和顯示網路中的資料包。它具有強大的過濾和分析功能,能夠幫助我們瞭解網路流量的細節。

此圖示展示了 Wireshark 的網路監控介面:
  graph TD;
    A[捕捉資料包] --> B[顯示資料包詳細資訊];
    B --> C[過濾資料包];
    C --> D[分析資料包];

macchanger

macchanger 是一個用於改變網路介面 MAC 地址的開源工具。攻擊者可以利用它來隱藏自己的真實身份或模擬其他裝置。

此圖示展示了 macchanger 的基本使用流程:
  graph TD;
    A[安裝 macchanger] --> B[列出可用選項];
    B --> C[改變 MAC 地址];
    C --> D[驗證新 MAC 地址];

內容解密:

  • Wireshark 是一個強大的網路分析工具,能夠捕捉並顯示網路上的所有資料包。它提供了多種過濾選項,讓我們可以針對特定流量進行分析。在使用 Wireshark 時,我們需要注意隱私問題,避免捕捉和分析他人的流量。
  • macchanger 則是一個用來改變裝置 MAC 地址的工具。MAC 地址是每個網路裝置唯一的識別符號,改變 MAC 地址可以幫助我們隱藏身份或模擬其他裝置。在使用 macchanger 時,需要確保不違反任何法律法規。

根據程式碼的攻擊

根據程式碼的攻擊利用應用程式中的漏洞或不安全的編碼實踐來進行操控。這些漏洞可能允許攻擊者執行任意命令、修改資料或取得系統存取權。

增益溢位(Buffer Overflow)

增益溢位是根據程式碼最常見的一種攻擊手段。當應用程式沒有正確處理輸入時,攻擊者可以透過輸入過多資料來覆寫記憶體中的其他區域,進而控制應用程式行為。

import struct

# 假設目標應用期望輸入長度為 8 個位元組
input_data = b'A' * 8 + struct.pack('<I', 0x080484b6)  # 假設傳回地址為 0x080484b6

# 傳遞給目標應用

內容解密:

  • 增益溢位 攻擊利用的是應用程式對輸入資料處理不當的漏洞。當我們輸入超過應用預期長度的資料時,多餘部分會被寫入記憶體中的其他區域,這些區域可能包含重要指令或資料。
  • 在本範例中,struct.pack 用於建構特定格式的二進位制資料。我們將傳回地址填入目標區域以執行特定指令。b'A' * 8 則是填充輸入長度使其達到預期值。
  • 慣例中,struct.pack('<I', 0x080484b6) 這行程式碼則是將一個整數轉換成小端序(little-endian)格式的四位元組(32-bit)二進位值。

語法字串(Format String)

語法字串攻擊利用 printf 和類別似命令中的漏洞來讀取或修改記憶體中的資料。

#include <stdio.h>

int main() {
    char buffer[128];
    printf(buffer);
    return 0;
}

內容解密:

  • 語法字串 攻擊利用的是 printf 函式處理格式化輸出時可能存在的漏洞。
  • 在正常情況下,printf 函式會根據提供的格式字串來顯示相應內容。
  • 若格式字串直接由使用者輸入且未經檢查,printf(buffer) 則可能被惡意利用來讀取或修改記憶體中的敏感資料。
  • 需要特別注意的是,buffer 中若包含 %n 或其他特殊格式符號,則可能造成嚴重安全漏洞。

防範措施

為了防範這些根據程式碼的攻擊,我們需要採取以下措施:

  • 程式碼審查:定期進行程式碼審查和測試,確保沒有未經處理的輸入問題。
  • 安全編碼實踐:遵循安全編碼規範,避免使用危險函式。
  • 更新和修補:及時更新系統和應用程式以修補已知漏洞。

透過以上措施及具體案例分析,我們可以更好地瞭解和防範各種網路攻擊手段。

利用程式碼攻擊取得系統存取權

在攻擊者的工具箱中,程式碼攻擊是一種極具威脅的手段,因為它能夠利用程式設計中的漏洞來取得系統的存取權。這些攻擊通常不會在合法的測試中被提及,但瞭解它們及相關工具仍然是非常有用的。以下,玄貓將探討一些常見的程式碼攻擊方式及其防護措施。

格式字串攻擊

printf 是一個常見的函式,經常被用來進行格式字串攻擊。正確使用 printf 的方式是 printf("%s", buffer),其中 "%s" 是格式字串。然而,程式設計師可能會錯誤地使用 printf(buffer),這種方式會編譯成功並正常執行。如果我們傳遞 %d 作為值(表示十進位制),程式會搜尋記憶體來找到一個整數。這與前述例子類別似,你可以使用十六進位制資訊來讀取記憶體堆積疊。

#include <stdio.h>

int main() {
    char buffer[50];
    printf("Enter a string: ");
    scanf("%s", buffer);
    printf(buffer); // 這裡存在格式字串攻擊的風險
    return 0;
}

內容解密:

上述程式碼展示瞭如何利用 printf 函式來進行格式字串攻擊。當 printf(buffer); 被執行時,如果 buffer 包含特定的格式指示符(如 %d%s),程式會嘗試從記憶體中讀取對應的資料。這樣的一個簡單範例展示瞭如何可能透過不正確的函式使用來導致安全漏洞。

使用 Bed 工具進行漏洞掃描

Bed 是一個開源工具,專門用來掃描潛在的緩衝區溢位和格式字串漏洞。雖然 Bed 工具不預設安裝在 Kali Linux 中,但你可以透過以下命令進行安裝:

$ sudo apt install bed

要列出 Bed 工具的可用選項及其高層次描述,可以使用以下命令:

$ bed -h

以下是使用 HTTP 外掛對 Metasploitable 2 虛擬機器進行模糊測試的範例:

$ bed -s HTTP -t192.168.1.102

內容解密:

這段程式碼展示瞭如何使用 Bed 工具進行潛在漏洞掃描。Bed 是一個功能強大且靈活的工具,適合用於測試和防護各種網路服務和應用程式中的安全問題。

常見服務攻擊方法

接下來,玄貓將介紹幾種常見的服務攻擊方法:

  • 密碼破解攻擊
  • Pass-the-hash 攻擊
  • Web 應用攻擊

密碼破解攻擊

密碼破解攻擊是最常見的服務攻擊方式之一。只要你公開任何服務,都會有攻擊者嘗試使用各種密碼破解方法來取得存取權。

活動與策略

以下是幾種幫助密碼破解的活動和策略:

  • 建立或查詢字典:字典包含常見密碼列表。
  • 自動化和最佳化過程:利用開源工具來自動化和最佳化密碼破解過程。

常見破解方法

以下是幾種常見的密碼破解方法:

  • 暴力破解:這是最基本且直接的方法,攻擊者嘗試每一個可能的組合直到找到正確密碼。
  • 字典攻擊:使用一個包含常見密碼的列表來嘗試破解目標密碼。
  • 彩虹表攻擊:使用預先計算好的雜湊和密碼表來快速破解目標密碼。

彩虹表攻擊示例

# 假設已經有一個彩虹表檔案 rainbow_table.txt
$ hashcat -m <hash_type> -a 0 -o cracked_passwords.txt rainbow_table.txt hash_to_crack.txt

內容解密:

上述命令展示瞭如何使用 Hashcat 工具進行彩虹表攻擊。Hashcat 是一個功能強大且靈活的密碼破解工具,適合用於各種雜湊型別和加密演算法。

Hydra:強大且靈活的密碼破解工具

Hydra 或 THC Hydra 是一個免費且強大的密碼破解工具,由 Van Hauser 開發。它支援 Unix/Linux 平台並且具有豐富的命令列選項和圖形介面。

Hydra 支援多種協定,包括但不限於 Asterisk、FTP、HTTP、HTTPS、SSH、SMTP 等。預設情況下,Hydra 已經安裝在 Kali Linux 中。如果你需要在其他系統上安裝 Hydra,可以使用以下命令:

$ sudo apt install hydra

要檢視 Hydra 的可用選項及其高層次描述,可以使用以下命令:

$ hydra -h

使用 Hydra 命令列進行 SSH 密碼破解

$ hydra -l msfadmin -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 4 ssh://192.168.1.102

Hydra 的命令列選項說明

  • -l msfadmin:指定目標使用者名稱。
  • -P /usr/share/wordlists/metasploit/unix_passwords.txt:指定字典檔案。
  • -t 4:指定平行執行任務數量。
  • ssh://192.168.1.102:指定目標 IP 地址。

內容解密:

上述範例展示瞭如何使用 Hydra 工具進行 SSH 密碼破解。Hydra 支援多種協定並且具有高度自動化能力,使其成為測試網路服務安全性的一個有力工具。

John the Ripper:強大且靈活的免費開源工具

John the Ripper 是由 Solar Designers 開發的一個免費開源工具。它能夠找到弱或易猜測的密碼並且支援多種平台和雜湊型別。

John the Ripper 預設安裝在 Kali Linux 中。如果你需要在其他系統上安裝 John the Ripper,可以使用以下命令:

$ sudo apt install john

John the Ripper 的基本使用範例

# 假設已經有一個包含雜湊值的檔案 hash_file.txt
$ john hash_file.txt

John the Ripper 的命令列選項說明

  • hash_file.txt:指定包含雜湊值的檔案。

內容解密:

John the Ripper 是一個功能強大且靈活的工具,適用於多種平台和雜湊型別。它能夠自動化地找到弱或易猜測的密碼,從而提升網路安全性測試的效率。