头图

Ncat工具功能类似于cat命令,但用于网络。它是一个命令行的工具,用于跨网络读取、写入和重定向数据。它被设计成一个可靠的后端工具,可以与脚本或其他程序一起使用。
ncat可以是端口扫描工具,安全工具或监视工具,并且还是简单的TCP代理。由于它具有许多功能,因此被称为网络瑞士军刀。它是每个系统管理员都应该了解工具之一。

系统环境
Centos8

如何安装ncat
在Centos7/8系统中ncat安装包名称为nmap-ncat

[root@server1 ~]# yum -y install nmap-ncat
一、检查TCP的80端口的连接
此示例我们将检查主机名为DCserver的80端口连接。

[root@server1 ~]# nc -vz DCserver 80
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.0.6:80.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
ncat命令使用实例ncat命令使用实例
-z选项为“Zero - I/O 模式”,用于检查连接状态。

二、创建一个监听端口
下面命令可以创建一个tcp监听端口:

[root@server1 ~]# nc -vl 1234
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234
ncat命令使用实例ncat命令使用实例
使用netstat -tlunp查看一下:
ncat命令使用实例ncat命令使用实例
在另一台主机中,使用nc命令测试一下该端口的连接:

[root@server1 ~]# nc -vz 192.168.43.131 1234
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.43.131:1234.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
ncat命令使用实例ncat命令使用实例
然后返回到侦听端,可以看到来自192.168.43.131的45568端口连接侦听端的1234端口。

[root@server1 ~]# nc -vl 1234
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234
Ncat: Connection from 192.168.43.131.
Ncat: Connection from 192.168.43.131:45568.
ncat命令使用实例ncat命令使用实例
可以使用-k选项,让侦听端保持打开状态。

三、作为聊天工具
ncat可以用作聊天工具,我们将服务器配置侦听端口,远程主机连接服务器的同一端口并发送消息。在服务器端,运行下面命令开启侦听端口:

[root@qdzabbix ~]# ncat -l 8080
在远程主机中运行下面命令,并且在下面输入聊天内容,按回车发送,在服务端可以看到消息内容了。

[root@server1 ~]# ncat 192.168.0.12 8080
Hello qdzabbix
ncat命令使用实例ncat命令使用实例
下面在服务端和远程主机都可以看到消息内容。
ncat命令使用实例ncat命令使用实例
想要退出,只需要按Ctrl + c就可以。

四、检查SSH软件版本
可以使用nc命令通过将EXIT命令发送到ssh的22端口上,来检查服务器软件版本,如下所示:

[root@server1 ~]# echo "EXIT" | nc 192.168.43.131 22
SSH-2.0-OpenSSH_7.8
Protocol mismatch.
ncat命令使用实例ncat命令使用实例

五、使用ncat创建后门
可以使用ncat命令创建后门。此功能主要由黑客使用。可以这样运行命令,在服务端执行下面一条命令:

[root@qdzabbix ~]# nc -l 5566 -e /bin/bash
ncat命令使用实例ncat命令使用实例
-e选项后面指定运行的命令。现在客户端可以连接到服务器上的端口5566,并且可以通过运行以下命令通过bash完全访问我们的系统:

[root@server1 ~]# nc qdzabbix 5566
ls
anaconda-ks.cfg
a.txt
batch
Customer_Supplied_Tickets
custom_resolv.conf
下图中红线圈出来的就是执行的命令。
ncat命令使用实例ncat命令使用实例

六、使用ncat运行带有静态页面的Web服务器
可以在本地主机上使用ncat命令启动Web服务器,这将打开静态网页面sample.html。你可以运行如下命令:

首先将下面内容保存到/root/sample.html文件中。

[root@qdzabbix ~]# vim /root/sample.html

<html>

    <head>
            <title>Test Page</title>
    </head>
    <body>
            <h1>Level 1 header</h1>
            <h2>Subheading</h2>
            <p>Normal text here</p>
    </body>

</html>
ncat命令使用实例ncat命令使用实例
然后执行下面命令:

[root@qdzabbix ~]# while true; do nc -l -p 80 < /root/sample.html ; done
上面命令中,-p 88选项指定源端口为80。
ncat命令使用实例ncat命令使用实例
在浏览器中访问,可以看到页面内容。

总结
ncat工具可以帮助你从使用telnet进行连通性测试切换到使用ncat测试连通性。


刘遄
25 声望17 粉丝

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。