命令行工具

Ncat 使用方法整理

2020-02-25  本文已影响0人  舌尖上的大胖

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

一、Ncat 介绍

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

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

三、参考资料

(完)

上一篇下一篇

猜你喜欢

热点阅读