该篇主要介绍可以使用哪些方式执行恶意代码。
1. 云命令
利用失陷的云环境在云端执行恶意代码,比如ecs服务器,云函数等
2. 命令和脚本解析器
2.1 powershell
powershell是windows上的交互式命令解析执行工具,类似于cmd命令。powershell命令能使用操作系统提供的各种功能,包括但不限于文件操作,网络相关操作,进程相关操作等。很多难清理的病毒,远控都会使用到powershell,实现没有文件落盘的,内存恶意病毒。
2.2 AppleScript
AppleScript是macos上的交互式命令解析执行工具。
2.3 cmd
cmd是windows上的交互式命令解析执行工具.
2.4 Unix Shell
shell解析器是unix|linux上的交互式命令解析执行工具.
2.5 Visual Basic
VB是windows上提供的一种脚本语言,可以用来编写各种恶意的宏携带在各种办公软件中。同时使用vba也可以开发恶意程序
2.6 Python
Python是一种跨平台的脚本语言,因为入门简单,且三方库丰富,可以用来做快速开发,常用来开发脚本,定制红队工具
2.7 JavaScript
JavaScript是一种脚本语言,随着nodejs的发展,JavaScript可用来做前端,后端代码的开发,很多web安全相关的漏洞,病毒,都是使用javaScript开发的
2.8 网络设备CLI
为了方便操作配置,各种网络设备都会提供cli功能,用户可以通过线缆或远程等方式操作网络设备。通过配置可以控制网络链路,规避恶意流量的检测
2.9 云API
云服务提供商提供api接口,方便用户做权限管理,也会有在浏览器中提供云端命令解释器,同时也提供各种sdk方便用户调用功能,扩展功能
2.10 AutoHotKey和AutoIt
这也是脚本语言,可以模拟用户操作。使用脚本编写各种恶意软件,然后打包成exe文件
3. 容器命令
docker或者k8s等容器的相关命令,可以在容器构建时执行命令,也可以在构建好的容器中执行命令
4. 部署容器
可用使用恶意镜像创建容器,也可以在容器中执行恶意命令,规避主机上的检测工具。
5. 利用客户端程序漏洞
利用浏览器漏洞,利用office等办公软件的漏洞,利用常用的第三方软件
6. 进程间通信
6.1 组件对象模型
com组件是很多windows服务的基础,他可以封装一组行为,供其他语言调用
6.2 动态数据交换
6.3 XPC服务
利用mac系统提供的xpc服务,执行代码
7. 本地API
本地api是操作系统提供的底层系统功能调用的接口,操作系统会在本地api的基础上封装更高级的api方便用户使用。本地api的使用可以规避安全软件的hook检测。
8. 计划任务
8.1 At
8.2 Cron
8.3 schtasks
8.4 系统定时器
8.5 容器编排工具的调度任务
9. 无服务执行体
使用云服务商提供的功能,云端执行命令,比如云函数
10. 共享模块
将恶意代码编译成共享模块,方便恶意行为的复用,比如dll文件,so文件等
11. 软件开发中使用的工具
很多开发流程中使用的CI/CD工具都具有执行代码的能力,比如Jenkins
12. 系统服务
12.1 Launchctl
12.2 服务工具
sc.exe net.exe psexec.exe等工具可以用来创建系统服务
13. 用户执行
13.1 恶意链接
利用社会工程学,诱导用户点击恶意链接
13.2 恶意可执行文件
13.3 恶意镜像
用户使用恶意镜像创建的环境,会执行镜像内置的恶意行为。比如恶意操作系统镜像。恶意docker镜像等
14. WMI
windows提供的管理数据和操作的基础设施。提供丰富的扩展功能,比如创建自定义生产者消费者,扩展功能。也可以使用系统默认功能,如创建系统自启动任务