痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 13700|回復: 15

[教學] PING命令的高級用法

  [複製鏈接]
發表於 2011-4-23 18:21:48 | 顯示全部樓層 |閱讀模式
對於Windows下ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻並不是很多,
當然我也並不是說我可以讓ping發揮最大的功能,我也只不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。
                                                                                
  現在我就參照ping命令的幫助說明來給大家說說我使用ping時會用到的技巧,ping只有在安裝了TCP/IP協議以後才可以使用:
                                                                                
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s cou
nt] [-j computer-list] │ [-k computer-list] [-w timeout] destination-list
                                                                                
                                                                                
Options:

-t Ping the specified host until stopped.To see statistics and continue - typeControl-Break;To stop - type Control-C.
不停的ping地方主機,直到你按下Control-C。
此功能沒有什麼特別的技巧,不過可以配合其他參數使用,將在下面提到。
                                                                                
-a Resolve addresses to hostnames.
解析計算機NetBios名。

示例:
                                                                                
C:\>ping -a 192.168.1.21
                                                                                
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Ping statistics for 192.168.1.21:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip time
s in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
                                                                                
從上面就可以知道IP為192.168.1.21的計算機NetBios名為iceblood.yofor.com。
                                                                                
-n count Number of echo requests to send.
發送count指定的Echo數據包數。
                                                                                
  在預設情況下,一般都只發送四個數據包,通過這個命令可以自己定義發送的個數,對衡量網絡速度很有幫助,
比如我想測試發送50個數據包的返回的平均時間為多少,最快時間為多少,最慢時間為多少就可以通過以下獲知:

C:\>ping -n 50 202.103.96.68
Pinging 202.103.96.68 with 32 bytes of data:
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Request timed out.
………………
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Ping statistics for 202.103.96.68:
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip ti
mes in milli-seconds:
Minimum = 40ms, Maximum = 51ms, Average = 46ms
                                                                                
  從以上我就可以知道在給202.103.96.68發送50個數據包的過程當中,返回了48個,其中有兩個由於未知原因丟失,
這48個數據包當中返回速度最快為40ms,最慢為51ms,平均速度為46ms。
                                                                                
-l size Send buffer size.
定義echo數據包大小。

    在預設的情況下windows的ping發送的數據包大小為32byt,我們也可以自己定義它的大小,但有一個大小的限制,
就是最大只能發送65500byt,也許有人會問為什麼要限制到65500byt,
因為Windows系列的系統都有一個安全漏洞(也許還包括其他系統)就是當向對方一次發送的數據包大於或等於65532時,
對方就很有可能當機,所以微軟公司為了解決這一安全漏洞於是限制了ping的數據包大小。
雖然微軟公司已經做了此限制,但這個參數配合其他參數以後危害依然非常強大,
比如我們就可以通過配合-t參數來實現一個帶有攻擊性的命令:(
以下介紹帶有危險性,僅用於試驗,請勿輕易施於別人機器上,否則後果自負)
                                                                                
C:\>ping -l 65500 -t 192.168.1.21
Pinging 192.168.1.21 with 65500 bytes of data:
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
………………
                                                                                
  這樣它就會不停的向192.168.1.21計算機發送大小為65500byt的數據包,如果你只有一台計算機也許沒有什麼效果,
但如果有很多計算機那麼就可以使對方完全癱瘓,我曾經就做過這樣的試驗,
當我同時使用10台以上計算機ping一台Win2000Pro系統的計算機時,不到5分鐘對方的網絡就已經完全癱瘓,網絡嚴重堵塞,
HTTP和FTP服務完全停止,由此可見威力非同小可。

-f Set Don't Fragment flag in packet.
在數據包中發送「不要分段」標誌。
                                                                                
在一般你所發送的數據包都會通過路由分段再發送給對方,加上此參數以後路由就不會再分段處理。
                                                                                
                                                                                
-i TTL Time To Live.
指定TTL值在對方的系統裡停留的時間。
此參數同樣是幫助你檢查網絡運轉情況的。
                                                                                
                                                                                
-v TOS Type Of Service.
將「服務類型」字段設置為 tos 指定的值。
                                                                                
-r count Record route for count hops.
在「記錄路由」字段中記錄傳出和返回數據包的路由。

    在一般情況下你發送的數據包是通過一個個路由才到達對方的,但到底是經過了哪些路由呢?
通過此參數就可以設定你想探測經過的路由的個數,不過限制在了9個,也就是說你只能跟蹤到9個路由,
如果想探測更多,可以通過其他命令實現,我將在以後的文章中給大家講解。

以下為示例:
                                                                                
C:\>ping -n 1 -r 9 202.96.105.101 (發送一個數據包,最多記錄9個路由)
                                                                                
Pinging 202.96.105.101 with 32 bytes of data:
                                                                                
Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
Route: 202.107.208.187 ->
202.107.210.214 ->
61.153.112.70 ->
61.153.112.89 ->
202.96.105.149 ->
202.96.105.97 ->
202.96.105.101 ->
202.96.105.150 ->
61.153.112.90
                                                                                
Ping statistics for 202.96.105.101:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
                                                                                
  從上面我就可以知道從我的計算機到202.96.105.101一共通過了
202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97
這幾個路由。
                                                                                
                                                                                
-s count Timestamp for count hops.
指定 count 指定的躍點數的時間戳。
                                                                                
此參數和-r差不多,只是這個參數不記錄數據包返回所經過的路由,最多也只記錄4個。
                                                                                
                                                                                
-j host-list Loose source route along host-list.
利用 computer-list 指定的計算機列表路由數據包。連續計算機可以被中間網關分隔(路由稀疏源)IP 允許的最大數量為 9。
                                                                                
                                                                                
-k host-list Strict source route along host-list.
利用 computer-list 指定的計算機列表路由數據包。連續計算機不能被中間網關分隔(路由嚴格源)IP 允許的最大數量為 9。

-w timeout Timeout in milliseconds to wait for each reply.
指定超時間隔,單位為毫秒。
                                                                                
此參數沒有什麼其他技巧。
                                                                                
  ping命令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,
粗略的判斷目標主機的系統類型是Windows系列還是UNIX/Linux系列,一般情況下Windows系列的系統返回的TTL值在100-130之間,
而UNIX/Linux系列的系統返回的TTL值在240-255之間,當然TTL的值在對方的主機裡是可以修改的,
Windows系列的系統可以通過修改註冊表以下鍵值實現:
                                                                                
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20
發表於 2011-4-23 19:05:13 | 顯示全部樓層
有些網站是不給 ping 的,封鎖對 ping 回應是基本的資安常識,目的也是減少被癱瘓的機率。
就像水能載舟亦能覆舟,善用指令對網路維護不無功效,但被不當利用則可能會造成災害。
發表於 2011-4-24 16:21:31 | 顯示全部樓層
感謝!!我開始用它來測試我的網路分享器.
 樓主| 發表於 2011-4-24 19:49:45 | 顯示全部樓層
回復 wooden 的帖子

原來如此,可見你對資安常識還粉了解!!不知大大是做資安方面的嗎?
發表於 2011-4-24 20:11:46 | 顯示全部樓層
回復 z520 的帖子

不!只是略懂皮毛而已,資安網管的觀念是在工作中建立的。
 樓主| 發表於 2011-4-24 21:19:50 | 顯示全部樓層
哈,沒有讚可以點,不然就給你一個讚
發表於 2011-5-21 16:25:42 | 顯示全部樓層
GOOD~
實用小技巧~
發表於 2011-5-21 19:51:20 | 顯示全部樓層
DOS 正常的網站會封鎖
減少癱瘓的機率
發表於 2011-6-2 20:57:17 | 顯示全部樓層
又學了一些技術!!謝謝大大了
發表於 2011-6-21 17:23:56 | 顯示全部樓層
這個指令好玩
以前上電腦課的時候用兩台還是三台裝9x的搞到另一台9x的快當機
發表於 2012-5-13 10:37:17 | 顯示全部樓層
感謝大大熱心分享
發表於 2012-5-13 12:52:46 | 顯示全部樓層
只要關掉 icmp 就PING不死了。
在UNIX下還可以比 -t 更狠的炸法。
為了大家的安全。還是別公開太多這種手法。還是多教些防止的方法。
發表於 2012-5-14 02:47:18 | 顯示全部樓層
ping常見的攻擊手法譬如 ping of death , 送超過segment所容許的資料量,待至接收端組合時超過buffer而當機等等之類的有很多都是關於ping 的攻擊

有興趣的可以查查hping or nmap 會有更多的收穫
不過對於網路必須要有相當的瞭解,譬如TCP三方交握及TCP通訊協定、何種協定開何種PORT等
在駭客範疇裡,此類行為多屬於偵察(footprinting),若被對方察覺並記錄的話,是可以被當成犯罪行為的
發表於 2012-5-14 11:49:35 | 顯示全部樓層
這個一定要上來筆記一下!
感謝分享!

另外,
如果有在寫批次檔的兄弟,
我之前在網上有看到使用ping來作延時的寫法,
例如:
我想要停個15秒再執行後續程序,
可以使用ping來做:
ping 128.0.0.1 -n 15 -w 1000
因為128.0.0.1是假的,
所以,我對128.0.0.1ping了15次間隔1000毫秒,
也就是等了15秒了!
發表於 2012-5-14 12:35:08 | 顯示全部樓層
需要更正喔
ping -a~的意思是Resolve hostname
這裡指的是名稱反解
假如在DNS有設定反解,那麼這裡就可以透過ip反查到FQDN
而NetBIOS是LAN的產物,無法跨到WAN運作....
===========================
至於PING -i,所指的是經過多少路由器,當ttl=0時!後方就不在回應與轉送了
預設的ttl是255
所以已我的電腦而言
tracert結果如下
C:\>tracert 168.95.1.1

在上限 30 個躍點上
追蹤 dns.hinet.net [168.95.1.1] 的路由:

  1    <1 ms    <1 ms    <1 ms  172.16.20.254
  2     9 ms     9 ms     9 ms  h254.s98.ts.hinet.net [168.95.98.254]
  3     9 ms     9 ms     9 ms  TPE4-3301.hinet.net [168.95.84.38]
  4     9 ms     9 ms     9 ms  TPE4-3202.hinet.net [220.128.5.78]
  5    14 ms    10 ms    12 ms  TPDT-3012.hinet.net [220.128.4.82]
  6     9 ms     9 ms     9 ms  TPDB-3102.hinet.net [220.128.4.193]
  7     9 ms    10 ms    10 ms  210-59-204-189.HINET-IP.hinet.net [210.59.204.189]
  8     9 ms     9 ms     9 ms  dns.hinet.net [168.95.1.1]

追蹤完成。
可以看到共經過8個路由器或是節點
那麼ping的ttl值就會是255-8=247
C:\>ping -a 168.95.1.1

Ping dns.hinet.net [168.95.1.1] (使用 32 位元組的資料):
回覆自 168.95.1.1: 位元組=32 時間=9ms TTL=247
回覆自 168.95.1.1: 位元組=32 時間=9ms TTL=247
回覆自 168.95.1.1: 位元組=32 時間=9ms TTL=247
回覆自 168.95.1.1: 位元組=32 時間=9ms TTL=247

那如果這時做一個測試,只讓它測試到5顆路由器呢?
C:\>ping -a 168.95.1.1 -i 5

Ping dns.hinet.net [168.95.1.1] (使用 32 位元組的資料):
回覆自 220.128.2.110: TTL 在傳輸時到期。
回覆自 220.128.2.170: TTL 在傳輸時到期。
回覆自 220.128.4.82: TTL 在傳輸時到期。
回覆自 220.128.2.110: TTL 在傳輸時到期。

因為我只設定最多連經(路過)5顆路由器,所以會直接回應我到期(第6顆路由器看到封包中的ttl<=0,所以回應到期)
發表於 2012-5-28 08:23:13 | 顯示全部樓層
谢谢你的分享。
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-6 05:22 AM , Processed in 0.390509 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.