项目地址:
https://github.com/ichybell/Cryptography/blob/master/Ransomware/README.md
项目演示
原始文件如下:
我们运行勒索软件可执行文件并重新打开文件以确认加密,如下所示:
这说明我们的勒索软件计划是成功的。
感染
由于电子邮件服务器不支持发送可执行文件,因此还有多种其他方法可以加密系统中的文件,包括:
1. 增强勒索软件的功能,利用最常见的未修补漏洞和加密技术,从而在网络上自我传播。如果受害者的计算机仍未修补漏洞,就会被感染。
2. 向受害者系统发送一个dropper,例如使用excel和VBS脚本。一旦文件被打开,dropper就会将勒索软件下载到受害者的系统上。
3. 发送网络钓鱼电子邮件,将受害者重定向到包含已被修改为包含勒索软件的合法产品的网站,例如免费的 MS Word 安装,它确实安装了 Office,但同时也安装了勒索软件。
4. 如果可以对受害者进行物理接触,则会使用社会工程学将受害者引离计算机,然后插入装有勒索软件的闪存驱动器并开始手动执行。
5. 向用户发送网络钓鱼电子邮件,将用户重定向到装有脚本的网站,以便自动将勒索软件下载到受害者的计算机上。
攻击
勒索软件通过以下方式加密文件:
1. 生成一个长度为 16 字节的随机会话密钥
2. 使用 3072 位 RSA 密钥加密会话密钥。这进一步增加了解密的复杂性,因为 3072 位 RSA 提供的安全级别为 128 位,因此暴力解密将花费非常长的时间。
3. 会话密钥用于以 EAX 模式加密文件,以确保如果对文件进行任何修改,则解密将彻底失败
4. 最后,使用加密的会话密钥、公钥和加密文本覆盖原始文件
5. 为了调试目的,还会在控制台上打印成功消息。
传递给加密程序的每个文件都将使用此功能进行加密,使数据完全无法访问。
该程序还使用特殊扫描功能确保系统中的每个文件都经过加密,该功能从提供的任何顶级目录开始递归识别系统中的每个文件。
在 Windows 中,这通常是安装操作系统的重要驱动器之一,包括C:/、D:/等。在 Linux 中,顶级目录将是/
函数中的yield语句只是暂停函数执行并返回该特定项。下次调用该函数时将从那里开始执行。
该程序一旦加载到受害机器上,就可以通过多种方法运行:
1. 受害者可能会自行运行勒索软件,误以为它是合法软件
2. 如果通过 USB 上传,攻击者可以访问受害者的计算机,他们可以在选择的时间手动启动勒索软件。
3. 如果攻击者可以对受影响的计算机建立远程访问权限,他们就可以远程启动该程序。
4. 勒索软件可以作为 Cron Job 或 Windows 任务计划程序中的任务自动运行。这将使勒索软件能够在对系统造成最小干扰的时间运行
5. 如果该程序嵌入在合法软件中,它也会在软件启动时同时启动,从而开始加密过程。
还可以通过以下方法删除文件的备份:
1. 增强勒索软件的功能,搜索影子文件并删除它们
2. 攻击者可以入侵备份软件 API 并加密公司现有的备份。
3. 勒索软件可能一开始就感染未完全加密的数据。但一段时间后,它会加密备份目标和当前目标中的所有文件,使恢复变得困难。在这种情况下,勒索软件的执行将被推迟到更远的日期。这种方法也使事件响应团队很难确定感染点和时间线。
4. 攻击者可以手动探测网络以查找备份共享和目录,并使用勒索软件程序加密此处找到的文件。这是因为多个公司网络的设计方式允许通过共享访问文件,以方便访问。
5. 勒索软件会搜索本地系统上备份文件使用的常见文件扩展名,包括.bak
其他文件扩展名。然后攻击者会删除或加密这些文件,或破坏其中的数据。
6. 如果使用 cron 作业或 Windows 任务计划程序上的任务进行备份,那么攻击者可以进一步枚举这些数据。如果可以从这些任务的公开位置访问文件,那么它们可能会被手动损坏或删除。如果不允许访问,可以进一步枚举存储备份的系统,以确定是否有入口点
检测
在任何系统上检测勒索软件的方法有很多种,包括:
1. 静态分析
这里在执行之前对应用程序代码进行分析,如果发现有恶意签名,则不会执行。
签名通常与防病毒供应商和各种安全团队存放在中央存储库中的恶意代码模式进行比较。
该方法也称为基于签名的分析。
勒索软件可以通过剥离任何可识别信息或采用不同的方式编码来生成尚未记录在中央存储库中的新签名,从而逃避这种方法。
2. 动态分析
在这里,程序在沙盒环境中执行,以观察其执行情况。如果发现程序具有恶意属性,即调用与恶意行为者相关的 IP 地址或占用多个系统资源,则会对其进行标记。它不会在主操作系统中执行
这种方法也称为基于行为的分析。
勒索软件通常可以通过添加功能来检查其运行的环境来逃避这种类型的分析。如果是沙盒环境,勒索软件的某些功能将无法正常运行。
3. 启发式分析
这是一种动态分析,其中程序不仅依赖签名来捕获恶意程序,还依赖异常行为。这包括大量流量、操作系统负载过重或与通常与恶意软件相关的 API 交互。
异常文件活动(例如无法访问多个文件以及磁盘和 CPU 活动增加而没有任何明确、可理解的原因)也会触发此类分析。
任何具有这些启发式方法的程序都将不被允许在主操作系统上执行。
勒索软件通常会通过硬编码延迟来模仿操作系统中的常规进程和程序,从而规避这种情况。这将确保它不会触发此类安全功能。
监控
可以通过多种方式监控网络中的机器,以检测恶意软件或勒索软件:
1. 使用蜜罐
蜜罐是一种带有虚假文件的诱饵,对攻击者来说,这些文件看起来非常真实。它们使组织能够尽早发现勒索软件,并在受感染的计算机传播到整个网络之前将其隔离。
2. 使用防病毒和软件解决方案
它们包括反勒索软件工具、防病毒软件以及端点检测和响应 (EDR) 解决方案,可尽早提醒您注意威胁,以确保能够在合理的时间内采取适当的措施。
3. 检查电子邮件内容
电子邮件设置将被设置为解析文本中的可疑内容并将其报告为垃圾邮件。这可以使用各种机器学习方法来实现。
禁止特定附件也会使感染受害机器变得更加困难,例如可执行文件。
这将使网络钓鱼变得更加困难,从而减少不知情的人将勒索软件下载到他们的机器上的机会。
减轻
在被勒索软件感染之前,缓解措施就非常重要,可以通过以下方式进行:
1、 利用零信任策略,通过限制设备的交互性,确保勒索软件不会蔓延到整个网络。
2. 使用多因素身份验证,使勒索软件更难通过唯一的身份验证方法在网络中传播
3. 开展最佳网络安全实践教育,尤其是网络钓鱼教育,强调安全是个人责任。
4. 保持灾难恢复计划或事件响应计划保持最新并遵循规定的行业标准。
5. 使用蜜罐和其他技术机制,确保尽早发现网络中的勒索软件。然后将这些设备与网络隔离,以防止进一步感染
6. 定期搜寻威胁并清理,以识别并彻底清除网络上的任何恶意软件,包括勒索软件。
7. 定期更新系统,以缓解勒索软件通过未修补的漏洞传播
8. 更新并使用防病毒、反勒索软件工具和其他有助于恢复和早期检测的软件解决方案。这还包括 EDR 和 XDR 工具以及安全网关。
9. 使用版本控制和 3-2-1 规则定期备份(在 2 个不同的媒体上保存三个备份,其中一个备份存储在单独的位置)。备份也应存储在云端。冗余非常重要。
各种各样的
勒索软件的下载文件可以通过以下方式隐藏:
1. 将勒索软件保存在系统的临时文件夹中
2. 将勒索软件保存在 Windows 注册表项中,以确保它随操作系统启动。
3. 可以剥离勒索软件的文件头和文件扩展名等可识别信息,以防止通过代码检查进行简单检测。
4. 勒索软件会采用模仿常规程序的启发式方法,从而尽可能地避免启发式检测。
5. 勒索软件的签名可能会被混淆,以逃避基于签名的检测
6. 如果可能的话,勒索软件可以作为内存中的进程运行,从而限制其被发现的机会
7. 将勒索软件保存在系统中的关键文件中,即/bin
Windows 和SYSTEM
Windows 中。
原文始发于微信公众号(KK安全说):一个勒索软件项目
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论