转载来源 :如何快速找出Linux服务器上不该存在恶意或后门文件 :https://www.2cto.com/article/201805/748965.html

如何快速找出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 -Vfind /proc/*/exe -exec readlink {} + | xargs dpkg -S | cut -d: -f1 | xargs dpkg -V

校验所有包文件

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

校验所有包文件

rpm -Vadpkg -V


输出结果

输出应该显示属于包的任何二进制文件,计算二进制文件的哈希值,并将其与包安装或更新时保存的值进行比较。以下是基于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 -lwplsof | grep RAW


检查可能的注入内存

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

命令查找pid

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


检查修改的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

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”


总结

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

快速找出Linux服务器上不该存在恶意或后门文件相关推荐

  1. 如何快速找出Linux系统中的大文件?

    今日主题: 如何快速找出Linux系统中的大文件? 在前面的文章中,我们讲到了压测时磁盘空间被占满的问题,可以跟今天的文章结合着看. 在性能测试中,我们经常要关注系统磁盘空间,防止因磁盘空间占满而导致 ...

  2. 【Linux】使用du、df 和 sort 命令快速找出Linux系统中的大文件

    在性能测试中,我们经常要关注系统磁盘空间,防止因磁盘空间占满而导致的报错,那么具体怎么查看磁盘空间的大小呢?怎么找到占用空间最大的文件呢? 使用df.du并结合sort,可以快速找到系统中的大文件! ...

  3. linux服务器上nginx日志访问量统计命令

    linux服务器上nginx日志访问量统计命令 日志文件所在地方: /var/log/nginx/access_iqueendress.com.log /var/log/nginx/access_m. ...

  4. Linux服务器上监控网络带宽的18个常用命令

    本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带 ...

  5. 5个找出Linux中“二进制命令”描述和系统中位置的方法

    在数千个 Linux 系统上的命令/程序中,知道给定命令的类型和目的以及其在系统上的位置(绝对路径)对于新手来说可能是一个挑战. 知道命令/程序的一些细节不仅有助于 Linux 用户掌握大量命令,还能 ...

  6. Linux服务器上监控网络带宽与监控性能命令大全

    [51CTO精选译文]本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以 ...

  7. jq fileupload 设置最大文件大小5m_如何在 Linux 服务器上设置 ulimit 和文件描述符数限制 | Linux 中国...

    在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了.-- Shashidhar Soppin 
简介:在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了.因为许多应用程序是基于 J ...

  8. 如何高效快速地在Linux系统上部署Node.js+Express+MySQL的开发环境(桌面可视化)...

    一.前言 可能一些初级前端和我一样,在有些项目需要前后台都一个人打通搞定的时候,对于后台和开发环境的部署还是比较头疼的.特别是Linux系统,由于没有系统接触过,也不太喜欢去记背那么多命令,大部分命令 ...

  9. 【无标题】Linux服务器上监控网络带宽的18个常用命令

    Linux服务器上监控网络带宽的18个常用命令 linux网络流量网络监控工具安装时,但是部分系统yum安装提示是没有这个包, 我们安装EPEL第三方软件源.EPEL(Extra Packages f ...

最新文章

  1. kalilinux安装搜狗输入法
  2. 独家 | 使用机器学习加速对非结构化数据的查询-第1部分(使用BlazeIt加速聚合和限制查询)...
  3. Java Web(11) Spring MVC 返回Json
  4. 【开源】Winform甘特日程控件GanttPlanner V1.0发布
  5. 项目开发环境(h5+pc的开发思路是一样的)
  6. 软件工程概论---典型用户和用户场景描述
  7. 给你人生的启迪飞鸽传书
  8. 吴恩达神经网络和深度学习-学习笔记-2-激活函数
  9. 自己写好记的Oracle的 Group By 、 Group By Rollup和Group By Cube基础
  10. SQL 2008 R2密钥
  11. 注册测绘师学习笔记(一)
  12. 软件开发学什么编程语言好
  13. Macsome Spotify Downloader for Mac(Spotify音乐转换下载器)
  14. 编辑邮件时去掉回车光标跟随
  15. C# 打印PDF文件
  16. matlab画图——semilogy函数介绍
  17. 常见数据类型的API
  18. 到底什么是QPS、TPS、RT、PV、UV、IV、VV、IP、系统吞吐量?
  19. 安装 android 模拟器
  20. css min-height 和 max-height

热门文章

  1. 【项目.源码】深度学习视觉计算辅助良品检验,如何做布匹疵点识别?
  2. fckeditor漏洞_一、Ewebeidtor编辑器漏洞
  3. thzthz.net forum.php,xthz画质修改器
  4. 计算机用户在使用计算机文件时6,201606-计算机基础选择题(含答案)(6页)-原创力文档...
  5. 京东动态页面爬虫 scrapy+selenium
  6. python实现编辑距离以及回溯路径
  7. 光子浏览器_光子学公开课第十四期 明日开课 | 上海大学金翊教授:三值光学计算机...
  8. 展示360度全景影像的利器--PanoramaGL
  9. Linux下的文件共享全攻略系列之二:NFS快速配置教程与安全策略
  10. STM32|4-20mA输出电路