php后门木马常用的函数大致上可分为四种类型:

1. 执行系统命令: system, passthru, shell_exec, exec, popen, proc_open
2. 代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13
3. 文件包含与生成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite
4. .htaccess: SetHandler, auto_prepend_file, auto_append_file

 


想找一个 关键词是“hellow word” 在哪些文件中有,我们用grep命令
grep –color -i -r -n “hellow word”  /data/www/

这样就能搜索出来 文件中包含关键词的文件

–color是关键词标红

-i是不区分大小写
-r是包含子目录的搜索
-d skip忽略子目录

可以用以上命令查找网站项目里的带有挂马的文件

 


.两个查后门的实用linux命令:
find /data/web/website/ -iname *.php -mtime -35 找出/data/web/website/目录下 35分钟前新建的php
find /data/web/website/ -name “*.php” | xargs grep “eval($_POST[” 找出/data/web/website/ 里面源码包含eval($_POST[的php文件

 

例如
注入漏洞eval(base64_decode
grep –color -i -r -n “eval”  /data/www/   找出来对比以前正常的代码,看是否正常。然后用stat查看这个木马文件的修改时间,最后去寻找WEB日志,找出木马从哪里进来的

 

五:

实用查找PHP木马命令:

查找PHP木马

# find ./ -name "*.php" |xargs egrep "phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc"> /tmp/php.txt
# grep -r --include=*.php  '[^a-z]eval($_POST' . > /tmp/eval.txt
# grep -r --include=*.php  'file_put_contents(.*$_POST\[.*\]);' . > /tmp/file_put_contents.txt
# find ./ -name "*.php" -type f -print0 | xargs -0 egrep "(phpspy|c99sh|milw0rm|eval\(gzuncompress\(base64_decoolcode|eval\(base64_decoolcode|spider_bc|gzinflate)" | awk -F: '{print $1}' | sort | uniq

 

查找最近一天被修改的PHP文件

#   find -mtime -1 -type f -name \*.php

修改网站的权限

# find -type f -name \*.php -exec chmod 444 {} \;
# find ./ -type d -exec chmod 555{} \;

假设最后更新是10天前我们可以查找10天内生成的可以php文件:

find /var/www/ -name “*.php” -mtime -10

也可以通过关键字的形式查找 常见的木马常用代码函数 eval,shell_exec,passthru,popen,system

#find /var/www/ -name “*.php” |xargs grep “eval” |more
#find /var/www/ -name “*.php” |xargs grep “shell_exec” |more
#find /var/www/ -name “*.php” |xargs grep “passthru” |more

还有查看access.log 当然前提是你网站的所有php文件不是很多的情况下

一句话查找PHP木马

# find ./ -name “*.php” |xargs egrep “phpspy|c99sh|milw0rm|eval(gunerpress|eval(base64_decode|spider_bc”> /tmp/php.txt
# grep -r –include=*.php ’[^a-z]eval($_POST’ . > /tmp/eval.txt
# grep -r –include=*.php ’file_put_contents(.*$_POST[.*]);’ . > /tmp/file_put_contents.txt
# find ./ -name “*.php” -type f -print0 | xargs -0 egrep “(phpspy|c99sh|milw0rm|eval(gzuncompress(base64_decode|eval(base64_decode|spider_bc|gzinflate)” | awk -F: ‘{print $1}’ | sort | uniq

查找最近一天被修改的PHP文件
# find -mtime -1 -type f -name *.php

 

以下其实是多余的操作了其实,但是还是有值得看的地方

检查代码。

肯定不是一个文件一个文件的检查,Linxu有强悍的命令

grep ‘eval’ * -R 全盘搜索当前目录所有文件(包含子目录)中带有eval的文件,这条可以快速查找到被挂马的文件。

关于eval,请自行google一句话php代码。

2,查看日志。

不到这个时候不知道日志的可贵啊。

还是以grep命令为主。

思路:负责的站点是Linux,只开了2个端口,一个22和80,外部的执行命令是由从80端口进来,Selinux报httpd访问/boot文件,确认被挂马。而所有的命令执行必须POST提交给执行的文件。所以,查找日志中所有的POST记录。

cat access_log_20120823.log | grep ‘POST’ | grep -v ‘反向查找’ | less,通过grep -v排除正常post,egrep也支持正则,但是太复杂了,看懂不知道怎么运用。

(这里不建议用cat,用tail可以追加一个文件来看)

这可以防患于未然,防止不知道哪天又被人黑进来了。每天看一眼日志。

3,对于网页目录,只给apache用户rx权限,不要给w权限,目录设置要加上rx,不要给w,个别文件除外。所以,配合2使用,Linux下可以快速过滤刷选出来不规则的POST请求。

综合1,2其实就可以快速查找被黑的页面,被修改的文件替换干净的代码。

 

文章来源: http://blog.csdn.net/miltonzhong/article/details/9717179

dstat

介绍

安装

#ubuntu
apt-get install dstat

#centos
yum install dstat

 

使用

其他stat工具(sysstat mpstat cifsiostat sar vmstat iostat netstat nfsstat ifstat)

 

nmon

介绍

nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。

 

安装

#Centos6_x86 (包含了多个系统的二进制包,选择匹配自己系统的)

wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz

 mkdir nmon

tar -zxvf nmon_linux_14i.tar.gz -C nmon

cd nmon
./nmon_x86_centos6

 

 

使用

 

tsar

介绍

Tsar是淘宝的采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等)以及应用数据(如squid haproxy nginx等),tsar支持实时查看和历史查看,方便了解应用和服务器的信息!

https://github.com/alibaba/tsar

安装

wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate
unzip tsar.zip
cd tsar-master
make
make install

 

 

安装iRedMail

vi /etc/sysconfig/network
#加入 HOSTNAME=mail.iamle.com
vi /etc/hosts
#加入 127.0.0.1 mail.iamle.com
hostname mail.iamle.com
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.8.4.tar.bz2
tar xvf iRedMail-0.8.4.tar.bz2 
cd iRedMail-0.8.4
sh iRedMail.sh

卸载uninstall iRedMail
#进到iRedMail安装文件如下目录

cd /root/iRedMail-0.8.4/tools
wget http://iredmail.googlecode.com/hg/extra/clear_iredmail.sh 
sh clear_iredmail.sh

iredmail spf dkim
#配置spf
http://www.openspf.org/SPF_Record_Syntax#all

#配置dkim

amavisd showkey
#显示以下信息
#; key#1, domain mail.iamle.com, /var/lib/dkim/mail.iamle.com.pem
#dkim._domainkey.mail.iamle.com.	3600 TXT (
#  "v=DKIM1; p="
#  "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0pyMfH1M2hP1jvakdnun15lXY"
#  "zOflQsIC7T3egyMhRMquwkeLdO6AY4F4Qyi8l9yoqbFlfwkKSXwWg3KWt7XJutWB"
#  "qHeDZqUnLyHvmxTF6IumUO9tJ0/77HI2ccjmkM0Y/nyPonX+cvMvHi2nyJ3BcGo8"
#  "1bturjgk1wd57AqFuQIDAQAB")
  
#dns txt解析
dkim._domainkey.mail.iamle.com    text ="v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0pyMfH1M2hP1jvakdnun15lXYzOflQsIC7T3egyMhRMquwkeLdO6AY4F4Qyi8l9yoqbFlfwkKSXwWg3KWt7XJutWBqHeDZqUnLyHvmxTF6IumUO9tJ0/77HI2ccjmkM0Y/nyPonX+cvMvHi2nyJ3BcGo81bturjgk1wd57AqFuQIDAQAB" 
 
amavisd testkeys
#TESTING#1: dkim._domainkey.mail.iamle.com  => pass
#显示pass为成功!

AutoMySQLBackup是轻量级的mysql备份工具,数据量不大,MyISAM用用很好。
 mkdir AutoMySQLBackup
cd AutoMySQLBackup/
wget -c "http://nchc.dl.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz"
tar zxvf automysqlbackup-v3.0_rc6.tar.gz
chmod +x install.sh
sh install.sh
#全部默认配置
cd /etc/automysqlbackup/
vi automysqlbackup.conf #修改里面的配置
crontab -e
#设定每日凌晨3:00执行
0 3 * * * /usr/local/bin/automysqlbackup
btw:这货实际上是使用的mysqldump,如果你是innodb,那么推荐用Xtrabackup,当然还非常推荐,无痛使用Percona mysql。

一、环境需求

1.1现有环境

centos5.x nginx mysql

1.1官方要求环境

Redmine version Supported Ruby versions Rails version used Supported RubyGems versions
current trunk ruby 1.8.7, 1.9.2, 1.9.3, 2.0.01, jruby-1.6.7, jruby-1.7.2 Rails 3.2.13 RubyGems <= 1.8
2.3.0 ruby 1.8.7, 1.9.2, 1.9.3, 2.0.01, jruby-1.6.7, jruby-1.7.2 Rails 3.2.13 RubyGems <= 1.8
2.2.4 ruby 1.8.7, 1.9.2, 1.9.3, jruby-1.6.7 Rails 3.2.13 RubyGems <= 1.8

继续阅读