Netcat(nc)命令教程及示例

Netcat是一个简单但有用的工具,用于TCP、UDP、Unix域套接字。Netcat可以轻松地侦听或连接指定的套接字。Netcat是一个独立于平台的命令,由Linux、Unix、Windows、BSD、macOS等支持;

null
  • 简单TCP代理
  • 基于Shell脚本的HTTP客户端和服务器
  • 网络守护程序测试
  • ssh的SOCKS或HTTP代理命令

netcat命令语法

对于“nc”命令,我们将使用以下语法。

netcat OPTIONS DESTINATION PORT
  • OPTIONS 用于设置一些特殊行为,如超时、帮助、巨型帧等。
  • DESTINATION 用于指定远程系统IP或主机名。
  • PORT 是远程系统端口号。

如果我们使用 netcat 作为服务器,以下语法有效。

nc OPTIONS PORT
  • 用于设置某些特殊行为的选项,如超时、帮助、巨型
  • PORT是服务器将侦听的端口号

netcat命令帮助

nc或netcat命令有很多不同的选项。有关这些选项的帮助和信息可以通过 -h 选项如下。

$ nc -h
Help
救命

我们看得出来 netcat 命令提供了许多不同的选项。

使用netcat命令进行端口扫描

渗透测试人员通常使用端口扫描技术来收集信息。Nmap是查找开放端口最流行的工具之一。Netcat可以提供端口扫描功能。优势 netcat 简单且不依赖于库。单身 netcat 二进制文件足以进行端口扫描,可以用于所有操作系统,如Windows、Linux、Unix、MacOS和BSD。

我们将使用 -z 端口扫描选项如下。在本例中,我们将扫描IP地址 192.168.122.1 也可以是域名,比如 poftut.com . 端口范围指定为 1-30 .

$ nc -z -v 192.168.122.1 1-30
Port Scan
端口扫描

屏幕截图显示了详细的输出只有端口22是开放的,我们可以看到。使用 -n 选项。这将禁用有关目标IP地址的DNS解析。

$ nc -z -v  192.168.122.1 1-30

使用netcat命令进行详细扫描

在前面的示例中,我们以静默模式扫描了主机。静默模式是默认模式,这意味着只有打开的端口才会打印到控制台。有一个选择 -v 这将产生更详细的信息。详细模式也可以用于抓取横幅的目的。在下面的示例中,我们将扫描从1到1000的端口范围。

$ nc -z -v -n 192.168.122.1 1-1000
Verbose Scan
详细扫描

启动Netcat TCP服务器

另一个有用的特性 netcat 充当TCP服务器。Netcat可以侦听指定的TCP端口。但是作为Linux系统中的一种安全措施,只有特权用户才能监听1-1024之间的端口。在本例中,我们将侦听TCP端口30 sudo 命令。

$ sudo nc -l -p 30
TCP Server
TCP服务器

在示例屏幕截图中,我们看到一个客户机连接到我们的服务器,并提供如下文本 ls test . 此客户端工具可以是telnet或 netcat 我也是。如果我们不提供 sudo 命令获取根权限,我们将得到如下错误 Permission denied .

连接Netcat TCP服务器

在前面的示例中,我们检查了TCP服务器。Netcat还提供客户端功能。使用 netcat 作为客户端,我们应该提供主机名或IP地址以及端口信息。这方面没有特别的选择。

$ nc localhost 30
Connect Netcat TCP Server
连接Netcat TCP服务器

在本例中,我们已经连接到localhost ssh端口22。ssh服务器向我们发送一些关于它的文本,并等待响应。

相关文章: HTML Div标记使用教程及示例

通过Netcat发送文件

另一个有用的功能 netcat 是文件传输。正如我们看到前面的例子 netcat 使用服务器-客户机体系结构可以轻松传输文本。传输数据没有限制。这些数据可以是普通节目或电影。但请记住,传输时间将根据数据大小而变化。为了传输,我们需要设置一个作为目的地的服务器。在服务器配置中,我们将把传入的数据重定向到一个文件名中 myfile.txt

$ netcat -l -p 4444 > myfile.txt

现在我们可以从客户端发送文件了。我们将读取文件 thefile.txt 在客户端通过重定向到netcat文件,如下所示。

$ nc 192.168.122.239 4444 < thefile.txt

传输完成后,服务器端和客户端netcat实例都将关闭。

使用Netcat命令的简单Web服务器

Netcat还有一个有趣的特性,可以简单地使用。Netcat可以用作一个简单的web服务器。实际上,如果没有特殊的配置要求,web服务器是非常简单的。Web服务器仅通过HTTP协议发送HTML页。Netcat还可以通过重定向发送HTML代码。

$ nc -l 4444 < index.html
Simple Web Server With Netcat
使用Netcat的简单Web服务器

在客户端,我们将使用googlechrome来导航IP地址 192.168.122.239 带端口号 4444

Simple Web Server With Netcat
使用Netcat的简单Web服务器

阻止DNS查找

在使用DNS时,可以使用选项禁用查找 -n 这将使操作更快。

$ netcat -n google.com 80

在客户端断开连接后继续侦听

默认情况下, netcat 在客户端结束连接后,将停止侦听指定的端口和IP地址。这意味着 netcat 用作服务器侦听器。我们可以提供 -k 选项,即使远程客户端结束连接,也会继续侦听给定的端口和IP地址。

$ nc -k -l 4444

指定netcat连接超时

建立到远程服务器的连接后 netcat 我们传输一些数据。如果在调用的指定时间内没有传输 timeout 我们可以断开或关闭连接。我们将使用 -w 选项和要设置的超时值。在本例中,我们将超时值设置为 120 .

$ nc -w 120 192.168.1.10 8888

仅将IPv4与netcat命令一起使用

netcat 是一个同时支持IPv4和IPv6的工具,在某些情况下,我们可能只希望启用IPv4协议。这对于监听特定端口特别有用。我们将使用 -4 作为仅启用IPv4的选项。

$ nc -k -4 -l 4444

仅对netcat命令使用IPv6

另一方面,我们也只能启用IPv6。这是一个非常罕见的情况,但在某些罕见的情况下可能有用。我们只能使用 -6 选项如下。

$ nc -k -6 -l 4444

使用netcat命令抓取横幅

netcat或nc可用于抓取不同端口的横幅,如SSH、HTTP、HTTPS、VNC、FTP等。netcat将启动到远程系统指定端口的连接,并使用 echo 命令。

$ nc 172.104.31.121 443

然后,我们将发出以下HTTP命令,以便向远程HTTP服务器发出请求。服务器将用自己的信息或横幅对此做出响应。

GET / HTTP 2.0
Banner Grabbing
抢旗

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享