快速自检电脑是否被黑客入侵过

*本文作者:有价值炮灰,本文属 FreeBuf 原创奖励计划,转载请注明来自 FreeBuf.COM。

之前写了一篇《快速自检电脑是否被黑客入侵过(Windows版)》, 这次就来写写Linux版本的。

前言

严谨地说, Linux只是一个内核, 才算完整的操作系统, 但在本文里还是用通俗的叫法,

把,,,,等发行版都统称为.

本文里所说的方法不仅对Linux的发行版适用, 部分方法对操作系统也是适用的.

异常的帐号和权限

如果黑客曾经获得过命令运行的机会, 对方往往会想要将这个机会持续下去, 业内称之为.

而创建后门帐号, 往往是一个持久化的途径.

检查异常帐号

搜寻用户

可以看到当前系统中的所有用户和对应的组信息, 如果帐号太多一眼看不过来,

我通常会用下述方法筛选:

改命令的作用是打印所有类型的shell和对应的数量, 对于有shell的用户, 要仔细检查.

检查用户

如果上一步获得了某个异常的用户名(假设为), 可以用以下方法详细检查该用户:

查看用户id和组信息: id hacker

查看用户最近登录信息: lastlog -u hacker

查看用户历史登录信息: last hacker

查看用户登录失败信息: lastb hacker

查看综合信息: finger hacker

注: 命令在某些操作系统里不是内置的, 可以自行用包管理工具安装, 如:

Ubuntu/Debian: apt-get install finger

CentOS/RedHat: yum install finger

ArchLinux: pacman -S finger

下面提到的其他非内置命令类似

检查异常权限

一般的Linux用户都会用来让普通用户可以执行root操作, 因此对于已经存在的普通用户,

也不可掉以轻心. 所管理的权限, 在以及中可以查看,

最好经常检查改文件以确保没有普通用户获得了意外的权限. 对于每个普通用户,

可以用命令来查询其所属的组, 如果是root或者sudo组,

或者该组在文件中, 那就要格外警觉了.

异常的自启动项

Linux下的自启动流程根据其服务管理器的不同而不同, 常用的有以下三种:

Upstart

Upstart是基于事件的,用来取代古老的/sbin/init进程来处理任务和服务自启动的方法.

查看该类型的自启动文件可以用以下命令:

查看所有自启动项目:

查看某个自启动项目:

SystemV

SystemV就是常用的命令背后的服务管理系统.

查看该类型的自启动文件可以用以下命令:

查看自启动脚本:

查看运行级别的符号链接:

SystemD

SystemD是现代的服务管理系统, 比较新的Linux版都已经迁移为SystemD了.

有两种方式查看所有自启动的服务:

旧版本的Linux一般是Upstart和SystemV混用, 新版本都大多迁移到SystemD了.

其他

异常的计划任务

除了上述的自启动服务, Linux下还可以通过计划任务来进行持久化运行, 检查异常的计划任务相对简单,

只需要查看以及子目录下的计划任务文件即可.

bash初始化

用过Linux的都知道, 在文件里可以进行初始化配置并应用于每个shell,

也就是说里面的脚本在每次新开一个terminal的时候都是有可能被运行的.

这类配置文件包括, , , 等等.

其是否运行以及运行的顺序由shell被调用时是否登录, 以及是否交互运行来决定,

对于bash来说, 执行流程如下表:

其中执行顺序为, B[123]表示只有当第一个脚本存在时候才会执行. 用流程图表示如下:

关于登录/非登录shell以及交互/非交互shell的内容可以参考网上的其他介绍, 这里就不展开了.

只要知道自己的shell初始化所执行的文件顺序, 并检查这些文件看是否有可疑命令, 从而才能发现异常信息.

应用级别的自启动

要找到所有可疑的自启动项是困难的, 有经验攻击者可以修改现有的自启动脚本, 额外拉起命令,

从而减少被发现的风险. 一些Linux桌面版本也会负责运行类似的自启动命令, 比如我最爱的xfce,

在就可以添加自启动的应用.

异常的记录

异常的命令历史记录

一般而言, 黑客获取shell之后会在上面执行某些命令, 我们可以通过命令来查看曾经运行过的命令.

或者直接查看文件. 聪明的黑客干完坏事也许会清理痕迹, 但如果发现history被恶意清除,

或者被异常篡改, 那也足以给我们警示的信号了.

异常的日志记录

日志, 尤其是系统日志, 是我们绝佳的帮手, 下面一些命令可以用来读取日志文件并输出相关信息:

查看每个用户最近的登录时间和ip:

查看每个用户的登录记录:

查看每个用户的登录尝试(包括失败的)记录:

查看当前登录的用户,ip以及正在执行的命令:

当然, 有心的攻击者也会在这些命令中隐藏自己的痕迹, 比如使用小工具hidemyass.

系统日志一般都由rsyslogd进程产生, 配置在文件以及目录下,

一些常见的日志和介绍如下:

/var/log/messages: 一般的系统日志

/var/log/kern.log: 系统内核日志

/var/log/boot.log: 系统启动日志

/var/log/auth.log: 登录相关的日志, 比如ssh/sudo成功失败的日志都在这里

/var/log/secure: 同上

/var/log/cron.d: cron计划任务的执行日志

通过检查上述日志, 往往可以发现一些意想不到的痕迹(如果有的话).

犯罪现场

虽然说自检主要是从犯罪痕迹中找到线索和指示, 但有时候攻击者留下的恶意软件还是会正在运行中的,

这时, 从犯罪现场来搜寻蛛丝马迹也是一个不错的主意.

异常的进程

查找异常进程, 可以用命令查看正在运行的程序所占用的资源, 或者用列出当前系统所用的进程.

如果发现自己不认识的进程, 可以用以下命令进行详细的检查:

查看该进程启动的完整命令行:

查看该进程启动时候所在的目录:

查看该进程启动时的完整环境变量:

列出该进程所打开的所有文件:

列出该进程所打开的网络连接:

当然, 如果攻击者用某种手段隐藏了进程, 也还是会留下一些线索, 比如可疑的LKM模块, 这里就不深入了.

异常的网络流量

如果某个恶意进程正在活动, 很可能此时正在与外界网络有交流, 这就需要通过抓包工具来进行分析了.

对于Linux桌面用户, wireshark是个绝佳选择, 而对于服务端, tcpdump是个好工具, 对其掌握也是很必要的.

以wireshark为例, 打开抓包几分钟左右, 通过内置的过滤规则, 加上上面分析到的应用所打开的网络连接,

就可以看到这个恶意应用到底在和外界做些什么邪恶的交流, 从而及时评估损失和保护数据.

除了恶意软件发起的网络浏览, 还有一些是通过自身发起的. 比如攻击者修改了iptables,DNS,http代理,

或者, 都可能会导致我们正常的网络请求被攻击者监听并篡改. 这些小小的修改也许不是很明显,

可一旦发现自身网络环境’不太对劲’, 就要提高警惕, 仔细排查了.

后记

使用Linux作为日常桌面操作系统的人, 一般都是有一定的技术水平, 但道高一尺, 魔高一丈,

攻击Linux的人对应地技术水平也会高些, 所以本文相对于Windows版的自检略为详细.

正所谓’未知攻,焉知防’, 本文很多自检方法也是根据笔者日常的红队经验得到的,希望能对提高小伙伴们的安全意识和防护能力有所帮助吧.

*本文作者:有价值炮灰,本文属 FreeBuf 原创奖励计划,转载请注明来自 FreeBuf.COM。

本文来自企鹅号 - FreeBuf媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

后门攻击

后门程序是一种恶意软件类型,它会阻止正常的身份验证过程访问系统。因此,远程访问被授予应用程序内的资源,例如数据库和文件服务器,从而使犯罪者能够远程发布系统命令并...

26430
来自专栏ChaMd5安全团队

记一次phpcms漏洞利用到获得服务器过程分享

记一次phpcms漏洞利用到获得服务器 by lshc 随着最近phpcms V9 任意上传和注入poc的流出,在圈内又掀起了一阵漏洞利用浪潮,想到之...

66160
来自专栏数据和云

经典分享:一份高达555页的技术PPT会是什么样子?

首先要明确,升级和迁移是两件事,升级和数据量关系不大,而迁移通常涉及到跨数据库版本、跨平台,其耗时和复杂度大大增加,数据库容量也将成为重要的影响因素。

12740
来自专栏Java技术栈

WEB攻击手段及防御-扩展篇

之前的文章介绍了常见的XSS攻击、SQL注入、CSRF攻击等攻击方式和防御手段,没有看的去翻看之前的文章,这些都是针对代码或系统本身发生的攻击,另外还有一些攻击...

32490
来自专栏安全运维

【腾讯云的1001种玩法】一分钟加固你的腾讯云Linux主机

关闭云主机后,将密钥绑定到你的主机实例。腾讯云将会自动关闭SSH密码登录并开启证书登录。

93110
来自专栏jeremy的技术点滴

云服务器上ssh服务安全加固

93360
来自专栏各种机器学习基础算法

EasyWeChat初体验

环境需求 PHP >= 5.5.9 openssl 拓展 fileinfo 拓展(素材管理模块需要用到) 安装 使用 composer(注意:他会自动检索该目录...

67870
来自专栏渠道合作伙伴技术圈

Windows server环境下混合云部署DFS文件服务

很多传统企业在设计身份验证和文件服务时,都会使用微软的活动目录和windows server自带的文件共享来实现以上的需求, 公有云的出现给这个场...

891160
来自专栏IT杂记

Git挽救丢失的代码

    昨天晚上头脑一发热,丢失了之前忘记提交的代码,情况如下:     有两个分支master,develop,使用develop作为开发分支,前段时间开发了...

19250
来自专栏FreeBuf

又一个登陆框引起的血案

必看的肯定要属HTML源代码了,源代码里包含了下面所说的JS文件。HTML源代码会泄露很多信息,像程序员未删除的注释、敏感路径等都可能在HTML源代码中找的到,...

19940

扫码关注云+社区

领取腾讯云代金券