10 个例子教你学会 ncat (nc) 命令 | Linux 中国

原创 2018年01月01日 00:00:00
640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。-- Pradeep Kumar


本文导航◈ 例子: 1) 监听入站连接18%◈ 例子: 2) 连接远程系统23%◈ 例子: 3) 连接 UDP 端口34%◈ 例子: 4) 将 nc 作为聊天工具46%◈ 例子: 5) 将 nc 作为代理53%◈ 例子: 6) 使用 nc 拷贝文件61%◈ 例子: 7) 通过 nc 创建后门72%◈ 例子: 8) 通过 nc 进行端口转发80%◈ 例子: 9) 设置连接超时84%◈ 例子: 10) 使用 -k 选项强制 nc 待命88%编译自 | https://www.linuxtechi.com/nc-ncat-command-examples-linux-systems/ 
 作者 | Pradeep Kumar
 译者 | lujun9972

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

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

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

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

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

我们还可以用它捕获客户端发送的数据以此来了解这些客户端是做什么的。

在本文中,我们会通过 10 个例子来学习如何使用 nc 命令。

例子: 1) 监听入站连接

通过 -l 选项,ncat 可以进入监听模式,使我们可以在指定端口监听入站连接。 完整的命令是这样的:

  1. $ ncat -l port_number

比如,

  1. $ ncat -l 8080

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

例子: 2) 连接远程系统

使用下面命令可以用 nc 来连接远程系统,

  1. $ ncat IP_address port_number

让我们来看个例子,

  1. $ ncat 192.168.1.100 80

这会创建一个连接,连接到 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 -l -u 1234

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

  1. $ netstat -tunlp | grep 1234

  2. udp           0          0 0.0.0.0:1234                 0.0.0.0:*               17341/nc

  3. udp6          0          0 :::1234                      :::*                    17341/nc

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

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

比如:

  1. [root@localhost ~]# ncat -v -u 192.168.105.150 53

  2. Ncat: Version 6.40 ( http://nmap.org/ncat )

  3. Ncat: Connected to 192.168.105.150:53

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

nc 也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:

  1. $ ncat -l 8080

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

  1. $ ncat 192.168.1.100 8080

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

例子: 5) 将 nc 作为代理

nc 也可以用来做代理。比如下面这个例子,

  1. $ ncat -l 8080 | ncat 192.168.1.200 80

所有发往我们服务器 8080 端口的连接都会自动转发到 192.168.1.200 上的 80 端口。 不过由于我们使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,我们需要创建一个双向管道。 使用下面命令可以做到这点:

  1. $ mkfifo 2way

  2. $ ncat -l 8080 0<2way | ncat 192.168.1.200 80 1>2way

现在你可以通过 nc 代理来收发数据了。

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

nc 还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 ssh/scp。 不过如果你恰好遇见个没有 ssh/scp 的系统的话, 你可以用 nc 来作最后的努力。

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

  1. $ ncat -l  8080 > file.txt

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

  1. $ ncat 192.168.1.100 8080 --send-only < data.txt

这里,data.txt 是要发送的文件。 -–send-only 选项会在文件拷贝完后立即关闭连接。 如果不加该选项, 我们需要手工按下 ctrl+c 来关闭连接。

我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心。

例子: 7) 通过 nc 创建后门

nc 命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。 为了保护我们的系统,我们需要知道它是怎么做的。 创建后门的命令为:

  1. $ ncat -l 10000 -e /bin/bash

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

  1. $ ncat 192.168.1.100 10000

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

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

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

这样,所有连接到 80 端口的连接都会转发到 8080 端口。

例子: 9) 设置连接超时

nc 的监听模式会一直运行,直到手工终止。 不过我们可以通过选项 -w 设置超时时间:

  1. $ ncat -w 10 192.168.1.100 8080

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

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

当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k 我们可以强制服务器保持连接并继续监听端口。 命令如下:

  1. $ ncat -l -k 8080

现在即使来自客户端的连接断了也依然会处于待命状态。

自此我们的教程就完了,如有疑问,请在下方留言。


via: https://www.linuxtechi.com/nc-ncat-command-examples-linux-systems/

作者:Pradeep Kumar[2] 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者0?wx_fmt=pnglujun9972 ? ? ? ?共计翻译:42 篇贡献时间:34 天

推荐文章

< 左右滑动查看相关文章 >

0?wx_fmt=png0?wx_fmt=png0?wx_fmt=png0?wx_fmt=png0?wx_fmt=gif0?wx_fmt=gif

点击图片、输入文章 ID 或识别二维码直达

原文链接请访问“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。



版权声明:本文为博主原创文章,未经博主允许不得转载。

CentOS-7下的NC探测端口命令

一、水土不服生产环境CENTOS6 升级 7后, 发现nc命令的脚本不生效, 原本nc -z 1.1.1.1 80 失效了紧急恶补了一下nc命令. 二、失败提示:[root@NOTEBOOK-VM-C...
  • soshow2011
  • soshow2011
  • 2018年01月19日 15:02
  • 168

netcat nc ncat

发送 netcat -lk host port nc -lk host port ncat -lk host port 接收 ncat host port
  • haohaizijhz
  • haohaizijhz
  • 2017年06月09日 12:35
  • 283

Centos7 安装netcat

1、下载 下载地址:https://sourceforge.net/projects/netcat/files/netcat/0.7.1/ 下载的是netcat-0.7.1.tar.gz版本 2、...
  • sinat_34931550
  • sinat_34931550
  • 2017年10月16日 22:22
  • 320

NC(netcat)应用全记录<持续更新>

1. 连接tianya.cn(MIME欺骗) $ nc -nvv 221.11.172.178 80 Connection to 221.11.172.178 80 port [tcp/*] succ...
  • ccwwff
  • ccwwff
  • 2015年08月19日 19:27
  • 2213

Linux和Windows下的NC(Netcat)命令测试端口连通性

Linux和Windows下使用NC(Netcat)命令测试端口连通性
  • Zhanglihe992
  • Zhanglihe992
  • 2017年11月24日 16:50
  • 573

nc在centos7上的安装和简单使用

 安装: yum install nmap-ncat.x86_64 cat 123 |nc 192.168.1.10 8888 将标准输入转发到192.168.1.10的8888端...
  • qq_16414307
  • qq_16414307
  • 2015年12月14日 10:27
  • 12096

一些常用linux网络工具的经验共享--Tcpdump,Nmap,Netstat,nc

Tcpdump-转储网络上的数据流 Tcpdump能够截获当前所有通过本机网卡的数据包。它拥有灵活的过滤机制,可以确保得到想要的数据。由于Tcpdump 只能收集通过本机的数据,因此它的应用受到了...
  • turkeyzhou
  • turkeyzhou
  • 2011年03月07日 13:25
  • 4345

【安全牛学习笔记】基本工具-远程控制、NCAT、WIRESHARK、WIRESHARK-筛选器、常见协议

【安全牛学习笔记】基本工具-远程控制、NCAT、WIRESHARK、WIRESHARK-筛选器、常见协议 NC-----远程控制 正向:     A: n  -lp 333 - ...
  • edu_aqniu
  • edu_aqniu
  • 2017年09月10日 00:37
  • 361

Kali linux下ncat 使用详解

NCAT 的意思就是 连接和重定向套接字(Concatenate and redirect sockets) 使用方法呢也是ncat [OPTIONS...] [hostname] [port] ...
  • isinstance
  • isinstance
  • 2016年01月07日 22:57
  • 5703

Linux nc 命令详解

原文 https://www.oschina.net/translate/linux-netcat-command netcat是网络工具中的瑞士军刀,它能通过T...
  • zhangxiao93
  • zhangxiao93
  • 2016年09月29日 22:44
  • 22086
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:10 个例子教你学会 ncat (nc) 命令 | Linux 中国
举报原因:
原因补充:

(最多只允许输入30个字)