歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux Netcat 命令使用基礎教程

netcat是網絡工具中的瑞士軍刀,它能通過TCP和UDP在網絡中讀寫數據。通過與其他工具結合和重定向,你可以在腳本中以多種方式使用它。使用netcat命令所能完成的事情令人驚訝。

netcat所做的就是在兩台電腦之間建立鏈接並返回兩個數據流,在這之後所能做的事就看你的想像力了。你能建立一個服務器,傳輸文件,與朋友聊天,傳輸流媒體或者用它作為其它協議的獨立客戶端。

下面是一些使用netcat的例子.

[A(172.31.100.7) B(172.31.100.23)]

Linux netcat 命令實例:

1.端口掃描
端口掃描經常被系統管理員和黑客用來發現在一些機器上開放端口,幫助他們識別系統中的漏洞。


$nc -z -v -n 172.31.100.7 21-25

可以運行在TCP或者UDP模式,默認是TCP,-u參數調整為udp.z 參數告訴netcat使用0 IO,指的是一旦連接關閉,不進行數據交換(譯者注:這裡翻譯不准,如有其它更好的,請指出)

v 參數指使用冗余選項(譯者注:即詳細輸出)

n 參數告訴netcat 不要使用DNS反向查詢IP地址的域名

這個命令會打印21到25 所有開放的端口。Banner是一個文本,Banner是一個你連接的服務發送給你的文本信息。當你試圖鑒別漏洞或者服務的類型和版本的時候,Banner信息是非常有用的。但是,並不是所有的服務都會發送banner。

一旦你發現開放的端口,你可以容易的使用netcat 連接服務抓取他們的banner。


$nc -v 172.31.100.7 21

netcat 命令會連接開放端口21並且打印運行在這個端口上服務的banner信息。


2.Chat Server
假如你想和你的朋友聊聊,有很多的軟件和信息服務可以供你使用。但是,如果你沒有這麼奢侈的配置,比如你在計算機實驗室, 所有的對外的連接都是被限制的,你怎樣和整天坐在隔壁房間的朋友溝通那?不要郁悶了,netcat提供了這樣一種方法,你只需要創建一個Chat服務器, 一個預先確定好的端口,這樣子他就可以聯系到你了。

Server


$nc -l 1567

netcat 命令在1567端口啟動了一個tcp 服務器,所有的標准輸出和輸入會輸出到該端口。輸出和輸入都在此shell中展示。

Client


$nc 172.31.100.7 1567

不管你在機器B上鍵入什麼都會出現在機器A上。


3.文件傳輸
大部分時間中,我們都在試圖通過網絡或者其他工具傳輸文件。有很多種方法,比如FTP,SCP,SMB等等,但是當你只是 需要臨時或者一次傳輸文件,真的值得浪費時間來安裝配置一個軟件到你的機器上嘛。假設,你想要傳一個文件file.txt 從A 到B。A或者B都可以作為服務器或者客戶端,以下,讓A作為服務器,B為客戶端。

Server


$nc -l 1567 < file.txt

Client
$nc -n 172.31.100.7 1567 > file.txt

這裡我們創建了一個服務器在A上並且重定向netcat的輸入為文件file.txt,那麼當任何成功連接到該端口,netcat會發送file的文件內容。在客戶端我們重定向輸出到file.txt,當B連接到A,A發送文件內容,B保存文件內容到file.txt.

沒有必要創建文件源作為Server,我們也可以相反的方法使用。像下面的我們發送文件從B到A,但是服務器創建在A上,這次我們僅需要重定向netcat的輸出並且重定向B的輸入文件。

B作為Server

Server


$nc -l 1567 > file.txt

Client
nc 172.31.100.23 1567 < file.txt


4.目錄傳輸
發送一個文件很簡單,但是如果我們想要發送多個文件,或者整個目錄,一樣很簡單,只需要使用壓縮工具tar,壓縮後發送壓縮包。

如果你想要通過網絡傳輸一個目錄從A到B。

Server


$tar -cvf – dir_name | nc -l 1567

Client
$nc -n 172.31.100.7 1567 | tar -xvf -

這裡在A服務器上,我們創建一個tar歸檔包並且通過-在控制台重定向它,然後使用管道,重定向給netcat,netcat可以通過網絡發送它。在客戶端我們下載該壓縮包通過netcat 管道然後打開文件。

如果想要節省帶寬傳輸壓縮包,我們可以使用bzip2或者其他工具壓縮。

Server


$tar -cvf – dir_name| bzip2 -z | nc -l 1567

通過bzip2壓縮

Client


$nc -n 172.31.100.7 1567 | bzip2 -d |tar -xvf -

使用bzip2解壓


5.加密你通過網絡發送的數據
如果你擔心你在網絡上發送數據的安全,你可以在發送你的數據之前用如mcrypt的工具加密。

服務端


$nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt

使用mcrypt工具加密數據。客戶端
$mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567

使用mcrypt工具解密數據。以上兩個命令會提示需要密碼,確保兩端使用相同的密碼。

這裡我們是使用mcrypt用來加密,使用其它任意加密工具都可以。


6.流視頻
雖然不是生成流視頻的最好方法,但如果服務器上沒有特定的工具,使用netcat,我們仍然有希望做成這件事。

服務端

Copyright © Linux教程網 All Rights Reserved