1.原因:本来在家正常休息了,我们放在上海托管机房的线上服务器突然蹦了远程不了,服务启动不了,然后让上海机房重启了一次,还是直接挂了,一直到我远程上才行。

2.现象:远程服务器发现出现这类信息

Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!

登录信息

然后FQ去了国外网站查看

Greetings,

Your server has been hacked and your files have been deleted.

Before they were deleted, we backed them up to a server we control.

You must send a total of 3 BTC to the address: 1B1oU6EdREYffif3**********

Failure to do so will result in your files being deleted after 5 days.

We may also leak your files.

You can e-mail onewayout@sigaint.org for support. We will not give any files before a payment has been made.

Goodbye!

发现被黑。

3.开始排查:

首先检查日志,以前做过安全运维,所以写过类似于检查命令和工具,开始一一排查。

#查看是否为管理员增加或者修改

find / -type f -perm 4000

#显示文件中查看是否存在系统以外的文件

rpm -Vf /bin/ls

rpm -Vf /usr/sbin/sshd

rpm -Vf /sbin/ifconfig

rpm -Vf /usr/sbin/lsof

#检查系统是否有elf文件被替换

#在web目录下运行

grep -r "getRuntime" ./

#查看是否有木马

find . -type f -name "*.jsp" | xargs grep -i  "getRuntime"

#运行的时候被连接或者被任何程序调用

find . -type f -name "*.jsp" | xargs grep -i  "getHostAddress"

#返回ip地址字符串

find . -type f -name "*.jsp" | xargs grep -i  "wscript.shell"

#创建WshShell对象可以运行程序、操作注册表、创建快捷方式、访问系统文件夹、管理环境变量

find . -type f -name "*.jsp" | xargs grep -i  "gethostbyname"

#gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针

find . -type f -name "*.jsp" | xargs grep -i  "bash"

#调用系统命令提权

find . -type f -name "*.jsp" | xargs grep -i  "jspspy"

#Jsp木马默认名字

find . -type f -name "*.jsp" | xargs grep -i  "getParameter"

fgrep - R "admin_index.jsp" 20120702.log > log.txt

#检查是否有非授权访问管理日志

#要进中间件所在日志目录运行命令

fgrep - R "and1=1"*.log>log.txt

fgrep - R "select "*.log>log.txt

fgrep - R "union "*.log>log.txt

fgrep - R "../../"*.log >log.txt

fgrep - R "Runtime"*.log >log.txt

fgrep - R "passwd"*.log >log.txt

#查看是否出现对应的记录

fgrep - R "uname -a"*.log>log.txt

fgrep - R "id"*.log>log.txt

fgrep - R "ifconifg"*.log>log.txt

fgrep - R "ls -l"*.log>log.txt

#查看是否有shell攻击

#以root权限执行

cat /var/log/secure

#查看是否存在非授权的管理信息

tail -n 10  /var/log/secure

last cat /var/log/wtmp

cat /var/log/sulog

#查看是否有非授权的su命令

cat /var/log/cron

#查看计划任务是否正常

tail -n 100 ~./bash_history | more

查看临时目录是否存在攻击者入侵时留下的残余文件

ls -la /tmp

ls -la /var/tmp

#如果存在.c .py .sh为后缀的文件或者2进制elf文件。

1
2
检查出有点类似于黑客的ip,只能猜测然后查看ip地址过滤出这个ip的访问信息
并查看ip地址是那边的

Apr 17 03:14:56 localhost sshd[11499]: warning: /etc/hosts.deny, line 14: missing ":" separator

Apr 17 03:15:01 localhost sshd[11499]: Address 46.214.146.198 maps to 46-214-146-198.next-gen.ro, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

Apr 17 03:15:01 localhost sshd[11499]: Invalid user ubnt from 46.214.146.198

Apr 17 03:15:01 localhost sshd[11500]: input_userauth_request: invalid user ubnt

Apr 17 03:15:01 localhost sshd[11499]: pam_unix(sshd:auth): check pass; user unknown

Apr 17 03:15:01 localhost sshd[11499]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=46.214.146.198

Apr 17 03:15:01 localhost sshd[11499]: pam_succeed_if(sshd:auth): error retrieving information about user ubnt

Apr 17 03:15:03 localhost sshd[11499]: Failed password for invalid user ubnt from 46.214.146.198 port 34989 ssh2

Apr 17 03:15:03 localhost sshd[11500]: Connection closed by 46.214.146.198

就是他了,查看历史记录

日志发现 Invalid user ubnt from 46.214.146.198

历史记录和相关访问日志已经被删除,痕迹清除。

1
2
3
4
5
6
7
8
9
10
安装chrootkit检查是否有rootkit
mkdir chrootkit
cd chrootkit/
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz 
cd chkrootkit-0.50/
ls
yum install -y glibc-static
make sense
./chkrootkit

发现检查没有异常

打开 vi /etc/motd 发现

1
2
3
4
5
6
7
[root@mall ~]# vi /etc/motd 
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!
Hi, please view: http://pastie.org/pastes/10800563/text?key=hzzm4hk4ihwx1jfxzfizzq for further information in regards to your files!

查找不出后门也找不到相关命令,感觉思路受损,晕头转向。

最后查找下单天的web访问日志和相关ip访问

发现一条命令让我好奇,GET /cgi-bin/center.cgi?id=20 HTTP/1.1

并且有点异常

发现像目前最流行的bash shell 漏洞,测试一下,果然存在漏洞。

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

[root@mall ~]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

vulnerable

this is a test

4.修复升级命令:

yum -y install yum-downloadonly

yum -y install bash-4.1.2-33.el6_7.1.x86_64.rpm

[root@mall tmp]# yum -y install bash-4.1.2-33.el6_7.1.x86_64.rpm

已加载插件:fastestmirror, security

设置安装进程

诊断 bash-4.1.2-33.el6_7.1.x86_64.rpm: bash-4.1.2-33.el6_7.1.x86_64

bash-4.1.2-33.el6_7.1.x86_64.rpm 将作为 bash-4.1.2-15.el6_4.x86_64 的更新

Loading mirror speeds from cached hostfile

* base: ftp.sjtu.edu.cn

* extras: mirrors.skyshe.cn

* updates: ftp.sjtu.edu.cn

解决依赖关系

--> 执行事务检查

---> Package bash.x86_64 0:4.1.2-15.el6_4 will be 升级

---> Package bash.x86_64 0:4.1.2-33.el6_7.1 will be an update

--> 完成依赖关系计算

依赖关系解决

======================================================================================================================================================================================

总文件大小:3.0 M

下载软件包:

运行 rpm_check_debug

执行事务测试

事务测试成功

执行事务

正在升级   : bash-4.1.2-33.el6_7.1.x86_64

清理      : bash-4.1.2-15.el6_4.x86_64

Verifying  : bash-4.1.2-33.el6_7.1.x86_64

Verifying  : bash-4.1.2-15.el6_4.x86_64

更新完毕:

bash.x86_64 0:4.1.2-33.el6_7.1

完毕!

重新测试

[root@mall tmp]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

this is a test

5.完成后做了如下措施:

1.修改了系统账号密码。

2.修改了sshd端口为2220。

3.修改nginx用户nologin。

4.发现系统服务器存在bash严重漏洞 破壳漏洞(Shellshock)并修复。

5.更新完成后后面没有发现被入侵或者服务器自动宕机现象。

6.漏洞被利用过程:

我发送GET请求–>目标服务器cgi路径

目标服务器解析这个get请求,碰到UserAgent后面的参数,Bash解释器就执行了后面的命令

7.Shellshock介绍

Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从而允许攻击者在易受攻击的Bash版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统。

8.相关文章:

http://zone.wooyun.org/content/15392

http://www.freebuf.com/articles/system/50707.html

http://bobao.360.cn/news/detail/408.html

http://hacker-falcon.blog.163.com/blog/static/23979900320148294531576/

本文出自 “浩子的▁运维笔录ヽ” 博客,http://chenhao6.blog.51cto.com/6228054/1768695

记录一次linux线上服务器被黑事件的更多相关文章

  1. 线上服务器CPU100%排查,Linux进程消耗查看

    线上服务器CPU100%排查,Linux进程消耗查看 1.排查步骤 1.1Linux下排查 1.1.1查消耗cpu最高的进程PID 1.1.2根据PID查出消耗cpu最高的线程号 1.1.3根据线程号 ...

  2. 线上服务器TCP被打满是啥情况

    从一个线上服务器警告谈谈backlog https://wangxiangnan.cc/?p=105 缘起 双十一如期而至,此时的我因为在处理客户的一个问题已经陷入了忙碌.突然,不断接到驻场实施发来的 ...

  3. 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验

    分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...

  4. 线上服务器上安装的VNCServer不能正常工作

    1.问题描述: 线上服务器上安装的不能正常工作 2.解决问题过程: 一. 重启vncserver 运行命令:vncserver -kill :1和vncserver :1 二. 发现vncserver ...

  5. 【效率工具】SSH一键登录脚本(可一键从跳板机登录线上服务器)

    说明 前阵子上线,一次性上了十个服务,一直上到凌晨才完事,期间每个服务都要先输入跳板机的登录信息来登录跳板机,然后再输入线上服务器的信息来登录线上服务器,实在是太过于麻烦,而且有些服务还有好几台服务器 ...

  6. 本地数据库导入线上服务器的mongodb中

    更改默认端口 sudo vi /etc/mongod.conf 进入conf文件,修改port值为19999保存并退出. 重启mongodb sudo service mongod restart 进 ...

  7. 线上服务器CPU彪高的调试方式

    原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/2fee7b91-f ...

  8. 运维笔记--线上服务器git环境配置

    场景描述: 我们采用git去管理代码分支,本地开发环境,线上服务器多数情况下也会使用git去管理程序代码,那么新的一台服务器,如果指定了目标路径作为代码存放路径,该如何配置git环境, 以达到跟远程服 ...

  9. 014 Linux 线上高频使用以及面试高频问题——如何查找大文件并安全的清除?

    目录 1 案例描述? 2 命令一(目录统计排序最佳命令) 3 命令二(最实用,目录和文件一起统计排序) (1)命令详情和说明 (2)du.head.sort.awk 详细说明参考已有文章附录 (3)L ...

随机推荐

  1. 对象的this引用

    Java中的this关键字总是指向调用该方法的对象.根据this出现位置的不同,this作为对象的默认引用有两个功能: 1.构造器中引用该构造器正在初始化的对象. 2.在方法中引用调用该方法的对象. ...

  2. 【linux驱动分析】ioctl函数的使用

    一.用户空间的ioctl     int  ioctl(int fd, unsigned long cmd, void *data); 第一个參数是文件描写叙述符,第二个參数代表传递的命令,它会原样传 ...

  3. Django权限机制的实现

    Django权限机制的实现 1. Django权限机制概述 权限机制能够约束用户行为,控制页面的显示内容,也能使API更加安全和灵活:用好权限机制,能让系统更加强大和健壮.因此,基于Django的开发 ...

  4. java多线程中的调度策略

    两种线程的调度模式: 抢占式调度: 抢占式调度指的是每条线程执行的时间.线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长, ...

  5. 根据缺少的so,安装相关的软件

    http://blog.csdn.net/dianyueneo/article/details/8161350. ubuntu缺少libGL.so sudo apt-get install apt-f ...

  6. (转)Java调用Weservice

    原文地址:http://www.cnblogs.com/jiangxu1989/p/6491483.html https://www.cnblogs.com/neughj/p/5145630.html ...

  7. BAT及各大互联网公司2014前端笔试面试题--Html,Css篇(昨天有个群友表示写的简单了点,然后我无情的把他的抄了一遍)

    某个群友 http://www.cnblogs.com/coco1s/   很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础 ...

  8. MongoDB副本集配置系列六:定位MongoDB慢的原因

    1:想知道哪些操作拖慢了MongoDB的速度,首先需要检查当前正在执行哪些操作. gechongrepl:PRIMARY> db.currentOp() "opid" : 7 ...

  9. 各大引擎矩阵的矩阵存储方式 ----行矩阵 or 列矩阵

    OpenGL  里面的矩阵 float  m[16]; OpenGL中的矩阵是这样的 m[0] m[4] m[8] m[12] m[1] m[5] m[9] m[13] m[2] m[6] m[10] ...

  10. ac1008

    这题说的是 给了n个点在圆 上 然后 i连 i+2 从i+2 开始连 i+4  然后 这样一直到某个点 已经被连过为止   如果还有的没有被连过 就从那个点开始 连 按照上面的规则 当 N大于6 的时 ...