通过BSSID和无线流量传输后门Payload
本文将探讨无线接入点(AP)和BSSID(MAC地址AP)。我们不借助文件系统加密和文件系统中(仅内存中)的硬编码Payload即可获得后门Payload,通过该方法可绕过所有的杀软,可以不使用Payload加密而在网络流量(本文中是无线流量)中传输Meterpreter Payload。
攻击者可通过为伪造AP更改BSSID(循环更改)执行此攻击,这意味着通过更改BSSID和将后门Payload逐步注入BSSID(伪造AP的MAC地址)就可以实现这一点。在客户端受感染系统(后门系统),可以在不经用户密码连接到伪造AP的情况下通过扫描AIR上的接入点MAC地址(BSSID)来转储这些Payload。因此,Payload的传输是由Wifi设备进行的,比如wlan(无线流量),在我们的例子中,通过扫描AIR上的BSSID而转储Payload后,是由Ethernet网络建立的Meterpreter会话进行(不使用Wifi /无线设备)。
因此结果是,恶意软件代码或本文中所述的简单的后门代码能以静默方式(本文中为Wlan)使用你的WIFI设备传输/转储Payload,最后可以用简单的C#代码获得meterpreter会话。
在我们的方案中,我们只在传输Payload(第1步)时使用Wifi设备,然后通过扫描Wifi设备MAC地址(BSSID)来转储这些Payload,然后我们的后门将通过eth0或以太网卡建立Meterpreter会话,因此在这个阶段(第2步),我们使用不借助WIFI设备的网络流量来建立Meterpreter会话。
注意:如果你想只通过WIFI设备实现这些(第1步和第2步),我们认为这在技术上是可行的,我们尚未对此进行测试,所以尚不确定。
这一方法的重点是什么?
重点是:恶意软件或后门Payload注入到WiFi设备的BSSID并通过无线流量传输是可以实现的。
扫描从伪造AP注入到BSSID的Payload,步骤:
比如,我们要传输以下Payload:
“fec8b00011ddc00945f1”
第1步:攻击者系统伪造一个名为“Fake”的接入点,MAC地址为00:fe:c8:b0:00:11
l 注意:Mac地址00:fe:c8:b0:00:11是我们注入的Payload,因此我们的Payload是“fec8b00011”
l 这部分的Payload是“fec8b00011ddc00945f1”
第2步:后门系统扫描Essid“Fake”并转储BSSID
l 注意:你的后门代码应该转储这些部分的BSSID或Mac地址fe:c8:b0:00:11 ==> fec8b00011
第3步:攻击者系统伪造一个名为Fake”的接入点和Mac地址00:dd:c0:09:45:f1
l 注意:Mac地址00:dd:c0:09:45:f1是我们注入的Payload,因此我们的Payload是“ddc00945f1”
l 这部分的Payload是“fec8b00011ddc00945f1”
第4步:后门系统扫描Essid “Fake”并转储BSSID
l 注意:你的后门代码应该转储这些部分的BSSID或Mac地址dd:c0:09:45:f1 ==> ddc00945f1
经过这两步的扫描后,你将在被感染系统(后门系统)中获得Payload fec8b00011ddc00945f1。
现在你可能已了解了该方法的工作原理,下面我们将通过linux端命令作进一步说明(第1步和第3步)。
接下来是通过命令伪造AP。
可选命令:在创建Wlan0mon之前更改无线网卡的TXPower,这些命令可以帮助你伪造更好的AP信号,所以如果需要你可以手动使用该命令。
l 注意:在通过airmon-ng创建Wlan0Mon之前应该使用这些命令,这些命令是可选的(不是必需的)
创建无线网卡的监视模式是伪造AP的重要步骤:
使用命令“airmon-ng start wlan0”,你可以为Wlan0创建“Wlan0Mon”(监视模式)。
注意:你可以手动运行此命令仅一次,或者可以在script1.sh文件中使用此命令一次,如步骤(cmd 1-1)所示。我们是在攻击者端手动使用。
第1步:攻击者系统伪造一个名为“Fake”的接入点和Mac地址00:fe:c8:b0:00:11
l 注意:Mac地址00:fe:c8:b0:00:11是我们注入的Payload,因此我们的Payload是“fec8b00011”
cmd1-1: airmon-ng start wlan0
l 注意:创建Wlan0Mon(监视模式)
cmd1-2: airbase-ng -a 00:fe:c8:b0:00:11 –essid “Fake”-I 10 -0 wlan0mon
l 注意:你需要让该伪造AP保持15秒,这样你可在15秒后通过killall命令在(cmd 1-2)中杀死这个命令
cmd1-3: sleep 15
cmd1-4: killall airbase-ng
第2步:(无关紧要,所以作者省略了第2步)。
第3步:攻击者系统伪造一个名为“Fake”的接入点和Mac地址00:dd:c0:09:45:f1
注意:Mac地址00:dd:c0:09:45:f1是我们注入的Payload,因此我们的Payload是“ddc00945f1”
cmd3-1: airbase-ng -a 00:dd:c0:09:45:f1 –essid “Fake”-I 10 -0 wlan0mon
注意:你需要让该伪造AP保持15秒,这样你可在15秒后通过killall命令在(cmd 3-1)中杀死这个命令
cmd3-2: sleep 15
cmd3-3: killall airbase-ng
从这些步骤可以看到,我们应该使用这些命令,但对于airbase-ng我们有很大的问题。
哪里有问题?
步骤(cmd 1-2)到(cmd 1-3)有问题
在步骤(cmd 1-2)后,你不能停止该airbase-ng命令,只是使用ctrl + c或杀死这个命令,你可以将其停止。所以在我们杀死该进程一次前我们的bash脚本总是停在步骤:(cmd 1-2)。
为解决该问题,我们的解决方案是为这些步骤使用2个bash脚本文件:
l 第一个是用于步骤(cmd1-2和cmd 3-1)的bash脚本文件“Script1.sh”
注意:你可以在此bash脚本的第一行中添加一次步骤(cmd 1-1)或手动完成一次。我们是手动执行了(cmd 1-1)一次。
l 第二个bash脚本是步骤(cmd 1-3&cmd 1-4&cmd 3-2&cmd 3-3)的“Script2.sh”
所以我们应该首先运行bash脚本“Script1.sh”,然后应该立即或2-3秒后运行bash脚本“Script2.sh”。
所以我们拥有的文件是:
Script1.sh文件:
Script2.sh文件:
注意:你可以在bash脚本“Script2.sh”文件中使用循环命令,比如( for )。
如图A所示,我们有用于将Meterpreter Payload注入到BSSID的script1.sh文件。
图A
从图A中可以看到,我们的MeterpreterPayload从第3行开始。我们的Meterpreter Payload是510字节。
在这种情况下,使用airbase-ng命令,你可以向我们的名为“Fake”的伪接入的BSSID注入5字节的Payload。
因此我们应该有102行用于通过airbase-ng命令将所有Payload注入BSSID。
102 * 5= 510字节
注意:每个BSSID包含5个字节的Payload。
在这种情况下,应将两个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
你还可以看到第二个脚本script2.sh文件,如图C所示。在这个文件中,你可以使用循环命令,比如(For),或者如图C所示操作。
图C
在文件“script2.sh”中,你应该杀死airbase-ng至少104次。
接下来我们通过工具NativePayload_BSSID.exe逐步解释这一方法:
步骤:
第0步:创建Wlan0mon(监视模式)。
语法:airmon-ng startwlan0
第1步:你可以用这个命令为你的后门创建一个Payload:
第2步:在该步骤中,你应该在payload.txt文件中将Payload的格式从“\xfc\x48\x83\xe4”替换为“fc4883e4”。
你可以使用该工具的 “帮助”来显示所有语法,如图1所示:
图1
现在你应该复制你的Payload字符串,并通过切换NativePayload_BSSID的NULL粘贴,如图1-1所示:
图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
l 注意:你应该如图C所示手动创建该bash脚本。
第5步:在这一步,你应该运行你的后门,即NativePayload_BSSID.exe工具,从图4可以看到,我们为IP地址192-168-1-50在kali linux中创建了Meterpreter监听器,“script1.sh”成功执行。
因此第5步中的步骤有:
步骤AA:Meterpreter监听器执行(linux)
步骤BB:运行script1.sh(linux)
步骤CC:运行后门“NativePayload_BSSID.exe”(Windows)
步骤DD:运行script2.sh(linux)
步骤CC:这时候应该使用如图4所示的语法执行后门NativePayload_BSSID
我们在script1.sh中的ESSID是“Fake”,因此正确的语法是:
如图4所示,步骤AA、BB及CC获得执行
图4
从图4可以看到,后门被用户“u1”执行,然后应该运行“script2.sh” (步骤DD),如图4所示。
此时后门代码尝试扫描AIR上的ESSID“Fake”,然后转储“Fake” 接入点的BSSID,因此,从图4可以看到,我们的代码转储了BSSID “00:ff:ff:ff:ff:ff”四次,该BSSID是启动攻击和传输Payload的标志。
因此我们在AIR上的步骤如下:
接下来应该运行script2.sh(步骤DD)
每运行Script2.sh 15秒后,该脚本将从Script1.sh文件中杀掉一个Airbase-ng命令。
因此,在这一步的AIR上,在运行Script2.sh后,我们有以下步骤:
如图5所示,我们的后门在运行“script2.sh”文件后尝试转储BSSID
图5:通过BSSID和无线流量传输后门Payload
如图6所示,你将在30分钟后获得meterpreter会话。
图6
可以看到,通过我们的C#代码创建了Meterpreter会话,2017版卡巴斯基杀毒软件一次又一次绕过了该方法,最终meterpreter会话成功创建。
注意:从图7可以看到,我们的代码在15秒的延迟后创建了Meterpreter会话,该延迟是由我们的代码导致的。所以,通过我们的代码检查该方法后可知,在转储所有payload后,你应该等15秒,然后你将获得Meterpreter会话。
图7
总结:
你的无线设备总有漏洞,因此你应该考虑以下威胁:
1. 恶意软件或后门Payload注入到WiFi设备的BSSID并通过无线流量传输是可以实现的。
2. 如果你想为你的客户端和网络基础设施使用WIFI设备,你应该考虑这些威胁。
3. 在该方法中,在开启无线网卡之前你的受感染的系统总是脆弱的,即使开启了无线网卡,攻击者也可能通过手机或伪造AP攻破你的客户端。
4. 在我们的例子中,我们的后门尝试扫描用于转储BSSID的ESSID(比如“Fake”),因此,该流量将以非常缓慢且静默的方式工作。
5. 你的防病毒软件无法检测到,你的LAN/WAN中的防火墙也绕过了这个,因为没有任何流量通过这些基础设施,在我们的例子中,流量是受感染系统无线网卡和AIR上攻击者系统无线网卡之间的直接流量。另外,由后门转储Payload后,我们将有从受感染系统向攻击者系统的经由LAN/WAN的Reverse_tcp Meterpreter会话(不用无线网卡),因此,我们有从后门系统向互联网或局域网中的攻击者系统的传出流量,该流量在大多数情况下不会被windows防火墙等阻止。
C#源代码:https://github.com/DamonMohammadbagher/NativePayload_BSSID
演示视频:https://youtu.be/W0dJGln3tls
参考来源:https://www.linkedin.com/pulse/transferring-backdoor-payloads-bssid-wireless-traffic-mohammadbagher?trk=mp-reader-card
咨询作者后的回复:
*本文作者:华为未然实验室,转载请注明来自Freebuf.COM
转载于:https://www.cnblogs.com/h2zZhou/p/6649573.html
通过BSSID和无线流量传输后门Payload相关推荐
- 利用DNS AAAA记录和IPv6地址传输后门
一.前言 在本文中,我想解释如何在DNS流量中利用IPv6地址(AAAA)记录传输Payload.在我之前的文章中,我解释了如何利用DNS和PTR记录,现在我们将讨论AAAA记录. 本文分为两部分: ...
- [转]步入成熟的无线视频应用 英特尔WiDi无线视频传输研究
当高清电视普及后,有很多用户都在纠结这样一个问题:笔记本连接高清电视看高清电影虽然效果很爽,但相当麻烦!需要连线不说,还得不断跑到电视面前过去进行播放.暂停或停止操作,很累! 而经历了数代发展的英特尔 ...
- 15Mbps!台湾网友33公里无线网络传输实测
http://network.pconline.com.cn/pingce/0907/1708485_all.html 15Mbps!台湾网友33公里无线网络传输实测 2009-07-23 16:39 ...
- 网桥如何把信号传给服务器,无线网桥传输的三种传输方式
原标题:无线网桥传输的三种传输方式 无线网桥从字面上来说,就是摒弃了传统的铜线或是光纤的一种无线网络的桥接,利用无线传输方式,以空气作为传输媒介,实现在两个或是多个网络之间建立通信的桥梁,进行网络数据 ...
- 最简单的无线充电传输电路
本文参照Youtube原视频链接: Wireless Charger | Theory & Homemade Circuit 01 无线电能传输 一.背景介绍 今天在Youtube上看 ...
- 无线功率传输(WPT)及相关标准(包括Qi)
无线功率传输(WPT)及相关标准(包括Qi) 1. 无线功率传输原理 WPT的工作原理与电源变压器相似,但有一些区别,例如变压器有两个非常靠近的线圈,通常每个线圈都缠绕在铁氧体材料上以增加磁耦合,但在 ...
- 无线能量传输(WPT)中收发线圈的等效电路模型
无线能量传输 无线能量传输是指通过电磁场将电能远距离进行传输.通过无线能量传输可将电能传输到不易通过导线传送的地方,如植入式医疗用电设备.运动中的用电设备.工作环境恶劣的用电设备. 无线能量传输收发线 ...
- 无线电能传输LCC-S拓扑/WPT MATLAB/simulink仿真模型
无线电能传输LCC-S拓扑/WPT MATLAB/simulink仿真模型 (模型左边为两电平H桥逆变器,LCC-S串联谐振,右边不可控整流结构) [控制方法]:有用滑模控制移相控制和用PI控制的两种 ...
- 无线电能传输LCL-S拓扑/WPT MATLAB/simulink仿真模型 (模型左边为两电平H桥逆变器,LCL-S串联谐振,右边不可控整流结构)
无线电能传输LCL-S拓扑/WPT MATLAB/simulink仿真模型 (模型左边为两电平H桥逆变器,LCL-S串联谐振,右边不可控整流结构) [控制方法]:有用滑模控制移相控制和用PI控制的两种 ...
最新文章
- HTC VIVE SDK 中的例子 hellovr_opengl 程序流程分析
- python获取文件名及文件扩展名的方法
- [牛客数据库SQL实战] 11~20题及个人解答
- Numpy Binary operations
- 一篇相当不错的function入门文章
- 统计文件中以某个字母开头的单词的数目
- Redis基础学习(2)
- gentoo 修改键盘映射
- pythonjam教程_colorama(pythonjam官网)
- Matlab中semilogy函数使用
- 《沉默的真 相》的舆情分析及文本挖掘(二)——以原著小说,京东商品为例
- arcgis实现cad图斑批量导入后,图斑颜色设置cad图层颜色保持一致
- 【Linux】一步一步学Linux——atq命令(139)
- 可重入锁模拟三个线程之间的通信
- 戳这里,誉天胡老师教你如何备考 HCIE-Datacom!考试通关so easy!
- SLAM传感器篇:Velodyne激光雷达
- Tableau:画桑基图(详细版)
- 山东大学计算机学院 论坛,计算机学院承办计算机学科发展高峰论坛_山东大学...
- python爬取微博非好友圈_python爬取微博好友圈信息
- cad 计算机图库,cad模型图库(cad图库怎么用)
热门文章
- 云服务器带宽解释及下载速度分析
- 论文精讲 | 一种隐私保护边云协同训练
- Java、JSP基于Web的师生互动系统的设计与实现
- 【毕设教程】单片机RFID模块的使用 - 物联网 嵌入式 毕业设计 stm32
- win10c语言弹出框,win10系统启动程序时弹出异常代码c0000005的解决技巧
- 小志志和小峰峰的日常(SG函数)
- 一款在线视频 App,基于 Material Design + MVP + RxJava + Retrofit + Realm + Glide
- 巴菲特午餐终局谜题何时揭晓,中标者是不是孙宇晨?
- MySQL事件的创建和执行
- html获取问号后的参数,html问号后的值怎么获取