老鐵們!請落實這幾款小工具~
來自公眾號:菜鳥要飛
在實際開發過程中,熟練使用Linux或者Windows中相關網路工具,可以更快更准地找到故障。所以,今天就跟大家分享幾個實用的網路利器。
1 nc
nc-->「瑞士軍刀」。不知大家在滲透過程中,拿了shell有沒有使用nc搞點事兒。它用來快速構建網路鏈接,常用來調試客戶端程序。
nc參數
舉例
2 ping
用來實現對網路連通性探測。我們知道網路上機器有唯一確定的IP地址,給對方發送數據包,根據返回的信息初步判斷目標機器是否存在或者目標機器操作系統是啥。那麼,經常使用的ping,底層原理是什麼,是TCP/UDP?
ping
在具體實現中,其實使用了ICMP協議(網際控制報文協議),它是一種基於IP協議的控制協議。那麼,ICMP協議(網際控制報文協議),其報文什麼樣子呢?
下面分別闡述下欄位含義:
類型:表示ICMP的類型,如果為0表示請求類型,為8表示應答。
代碼:用來查找產生錯誤的原因。
校驗和:檢查錯誤的數據。
標識符:使用標識符確認到底是誰發送的控制協議。
序列號:唯一確定的一個報文。
ping命令組裝成上述的IP報文進行發送,報文目的地為ping目的地址,原地址為發送ping主機地址,然後按照ICMP的規則填寫數據。
隨後IP報文通過ARP協議,請求廣播到區域網絡上的所有主機,並接收返回消息,以此確定目標的物理地址。
查看詳細參數
ping參數
常用參數
[-l] :定義所發送數據包的大小,默認為32位元組。
[-n] :定義所發數據包的次數,默認為3次。
[-t] :表示不間斷向目標IP發送數據包。
TTL
TTL 是 IP 協議包中的一個值,它告訴網路路由器,包在網路中的時間是否太長而應被丟棄。
TTL設置時間越長,那麼緩存時間也就越長,更新也就越不容易生效。增大TTL可以節約域名解析時間從而加快網站的訪問
減小TTL值,減少更換空間時的不可訪問時間
返回值
Request timed out
可能出現的情況:
-對方已經關機或者根本沒有這個地址。
-可能不在同一個網段,即使通過路由也無法找到對方從而出現超時。
-對方存在但是設置了防火牆過濾。
Destination host Unreachable
可能出現的情況:
-與對方不在同一個網段且沒有設置默認路由
-網線出毛病
Bad IP address
可能出現的情況:
-IP地址不存在
-沒有正確連接DNS伺服器從而無法解析
3 ifconfig/ip addr
查看伺服器網卡、IP等信息。
ipaddr
上圖中被馬賽克的位置假設為10.172.100.3,這樣就是一個IP地址,IP地址按照小數點分割為四部分,每部分佔8位元組,所以IP地址為32位。
那麼,這樣的IP地址一共有多少呢?一共有2的32次方個,估算約為42.9億個,除去一些特用的IP和一些不能用的IP,剩下可用的不到40億。為解決網路地址資源不足的問題,從而出現IPV6,128位的IP地址。
剛開始覺得32位很夠用了,還將其分為5類,如下圖所示:
網路地址分類
我們再看看各類地址的主機數量是多少?
上圖中可知道C類地址太少了吧,但是B類地址又太多,怎麼中和一下嘞?
無類型域間選路
CIDR地址中包含標準的32位IP地址和有關網路前綴位數的信息。比如10.172.100.3/24,IP地址斜杠後面數字24,代表前24位是網路號,後面8位為主機號。
如何得到網路號?
使用IP地址和子網掩碼進行AND計算得到網路號。
4 tcpdump
和它類似的工具在windows中是wireshark,其採用底層庫winpcap/libpcap實現,採用了bpf過濾機制。下面我們看看提供的不同參數的含義。
tcpdump
知道了相關參數,下面看幾個案例。
5 lsof
列出當前系統打開的文件描述符工具,可以得知感興趣的描述符是被哪些進程使用。
同樣,我們看看相關參數:
lsof
舉例
6 netstat
netstat是一個網路信息統計工具。它可以得到網卡介面上全部鏈接、路由表信息、網卡介面信息等。通常在網路編程中我們用它來顯示TCP連接以及狀態信息。
下面列舉幾個常用例子。
7 dpkt
dpkt定義包packet類,它定義了網路報文類型的基礎類。其中IP、ICMP等繼承於dpkt class,每一個子類有一個_hdr_結構,此結構定義了不同報文的頭部,方便取出相應的控制欄位。示例如下:
8 scapy
注意哈,這個是嗅探包,不是爬蟲框架scrapy哈。看看官網怎麼說的,如「強大的互動式包操作工具」、「支持大量協議的包解析和包構造」、「輕鬆取代hping,85%的nmap,arpspoof,tcpdump等等」。不過歸根到底,它說的強大功能,都是基於Scapy是一個強大的網路數據包操作工具才能實現得了的。這裡只是大概介紹,具體用法官網非常詳細,有助於學習網路協議。