check_virus_检测图片木马.sh

##### 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

check_register_检测域名是否可以注册.sh

##### 42. 检测域名是否可以注册01 ##################
#!/bin/bash
# 检测域名是否可以注册 注释的地方为多线成检测 多线成多了服务器会响应不过来
# 使用的是官方接口
#fileSrc=$1
file_dir=/data
mkdir -p $file_dir
echo > $file_dir/register.txt
echo -e "\e[1;35m检测开始时间为:\e[0m"
echo -e "\e[1;35m`date`\e[0m"
#
###### 此为多线程控制数量 #############################################################
#thread=10 # 定义多线程的数量
#tmp_fifofile=$tmp_dir/$$.fifo  # $$ 当前pid 命名的一个文件
#mkfifo $tmp_fifofile # mkfifo 创建个命名管道 就是临时存储的地方
#exec 8<> $tmp_fifofile # 打开 此文件 给他描述符8
#rm $tmp_fifofile # 删除此描述符 但不影响8这个描述符的使用
#
#for i in `seq $thread` # 循环 加进去 一堆回车 
#do
#    echo >&8  # &8为文件描述符8  往此文件扔进去 500 个回车符
#done
## read -u8    # -u为读取描述符 8为描述符的编号 read 为读取文件 读到在循环 读不到等着
## echo >&8    # 换回去一个 回车符 给8的描述符 这两条为写在下面的命令
#####################################################################################
#
while read line
do
#  read -u8    # -u为读取描述符 8为描述符的编号 read 为读取文件 读到在循环 读不到等着
sleep 0.01
#  {
  result=$(whois $line | grep "No match"|wc -l)
  if [ $result -eq 1 ];then
     echo -e "\e[1;32m$line 可以注册\e[0m"
     echo $line >> $file_dir/register.txt
  fi

  if [ $result -eq 0 ];then
     echo -e "\e[1;31m$line 已经存在\e[0m"
  fi
#  echo >&8    # 还回去一个 回车符 给8的描述符 这两条为写在下面的命令
#} &

done<$file_dir/find.txt

wait

echo -e "\e[1;35m检测结束时间为:\e[0m"
echo -e "\e[1;35m`date`\e[0m"


##### 43. 检测域名是否可以注册02 不如01好用##################
#!/bin/sh
# 检测域名是否可以注册02 不如01好用 使用的网站提供的接口
tmp_dir=/data/aaaaa
file_dir=/data
mkdir -p $tmp_dir

##### 为多线程控制数量 #############################################################
thread=10 # 定义多线程的数量
tmp_fifofile=$tmp_dir/$$.fifo  # $$ 当前pid 命名的一个文件
mkfifo $tmp_fifofile # mkfifo 创建个命名管道 就是临时存储的地方
exec 8<> $tmp_fifofile # 打开 此文件 给他描述符8
rm $tmp_fifofile # 删除此描述符 但不影响8这个描述符的使用

for i in `seq $thread` # 循环 加进去 一堆回车 
do
    echo >&8  # &8为文件描述符8  往此文件扔进去 500 个回车符
done
# read -u8    # -u为读取描述符 8为描述符的编号 read 为读取文件 读到在循环 读不到等着
# echo >&8    # 换回去一个 回车符 给8的描述符 这两条为写在下面的命令
####################################################################################

while read line
do
    read -u 8 #
    {
    y=0

    for i in `seq 10`
    do
        sleep 1
        curl http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=$line &> $tmp_dir/$line.txt
        grep 211 $tmp_dir/$line.txt &> /dev/null
        if [ $? -eq 0 ];then
                y=1
                break;
        fi
    done

    if [ $y -eq 1 ];then
        echo -e "\e[1;31m$line 已经存在\e[0m"
    else
        echo -e "\e[1;32m$line 可以注册\e[0m"
        echo $line >> $file_dir/register.txt
    fi
    rm -rf $tmp_dir/$line.txt
    echo >&8 #
} &
done < $file_dir/test_url.txt
wait
rm -rf $tmp_dir
echo -e "\e[1;35m全部检测完成\e[0m"