netcat被譽為網絡安全界的‘瑞士軍刀’,一個簡單而有用的工具,透過使用TCP或UDP協議的網絡連接去讀寫數據。它被設計成一個穩定的后門工具,能夠直接由其它程序和腳本輕松驅動。同時,它也是一個功能強大的網絡調試和探測工具,能夠建立你需要的幾乎所有類型的網絡連接。
一、基本使用
想要連接到某處: nc [-options] hostname port[s] [ports] …
綁定端口等待連接: nc -l port [-options] [hostname] [port]
參數:
-h 幫助信息
-l 監聽模式,用於入站連接
-n 指定數字的IP地址,不能用hostname
-u UDP模式
-t TCP模式(默認模式)
-v 詳細輸出——用兩個-v可得到更詳細的內容
-w secs timeout的時間
-z 將輸入輸出關掉——用於掃描時
其中端口號可以指定一個或者用lo-hi式的指定范圍。
1)掃描端口
tcp掃描
nc -v -z -w2 192.168.1.131 1-30
udp掃描
nc -u -v -z -w2 192.168.1.131 1-30
2)連接到遠程主機,例子:
格式:nc -nv 192.168.x.x 80
講解:連到 192.168.x.x 的 TCP80 端口
3)監聽LOCAL主機,例子:
格式:nc -l 80
講解:監聽本機的 TCP80 端口
4)掃描遠程主機,例子:
格式:nc -nv -w2 -z 192.168.x.x 80-445
講解:掃描 192.168.x.x 的 TCP8 0到 TCP445 的所有端口
5)兩台linux主機間傳送數據
Linux A:192.168.1.131
Linux B:192.168.1.132
現在需要從B主機上傳輸一個文件file_b到B主機上,那么操作方法如下所示:
在A主機上:nc -d -l 1000 > /data/file_out &(啟動端口監聽)
在B主機上:nc 192.168.1.131 1000 < file_in(從A主機上啟動的監聽端口傳送數據)
文件傳輸完畢后,系統會自動斷開連接。
從上面來看,它其實是一個很簡單的Server/Client模式,服務器端開啟偵聽端口,並用輸入輸出重定向到一個文件file.out當中,等待客戶端的連接。
客戶端主動連接主機,並和它建立一個Socket連接,然后把傳輸的文件重定向到數據流當中。