iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
自我挑戰組

從零開始:資安滲透初探系列 第 7

07: 資安滲透初探: 掃描(Scanning)

  • 分享至 

  • xImage
  •  

在我們完成資訊蒐集後會開始進行掃描,這個部分的分享會以nmap為主

  • 資訊蒐集與掃描的區別:

    • 掃描是在更深層次上進行。
    • 資訊蒐集階段蒐集各種資訊,如電郵、電話號碼等。
    • 掃描主要集中在技術方面,目的是了解目標的技術細節。
  • 掃描目標與範疇:

    • 掃描只能針對允許的目標進行。
    • 使用脆弱的虛擬機進行測試,以便學習如何掃描。
    • 虛擬機運行過時的脆弱軟體,硬體需求低,可以與Kali Linux同時運行。
  • 滲透測試過程:

    • 滲透測試過程類似於真實世界的測試。
    • 唯一不同是我們知道虛擬機是脆弱的,但在真實世界中不會事先知道。
    • 掃描有助於發現機器的脆弱點。
  • 掃描目標與技術:

    • 使用Kali Linux進行掃描。
    • 掃描過程中會與目標交換封包,收集有用的資訊。
    • 主要使用TCP和UDP協定進行掃描,這些協定用於傳輸數據。
  • 掃描的目標:

    • 尋找開放的虛擬埠(非USB等實體埠)。
    • 開放埠用於主機軟體並與其他機器通訊。
    • 常見開放埠:HTTP埠(80)、HTTPS埠(443)、FTP埠(21)、SSH埠(22)、DNS埠(53)、SMTP埠(25)。
  • 開放埠的重要性:

    • 每台機器有65,535個TCP和UDP埠。(後面會簡單介紹TCP & UDP)
    • 任何開放埠上運行的脆弱軟體都可能使目標被攻擊。
    • 高安全性機器通常關閉所有埠,例如家用設備。
  • 網站與公司內部的開放埠:

    • 網站必須有開放埠以便提供網頁服務。
    • 公司內部可能有開放埠以便內部傳輸文件。
  • 掃描目標與目標:

    • 發現開放埠和其上運行的軟體。
    • 確認軟體版本以評估脆弱性。
  • TCP和UDP簡介:

    • 兩者是用來傳輸數據位元(封包)的協定。
    • 這是最常用的兩種協定,雖然還有其他協定存在。
  • TCP(Transmission Control Protocol):

    • TCP是互聯網上最常用的協定。
    • 當加載網頁時,電腦會發送TCP封包到伺服器請求網頁。
    • 伺服器回應TCP封包流,網頁瀏覽器將這些封包組合成網頁。
    • TCP是一種雙向通訊協定,遠端系統會發回封包以確認收到資料。
  • TCP的三次握手:

    • 三次握手包含三個步驟:SYN、SYN/ACK和ACK。
      • SYN(Synchronize Sequence Number):
        • 用戶端希望與伺服器建立連接,發送SYN段來開始通訊。
      • SYN/ACK:
        • 伺服器回應用戶端的SYN請求,發送SYN/ACK段。
        • ACK表示收到的SYN段,SYN表示伺服器將使用的序列號。
      • ACK:
        • 用戶端確認伺服器的回應,建立可靠連接以開始實際數據傳輸。
  • TCP的可靠性:

    • TCP保證封包的順序和完整性,會對封包進行編號和錯誤檢查。
    • 若發送方未收到正確回應,將重傳封包。
  • UDP(User Datagram Protocol):

    • UDP是資料報協定,比TCP更快,但不執行錯誤檢查。
    • 用於速度優先而錯誤修正不重要的場合,如直播和網路遊戲。
    • UDP不會確認封包是否到達目的地,若遺失不會重傳。

那在我們對於掃瞄有一些基礎的認識後,我們需要一個可以掃描的實體,由於我們並沒有得到授權來進行滲透測試,
因此我們要利用虛擬機來架設一台"靶機",方便我們進行練習

  • 取得脆弱靶機:
  • 架設Metasploitable虛擬機:
    • 解壓縮檔案以後用虛擬機開啟檔案即可
      07-1
    • 虛擬機開啟後會需要一點點時間來安裝(應該不用5分鐘)
  • 登入虛擬機:
    • 使用者名稱和密碼均為“msfadmin”。
    • 登入後可使用命令列進行操作,例如使用ifconfig檢查網路IP。
  • 準備開始掃描:
    • 現在虛擬機已準備好被進行掃描與攻擊。

那我們現在可以開始準備掃描了

  • 開始掃描:

    • 瞭解掃描的概念並建立了脆弱虛擬機後,我們準備開始進行掃描。
    • 在掃描單一機器以發現開放埠之前,首先需要找出網路上有多少台主機及其IP位址。
  • 掃描家庭網路:

    • 假設我們的任務是掃描家庭網路以找出脆弱機器。
    • 首先確認有哪些主機在線上及其IP位址範圍。
    • 例如:IP位址範圍可能從192.168.1.1到192.168.1.255。
  • 手動Ping掃描:

    • 可以逐一Ping所有主機以確認其是否在線。
    • 若主機響應Ping,即表示在線,否則為離線。
    • 若需掃描多個網路,手動Ping不現實,因此需要使用工具。
  • 使用ARP工具:

    • ARP(Address Resolution Protocol)是一個在Kali Linux上的工具,用於發現網路上的主機。
    • 使用sudo arp -a查看所有主機,但可能需要先Ping主機使其出現在ARP表中。
      07-2
    • ARP工具有時候不夠可靠,需輔以其他工具。
  • 使用Net Discover工具:

    • Net Discover是一個更佳選擇,可以自動掃描網路中的所有設備。
    • 使用sudo netdiscover啟動工具,會自動發現網路中的可用設備。
    • 工具會顯示IP位址、MAC位址及MAC廠商名稱或主機名稱。
      07-3
      07-4
  • 辨識網路設備:

    • 確認Metasploitable和其他設備的IP位址。
    • 通常路由器的IP位址為.x.0或.x.1。
    • 使用netstat -nr查看路由器的IP位址,確認與掃描結果匹配。
      07-5
  • 介紹Nmap:

    • Nmap(Network Mapper)是道德駭客必備的重要工具。
    • Nmap是一個免費開源的網路掃描器,用於發現主機和網路服務。
    • 通過發送封包並分析回應來運作。
  • Nmap基本使用:

    • 確保Metasploitable和其他設備處於啟動狀態。
    • 在終端中輸入nmapnmap --help可查看Nmap的幫助菜單及可用選項。
  • 執行基本掃描:

    • 指定IP位址來進行基本掃描。
    • 使用Metasploitable的IP位址(例如:192.168.1.6)進行掃描。
      07-06
  • Nmap掃描結果:

    • 顯示主機是否在線及其開放埠。
    • 每個開放埠的服務名稱,例如:
      • 埠21:FTP(File Transfer Protocol)
      • 埠22:SSH(Secure Shell)
      • 埠80:HTTP
  • 其他埠與服務:

    • Metasploitable運行多個服務,因此有多個開放埠。
    • 預設情況下,Nmap僅掃描1000個最常見的埠,而非全部65000個埠。
  • 掃描整個網路:

    • 知道網路的子網範圍或IP範圍(例如:192.168.1.1-255)。
    • 可以使用兩種方式指定範圍:nmap 192.168.1.1-255nmap 192.168.1.1/24
      07-07
  • 網路掃描結果:

    • 掃描多個主機後的結果:
      • Metasploitable的開放埠和服務。
      • 另一設備的所有掃描埠均為關閉狀態,表示為安全版本。
      • 路由器的開放埠,包括SSH、Telnet、HTTP、HTTPS等。
      • Nmap無法識別的服務顯示為“unknown”。
  • 小結:

    • 完成基本Nmap掃描,發現目標機器的開放埠。
  • 介紹Nmap掃描類型:

    • Nmap提供多種掃描類型,這些不同的掃描類型可能會產生相似的結果。
    • 了解不同掃描類型的差異需要具備TCP和UDP的背景知識。
  • TCP SYN掃描(-sS):

    • 最受歡迎的掃描類型,快速掃描無防火牆保護的網路。
    • 只進行三次握手的第一步(SYN),不建立完整的TCP連接。
    • 根據目標的回應確定埠的狀態:
      • SYN-ACK表示埠開啟。
      • RST表示埠關閉。
      • 無回應則標記為過濾狀態。
        07-08
  • TCP連接掃描(-sT):

    • 執行完整的TCP三次握手連接。
    • 不需要root權限,但比SYN掃描更容易被偵測。
    • 較適合無法使用root權限的情況。
  • UDP掃描(-sU):

    • 對於許多網路服務使用TCP協定,UDP掃描較少使用。
    • UDP掃描速度較慢且較複雜,但不應忽略,因為存在許多可利用的UDP服務。
    • 需要root權限執行。
  • 閱讀Nmap手冊:

    • 熟悉Nmap的關鍵在於閱讀其手冊,而非僅僅是幫助菜單。
    • 使用man nmap命令查看Nmap手冊,詳細解釋每個選項。
    • 瞭解六種埠狀態:開啟、關閉、過濾、未過濾、開啟和過濾、關閉和過濾。
    • 掃描類型包括TCP SYN掃描(-sS)、TCP連接掃描(-sT)、TCP ACK掃描(-sA)等。
    • 根據目標和需求選擇適合的掃描類型。
  • 準備進一步探討:

    • 接下來將探討如何發現目標機器的操作系統及開放埠上服務的版本。
    • 這些資訊是滲透測試中非常重要的發現。
  • 使用Nmap檢測操作系統:

    • Nmap利用其龐大的操作系統指紋資料庫來檢測目標運行的操作系統。
    • 目標機器必須至少有一個開放埠和一個關閉埠才能正常運作。
  • 掃描Metasploitable:

    • 在Kali Linux上使用命令 sudo nmap -O <IP地址> 來檢測操作系統。
    • Nmap能夠檢測到Metasploitable運行的是Linux操作系統及其版本。
    • 通過MAC地址檢測到目標是虛擬機器,這可能表示掃描的是蜜罐。
  • 檢測服務版本:

    • 掃描開放埠上的軟體版本是識別漏洞的重要步驟。
    • 知道確切的版本後,可以在網上搜索是否存在已知漏洞。
  • 執行版本掃描:

    • 使用sudo nmap -sV <IP地址>命令來進行版本掃描。
    • 版本掃描比其他掃描耗時,因為它深入分析目標。
    • 掃描結果包含埠號、埠狀態、運行服務和服務版本。
  • 範例結果分析:

    • 埠21(FTP):顯示FTP軟體的確切版本。
    • 埠22(SSH):顯示SSH版本,例如OpenSSH 4.7。
    • 埠80(HTTP):顯示Apache HTTP版本,例如2.2.8。
    • 使用結果查找每個版本的已知漏洞,並進行測試。
  • 調整掃描強度:

    • 使用-version-intensity選項來調整掃描強度(0到9)。
    • 預設強度為7,設定為9可能增加識別正確服務版本的機會,但掃描時間更長。
  • 進階選項:

    • A選項(Aggressive Scan):
      • 啟用操作系統檢測(等同於O)。
      • 啟用版本檢測(等同於sV)。
      • 啟用Nmap腳本掃描(Nmap Scripts)。
    • A為更具攻擊性的選項,僅在有權限的目標上使用。
  • Nmap進階使用:

    • 在學習完Nmap的基礎知識後,進一步了解一些有用的選項。
  • 腳本與防火牆規避:

    • Nmap可以使用腳本來獲取更多資訊。
    • 需要學習如何在有防火牆的情況下執行掃描以避免被檢測。
  • 查看A選項的輸出:

    • A選項執行多個掃描功能,包括操作系統檢測、版本掃描及腳本執行。
    • 執行腳本後,可看到更多信息,如FTP匿名登入、SSH主機密鑰、SMTP指令等。
    • A是激進的掃描選項,容易被檢測到,不適合在有安全措施的目標上使用。
  • Nmap手冊的有用選項:

    • sN選項:類似於Net Discover工具,用於識別網路上的在線主機,但不進行端口掃描。
    • p選項:指定要掃描的端口範圍,可以掃描單個端口、多個端口或端口範圍。
    • F選項:快速掃描前100個常用端口,而非默認的1000個端口。
    • oN選項:將掃描結果輸出到文件中,可用於生成報告。
  • 輸出掃描結果:

    • 使用>將掃描結果重定向到文件。
    • oN選項將掃描結果同時輸出到終端和文件中。
  • 總結:

    • 這些選項能提高掃描效率和準確性。
  • 使用Nmap繞過安全措施:

    • 本節將介紹如何利用Nmap來繞過目標的安全措施,如防火牆和入侵檢測系統(IDS)。
  • 防火牆和IDS介紹:

    • 防火牆(Firewall):
      • 網路安全系統,用於監控和過濾網路流量。
      • 分為網路防火牆和主機防火牆。
      • 網路防火牆過濾多個網路之間的流量,主機防火牆僅過濾單一機器的進出流量。
    • 入侵檢測系統(IDS):
      • 軟體應用,用於監控網路中的惡意活動。
      • 可能會檢測到一些Nmap掃描活動。
  • 繞過安全措施的Nmap選項:

    • 瞭解如何利用Nmap的選項繞過防火牆和IDS。
    • 針對被防火牆過濾的埠,Nmap無法判斷其是否開啟或關閉。
    • 通過使用特定選項,Nmap可以更有效地進行掃描並繞過安全措施。
  • 繞過防火牆的掃描選項:

    • 防火牆的規則不易預測,使用不同選項進行掃描以嘗試繞過防火牆。
    • 當Nmap顯示埠為「已過濾」時,表示封包可能被防火牆丟棄。
  • 選項介紹:

    • F:使用小型分段IP封包,以繞過封包過濾和入侵檢測系統。
      • 可使用-mtu選項調整分段大小,必須為8的倍數。
      • 該選項僅在特定網路上有效,且有風險。
    • D:生成假目標IP地址以掩蓋真實IP地址。
      • 使用D RND:<數量>生成隨機IP地址。
      • 指定本地IP地址(如:D 192.168.1.2,192.168.1.5,ME)時效果更好。
  • 注意事項:

    • 這些選項在掃描與你處於同一網路中的目標時效果最佳。
    • 掃描外部目標时可以使用隨機IP地址生成器。

上一篇
06: 資安滲透初探: 偵查與資訊收集
下一篇
08: 資安滲透初探: Python 編程項目 1 - 端口掃描器
系列文
從零開始:資安滲透初探27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言