【Linux】一步一步学Linux——ncat命令(159)
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項
- 04. 參考示例
- 05. 附錄
01. 命令概述
ncat命令有著網絡界的瑞士軍刀美譽。因為它短小精悍、功能實用,被設計為一個簡單、可靠的網絡工具
ncat的作用
(1)實現任意TCP/UDP端口的偵聽,nc可以作為server以TCP或UDP方式偵聽指定端口
(2)端口的掃描,nc可以作為client發起TCP或UDP連接
(3)機器之間傳輸文件
(4)機器之間網絡測速
02. 命令格式
格式:ncat [選項] [參數]03. 常用選項
-g<網關>:設置路由器躍程通信網關,最多設置8個; -G<指向器數目>:設置來源路由指向器,其數值為4的倍數; -h:在線幫助; -i<延遲秒數>:設置時間間隔,以便傳送信息及掃描通信端口; -l:使用監聽模式,監控傳入的資料; -n:直接使用ip地址,而不通過域名服務器; -o<輸出文件>:指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存; -p<通信端口>:設置本地主機使用的通信端口; -r:指定源端口和目的端口都進行隨機的選擇; -s<來源位址>:設置本地主機送出數據包的IP地址; -u:使用UDP傳輸協議; -v:顯示指令執行過程; -w<超時秒數>:設置等待連線的時間; -z:使用0輸入/輸出模式,只在掃描通信端口時使用。04. 參考示例
4.1 啟動TCP服務端,端口為9999
[root@localhost ~]# ncat -l 9999或者
[deng@localhost ~]$ ncat -v -lp 9999 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::9999 Ncat: Listening on 0.0.0.0:99994.2 啟動TCP客戶端連接服務端
[root@localhost ~]# ncat 172.16.0.51 10086或者
[deng@localhost ~]$ nc -v 172.16.0.76 9999 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.16.0.76:9999. hello itcast服務端 IP:172.16.0.76
端口號:10086
4.3 啟動UDP服務端,端口9999
[deng@localhost ~]$ ncat -lu 99994.4 啟動UDP客戶端連接UDP服務端
[deng@localhost ~]$ ncat -u 172.16.0.51 10086 hello worldUDP服務端IP:172.16.0.51
UDP服務端端口:10086
4.5 作為客戶端工具進行端口探測
[deng@localhost ~]$ ncat -vzw 2 172.16.0.76 10086 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.16.0.76:10086. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds. [deng@localhost ~]$或者
[deng@localhost ~]$ ncat -vz -w 2 172.16.0.76 10086 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.16.0.76:10086. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds. [deng@localhost ~]$-v可視化,-z掃描時不發送數據,-w超時幾秒,后面跟數字
4.6 掃描連續端口
服務端執行
[deng@localhost ~]$ ncat -l 10086 & [1] 77654 [deng@localhost ~]$ ncat -l 10087 & [2] 77659 [deng@localhost ~]$客戶端執行
[deng@localhost ~]$ ncat -vzw 2 172.16.0.76 10086-100874.7 使用ncat傳輸文件
服務端執行
[deng@localhost ~]$ ncat -l 1234 > txt [deng@localhost ~]$客戶端執行
[root@localhost ~]# ncat 172.16.0.76 1234 < /etc/passwd [root@localhost ~]#4.8 設置本地端口連接服務端
[root@localhost ~]# ncat -p 1234 -w 5 172.16.0.76 8888 hello world4.9 模擬http協議首部
[root@localhost ~]# ncat www.baidu.com 804.10 掃描80端口
[root@localhost ~]# ncat -nv 172.16.0.76 80 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connection refused. [root@localhost ~]#4.11 掃描UDP端口
[root@localhost ~]# ncat -u -z -w 2 172.16.0.76 1-1000 [root@localhost ~]#4.12 掃描TCP端口
[root@localhost ~]# ncat -z -w 2 172.16.0.76 1-1000 [root@localhost ~]#4.13 傳輸目錄
服務端
[root@localhost ~]# ncat -l 1234 | tar -xzvf -客戶端
[deng@localhost ~]$ tar -czvf - /etc | ncat 172.16.0.76 12344.14 執行shell命令
我們可以使用遠程shell-使用telnet和ssh,但是如果這兩個命令沒有安裝并且我們沒有權限安裝他們,我們也可以使用netcat創建遠程shell。
ncat支持 -c -e 參數
服務端
[deng@localhost ~]$ ncat -v -c /bin/bash -lp 9999 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::9999 Ncat: Listening on 0.0.0.0:9999 Ncat: Connection from 172.16.0.76. Ncat: Connection from 172.16.0.76:22730.客戶端
[deng@localhost ~]$ ncat -v 172.16.0.76 9999 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.16.0.76:9999. ls4.15 執行shell
如果ncat不支持-c 或者 -e 參數(openbsd ncat),我們仍然能夠創建遠程shell
服務端
[deng@localhost ~]$ mkfifo /tmp/fifo [deng@localhost ~]$ cat /tmp/fifo | /bin/bash -i 2>&1 | nc -v -lp 9999 > /tmp/fifo Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::9999 Ncat: Listening on 0.0.0.0:9999 Ncat: Connection from 172.16.0.76. Ncat: Connection from 172.16.0.76:22732.這里我們創建了一個fifo文件,然后使用管道命令把這個fifo文件內容定向到shell 2>&1中。是用來重定向標準錯誤輸出和標準輸出,然后管道到ncat運行的端口9999上。至此,我們已經把ncat的輸出重定向到fifo文件中。
說明:
從網絡收到的輸入寫到fifo文件中
cat 命令讀取fifo文件并且其內容發送給bash命令
bash命令進程受到輸入并把它寫回到ncat。
ncat通過網絡發送輸出到client
至于為什么會成功是因為管道使命令平行執行,fifo文件用來替代正常文件,因為fifo使讀取等待而如果是一個普通文件,cat命令會盡快結束并開始讀取空文件。
客戶端
[deng@localhost ~]$ ncat 172.16.0.76 9999 [deng@localhost ~]$ pwd pwd /home/deng [deng@localhost ~]$4.16 反向shell
反向shell是指在客戶端打開的shell。反向shell這樣命名是因為不同于其他配置,這里服務器使用的是由客戶提供的服務。
服務端
[deng@localhost ~]$ ncat -v -lp 9999 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::9999 Ncat: Listening on 0.0.0.0:9999 Ncat: Connection from 172.16.0.76. Ncat: Connection from 172.16.0.76:22736. pwd /home/deng客戶端
[deng@localhost ~]$ ncat -v 172.16.0.76 9999 -c /bin/bash Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.16.0.76:9999.反向shell經常被用來繞過防火墻的限制,如阻止入站連接。
4.17 指定源端口
使用-p選項指定源端口。
服務端
[deng@localhost ~]$ ncat -v -lp 9998 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::9998 Ncat: Listening on 0.0.0.0:9998 Ncat: Connection from 172.16.0.76. Ncat: Connection from 172.16.0.76:9999.客戶端
[deng@localhost ~]$ ncat -v 172.16.0.76 9998 -p 9999 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.16.0.76:9998.4.18 指定源地址
假設你的機器有多個地址,希望明確指定使用哪個地址用于外部數據通訊。我們可以在ncat中使用-s選項指定ip地址
服務端
[deng@localhost ~]$ ncat -v -lp 9998 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::9998 Ncat: Listening on 0.0.0.0:9998 Ncat: Connection from 172.16.0.76. Ncat: Connection from 172.16.0.76:15827. hello world客戶端
[deng@localhost ~]$ ncat -v 172.16.0.76 9998 -s 172.16.0.76 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.16.0.76:9998. hello world05. 附錄
參考:【Linux】一步一步學Linux系列教程匯總
參考:https://www.jianshu.com/p/9c2d8b1f0c5a
總結
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——ncat命令(159)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】一步一步学Linux——i
- 下一篇: 【Linux】一步一步学Linux——d