扣丁學(xué)堂剖析Linux系統(tǒng)之10個例子教你學(xué)會ncat命令
2018-01-04 10:53:52
1556瀏覽
今天扣丁學(xué)堂小編給大家整理了關(guān)于ncat或者說nc是一款功能類似cat的工具,但是是用于網(wǎng)絡(luò)的。它是一款擁有多種功能的CLI工具,可以用來在網(wǎng)絡(luò)上讀、寫以及重定向數(shù)據(jù)。它被設(shè)計成可以被腳本或其他程序調(diào)用的可靠的后端工具。同時由于它能創(chuàng)建任意所需的連接,因此也是一個很好的網(wǎng)絡(luò)調(diào)試工具。
ncat/nc既是一個端口掃描工具,也是一款安全工具,還能是一款監(jiān)測工具,甚至可以做為一個簡單的TCP代理。由于有這么多的功能,它被譽為是網(wǎng)絡(luò)界的瑞士軍刀。這是每個系統(tǒng)管理員都應(yīng)該知道并且掌握它。
在大多數(shù)Debian發(fā)行版中,nc是默認(rèn)可用的,它會在安裝系統(tǒng)的過程中自動被安裝。但是在CentOS7/RHEL7的最小化安裝中,nc并不會默認(rèn)被安裝。你需要用下列命令手工安裝。
[root@linuxtechi~]#yuminstallnmap-ncat-y
系統(tǒng)管理員可以用它來審計系統(tǒng)安全,用它來找出開放的端口然后保護這些端口。管理員還能用它作為客戶端來審計Web服務(wù)器、telnet服務(wù)器、郵件服務(wù)器等,通過nc我們可以控制發(fā)送的每個字符,也可以查看對方的回應(yīng)。
我們還可以用它捕獲客戶端發(fā)送的數(shù)據(jù)以此來了解這些客戶端是做什么的。
在本文中,我們會通過10個例子來學(xué)習(xí)如何使用nc命令。
例子:1)監(jiān)聽入站連接
通過-l選項,ncat可以進入監(jiān)聽模式,使我們可以在指定端口監(jiān)聽入站連接。完整的命令是這樣的:
$ncat-lport_number
比如,
$ncat-l8080
服務(wù)器就會開始在8080端口監(jiān)聽入站連接。
例子:2)連接遠(yuǎn)程系統(tǒng)
使用下面命令可以用nc來連接遠(yuǎn)程系統(tǒng),
$ncatIP_addressport_number
讓我們來看個例子,
$ncat192.168.1.10080
這會創(chuàng)建一個連接,連接到IP為192.168.1.100的服務(wù)器上的80端口,然后我們就可以向服務(wù)器發(fā)送指令了。比如我們可以輸入下面內(nèi)容來獲取完整的網(wǎng)頁內(nèi)容
GET/HTTP/1.1
或者獲取頁面名稱,
GET/HTTP/1.1
或者我們可以通過以下方式獲得操作系統(tǒng)指紋標(biāo)識,
HEAD/HTTP/1.1
這會告訴我們使用的是什么軟件來運行這個web服務(wù)器的。
例子:3)連接UDP端口
默認(rèn)情況下,nc創(chuàng)建連接時只會連接TCP端口。不過我們可以使用-u選項來連接到UDP端口,
$ncat-l-u1234
現(xiàn)在我們的系統(tǒng)會開始監(jiān)聽UDP的1234端口,我們可以使用下面的netstat命令來驗證這一點,
$netstat-tunlp|grep1234udp000.0.0.0:12340.0.0.0:*17341/ncudp600:::1234:::*17341/nc
假設(shè)我們想發(fā)送或者說測試某個遠(yuǎn)程主機UDP端口的連通性,我們可以使用下面命令,
$ncat-v-u{host-ip}{udp-port}
比如:
[root@localhost~]#ncat-v-u192.168.105.15053Ncat:Version6.40(http://nmap.org/ncat)Ncat:Connectedto192.168.105.150:53。
例子:4)將nc作為聊天工具
nc也可以作為聊天工具來用,我們可以配置服務(wù)器監(jiān)聽某個端口,然后從遠(yuǎn)程主機上連接到服務(wù)器的這個端口,就可以開始發(fā)送消息了。在服務(wù)器這端運行:
$ncat-l8080
在遠(yuǎn)程客戶端主機上運行:
$ncat192.168.1.1008080
之后開始發(fā)送消息,這些消息會在服務(wù)器終端上顯示出來。
例子:5)將nc作為代理
nc也可以用來做代理。比如下面這個例子,
$ncat-l8080|ncat192.168.1.20080
所有發(fā)往我們服務(wù)器8080端口的連接都會自動轉(zhuǎn)發(fā)到192.168.1.200上的80端口。不過由于我們使用了管道,數(shù)據(jù)只能被單向傳輸。要同時能夠接受返回的數(shù)據(jù),我們需要創(chuàng)建一個雙向管道。使用下面命令可以做到這點:
$mkfifo2way$ncat-l80800<2way|ncat192.168.1.200801>2way
現(xiàn)在你可以通過nc代理來收發(fā)數(shù)據(jù)了。
例子:6)使用nc拷貝文件
nc還能用來在系統(tǒng)間拷貝文件,雖然這么做并不推薦,因為絕大多數(shù)系統(tǒng)默認(rèn)都安裝了ssh/scp。不過如果你恰好遇見個沒有ssh/scp的系統(tǒng)的話,你可以用nc來作最后的努力。
在要接受數(shù)據(jù)的機器上啟動nc并讓它進入監(jiān)聽模式:
$ncat-l8080>file.txt
現(xiàn)在去要被拷貝數(shù)據(jù)的機器上運行下面命令:
$ncat192.168.1.1008080--send-only<data.txt
這里,data.txt是要發(fā)送的文件。-–send-only選項會在文件拷貝完后立即關(guān)閉連接。如果不加該選項,我們需要手工按下ctrl+c來關(guān)閉連接。
我們也可以用這種方法拷貝整個磁盤分區(qū),不過請一定要小心。
例子:7)通過nc創(chuàng)建后門
nc命令還可以用來在系統(tǒng)中創(chuàng)建后門,并且這種技術(shù)也確實被黑客大量使用。為了保護我們的系統(tǒng),我們需要知道它是怎么做的。創(chuàng)建后門的命令為:
$ncat-l10000-e/bin/bash
-e標(biāo)志將一個bash與端口10000相連?,F(xiàn)在客戶端只要連接到服務(wù)器上的10000端口就能通過bash獲取我們系統(tǒng)的完整訪問權(quán)限:
$ncat192.168.1.10010000
例子:8)通過nc進行端口轉(zhuǎn)發(fā)
我們通過選項-c來用nc進行端口轉(zhuǎn)發(fā),實現(xiàn)端口轉(zhuǎn)發(fā)的語法為:
$ncat-u-l80-c'ncat-u-l8080'
這樣,所有連接到80端口的連接都會轉(zhuǎn)發(fā)到8080端口。
例子:9)設(shè)置連接超時
nc的監(jiān)聽模式會一直運行,直到手工終止。不過我們可以通過選項-w設(shè)置超時時間:
$ncat-w10192.168.1.1008080
這回導(dǎo)致連接10秒后終止,不過這個選項只能用于客戶端而不是服務(wù)端。
例子:10)使用-k選項強制nc待命
當(dāng)客戶端從服務(wù)端斷開連接后,過一段時間服務(wù)端也會停止監(jiān)聽。但通過選項-k我們可以強制服務(wù)器保持連接并繼續(xù)監(jiān)聽端口。命令如下:
$ncat-l-k8080
現(xiàn)在即使來自客戶端的連接斷了也依然會處于待命狀態(tài)。
以上就是關(guān)于扣丁學(xué)堂
Linux視頻教程之10個例子教你學(xué)會ncat(nc)命令,最后扣丁學(xué)堂的Linux培訓(xùn)課程從基礎(chǔ)入門開始教,不論學(xué)員是否擁有基礎(chǔ)在扣丁學(xué)堂都能順利的學(xué)習(xí),扣丁學(xué)堂不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的
Linux培訓(xùn)視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)好Linux開發(fā)的小伙伴快快行動吧??鄱W(xué)堂Linux技術(shù)交流群:422345477。

關(guān)注微信公眾號獲取更多的學(xué)習(xí)資料
查看更多關(guān)于“Linux培訓(xùn)資訊”的相關(guān)文章>>
標(biāo)簽:
Linux命令
Linux視頻教程
Linux培訓(xùn)
Linux在線學(xué)習(xí)
Linux在線視頻