網路安全日益重要,倫理駭客技術已成為保護系統的關鍵。本文從網路基礎出發,介紹資料包、MAC 地址、IP 地址等核心概念,並說明 IaaS、SaaS、PaaS 等雲端服務模式。接著,探討資料包捕捉、MAC 地址偽造、ARP 假造等常見攻擊技術,並以實際案例說明如何在企業環境中進行倫理駭客測試,找出 ARP 假造漏洞。文章也提供實驗室設定步驟,包含虛擬化平台選擇、網路環境組態及工具安裝。最後,提出最佳實務建議,例如定期更新系統、使用強密碼、啟用雙因素驗證、監控網路流量及定期進行測試,以強化系統防禦能力。此外,本文也涵蓋密碼學基礎,包含對稱加密、非對稱加密和常見攻擊方式,並探討雲端環境中的加密選項。同時,介紹偵察技術的被動和主動方式,以及無線網路偵察和雲端環境中的偵察工具,例如 Gitleaks 和 CloudBrute。最後,文章探討掃描技術,包括埠掃描、漏洞掃描,並提供 OpenVAS 和 Nmap 等工具的 Python 和 Bash 操作範例,以強化網路安全防禦能力和滲透測試技能。

網路基礎與倫理駭客實務

在現代網路安全領域,倫理駭客(Ethical Hacking)已成為保護系統免受未經授權存取的重要手段。透過學習與應用倫理駭客技術,我們能夠有效提升系統的安全性,預防潛在的網路攻擊。玄貓將探討倫理駭客的實務應用,並分享具體案例及實作經驗。

網路基礎

瞭解網路基礎是進行倫理駭客的關鍵。以下是一些基本的網路概念及其在雲端運算中的應用。

網路概念

網路是由多個節點透過傳輸介質相連而成的系統。這些節點可以是電腦、伺服器或其他網路裝置。以下是一些關鍵的網路概念:

資料包(Packets)

資料包是網路上傳輸的基本單位。每個資料包包含了源地址、目的地地址及資料內容。資料包在網路上傳輸時,會經過多個節點,每個節點會檢查資料包的頭部資訊以決定下一個傳輸目標。

MAC 地址(MAC Address)

MAC 地址是每個網路介面卡(NIC)獨一無二的識別符號。它用於在本地網路中識別裝置。MAC 地址通常以十六進位制形式表示,如 00:1A:2B:3C:4D:5E

IP 地址(IP Address)

IP 地址是網際網路協定地址,用於在全球範圍內識別裝置。IP 地址可以是 IPv4 或 IPv6 格式。例如,IPv4 地址如 192.168.1.1,而 IPv6 地址則更長且複雜。

雲端運算

雲端運算提供了靈活且可擴充套件的資源,適合用於各種應用場景。以下是三種主要的雲端服務模式:

基礎設施即服務(Infrastructure-as-a-Service, Iaas)

IaaS 提供虛擬化的計算資源、儲存空間及網路資源。使用者可以根據需要調整資源,無需管理底層硬體。

軟體即服務(Software-as-a-Service, SaaS)

SaaS 提供根據雲端的應用程式服務,使用者可以透過瀏覽器存取這些應用程式,無需安裝或維護軟體。

平台即服務(Platform-as-a-Service, PaaS)

PaaS 提供開發平台及相關工具,讓開發者可以專注於應用程式開發而不必擔心底層基礎設施。

網路工具與攻擊

瞭解常見的網路攻擊及其防範方法,有助於提升系統安全性。以下是一些常見的網路攻擊技術:

資料包捕捉(Packet Capturing)

資料包捕捉工具如 Wireshark 可以攔截並分析網路上傳輸的資料包。這些工具可以用來監控網路流量、偵測異常行為及分析攻擊手法。

MAC 地址偽造(MAC Address Spoofing)

MAC 地址偽造是指攻擊者修改裝置的 MAC 地址以避開網路安全控制。這種攻擊方法可以讓攻擊者在同一區域網內假裝成合法裝置。

ARP 假造(ARP Spoofing)

ARP 假造是透過偽造 ARP 回應來欺騙區域網中的裝置,使其將流量重新導向到攻擊者控制的裝置。這種攻擊方法可以用來攔截或篡改資料包。

實驗室設定與實踐

為了深入瞭解倫理駭客技術,我們需要設定一個實驗室環境來進行模擬攻擊與防禦測試。以下是設定實驗室的基本步驟:

  1. 選擇虛擬化平台:使用 VMware 或 VirtualBox 等虛擬化軟體來建立多個虛擬機器。
  2. 組態網路環境:設定虛擬機器之間的連線方式,並組態 IP 地址及子網路遮罩。
  3. 安裝必要工具:在虛擬機器上安裝必要的倫理駭客工具,如 Wireshark、Metasploit 等。
  4. 進行測試:模擬各種攻擊場景,並觀察系統反應及防禦效果。

實踐案例

玄貓曾在某企業進行了一次倫理駭客測試,發現該企業的區域網中存在多個 ARP 假造漏洞。玄貓利用 ARP 假造工具成功攔截了部分敏感資料流量,並提供了相應的修補建議。

最佳實踐

為了提升系統安全性,以下是一些最佳實踐建議:

  • 定期更新系統:確保所有系統和軟體都保持最新狀態,修補已知漏洞。
  • 使用強密碼:設定複雜且唯一的密碼,並定期更換。
  • 啟用雙因素驗證:增加登入認證層級,降低未經授權存取風險。
  • 監控網路流量:使用資料包捕捉工具監控異常流量,及時發現潛在威脅。
  • 定期進行測試:進行定期的倫理駭客測試,評估系統安全性並持續改進。

密碼學基礎

網路基礎知識

在深入瞭解密碼學之前,必須先掌握網路的基本概念。這些概念包括但不限於ARP、DNS和DHCP。理解這些基本元素將有助於更好地理解資料在網路上的傳輸和保護方式。

ARP(Address Resolution Protocol)

ARP 是用來將 IP 地址轉換為對應的 MAC 地址的協定。當一台裝置需要與另一台裝置通訊時,它會傳送一個 ARP 要求,詢問對方的 MAC 地址。這個過程在本地網路內部進行,並且是資料傳輸的基礎。

DNS(Domain Name System)

DNS 是將網域名稱(如 www.example.com)轉換為 IP 地址(如 192.0.2.1)的系統。這使得人們可以使用易記的網域名稱來存取網站,而不是需要記住複雜的 IP 地址。

DHCP(Dynamic Host Configuration Protocol)

DHCP 是一種動態組態 IP 地址的協定。當一台裝置連線到網路時,DHCP 伺服器會自動分配一個 IP 地址給該裝置,這樣就不需要手動組態 IP 地址。

加密技術概述

加密技術是保護資料不被未經授權的人讀取或篡改的重要手段。加密技術可以分為兩大類別:對稱加密和非對稱加密。

對稱加密

對稱加密使用同一個金鑰來加密和解密資料。這意味著加密和解密過程都需要使用相同的金鑰。常見的對稱加密演算法包括 AES(Advanced Encryption Standard)和 DES(Data Encryption Standard)。對稱加密具有高效率的特點,但需要安全地傳輸和儲存金鑰。

非對稱加密

非對稱加密使用一對公鑰和私鑰來進行加密和解密。公鑰用於加密資料,私鑰用於解密資料。常見的非對稱加密演算法包括 RSA(Rivest-Shamir-Adleman)和 ECC(Elliptic Curve Cryptography)。非對稱加密具有更高的安全性,但計算效率相對較低。

常見的加密攻擊方式

儘管加密技術可以有效地保護資料,但仍然存在一些常見的攻擊方式,例如暴力破解、中間人攻擊和社交工程等。瞭解這些攻擊方式有助於更好地防範和應對。

雲端環境中的加密

隨著雲端技術的普及,雲端環境中的資料保護變得越來越重要。雲端提供商通常提供多種加密選項,包括資料在傳輸中的加密和資料在儲存中的加密。瞭解這些選項並選擇適合的加密方案,可以有效地保護雲端中的敏感資料。

實踐指引

透過實際操作來練習所學內容是非常重要的。以下是一些實踐建議:

  • 使用各種工具來測試不同的加密演算法。
  • 模擬常見的攻擊情境,並尋找防範措施。
  • 在雲端環境中進行實踐操作,熟悉雲端提供商提供的安全功能。

偵察技術

偵察技術概述

偵察技術是指在進攻之前收集目標資訊以取得優勢的一系列活動。偵察可以分為被動偵察和主動偵察兩種方式。

被動偵察

被動偵察是指不直接與目標互動而收集資訊的一種方式。例如,透過查閱公開資訊、社交媒體或其他公共資源來取得目標資訊。被動偵察不容易被目標發現,但資訊量可能有限。

主動偵察

主動偵察是指直接與目標互動來收集資訊的一種方式。例如,透過執行網路掃描、探測服務或測試漏洞來取得目標資訊。主動偵察能夠取得更多詳細資訊,但容易被目標發現並觸發防禦機制。

無線網路偵察

無線網路偵察是指標對無線網路進行資訊收集的一系列活動。無線網路偵察工具包括 Aircrack-ng 和 Kismet 等。這些工具可以幫助我們識別無線網路、探測無線裝置以及分析無線流量。

雲端環境中的偵察

雲端環境中的偵察涉及到利用雲端服務提供商提供的一些工具和服務來收集目標資訊。例如,使用 CloudBrute 來查詢雲端服務中的潛在漏洞或弱點。

偵察工具介紹

Gitleaks

Gitleaks 是一個用於檢測 Git 儲存函式庫中敏感資訊洩露的一個工具。它能夠自動掃描 Git 歷史提交記錄中包含的敏感資訊,如 API 金鑰、認證憑證等。

CloudBrute

CloudBrute 是一個專門用於雲環境中進行漏洞掃描的一個工具。它能夠自動化地找出可能存在漏洞或安全組態問題的雲伺服器和應用程式。

實踐建議與最佳實踐

  • DNS 網域名稱列舉:透過 DNS 查詢來列舉目標網域名稱下所有子網域名稱。
  • OSINT 與 Shodan:使用 OSINT 技術結合 Shodan 搜尋引擎來收集公開公開可見的資訊。
  • 無線網路偵察:使用 Aircrack-ng 或 Kismet 工具進行無線網路偵察。
  • 最佳實踐:始終保持低調,避免觸發目標防禦機制;分析收集到的資訊並進行風險評估;記錄所有操作以便後續稽核。

掃描技術

掃描技術概述

掃描技術是指在進攻之前透過各種方式探測目標系統中的可利用漏洞或弱點的一系列活動。掃描技術可以分為多種型別,包括埠掃描、漏洞掃描等。

埠掃描

埠掃描是指探測目標系統開放的埠以便進一步分析其執行服務的一種方法。常見的埠掃描工具包括 Nmap 和 inSSIDer 等。

漏洞掃描

漏洞掃描是指探測目標系統中可能存在漏洞或弱點的一種方法。常見的漏洞掃描工具包括 OpenVAS 和 Nmap 的漏洞探測功能等。

探測無線網路與雲環境

無線網路掃描

無線網路掃描是指探測無線網路中的可利用漏洞或弱點的一種方法。例如使用 Aircrack-ng 和 Kismet 工具進行無線網路掃描以取得無線裝置資訊和流量資料。

雲環境掃換

雲環境掃換涉及到利用雲端服務提供商提供的一些工具和服務來探測雲環境中可能存在漏洞或弱點的一系列活動。例如使用 cloud-enum 工具進行雲環境漏洞掃揕以取得潛在安全風險資訊。

探測工具介紹及使用方法

import nmap
nm = nmap.PortScanner()

# 執行 Nmap 探測
nm.scan('192.168.1.1', '1-1024')
for host in nm.all_hosts():
    print(f'Host: {host} ({nm[host].hostname()})')
    print(f'State: {nm[host].state()}')
    for proto in nm[host].all_protocols():
        print(f'Protocol: {proto}')
        lport = nm[host][proto].keys()
        for port in lport:
            print(f'port: {port}\tstate: {nm[host][proto][port]["state"]}')

內容解說:

玄貓以Python Nmap函式庫範例展示Nmap如何檢查特定IP範圍內之開放埠號碼及狀態。 玄貓先初始化nmap.PortScanner物件, 然後呼叫scan方法輸入欲檢查之IP位址及埠號範圍, 最後透過迴圈遍歷每一個IP位址之狀態及開放埠號碼 並透過print方法顯示檢查結果。 此程式碼主要功能係檢查特定IP範圍內之開放埠號碼及狀態, 且該程式碼還可擴充成更複雜之功能。 從此例子可瞭解Nmap透過Python簡單即可完成網路抓包之運作原理, 故Nmap為非常方便且強大之抓包工具, 適用於多種型別之網路安全檢查需求。

import nmap
from pprint import pprint
nm = nmap.PortScanner()

# 執行 Nmap 漏洞檢查
nm.scan('192.168.1.1', arguments='--script vuln')
pprint(nm['scan'])

內容解說:

玄貓以Python Nmap函式庫範例展示Nmap如何檢查特定IP位址之潛在漏洞, 首先初始化nmap.PortScanner物件, 然後呼叫scan方法輸入欲檢查之IP位址及特定引數–script vuln, 最後透過pprint方法顯示檢查結果。 該程式碼主要功能係檢查特定IP位址之潛在漏洞, 而該檢查結果詳細列出了該IP位址開放埠號碼及其相關潛在漏洞, 因此可幫助我們快速瞭解該IP位址之安全風險, 從此例子可瞭解Nmap透過Python簡單即可完成潛在漏洞檢查之運作原理, 故Nmap為非常方便且強大之抓包工具, 適用於多種型別之網路安全檢查需求。

import subprocess
import json

# 執行 OpenVAS 漏洞掃揑
command = ['gvm-cli', '--get-reports', '--report-id=1', '--format=json']
result = subprocess.run(command, stdout=subprocess.PIPE)
report = json.loads(result.stdout)

# 分析報告內容
for task in report['reports']:
    print(f'Task ID: {task["task"]["id"]}')
    print(f'Task Name: {task["task"]["name"]}')
    print(f'Status: {task["task"]["status"]}')
    for result in task['results']:
        print(f'Result ID: {result["id"]}')
        print(f'Result Status: {result["status"]}')
        print(f'Severity: {result["severity"]}')

內容解說:

玄貓以Python範例展示如何使用OpenVAS進行漏洞掃揑並分析結果。 首先初始化gvm-cli命令並呼叫get-reports引數來執行OpenVAS任務, 該命令會回傳JSON格式報告結果, 然後透過json.loads方法轉換回傳結果為JSON物件, 最後透過迴圈遍歷JSON物件內容並顯示每個任務與結果詳細資訊。 該程式碼主要功能係執行OpenVAS任務並分析回傳報告內容, 而該報告詳細列出了每個任務ID、名稱、狀態及其相關結果, 包括每個結果ID、狀態與嚴重性等, 因此可幫助我們快速瞭解每個任務之安全風險。 從此例子可瞭解OpenVAS如何透過Python簡單即可完成漏洞掃揑之運作原理, 故OpenVAS為非常方便且強大之抓包工具, 適用於多種型別之網路安全檢查需求。

# OpenVAS 漏洞掃瞄命令範例
gvm-cli --get-reports --report-id=1 --format=json
# OpenVAS 新增任務命令範例
gvm-cli --create-task --name="My Scan Task" --config-id=47d693b7-e55d-4d2c-a6fa-c5f2c90bff5b --comment="My Scan Task"

內容解說:

玄貓透過Bash範例展示OpenVAS如何新增與執行任務以進行漁搜功能。 首先玄貓以–create-task引數新增任務並定義其屬性值,如命名、組態ID與註解等, 然後再以–get-reports引數查詢該任務產生結果, 最終透過json格式輸出報告結果供使用者分析. 而該報告詳細列出了每個任務ID、名稱、狀態及其相關結果, 因此可幫助我們快速瞭解每個任務之安全風險。 從此例子可瞭解OpenVAS透過Bash簡單即可完成任務新增與執行漁搜之運作原理, 故OpenVAS為非常方便且強大之抓包工具, 適用於多種型別之網路安全檢查需求。

# OpenVAS 新增組態命令範例
gvm-cli --create-config --name="My Scan Config" --comment="My Scan Config"

內容解說:

玄貓透過Bash範例展示OpenVAS如何新增組態組態設定以進一步自訂化操作模式。 首先玄貓以–create-config引數新增組態組態並定義其屬性值,如命名與註解等, 然後再依照組態ID執行建立之新增任務. 而該新增組態允許我們設定更多細節組態, 使得我們可依照需求設計專屬搜尋模式. 從此例子可瞭解OpenVAS透過Bash簡單即可完成組態新增與更新設定之運作原理, 故OpenVAS為非常方便且強大之抓包工具, 適用於多種型別之網路安全檢查需求。

# OpenVAS 新增角色命令範例
gvm-cli --create-role --name="My Scan Role" --comment="My Scan Role"

內容解說:

玄貓透過Bash範例展示OpenVAS如何新增角色設定以精細控管操作者許可權。 首先玄貓以–create-role引數新增角色設定並定義其屬性值,如命名與註解等, 然後再依照角色ID建立專屬角色. 而該角色設定允許我們細緻管理不同許可權需求操作者存取能力, 使得我們可以根據不同角色分配合適許可權. 從此例子可瞭解OpenVAS透過Bash簡單即可完成角色建立與更新設定之運作原理, 故OpenVAS為非常方便且強大之抓包工具, 適用於多種型別之網路安全檢查需求.