Windows和Linux恶意软件持久化常见方法

admin 2023年9月24日17:20:04评论48 views字数 2575阅读8分35秒阅读模式

Windows

1. 注册表启动运行

说明: 在注册表中设置一个当系统启动时自动执行恶意软件的键值对。

Set-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' -Name 'Malware' -Value 'C:Malware.exe'

2. 启动文件夹

说明: 通过快捷方式或可执行文件放置在启动文件夹中,恶意软件可确保在用户登录后自动运行。例如 (VBScript)

Set Shell = CreateObject("WScript.Shell")StartupFolder = Shell.SpecialFolders("Startup")ShortcutPath = StartupFolder & "Malware.lnk"
Set Shortcut = Shell.CreateShortcut(ShortcutPath)Shortcut.TargetPath = "C:Malware.exe"Shortcut.Save

3. Windows 服务

说明: 恶意软件可以伪装成合法的Windows服务在后台运行并执行恶意操作。例如 (C#)

using System;using System.ServiceProcess;
public partial class MalwareService : ServiceBase{ protected override void OnStart(string[] args) { // Malicious actions here }
protected override void OnStop() { // Clean up and exit } }

4. 计划任务

说明: 恶意软件可以创建在特定时间或事件中运行的计划任务确保持久性和周期性执行。例如 (PowerShell)

$Action = New-ScheduledTaskAction -Execute 'C:Malware.exe'$Trigger = New-ScheduledTaskTrigger -AtStartupRegister-ScheduledTask -Action $Action -Trigger $Trigger -TaskName 'MalwareTask'

5. 浏览器扩展(插件)

说明: 安装恶意浏览器扩展,从而使恶意软件保持活动状态并与用户的浏览会话进行交互。例如 (JavaScript)

chrome.runtime.onInstalled.addListener(function() {    // Execute malicious actions here});

6. AppInit_DLLs(应用程序初始化动态链接库)

说明: 通过修改AppInit_DLLs注册表值,恶意软件可以将自身注入到加载DLL的每个进程中,从而实现持久化的恶意行为。例如 (C++)

HKEY hKey;RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows"), &hKey);RegSetValueEx(hKey, TEXT("AppInit_DLLs"), 0, REG_SZ, (LPBYTE)"C:\Malware.dll", 14);RegCloseKey(hKey);

7. Rootkit 大法

说明: 高级恶意软件可能使用Rootkit 技术隐藏在操作系统中,极其难以检测或删除。Rootkit 技术涉及对系统内部的复杂操作,无法用简短的代码实现。因此,实现一个完整的Rootkit通常需要大量的代码和专业知识。

Linux

1. 定时任务(Cron)

说明: 恶意软件可以创建cron任务,这些任务是按特定间隔自动运行的定时任务。通过添加恶意命令到cron表中, 恶意软件确保持久性。

echo "* * * * * /usr/bin/malware" >> /etc/crontab

2. Systemd单元

说明: 恶意软件可以创建systemd单元,这些单元是定义服务应如何启动、停止和维护的服务文件。通过创建systemd单元,恶意软件可确保自动执行。

[Unit]Description=Malware
[Service]ExecStart=/usr/bin/malware
[Install]WantedBy=multi-user.target

3. 启动脚本

说明: 恶意软件可以修改启动脚本,通过将恶意命令插入到启动脚本中,恶意软件确保在系统启动时执行。

echo "/usr/bin/malware" >> /etc/rc.local

4. 用户初始化脚本

说明: 恶意软件可以修改用户特定的初始化脚本,这些脚本在用户登录时执行。通过将恶意命令添加到用户的初始化脚本中,恶意软件可确保在用户登录时持久性。

echo "/usr/bin/malware" >> ~/.bashrc

5. 共享对象注入

说明: 恶意软件可以修改共享对象文件,将恶意代码注入合法的可执行文件中。通过修改共享库,恶意软件确保每当运行相应的程序时都会执行代码。

gcc -shared -fPIC -o /usr/lib/libmylib.so /path/to/malware.cecho "/usr/lib/libmylib.so" >> /etc/ld.so.preload

6. 修改"/etc/profile"和"/etc/bash.bashrc"

说明: 恶意软件可以修改系统profile文件和bashrc文件,以便在用户登录时执行恶意命令。通过向这些文件添加恶意代码,恶意软件可确保对所有用户的持久性。

echo "/usr/bin/malware" >> /etc/profile
echo "/usr/bin/malware" >> /etc/bash.bashrc

7. 修改"/etc/ld.so.preload"

说明: 恶意软件可以修改ld.so.preload件指定在其他文件加载之前的共享库通过添加恶意库到该文件中, 恶意软件确保其代码被任何使用动态链接程序执行

echo "/usr/lib/libmymalware.so" >> /etc/ld.so.preload

原文始发于微信公众号(Matrix SEC):Windows和Linux恶意软件持久化常见方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月24日17:20:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows和Linux恶意软件持久化常见方法http://cn-sec.com/archives/2064013.html

发表评论

匿名网友 填写信息