前提
目的是做一个恶意软件,实现基本恶意功能,当前版本专注于实现基本功能,只有基本界面和功能。那么一个恶意软件应当具有什么功能呢,下面主要研究的是怎么做,而不是防御和绕过检测。它将是一个纯粹的恶意软件。以下信息pc和安卓都有,只是将基于Android端开发。。。
安卓平台的特殊性
基于 Linux 内核: Android 系统基于 Linux 内核,这意味着一些 Linux 系统上的 Rootkit 技术也可以应用于 Android。
分层架构: Android 系统采用分层架构,包括内核层、硬件抽象层 (HAL)、原生层、系统层和应用层。这使得恶意软件可以攻击不同的层级。
权限管理: Android 有严格的权限管理机制,应用程序必须请求权限才能访问受保护的资源。
启动过程: Android 的启动过程包括 Bootloader、Kernel、Init 进程、Zygote 进程和 System Server 等关键步骤。
安全机制: Android 有多种安全机制,例如,SELinux、安全启动、应用签名、代码扫描等。
恶意功能
破坏性
数据损坏和篡改:
- 文件覆盖、数据加密,恶意修改数据
无法正常使用业务:
- ddos
- 无限弹窗
- 锁屏功能
系统崩溃:
- 占用CPU、内存资源、制造错误等。破坏Android的Binder机制、破坏Android的SELinux策略
无法初始化系统:
- 利用漏洞修改系统文件,防止用户进入恢复模式,强制重启设备,以及加密手机存储等方式。
破坏恢复机制:
- 删除备份、修改恢复设置
恶意操作(非预期,不被希望的操作)
恶意下载:
- 路过式下载,静默下载,强制安装,捆绑安装,绕过安全防护进行下载,Android环境下绕过应用商店的检测
在后台自启动运行:
- 恶意软件通常在用户不知情的情况下运行,消耗设备资源,降低设备性能。利用设备进行挖矿操作。 在Android系统中,可以使用 AlarmManager 实现定时任务,或者使用 WorkManager 来执行一些后台任务。
阻止用户卸载:
- 恶意软件会采取一些手段,阻止用户卸载该应用程序。从权限层面进行限制,例如阻止卸载界面显示,设置需要密码才能卸载。使用 DeviceAdmin 权限、修改系统设置、伪造卸载界面等
窃取信息:
- 利用漏洞非法读取信息,例如浏览器历史记录, Cookie, 账号密码,文件信息。利用社会工程学骗取信息
发送短信或拨打电话:
- 恶意软件可能在后台发送短信(可能包含诈骗链接)或拨打收费电话,给用户造成经济损失。
获取Root权限:
- 如果恶意软件获取了Root权限,它可以进行更深入的系统控制,例如安装系统级别的恶意代码。
修改系统设置:
- 修改系统设置,禁用安全功能,或更改网络设置,使其更容易进行其他恶意活动。修改注册表、操作底层文件系统。禁用安全更新、修改DNS设置、更改网络代理
代码操作
进程注入
进程注入是指将恶意代码注入explorer.exe
或svchost.exe
等合法进程。这有助于通过在受信任的进程中执行来隐藏恶意软件的恶意意图。 可以使用 CreateRemoteThread、WriteProcessMemory 等 API 来实现代码注入。进程空心
进程挖空是恶意软件在暂停合法进程、用恶意代码替换其代码并使用恶意代码恢复执行时使用的一种技术。这使得恶意软件看起来像是一个合法进程。可以使用 CreateProcess 和 NtUnmapViewOfSection 等 API 来实现进程空心
后门
后门可以分为本地后门和远程后门。本地后门可以利用系统漏洞,远程后门可以利用网络通信。
隐藏后门: 修改系统日志,隐藏监听端口,进行数据加密等等。
隐藏其存在并允许攻击者远程控制计算机的恶意软件。通常隐藏在操作系统底层,难以检测和清除。常用于维护对受感染系统的持久访问。
可以考虑使用Android的BroadcastReceiver,Service等组件来建立后门。
命令与控制c2
许多恶意软件使用一种称为 c2(命令和控制)的东西。这是许多恶意软件的关键组件,尤其是在 APT(高级持续性威胁)、僵尸网络和其他形式的远程访问恶意软件中。此 c2 充当中心点,攻击者可以在此控制受感染机器上的恶意软件并与之通信。此基础设施允许攻击者远程向恶意软件发出命令并协调恶意软件将采取的活动。
c2 通常做什么?
感染和回调
一旦恶意软件感染了主机,它就会回调到 c2 以建立连接,并让攻击者知道系统已被入侵。这也称为
beaconing
。通常,恶意软件会嵌入 IP 地址(恶意软件中也可能包含加密配置)、域或 URL,作为 c2 的联系点。在复杂的攻击中,恶意软件可能会使用 DGA(域生成算法)来创建随机域,从而使阻止或跟踪 c2 通信变得更加困难。
持久性
- 恶意软件将与 c2 保持持续连接,以发送数据、接收命令或发送定期“ping”以让 c2 知道它仍然活跃。它甚至可能是所有这些的混合。
命令执行
c2 还用于远程向恶意软件发送命令。这些命令可能包括:
额外的有效载荷下载。
从系统中窃取数据。
接收并执行系统上的命令。
从受感染的系统向其他目标发起攻击。
数据泄露
恶意软件 c2 服务器通常用于从受感染的系统中窃取数据。
键盘记录器可能会使用 c2 来保存记录的键盘。
勒索软件可能会使用 c2 窃取数据,以便随后对被勒索的公司进行敲诈勒索。
窃取者使用 c2 窃取受损凭证和银行信息。
更新
- 有时(这种情况很少见)恶意软件可能会使用 c2 更新自身,增加新功能。在一些复杂的攻击中,恶意软件是模块化的,这允许攻击者根据攻击阶段从 c2 动态加载“插件”或模块到恶意软件中。
混淆/逃避
- c2 通常会设置加密通信通道,以使窥探者更难确定 c2 通信正在做什么。
重定向和代理
Fast flux 是某些恶意软件用来频繁更改关联域名 IP 地址的技术。它可以解析大量 IP 地址,这些 IP 地址可充当实际 c2 基础设施的临时代理。
c2 服务器可能使用反向代理(也称为跳转箱),这可能是一个充当原始服务器中继的受感染系统。
可能的 C2 协议
HTTP(s)
- 通常用于隐藏与正常网络流量相关的流量。恶意软件将向 c2 发送 GET/POST 请求。
DNS 隧道
- 一些恶意软件会在 DNS 查询中编码命令或数据。由于 DNS 流量通常不受密切监控,因此这种情况可能不会被注意到。
自定义协议
一些更复杂的恶意软件家族会创建专有协议来隐藏其 c2 连接。
- 值得注意的是,这很难实现,如果您不知道自己在做什么,就不应该尝试。
P2P(点对点)
- 僵尸网络使用 P2P 通信。每个受感染的系统都可以在需要时充当 C2,这使得摧毁 C2 基础设施变得更加困难。
C2 架构: C2 可以使用多种架构,例如:集中式架构、分布式架构、点对点架构等。
C2 隐藏: C2 通常会使用多种技术来隐藏其踪迹,例如,域名生成算法(DGA)、Fast flux、加密通信等。
C2 检测: 安全人员会使用多种技术来检测 C2 通信,例如,网络流量分析、域名信誉分析、行为分析等。
C2 反制: 安全人员会采取多种手段来反制 C2,例如,阻断 C2 通信、追踪 C2 服务器、清除受感染设备等。
基本 c2 示例
正如您所读到的,c2 被设计为恶意软件的“通信中心”,用于接收命令并决定下一步要做什么。下面是一个用 Python 编写的 c2 的基本示例:
复制
1 | import socket |
隐藏自身
不出现桌面图标,伪装成系统进程,将代码注入到合法进程
支付劫持
劫持用户的支付信息,进行盗刷
激活方式
特定用户触发:特定时间,特定地区,特定时间
事件:充电,接入wifi
水平仪、加速度传感器,陀螺仪
权限
要完成以上恶意操作,都需要“权限”,那就不能直接运行直接调用权限吗?不能,那样会无法启动
[!NOTE] 权限
Android 权限系统提供的控件可提高用户对应用权限的认知,还可以限制应用对敏感数据的访问。在 Android 8.0 及更低版本中,权限配置包括将应用列入许可名单。特权应用如果未列入许可名单,即使位于priv-app
路径中,也一样会被停用。在 Android 9 及更高版本上,如果设备尝试使用未正确列入许可名单的应用,则系统将无法启动。
权限的定义: 在移动操作系统中,权限是应用程序访问受保护资源(例如:摄像头、麦克风、位置信息、联系人等)的许可。为了保护用户的隐私和安全,应用程序必须在获得用户明确同意的情况下才能使用这些资源。
权限的分类(以Android为例):
普通权限(Normal Permissions): 这些权限不会直接影响用户的隐私,例如:访问网络、保持屏幕唤醒等。应用程序可以直接声明这些权限,而无需用户授权。
危险权限(Dangerous Permissions): 这些权限可能会影响用户的隐私或安全,例如:访问联系人、读取短信、获取地理位置等。应用程序必须在运行时向用户请求这些权限。
特殊权限(Special Permissions): 这些权限涉及更敏感的操作,例如:修改系统设置、在其他应用之上显示内容等。应用程序必须在运行时请求这些权限,并且用户必须明确授权。
运行时权限请求(Runtime Permissions): 为了提高用户体验和安全性,Android引入了运行时权限请求。应用程序必须在运行时向用户请求危险权限,用户可以根据自己的意愿授予或拒绝这些权限。
所以获取“权限”需要特殊手段
获取权限
大致分为利用漏洞强制获取,和将权限设置放入恶意软件直接获取
利用漏洞:
操作系统漏洞: 操作系统中可能存在一些安全漏洞,恶意软件可以利用这些漏洞直接获取权限,而无需用户授权。Android的漏洞利用技术, 例如:利用栈溢出、堆溢出、Use-After-Free 等漏洞。
应用漏洞: 某些应用程序可能存在安全漏洞,恶意软件可以利用这些漏洞来获取其他应用程序的权限。
权限绕过:
覆盖攻击(Overlay Attack): 恶意软件可以创建一个假的权限请求界面,覆盖在真实的权限请求界面之上。当用户点击“允许”时,实际上是将权限授予了恶意软件。
点击劫持(Clickjacking): 恶意软件可以将真实的权限请求界面隐藏在一个不可见的透明层之下,当用户点击透明层时,实际上是点击了真实的权限请求界面。
权限滥用: 恶意软件可以利用用户已经授予的权限,来进行其他恶意操作。 例如,一个获取了网络权限的恶意程序,可以下载其他恶意软件,或者将用户的隐私数据上传到服务器。
隐蔽授权: 利用用户在安装应用时的习惯,在用户不知情的情况下诱导用户点击,从而获得权限。
辅助功能服务(Accessibility Service):利用 Accessibility Service 来获取用户屏幕信息、模拟用户操作、进行权限提升。无障碍服务只能用于帮助残障用户使用 Android 设备和应用程序。它们在后台运行,并在触发
[AccessibilityEvent](https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent)
s 时接收系统的回调。此类事件表示用户界面中的某些状态转换,例如,焦点已更改、单击了按钮等。此类服务可以选择请求查询活动窗口内容的功能。开发无障碍服务需要扩展此类并实现其抽象方法。
权限提升:
Root权限: 恶意软件可以尝试获取设备的Root权限。一旦获取Root权限,它就可以绕过所有的权限检查,从而访问任何受保护的资源。
系统权限: 一些特殊的系统应用程序可能拥有更高的权限,恶意软件可以尝试利用这些权限来获取其他应用程序的权限。
Android的Accessibility Service来进行权限提升。
社会工程学:
欺骗: 恶意软件可以伪装成一个无害的应用程序,诱骗用户授予其不必要的权限。
诱导: 恶意软件可以通过各种方式,例如:提供免费服务、奖励,来诱导用户授予权限。
模仿: 恶意软件可以伪装成系统界面,让用户误以为自己在操作系统界面,从而点击授予权限。
其他手段:
预装恶意软件: 恶意软件可以被预装在设备中,这种情况下,用户可能根本无法察觉。
供应链攻击: 恶意软件可以通过供应链的方式传播,例如:攻击软件开发商或应用商店。恶意软件伪装成正常软件在应用商店里,吸引别人下载,它既可以直接获取所要的信息(比如步数app获取步数信息),也可以间接的获取权限(比如将确定按钮放在透明层之下)
root权限
只有普通权限是不够的:
权限限制: 普通权限只能访问有限的系统资源和API,无法进行深层次的恶意操作。
安全沙箱: 普通应用程序运行在安全沙箱中,无法访问其他应用程序或系统资源,这限制了恶意软件的攻击能力。
用户授权: 普通应用程序需要用户明确授权才能访问敏感权限,这使得恶意软件难以在用户不知情的情况下获取敏感信息。
无法持久化: 普通应用程序无法在系统启动时自动启动,也无法在用户卸载后仍然运行。
无法进行底层操作: 普通应用程序无法进行底层的系统操作,例如修改内核、驱动、固件等。
无法阻止卸载: 普通应用程序难以阻止用户卸载。
所以通常需要获得更高的权限,root权限
利用漏洞:
内核漏洞: Android内核(基于Linux)中存在一些安全漏洞,恶意软件可以利用这些漏洞来直接获取root权限。 例如:利用脏牛漏洞,提权到root权限。
驱动漏洞: 设备驱动程序中也可能存在漏洞,恶意软件可以利用这些漏洞来获取root权限。
系统应用漏洞: 一些系统应用程序,例如:系统服务, 可能会存在漏洞,恶意软件可以利用这些漏洞来获取root权限。
Bootloader 漏洞: 恶意软件可能会利用Bootloader的漏洞,来获取root权限。
Recovery模式漏洞: 恶意软件可以利用Recovery模式的漏洞, 来获取root权限。
OTA更新漏洞: 恶意软件可以利用OTA更新的漏洞, 来获取root权限。
利用Root工具:
Root工具: 一些Root工具(例如:Magisk、Kingroot、SuperSU)可以帮助用户获取root权限。 恶意软件可以利用这些Root工具,或者伪装成这些Root工具,来诱骗用户授予其root权限。
预装Root工具: 恶意软件开发者可能会将恶意软件预装在Root工具中,当用户安装Root工具时,恶意软件也会被安装。
劫持Root工具: 恶意软件可能会劫持用户安装的Root工具,从而获取Root权限。
权限列表
读取和修改任何文件: 恶意软件可以读取和修改系统中的任何文件,例如:修改配置文件、删除系统文件、注入恶意代码。
安装系统级恶意软件: 恶意软件可以安装系统级的恶意软件,例如:后门、Rootkit,这些恶意软件难以被用户发现和清除。
禁用安全防护: 恶意软件可以禁用系统自带的安全防护功能,例如:SELinux、安全启动、应用验证等,从而提升自身的攻击能力。
隐藏自身: 恶意软件可以隐藏自身的进程,服务, 使得其难以被检测到。
劫持系统服务: 恶意软件可以劫持系统服务,进行各种恶意操作,例如:拦截短信、窃取支付信息等。
修改系统设置: 恶意软件可以修改系统的设置, 例如 修改DNS设置, 禁用安全更新等。
劫持用户输入: 恶意软件可以劫持用户的输入,记录用户的键盘输入、触摸输入等,从而窃取敏感信息。
远程控制: 获得root权限后,可以建立远程控制通道, 完全控制设备。
提升持久化能力: 获得root权限后,可以修改系统启动文件,使得恶意软件在系统重启后仍然可以运行。
防止卸载: 获得root权限后,可以阻止用户卸载恶意软件,例如删除卸载界面,修改系统文件等。
窃取敏感数据: 恶意软件可以窃取用户的敏感数据,例如:联系人、短信、通话记录、位置信息、照片、视频、音频等。
发起高级攻击: 可以利用root权限,进行各种高级攻击, 例如 DDoS攻击, 僵尸网络等。
如下:READ_CONTACTS (读取联系人)
READ_SMS / RECEIVE_SMS (读取短信/接收短信)
READ_CALL_LOG (读取通话记录)
READ_EXTERNAL_STORAGE (读取外部存储,如照片、视频、音频)
ACCESS_FINE_LOCATION / ACCESS_COARSE_LOCATION (读取地理位置)
READ_CLIPBOARD (读取剪贴板)
GET_TASKS (获取应用列表,这个权限在新版本被限制)
INTERNET (访问网络,用于与远程服务器通信)
WAKE_LOCK (保持设备唤醒,用于后台运行)
INSTALL_PACKAGES (安装其他应用)
SEND_SMS (发送短信)
CALL_PHONE (拨打电话)
CHANGE_WIFI_STATE (更改 Wi-Fi 状态)
WRITE_SETTINGS (修改系统设置)
PACKAGE_USAGE_STATS (访问应用使用统计,需要用户授权)
ACCESS_NETWORK_STATE (获取网络状态)
WAKE_LOCK (保持设备唤醒,用于长时间执行任务)
SYSTEM_ALERT_WINDOW (显示浮动窗口,用于显示广告)
SYSTEM_ALERT_WINDOW (锁定屏幕)
传播恶意软件本体
电子邮件/手机短信
钓鱼邮件,伪装发件人。欺骗收件人使其点击邮件链接
EK
exploit kit
路过式下载如此盛行是因为用于感染网站的攻击工具包很容易在黑市上买到,这种攻击包非常好用,并且是自动化的,让攻击者可以在尽可能多的服务器上散播恶意软件。
EK是一种基于服务器的框架,它使用漏洞利用浏览器相关软件应用程序中的漏洞,在用户不知情的情况下感染客户端(Windows 台式机或笔记本电脑)
大多数 EK 的作者使用软件即服务 (SaaS) 作为其业务模型。此模型有时也称为平台即服务 (PaaS)、恶意软件即服务 (MaaS) 或 EK 即服务 (EKaaS)。
示例EK:
Angler:https://www.malwarebytes.com/blog/threats/angler Angler 是网络犯罪分子用来分发恶意软件(从勒索软件和银行木马到广告欺诈)的领先漏洞利用工具包之一。与大多数其他漏洞利用工具包一样,它专注于浏览器及其插件中基于 Web 的漏洞。Angler 是当时为数不多的提供无文件感染的漏洞利用工具包之一,其中恶意软件从不接触磁盘,仅驻留在内存中以避免被发现。 Angler 自 2016 年 6 月以来一直处于不活跃状态。
RIG EK:https://resources.prodaft.com/rig-exploit-kit-report RIG EK 是一项以经济为动机的计划,自 2014 年以来一直很活跃。尽管它尚未在最近的活动中实质性地改变其漏洞利用,但威胁行为者分发的恶意软件的类型和版本不断变化。更新样本的频率从每周更新到每天不等。
Trojan dropper:https://www.malwarebytes.com/blog/threats/trojan-dropper 下载程序和植入程序是适用于各种类型恶意软件(如特洛伊木马和 Rootkit)的帮助程序。通常,它们以脚本(VB、批处理)或小型应用程序的形式实现。
广告
- 路过式下载欺诈:
- 这些广告会在用户仅仅是查看广告时,就自动将恶意软件下载到用户的设备上,而无需用户点击。这是利用用户浏览器或操作系统的漏洞。
- 重定向广告:
- 这些广告会将用户重定向到不需要或恶意的网页。常见的目的地包括窃取个人信息的网络钓鱼网站、技术支持诈骗网站或恶意软件下载页面。
- 欺骗性广告:
- 需要擅长利用用户心理,引导用户点击,适用于一些必须交互才能进行的攻击
- 恶意广告:
- 指的是包含恶意代码的广告。它涉及将恶意代码注入合法的广告网络,使攻击者能够传播恶意软件或将用户重定向到恶意网站。
- 广告注入:
- 基于浏览器扩展的:恶意的浏览器扩展程序可以在用户不知情的情况下,将广告注入到网页中。这些广告可能具有欺骗性,将用户重定向到网络钓鱼网站,或下载恶意软件。
- 基于路由器的:被攻破的路由器可以将广告注入到所有网络流量中,通常用户对此毫不知情。
- 基于应用程序的 : 一些移动应用程序,特别是来自非官方来源的应用程序,可以将不需要的广告注入到其他应用程序或操作系统本身中。
应用商店
直接上传在应用商店
应用商店(例如:Google Play Store、Apple App Store)为了保护用户安全,会对上架的应用程序进行审核,以检测是否存在恶意行为。 然而,恶意软件开发者会使用各种技术手段,绕过这些检测,将恶意应用程序伪装成合法应用程序,上传到应用商店。
代码混淆(Code Obfuscation):
原理: 将应用程序的代码进行混淆,使得代码难以阅读和理解。 这包括重命名变量、函数、类名,以及插入无意义的指令等。
作用: 增加恶意代码分析的难度,使得应用商店的自动检测工具难以识别恶意行为。
常用工具: ProGuard,DexGuard 等。
动态加载(Dynamic Loading):
原理: 将恶意代码放在服务器上,应用程序在运行时从服务器下载并加载这些代码。
作用: 避免将恶意代码直接包含在应用程序的安装包中,使得应用商店的静态分析工具难以检测到。
实现: 使用 DexClassLoader,PathClassLoader 等机制进行动态加载。
延时加载(Delayed Loading):
原理: 恶意代码不会在应用程序启动时立即执行,而是在经过一段时间后,或满足特定条件时才执行。
作用: 避免在应用商店审核期间触发恶意行为,使得应用商店的审核人员难以察觉。
实现: 使用 AlarmManager、WorkManager 等机制进行定时或延时执行。
服务器控制(Server-Side Control):
原理: 恶意代码的行为受服务器的控制,服务器可以随时改变恶意代码的行为。
作用: 在应用商店审核期间,服务器可以指令应用程序执行正常行为;而在用户安装后,服务器则可以指令应用程序执行恶意行为。
实现: 使用C&C服务器 (Command and Control Server)进行远程控制。
加壳(Packing):
原理: 使用加壳工具对应用程序的安装包进行加密或压缩,使得安装包难以分析。
作用: 增加恶意代码分析的难度,使得应用商店的检测工具难以识别恶意行为。
原理: 在原有的程序外层加一个保护壳。加壳后的程序在运行时,会先运行加壳程序,然后由加壳程序负责解密原始程序,并将控制权转交给原始程序
白名单(Whitelisting):
原理: 恶意代码只会针对特定的用户或设备执行,而对应用商店的审核人员则执行正常行为。
作用: 使得应用商店的审核人员难以发现恶意行为。
实现: 使用设备信息、地理位置信息、IP 地址等来进行白名单判断。
社会工程学(Social Engineering):
原理: 将恶意应用程序伪装成合法的应用程序,例如:游戏、工具、壁纸等,诱骗用户下载。
作用: 使得用户放松警惕,主动下载恶意应用程序。
实现: 使用精美的应用图标、诱人的应用名称、虚假的用户评论等。
利用合法功能:
原理: 恶意应用程序使用应用程序的合法功能,来实现恶意目的。
作用: 使得应用商店难以区分应用程序的合法行为和恶意行为。
实现: 例如:使用 Accessibility Service 读取用户屏幕信息、使用DownloadManager 下载恶意代码、使用BroadcastReceiver监听系统事件等。
漏洞利用:
原理: 恶意应用程序利用应用商店的审核系统的漏洞,绕过审核。
作用: 使得恶意应用可以成功上架到应用商店。
购买应用:
原理: 恶意软件开发者会收购一些合法应用,然后通过更新的形式,注入恶意代码。
作用: 利用用户对已安装应用的信任,来获取权限,并执行恶意代码。
设备传播
usb,蓝牙,NFC,wifi,QR扫码
1. USB 传播:
传播路径:
恶意软件植入: 恶意软件首先需要被植入到USB存储设备中,这可以通过多种方式实现:
人工感染: 攻击者手动将携带恶意软件的文件复制到USB设备中。
自动感染: 攻击者利用受感染的计算机,当USB设备插入计算机时,恶意软件自动复制到USB设备中。
供应链攻击: 攻击者控制USB设备的生产商,将恶意软件预装到USB设备中。
设备插入: 用户将受感染的USB设备插入计算机或移动设备中。
自动执行: 如果目标系统启用了自动播放功能,或者用户手动执行了USB设备中的恶意文件,恶意软件将被激活。
感染和传播: 恶意软件在目标系统上执行,并开始进行各种恶意操作,例如:窃取数据、安装后门、传播自身到其他USB设备或网络中。
传播方法:
利用自动播放: 恶意软件通常会利用Windows等系统的自动播放功能,当用户插入USB设备时,恶意软件自动执行。
伪装成合法文件: 恶意软件会伪装成合法的文件,例如:图片、文档、视频等,诱骗用户手动执行。
LNK文件漏洞: 恶意软件会利用LNK文件漏洞,在用户点击LNK文件时执行恶意代码。
隐藏恶意文件: 恶意软件会使用隐藏属性,隐藏恶意文件,让用户难以发现。
所需权限:
读取和写入文件: 需要读取和写入USB设备上的文件。
执行程序: 需要执行恶意程序。
系统权限: 可能需要系统权限来进行更深层次的恶意操作, 例如 修改注册表, 安装系统服务等。
Android权限: 需要 READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE 等权限来访问USB设备,如果涉及到执行恶意代码,可能需要更高的权限。
相关资料:
2. 蓝牙传播:
传播路径:
恶意软件蓝牙传播: 恶意软件需要具有蓝牙传播能力,例如:蓝牙蠕虫。
设备配对: 攻击者利用漏洞或社会工程学,使目标设备与攻击者的设备配对。
文件传输: 恶意软件通过蓝牙文件传输协议,将自身发送到目标设备。
执行: 目标设备接收到恶意文件后,用户如果执行该文件,则会激活恶意软件。
感染和传播: 恶意软件在目标设备上执行,并开始进行各种恶意操作,例如:窃取数据、安装后门、传播自身到其他蓝牙设备或网络中。
传播方法:
利用蓝牙漏洞: 恶意软件会利用蓝牙协议漏洞,自动进行设备配对和文件传输。
伪装成合法文件: 恶意软件会伪装成合法的文件,例如:图片、音频等,诱骗用户手动执行。
蓝牙服务漏洞: 攻击者可以利用蓝牙服务漏洞来获取设备权限。
所需权限:
蓝牙权限: 需要蓝牙权限进行设备配对、文件传输。
执行程序: 需要执行恶意程序。
系统权限: 可能需要系统权限来进行更深层次的恶意操作。
Android权限: 需要 BLUETOOTH, BLUETOOTH_ADMIN 等权限。
3. NFC 传播:
传播路径:
恶意NFC标签: 攻击者将恶意软件的信息写入NFC标签中。
设备接触: 用户将设备靠近恶意NFC标签,触发NFC读取。
恶意内容读取: 设备读取NFC标签中的恶意信息, 例如:恶意URL,恶意应用下载链接。
恶意执行: 设备跳转到恶意网站、下载恶意应用程序,用户如果执行这些恶意操作,则会激活恶意软件。
感染和传播: 恶意软件在目标设备上执行,并开始进行各种恶意操作。
传播方法:
恶意URL: NFC标签中包含恶意URL,当用户读取标签时,浏览器会自动打开恶意网址。
恶意应用下载: NFC标签中包含恶意应用的下载链接,当用户点击链接时,会自动下载恶意应用。
利用NFC漏洞: 恶意软件会利用NFC协议漏洞,自动执行恶意代码。
社交工程学: 攻击者可以利用社会工程学来诱骗用户去扫描NFC标签。
所需权限:
NFC权限: 需要NFC权限进行NFC读取。
网络权限: 如果NFC读取的结果是网址,那么需要网络权限进行浏览。
文件下载: 如果NFC读取的结果是应用下载,那么需要下载权限。
系统权限: 可能需要系统权限来进行更深层次的恶意操作。
Android权限: 需要 NFC 权限。
示例软件:
- NGate:NGate Android 恶意软件中继 NFC 流量以窃取现金:https://www.welivesecurity.com/en/eset-research/ngate-android-malware-relays-nfc-traffic-to-steal-cash/
4. Wi-Fi 传播:
传播路径:
恶意Wi-Fi热点: 攻击者创建一个恶意Wi-Fi热点,诱骗用户连接。
流量劫持: 当用户连接到恶意Wi-Fi热点时,攻击者可以劫持用户的网络流量。
中间人攻击: 攻击者可以拦截用户的网络请求,修改用户的网页,或者注入恶意代码。
恶意下载: 当用户访问网页时,攻击者可以使用中间人攻击技术,将恶意软件下载到用户的设备上。
感染和传播: 恶意软件在目标设备上执行,并开始进行各种恶意操作。
传播方法:
中间人攻击: 攻击者利用中间人攻击技术,拦截用户的网络流量,注入恶意代码。
DNS劫持: 攻击者利用DNS劫持技术,将用户重定向到恶意网站。
恶意软件传播: 在用户的设备上植入恶意软件, 并传播给网络中的其他设备。
恶意软件传播: 当设备连接到恶意WIFI的时候,会将恶意软件自动下载到设备上。
钓鱼: 攻击者可以利用钓鱼网站,诱骗用户输入账号密码等信息。
所需权限:
网络权限: 需要网络权限进行Wi-Fi连接和数据传输。
文件下载: 需要下载权限,下载恶意软件。
系统权限: 可能需要系统权限来进行更深层次的恶意操作。
Android权限: 需要 ACCESS_WIFI_STATE, CHANGE_WIFI_STATE, INTERNET 等权限。
5. QR 码传播:
传播路径:
恶意QR码: 攻击者生成一个包含恶意信息的QR码。
设备扫描: 用户使用移动设备扫描恶意QR码。
恶意URL: 恶意QR码包含恶意URL,当用户扫描QR码时,浏览器会自动打开恶意网址。
恶意下载: 用户如果点击恶意网址,可能会下载恶意软件。
恶意信息展示: 恶意QR码可能包含恶意文本信息或者链接,诱导用户输入账号密码等信息。
感染和传播: 恶意软件在目标设备上执行,并开始进行各种恶意操作。
传播方法:
恶意URL: QR码中包含恶意URL,当用户扫描QR码时,浏览器会自动打开恶意网址。
恶意应用下载: QR码中包含恶意应用的下载链接,当用户点击链接时,会自动下载恶意应用。
社交工程学: 攻击者会把恶意二维码伪装成各种信息来诱骗用户进行扫描。
所需权限:
摄像头权限: 需要摄像头权限进行QR码扫描。
网络权限: 如果QR码扫描的结果是网址,那么需要网络权限进行浏览。
文件下载: 如果QR码扫描的结果是应用下载,那么需要下载权限。
Android权限: 需要 CAMERA 权限。
应用
广告(弹窗)
广告(弹窗)类型:
根据技术实现分类(Android 特有):
Activity 弹窗:
使用 Android 的 Activity 组件实现的弹窗。
具有较高的灵活性和自定义能力,可以实现复杂的动画效果和交互逻辑。
Dialog 弹窗:
使用 Android 的 Dialog 组件实现的弹窗。
比较轻量级,适用于显示简单的提示信息或确认对话框。
Notification 弹窗:
使用 Android 的 NotificationManager 实现的弹窗,通常显示在通知栏中。
可以显示各种通知信息,例如消息、提醒或进度。
SYSTEM_ALERT_WINDOW 弹窗:
使用 SYSTEM_ALERT_WINDOW权限在其他应用之上绘制的浮窗,常用于显示广告。
可以覆盖其他应用界面,比较具有侵入性。
恶意类型:
恶意广告主:
一些恶意广告主会投放恶意广告,如包含恶意代码、链接的广告,诱导用户点击,从而感染恶意软件或进行网络钓鱼。
恶意广告主可能使用欺诈手段,例如,点击欺诈、展示欺诈等,骗取广告费用。
通过恶意广告SDK传播恶意软件: 恶意广告主可能会使用恶意的广告SDK(软件开发工具包),在合法的广告中植入恶意代码,从而传播恶意软件。
恶意发布商:
一些恶意发布商会通过各种手段欺骗广告联盟,例如,刷流量、伪造用户数据,从而骗取广告收入。 攻击者使用机器人或其他自动化方式人为地增加广告的点击次数。这会耗尽广告商的预算,而不会产生真正的潜在客户或转化。
这可能包括点击垃圾 (来自虚假用户的多次点击) 和广告堆叠 (多个广告层层叠加,当用户只点击一次时,所有广告都记录点击)。
恶意发布商可能会在其广告位上展示恶意广告,给用户带来风险。
恶意发布商也可能会利用漏洞或后门,在用户的浏览器或设备上安装恶意软件。
无限弹窗消耗资源并导致程序崩溃
植入恶意代码(webView)
点击欺诈
广告联盟
广告跟踪与数据收集:
广告联盟会跟踪广告的展示、点击、转化等数据,以评估广告效果。
广告联盟会收集用户的行为数据,如浏览历史、搜索记录、兴趣爱好等,以便更精准地投放广告。
广告联盟使用各种跟踪技术,例如:
Cookie: 在用户浏览器中存储的小型文本文件,用于跟踪用户行为。
Pixel: 嵌入在网页中的一小段代码,用于跟踪用户的浏览行为。
移动广告ID: 在移动设备上用于跟踪用户行为的唯一标识符。
服务器端跟踪: 通过服务器端记录用户的行为数据,相比客户端跟踪,更加可靠和精准。
广告结算:
广告主根据广告效果向广告联盟支付广告费用。
广告联盟会根据合同约定将广告收入分给发布商。
广告结算通常采用以下几种方式:
CPM (Cost Per Mille): 按广告展示次数收费(每千次展示)。
CPC (Cost Per Click): 按广告点击次数收费。
CPA (Cost Per Action): 按用户完成特定行为(如注册、购买)收费。
绕过广告拦截器
利用白名单、修改广告代码、使用混淆技术
广告软件示例:
- Fireball— Fireball 在2017上成为头条新闻,当时一家以色列软件公司发现全球 2.5 亿台计算机和五分之一的企业网络感染了它。如果 Fireball 感染了您的计算机,它会接管您的浏览器。它会将您的主页更改为虚假搜索引擎 Trotus,并在您访问的任何网页中插入扎眼的广告。它还可以防止您修改浏览器设置。
- Appearch – Appearch是另一种常见的广告软件程序,充当浏览器劫持者。它通常与其他免费软件捆绑在一起,会在浏览器中插入众多广告,让网页浏览变得非常困难。当尝试访问一个网站时,您会被带到 Appearch.info。如果您设法打开网页,Appearch 会将随机文本块转换为链接,因此当您选择文本时,弹出窗口会邀请您下载软件更新。
勒索
加密用户的数据,使其无法访问,从而迫使用户支付赎金。
锁屏,无法访问
勒索软件示例:
- CryptoLocker 在 2013 年和 2014 年肆虐流行,网络犯罪分子用它来访问和加密系统上的文件。网络犯罪分子使用社交工程策略诱骗员工将勒索软件下载到计算机上,从而感染网络。下载后,CryptoLocker 将显示一条赎金消息,如果在规定的截止日期之前进行现金或比特币付款,他们将解密数据。虽然 CryptoLocker 勒索软件已被打掉,但据信其操作者从毫无戒心的组织那里勒索了大约三百万美元。
- Phobos 恶意软件 — 2019 年出现的一款勒索软件。这种勒索软件基于以前已知的 Dharma(又名 CrySis)勒索软件系列。
勒索软件即服务 (Raas)
间谍(窃取信息)
行为:
记录键盘输入(键盘记录器)、捕获屏幕截图、监视浏览历史或窃取密码和信用卡信息。常用于广告定向、个人信息窃取或监视用户活动。
读取联系人、短信和通话记录: 这是恶意软件最常见的行为之一,用于收集用户的个人信息,并可能用于钓鱼诈骗或其他恶意活动。
窃取设备上的照片、视频和音频文件: 录音和视频间谍软件可以使用您的设备录制您的对话,并将信息发送给第三方。某些智能手机应用需要访问笔记本电脑或智能手机的摄像头和麦克风;此权限可能被用于随时录制您的声音影像,在您不知情的情况下上传照片和声音,将您的摄像头画面向互联网直播,以及对您的面部运行人脸识别软件。
获取设备的地理位置信息: 恶意软件可以跟踪用户的行踪,可能用于广告定向或其他恶意目的。
读取剪贴板内容: 恶意软件可能窃取用户复制到剪贴板上的敏感信息,如密码、银行卡号等。
收集应用列表和使用数据: 恶意软件可能收集用户安装的应用列表和使用习惯,以便进行更精准的攻击或广告定向。
键盘记录: 记录用户在键盘上输入的任何内容,包括密码、账号等敏感信息。
间谍软件示例:
- CoolWebSearch– 该程序利用 Internet Explorer 中的安全漏洞劫持浏览器、更改设置并将浏览数据发送给其作者。
- Gator – 该程序通常与文件共享软件(如 Kazaa)捆绑在一起,监控受害者的网上冲浪习惯,使用这些信息为他们提供特定的广告。
相关文章:
- AudioGuard :基于每个进程控制麦克风访问:https://0mwindybug.github.io/AudioGuard/
- 保护 Android 剪贴板内容免遭意外暴露:https://www.microsoft.com/en-us/security/blog/2023/03/06/protecting-android-clipboard-content-from-unintended-exposure/
PUP 恶意软件(捆绑下载)
PUP 的传播方式
诱导用户安装的方法
PUP 恶意软件示例:
- Mindspark 恶意软件 – 这是一个易于安装的 PUP ,在用户不注意的时候下载到用户的机器上。Mindspark 可以在用户不知情的情况下更改设置并触发设备上的行为。它出了名的难以消除。
远程控制 rootkit
https://www.kaspersky.com.cn/resource-center/definitions/what-is-rootkit
Android 平台上的 Rootkit
定义: Android 平台上的 Rootkit 是一种恶意软件,旨在隐藏其在 Android 系统中的存在,并允许攻击者保持对受感染设备的访问权限。
类型:
用户模式 Rootkit:
表现: 在用户模式下运行,通常以应用的形式出现,并利用 Hook 技术隐藏自身。
攻击: 可以隐藏恶意应用图标,劫持系统 API,窃取用户数据。
检测: 相对容易被检测,可以通过应用管理器、安全软件等进行检测。
内核模式 Rootkit:
表现: 在内核模式下运行,通过修改内核代码或驱动程序来隐藏恶意行为。
攻击: 可以直接控制系统资源、绕过权限检查、实现持久化。
检测: 难以检测,需要专门的内核调试工具和安全分析技术。
基于 Xposed 或 Magisk 模块的 Rootkit:
表现: 利用 Xposed 或 Magisk 框架,注入恶意模块,从而控制系统。
攻击: 可以修改系统行为,劫持应用 API,进行各种恶意操作。
检测: 依赖于 Xposed 或 Magisk 的检测工具,可以被用户卸载。
攻击方式:
Hooking: 修改系统API,拦截或修改系统调用,例如hook open、read、write等API,从而隐藏恶意行为。
隐藏恶意文件和进程: 修改文件系统、进程列表等,使得恶意文件和进程在系统中不可见。
修改系统配置文件: 修改 build.prop、init.rc 等配置文件,以实现持久化或隐藏自身。
利用漏洞: 利用 Android 系统的漏洞进行权限提升或绕过安全机制。
伪装成正常应用: 将 Rootkit 伪装成正常应用,诱骗用户安装。
恶意行为:
窃取用户数据: 窃取短信、联系人、通话记录、位置信息、照片、视频等敏感信息。
监控用户活动: 记录键盘输入、屏幕截图、通话录音等。
修改系统设置: 禁用安全功能、修改 DNS 设置、更改网络代理等。
进行广告欺诈: 在后台弹出广告、进行点击欺诈、流量欺诈等。
DDoS攻击: 将受感染的设备变成僵尸网络的一部分,用于发动 DDoS 攻击。
实际例子:
- 相关软件/工具
Process Hacker: 用于查看、调试、管理 Windows 进程的工具。
- 用途: 可以查看隐藏进程、模块信息,分析进程行为。
Sysinternals Suite: 微软官方发布的一系列系统工具,用于系统分析和调试。
- 用途: 包含 Process Monitor、Process Explorer 等工具,可以用于查看进程、文件、注册表、网络活动等。
IDA Pro/Ghidra: 用于反编译、调试、分析软件的工具。
- 用途: 可以分析恶意代码,找到 Rootkit 的隐藏功能。
Android Debug Bridge (ADB): Android 开发工具,可以用于调试 Android 设备。
用途: 调试 Android 系统,提取恶意软件信息。
Xposed/Magisk: Android 框架,可以用于注入代码和修改系统行为。
- 用途: Xposed 和 Magisk 既可以被用于开发有用的模块,也可能被恶意软件开发者利用。
实际利用例子
ZeroAccess Rootkit: 一种 Windows 内核模式 Rootkit,用于生成点击欺诈流量。
Sony BMG Rootkit: Sony BMG 公司在其音乐 CD 中安装的 Rootkit,用于阻止用户复制音乐,但也带来了安全风险。
Pegasus Spyware: NSO Group 开发的间谍软件,可以使用多种 Rootkit 技术来感染 Android 和 iOS 设备,并窃取用户数据。
Gooligan: 一种安卓 Rootkit,利用旧安卓版本的漏洞来获取 root 权限,安装恶意软件并窃取用户数据。
Bootkits
一种感染 MBR(主引导记录)的 rootkit,它允许在操作系统启动之前加载恶意软件
破坏操作系统的启动过程。
感染 MBR (主引导记录)或 UEFI。
在操作系统启动之前加载恶意软件。
难以被检测和清除。
Android 平台上的 Bootkit
定义: Android 平台上的 Bootkit 是一种恶意软件,旨在感染 Android 设备的启动过程,通常是在内核加载之前,从而在系统启动的早期就获得控制权。
类型:
Bootloader Bootkit:
表现: 感染Bootloader,可以完全控制设备的启动过程。
攻击: 可以修改内核、驱动等,实现持久化、绕过安全机制。
检测: 非常难以检测,需要刷机、硬件调试等手段。
Kernel Bootkit:
表现: 感染 Android 内核,通常以内核模块的形式存在。
攻击: 可以直接控制系统资源、绕过安全机制、修改系统行为。
检测: 难以检测,需要专门的内核调试工具和安全分析技术。
Recovery Image Bootkit:
表现: 感染Recovery镜像,在设备进入Recovery模式时运行。
攻击: 可以修改系统分区、安装恶意软件、擦除用户数据等。
检测: 难以检测,需要检查Recovery镜像文件。
攻击方式:
感染Bootloader: 修改 Bootloader 代码,使其在启动时加载恶意代码。
替换内核: 替换 Android 内核,使其加载恶意驱动或模块。
修改 init 进程: 修改 init 进程,使其在系统启动时执行恶意代码。
修改 recovery 镜像: 修改 recovery 镜像,使其在设备进入 recovery 模式时执行恶意代码。
利用漏洞: 利用Bootloader、内核、驱动等漏洞,直接植入Bootkit。
恶意行为:
持久化: 确保恶意软件在系统重启、恢复出厂设置后仍然可以运行。
绕过安全启动: 禁用安全启动机制,从而加载恶意内核或驱动程序。
控制设备: 控制 Android 设备的启动过程、操作系统、硬件资源等。
窃取用户数据: 在系统启动的早期窃取用户数据,例如账号密码、银行卡信息等。
破坏系统: 修改系统文件、破坏启动流程等,导致系统无法正常运行。
安装恶意软件: 在系统启动时安装恶意应用,绕过应用商店的审核。
远程控制: 在系统启动时建立后门,允许攻击者远程控制设备。
UEFI Bootkit:
功能: 感染 UEFI 固件,在操作系统加载之前运行。
说明: 由于 UEFI 代码的复杂性,我无法直接提供一个可运行的代码示例。UEFI Bootkit通常需要编写复杂的 UEFI 驱动程序、hook UEFI 服务、操作 UEFI 变量等技术。下面是简化的流程:
1. 获取 UEFI 固件访问权限: 通过漏洞、恶意更新或供应链攻击等方式获取。
2. 注入恶意模块: 在 UEFI 固件中植入恶意模块,使其在系统启动时运行。
3. 控制启动流程: 修改启动流程,加载恶意内核或驱动。
* 实际案例:Hacking Team UEFI Rootkit: 意大利公司 Hacking Team 开发的 UEFI Rootkit,用于监视目标用户。
LoJax UEFI Rootkit: APT28 (Fancy Bear) 使用的 UEFI Bootkit,用于持久化攻击,针对政府和国防机构。
MBR Bootkit
原理: 将恶意代码写入 MBR (主引导记录) 的前 512 字节,从而在系统启动时执行。
实际案例: TDL3 (Alureon) Bootkit: 一种感染 MBR 的 Bootkit,用于劫持 DNS 服务器,传播恶意软件,2010 年左右流行。
相关软件/工具
UEFITool: 用于分析、修改 UEFI 固件的工具。
用途: 可以查看 UEFI 固件的结构,提取固件模块,分析固件漏洞,修改固件配置。
注意: UEFITool 既可以用于安全研究,也可能被恶意软件开发者滥用。
Intel System Debugger (ISD): 用于调试、分析 Intel 平台的固件和操作系统。
用途: 调试固件代码,分析固件漏洞,跟踪系统启动过程。
注意: ISD是一个强大的调试工具,可以被安全研究人员和攻击者使用。
Chipsec: 用于分析、审计 UEFI 安全配置的工具。
用途: 检测 UEFI 固件中的安全漏洞,分析系统安全策略。
VirtualBox/VMware: 可以创建虚拟机来测试 Bootkit 代码,避免在真实硬件上造成损害。
用途: 在虚拟机中运行模拟环境,测试恶意代码,调试系统启动过程。
注意: 确保虚拟机环境的安全,防止恶意代码逃逸。
实际利用例子
FinSpy (FinFisher): 一种商业间谍软件,使用 Bootkit 来实现持久化,并监控目标设备。
Equation Group 的固件植入: 美国国家安全局(NSA)下属的黑客组织 “方程式组织” 使用固件植入技术,包括 Bootkit,进行网络间谍活动。
Darkhotel APT: 该组织利用 UEFI Bootkit 对酒店网络中的目标计算机进行攻击。
RAT
远程访问木马或远程访问工具。用于为攻击者提供对系统的完全控制权。通常带有键盘记录器。
RAT可以提供攻击者完全控制受感染的设备。
通常包含键盘记录器、屏幕截图功能、文件管理功能等。
可以通过多种方式传播,例如电子邮件、恶意网站、软件漏洞等。
阻止卸载
卸载时发生了什么:
1.系统处理卸载请求:
PackageManagerService: 当用户触发卸载操作后,系统会通过 PackageManagerService (Android包管理服务)来处理卸载请求。
权限检查: PackageManagerService 会检查用户是否有卸载该应用的权限(例如:设备管理员权限)。
进程停止: 系统会强制停止该应用的所有进程,包括前台进程、后台服务、定时任务等。
广播: 系统会发送 ACTION_PACKAGE_REMOVED 广播,通知其他应用程序,某个应用已经被卸载。
数据删除: 系统会删除该应用的所有数据, 例如 应用的缓存, 数据库,SharedPreferences等。
2. 系统删除应用文件:
APK文件删除: 系统会删除该应用的APK文件,以及与该应用相关的所有文件。
数据目录删除: 系统会删除该应用的数据目录。
缓存文件删除: 系统会删除该应用的缓存文件。
3. 清理残留信息:
清理注册表: 系统可能会清理注册表中该应用的相关信息。
清理缓存: 系统会清理其他缓存文件中该应用的相关信息。
检测卸载:
应用本身并不知道自己何时被卸载,因为卸载操作是由系统执行的。 但是,应用可以通过以下方式来检测到自身被卸载:
ACTION_PACKAGE_REMOVED 广播: 系统在卸载应用后,会发送 ACTION_PACKAGE_REMOVED 广播,其他应用可以注册这个广播来监听应用的卸载事件。
DeviceAdminReceiver: 如果应用注册了设备管理员权限,应用可以通过 onDisabled() 方法接收到设备管理员被禁用的事件, 这通常意味着用户已经卸载了该应用。
自定义Service: 应用可以通过注册一个系统服务,监听系统的包管理变化,如果发现自身被卸载,则执行相应操作。
定时任务: 应用可以通过定时任务来检测自身是否仍然存在,如果发现自身已经被卸载,则执行相应操作。
SharedPreference: 如果应用卸载后又被重新安装,那么SharedPreferences 会被重置。应用可以通过这个来判断自己是不是被卸载后又重新安装的。
检查安装目录: 如果应用程序发现自身的安装目录不存在,则可以判断自己已经被卸载。
使用 Native 代码: 应用程序可以利用Native代码,进行更底层的检测,例如检测系统进程、检测系统文件, 从而判断自己是否被卸载。
云端检测: 应用程序可以通过云端服务器来检测自身是否仍然安装在用户设备上, 如果云端服务器检测到设备上不再存在该应用, 则表明应用已经被卸载。
阻止卸载
设备管理员权限 (Device Admin):
恶意软件会诱导用户授予其设备管理员权限,一旦获得该权限,恶意软件可以控制设备的卸载过程。
恶意软件可以通过 onDisableRequested() 方法,在用户尝试禁用设备管理员权限时,弹出自定义弹窗,诱导用户不卸载该应用。
恶意软件可以通过 onDisabled() 方法,在设备管理员权限被禁用时,执行恶意操作,例如 重复申请权限,重新激活自身, 强制重启等。
覆盖攻击: 恶意软件可以使用 SYSTEM_ALERT_WINDOW 权限,在卸载界面上创建一个透明的覆盖层,当用户点击卸载按钮时,实际上是点击了恶意软件的按钮。
点击劫持: 恶意软件可以使用点击劫持,把正常的卸载按钮放在透明层之下, 当用户点击透明层时,实际上点击了正常的卸载按钮。
伪造卸载界面: 恶意软件可以伪造一个卸载界面,看起来像是系统的卸载界面,实际上用户并没有真正卸载恶意软件。
阻止卸载按钮: 恶意软件可以通过各种技术手段,阻止用户点击卸载按钮, 例如通过 AccessibilityService 来阻止点击事件, 或者通过root权限 修改系统文件来实现。
设置卸载密码: 恶意软件可能会设置一个卸载密码,阻止用户直接卸载该应用。
僵尸网络
由受感染计算机组成的网络,这些计算机在攻击者的控制下执行恶意活动,可以用于发送垃圾邮件、发起DDoS攻击、传播恶意软件等。
将其作为肉鸡来挖矿
僵尸网络示例:
- 仙女座恶意软件 – 仙女座僵尸网络与 80 个不同的恶意软件家族相关联。它的范围甚广,一度 每月感染一百万台新机器,通过社交媒体、即时消息、垃圾邮件、漏洞利用工具包等传播自己。该行动在 2017 年被联邦调查局、欧洲刑警组织的欧洲网络犯罪中心等破获,但许多个人电脑继续受到感染。
- Mirai — 2016年,一场大规模的 DDoS 攻击导致美国东海岸大部分地区无法上网。当局最初担心这次袭击是一个敌对国家干的,后来发现是由 Mirai 僵尸网络引起的。Mirai 是一种自动发现物联网 (IoT) 设备感染并将其征入僵尸网络的恶意软件。从那里,这支 IoT 大军可以用来发起 DDoS 攻击,在攻击中,大量的垃圾流量用恶意流量淹没目标服务器。 Mirai 今天仍继续制造麻烦。
数据包嗅探器
恶意目的:
窃取敏感信息:
账号密码: 恶意软件可以嗅探网络中的数据包,截获用户输入的账号密码,例如:HTTP协议传输的账号密码。
信用卡信息: 恶意软件可以嗅探网络中的数据包,截获用户输入的信用卡信息。
聊天记录: 恶意软件可以嗅探网络中的数据包,截获用户的聊天记录,例如:IM协议传输的聊天记录。
电子邮件: 恶意软件可以嗅探网络中的数据包,截获用户的电子邮件内容。
其他敏感信息: 恶意软件可以嗅探网络中的数据包,截获其他敏感信息, 例如: 银行信息, 个人身份信息等。
中间人攻击(Man-in-the-Middle Attack):
流量劫持: 攻击者可以利用数据包嗅探器,劫持用户的网络流量,例如:将用户重定向到恶意网站。
数据篡改: 攻击者可以利用数据包嗅探器,拦截和修改网络中的数据包,从而篡改用户的网页内容或数据传输。
注入恶意代码: 攻击者可以利用数据包嗅探器,在网络数据包中注入恶意代码。
网络侦察(Network Reconnaissance):
扫描网络: 攻击者可以利用数据包嗅探器,扫描网络中的设备和开放端口,从而了解网络的拓扑结构和设备信息。
识别漏洞: 攻击者可以利用数据包嗅探器,识别网络中的漏洞,例如:未加密的协议、过时的协议等。
分析网络流量: 攻击者可以利用数据包嗅探器,分析网络流量的模式,从而了解用户的上网习惯和喜好。
拒绝服务攻击(Denial-of-Service Attack):
大量数据包攻击: 攻击者可以利用数据包嗅探器,发送大量的数据包,耗尽目标服务器的网络带宽和处理能力,从而导致服务瘫痪。
恶意数据包: 攻击者可以利用数据包嗅探器,构造恶意的数据包,发送到目标服务器,从而导致服务崩溃。
协议分析:
- 攻击者可以通过数据包嗅探器来分析某些不常见的网络协议,从而了解其工作原理, 挖掘漏洞。
其他恶意目的:
DDoS攻击: 利用被控制的设备发动DDoS攻击。
植入后门: 利用嗅探到的信息来植入后门。
网络钓鱼: 利用嗅探到的信息进行网络钓鱼攻击。
木马
木马示例:
- Qbot 恶意软件也被称为 Qakbot 或Pinkslipbot,是自 2007 年以来活跃的银行木马,专注于窃取用户数据和银行凭证。恶意软件已经演化到包括新的传递机制、命令和控制技术以及反分析功能。
- TrickBot 恶意软件于 2016 年首次确定,是由老练的网络犯罪分子开发和操作的特洛伊木马。TrickBot 最初设计作为银行木马以窃取财务数据,现已演化成为模块化的多阶段恶意软件,为其操作者提供执行众多非法网络活动的全套工具。
蠕虫
特点是可以自行复制
蠕虫示例:
- SQL Slammer 是一个知名的计算机蠕虫,不使用传统的分发方法。相反,它产生随机的 IP 地址并将自己发送给他们,寻找那些不受防病毒软件保护的人。它在 2003 年面世后不久,超过 75,000 台受感染的计算机在几个主要网站上不知不觉参与了 DDoS 攻击。尽管相关安全补丁已经提供了多年,但 SQL Slammer在 2016 年和 2017 年仍然死灰复燃。
病毒
病毒是一段代码,将自身插入应用程序并在应用程序运行时执行。一旦进入网络,病毒就可能被用来窃取敏感数据、发动 DDoS 攻击或进行勒索软件攻击。病毒通常通过受感染的网站、文件共享或电子邮件附件下载传播,在受感染的主机文件或程序被激活前处于休眠状态。一旦发生这种情况,病毒就可以自我复制并通过您的系统传播。
病毒示例:
- Stuxnet— Stuxnet出现在 2010 年,被广泛认为由美国和以色列政府开发,用来破坏伊朗的核计划。它通过 USB 驱动传播,针对西门子工业控制系统,导致离心机以创纪录的速度发生故障和自毁。据信 Stuxnet 感染了 20,000 多台计算机,摧毁了伊朗五分之一的核离心机,这使其计划退回到几年前。
其他类型
无文件恶意软件
无文件恶意软件是一种使用合法程序感染计算机的恶意软件。它不依赖文件,也不留下足迹,这使得检测和删除富有挑战性。无文件恶意软件在 2017 年作为一种主流攻击类型出现,但其中许多攻击方法已经存在了一段时间。
无文件感染不存储在文件中或直接安装在机器上,会直接进入内存,恶意内容永远不会触及硬盘驱动器。网络犯罪分子越来越多地将无文件恶意软件作为一种有效的替代攻击形式,这使得传统防病毒软件更难以检测到它,因为它占用空间小,没有要扫描的文件。
无文件恶意软件示例:
- Frodo、Number Of The Beast 和 The Dark Avenger 都是这种恶意软件的早期例子。
逻辑炸弹
逻辑炸弹是一种恶意软件,只有在触发时才会激活,例如在特定日期和时间或第 20 次登录帐户。病毒和蠕虫通常包含逻辑炸弹,以便在预先定义的时间或满足其他条件时传递其有效载荷(即恶意代码)。逻辑炸弹造成的损害从改变几个字节的数据到使硬盘驱动器无法读取,不一而足。
逻辑炸弹示例:
- 2016 年,一位程序员 导致电子表格每隔几年在西门子公司的一个分支机构出现故障,所以他们只好不断雇用他来解决这个问题。在这种情况下,没有人怀疑任何事情,直到一次巧合迫使恶意代码公之于众。
混合恶意软件
今天,大多数恶意软件是不同类型的恶意软件的组合,通常包括部分特洛伊木马和蠕虫,偶尔还包括病毒。通常,恶意软件程序在最终用户看来是特洛伊木马,但一旦执行,它就会像蠕虫一样通过网络攻击其他受害者。
混合恶意软件示例:
- 2001 年,一位自称为”Lion”的恶意软件开发者发布了一种混合恶意软件:蠕虫/rootkit组合。Rootkits允许黑客操纵操作系统文件,而蠕虫是快速传播代码段的强大载体。这种恶意组合造成了严重破坏:它对 10,000 多个Linux 系统造成了损害。蠕虫/rootkit 组合恶意软件被明确设计为利用 Linux 系统中的漏洞。
- Dridex:该恶意软件的目标是 Windows 用户,他们在 Word 或 Excel 中打开电子邮件附件 ,导致宏激活和下载 Dridex,感染计算机并使受害者面临银行盗窃。该软件的主要目标是从受感染机器的用户那里窃取银行信息,以立即启动欺诈交易。软件的 Bank 信息会安装键盘侦听器并执行注入攻击。
参考资料
https://www.kaspersky.com.cn/resource-center/definitions/what-is-ransomware-as-a-service
https://www.kaspersky.com.cn/resource-center/threats/types-of-malware
https://www.kaspersky.com.cn/resource-center/definitions/what-is-rootkit
https://source.android.com/docs/core/permissions?hl=zh-cn
https://bible.malcore.io/readme/the-beginning/introduction-to-malware
ek:https://unit42.paloaltonetworks.com/unit42-understanding-angler-exploit-kit-part-1-exploit-kit-fundamentals/
路过式下载:https://www.51cto.com/article/317226.html
广告联盟:https://u.oppomobile.com/home/_book/%E5%90%88%E4%BD%9C%E6%B3%A8%E5%86%8C/%E5%90%88%E4%BD%9C%E6%B5%81%E7%A8%8B.html
资源社区推荐,下载附件时请注意,它们可能会造成不可控的伤害
https://github.com/ytisf/thezoo
https://virusshare.com/
https://malwaretech.com/
https://virus.exchange/samples
https://vx-underground.org/
https://reverseengineering.meta.stackexchange.com/