上一篇我們提到要做 host discovery,那麼該怎麼做呢?
一般做法是使用 ICMP,也就是最直覺的 ping,但在NMAP可以使用以下方式來「快速」地確認主機是否在線上,有些朋友會使用 nmap [目標主機] 的指令來確認設備是否在線,但當這個指令被執行時,他會送出四個封包和至少1000個port scan來確認開啟或使用中的 port 及服務,當我們只掃描一台的,問題看來不大,但當我們掃描整個網段時,所耗費的時間就不容小覷,而在這個講求效率的時代,使用 -sn 就可以立刻獲得設備是否在線或是他的 MAC 位址資訊,而不需要等待太久,以下為 **nmap [目標主機]**的範例,從下圖黃框可以看到,光是要確認一台設備是否在線,就等待了 40.54秒
如果使用 nmap –sn [目標主機] 只要 0.32 秒即可
或使用 nmap -sP [目標主機]也可以達成目的 (與 nmap –sn功能相同,應該新舊版本差異)
接下來我們使用 hping3進行測試:
送出5個ICMP封包到目標位址(-1為ICMP,-c 為送出的封包次數)
**hping3 -1 -c 5 [目標位址] **
從下圖的TTL,我們也可以用來判斷該設備「可能」為何種類型的作業系統,例如部分的Windows作業系統預設 TTL 為128,而Linux kernel 2.0.x 的ICMP 的TTL則是 64
在 Windows 2012 上開啟 WireShark 觀察收到的ICMP封包狀態
hping3 -1 是送出 ICMP 封包,除了 ping 之外,他還有其他的功用~幾個比較實用的參數先列給大家
-m (MTU)
-t (TTL)
-C (ICMP type)
-K (ICMP code)
好奇怎麼透過 TTL 判斷作業系統嗎? 我們~下一篇,見分明哦!