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. 关于javascript里面仿python切片操作数组的使用方法

    其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用 ...

  2. 第三百二十八天 how can I 坚持

    今天电脑快把我搞疯了,一天得死机快十次,不知道怎么回事,最后升级了win10,感觉就是比较好. 哎,成了这个样子,当初为什么又让我抽中了那个签,搞不懂啊,这都是为啥. 我哪里错了,还是冥冥中自有天意, ...

  3. HDU 2034 人见人爱A-B 分类: ACM 2015-06-23 23:42 9人阅读 评论(0) 收藏

    人见人爱A-B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  4. Improved logging in Objective-C

    [Improved logging in Objective-C] Example of logging the current method and line number. Paste it in ...

  5. [原创]Devexpress XtraReports 系列 9 创建邮件合并报表

    昨天发表了Devexpress XtraReports系列第八篇[原创]Devexpress XtraReports 系列 8 创建Drill-Through报表,今天我们继续. 今天的主题是创建邮件 ...

  6. [转]Android在初始化时弹出popwindow的方法 .

    转自:http://blog.csdn.net/sxsboat/article/details/7340759 留个人备用0.0 Android中在onCreate()时弹出popwindow,很多人 ...

  7. RPG JS:免费开源的跨平台RPG游戏引擎

    RPG JS是一个2D RPG游戏制作引擎,目前版本基于Ease|JS游戏引擎,基于Canvas Engine的新版本即将发布. RPG JS是免费且开源的. RPG JS有着完善的文档支持. RPG ...

  8. HDU3535AreYouBusy(分组背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=3535 分组背包,每一组加了以下三个限制 0 stands for the sets that should ch ...

  9. Spring JTA应用JOTM & Atomikos II JOTM

    上节建立了一个简单的Java Application以及所需要的数据库和数据表,本节将介绍JOTM在Spring中的配置. JOTM(Java Open Transaction Manager)是Ob ...

  10. sql查找字符串是否包含字符

    SELECT [Fgoodsid] ,[Fgoodsname] ,[Fcinema] ,[Fprice] FROM [tenpaytest].[dbo].[goodsinfo]where Fgoods ...