美文网首页命令行工具
Ncat 使用方法整理

Ncat 使用方法整理

作者: 舌尖上的大胖 | 来源:发表于2020-02-25 23:41 被阅读0次

    之前整理转发过一篇《Linux Netcat 命令——网络工具中的瑞士军刀》,里面讲了很多常用方法,但是 Netcat(nc) 有些旧,而且不同的发行版参数可能也有些差异,所以本篇文章介绍下 Netcat(nc) 的升级版 Ncat 以及一些有用的使用方法。

    一、Ncat 介绍

    译自《Ncat Users' Guide——Ncat: Your General-Purpose Network Connector》

    Ncat 是用于在网络上读取,写入,重定向和加密数据的通用命令行工具。它旨在成为您的瑞士军刀网络,处理各种各样的安全测试和管理任务。 Ncat 适合交互使用或作为其他工具的网络连接后端。 Ncat 可以:

    • 充当简单的 TCP/UDP/SCTP/SSL 客户端,用于与 Web 服务器,Telnet 服务器,邮件服务器和其他 TCP/IP 网络服务进行交互。理解服务(解决问题,发现安全漏洞或测试自定义命令)的最佳方法通常是使用 Ncat 与服务进行交互。这使您可以控制发送的每个字符并查看未经过滤的原始响应。

    • 充当简单的 TCP/UDP/SCTP/SSL 服务器,以向客户端提供服务,或者通过捕获它们发送的每个字节来简单地了解现有客户端的功能。

    • 将 TCP/UDP/SCTP 通信重定向或代理到其他端口或主机。可以使用简单的重定向(发送到端口的所有信息都自动转发到您预先指定的其他位置)或充当 SOCKS 或 HTTP 代理,以便客户端指定自己的目的地来完成此操作。在客户端模式下,Ncat 可以通过一系列匿名或身份验证的代理连接到目标。

    • 在所有主要操作系统上运行。我们分发 Linux、Windows 和 Mac OS X 二进制文件,并且 Ncat 在大多数其他系统上进行编译。无论您使用的是哪种计算机,无论何时需要,受信任的工具都必须可用。

    • 使用 SSL 加密通信,并通过 IPv4 或 IPv6 进行传输。

    • 充当执行系统命令的网络网关,I/O 重定向到网络。它的设计工作原理类似于 Unix 实用程序 cat,但适用于网络。

    • 充当连接代理,允许两个(或更多)客户端通过第三个(代理)服务器彼此连接。这使隐藏在 NAT 网关后面的多台计算机可以相互通信,并且还可以启用简单的 Ncat 聊天模式。

    组合使用时,这些功能将变得更加强大和通用。

    Ncat 是我们对 Hobbit 在 1996 年发布的古老 Netcat(nc)工具的现代改造。Ncat 在本质上类似于 Netcat,但它们不共享任何源代码。取而代之的是,Ncat 使用了经过 Nmap 优化和测试的网络库。在不与 Ncat 的增强功能冲突或不会引起可用性问题的情况下,保持了与原始 Netcat 及其某些知名变体的兼容性。 Ncat 添加了 Hobbit 原始 nc 中未发现的许多功能,包括 SSL 支持,代理连接,IPv6 和连接代理。最初的 nc 包含一个简单的端口扫描程序,但是我们从 Ncat 省略了它,因为我们拥有该功能的首选工具。

    二、使用样例

    1、端口探测

    # 探测 httpbin.org 的 80 端口
    $ ncat -zv httpbin.org 80
    

    2、简易数据通讯

    # 服务端
    $ ncat -l 9999
    
    # 如果服务端需要启用 SSL/TLS,--ssl-cert 指定 完整证书链
    $ ncat -l 9999 --ssl-cert bundle.crt --ssl-key server.key
    
    # 客户端
    $ ncat 服务端 9999
    
    # 如果要连接 SSL/TLS 服务器
    $ ncat 服务端 9999 --ssl
    

    3、发送文件

    # 从 HOST1(Client) 发送文件到 HOST2(Server) 的 TCP 9899 端口
    # HOST2:
    $ ncat -l 9899 > outputfile
    
    #HOST1:
    $ ncat HOST2 9899 < inputfile
    

    4、端口转发

    # 重定向本机 9999 TCP 端口到 httpbin.org 的 80 端口
    $ ncat --sh-exec "ncat httpbin.org 80" -l 9999 --keep-open
    

    5、分享 Shell

    # 在本机的 9999 端口分享 Bash Shell,让对方可以通过网络访问此端口来自由访问 Bash Shell
    $ ncat --exec "/bin/bash" -l 9999 --keep-open
    

    6、通过代理服务器连接

    # 通过 SOCKS5 1080 端口,连接 smtphost:25
    $ ncat --proxy socks5host --proxy-type socks5 --proxy-auth proxyusername:password smtphost 25
    
    # SSH 通过 Ncat 指定代理,通过代理访问
    $ ssh -o ProxyCommand="ncat --proxy-type http/socks4/socks5 --proxy proxy.net:端口 %h %p" user@server.net
    

    7、创建代理服务器

    # 在本机 8888 端口创建 HTTP 代理
    $ ncat -l --proxy-type http localhost 8888 --proxy-auth username:password
    
    # 测试 HTTP 代理服务器(支持隧道模式)
    $ curl -x 'http://username:password@localhost:8888' httpbin.org/anything
    

    三、参考资料

    (完)

    相关文章

      网友评论

        本文标题:Ncat 使用方法整理

        本文链接:https://www.haomeiwen.com/subject/pbakchtx.html