##### 40. 检测 图片木马 ##################
#!/bin/bash
# 检测图片木马
#需要传递检测文件类型,检测目录,输出目录。
# shell命令通过find 查看图片中是否包含木马
# 木马特征需要根据实际情况进行更新
#支持类型:jpg gif png jpeg
#使用格式说明:./findpic.sh 类型 图片目录 xdd保存目录
#输出的日志文件被保存在 xdd目录下的 findpiclog.log文件中
#使用方法 ./a.sh gif /data0/test ./xdd
#使用方法 ./a.sh jpg /data0/test ./xdd
#使用方法 ./a.sh jpge /data0/test ./xdd
#使用方法 ./a.sh png /data0/test ./xdd
# 会在当前目录生成 xdd 目录 下面有 日志文件 有木马的图片名字及路径
# shel字符串替换
#echo ${test/\//\\}
EXT="*.jpg"
iMulu=./
OMulu=./xdd
if [ -n "$1" ] #如果$1即参数1不为空,又即存在参数1
then
EXT="*.$1" # 使用引号来使#被转义
fi
if [ -n "$2" ] #如果$2即参数1不为空,又即存在参数1
then
iMulu="$2" # 使用引号来使#被转义
fi
if [ -n "$3" ] #如果$3即参数1不为空,又即存在参数1
then
OMulu="$3" # 使用引号来使#被转义
fi
mkdir -p $iMulu
mkdir -p $OMulu
myfunc()
{
for x in $(find $iMulu -name "$EXT")
do
if test -f $x
then
#echo "$x" >> mm.log
mkdir -p $(dirname $OMulu/${x})
/usr/bin/xxd $x >$OMulu/${x/\./_}.xdd
fi
if test -d $x
then
cd "$x";
myfunc;
cd ..
fi
done
}
myfunc
#查找webshell
Mulu=$OMulu
logFile=$OMulu/findpiclog.log
EXT="*.xdd"
echo -ne '\n\n\n\n\n' >> $logFile
echo "---eval----$Mulu " >> $logFile
find $Mulu -name "$EXT" |xargs grep "eval" >> $logFile
#增加一句话木马的变形查找
echo "---eval 一句话木马 变形查找----" >> $logFile
find $Mulu -name "$EXT" |xargs grep "$\w*();" >> $logFile
echo -ne '\n\n\n\n\n' >> $logFile
echo "---shell_exec----" >> $logFile
find $Mulu -name "$EXT" |xargs grep "shell_exec" >> $logFile
echo -ne '\n\n\n\n\n' >> $logFile
echo "---execute----" >> $logFile
find $Mulu -name "$EXT" |xargs grep "execute" >> $logFile
echo -ne '\n\n\n\n\n' >> $logFile
echo "---request----" >> $logFile
find $Mulu -name "$EXT" |xargs grep "request" >> $logFile
echo -ne '\n\n\n\n\n' >> $logFile
echo "---%----" >> $logFile
find $Mulu -name "$EXT" |xargs grep "%>" >> $logFile
echo -ne '\n\n\n\n\n' >> $logFile
echo "---base64_decode----" >> $logFile
find $Mulu -name "$EXT" |xargs grep "base64_decode" >> $logFile
echo -ne '\n#=end\n\n\n\n' >> $logFile