文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

8个nc命令的实用案例

2024-12-11 20:23

关注

netcat(简称nc)是一个简单但功能强大的网络命令行工具,用于执行Linux中与TCP、UDP或Unix套接字相关的任何操作。

netcat可用于端口扫描,端口重定向,启动端口监听器;它还可以用来打开远程连接和许多其他事情。此外,您可以使用它作为后门访问目标服务器。

在本文中,我们将通过使用案例解释netcat使用命令。

[[332567]]

2. 如何在Linux中安装和使用netcat

要在系统上安装netcat包,请使用Linux发行版的默认包管理器。

基于CentOS或RHEL体系安装nc命令

  1. yum install nc 

基于Fedora 22+ 或 RHEL 8安装nc命令:

  1. dnf install nc 

基于Debian或Ubuntu安装nc命令:

  1. sudo apt-get install netcat 

一旦安装了netcat包,您可以在下面的示例中进一步学习netcat命令的用法。

3. 使用nc命令扫描端口

netcat可用于端口扫描:了解目标服务器上哪些端口是打开的并正在运行服务。它可以扫描一个或多个或一系列打开的端口。

使用nc命令扫描端口

下面是一个示例,-z选项将nc设置为只扫描侦听守护进程,而不实际向它们发送任何数据。-v选项启用详细模式,而-w指定无法建立连接的超时。

扫描单个端口:

  1. nc -v -w 2 z 192.168.56.1 22 

扫描多个端口:

  1. nc -v -w 2 z 192.168.56.1 22 80 

扫描端口范围:

  1. nc -v -w 2 z 192.168.56.1 20-25 

4. 在Linux服务器之间传输文件

netcat允许您在两台Linux服务器之间传输文件,这两个系统都必须安装nc。

例如,要将ISO映像文件从一台计算机复制到另一台计算机并监视传输过程(使用pv实用程序),请在发送者(存在ISO文件的地方)上运行以下命令。

先安装pv命令,比如在CentOS系统上执行以下命令安装pv程序:

  1. yum -y install pv 

这将在端口3000上以监听模式(-l选项)运行nc,在服务器上运行以下命令:

服务器的IP地址为192.168.192.134

  1. tar -zcf - zcwyou.rar  | pv | nc -l -p 3000 

在接收端/客户端计算机上,运行以下命令来获取文件。

  1. nc 192.168.192.134 3000 | pv | tar -zxf - 

5. 创建一个命令行聊天服务器

您还可以使用netcat立即创建一个简单的命令行消息传递服务器。与前面的使用示例一样,必须在聊天室使用的两个系统上安装nc。

在一个系统上,运行以下命令创建在端口5000上侦听的聊天服务器。

  1. nc -l -vv -p 5000 

创建一个命令行聊天服务器

在另一个系统上,运行以下命令,在运行消息传递服务器的机器上启动聊天会话。

  1. nc 192.168.192.134 5000 

命令行聊天客户端

6. 创建一个基本的Web服务器

使用nc命令的-l选项创建基本的、不安全的web服务器。为了演示这一点,创建如下所示的html文件。

  1. vim index.html 

在文件中添加以下HTML行:

  1. <html> 
  2.         <head> 
  3.                 <title>Test Pagetitle> 
  4.         head> 
  5.         <body> 
  6.                       <p>Serving this file using Netcat Basic HTTP server!p> 
  7.         body> 
  8. html> 

保存文件中的更改并退出。

使用nc命令创建一个简单的Web服务器

然后通过运行以下命令提供服务提供HTTP服务,这将使HTTP服务器能够连续运行。

  1. while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done 

使用nc命令提供HTTP服务

然后打开web浏览器,可以使用以下地址访问内容:

  1. http://192.168.1.1:8080 

使用真实的服务地址替换192.168.1.1

注意,您可以通过按[Ctrl+ C]来停止Netcat HTTP服务器。

7. 解决Linux服务器连接问题

netcat的另一个实用功能是解决服务器连接问题。在这里,您可以使用netcat来验证服务器发送什么数据来响应客户机发出的命令。

使用下面的命令查看example.com的主页:

  1. printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80 

上述命令的输出包括web服务器发送的头部,可用于故障排除目的。

8. 查找在端口上运行的服务

您还可以使用netcat获得端口详细信息。在这种情况下,它将告诉您在某个端口后运行的是什么服务。例如,要了解特定服务器上端口22后面运行的是什么类型的服务,可以运行以下命令(使用目标服务器的IP地址替换192.168.56.110)。选项-n意味着禁用DNS解析。

  1. nc -v -n 192.168.56.110 80 

9. 创建一个流套接字

netcat还支持创建unix流套接字。下面的命令将创建并侦听一个unix流套接字。

  1. nc -lU /var/tmp/mysocket & 

检查:

  1. ss -lpn | grep "/var/tmp/" 

10. 创建一个后门

你也可以把netcat当成一个后门。然而,这需要更多的工作。如果netcat安装在目标服务器上,您可以使用它来创建后门,以获得远程命令提示符。

要启用一个后门,你需要netcat监听一个选择的端口(比如:端口3001),然后您可以按照如下方式从您的计算机连接到这个端口。

在远程服务器上运行以下命令,其中-d选项禁止从stdin读取,而-e选项指定要在目标系统上运行的命令。

  1. nc -L -p 3001 -d -e cmd.exe  

本文链接:https://www.linuxrumen.com/cyml/1800.html

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯