离开厂家多年,很久没有碰这类事件了。

回顾:

 2017年9月末,接到一个朋友转述的求助信息。他一客户的服务器被黑了。服务器上所跑业务上的金额也全部被人转走了。

朋友的客户加我后,没头没尾的问我能不能做服务器加固...(难得的长假,举国欢庆啊哪有空鸟他)。

 10月4号跟对方详细聊了下情况。大致明白缘由了。

事件:

 1.一台阿里云上的centos服务器被黑。理由:服务器上被加了计划任务+脚本。

2.服务器所支撑的业务(一个微信公众号)上所有的金额被黑阔批量转走(薅羊毛?)

朋友客户的处理措施:

1.直接把对方的脚本删了。(语音询问得知这点直接让我无语了= =)

2.日志未备份。

3.服务器直接下线。

好吧,本来只是单纯的入侵行为,还不是很有兴趣。毕竟举(mei)国(kong)欢(da)庆(li)的日子。但后面说有“薅羊毛”的味道。可“薅”就“薅”吧,为什么要入侵服务器?感觉可以上面看看。

开搞:

又磨蹭了半天,吃完早餐就抱着电脑登上服务器了

先last(习惯性)。即使不是我的服务器我习惯性看看有没有其他人在= =

因为先前从对方那得知,ip来自境外。所以把last记录里的ip挑出来。去ip库查了遍(ip都在正常区域)。这有点出乎意料了...没登录过?

猜测可能原因:

  1.对付通过爆破SSH(端口裸露在公网),然后登录。

2.通过其他服务(MSSQL、MYSQL等)。

3.业务系统有漏洞。(对方说是java开发的)。

  4.其他...

初步判断:

  简单看了last记录看不到有来自其他ip的登录(除非黑阔把日志删除了)。排除1。

  业务系统由运行MYSQL,且严格限制ip。且为阿里云上的数据库服务。排除2。

沟通后得知是java开发的,我一喜,马上问是struts2之类的框架吗? 对方巴拉巴拉一堆。 好吧没听懂= =(不是struts2)。

端口、进程都查了。没有发现异常的地方(由于管理员在第一时间清理进程,所以对后期排查也有影响。这里也给大家在做入侵应急响应一个警示!!)。

查下.bash_history(所以,渗透的同学请注意痕迹问题):

感兴趣的东西不多,留意下面:+

(上图大部分是管理员在发现被入侵后的操作。个别命令管理员自己都忘记是不是自己的操作了。)

好吧,只能仅作参考了 = =

查下/var/log/secure信息(Ubuntu的认证信息存放在auth中)。

发现一大堆来自境内外的爆破信息。日志文件被分成好几个了。一个个查。

为了方便,查了认证成功的信息:

翻了一遍。有登录成功的ip都是正常的地区(管理员所在城市)

看来黑阔真没登录成功过?

不应该啊,没登录怎么写计划任务。除非就是有远程执行了....又没有struts2之类的。看来还有遗漏的地方。

继续:

管理员说过计划任务有问题。

切过去看看。/var/log/下 有几份计划任务的日志。(原计划任务中的脚本文件被管理员自己删除了= =)

翻翻计划任务看有没有什么信息。

果然.....

好像离真相很近了。发现脚本记录。

再查下/var/spool/cron/下的信息(如果创建了计划任务,这里会有以该用户命令的信息。比如root):

补充:crontab -l 查看当前用户的计划任务信息。

欧克,那么明白了,脚本就是这个。

本地试试看这个脚本还存不存在远程服务器上。结果直接下回来了....

眼熟吗?有的盆友估计看到这个脚本很眼熟。

好吧,单纯的我没有第一时间反应过来。傻乎乎的分析脚本去了(我把这脚本跟刷红包联系在一起了)。

把文件截图一份扔给群里的胸弟,然后接着看。

突然在etc下发现了这个。。。

不会是未授权访问吧。。。

马上询问管理员,有弄过redis吗? 管理员回答:有!后来改成阿里云的了

至此大概明白怎么回事了

真相只有一个...

群里胸弟的反馈:这不就是挖矿的节奏嘛。

redis未授权+挖矿+杀进程。终于说通了

1.Redis服务使用ROOT账号启动
2.Redis服务无密码认证或者使用的是弱口令进行认证
3.服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。 这里植入挖矿程序都不需要登录服务器。只需要远程写入计划任务并启动脚本就可以实现。这也就是为什么调用了root权限但是没有登录记录的原因。 至于怎么修复:请自行百度。

  

至此前期工作告一段落。其实按常规的检查思路。还有很多需要检查的地方。如果端口、进程、常规日志等都没发现问题,那么就改查文件信息了(修改、创建等)直到排查出原因。

1.管理员已将这台服务器下线。redis也停了一段时间。所以入侵行为发现也有一段时间了。只是近期发现有恶意抢微信红包才留意到服务器被黑。

2.没错,微信红包的事还没解决....也就是说服务器被入侵和刷红包其实是两个事情两者没有必然联系(刚好时间接近)。所以在反查的时候会不自觉的将两者联系在一起。

给管理员提了些关于限制恶意抢红包的机制。

------------------------------------

-邪恶的分割线--------------------------------------------------------------

附上些日志检查常用的命令:

last -f /var/log/wtmp  等同与last  //查看所有的登录记录

last -f /var/log/btmp  //只记录认证失败的信息

linux 关键的系统日志

.   message和syslog:   记录linux系统长的系统和服务错误信息
/var/log/messages redhat centos
/var/log/syslog ubuntu . auth :用来存放认证信息 如login su
ubuntu和debian: /var/log/auth.log
redhat centos : /var/log/secure . cron: 系统定期执行计划任务时产生的日志 /var/log/cron
计划任务位置:/var/spool/cron . mail :邮件日志 /var/log/mail . lastlog : 机器最后一次登录成功的时间、ip等 /var/log/lastlog

记一次针对Centos的入侵分析的更多相关文章

  1. 精通Web Analytics 2.0 (12) 第十章:针对潜在的网站分析陷阱的最佳解决方案

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第十章:针对潜在的网站分析陷阱的最佳解决方案 是时候去处理网站分析中最棘手的一些问题了,然后获得属于你的黑带,这是成为分析忍者的 ...

  2. 记一次Linux系统被入侵的过程

    记一次Linux系统被入侵的过程 1. 前期现象 前期现象,宋组那边反应开发环境192.161.14.98这台机器通过公网下载文件,很慢,ping百度丢包严重.因为这台机器是通过楼下adsl拨号上网, ...

  3. 针对CDP协议攻击分析及安全防护

    针对CDP协议攻击分析及安全防护 熟悉Cisco的朋友都知道CDP协议是思科公司独特的发现协议,在思科公司出产的所有路由器和交换机里面都能运行此协议,一台运行C D P的路由器或交换机能够得知与它直接 ...

  4. 性能测试——记XX银行保全项目性能问题分析优化

    记XX银行保全项目性能问题分析优化 数据库问题也许是大部分性能问题的关注点,但是JAVA应用与数据库交互的关节,JDBC 就像是我们人体的上半身跟下半身的腰椎,支持上半身,协调下半身运动的重要支撑点. ...

  5. CentOS下cpu分析 top

    CentOS下 cpu 分析-top 时间:2017-03-20 12:09来源:linux.it.net.cn 作者:IT   一. 前言 我们都知道windows下对各个运行的任务,要通过任务管理 ...

  6. 记一次Java的内存泄露分析

    当前环境 jdk == 1.8 httpasyncclient == 4.1.3 代码地址 git 地址:https://github.com/jasonGeng88/java-network-pro ...

  7. 记一次hadoop datanode进程问题分析

    症状:datanode进程还在,但是在web ui接口发现该节点已经被置为dead节点.监测datanode进程日志,开始时一直狂刷很忙,后来停止刷新日志. 分析datanode进程日志,发现如下一些 ...

  8. 记一次系统稳定性问题的分析处理过程(因CallContext使用不当而造成bug)

    问题描述: 一个项目现场反馈,“差旅费类型的单据审批,在出现业务规则没满足的情况时(即业务报错,需要人机交互),审批仍然通过了”.从技术的角度上说,就是业务构件中的业务规则报错后,事务没有回滚.但是, ...

  9. 记一次 MySQL semaphore crash 的分析(爱可生)

    文章来源:爱可生云数据库作者:洪斌 DBA应该对InnoDB: Semaphore wait has lasted > 600 seconds. We intentionally crash t ...

随机推荐

  1. macOS Catalina 的zsh升级

    MacOS最近做了一个大版本升级,这次升级中对开发者有个很大的更新是,模式的shell变成了zsh,官方提供了升级配置文档:https://support.apple.com/zh-cn/HT2080 ...

  2. 【转】编写高质量代码改善C#程序的157个建议——建议56:使用继承ISerializable接口更灵活地控制序列化过程

    建议56:使用继承ISerializable接口更灵活地控制序列化过程 接口ISerializable的意义在于,如果特性Serializable,以及与其像配套的OnDeserializedAttr ...

  3. 出现 sudo: unable to resolve host XXX 信息解决办法

    Ubuntu环境,  每次执行sudo 就出现这个警告讯息:sudo: unable to resolve host XXX虽然sudo 还是可以正常执行,是机器在反解上的问题, 所以就直接从/etc ...

  4. 在jsp页面中通过struts的标签<s:if>来判断选择显示控件

    <s:iterator value="#request.users" var="u"> <!-- 判断该条评论的评论人是不是查看这篇评论的用户 ...

  5. ESP8266 SDK开发: 测试下诱人的程序

    前言 这一节测试一下诱人的程序 实现的功能,APP通过SmartConfig给Wi-Fi模块配网并绑定设备,然后通过MQTT远程控制开发板的继电器, APP显示ESP8266采集的温湿度数据. 简而言 ...

  6. TCP连接和连接释放(TCP的三次挥手和四次握手)

    TCP的运输连接管理 TCP是面向连接的协议.运输连接是用来传送TCP报文的.TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程.因此,运输连接就有三个阶段,即:连接建立.数据传送和连接 ...

  7. linux .pid文件简述

    PID全称是Process Identification. PID是进程的代号,每个进程有唯一的PID编号.它是进程运行时系统随机分配的,并不代表专门的进程.在运行时PID是不会改变标识符的,但是你终 ...

  8. 使用nodejs编写cli工具

    1.创建一个文件夹(my-cli); 2.在当前文件夹打开命令行输入 npm init,创建一个package.json,并配置bin字段,配置后才可以在控制台使用你的命令 "bin&quo ...

  9. 使用jackson转换xml格式数据进行响应

    最近在做微信扫码支付的功能,按照微信开发文档与支付平台进行数据交互只能使用XML格式的数据,调用别人定义的接口就需要按规则来嘛,没办法.自己之前使用jackson,主要是因为SpringMVC默认将j ...

  10. [BZ1925] [SDOI2010]地精部落

    [BZ1925] [SDOI2010]地精部落 传送门 一道很有意思的DP题. 我们发现因为很难考虑每个排列中的数是否使用过,所以我们想到只维护相对关系. 当我们考虑新的一个位置时,给新的位置的数分配 ...