1. 程式人生 > >ping 命令詳解及擴充套件(kali Linux)

ping 命令詳解及擴充套件(kali Linux)

ping是常見的測試命令,關於它的一些擴充套件有不少今天就來說說吧

1. ping

 在檢查主機是否線上的工具中 ping 可能是最著名的程式了,該工具向目標主機發送 ICMP 協議(Internet Control Message Protocol) 的echo request 資料包。如果目標主機線上且允許接受ping 請求,那麼目標主機將回復 ICMP echo reply 資料包。

在kali linux 裡面,預設情況下在按 CTRL + C 之前,ping 指令會一直執行下去。

ping 裡面有很多指令最常用的有以下幾個:

(1) ping  -c   count  : 傳送 echo request 資料包的總量 如下 

傳送 10 次 每次包的大小預設是 56  ,最後會顯示多少個包被成功接回,多少個丟失以及總時間、最大、最小、平均時間。

(2) ping -I  interface address : 設定源地址或者網路介面,該引數可以是 IP 地址(如 ping -I 192.168.1.1)或者網絡卡裝置的名稱(如 eth0) 如果要 ping IPv6 鏈路本地地址,就必須指定這個選項。

(3) ping -s packet size 傳送指定大小的資料包 如

指定 ping 8次, 每次的資料包大小 99 位元組。

2. arping 

arping 是在區域網中使用ARP(Addess Resolution Protocol)請求判斷目標主機是否線上的工具。你可以用 IP 地址或者 MAC 地址 作為它的測試目標。

因為 arping 程式工作於 OSI 模型中的第二層,ARP 協議的資料包無法通過路由器和閘道器,所以它只能檢測本地區域網絡中的主機。

(1)判斷某區域網主機是否線上 如圖

該目標主機線上 。如果這個IP 存在該主機將其 Mac 地址通過 ARP 協議傳回

(2) 判斷 某個地址是否被佔用,如果某天你想換一個 IP 地址 192.168.6.5,換之前先判斷這個地址是否被其他主機佔用。

如下命令   

  arping -D -I eth0 10.29.6.80 -c 2

鍵入 echo $? 返回值是1 表示此地址已經被佔用, 返回 0 表示未被佔用。

3. fping

  與 ping 相比 fping 可以同時向多個主機發送 ping(ICMP echo )請求,你可以在命令裡面指定主機,也可以在某個檔案裡面指定多個目標主機。

預設情況下 fping 通過主機回覆判斷主機是否線上。返回 alive 則表示線上,返回UNreachable 表明不可訪問。

(1) fping ip ip ip ip... :如下

第一個線上,第二個和第三個不線上。

(2)如果不想指定 IP 可以指定目標主機列表,對整個網段進行檢測。命令如下:

fping  -g 10.29.5.0/24   

-g 是引數 g 是 generate 的縮寫。

alive 表示線上,UNreachable 表示不線上。

可以看出資料是相當的多,線上的主機都會優先顯示,不線上的都在後面顯示。

如果要改變探測次數,可以加上 -r 引數 (預設是 3 次)

(3) 檢視多個目標統計結果如下

這個閱讀起來非常方便,小夥伴們都可以試試。

4.hping3

hping3 程式是命令列下的網路資料包生成和分析工具。在 TCP/IP 測試和安全測試裡,例如埠掃描、防火牆規則測試、網路效能測試時,都能使用這個程式生成自定義的網路資料包,從而進行相應測試。

在不指定任何引數下,直接執行 hping3 將向 TCP 的0號 埠傳送空資料。如果改變通訊協議參考下面引數

-0           --raw-ip      傳送原始資料包
-1           --ICMP        傳送ICMP資料包
-2           --udp         傳送UDP資料包
-8           --scan        進入掃描模式
-9           --liste       進入監聽模式

如果不指定通訊協議預設是 TCP 協議

  -M  --setseq     set TCP sequence number
  -L  --setack     set TCP ack
  -F  --fin        set FIN flag
  -S  --syn        set SYN flag
  -R  --rst        set RST flag
  -P  --push       set PUSH flag
  -A  --ack        set ACK flag
  -U  --urg        set URG flag
  -X  --xmas       set X unused flag (0x40)
  -Y  --ymas       set Y unused flag (0x80)

(1)向某一個目標主機發送 ICMP 請求 就要用 -1 (ICMP 協議引數) 和 -c (傳送次數引數)

hping3 -1 10.29.5.4 -c 10 如下

一共傳送10次 ICMP 請求,如上 目標主機線上,它回覆了ICMP echo 請求。

捕獲資料流量進行驗證如下

可見目標主機的確傳送了ICMP echo 回覆資料包。

PS : 各種協議和引數的使用參考以上,可以自己試試其他協議。

(2)用hping3 檢驗防火牆規則  : UDP 檢驗

引數說明  -2 表示upd協議  -c 是次數 ,-S 是SYN 標識  -p 22 埠號 22 ,-s    基本源埠

上述資訊表明 目標主機接收了我們傳送到 22 埠的帶有SYN標識的 UDP 包,但是目標主機的在UDP 協議下不可達,不接受22埠的UDP資料包。

ICMP 檢驗:

上述資訊表明 目標主機接收了ICMP包。你也可以自己加引數。

TCP 檢測

上述資訊表明 目標主機接收了我們傳送到 22 埠的帶有SYN標識的 TCP 包。

以上只是幾個簡單的功能,小夥伴可以檢視 hping3的其他命令你進行摸索。

5.nping

nping 使用者允許傳送多種協議(TCP、UDP、ICMP、ARP)的資料包你也可以設定協議的埠如 TCP 的源埠和目的埠。nping 可以探測多個主機的多個埠。還可以像 ping 程式一樣傳送ICMP echo 請求。nping也可以對網路進行壓力測試 、ARP 中毒、DOS 攻擊。

kali Linux中,nping是Nmap的一部分。具體引數如下

 
--tcp-connect     基礎的--tcp-connect 功能
--tcp             TCP模式
--upd             UDP模式
--icmp            ICMP模式
--arp             ARP模式
--tr              traceroute模式(僅與TCP/ICMP/UDP 模式相容)

向多個目標傳送請求 nping -c 4 10.29.5.4-10 

在這段ip中 只有 10.29.5.4 對我們主機響應,其他主機都沒有

在不響應的情況下,我們可以向這些主機開放的TCP埠傳送 TCP SYN 包檢驗它是否線上

如下 隨便挑一個 ip 進行測試

nping --tcp -c 4 -p 22 10.29.5.6   

一般的常規埠有 21、222、23、25、80、443、8443.可以從這些埠入手。

 

由此可見 這個目標主機不線上。

好了以上5個關於 ping 的工具就到這裡了,多加練習就可以掌握。未探測的部分還有很多,繼續加油!