『Linux』如何判断Linux系统是否被黑客入侵?可以用这种方法


『Linux』如何判断Linux系统是否被黑客入侵?可以用这种方法
文章图片
『Linux』如何判断Linux系统是否被黑客入侵?可以用这种方法
文章图片
『Linux』如何判断Linux系统是否被黑客入侵?可以用这种方法
文章图片
『Linux』如何判断Linux系统是否被黑客入侵?可以用这种方法
文章图片
『Linux』如何判断Linux系统是否被黑客入侵?可以用这种方法
恶意软件有时会使用Linux内核进程伪装来隐藏其运行时 , 让我们研究一下如何使用这种策略来揭露Linux恶意软件 。
Linux内核进程伪装了什么?
在Linux上 , 内核创建了许多线程来帮助完成系统任务 , 这些线程可以用于调度 , 磁盘I / O等 。
当您使用标准进程列表命令(例如ps)时 , 这些线程将显示为带有 [brackets
, 以表示它们是某种线程 。在ps 列表中 ,普通进程通常不会显示 [brackets
。 方brackets表示该进程没有命令行参数 , 这通常意味着该进程是作为线程产生的 。
例如 , 以下清单显示了内核线程与正常进程的比较:
ps –auxww
图1-Linux内核线程与正常进程
它是什么样子的?
Linux恶意软件使用多种技术来隐藏检测程序 。
据全球公认的白帽黑客、网络安全专家郭盛华透露:“黑客将使用的一种方法是通过使进程 , 在ps列表中的名称周围显示[brackets
来模拟内核线程, 管理员可以轻松地以这种方式忽略恶意进程 。 ”
如果您查看下面的清单 , 我们已经开始尝试通过看起来像内核线程来隐藏自身 。 你能看见它吗?
图2 —伪装隐藏的Linux内核线程的示例
如何模拟Linux内核线程
现在您知道了伪装的Linux内核线程是什么样子 , 让我们设置一个测试 , 以便您可以尝试使用命令行取证来查找它 。
我们将使用sleep命令进行仿真 , 因为您可以在任何系统上执行该命令 , 而不必担心会引起麻烦:
export PATH=.:$PATH
cp /bin/sleep /tmp/[kworkerd

cd /tmp
\"[kworkerd
\" 3600 &
该出口路集的东西 , 所以我们可以在不需要把一个运行在本地目录中的文件“./”在它的前面 。 这使它看起来更合法 。
接下来 , 我们将sleep命令复制到/ tmp , 然后以假名[kworkerd
运行它 。 我们为sleep命令设置了3600秒的值 , 因此一旦测试结束 , 它将在一个小时后自动退出 。
让我们看一下我们的手工 , 当执行ps命令时 , 我们应该看到[kworkerd
正在运行 。
ps -auxww
图3-真正与冒名顶替的Linux内核线程
伪装与进程图伪装的Linux内核线程
我们用来掩盖伪装过程的第一种方法是查看它是否在/ proc / <PID> / maps下具有任何内容 。
该位置通常是进程显示它们链接到的库以及映射到内存中的位置的位置 。 对于真正的内核线程 , 它应该为空 。 如果您在此位置查找[brackets
中命名的进程 ,但该进程 显示任何数据 , 则它不是真正的内核线程 。
我们将使用的基本命令是cat / proc / <PID> / maps , 其中<PID>是我们正在研究的进程ID 。 在上面的示例中 , 我们认为[kworkerd
对于PID 2121似乎可疑 , 因此我们将对其进行检查:
cat/ proc / 2121 / maps
图4 —使用Linux / proc映射检测内核伪装