Linux服务器被入侵后的处理过程

 

突然,频繁收到一组服务器 ping 监控不可达邮件,赶紧登陆 zabbix 监控系统查看流量状况。

可见流量已经达到了 800M 左右,这肯定不正常了,马上尝试 SSH 登陆系统,不幸的事,由于网络堵塞,登录不上或者卡死。

1、排查问题

第一反应是想马上通知机房运维人员切断该服务器外部网络,通过内网连接查看。可是这样一来流量就会消失,就很难查找攻击源了。

于是联系机房协助解决,授权机房技术登录到系统,先通过 命令查看是否有异常用户在登录,再看看登录日志  /var/log/auth.log,预料之中,日志已经清空;最后使用工具找出那个连接占用流量大,我使用了 iftop 工具。

机房技术发来拍照,看到本地一直通过 http 方式向 104.31.225.6 这个 ip 发送数据包,而且持续不断。

那好,先把这个 ip 给屏蔽了试试:

iptables –A OUTPUT –d 104.31.225.6 –j DROP

奇迹出现,瞬间流量下去,现在也可以正常登录系统。

过一会儿~ 不幸的事情发生了,流量又上来了,擦!什么情况!心情顿时紧张起来。

又赶紧联系机房技术,告知他执行上次屏蔽 ip 操作。

机房技术发来拍照,这次傻眼了,目的 ip 变了,这可咋搞,不可能一个个封吧!

静下心来,仔细想了下,本地向外发包,那本地肯定会有程序来发!

2、查找攻击源

先通过netstat工具过滤端口,查看运行的进程ID:

netstat –atup |grep 15773

结果什么都没有,再换个端口试试,同样的效果!

让机房技术观察了下连接状态,原来是短连接,端口很快会释放,所以才看不到端口的连接状态。

正常长连接来说,可以使用 lsof –i :15773 这样方式找到 PID,再 lsof –p PID 找到打开的相关文件。

好吧!决定先切断外部网络,内网 SSH 进入系统,先找到这个发包的程序!

先通过 netstat –antup 查看有无开放可疑的端口或者连接。

再通过 ps –ef 查看有无可疑的进程。

仔细盘查,无可疑情况。

难道是植入了 rootkit 木马程序?说不好,试试看吧!

想要判断系统有没有植入了 rootkit 可以使用 md5sum 校验执行文件判断,先找个同版本操作系统,获取到这个工具执行文件的 md5 值,再获取可疑的工具执行文件 md5 值,比较两个值是否相同,如果相同说明这个工具是可信任的,如果不相同很有可能是被替换的。

另外,一般工具可执行文件大小都在几十K到几百K。

其实我没有用md5方式来判断工具是否可信任,因为这台操作系统比较老,完全相同版本操作系统不好找,稍微有点差别,工具就有可能已被更新,md5 值不同。

先执行了 du –sh /bin/lsof 查看,发现大小 1.2M,明显有问题。

所以尝试把正常系统里的 netstat、ps 等工具二进制文件上传到被黑的系统里,替换掉原有的,果然,奇迹出现了~

3、清理木马程序

执行 ps –ef 后,发下最下面有几行可疑程序。在这里,本想截图的,可惜 SSH 客户端给关了,没留下截图。

记忆中,大概是这样的:

pid /sbin/java.log

pid /usr/bin/dpkgd/ps –ef

pid /usr/bin/bsd-port/getty

pid /usr/bin/.sshd

接下来,逐步看看这些进程。

怎么会有个 java.log 的执行文件在运行呢?找同事是不是他们跑的,说是没有。那好,先杀掉进程并把文件移动到别的目录再看看。

/usr/bin/dpkgd/ps –ef 这个进程怎么像是我执行的命令呢?仔细一看,命令的路径有问题,不是 /bin/ps,进入此目录下查看。


擦,还有几个,基本可以确定这些工具是被替换了。。。

还有一个 getty 执行文件,正常系统下没有运行这个,估计又是黑客留下的,杀掉进程,删除目录。宁可错杀一百,也不放过一个!

.sshd 进程?明显很可疑,难道是 ssh 后门,杀掉!

目前这些异常进程都已经被处理掉。

再执行 ps –ef 命令看下,奇怪,java.log 进程又起来了,难道有自启动设置?于是到了 /etc/init.d 下查看,有个异常可执行文件,正常系统里没有,打开看了下,果然是自动启动木马程序的脚本。

把这两个脚本删除,再删除java.log文件,文件不再生成,进程也不再运行了!

好了,可以开启外网了,观察了一会网络流量不再飙升了。

4、总结

ls /usr/bin/dpkgd/   #黑客替换的工具(netstat lsof ps ss),系统自带的工具正常不会在这个目录下,并且也不可用。

/sbin/java.log    #判断是发包程序,删除后会自动生成。

/usr/bin/bsd-port    #判断是自动生成 java.log 或着后门程序。

/usr/sbin/.sshd    #判断是后门程序。

如果还有其他木马程序怎么办?

如果是 XSS 攻击,应用层漏洞入侵怎么办?

针对这些问题,最好方式就是备份数据,重装系统,干净利落。

但从我们公司角度来说,暂时不能重装系统,业务比较复杂,跑的业务比较多,还没摸清楚,准备慢慢迁移数据,再观察下吧!

黑客趁机入侵的原因:

  1. 运维人员网络安全意识低,安全策略落实少;

  2. 上线前没有对暴露外部的应用进行安全扫描;

  3. 没有安全测试人员,没有关注漏洞最新动态,不能及时发现漏洞;

等…

针对这次攻击,总结下防护思路:

  1. Linux 系统安装后,启用防火墙,只允许信任源访问指定服务,删除不必要的用户,关闭不必要的服务等。

  2. 收集日志,包括系统日志,登录日志,程序日志等,对异常关键字告警,及时发现潜在风险。

  3. 针对用户登录信息实时收集,包括登录时间,密码重试次数以及用户执行命令记录等。

  4. 对敏感文件或目录变化进行事件监控,如 /etc/passwd、/etc/shadow、/web、/tmp (一般上传文件提权用)等。

  5. 进程状态监控,对新增的进程(非业务和系统进程)监控并通知。

  6. 对上线的服务器系统、Web 程序进程安全漏洞扫描。

转发自  李振良 DevOps技术栈 今天
https://mp.weixin.qq.com/s/dvLyN_QbUJ-dBxwTg3qOFA

附:安全运维经验

- END -

Linux服务器被入侵后的处理过程(转发阿良)的更多相关文章

  1. Linux服务器被入侵后的处理过程

    突然,频繁收到一组服务器 ping 监控不可达邮件,赶紧登陆 zabbix 监控系统查看流量状况. 可见流量已经达到了 800M 左右,这肯定不正常了,马上尝试 SSH 登陆系统,不幸的事,由于网络堵 ...

  2. linux 服务器更主板后无法识别网卡处理过程

    linux 服务器更主板后无法识别网卡处理过程   服务器故障报修,主板坏,更换主板后无法识别网卡,ifconfig 查看只显示:lo loopback 127.0.0.1. 系统加载网卡驱动后会去读 ...

  3. Linux 主机被入侵后的处理案例

    Linux主机被入侵后的处理案例 提交 我的留言 加载中 已留言 一次Linux被入侵后的分析 下面通过一个案例介绍下当一个服务器被rootkit入侵后的处理思路和处理过程,rootkit攻击是Lin ...

  4. 一次Linux服务器被入侵和删除木马程序的经历

    转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wzlinux.blog.51cto.com/8021085/1740113 一.背景 晚上看到有台服 ...

  5. linux服务器出现严重故障后的原因以及解决方法

    1.把系统安装光盘插入,重启机器,启动时迅速按下Del键,进入CMOS,把启动顺序改为光盘先启动,这样就启动了Linux安装程序,按F5,按提示打入Linux rescue回车,进入救援模式,接下来是 ...

  6. 一次linux服务器黑客入侵后处理

     场景: 周一上班centos服务器ssh不可用,web和数据库等应用不响应.好在vnc可以登录 使用last命令查询,2号之前的登录信息已被清空,并且sshd文件在周六晚上被修改,周日晚上2点服务器 ...

  7. Linux服务器更换主板后,网卡识别失败的处理方法

    1)现象说明公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在,但是ip却ping不通了,进一步排查,重 ...

  8. linux 服务器下入侵之后的日志清理

    1.web日志的清理:access.log 和auth.log 位置在/var/log/下面. 2.系统日志存放在:/root/.bash_history

  9. 线上Linux服务器运维安全策略经验分享

    线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...

随机推荐

  1. Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩+路由跳转router-view渲染数据 路由跳转到同一个页面带参数ID 自动刷新数据

    准备:导入ElementUI 看官网教程 数据准备:JSON数据转换成树状 参考文章: JS实现 JSON扁平数据转换树状数据 后台我拿的数据是这样的格式: [ {id:1 , parentId: 0 ...

  2. Algorithm: 多项式乘法 Polynomial Multiplication: 快速傅里叶变换 FFT / 快速数论变换 NTT

    Intro: 本篇博客将会从朴素乘法讲起,经过分治乘法,到达FFT和NTT 旨在能够让读者(也让自己)充分理解其思想 模板题入口:洛谷 P3803 [模板]多项式乘法(FFT) 朴素乘法 约定:两个多 ...

  3. 华硕win10U盘重装系统进入pe

    1.先要制作一个U盘的PE启动盘,建议使用WIN8 PE 2.将制作好的PE启动盘接上电脑,开机按F2键进入BIOS ,先将[Secure]菜单下[Secure Boot Control]选项设置为[ ...

  4. Django中model的class Meta

    Class Meta 作用:使用内部类来提供一些metadata,以下列举一些常用的meta:1,abstract:如下段代码所示,将abstract设置为True后,CommonInfo无法作为一个 ...

  5. Wireshark入门与进阶系列五之常见捕获过滤器

    0x00 前言 我们都知道,wireshark可以实现本地抓包,同时Wireshark也支持remote packet capture protocol(rpcapd)协议远程抓包,只要在远程主机上安 ...

  6. 平滑重启更新(GR机制)

    平滑重启更新(GR机制) 什么是平滑启动机制 是一种在协议重启时保证转发业务不中断的机制. 什么时候用到平滑重启 平滑重启一般应用于业务更新或者版本发布过程中,能够避免因为代码发布重启服务导致的暂时性 ...

  7. mybatis 执行流程以及初用错误总结

    mappper 配置文件  头文件: 1.   <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" &q ...

  8. Android整理:SQlite数据库的使用以及通过listView显示数据

    前言:上个月与同学一起做了一个简单的Android应用,这段时间正好没有很多事情所以趁热整理一下学习到的知识,刚开始学习Android还有很多不懂的地方,继续努力吧! 作业中需要用到数据库,当然首选A ...

  9. python库之matplotlib学习---图无法显示中文

    在代码前面加上 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] ...

  10. 题解 NOI2004【郁闷的出纳员】

    \[ Preface \] 之前用 treap 打,交了四遍才过. 自学了 fhq treap 后,才意识到是一道 fhq treap 板子题,直接码上,一遍就过. 本题解提供的是 fhq treap ...