【创建和排查隐藏进程和隐藏计划任务】

Window

创建隐藏进程和隐藏计划任务:

  • 隐藏进程:
    在Windows中,隐藏进程主要通过修改进程属性或使用第三方工具实现。以下是一个使用PowerShell脚本创建隐藏进程的示例:

    $Script = {
        Start-Process -FilePath "notepad.exe" -WindowStyle Hidden
    }
    Start-Job -ScriptBlock $Script
    

    在这个示例中,我们创建了一个新的PowerShell作业,该作业启动了一个隐藏的记事本进程。

  • 隐藏计划任务:
    使用Windows任务计划程序创建计划任务时,可以设置任务为隐藏。以下是如何创建隐藏计划任务的步骤:

  • 打开“任务计划程序”。

  • 在“操作”菜单中,单击“创建基本任务”或“创建任务”。

  • 按照向导的提示设置任务的触发器、操作等。

  • 如果选择“创建任务”,请转到“常规”选项卡,在“安全选项”下方勾选“隐藏”复选框。

  • 完成向导,任务将作为隐藏任务创建。

排查隐藏进程和隐藏计划任务:

  1. 排查隐藏进程:
    要查找隐藏进程,可以使用任务管理器、命令提示符或PowerShell。以下是使用PowerShell的示例:

    Get-Process | Where-Object { $_.MainWindowHandle -eq 0 } | Select-Object Name, Id
    

    这个命令将列出所有没有主窗口句柄的进程,这可能包括隐藏的进程。但请注意,这也可能包括正常的后台进程。

  2. 排查隐藏计划任务:
    若要查找隐藏计划任务,可以使用任务计划程序或PowerShell。以下是使用PowerShell的示例:

    Get-ScheduledTask | Where-Object { $_.Settings.Hidden -eq $true } | Select-Object TaskName, TaskPath
    

    这个命令将列出所有设置为隐藏的计划任务。

请注意,恶意软件可能会使用更高级的技术来隐藏进程和计划任务。在这种情况下,可能需要使用专业的安全工具进行检测和清除。

Linux

用户级计划任务

创建隐藏进程和隐藏计划任务:
  1. 隐藏进程:
    在Linux中,可以通过将进程放入后台并断开其与终端的关联来创建隐藏进程。以下是一个使用shell命令创建隐藏进程的示例:

    nohup your_command_here > /dev/null 2>&1 &
    

    在这个示例中,我们使用nohup命令将进程放入后台运行,将输出重定向到/dev/null,并使用&将进程放入后台。以下是详细步骤:

    1. 打开终端。

    2. 输入命令,将your_command_here替换为要运行的命令。例如,要在后台运行Python脚本,可以输入:

      nohup python3 your_script.py > /dev/null 2>&1 &
      
    3. 按回车键执行命令。进程将在后台启动,并与终端断开关联。

  2. 隐藏计划任务:
    在Linux中,可以使用crontab创建计划任务。虽然没有专门的“隐藏”选项,但所有crontab任务默认都在后台运行。以下是如何创建计划任务的详细步骤:

    1. 打开终端。

    2. 输入crontab -e以编辑当前用户的计划任务。

    3. 编辑器将打开crontab文件。在文件末尾添加一行,按照以下格式指定任务的时间和命令:

      * * * * * your_command_here
      

      这里的五个星号分别代表分钟、小时、天、月和星期。例如,0 0 * * * your_command_here表示每天凌晨运行命令。

    4. 保存并退出编辑器。任务将作为后台任务创建。

排查隐藏进程和隐藏计划任务:
  1. 排查隐藏进程:
    要查找隐藏进程,可以使用ps命令。以下是使用ps命令查找后台运行的进程的示例:

    ps -eo pid,cmd,stat | grep '^[ ]*[0-9]* .* S'
    

    这个命令将列出所有处于后台运行状态的进程。以下是详细步骤:

    1. 打开终端。
    2. 输入上述命令,然后按回车键执行。
    3. 查看输出的进程列表,寻找可能的隐藏进程。但请注意,这也可能包括正常的后台进程。
  2. 排查隐藏计划任务:
    若要查找计划任务,可以使用crontab命令。以下是如何查看当前用户的计划任务的详细步骤:

    1. 打开终端。
    2. 输入crontab -l,然后按回车键执行。这将列出当前用户的所有计划任务。
    3. 查看输出的任务列表,寻找可能的隐藏任务。
    4. 如果需要查看其他用户的计划任务,请使用sudo crontab -l -u username,将username替换为相应的用户名。

请注意,恶意软件可能会使用更高级的技术来隐藏进程和计划任务。在这种情况下,可能需要使用专业的安全工具进行检测和清除。

【创建和排查隐藏进程和隐藏计划任务】_第1张图片

检查系统计划任务

/var/spool/cron/crontabs/root 可以看到隐藏计划任务

crontab -u root -l 看不到隐藏计划任务

cat /etc/rc.d/rc.local

ls /etc/rc3.d

系统级计划任务

在Linux中,计划任务通常使用cron来创建和管理。默认情况下,所有cron任务都在后台运行,因此没有专门的“隐藏”选项。然而,如果您希望创建一个不易被其他用户发现的计划任务,可以将任务添加到系统级的cron文件中,而不是个人用户的crontab中。

以下是如何在系统级别的cron文件中添加一个计划任务的详细步骤:

  1. 打开终端。

  2. 使用以下命令打开一个系统级的cron文件。在这里,我们选择/etc/cron.d目录下的一个文件。您可以替换hidden_task为您喜欢的文件名:

    sudo nano /etc/cron.d/hidden_task
    

    这将使用nano文本编辑器打开名为hidden_task的文件。如果文件不存在,将创建一个新文件。

  3. 在文件中添加一行,按照以下格式指定任务的时间、用户和命令:

    * * * * * user_name your_command_here
    

    这里的五个星号分别代表分钟、小时、天、月和星期。user_name是要以其身份运行命令的用户。例如,0 0 * * * root your_command_here表示每天凌晨以root用户身份运行命令。

  4. 保存并退出nano编辑器。按Ctrl + X,然后按Y,最后按回车键。

  5. 更改文件权限以限制对其的访问。例如,您可以仅允许root用户读取和写入文件:

    sudo chmod 600 /etc/cron.d/hidden_task
    

这样,您创建了一个系统级的计划任务,其他用户不容易发现。但请注意,具有root权限的用户仍然可以查看和编辑这些文件。因此,从安全角度来说,这种方法并不完全隐藏计划任务。

你可能感兴趣的:(linux,服务器)