币安下载

Binance币安交易所

全球最大加密货币交易所,注册100%可领取100USDT奖励!通过本站注册不仅可以享受手续费折扣同时有机会获得币安周边

点击注册 更多线路

更多交易所入口

一站式注册各大交易所、点击进入加密世界、永不失联,币安Binance/欧易OKX/GATE.IO芝麻开门/Bitget/抹茶MEXC/火币Huobi

点击进入 永不失联


ncat命令使用实例


                
Ncat工具功能类似于cat 命令 ,但用于网络。它是一个 命令 行的工具,用于跨网络读取、写入和重定向数据。它被设计成一个可靠的后端工具,可以与 脚本 或其他程序一起使用。
  
ncat可以是端口扫描工具,安全工具或监视工具,并且还是简单的TCP代理。由于它具有许多功能,因此被称为网络瑞士军刀。它是每个系统管理员都应该了解工具之一。
  
  系统环境
  
  Centos 8
  
  如何安装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 (  )
  
Ncat: Connected to 192.168.0.6:80.
  
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
                                          
-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
                                          
使用netstat -tlunp查看一下:
                                          
在另一台主机中,使用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.
                                          
然后返回到侦听端,可以看到来自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.
                                          
可以使用-k选项,让侦听端保持打开状态。
  
  三、作为聊天工具
  
ncat可以用作聊天工具,我们将服务器配置侦听端口,远程主机连接服务器的同一端口并发送消息。在服务器端,运行下面命令开启侦听端口:
  
[root@qdzabbix ~]# ncat -l 8080
  
在远程主机中运行下面命令,并且在下面输入聊天内容,按回车发送,在服务端可以看到消息内容了。
  
[root@server1 ~]# ncat 192.168.0.12 8080
  
Hello qdzabbix
                                          
下面在服务端和远程主机都可以看到消息内容。
                                          
想要退出,只需要按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命令创建后门。此功能主要由黑客使用。可以这样运行命令,在服务端执行下面一条命令:
  
[root@qdzabbix ~]# nc -l 5566 -e /bin/bash
                                          
-e选项后面指定运行的命令。现在客户端可以连接到服务器上的端口5566,并且可以通过运行以下命令通过bash完全访问我们的系统:
  
[root@server1 ~]# nc qdzabbix 5566
  
ls
  
anaconda-ks.cfg
  
a.txt
  
batch
  
Customer_Supplied_Tickets
  
custom_resolv.conf
  
下图中红线圈出来的就是执行的命令。
                                          
  六、使用ncat运行带有静态页面的Web服务器
  
可以在本地主机上使用ncat命令启动Web服务器,这将打开静态网页面sample.html。你可以运行如下命令:
  
首先将下面内容保存到/root/sample.html文件中。
  
[root@qdzabbix ~]# vim /root/sample.html
  

  
? ? ? ?
  
? ? ? ? ? ? ? ? Test Page
  
? ? ? ?
  
? ? ? ?
  
? ? ? ? ? ? ? ?

Level 1 header


  
? ? ? ? ? ? ? ?

Subheading


  
? ? ? ? ? ? ? ?

Normal text here


  
? ? ? ?
  

                                          
然后执行下面命令:
  
[root@qdzabbix ~]# while true; do nc -l -p 80   
上面命令中,-p 88选项指定源端口为80。
  
在浏览器中访问,可以看到页面内容。
  
  总结
  
ncat工具可以帮助你从使用telnet进行连通性测试切换到使用ncat测试连通性。

nc 命令使用小结


                
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。比如大家很熟悉使用telnet测试tcp端口,而nc可以支持测试linux的tcp和udp端口,而且也经常被用于端口扫描,甚至把nc作为server以TCP或UDP方式侦听指定端口做简单的模拟测试。
  
2020年10月07日 - 初稿
  
阅读原文 -  
  
  ncat  或者说  nc  是一款功能类似  cat  的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。
  
  ncat / nc  既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每个系统管理员都应该知道并且掌握它。
  
在大多数 Debian 发行版中, nc  是默认可用的,它会在安装系统的过程中自动被安装。 但是在 CentOS 7 / RHEL 7 的最小化安装中, nc  并不会默认被安装。 你需要用下列命令手工安装。
  
nc的作用:
  
nc的控制参数不少,常用的几个参数如下所列:
  
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
  
暂未用到(老版本的nc可能需要在端口号前加-p参数)
  
指定发送数据的源IP地址,适用于多网卡机
  
指定nc使用UDP协议,默认为TCP
  
输出交互或出错信息,新手调试时尤为有用
  
6)-w
  
超时秒数,后面跟数字
  
7)-z
  
表示zero,表示扫描时不发送任何数据
  
作用:批量端口扫描,可根据扫描主机的配置调整后台扫描进程数量(手动执行后根据统计的执行时间调整脚本中关于进程数量的参数),通过定时任务作为简单的服务监控(可修改脚本添加其他报警功能,例如邮件等)
  
实现:使用nc指令扫描端口,使用管道特性控制后台扫描进程数量
  
不足:仅仅对扫描端口状态为down的信息做记录,并没有其他报警操作
  
使用:
  
  10 useful ncat (nc) Command Examples for Linux Systems
  
  nc命令用法举例

...为什么用nc想要建立连接,显示Ncat:connection refused


                

nc与ncat不是一个东西,ncat是nmap的一个套间,我也遇到了这个问题,但是网上搜不出来相关的东西,我估计是软链接把nc解析成ncat了,还有netcat也是被解析成ncat了,nc与netcat是一个东西。


安装了nmap为什么还说ncat


                
nmap一般在/usr/bin/nmap,查看有没有这个文件。再说了查看环境变量有没有设置成功只需要输入echo $PATH,把这条命令输出结果拿出来看才有用。一般修改.bash_profile需要logout后重新登录才会起效,个人觉得你的系统应该是没有安装这个工具,你需要yum install nmap....

测试特定协议下指定端口是否开启


                
我们在检测远程服务是否正常时,经常会用一些工具(命令)来检测端口是否开启,来确定服务是否正常。通常可用于检测的工具有nc、socat、nmap等,基本思想是向远端指定端口发送数据,看其状态。
  
远端:192.168.0.15
  
本端:192.168.0.10
  
单向检测(适用于无法登录远端服务查看的情况)
  
如果返回succeeded,则说明相应的UDP端口访问正常。
  
如果无任何返回信息,则说明相应的UDP端口访问失败。
  
nc -uvz $IP $Port.?? //UDP
  
nc -vz $IP $Port?? //TCP
  
远端不监听1777端口情况
  
# nc -uvz 192.168.0.15 1777
  
#
  
远端监听1777端口
  
# nc -ul 1777
  
XXXXX
  
# nc -uvz 192.168.0.15 1777
  
Connection to 192.168.0.15 1777 port [udp/powerguardian] succeeded!
  
如果succeeded,则无任何返回,如果failed则返回Connection refused。
  
echo "This socat udp test." | socat - udp-connect:$IP:$Port
  
远端不监听1777端口,本端发送udp数据至远端指定端口。
  
# echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777
  
2017/06/18 14:26:39 socat[22195] E read(3, 0xb48a20, 8192): Connection refused
  
远端开启监听,本端再次发送。
  
# nc -ul 1777
  
This socat udp test.
  
# echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777
  
#
  
用指定协议扫描远端指定端口
  
nmap -sU -p $Port $IP
  
# nmap -sU -p 1777 192.168.0.15
  
Starting Nmap 5.51 (  ) at 2017-06-18 14:35 CST
  
Nmap scan report for host-192-168-0-15 (192.168.0.15)
  
Host is up (0.00098s latency).
  
PORT ??? STATE? SERVICE
  
1777/udp closed unknown
  
MAC Address: FA:16:3E:1A:54:30 (Unknown)
  
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
  
可以通过传输文本及文件来测试UDP端口是否正常(先开监听,再发送)
  
远端:nc -ul $Port
  
本端: nc -u $IP $Port
  
在本端键入任意字符,看远端是否可以收到。
  
远端:nc -l $Port > $Filename
  
本端:nc $IP $Port   
可以执行md5sum看两端的文件md5是否相同

注:如果是检测tcp协议端口,上述nc命令中,去掉参数-u即可。另外,也可以使用telnet $IP $Port来完成

$ nc -vzw 2 180.76.148.122 22-81 //显示详细信息,包含失败的
  
$ nc -zw 2 180.76.148.122 22-81  //不显示详细信息,只包含成功的,如果检测udp端口,可用"vzw"参数,"z"参数表示连接成功后立即关闭连接
  
Connection to 180.76.148.122 port 22 [tcp/ssh] succeeded!
  
Connection to 180.76.148.122 port 80 [tcp/http] succeeded!
  
附全面的ncat使用方法: https://linux.cn/article-9190-1.html

目录[+]