Linux中Netcat工具的使用方式
Netcat(nc)
是 Linux 類系統(tǒng)上非常實(shí)用的網(wǎng)絡(luò)工具,它能在網(wǎng)絡(luò)中讀寫數(shù)據(jù),如果配合使用其他工具和重定向,可以實(shí)現(xiàn)不少?gòu)?qiáng)大的功能
1. 安裝 Netcat
通常在不同的操作系統(tǒng)上使用對(duì)應(yīng)的軟件管理工具都能很方便地下載 nc
以下為 CentOS 操作系統(tǒng)的下載命令
sudo yum install nc -y
2. 常用參數(shù)
nc
常用的參數(shù)如下表所示,更多參數(shù)可以使用命令 nc -h
查看詳細(xì)信息
參數(shù) | 功能 |
---|---|
-l | 綁定監(jiān)聽本地端口,以服務(wù)端模式運(yùn)行 |
-k | 以服務(wù)端模式運(yùn)行時(shí),當(dāng)前連接結(jié)束后繼續(xù)監(jiān)聽 |
-n | 不使用 DNS 解析域名展示 |
-w | 指定連接動(dòng)作的超時(shí)時(shí)間,單位秒 |
-z | 使用 0 I/O 模式, 連接成功后立即關(guān)閉連接,不進(jìn)行數(shù)據(jù)傳輸,通常在端口掃描時(shí)使用 |
-u | 使用 udp 傳輸協(xié)議,不指定該參數(shù)默認(rèn)為 tcp |
-p | 指定本地主機(jī)與遠(yuǎn)端的通信端口 |
-r | 隨機(jī)選擇本地主機(jī)與遠(yuǎn)端的通信端口 |
-s | 設(shè)置本地主機(jī)送出數(shù)據(jù)包的網(wǎng)卡 IP,通??梢允褂?ifconfig 命令查看本地主機(jī)的網(wǎng)卡 IP |
3. 使用示例
3.1 端口掃描
nc
支持端口掃描功能,可用于發(fā)現(xiàn)一些在機(jī)器上開放的端口,以下為相關(guān)命令:
以 0 I/O 模式,使用 udp 協(xié)議掃描指定端口是否打開
nc -v -z -u -w 3 127.0.0.1 10086
掃描多個(gè)端口,默認(rèn)使用 tcp 協(xié)議
nc -v -z -w 3 127.0.0.1 10086 10087
掃描端口范圍,默認(rèn)使用 tcp 協(xié)議
nc -v -z -w 3 127.0.0.1 10086-10087
3.2 端口監(jiān)聽與連接
如果想要測(cè)試兩臺(tái)主機(jī)是否能夠通過某個(gè)開放端口聯(lián)通,可以在一臺(tái)機(jī)器上用 nc 監(jiān)聽該端口,然后在另一臺(tái)機(jī)器上用 nc 嘗試連接。
如果兩臺(tái)機(jī)器能夠正常連通的話,就可以相互發(fā)送數(shù)據(jù)并顯示
- 3.2.1 TCP 協(xié)議監(jiān)聽連接
服務(wù)端監(jiān)聽端口,一直保持監(jiān)聽
nc -l -k 127.0.0.1 10086
客戶端指定端口連接
nc -v -p 10087 127.0.0.1 10086
- 3.2.2 UDP 協(xié)議監(jiān)聽連接服務(wù)端監(jiān)聽端口,指定 udp 協(xié)議
nc -l -u 127.0.0.1 10086
客戶端連接服務(wù)端,指定 udp 協(xié)議
nc -v -u -p 10087 127.0.0.1 10086
3.3 文件傳輸
通過 nc
可以實(shí)現(xiàn)便捷的文件傳輸,只要配合相關(guān)命令將機(jī)器上的輸入輸出重定向即可
- 3.3.1 服務(wù)端接收客戶端文件
服務(wù)端啟動(dòng)監(jiān)聽,并重定向 nc 輸出到指定文件,則接收到的遠(yuǎn)端數(shù)據(jù)將被輸出到文件中
nc -l 127.0.0.1 10086 > fi.txt
客戶端連接服務(wù)端,重定向輸入為指定文件,則在連接上服務(wù)端時(shí)會(huì)將文件內(nèi)容發(fā)送出去
nc -v -p 10087 127.0.0.1 10086 < fi.txt
- 3.3.2 服務(wù)端發(fā)送文件到客戶端
服務(wù)端啟動(dòng)監(jiān)聽,重定向輸入為指定文件,則在客戶端連接上時(shí)會(huì)發(fā)送文件數(shù)據(jù)到遠(yuǎn)端
nc -l -k 127.0.0.1 10086 < fi.txt
客戶端連接服務(wù)端,重定向輸出到指定文件,則接收到服務(wù)端數(shù)據(jù)時(shí)會(huì)將其輸出到文件
nc -v -p 10087 127.0.0.1 10086 > fi.txt
- 3.3.3 使用 pv(Pipe Viewer)工具顯示文件傳輸進(jìn)度服務(wù)端重定向 nc 輸出到指定文件
nc -l 127.0.0.1 10086 > fi.txt
客戶端使用 pv 傳輸文件
如機(jī)器上沒有 pv 工具,使用包管理工具下載即可,CentOS 系統(tǒng)下載命令為 sudo yum install pv -y
pv fi.txt | nc -v 127.0.0.1 10086
- 3.3.4 打包傳輸文件夾
服務(wù)端通過 tar
命令打包文件夾,并將其輸出通過管道層層傳遞,將其重置為 nc 連接的輸入
tar -zvcf - test | pv | nc -l 127.0.0.1 10086
客戶端連接服務(wù)端,并通過 tar 命令拆包
nc -v -p 10087 127.0.0.1 10086 | pv | tar -zvxf -
3.4 shell 反彈
這部分可以參考 遠(yuǎn)程代碼執(zhí)行(RCE)漏洞 中反彈 shell 的段落,
實(shí)際上原理就是通過代碼執(zhí)行將被攻擊機(jī)器的輸入輸出重定向到遠(yuǎn)端,
遠(yuǎn)端攻擊者使用nc等工具完成滲透入侵
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
CentOS下命令行實(shí)現(xiàn)普通用戶和root用戶切換的實(shí)例
今天小編就為大家分享一篇CentOS下命令行實(shí)現(xiàn)普通用戶和root用戶切換的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06Linux系統(tǒng)下netstat命令詳細(xì)介紹
大家好,本篇文章主要講的是Linux系統(tǒng)下netstat命令詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12linux下安裝配置svn獨(dú)立服務(wù)器的步驟分享
subversion(以下簡(jiǎn)稱svn)是近年來崛起的版本管理工具,是cvs的接班人。 svn服務(wù)器有2種運(yùn)行方式:獨(dú)立服務(wù)器和借助apache。2種方式各有利弊2011-05-05CentOS6.5下Tomcat7 Nginx Redis配置步驟教程詳解
這篇文章主要介紹了CentOS6.5下Tomcat7 Nginx Redis配置步驟,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10使用networkctl查詢Linux中網(wǎng)絡(luò)鏈接狀態(tài)的方法
networkctl?是?systemd?網(wǎng)絡(luò)管理工具的一個(gè)命令行工具,它用于查看和管理網(wǎng)絡(luò)鏈接狀態(tài),在這篇文章中,我們將詳細(xì)介紹如何使用?networkctl?查詢和管理?Linux?系統(tǒng)中的網(wǎng)絡(luò)連接狀態(tài),需要的朋友可以參考下2024-05-05Ubuntu20.04安裝Python3的虛擬環(huán)境教程詳解
這篇文章主要介紹了Ubuntu20.04安裝Python3的虛擬環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06linux查看防火墻狀態(tài)與開啟關(guān)閉命令詳解
linux查看防火墻狀態(tài)與開啟關(guān)閉命令常用的有以下兩種方式,大家可以參考一下2018-03-03Linux解決rsyslog服務(wù)占用內(nèi)存過高的辦法
當(dāng)我們使用top命令查看內(nèi)存占用時(shí),發(fā)現(xiàn)rsyslogd內(nèi)存占用很高,所以接下來這篇文章給大家介紹了Linux解決rsyslog服務(wù)占用內(nèi)存過高的辦法,文中有詳細(xì)的圖文介紹,需要的朋友可以參考下2024-05-05C語(yǔ)言中 malloc,calloc,realloc的區(qū)別
這篇文章主要介紹了C語(yǔ)言中 malloc、calloc、realloc的區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-02-02