滲透測試——情報收集階段——主機探測與端口掃描(nmap常用命令)

本文中示例的環境:
在這裏插入圖片描述


活躍主機掃描

①ICMP Ping 命令

Ping (Packet Internet Grope,因特網包探索器)是一個用於測試網絡連接的程序。Ping程序會發送一個 ICMP echo 請求消息給目的主機,並報告應答情況。如果Ping後面跟的是域名,那麼它會首先嚐試將域名解析,然後向解析得到的IP地址發送數據包。
在這裏插入圖片描述

②arping

arping 向目標主機發送arp數據包,常用來檢測一個ip是否在網絡中已被使用。因爲主機的 arp 功能是無法關閉的,若關閉了 arp 功能則無法與網絡通信。因此 arping 比 ping 的通用性更好。同時,還可以採用 arp-scan --interface=網卡名 網段來掃描一個網段的活躍主機。
arping

③Metasploit 的主機發現模塊

Metasploit中提供了一些輔助模塊可用於活躍主機的發現,這些模塊位於Metasploit源碼路徑的 modules/auxiliary/scanner/discovery 目錄中,主要有以下幾個:arp_sweep、ipv6_multicast_ping、ipv6_neighbor、ipv6_neighbor_router_advertisement、udp_prove、udp_sweep。其中兩個最常用模塊的主要功能爲:

  • arp_sweep 使用ARP請求枚舉本地局域網絡中的所有活躍主機
  • udp_sweep 通過發送UDP數據包探查指定主機是否活躍,並發現主機上的UDP服務
    在這裏插入圖片描述
④使用Nmap進行主機探測

Nmap (Network mapper)是目前最流行的網絡掃描工具,它不僅能夠準確地探測單臺主機的詳細情況,而且能夠高效率地對大範圍的IP地址段進行掃描。使用Nmap能夠得知目標網絡上有哪些主機是存活的,哪些服務是開放的,甚至知道網絡中使用了何種類型的防火牆設備等。


操作系統辨識

獲取了網絡中的活躍主機後,就應該關注於這些主機安裝了什麼操作系統,準確區別出設備使用的操作系統對於後續滲透流程的確定和攻擊模塊的選擇非常重要。同時,漏洞掃描器得到的掃描結果中一般會存在誤報現象,而準確地操作系統辨識能排除這些誤報項目。

可以使用 nmap -O 網絡或網段 對目標的操作系統進行識別
在這裏插入圖片描述


端口掃描與服務類型探測

可以通過端口掃描瞭解到目標網絡極爲詳細的信息,爲下一步開展網絡滲透打下基礎。目前常見的端口掃描技術有如下幾類:TCP Connect、TCP SYN、TCP ACK、TCP FIN。此外還有一些更爲高級的端口掃描技術,如TCP IDLE。
TCP Connect掃描指的是掃描器發起一次真實的TCP連接,如果連接成功表明端口是開放的,這種掃描得到的結果最精確,但速度最慢,此外也會被掃描目標主機記錄到日誌文件中,容易暴露掃描。而SYN、ACK、FIN等則是利用了TCP協議棧的一些特性,通過發送一些包含了特殊標誌位的數據包,根據返回信息的不同來判定端口的狀態,這類掃描往往更加快速和隱蔽。

①Metasploit中的端口掃描器

Metasploit 的輔助模塊中提供了幾款實用的端口掃描器,可以輸入search portscan命令找到相關的端口掃描器。
Metasploit中的端口掃描器

  • ack:通過 ACK 掃描方式對防火牆上未被屏蔽的端口進行探測
  • ftpbounce:通過 FTP bounce 攻擊的原理對TCP服務進行枚舉,一些新的 FTP 服務器軟件能夠很好的防範 FTP bounce 攻擊,但在一些舊的 Solaris 和 FreeBSD 系統的 FTP 服務中此類攻擊方式仍能夠被利用
  • syn:使用發送 TCP SYN 標誌的方式探測開放的端口
  • tcp:通過一次完整的 TCP 連接來判斷端口是否開放,這種掃描方式最準確,但掃描速度較慢
  • xmas:一種更爲隱祕的掃描方式,通過發送 FIN、PSH和URG標誌,能夠躲避一些高級的 TCP 標記監測器的過濾

下面是使用 syn 方式的端口掃描示例:
在這裏插入圖片描述

②Nmap 的端口掃描功能

大部分掃描器會對所有的端口分爲 open (開放) 或 closed (關閉) 兩種類型,而 Nmap 對端口狀態的分析粒度更加細緻,共分爲六個狀態:open (開放)、closed (關閉)、filtered (被過濾)、unfiltered (未過濾)、open|filtered (開放或被過濾)、closed|filtered (關閉或被過濾)。

  • open:一個應用程序正在此端口上進行監聽,以接收來自 TCP、UDP 或 SCTP 協議的數據。這是在滲透測試中最關注的一類端口,開放端口往往能夠爲我們提供一條能夠進入系統的攻擊路徑
  • closed:關閉的端口指的是主機已經響應,但沒有應用程序監聽的端口。這些信息並非沒有價值,掃描出關閉端口至少說明主機是在活躍狀態
  • filtered:指 Nmap 不能確認端口是否開放,但根據響應數據猜測該端口可能被防火牆等設備過濾
  • unfiltered:僅在使用 ACK 掃描時,Nmap 無法確定端口是否開放,會歸爲此類。可以使用其他類型的掃描 (如 Window 掃描、SYN掃描、FIN掃描) 來進一步確認端口的信息
    在這裏插入圖片描述
③ Bank Track 5 的 Autoscan 功能

BT5 提供了一個完全圖形化、簡單易用的工具 Autoscan,可在如下位置找到:Applications → BackTrack → Information Gathering → Net Analysis → Network Scanner → Autoscan。雖然實際使用的效果比不上 Nmap,但能夠提供一個非常直觀的系統網絡情況在這裏插入圖片描述


Nmap 常用命令

①活躍主機掃描
  • -sL:簡單列表掃描
  • -sn:Ping 掃描主機,但不進行端口掃描
  • -sP:進行 Ping 掃描
  • -sA:發送 TCP 的 ack 包進行探測
  • -iL:若有一個 IP地址列表,將其保存爲一個 txt 文件,並和 nmap 在同一目錄下,則可以使用該命令掃描該 txt 文件中的 IP地址
    用法:nmap -iL IP.txt
②端口掃描
  • -sT:TCP connect 掃描,類似 Metasploit 中的 tcp 掃描模塊
  • -PU:UDP ping 掃描
  • -sS:TCP SYN 掃描,類似 Metasploit 中的 syn 掃描模塊
  • -sF / -sX / -sN:這些掃描通過發送一些特殊的標誌位以避開設備或軟件的監測
  • -sU:探測目標開放了哪些 UDP 端口
  • -Pn:在掃描之前,不發送 ICMP Ping 來測試目標是否活躍
  • -F:快速掃描模式,只掃描在 nmap-services 中列出的端口
  • -p<端口範圍>:指定希望掃描的端口,也可以使用一段端口範圍。
  • -sO:指定想要掃描的協議號 (0 ~ 255)
  • -sV:掃描目標主機和端口上運行的軟件及版本信息
③ 繞過防火牆
  • -f:通過分片繞過防火牆
  • -D:使用誘餌隱蔽掃描,用法:nmap -D [ip1,ip2 …… | RND:10] 目標主機。即可以指定誘餌主機,也可以使用 RND 隨機生成指定數量的主機
  • -S:源地址欺騙,可以修改掃描時的源地址,如:nmap -S 10.10.10.10
  • –source-port 或 -g:源端口欺騙,修改掃描時的端口
④其他命令
  • -e:指定網絡接口,掃描時使用哪個網卡
    用法:nmap -e eth0 目標IP

  • -S:可以僞裝源地址進行掃描,使對方發現不到自己的真實IP。
    注:若使用 -S 僞裝自己的源地址進行掃描,則必須使用 -e 指定網卡,同時使用 -Pn 參數才能僞裝
    用法:nmap -e eth0 目標IP -S 要僞裝成的IP -Pn

  • -O:可用來掃描目標的操作系統類型

  • -A:獲取目標所有信息,最全最完整的一個掃描

  • -v:顯示掃描規程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章