当前位置: 首页 > 科技观察

如何快速找出Linux服务器上不应存在恶意文件或后门文件

时间:2023-03-18 14:42:53 科技观察

如何快速找出Linux服务器上不应存在恶意文件或后门文件。前段时间在写APT的时候发现一个问题。我发现网上大部分都是关于Windows恶意软件检测的文章和教程,但是很少有关于如何在Linux系统上查找恶意软件的信息。因此,本文主要介绍一些检查Linux系统恶意软件的技巧和方法。话不多说,进入正题。验证二进制文件要检查以确保没有运行的二进制文件被修改的一件事。这种类型的恶意软件可以使用一个版本的sshd支持,以允许使用特定密码连接到系统,或者甚至是一些二进制文件的修改版本,它以root身份运行并且只监听原始的触发数据包集。只接受这些话。为此,我们将使用Redhat和Debian作为示例。查找不属于的二进制文件find/proc/*/exe-execreadlink{}+|xargsrpm-qf|grep"noowned"find/proc/*/exe-execreadlink{}+|xargsdpkg-S|grep"nopath"checksum是否正在运行的二进制文件与包中的文件匹配find/proc/*/exe-execreadlink{}+|xargsrpm-qf|xargsrpm-Vfind/proc/*/exe-execreadlink{}+|xargsdpkg-S|cut-d:-f1|xargsdpkg-V验证所有包文件另一件要检查的事情是属于包的所有二进制文件都没有被修改。这个过程可能需要一段时间才能完成,但这是值得的。我们可以设置一个cron作业在指定的时间运行它。验证所有包文件rpm-Vadpkg-V输出输出应显示属于包的所有二进制文件,计算二进制文件的哈希值并将其与安装或更新包时保存的值进行比较。以下是基于Redhat系统的输出。使用dpkg的Debian系统不会检查其中的大部分,因此如果二进制文件已被修改,则只会显示“5”。S文件大小不同M模式不同(包括权限和文件类型)5摘要(以前的MD5和)不同D设备主/次编号不匹配LreadLink(2)路径不匹配U用户所有权不同G组所有权不同TmTime不同,PcaPabilities不同。查看RAWsocket我们经常可以看到RAWsocket后门。他们监听传入的数据包并触发事件,例如最近发现的“Chaos”后门,以及在github上搜索原始套接字后门时弹出的示例。对于此检查,我们将只查看使用RAW套接字的进程。使用它们的常用程序并不多,因此我们可以缩小要查看的进程的范围。检查带有原始套接字监听的二进制文件netstat-lwporss-lwplsof|grepRAW检查可能注入的内存这里可能存在各种误报。RWX内存(read-write-execute)被很多程序用到,大部分都是解释型语言,所以像python,java,或者用什么库解析脚本都会有这种情况,很正常。如果你发现RWX内存中有很多条目,而且进程不是python或java,那么你应该仔细看看。此命令将列出RWX内存的进程ID。可以看到下面列出了cron,显然是异常进程。命令findpidgrep-r"rwx"/proc/*/maps|cut-d/-f3|uniq-c|sort-nr检查修改后的PAM模块一个常见的后门是插入或替换PAM模块以进行身份??验证。这可以允许远程访问,还允许攻击者从任何用户那里获得root权限。这个后门也不关心对/etc/passwd的修改,因此所有原始密码和修改后的密码仍然有效。由于它提供的访问类型,我认为这是一种非常危险的后门类型。您可以对合法登录条目使用正常协议,因此它显然不会出现任何恶意网络活动。验证PAM模块find/lib64/security/|xargsrpm-qf|grep"noowned"find/lib64/security/|xargsrpm-qf|grep-v"not"|xargsrpm-VSSHaccess保持访问,不需要删除二进制文件A非常简单的方法是将ssh密钥添加到特定用户的authorized_keys文件中,并允许攻击者像普通用户一样通过ssh登录。它也是最难检测的一种,因为您需要确定ssh密钥是合法的还是恶意的,这需要用户验证只有他们的密钥在该文件中。攻击者还可以窃取用户的密钥,如果他们之前已经被破坏的话。列出所有用户的.ssh文件夹cat/etc/passwd|cut-d:-f6|xargs-I@/bin/sh-c"echo@;ls-al@/.ssh/2>/dev/null"SummaryThere有许多不同的方法来维护对Linux服务器的特权访问。上面的搜索列表并不完整,但它们是一些比较常见的寻找后门的方法,包括Meterpreter和其他在github上找到的常见后门程序。