1、第 13 期2023 年 7 月无线互联科技Wireless Internet TechnologyNo.13July,2023作者简介:王东海(1977),男,湖南永顺人,讲师,硕士;研究方向:计算机网络技术。基于 Arduino 的改良型云木马设计与实现王东海,张 昊(苏州工业职业技术学院,江苏 苏州 215104)摘要:Badusb 是柏林的安全研究人员 Jakob Lell 和 Karste Nohl 在 2014 年 Blactk Hat 黑客大会上公布的渗透工具,可以攻破大部分使用 USB 端口的设备,若将 Badusb 和 Cobalt strike 连接在一起使用,将极大地增强
2、 Badusb 的渗透入侵能力,威胁到大部分安全防范不到位的 PC 机。为了更好地了解和防范 Badusb 的攻击方式,文章设计了一种改良型的木马,主要是将特征码进行分割加密,再组合起来解密,然后对执行木马的方式转换成 arduino 程序,烧录到 badusb 中。本设计采用将木马放置于云服务器上,使用 Badusb 来模拟键盘下载木马,以 Shellcode 的方式启动。测试结果表明,Arduino 增加了Badusb 的执行能力,可以绕过更多的杀毒软件的安全防护。关键词:Badusb;Arduino;木马;设计中图分类号:TP393 文献标志码:A0 引言 随着计算机技术的飞速发展和网络
3、的普及,给人们的生活带来极大便捷的同时,网络攻击也日益增多,大量的企业和个人都面临被攻击和入侵的风险。在 2014 年 DerbyCon 的黑客大会上1,柏林的安全研究人员公布了 Badusb 的危害,这种漏洞会危及大部分带有 USB 接口的主机,而现在使用 USB 接口的设备越来越多2,含有恶意代码的 USB 设备一旦插入电脑,可控制电脑并传播事先准备好的 USB 病毒3。因此,Badusb 的攻击手段引起了各个企业和研究人员的重视,研究其防范措施也变得十分重要。1 开发工具1.1 Arduino Arduino 是一款操作方便、易于学习的开源电子平台。电子板上的微处理器可以通过 Ardui
4、no 的编程语言进行程序编写,生成编译出的 hex 文件烧录进电子板,就可以通过微处理器来控制电路板上的各种硬件。1.2 Cobalt Strike Cobalt Strike 是一款用来进行渗透测试的工具,可以控制木马,主要功能有端口转发、端口扫描、生成木马、克隆站点等。1.3 Arduino Leonardo 芯片 Arduino Leonardo 芯片是 Atmel ATmega32u4 型微控制器,可以提供 20 个数字 IO(其中 7 个可以用来PWM 输出,12 个用作模拟输入)、一个 16 MHz 晶体振荡器、一个微型 USB 连接、一个电源插孔、一个ICSP 接头盒和一个复位开
5、关。ATmega32U4 MCU 内置了 USB 的通信模块,不需要辅助处理器,允许Leonardo 作为 HID 设备连接计算机4。2 木马设计 一般情况下,普通的木马都是通过互联网进入目标主机,但要入侵主机,需要满足的条件比较苛刻,主要有以下几个因素:(1)需要在互联网上伪装成正常软件,诱导用户下载。(2)需要通过浏览器的安全检测。(3)需要通过杀毒软件的安全检测。(4)在运行时,需要通过杀毒软件的行为侦查检测。可以看出,普通木马想要大展身手,最关键的就是如何进入被控制的主机,这种攻击手法无法针对某台特定主机进行攻击。因此,通过具有社会工程学性的攻击(即直接对物理设备)是一种比较好的选择,
6、将 Shellcode 放在服务器上,利用 Badusb 触发下载Shellcode,并运行 Shellcode,由于这个过程没有文件落地,目标主机即使发现了入侵行为,也无法将木马清除。2.1 设计思路 本设计选择采用病毒免杀技术,即通过修改源码,避免杀毒软件通过检测 MD5 值进行查杀。具体步骤如下:551第 13 期2023 年 7 月无线互联科技网络互联No.13July,2023(1)将主要函数内容复制出来。(2)将内容加密成 Base64 编码。(3)将编码分别赋值给函数$a1-$a5。(4)设置函数$a6,即将$a1-$a5 赋值给它,base64 解码并运行。2.2 Arduin
7、o 程序设计2.2.1 中文输入法绕过 Badusb 搭载 Arduino 驱动,通过 Arduino IDE 接收到 Arduino 代码后,调用 Arduino 官方的键盘库,进行模拟键盘操作控制主机,调用 Keyboard.h 库后,启动键盘模拟,用 Keyboard.println 函数对主机发送键盘的指令。Keyboard.println 函数向连接的主机发送一个键盘按键动作,以换行符和回车符结束。但在仿真环境测试中,由于中文输入法的原因,影响到该函数的回车符,回车会变成中文输入法,从而导致运行失败。为了防止这种情况发生,用 Keyboard.press(KEY_CAPS_LOCK)
8、函数调用 KEY_CAPS_LOCK 后,可以打开大写状态,绕过中文输入法,在输入完成后再将大写状态关闭。实现的关键代码如下:Keyboard.press(KEY_CAPS_LOCK);/利用打开大写绕过输入法Keyboard.release(KEY_CAPS_LOCK);2.2.2 敏感程序绕过 由于杀毒软件会对某些函数进行行为探测,例如火绒、360 安全卫士、腾讯管家等,他们会对-w hidden隐藏窗口进行检测。因此,设计过程中使用 CMD 窗口打开 PowerShell,并将 CMD 的窗口大小 cols 设置为15,lines 设置为 1,命令为:CMD/t:01/k ECHO OF
9、F&MODE CON:cols=15 lines=1。使用这种方法可以有效避免弹出警告窗口。2.2.3 云木马攻击设计 主机一般都安装了杀毒软件,木马存放在磁盘里非常容易被查杀,因此将木马放置在云服务器上,在本地下载执行,可以避免被杀毒软件查杀。云木马攻击实现的关键代码如下:Delay(1000)Keyboard.begin();delay(1500);Keyboard.press(KEY_LEFT_GUI);delay(500);Keyboard.press(r)delay(500);Keyboard.release(KEY_LEFT_GUI);Keyboard.release(r);del
10、ay(500);Keyboard.press(KEY_CAPS_LOCK);Keyboard.release(KEY_CAPS_LOCK);Keyboard.println(“CMD/t:01/k ECHO OFF&MODE CON:cols=15 lines=1”);delay(500);Keyboard.press(KEY_RETURN);Keyboard.release(KEY_RETURN);3 测试 由于云木马需要存放在公网服务器上,所以必须先搭建一台公网服务器。在公网服务器上安装 Java环境,使用 CS 框架实现云木马攻击。3.1 搭建公网服务器 搭建公网服务器的具体步骤如下:(
11、1)在阿里云上购买一台主机。(2)选择轻量级服务器。(3)将系统配置为 Centos7。(4)远程连接设置服务器密码。(5)使用 SSH 连接工具登录服务器。3.2 设置 Java 环境(1)在安装 Java 环境之前需要先更新 Yum 源,Yum 源是 Centos 的软件包管理器,主要功能是自动升级。只有更新完 Yum 源之后,安装的 Java 环境才会是最新的。执行命令如下:root iZ2ze1e64qek16ztlp1f3tZ#yum install update。(2)安装 Java 库。执行命令如下:root iZ2ze1e64qek16ztlp1f3tZ#yum-y list
12、java。(3)安装 Java11。执行命令如下:root iZ2ze1e64qek16ztlp1f3tZ#yum-y install java-11-openjdk.x86_64。(4)查看 Java 版本。安装好 Java 后,测试 Java 命令是否可以使用,执行命令如下:root iZ2ze1e64qek16ztlp1f3tZ#java-version。3.3 安装 Cobalt strike (1)使用 FTP 工具将 Cobalt strike 上传到阿里云服务器。(2)给 Teamserver 增加执行权限。具体操作步骤如下:root iZ2ze1e64qek16ztlp1f3t
13、Z#cd/651第 13 期2023 年 7 月无线互联科技网络互联No.13July,2023cobaltstrike4.0-cracked/root iZ2ze1e64qek16ztlp1f3tZ cobaltstrike4.0-cracked#chmod+x teamserver(3)执行 Teamserver 服务。设置阿里云的服务器 IP 地址和密码。(4)使用 Cobalt Strike 客户端连接服务端。在阿 里 云 的 安 全 组 中 打 开 50050 端 口,在Windows 上打开 Start-cn.bat,然后在主机上输入服务器 IP 地址,使用默认端口号,输入用户名和
14、服务器的密码,单击连接按钮即可登录。配置界面如图 1所示。图 1 CS 登录界面3.4 木马查杀测试 对设计的木马通过常用的杀毒软件进行测试,主要包括 360 安全卫士、腾讯管家和火绒。目前测试方式主要有两种,一种是静态扫描,将木马存放在磁盘中,用杀毒软件进行扫描,看能否识别;另一种是动态扫描,即木马运行时,用杀毒软件进行扫描,看是否检测到。在此采用静态扫描的方式,测试结果如表 1 所示。表 1 杀毒软件测试结果静态扫描免杀前免杀后360 安全卫士识别成功识别失败腾讯管家识别失败识别失败火绒识别失败识别失败 通过对测试结果进行比较,木马的设计选择采用PowerShell 绕过的方式。4 Bad
15、usb 烧录 烧录是对一次性可编程只读存储器进行一次写入操作。烧录时需要注意以下几个方面:(1)芯片类型的选择。若芯片类型选错,烧录时会对存储器造成不可逆的伤害。(2)烧录指令。若不小心给 Badusb 烧录了一个关机的指令,插入 Badusb 就会关机,无法对 Badusb 再进行编程,从而进入一种死循环。因此,在烧录的时候必须仔细检查代码,确认代码无误后,再进行烧录。烧录的具体步骤如下:(1)在 Arduino IDE 的工具栏中,选择项目,编译二进制文件后,编译器会要求再次编译,编译后会产生 2 个 hex 文件。编译后界面如图 2 所示,其中powershell_360.ino.wit
16、h_bootloader.leonardo.hex 文件带有 bootloader 固件,包含有引导装载程序,会在操作系统运行内核之前运行,初始化系统的软硬件,Badusb 不需要这个功能,所以选择不携带 bootloade固件的 powershell_360.ino.leonardo.hex 文件。(2)在 Progisp 中,主 控 选 择 Atmega32U4,在Parogisp 的右侧选中“调入 flash”,在弹出的窗口中,选择 hex 文件。设置好之后单击“自动”按钮,进入自动烧录状态。图 2 hex 文件生成界面5 结语 Badusb 是一种渗透能力非常强的攻击方式,对安全防范不
17、到位的主机威胁非常大。本文设计了一种改良型的木马,在设计 Arduino 程序和 Cobaltstrike 木马过程中,将木马的特征码进行分割加密,再组合起来解密,用 Shellcode 编译器对文件进行编译,将改良的木马通过杀毒软件进行测试,结果表明,Arduino 增加了 Badusb 的执行能力,可以绕过更多杀毒软件的安全防护,达到了设计的预期效果。但本测试也有一些不足,主要是选择的杀毒软件种类偏少。参考文献1ANGELA W.Shooting blackhat J.Wired,2015(1):29-31.2张慧敏.USB 存储设备安全机制的研究与实现D.成都:电子科技大学,2016.3
18、赵司琦,俞继伟,王广田,等.基于 Arduino 的Tennsy BadUSB 改良型共享云盾的设计与研究J.电脑知识与技术,2017(36):36-38.4姜建国,常子敬,吕志强,等.USBHID 攻击与防护751第 13 期2023 年 7 月无线互联科技网络互联No.13July,2023技术综述J.信息安全研究,2017(2):129-138.(编辑 沈 强)Design and implementation of the modified cloud Trojan horse based on ArduinoWang Donghai Zhang Hao Suzhou Industri
19、al Vocational and Technical College Suzhou 215104 China Abstract Badusb is a penetration tool announced by Berlin security researchers Jakob Lell and Karste Nohl in 2014 which can break most of the devices using USB port.If Badusb and Cobalt strike are connected together it will greatly enhance the
20、penetration and invasion ability of Badusb and threaten most of the PC whose security prevention is not in place.In order to better understand and prevent the attack mode of Badusb this paper designs a modified Trojan mainly the feature code segmentation encryption and then combined decryption and t
21、hen the execution of the Trojan into arduino program burn into the badusb.This design uses the Trojan placed on the cloud server using Badusb to simulate the keyboard download Trojan start in the way of Shellcode.The test results show that Arduino increases the execution power of Badusb and can bypa
22、ss the security protection of more antivirus software.Key words Badusb Arduino Trojan horse design(上接第 154 页)5查先毅.基于人工智能的 5G 无线网络智能规划和优化研究J.通信电源技术,2022(2):112-114.(编辑 王永超)Wireless network planning and optimization solution based on AIChen Shuang Hebei Shiyun Network Technology Co.Ltd.Shijiazhuang 05
23、0000 China Abstract 5G networks not only enrich people s work and life but also exacerbate the complexity and diversity of wireless networks.In addition wireless networks themselves also have the characteristics of big data which will become increasingly prominent with the arrival of the 6G era.Howe
24、ver traditional wireless network planning and optimization work mainly relies on manual methods which cannot better meet the needs of future networks.Based on the AI algorithm this article uses several methods such as automatic learning of excellent experience from existing networks automatic learni
25、ng of expert experience and self iterative mining to generate an intelligent network expert experience database from two dimensions network KPI indicators and user perception indicators.To achieve continuous self improvement and evolution of network quality fully automate the planning and optimization of wireless networks successfully breaking the intangible barriers of expert experience it will definitely play an important role in the future 6G networks.Key words wireless network planning and optimization artificial intelligence 6G big data851