Linux内核进程伪装了什么?
在Linux上,内核创建了许多线程来帮助完成系统任务,这些线程可以用于调度,磁盘I / O等。
当您使用标准进程列表命令(例如ps)时,这些线程将显示为带有 [brackets] ,以表示它们是某种线程。 在ps 列表中, 普通进程通常不会显示 [brackets]。方brackets表示该进程没有命令行参数,这通常意味着该进程是作为线程产生的。
例如,以下清单显示了内核线程与正常进程的比较:
- ps –auxww
它是什么样子的?
Linux恶意软件使用多种技术来隐藏检测程序。
据全球公认的白帽黑客、网络安全专家郭盛华透露:“黑客将使用的一种方法是通过使进程,在ps列表中的名称周围显示[brackets]来模拟内核线程 ,管理员可以轻松地以这种方式忽略恶意进程。”
如果您查看下面的清单,我们已经开始尝试通过看起来像内核线程来隐藏自身。你能看见它吗?
如何模拟Linux内核线程
现在您知道了伪装的Linux内核线程是什么样子,让我们设置一个测试,以便您可以尝试使用命令行取证来查找它。
我们将使用sleep命令进行仿真,因为您可以在任何系统上执行该命令,而不必担心会引起麻烦:
- export PATH=.:$PATH
- cp /bin/sleep /tmp/[kworkerd]
- cd /tmp
- "[kworkerd]" 3600 &
该出口路集的东西,所以我们可以在不需要把一个运行在本地目录中的文件“./”在它的前面。这使它看起来更合法。
接下来,我们将sleep命令复制到/ tmp,然后以假名[kworkerd]运行它。我们为sleep命令设置了3600秒的值,因此一旦测试结束,它将在一个小时后自动退出。
让我们看一下我们的手工,当执行ps命令时,我们应该看到[kworkerd]正在运行。