linuxphp木马
⑴ 如何查linux的nginx是否被挂马
linux系统相对比windows安全,但是有些程序上的不安全行为。不管你是什么系统,一样也会存在危险因素,在这里,我们总结出了linux系统下的一些常见排除木马和加固系统安全性的方法。
1、改变目录和文件属性,禁止写入
find -type f -name \*.php -exec chmod 444 {} \;
find -type d -exec chmod 555 {} \;
注:当然要排除上传目录、缓存目录等;
同时最好禁止chmod函数,攻击者可通过chmod来修改文件只读属性再修改文件
2、php的危险配置
禁用一些危险的php函数,例如:
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,
ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,popen,dl,
syslog,show_source
3、nginx安全方面的配置
限制一些目录执行php文件
location~^/images/.*\.(php|php5)$
{
denyall;
}
location~^/static/.*\.(php|php5)$
{
denyall;
}
location~*^/data/(attachment|avatar)/.*\.(php|php5)$
{
denyall;
}
注:这些目录的限制必须写在
location~.*\.(php|php5)$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
的前面,否则限制不生效!
path_info漏洞修正:
在通用fcgi.conf顶部加入
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 404;
}
4、linux系统下查找php的相关木马
php木马一般含有<?php eval($_POST[cmd]);?>或者<?php assert($_POST[cmd]);?>
find /data/wwwroot/* -type f -name "*.php" |xargs grep "eval(" > /root/scan.txt
另外也有上传任意文件的后门,可以用上面的方法查找所有包括"move_uploaded_file"的文件.
还有常见的一句话后门:
grep -r --include=*.php '[^a-z]eval($_POST' . > grep.txt
grep -r --include=*.php 'file_put_contents(.*$_POST\[.*\]);' . > grep.txt
把搜索结果写入文件,下载下来慢慢分析,其他特征木马、后门类似。有必要的话可对全站所有文件来一次特征查找,上传图片肯定有也捆绑的,来次大清洗。
5、查找近3天被修改过的文件:
find /data/www -mtime -3 -type f -name \*.php
注意:攻击者可能会通过touch函数来修改文件时间属性来避过这种查找,所以touch必须禁止
6、查找所有图片文件
查找所有图片文件gif,jpg.有些图片内容里被添加了php后门脚本.有些实际是一个php文件,将扩展名改成了gif了.正常查看的情况下也可以看到显示的图片内容的.这一点很难发现.
曾给客户处理过这类的木马后门的.发现在php脚本里include一个图片文件,经过查看图片文件源代码,发现竟然是php脚本.
好了。安全加固你的php环境是非常重要的运维工作,大家还有什么其他加固安全的好方法,可以拿过来分享一下。
提示:如果上面显示空白或者页面排版混乱、内容显示不完整等影响阅读的问题,请点击这儿浏览原文
返回脚本百事通首页 如果您喜欢脚本编程技术,欢迎加入QQ群:246889341,在群里认识新朋友和交流技术^_^
Linux下查找后门程序
每个进程都会有一个PID,而每一个PID都会在/proc目录下有一个相应的目录,这是Linux(当前内核2.6)系统的实现。
一般后门程序,在ps等进程查看工具里找不到,因为这些常用工具甚至系统库在系统被入侵之后基本上已经被动过手脚(网上流传着大量的rootkit。假如是内核级的木马,那么该方法就无效了)。
因为修改系统内核相对复杂(假如内核被修改过,或者是内核级的木马,就更难发现了),所以在/proc下,基本上还都可以找到木马的痕迹。
思路:
在/proc中存在的进程ID,在 ps 中查看不到(被隐藏),必有问题。
Bash Shell:
#!/bin/bash
str_pids="`ps -A | awk '{print $1}'`"
for i in /proc/[[:digit:]]*; do
if echo "$str_pids" | grep -qs `basename "$i"`; then
:
else
echo "Rootkit's PID: $(basename "$i")"
fi
done
讨论:
检查系统(Linux)是不是被黑,其复杂程度主要取决于入侵者“扫尾工作”是否做得充足。对于一次做足功课的入侵来说,要想剔除干净,将是一件分精密、痛苦的事情,通常这种情况,需要用专业的第三方的工具(有开源的,比如tripwire,比如aide)来做这件事情。
而专业的工具,部署、使用相对比较麻烦,也并非所有的管理员都能熟练使用。
实际上Linux系统本身已经提供了一套“校验”机制,在检查系统上的程序没有被修改。比如rpm包管理系统提供的 -V 功能:
rpm -Va
即可校验系统上所有的包,输出与安装时被修改过的文件及相关信息。但是rpm系统也可能被破坏了,比如被修改过。
⑵ 如何修改linux下的php.ini文件,使其支持bcmath-CSDN论坛
(1)
打开php的安全模式
php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),
同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,
但是默认的php.ini是没有打开安全模式的,我们把它打开:
safe_mode
=
on
(2)
用户组安全
当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同
组的用户也能够对文件进行访问。
建议设置为:
safe_mode_gid
=
off
如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要
对文件进行操作的时候。
(3)
安全模式下执行程序主目录
如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:
safe_mode_exec_dir
=
D:/usr/bin
一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录,
然后把需要执行的程序拷贝过去,比如:
safe_mode_exec_dir
=
D:/tmp/cmd
但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录:
safe_mode_exec_dir
=
D:/usr/www