debian重启ssh服务_如何快速找出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

f297171b5c7d68aaf1a96953de46c422.png

校验所有包文件

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

校验所有包文件

rpm -Va

dpkg -V

3dd929772033bdc5fab79881e5ba089e.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

b346ebf7952873ada3a4553c4d981f28.png

检查可能的注入内存

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

命令查找pid

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

824bdfa39a693c73978010ca12b7f1b0.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

fbe89c87b5a4fa302c398637918fc8a7.png
9f3842609b07418e412da1ba57e1dc40.png
5b8de5d7b77a153ab839e76bf6f68ff7.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”

21374f064c277ba580b77978bbc5fe1b.png

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值