wpf 文件上传到服务器_快速找出Linux服务器上不该存在恶意或后门文件,这样做就对了。...

951a1a8766986efb1ba56a37f38866f1.png信安客

造就网安高端人才

bc1526fa9526d0735042fed591b405a8.gif

如何快速找出Linux服务器上不该存在恶意或后门文件。前段时间我在APT写作时注意到一个问题,我发现网上大多都是关于Windows恶意软件检测的文章以及教程,而关于如何寻找Linux系统上恶意软件的资料却少之又少。因此,这篇文章主要是向大家介绍一些有关检查Linux系统恶意软件的技巧和方法。话不多说,让我们进入正题。

校验二进制文件

有一件事需要检查确认即没有运行的二进制文件被修改。这种类型的恶意软件可以用sshd的版本来支持,以允许使用特定的密码连接到系统,甚至是一些二进制文件的修改版本,它以root用户身份运行,只需监听触发器数据包的原始套接字即可。为此,我们将以Redhat和Debian为例。

寻找不属于的二进制文件

find /proc/*/exe -exec readlink {} + | xargs rpm -qf | grep “not owned”

find /proc/*/exe -exec readlink {} + | xargs dpkg -S | grep “no path”

校验运行的二进制文件是否与包中的文件匹配

find /proc/*/exe -exec readlink {} + | xargs rpm -qf | xargs rpm -V

find /proc/*/exe -exec readlink {} + | xargs dpkg -S | cut -d: -f1 | xargs dpkg -V

829335526d769b13e0b288f11eb95d7f.png

校验所有包文件

另一件需要检查确认的事是即所有属于包的二进制文件都没有被修改。这个过程可能需要一段时间才能完成,但这是值得。我们可以设置一个cron jobs,以在指定时间来运行它。

校验所有包文件

rpm -Va

dpkg -V

510a4ae4f6e32f3c1910884e05a40078.png

输出结果

输出应该显示属于包的任何二进制文件,计算二进制文件的哈希值,并将其与包安装或更新时保存的值进行比较。以下是基于Redhat系统的输出。使用dpkg的Debian系统不校验其中的大部分,因此如果修改了二进制文件,只显示“5”。

S 文件大小不同

M 模式不同(包括权限和文件类型)

5 摘要(以前的MD5 sum)不同

D 设备主/次要号不匹配

L readLink(2)路径不匹配

U 用户所有权不同

G 组的所有权不同

T mTime不同

P caPabilities不同

检查RAW套接字

我们经常能看到RAW  socket后门。它们侦听传入的数据包并触发事件,例如最近发现的“Chaos”后门,以及一个在github上搜索raw  socket后门时弹出的示例。对于这个检查,我们只会看看使用RAW套接字的过程。使用它们的常用程序并不多,因此我们可以缩小要查看的进程的范围。

使用 raw sockets listening检查二进制文件

netstat -lwp or ss -lwp

lsof | grep RAW

a04c3fab1d887a5f18f4967ca7a29db1.png

检查可能的注入内存

这里可能会存在各种误报的情况。RWX内存(读写执行)被许多程序使用,其中大多数是解释型语言,所以像python和java之类的,或使用任何库解析脚本的都会有这种情况,这是非常正常的。如果你找到RWX内存的许多条目并且该进程不是python或java,那你就应该仔细的查看一下了。该命令将列出RWX内存的进程id。可以看到以下列出了cron,这显然是不正常的进程。

命令查找pid

grep -r “rwx” /proc/*/maps | cut -d/ -f 3|uniq -c | sort -nr

c23ade5b69a90c4d18f2c549f7b151bf.png

检查修改的PAM模块

一个常见的后门是插入或替换PAM模块进行认证。  这可以允许远程访问,并且还允许攻击者从任何用户获取root权限。这个后门程序也不关心对/etc/passwd的修改,所以所有的原始密码和修改后的密码仍然有效。由于它提供的访问类型,在我看来这是一种非常危险的后门类型。你可以使用合法登录条目的正常协议,因此看起来显然像是没有任何恶意网络活动一样。

校验PAM模块

find /lib64/security/ | xargs rpm -qf | grep “not owned”

find /lib64/security/ | xargs rpm -qf | grep -v “not “| xargs rpm -V

ea38198232fccb50f5834c88eae842f9.png

fb679cdc09cf9661c76be92bd57b4dfc.png

a14365d14337de09862b61074d209a3c.png

SSH访问

保持访问权限并不需要删除二进制文件的一种非常简单的方法是,只需将ssh密钥添加到特定用户的authorized_keys文件中,并允许攻击者像普通用户那样进入ssh。这也是最难检测的方法之一,因为你需要确定ssh密钥是合法的还是恶意的,这要求用户验证只有他们的密钥在该文件中。攻击者也可以窃取用户的密钥,如果他们之前被盗用过的话。

列出所有用户的.ssh文件夹

cat /etc/passwd |cut -d: -f 6 | xargs -I@ /bin/sh -c “echo @; ls -al @/.ssh/ 2>/dev/null”

d49f95e65850e10f1b8aa4e8b8a936a2.png

总结

有许多不同的方式可以保持对Linux服务器的权限访问。以上查找列表并不完整,但都是一些较为常见的查找后门的方法,包括Meterpreter和github上发现的其他常见后门程序。

END

加入群聊
信安客技术交流群共享安全行业最新动态、技术交流、等保相关标准等,信安客有微信群和QQ群,Q群号:629279985;进入微信群请添加信安客微信号“xinankexiaoan”拉您进群。

往期回顾 MySQL下xtrabackup与MTS造成的死锁 Linux系统的ETN挖矿病毒,你了解多少? 监视加密网络流量的3种方法

398eb7b3757a153d48079139d046b112.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值