天天看點

linux下nc神器簡介

nc在Linux和windows下的安裝

  netcat(簡稱nc)被譽為網絡安全界的‘瑞士軍刀’,相信很多人都認識它吧。它是一個簡單但實用的工具,通過使用TCP或UDP協定的網絡連接配接去讀寫資料。它被設計成一個穩定的後門工具, 能夠直接由其它程式和腳本輕松驅動。同時,它也是一個功能強大的網絡調試和探測工具,能夠建立你需要的幾乎所有類型的網絡連接配接,還有幾個很有意思的内置功能。

  nc在linux下一般為自帶軟體,是以不用安裝。nc在windows下也自帶,可以使用netstat指令查詢

nc功能簡介

名稱:netcat指令在linux中别名為nc

作用:支援任意的TCP和UDP連接配接,監聽和讀寫

描述:nc功能支援的協定通常包括TCP和UDP,它可以打開TCP連接配接,發送UDP資料包,監聽任意的TCP或UDP端号,掃描端口,以及處理IPv4和IPv6,與telnet不同的是,nc腳本更精緻,分離錯誤資訊進入标準的錯誤代替發送他們到标準的輸出

常用的功能:

(1)簡單的TCP代理服務

(2)shell腳本實作基于HTTP用戶端和服務端

(3)網絡守護程序測試

(4)可以給ssh做HTTP代理或者連結

(5)還有更多的功能,完全取決于你如何使用

參數詳解:

-4:強制nc使用IPv4位址

-6:強制nc使用IPv6位址

-D:開啟socket的調試模式

-d:關閉讀取來自标準輸入的功能

-h:列印nc幫助資訊

-i:指定一個延時時間在每行資料發送和接受之間,在連接配接,發送,掃描多個端口時也會導緻延時

-k:強制nc去保持監聽另一個連接配接,在它目前的連接配接完成時,必須配置-l使用否則會報錯

-l:開啟監聽服務

-n:在指定的位址,端口,主機上,不做DNS或者服務查找

-p:指定為遠端連接配接指定一個本地端口

-r:随機的遠端端口

-S:激活TCP的md5簽名選項

-s:指定本地位址

-T:設定服務的ip類型

-C:設定回車符為行結束符标志

-t:telnet應答

-u:開啟UDP模式

-v:詳細資訊

-w:指定逾時時間

-X:代理協定

-x: 指定一個代理ip:port

-z: 關閉I/O讀寫,使用掃描模式

案例場景:

(1)簡單聊天

伺服器1-》192.168.1.120:nc -l 1234

伺服器2-》192.168.1.120:nc 192.168.1.120 1234

建立連接配接後,即可發送消息,隻支援兩個終端使用

(2)模拟telnet遠端登入伺服器

server:nc -l 1234 -e bash

client : 192.168.1.121 1234

然後就類似于ssh遠端登入了,雖然功能有限,但還是很強大的

如果不支援-e參數,也可以建立遠端登入:

使用mkfifo指令建立有名管道:

服務端:

mkfifo /tmp/tmp_fifo

cat /tmp/tmp_fifo | /bin/bash -i 2>&1 | nc -l 2222 > /tmp/tmp_fifo

用戶端:

nc -n 172.31.100.7 2222

然後就遠端登入成功了

過程如下:

(1)從網絡收到指令寫入fifo檔案中

(2)cat指令讀取fifo檔案,并且發送到bash指令

(3)bash執行完的結果發送給nc

(4)nc通過網絡把内容發送給用戶端

這樣一來看起來就非常逼真了

(3)端口掃描

端口掃描,常用系統管理者和黑客用來發現一些機器上的開放端口,幫助識别系統上的漏洞

nc -z -v -n 192.168.1.212 20-25

z參數告訴netcat開啟靜默模式,連接配接成功後,立即關閉連接配接,不進行資料互動

v參數,使用詳細輸出

n參數,不要使用DNS反向查詢IP位址的域名

發現有開放的端口,可以使用nc -v ip port 連結,并檢視banner資訊

(4)檔案傳輸

檔案發送方:nc -l 2222 < ac 阻塞等待

檔案接收方: nc -n 192.168.1.212 2222 > bx 讀取寫入bx檔案中

(5)目錄傳輸:

目錄傳輸前,需要壓縮整個目錄

發送方:tar -zcvf -dir_name | nc -l 2222

接收方:nc -n 192.168.1.212 | tar -xvf - 接收并解壓

如果想節省寬帶:

發送方:tar -zcvf -dir_name | bzip2 -z | nc -l 2222

接收方:nc -n 192.168.1.212 | bzip2 -d |tar -xvf - 接收并解壓

(6)加密傳輸:

發送方使用mcrypt加密: nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt

接收方使用mycrpt解密:mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567

使用任何加密方式都行,執行上述需要輸入密碼,確定使用一樣的密碼

(7)流視訊:

服務方:cat video.avi | nc -l 2222

接收讀入并輸出到播放器裡面: nc ip 2222 | mplayer -vo x11 -cache 4000 -

(8)指定用戶端端号用于通訊

服務方:nc -l 2222

客戶方: nc ip 2222 -p 23

1024以内的端口需要root權限,預設随機産生一個端口

(9)指定源位址:

如果你的機器有多個網卡,那麼可以指定位址,用于通信:

服務方: nc -u -l 2222 < file

客戶方: nc -u 服務方ip 2222 -s 客戶方多ip中一個 > file

繼續閱讀