Netcat – 基本用法和概述
Netcat 是一个 Unix 实用程序,它使用 TCP 或 UDP 协议通过网络连接读取和写入数据。
使用 Netcat 可以轻松完成以下任务:
- 连接到目标主机的端口。
- 侦听任何入站连接的某个端口。
- 建立连接后,跨客户端和服务器发送数据。
- 建立连接后,通过网络传输文件。
- 可以在服务器上执行客户端的程序和脚本,反之亦然。
- 可以向可以执行 shell 命令的客户端提供服务器的远程 shell 访问。
例子
一个简单的客户端 - 服务器连接:
在服务器计算机上键入此命令。
nc -l -p 1234
这里,nc代表 Netcat,我们称之为 Netcat 程序。
-l选项告诉程序监听-p选项指定的端口。在这种情况下,它是 1234。所以命令也可以写成,
现在在客户端机器或其他终端上键入以下内容:-
nc 127.0.0.1 1234
这将在指定端口(即 1234)上创建一个具有 IP 地址(即 127.0.0.1)的 TCP 连接。
一些可以与 Netcat 一起使用的重要选项:
1. Verbose,打印有关连接的附加信息。
#command for terminal 1
nc -vlp 1234
#command for terminal 2
nc -v 127.0.0.1 1234
客户端上的上述命令显示它已成功连接到服务器。此命令还可用于扫描服务器的端口是否打开。
2.数据传输后等待 w 秒,然后终止连接。
#command for terminal 1
nc -w 20 -lp 1234
#command for terminal 2
nc -w 2 127.0.0.1 1234
3.进行简单的聊天和数据传输
#command for terminal 1
nc -lp 1234
#command for terminal 2
nc 127.0.0.1 1234
使用上述命令序列将消息或数据从一个终端和一个 ip 发送到另一个
4.执行文件传输
#command for terminal 1
nc -v -w 30 -l -p 1234 >manav.txt
#command for terminal 2
nc -v -w 2 127.0.0.1 1234
在本例中,服务器将在收到文件 30 秒后终止连接。如果文件不在当前目录中,则指定整个路径。
5.建立连接成功后执行shell命令
#command for terminal 1
nc -lp 1234 -c /bin/sh
#command for terminal 2
nc 127.0.0.1 1234
/bin/sh是一个 Unix 命令,它提供了一个 shell 来执行 shell 命令。这将为客户端提供一个远程 shell,客户端可以从这里在服务器上执行 shell 命令。
Netcat 的一些要点
- 默认情况下,Netcat 使用 TCP 连接。要建立 UDP 连接,使用-u选项。
- 如果没有-w选项,连接不会终止,直到退出 Netcat 程序。
- -n选项指定数字 IP 地址,而不是域名。也就是说,-n 选项只允许连接一个 IP 地址,但不能将域名解析为 IP 地址。
- -k选项用于侦听模式以接受多个连接。