Net cat 介绍篇2.1(包含对第二篇的补充和应用)

 前两篇介绍了net cat的基础应用和一些命令,考虑到可能没有介绍清楚,这里单独开一篇,用具体的例子来更好地为大家展现net cat的功能,本篇涉及一些拓展,但大多数还是在第二篇的基础上进行的补充和注释,帮助大家更好的理解和应用,因为我也没有找到合适的图,所以先将就着看吧,万分抱歉惹。

  因为本篇文字较多且无图,所以我特意设了目录,方便大家查找有关内容。

  • nc -c shell commands

  • 当使用nc -c并正确跟上一个命令时,它可以在建立网络连接后,在远程主机上执行指定的命令。例如,假设你有一个可以访问的远程服务器(参考第一篇),并且在合法授权的情况下,nc -c "command"可以在与服务器建立连接后,在服务器端执行command(命令)
  • 一个简单的示例场景(此场景仅用于演示功能,实际应用中需要考虑安全等诸多因素):
    • 如果你想在本地机器上通过nc连接到远程服务器(假设 IP 为192.168.1.100),并在远程服务器上执行ls命令来查看目录内容,命令可能会写成nc -c "ls" 192.168.1.100 1234(假设远程服务器的监听端口是1234)。这就相当于在远程服务器的环境下执行了ls命令,并且将结果(如果有)通过网络连接返回到本地的nc客户端。
    • 之前提到的危险是因为这种方式如果被恶意利用,会对服务器产生危害,包括但不限于信息泄露、系统被篡改等问题,比较刑,建议在双方知情且同意的情况使用~
  • nc -e filename

  • nc -e用于在连接成功后,将指定的文件(可执行程序)的输入 / 输出重定向到网络连接。这意味着当nc建立起一个网络连接后,会在连接的另一端(比如远程主机)执行指定的可执行文件,并通过网络连接来传递该文件执行过程中的输入和输出,filename就是可执行文件的文件名。
  • 举个栗子,假设/tmp/backdoor是一个恶意攻击者编写的后门程序,攻击者可以使用nc -e /tmp/backdoor 192.168.1.100 1234(假设目标主机 IP 是192.168.1.100,监听端口是1234)来尝试在目标主机上启动这个后门程序,并且通过nc建立的网络连接来控制这个程序的输入输出。这是一种非常非常非常危险的用法,在安全领域,这种操作通常是被严格禁止的,因为这可能被用于非法入侵。但是,这个命令就不能用了吗?当然不是,它可以在一些合法的,受控制的环境中被管理员用来对自己的机器进行调试和维护哦。
  • nc -b

  • 当使用nc -b时,它允许nc发送的数据以广播的形式在网络中传播。广播是一种网络通信方式,在一个网络段中,消息会被发送到网络中的所有节点。
  • 例如,在一个本地局域网(LAN)环境中,假设有一个子网掩码为255.255.255.0192.168.1.0/24网段。如果一台主机(IP 为192.168.1.10)使用nc -b在端口(假设为5000)发送数据,那么在这个网段中的所有其他主机(如192.168.1.20192.168.1.30等)如果在监听这个端口,理论上都能够接收到这些广播数据。
  • 广播通信主要用于在网络中向多个接收者发送相同的消息,常见的应用场景包括在本地网络中发现服务、进行网络配置更新通知等。不过,在实际应用中,由于广播会占用网络带宽并且可能会对网络中的所有节点造成干扰,所以通常需要谨慎使用。
  • 顺带介绍一下这个命令与其他命令的混合使用,-b选项可以和-u(UDP 模式)选项一起使用,因为 UDP 协议更适合广播通信。例如,nc -b -u 192.168.1.255 5000(假设192.168.1.255是广播地址)会以 UDP 广播的方式将数据发送到192.168.1.0/24网段的所有主机的5000端口。这种组合方式可以用于在局域网中快速地向所有主机发送特定的信息,比如简单的服务发现消息,如 “这里有新的共享资源可用” 之类的广播通知。但要注意,这种广播消息的内容和格式需要接收者能够理解并正确处理,否则广播就没有实际意义了。
  • nc -g gateway

  • 顾名思义,gateway就是网关。网关是网络中连接不同网络段的设备,它负责在不同网络之间转发数据包。当使用nc -g gateway时,你是在告诉nc,在建立网络连接的过程中,如果涉及源路由,数据包应该经过指定的网关gateway
  • 荔枝,在一个复杂的企业网络环境中,有多个子网通过不同的网关相连。假设你的本地网络是192.168.1.0/24,通过网关192.168.1.1连接到另一个子网192.168.2.0/24。如果要通过nc连接到192.168.2.10这个位于另一个子网的主机,并且你希望指定数据包经过某个特定的网关(假设这个网关的 IP 是192.168.1.2),你可以使用nc -g 192.168.1.2(当然还需要指定目标主机的 IP 和端口等其他参数)来尝试建立这种源路由连接。
  • 需要注意的一点是,源路由功能在现代网络环境中并不常用,并且在许多网络配置中可能会受到限制。因为它可能会被恶意利用来绕过网络安全策略,如防火墙的访问控制规则。此外,并不是所有的网络设备都支持源路由功能。在大多数普通的网络连接场景中,网络设备会根据自身的路由表和默认的路由策略来转发数据包,而不是按照源主机指定的路径。所以nc -g这个选项在实际网络应用中相对比较少见,并且在使用时需要谨慎考虑网络安全和设备兼容性等问题,这里也只是做介绍,并不是推荐应用。
  • nc -G num

  • nc(Netcat)命令中,-G选项用于设置源路由跳数(hop - count)的数值。源路由跳数指的是数据包在网络中从源节点到目标节点经过的中间节点(或 “跳”)的数量。
  • 每经过一个网络设备(如路由器),数据包的跳数就会增加 1。当你指定-G num时,nc会尝试在源路由的情况下,将数据包发送到目标,并且限制跳数为num
  • 例如,假设你在一个大型的企业网络中有多个子网通过路由器相连。如果num被设置为 3,nc在进行源路由时,会尝试让数据包最多经过 3 个中间设备(路由器等)到达目标。这可以帮助你在复杂的网络拓扑中控制数据包的路径长度,以避免数据包在网络中无限循环或者经过过多不必要的设备,从而提高网络传输的效率并且在一定程度上控制网络流量的走向。
  • nc -h

  • 当你在终端中输入nc -h,会显示出nc命令的基本使用方法、各个选项的功能简介以及一些示例等内容。这些帮助信息可以让用户快速了解nc命令的语法结构和各种参数的作用。例如,它可能会展示如何指定目标主机的 IP 地址和端口号,如何选择传输模式(如 TCP 或 UDP),以及不同选项(如-l用于监听模式等)是如何工作的。
  • 帮助信息的具体格式和详细程度可能因nc的版本而略有不同,但一般都会包括常用选项的解释和一些简单的命令使用场景,这对于初学者学习如何使用nc或者有经验的用户查询特定选项的功能都非常有用,小白推荐看看,当然最好还是背一下。
  • nc -i secs

  • 当使用nc -i secs时,它会在向目标发送数据时,按照指定的时间间隔secs(秒)来发送。这在一些需要控制数据发送速率的场景中非常有用。
  • 例如,如果你正在进行网络测试或者数据传输实验,并且希望以较为稳定的速率发送数据,就可以使用这个选项。假设你要向一个服务器发送测试数据,使用nc -i 2(假设目标主机和端口等其他参数也已正确指定),那么nc会每隔 2 秒发送一部分数据。这样可以模拟一种较为稳定的、有规律的数据发送情况,有助于评估网络的带宽、延迟等性能指标,或者用于测试目标服务器对这种有间隔的数据接收和处理能力。
  • nc -k

  • nc(Netcat)命令中,-k选项用于指定nc在当前连接结束后保持监听状态。这意味着它可以持续接受后续的连接请求。通常情况下,当nc完成一次连接并传输完数据后就会关闭监听端口。但是使用-k选项后,nc会保持端口处于打开状态,等待新的连接,就像一个小型的、持续运行的服务器。
  • 假设你使用nc在本地机器上监听一个端口,比如nc -l -p 1234 -k-l用于监听,-p用于指定端口)。当第一个客户端连接到这个端口并完成数据传输后,nc不会像通常那样关闭端口,而是继续等待下一个客户端连接。这在需要持续接收多个客户端数据传输的场景中非常有用,与nc -b功能相反。
  • 举个例子。在一个简单的本地文件共享场景中,你可以将nc作为一个简单的文件传输服务器。当第一个用户连接并下载文件后,-k选项使得nc能够为下一个想要下载文件的用户提供服务,而不需要重新启动nc命令来开启监听。
  • -k选项经常和-l(监听模式)选项一起使用。并且根据具体需求,可能还会和其他选项如-u(UDP 模式)等组合,以满足在 UDP 协议下持续接收多个连接请求的场景。不过需要注意的是,这种持续监听的模式如果在不安全的网络环境或者没有适当安全措施的情况下,可能会被恶意利用,因此在实际应用中要确保使用的安全性,也比较危险。
  • nc -l

  • 终于该介绍大名鼎鼎的nc -l了。在nc(Netcat)命令中,-l选项表示让nc进入监听模式(listen mode)。这意味着nc会在指定的端口等待其他主机发起连接请求,就像一个服务器等待客户端连接一样,下面是它的具体功能,当然这一举动同样有风险,要小心黑客攻击。
  • 简单的网络通信测试
    • 例如,你可以在本地机器上使用nc -l -p 1234-p用于指定监听的端口号,这里是 1234)来开启一个简单的监听服务。然后在另一台机器上使用nc(不需要-l选项)来连接到这个端口,比如nc 192.168.1.100 1234(假设监听主机的 IP 是 192.168.1.100),这样就建立了一个简单的网络连接,可以在两台机器之间进行数据传输,比如发送文本消息等。
  • 文件传输示例
    • 可以将nc用于简单的文件传输。在接收文件的一端(假设为服务器端)使用nc -l -p 5000开启监听。在发送文件的一端(客户端),可以使用命令如cat file.txt | nc 192.168.1.100 5000(假设接收文件的主机 IP 是 192.168.1.100),这样文件file.txt的内容就会通过网络连接发送到监听端口为 5000 的主机上。
  • 端口扫描检测(反向利用)
    • 从另一个角度看,-l选项也可以用于检测是否有其他主机在对特定端口进行扫描。如果在某个端口上开启nc -l监听,当有其他主机尝试连接这个端口(可能是扫描工具在工作)时,nc会接收到连接请求,从而可以发现这种未经授权的扫描行为。不过这种应用场景相对复杂,需要结合其他技术来准确判断是否是恶意扫描。
  • nc -n

  • 这一命令可以用来禁止域名解析。
  • 通常情况下,当你指定一个主机名作为nc命令的目标时,nc会尝试通过域名系统(DNS)来解析这个主机名,以获取对应的 IP 地址。但是,使用-n选项后,nc将不会进行域名解析。
  • 例如,如果你输入nc -n example.com 80nc不会把example.com解析为 IP 地址,而是会直接尝试将example.com当作 IP 地址来使用,这显然会导致连接错误。但如果你的输入是nc -n 192.168.1.100 80(这里是一个正确的 IP 地址),nc会正常地尝试与 IP 地址为192.168.1.100、端口为80的目标建立连接。
  • 这个选项在某些情况下是很有用的。比如,当你已经知道目标主机的 IP 地址,并且想要跳过域名解析这个可能会耗费时间的步骤(特别是在 DNS 服务不稳定或者网络连接不佳导致域名解析缓慢的情况下),或者当你怀疑域名解析可能被篡改或出现错误,想要直接使用 IP 地址来确保连接的准确性时,就可以使用-n选项。

  因为实在是太多了(苦涩),就先介绍到这里吧,剩余内容我会在下一篇博客发出来,如果你觉得本文对有帮助,就是对我的最大肯定了,感谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值