如何在linux的shell命令中使用find查詢圖片木馬?

背景:

歷史原因伺服器上有10幾T的圖片,可能有圖片木馬需要清理

需求:查詢並清理圖片木馬

解決方法:編寫shell指令碼執行

提醒:如果需要定期檢測,可以把這個檢測指令碼加入定時進行定時檢測;

當然最好的方法是圖片和原始碼分開,圖片伺服器不執行執行動態檔案,

另外在圖片上傳的時候也可以檢測是否含有木馬。

如何在linux的shell命令中使用find查詢圖片木馬

工具/原料

shell

find命令

方法/步驟

把圖片轉為.xdd檔案

/usr/bin/xxd $x >$OMulu/${x/\./_}.xdd

如何在linux的shell命令中使用find查詢圖片木馬

用find命令 依據是否包含木馬特徵碼判斷原圖片是否含有木馬

find $Mulu -name "$EXT" xargs grep "request" >> $logFile

如何在linux的shell命令中使用find查詢圖片木馬

可以上面的程式碼自行運用 來實現更高階的功能:如自動,定時,報警等。

findpic.sh執行和原始碼

執行例項如圖

如何在linux的shell命令中使用find查詢圖片木馬

如何在linux的shell命令中使用find查詢圖片木馬

如何在linux的shell命令中使用find查詢圖片木馬

原始碼如下

```shell

#!/bin/bash

#需要傳遞檢測檔案型別,檢測目錄,輸出目錄。

# shell命令通過find 檢視圖片中是否包含木馬

# 木馬特徵需要根據實際情況進行更新

#支援型別:jpg gif png jpeg

#使用格式說明:./findpic.sh 型別 圖片目錄 xdd儲存目錄

#輸出的日誌檔案被儲存在 xdd目錄下的 findpiclog.log檔案中

#使用方法 ./findpic.sh gif /data0/test /data0/test/xdd

#使用方法 ./findpic.sh jpg /data0/test /data0/test/xdd

#使用方法 ./findpic.sh jpge /data0/test /data0/test/xdd

#使用方法 ./findpic.sh png /data0/test /data0/test/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

```

如何在linux的shell命令中使用find查詢圖片木馬

注意事項

1)使用前請多次測試

相關問題答案