【创建和排查隐藏进程和隐藏计划任务】
Window
创建隐藏进程和隐藏计划任务:
-
隐藏进程:
在Windows中,隐藏进程主要通过修改进程属性或使用第三方工具实现。以下是一个使用PowerShell脚本创建隐藏进程的示例:$Script = { Start-Process -FilePath "notepad.exe" -WindowStyle Hidden } Start-Job -ScriptBlock $Script
在这个示例中,我们创建了一个新的PowerShell作业,该作业启动了一个隐藏的记事本进程。
-
隐藏计划任务:
使用Windows任务计划程序创建计划任务时,可以设置任务为隐藏。以下是如何创建隐藏计划任务的步骤: -
打开“任务计划程序”。
-
在“操作”菜单中,单击“创建基本任务”或“创建任务”。
-
按照向导的提示设置任务的触发器、操作等。
-
如果选择“创建任务”,请转到“常规”选项卡,在“安全选项”下方勾选“隐藏”复选框。
-
完成向导,任务将作为隐藏任务创建。
排查隐藏进程和隐藏计划任务:
-
排查隐藏进程:
要查找隐藏进程,可以使用任务管理器、命令提示符或PowerShell。以下是使用PowerShell的示例:Get-Process | Where-Object { $_.MainWindowHandle -eq 0 } | Select-Object Name, Id
这个命令将列出所有没有主窗口句柄的进程,这可能包括隐藏的进程。但请注意,这也可能包括正常的后台进程。
-
排查隐藏计划任务:
若要查找隐藏计划任务,可以使用任务计划程序或PowerShell。以下是使用PowerShell的示例:Get-ScheduledTask | Where-Object { $_.Settings.Hidden -eq $true } | Select-Object TaskName, TaskPath
这个命令将列出所有设置为隐藏的计划任务。
请注意,恶意软件可能会使用更高级的技术来隐藏进程和计划任务。在这种情况下,可能需要使用专业的安全工具进行检测和清除。
Linux
用户级计划任务
创建隐藏进程和隐藏计划任务:
-
隐藏进程:
在Linux中,可以通过将进程放入后台并断开其与终端的关联来创建隐藏进程。以下是一个使用shell命令创建隐藏进程的示例:nohup your_command_here > /dev/null 2>&1 &
在这个示例中,我们使用
nohup
命令将进程放入后台运行,将输出重定向到/dev/null
,并使用&
将进程放入后台。以下是详细步骤:-
打开终端。
-
输入命令,将
your_command_here
替换为要运行的命令。例如,要在后台运行Python脚本,可以输入:nohup python3 your_script.py > /dev/null 2>&1 &
-
按回车键执行命令。进程将在后台启动,并与终端断开关联。
-
-
隐藏计划任务:
在Linux中,可以使用crontab
创建计划任务。虽然没有专门的“隐藏”选项,但所有crontab
任务默认都在后台运行。以下是如何创建计划任务的详细步骤:-
打开终端。
-
输入
crontab -e
以编辑当前用户的计划任务。 -
编辑器将打开
crontab
文件。在文件末尾添加一行,按照以下格式指定任务的时间和命令:* * * * * your_command_here
这里的五个星号分别代表分钟、小时、天、月和星期。例如,
0 0 * * * your_command_here
表示每天凌晨运行命令。 -
保存并退出编辑器。任务将作为后台任务创建。
-
排查隐藏进程和隐藏计划任务:
-
排查隐藏进程:
要查找隐藏进程,可以使用ps
命令。以下是使用ps
命令查找后台运行的进程的示例:ps -eo pid,cmd,stat | grep '^[ ]*[0-9]* .* S'
这个命令将列出所有处于后台运行状态的进程。以下是详细步骤:
- 打开终端。
- 输入上述命令,然后按回车键执行。
- 查看输出的进程列表,寻找可能的隐藏进程。但请注意,这也可能包括正常的后台进程。
-
排查隐藏计划任务:
若要查找计划任务,可以使用crontab
命令。以下是如何查看当前用户的计划任务的详细步骤:- 打开终端。
- 输入
crontab -l
,然后按回车键执行。这将列出当前用户的所有计划任务。 - 查看输出的任务列表,寻找可能的隐藏任务。
- 如果需要查看其他用户的计划任务,请使用
sudo crontab -l -u username
,将username
替换为相应的用户名。
请注意,恶意软件可能会使用更高级的技术来隐藏进程和计划任务。在这种情况下,可能需要使用专业的安全工具进行检测和清除。
检查系统计划任务
/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
文件中添加一个计划任务的详细步骤:
-
打开终端。
-
使用以下命令打开一个系统级的
cron
文件。在这里,我们选择/etc/cron.d
目录下的一个文件。您可以替换hidden_task
为您喜欢的文件名:sudo nano /etc/cron.d/hidden_task
这将使用
nano
文本编辑器打开名为hidden_task
的文件。如果文件不存在,将创建一个新文件。 -
在文件中添加一行,按照以下格式指定任务的时间、用户和命令:
* * * * * user_name your_command_here
这里的五个星号分别代表分钟、小时、天、月和星期。
user_name
是要以其身份运行命令的用户。例如,0 0 * * * root your_command_here
表示每天凌晨以root
用户身份运行命令。 -
保存并退出
nano
编辑器。按Ctrl + X
,然后按Y
,最后按回车键。 -
更改文件权限以限制对其的访问。例如,您可以仅允许
root
用户读取和写入文件:sudo chmod 600 /etc/cron.d/hidden_task
这样,您创建了一个系统级的计划任务,其他用户不容易发现。但请注意,具有root
权限的用户仍然可以查看和编辑这些文件。因此,从安全角度来说,这种方法并不完全隐藏计划任务。