Netcat

参考:

Netcat for Windows

Linux Netcat 命令——网络工具中的瑞士军刀

8 个实用的 Linux netcat 命令示例

If I am not mistaken, nc comes as a default tool in most of the Linux distros. You can download the windows port of the tool at http://www.securityfocus.com/tools/139

The command to have netcat listen on a specific port is “nc -l PORT_NUMBER”. If you run this on a Windows 7 machine, you will get this dreaded message “local listenfuxored: INVAL”. The fix is to run it with a -L option. So the command would like this

nc -L -p 80

The -L means “listen harder, re-listen on socket close” :).. Have to dig deeper and see what it really means though. I will leave that for another blog post.

And if you want to validate that netcat is indeed listening on that port, you can connect to that port from another workstation by using nmap.

什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 (2)端口的扫描,nc可以作为client发起TCP或UDP连接 (3)机器之间传输文件 (4)机器之间网络测速                                                                                                                                                                                                                         nc的控制参数不少,常用的几个参数如下所列: 1) -l 用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。 2) -p 暂未用到(老版本的nc可能需要在端口号前加-p参数,下面测试环境是centos6.6,nc版本是nc-1.84,未用到-p参数) 3) -s  指定发送数据的源IP地址,适用于多网卡机  4) -u  指定nc使用UDP协议,默认为TCP 5) -v 输出交互或出错信息,新手调试时尤为有用 6)-w 超时秒数,后面跟数字  7)-z 表示zero,表示扫描时不发送任何数据       前期准备 准备两台机器,用于测试nc命令的用法 主机A:ip地址 10.0.1.161 主机B:ip地址 10.0.1.162   两台机器先安装nc和nmap的包 yum install nc -y yum install nmap -y 如果提示如下-bash: nc: command not found 表示没安装nc的包 ———————————————— 版权声明:本文为优快云博主「小毛毛2013」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/u012486730/article/details/82019996
04-28
### Netcat 工具的使用及相关信息 Netcat(通常缩写为 `nc`)是一款功能强大的网络工具,广泛应用于调试和探索网络连接。以下是关于 Netcat 的详细介绍及其常见用途: #### 功能概述 Netcat 是一种简单而实用的工具,用于处理基于 TCP 和 UDP 协议的套接字通信[^1]。它可以轻松实现监听或连接指定的套接字,并支持跨平台运行,适用于 Linux、Unix、Windows、BSD 和 macOS 等多种操作系统环境[^2]。 #### 基本语法 Netcat 的基本命令结构如下: ```bash nc [选项] 主机名 端口号 ``` 常见的选项包括但不限于: - `-l`:启用监听模式。 - `-u`:使用 UDP 而非默认的 TCP。 - `-p`:指定本地端口。 - `-v`:显示详细输出。 #### 使用场景 以下是 Netcat 的一些典型应用场景: 1. **文件传输** 可以通过 Netcat 实现简单的文件传输功能。例如,在发送方执行以下命令: ```bash nc -l -p 12345 < 文件名.txt ``` 接收方则可以运行: ```bash nc 发送方IP地址 12345 > 接收到的文件名.txt ``` 2. **远程 shell 执行** 利用 Netcat 创建一个反向 Shell 或绑定 Shell 来进行远程控制。例如,创建一个监听的反向 Shell: ```bash nc -lvnp 4444 -e /bin/bash ``` 客户端可以通过连接到该端口获得交互式的终端会话。 3. **端口扫描** 尽管专门的端口扫描工具有很多,但 Netcat 同样能够完成基础的任务。比如检测目标主机上的开放端口: ```bash nc -zv 目标主机 开始端口 结束端口 ``` 4. **服务测试** 测试特定的服务是否正常工作也是 Netcat 的一大优势之一。假设要验证 HTTP 服务的状态,则可以直接尝试访问 Web 服务器的标准端口 (通常是80或者443),像这样操作: ```bash echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80 ``` #### 特殊能力与设计目的 除了上述提到的功能外,Netcat 还具备其他内置特性使其成为不可或缺的后端开发辅助程序以及脚本驱动型应用的理想选择[^4]。这些特点使得开发者能够在复杂环境中构建自定义解决方案变得更为简便快捷。 --- ### 示例代码展示 下面给出一段利用 Python 编写的模拟 Netcat 行为的小例子: ```python import socket def netcat(host, port, content): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.connect((host, int(port))) s.sendall(content.encode()) while True: data = s.recv(1024).decode() if not data: break print(data.strip()) finally: s.close() if __name__ == "__main__": netcat('example.com', '80', 'HEAD / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n') ``` 此函数实现了最基本的客户端行为——建立连接、发送数据包并接收响应消息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值