程序员,请不要抢系统管理员的饭碗
作者:田逸(sery@163.com)
收到哥们一条短信,内容如下:
还有就是海淀分局发了函给我们,要求服务器维护方修复漏洞,并且提供后台漏洞文件,和漏洞攻击日志。都要存档下周一让我带到海淀分局。
看来问题严重,赶紧电话过去问。然后要了系统信息和登录权限。
登录系统,首先查看系统进程,其输出如下(节省篇幅,略掉部分):
从输出可以明显看出两个问题,一个是偷懒用lampp套件,而一个明显被入侵了。Lampp这样的套件,安装起来是很省事,但后期维护却非常的不省事。就使用习惯而言,有经验的系统管理员,很少有用lampp套件在生产环境,因此,使用lampp套件的绝大部分是一些抢系统管理员饭碗的程序员了。要知道,任何事情都有两面性,前边省事,后边必然费事;反之,前边费事,未来就省事。一些程序员图省事,以为执行一个安装指令就完事大吉,而不会去探究实质,一旦出故障,要从一堆混乱的配置里做修正,对于一个没多少经验的人来说,绝对是费时费力。
接下来,再来看木马大概做什么动作。先记下前边可疑进程的进程号,然后执行命令
netstat -anp| grep 20904 ,其输出如下:
tcp 0 0 202.165.183.178:12273 202.0.190.89:80 ESTABLISHED 20904/s64 tcp 0 0 202.165.183.178:30215 202.0.188.113:80 ESTABLISHED 20904/s64 tcp 255 0 202.165.183.178:25725 86.149.147.85:8686 CLOSE_WAIT 20904/s64 tcp 0 0 202.165.183.178:25998 202.0.38.31:80 ESTABLISHED 20904/s64 tcp 0 0 202.165.183.178:52828 202.0.188.105:80 ESTABLISHED 20904/s64 tcp 0 0 202.165.183.178:33785 202.0.188.33:80 ESTABLISHED 20904/s64 |
这个输出,可以了解本机正把流量引向202.0.190.89、202.0.38.31等地址。这个操作,有可能是打流量,也可能是去下载程序,或者引入盗链。
恶意的猜猜,这个程序员会不会也喜欢用root帐号连数据库呢?先找网站根文档的位置,执行 grep DocumentRoot httpd.conf,得到路径是 /opt/lampp/htdocs ;进入这个目录,进赫然发现文件config.php,打开它吧,my god,部分内容如下(为了真实再现,这里连乱码都没处理,直接粘贴):
<?php
/* [SupeSite] (C) 2007-2009 Comsenz Inc. $Id: config.new.php 10885 2008-12-30 07:47:03Z zhaofei $ */
$_SC = array();
//--------------- SupeSite?? --------------- $_SC['dbhost'] = 'localhost'; //SupeSite????α?(?°?±?μ?ocalhost) $_SC['dbuser'] = 'root'; //SupeSite?????§? $_SC['dbpw'] = 'wscykjw2010'; //SupeSite????? $_SC['dbname'] = 'wscykjw2013'; //SupeSite???? $_SC['tablepre'] = 'supe_'; //SupeSite±???(2?????μ??????) $_SC['pconnect'] = 0; //SupeSite?????á???0=1?? 1=′ $_SC['dbcharset'] = 'utf8';//SupeSite????·
$_SC['siteurl'] = ''; //SupeSite3????μ?RL·???·?£???? http:// ?a?μ??URL£????????RL?£?β2????/?£?1¨??ˉ???α±??¤О??a http://www.yourwebsite.com/supesite ??
//--------------- Discuz!?? --------------- $_SC['dbhost_bbs'] = 'localhost'; //Discuz!??????α??£???μ?iscuz!???SupeSite??ê?1????MySQL·??±£t???£?1·???2??μ?ySQL·?дDiscuz!????μ??3?ySQL· $_SC['dbuser_bbs'] = 'root'; //Discuz!?????§? $_SC['dbpw_bbs'] = 'wscykjw2010'; //Discuz!????? $_SC['dbname_bbs'] = ''; //Discuz!????(?1upeSite°2???????t??′?? $_SC['tablepre_bbs'] = 'cdb_'; //Discuz!±??? $_SC['pconnect_bbs'] = '0'; //Discuz!?????á???0=1?? 1=′ $_SC['dbcharset_bbs'] = 'utf8';//Discuz!????· $_SC['bbsver'] = ''; //??°汾(??Discuz!??μ?汾£?=?£o7)
$_SC['bbsurl'] = ''; //??URLμ?·?£????http://?a?μ??URL£????????RL?£?β2????/ $_SC['bbsattachurl'] = ''; //??????URLμ?·(???3???????????£??1?ā??3?????愿?£????????)
//--------------- UCenter HOME?? --------------- $_SC['dbhost_uch'] = 'localhost'; //UCenter HOME????α? $_SC['dbuser_uch'] = 'root'; //UCenter HOME?????§? $_SC['dbpw_uch'] = 'wscykjw2010'; //UCenter HOME????? $_SC['dbname_uch'] = ''; //UCenter HOME???? $_SC['tablepre_uch'] = 'uchome_'; //UCenter HOME±??? $_SC['pconnect_uch'] = '0'; //UCenter HOME?????á???0=1?? 1=′ $_SC['dbcharset_uch'] = 'utf8';//UCenter HOME????·
$_SC['uchurl'] = ''; //UCenter HOME URLμ?·?£????http://?a?μ??URL£????????RL?£?β2????/ $_SC['uchattachurl'] = ''; //UCenter HOME ????URLμ?·(???3?????????£??1?ā??????愿?£????????) |
果然有程序员风格,好可爱的root帐号啊!
还记得程序员爱用的一招:目录权限所有用户可读可写可执行,也就是777了。幸亏不是中国人发明的计算机,不然会是999了。到网站根目录/opt/lampp/htdocs,执行一下 pwd 确认一下,接着执行 ls –al 输出如下:
total 2724 drwxrwxrwx 29 root root 4096 Jun 21 22:15 . drwxr-xr-x 20 root root 4096 Jul 29 2013 .. drwxr-xr-x 2 nobody nobody 4096 Jun 15 06:49 ... -rwxrwxrwx 1 root root 16384 Jul 18 2013 .config.php.swp -rwxrwxrwx 1 root root 190 Jul 22 2013 .htaccess -rw-r--r-- 1 root root 8 Jul 29 2013 1.html -rwxrwxrwx 1 root root 1123419 Jan 1 2012 1.mp3 -rwxrwxrwx 1 root root 70814 Dec 16 2011 1.swf drwxrwxrwx 5 root root 4096 Jul 28 2013 admin -rwxrwxrwx 1 root root 5454 May 27 2010 admincp.php -rwxrwxrwx 1 root root 2106 Mar 9 2009 announcement.php drwxrwxrwx 2 root root 4096 Jul 28 2013 api drwxrwxrwx 7 root root 4096 Feb 24 15:18 attachments -rwxrwxrwx 1 root root 848 Dec 31 2008 batch.ad.php -rwxrwxrwx 1 root root 9703 Sep 22 2009 batch.comment.php -rwxrwxrwx 1 root root 10912 Sep 23 2009 batch.common.php -rwxrwxrwx 1 root root 1689 Sep 16 2009 batch.download.php -rwxrwxrwx 1 root root 6639 Feb 25 2009 batch.epitome.php -rwxrwxrwx 1 root root 266 Mar 25 2009 batch.formhash.php -rwxrwxrwx 1 root root 3372 Dec 31 2008 batch.html.php -rwxrwxrwx 1 root root 4491 Feb 18 2009 batch.insertimage.php -rwxrwxrwx 1 root root 2630 Dec 31 2008 batch.javascript.php -rwxrwxrwx 1 root root 3261 Oct 22 2009 batch.login.php -rwxrwxrwx 1 root root 3218 Sep 16 2009 batch.modeldownload.php -rwxrwxrwx 1 root root 6842 Sep 22 2009 batch.panel.php -rwxrwxrwx 1 root root 12100 Aug 31 2009 batch.postnews.php -rwxrwxrwx 1 root root 3534 May 27 2010 batch.search.php -rwxrwxrwx 1 root root 2360 Sep 22 2009 batch.secboard.php -rwxrwxrwx 1 root root 1555 Nov 4 2009 batch.tagshow.php -rwxrwxrwx 1 root root 3027 Feb 18 2009 batch.thumb.php -rwxrwxrwx 1 root root 14074 Aug 31 2009 batch.upload.php -rwxrwxrwx 1 root root 1942 Aug 31 2009 bbs.php ……………………..余下省略………………………………. |
My god,这位程序员好可爱啊!黑客很感谢你的。
请注意看输出的目录,有一个目录是… ,注意哟,是3个点,很可疑,同时也很容易把人迷惑。相信要迷惑这位可爱的程序员,那是不在话下了。进去看看,哟西,好多文件呢:
-rw-r--r-- 1 nobody nobody 8008 May 23 06:47 cb2.php -rw-r--r-- 1 nobody nobody 468348 Jan 1 1970 index.html -rw-r--r-- 1 nobody nobody 6186 May 23 06:47 old.txt -rw-r--r-- 1 nobody nobody 5948 May 23 06:47 old2.txt -rw-r--r-- 1 nobody nobody 1289 May 23 06:47 pass.txt -rwxr-xr-x 1 nobody nobody 20044 May 23 06:47 s64 -rw-r--r-- 1 nobody nobody 1711 May 23 06:47 user.txt -rw-r--r-- 1 nobody nobody 149 Jun 15 11:12 vulnerables.txt |
记得前边的进程,有个s64,它就藏在这里了。记得用find搜一下,看其它地方还有没有。打开几个文件看了一下,全是与木马相关的文件。
闲着没事,再帮他看看系统帐号,有几行也不对劲,其内容为:
dovecot:x:101:104::/home/dovecot:/bin/bash nx:x:102:105::/usr/NX/home/nx:/usr/NX/bin/nxserver webmaster:x:3004:100::/home/webmaster:/bin/bash |
翻一下他的历史记录,有一行内容为 806 /usr/local/mysql/bin/mysqldump -uroot -pwscykjw > /opt/sql.sql 。这个直接把root密码写在命令行参数里,你这样图省事,黑客进来也省事啊,不用再费劲,就直接拿库了。
这里拿一个被入侵的网站做例子,几乎该犯的错误,都犯了。希望没经验的程序员,不要轻易跨界抢系统管理员的饭碗,你留下的烂摊子,还得系统管理员来收拾的。谢谢!
------------------------------------------------------------------華麗的分割-------------------------------------------------------
澄清一下。我哥们做IDC,他揽了一个活,让我的小弟帮忙。小弟花了些时间,按我们的规范做好了各种加固,网站也正式跑起来了,半年多也没什么问题。后来这个公司把root权限要过去,然后就不让我的小弟碰了,密码也改了。最近被黑,自然搞不定,又来找咱们帮忙,上去一看,nginx、独立的php等,全部被废弃,取而代之的是lamp,所以呢,才有我写的那个文字。不是针对正常的程序员跟系统管理员那种配合,是给自作主张搞程序外包的个体户程序员敲个警钟,不要啥都搞!!!没有以点带面的意思,很抱歉!
本文转自sery51CTO博客,原文链接: http://blog.51cto.com/sery/1429418,如需转载请自行联系原作者