Ir al contenido


Foto

Virus del pendrive...


  • Por favor identifícate para responder
16 respuestas en este tema

#1 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 18 enero 2009 - 09:41

Alguien sabe como quitarlo?  el antivirus solo limpia el archivo autorun pero el servicio que lo ejecuta y el archivo que infecta ni lo detecta.  Alguien sabe como?
  • 0

#2 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 18 enero 2009 - 10:28

Por ahora solo me he enfrentado a dos virus de pendrive. Uno era un simple script de vbs y un fichero autorun.inf, nada peligroso, el otro sin embargo tenia mas "mala leche". Al ejecutarse se copiaba a si mismo en el directorio windows y creaba un fichero autorun.inf en todos los discos duros, y también en cada usb que insertabas en la maquina.

Yo lo que te recomiendo que primero busques en la lista de procesos cualquiera sospechoso, y lo mates. Para eso te recomiendo que utilices Process Explorer de Sysinternals, ya que para localizar a los intrusos no llega con el nombre sino que también es útil saber en que directorio están o como fueron iniciados.

Una vez que tenemos los procesos detenidos, lo primero es estar seguros de que no vamos a ejecutar el virus de nuevo por descuido, así que nada de hacer doble click sobre el icono de un disco o ejecutar nada hasta usar el archivo que dejo mas abajo. Luego, yo utilizaría autoruns (también de Sysinternals) para ver que procesos se inician en el arranque y eliminaría cualquiera sospecho. Si no estas seguro de si un ejecutable es un virus puedes usar Virustotal para comprobarlo. Por ultimo también eliminaría los ficheros autorun.inf del raíz de todos los discos, pero para eso toma la precaución de no hacer doble click sobre el icono del disco, sino usar la opción explorar para no ejecutar el virus.

El archivo que te dejo aquí restaura las asociaciones de archivo, para los .exe
UnHookExec.inf


delphi
  1. [Version]
  2. Signature="$Chicago$"
  3. Provider=Symantec
  4.  
  5. [DefaultInstall]
  6. AddReg=UnhookRegKey
  7.  
  8. [UnhookRegKey]
  9. HKLM, Software\CLASSES\batfile\shell\open\command,,,"""%1"" %*"
  10. HKLM, Software\CLASSES\comfile\shell\open\command,,,"""%1"" %*"
  11. HKLM, Software\CLASSES\exefile\shell\open\command,,,"""%1"" %*"
  12. HKLM, Software\CLASSES\piffile\shell\open\command,,,"""%1"" %*"
  13. HKLM, Software\CLASSES\regfile\shell\open\command,,,"regedit.exe "%1""
  14. HKLM, Software\CLASSES\scrfile\shell\open\command,,,"""%1"" %*"
  15. HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System,DisableRegistryTools,0x00000020,0




Por ultimo no esta mal pasar algún antivirus gratuito.

PD: No puedo subir archivos al foro  :^)
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 18 enero 2009 - 10:35

ok, hare las pruebas y los mantendre al tanto...
  • 0

#4 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 18 enero 2009 - 11:24

Hola,
Te recomiendo un programita muy bueno, es un firewall para dispositivos USB
http://net-studio.or...sb_firewall.php
Saludos
  • 0

#5 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 22 enero 2009 - 09:22

muy buena la solución Seoane, la he hecho en dos PC y a funcionado de maravillas, ahora que la quiero hacer en la laptop es que me ha fallado, pero esta mas enferma...

EL firewall que me dices lo utilizo, el detecta el virus pero tampoco lo elimina del todo, tengo que apoyarme en el unlocker para que lo ayude a eliminarlo del pendrive, del pc no lo puede quitar.
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 22 enero 2009 - 10:09

PD: No puedo subir archivos al foro


Que tipo de archivo es amigo seoane, tal vez no está habilitada la extensión que quieres adjuntar.

Salud OS


  • 0

#7 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 22 enero 2009 - 02:18

Que tipo de archivo es amigo seoane, tal vez no está habilitada la extensión que quieres adjuntar.


Era el .inf que describo mas arriba.
  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 22 enero 2009 - 05:16

ok, ya agregue ese tipo de archivo para que se pueda subir.

Salud OS
  • 0

#9 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 24 enero 2009 - 06:45

En mi "política" en contra de los AVs, he utilizado ampliamente los congeladores en lugar de los citados consumidores de recursos; el resultado de ello fueron "cultivos" de varias docenas de virus (los cuales utilizan el medio de infección tratado en este hilo). Entre los más "efectivos" puedo citar al Virut.J, el Sality/AG y un par de Rootkits.

Hasta hace pocos meses atrás hubiese intervenido de la misma forma que seoane, pero me temo que ahora pienso un poco diferente luego de haber sido infectado por el Virut.J el cual se "replico" en mas de 1000 de los ejecutables de mis unidades locales. Puesto que en mi PC no tengo conexión a Internet este virus no fue más que una molestia, pero me he percatado que los métodos ya señalados no siempre son suficientes.

“Cuando los dinosaurios todavía andaban” era muy común ver a los virus adhiriéndose a otros ejecutables, esto cambio a causa de las características del SO y se popularizaron los troyanos. Ahora veo nuevamente una breve propagación de virus “adheridos” como el comentado Virut.J que con un código binario de ~8 Kb. Realiza Hook a varias APIs y mediante una conexión remota recibe ordenes y nuevas descargas. Algo que me pareció de “interés” en éste virus, son 8 líneas (en assembler) encargadas de encriptar el cuerpo del virus usando XOR y una semilla variable, los cuales hacen que el virus sea polimorfo!

VirutJ.xor.png

No pude sentir la presencia del virus en mi PC hasta que note que el tamaño de uno de mis ejecutables que debía pesar poco era notablemente más grande de lo esperado; de no haberlo notado, hasta ahora el virus seguiría replicándose en mi equipo sin que lo note (pues no es creado ningún proceso o archivo adicional). Ahora recuerdo a un compañero con un problema de “0 virus” y exagerada actividad de red (obviamente víctima de una de estas creaciones). Ya con un Messenger.exe, Explorer.exe o wuauctl.exe (Servicio de actualizaciones automáticas) infectado, no hay forma de apuntar con el Firewall u otro medio al causante de las nuevas averías.

Luego de notar su presencia y de haber “calculado” su tamaño (8 Kb.) solo tuve que “extraerlo” de dos archivos distintos y realizar una comparación para notar el polimorfismo;

[img width=640 height=356]http://chackall.delphiaccess.com/img/VirutJ.cmp.png[/img]

Virut.J agranda la última sección del ejecutable, y se inserta allí con otra “apariencia” para no ser notado a simple vista, luego modifica el punto de entrada hacia si mismo para ser corrido antes que la aplicación original.

Habiendo comprendido la dinámica de éste virus los siguientes dos pasos fueron; crear un depurador para éstos virus que les gusta adherirse a otros ejecutables, y crear una vacuna para el Virut.J, la cual la adjunto para ejemplificar;


delphi
  1. uses Windows, SysUtils; {$warnings off} {$apptype console}
  2.  
  3. type
  4. PSections = ^TSections;
  5. TSections = array [0..15] of TImageSectionHeader;
  6.  
  7. var
  8. FileName: array [1..MAX_PATH] of Char;
  9. Index, hFile, hMap, Offset: Cardinal;
  10. MZ: PImageDosHeader;
  11. PE: PImageNtHeaders;
  12. Sections: PSections;
  13. Section: PImageSectionHeader;
  14. lpValue: PCardinal;
  15.  
  16. procedure ScanFile(lpFileName: PChar);
  17. begin
  18. Index := 0;
  19. while lpFileName[Index + 4] <> #0 do Inc(Index);
  20. if (PCardinal(@lpFileName[Index])^ or $20202000) <> $6578652E then Exit;
  21.  
  22. hFile := _lopen(lpFileName, OF_READWRITE);
  23. if hFile = INVALID_HANDLE_VALUE then
  24.   begin
  25.   GetTempFileName('d:\', 'vJ.', 0, @FileName);
  26.   if MoveFileEx(lpFileName, @FileName, MOVEFILE_REPLACE_EXISTING) and
  27.       CopyFile(@FileName, lpFileName, True) and
  28.       MoveFileEx(@FileName, nil, MOVEFILE_DELAY_UNTIL_REBOOT) then
  29.   hFile := _lopen(lpFileName, OF_READWRITE);
  30.   end;
  31. GetCurrentDirectory(SizeOf(FileName), @FileName);
  32. if hFile <> INVALID_HANDLE_VALUE then
  33.   begin
  34.   hMap := CreateFileMapping(hFile, nil, PAGE_READWRITE, 0, 0, nil);
  35.   if hMap <> 0 then
  36.     begin
  37.     MZ := MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); // map entire file
  38.     if Assigned(MZ) then
  39.       begin
  40.       if PCardinal(@MZ.e_res[2])^ = $20202020 then
  41.         begin
  42.         PE := Ptr(Cardinal(MZ) + MZ._lfanew); // win32 header
  43.         Sections := Ptr(Cardinal(PE) + 248{SizeOf(TImageNtHeaders) - SizeOf(TImageOptionalHeader) + PE.FileHeader.SizeOfOptionalHeader});
  44.         Section := @Sections[PE.FileHeader.NumberOfSections - 1]; // get the last section
  45.         Offset := Cardinal(MZ) + (PE.OptionalHeader.AddressOfEntryPoint - (Section.VirtualAddress - Section.PointerToRawData));
  46.         if (PE.OptionalHeader.AddressOfEntryPoint > Section.VirtualAddress) and (PCardinal(Offset)^ = $1EE8F5) then // second ID, some AVs don't clean the first ID
  47.           begin
  48.           WriteLn(lpFileName);
  49.           lpValue := Ptr(Offset + $6B); // calculate the offset of Virut.J jump instruction
  50.           PE.OptionalHeader.AddressOfEntryPoint := PE.OptionalHeader.AddressOfEntryPoint - lpValue^ + 6; // save the original entry point
  51.           Section.Characteristics := Section.Characteristics and not $F0000060 xor $50000040; // change then characteristics of section
  52.           FillChar(Ptr(Cardinal(MZ) + (GetFileSize(hFile, nil) - 8192))^, 8192, 0); // kill Virut !!!
  53. //          Dec(PE.OptionalHeader.SizeOfImage, 8192); { TODO : recalculate image size! }
  54. //          Dec(Section.SizeOfRawData, 8192); { TODO : recalculate section size & "PhysicalAddress" }
  55.           end;
  56. //        PCardinal(@MZ.e_res[2])^ := 0; // last flag; restore it or lie to Virut?
  57.         end;
  58.       UnmapViewOfFile(MZ);
  59.       end;
  60.     CloseHandle(hMap);
  61.     end;
  62.  
  63.   CloseHandle(hFile);
  64.   end;
  65. end;
  66.  
  67. var FindData: TWIN32FindData;
  68.  
  69. procedure ScanFolder(const lpPathName: PChar);
  70. var hFindFile: Cardinal;
  71. begin
  72. hFindFile := FindFirstFile(PChar(lpPathName + '\*.*'),  FindData);
  73. if hFindFile <> INVALID_HANDLE_VALUE then
  74.   begin
  75.   repeat with FindData do
  76.     if (dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
  77.     ScanFile(PChar(lpPathName + '\' + cFileName))
  78.     else
  79.     if (PWord(@cFileName)^ <> $2E) and ((PCardinal(@cFileName)^ shl 8) <> $2E2E00) then
  80.       ScanFolder(PChar(lpPathName + '\' + cFileName));
  81.   until not FindNextFile(hFindFile, FindData);
  82.   Windows.FindClose(hFindFile);
  83.   end;
  84. end;
  85.  
  86. begin
  87. ScanFolder('d:');
  88. WriteLn('DONE!');
  89. ReadLn;
  90. end.


Con respecto al archivo autorun.inf, lo mejor es crear en las unidades USB extraíbles una carpeta “autorun.inf” para que los virus no puedan crear el archivo causante de la ejecución involuntaria, si la unidad tiene formato NTFS se puede restringir todo acceso a dicha carpeta para evitar su borrado. Siendo programadores lo siguiente que aconsejo es crear un utilitario que al detectar la inserción de un nuevo “Flash” borre dicho archivo y ya estando en dicho afán se puede inspeccionar por CRC (u otro) la integridad de los ejecutables portados.

Salud!
  • 0

#10 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 25 enero 2009 - 06:18

Interesante respuesta chackall, aunque yo cuando la infección es tan importante suelo salvar los datos y formatear. Es la única forma de asegurarte de que no queda ningún archivo que haya sido modificado.

Aunque hoy en día, debido a lo fácil que es infectar a los millones de usuarios que usan windows sin antivirus actualizados y que no toman ninguna otra precaución , los creadores de virus/troyanos se han vuelto perezosos, ya no intentan infectar ejecutables, una técnica que requiere cierta pericia, como mucho utilizan algún herramienta para ocultarse (un cifrado o rootkit estándar). Así que si tienes suerte y coges la infección a tiempo aun se puede intentar
"limpiar" el equipo.

Por cierto, estaba buscando la forma de hacer una aplicación que impida la ejecución del autorun. Se como detectar la inserción de una memoria USB, pero de poco me sirve detectar la inserción si no puedo evitar que se ejecute el autrun. ¿Sabes como interceptarlo? A mi solo se me ocurre desactivar por completo el autorun y cuando se inserte un USB buscar el autorun.inf y una vez que el usuario confirme que quiere ejecutar el autorun ejecutarlo nosotros mismos
  • 0

#11 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 25 enero 2009 - 05:55

No estoy "tan" de acuerdo con respecto a que nuestros "colegas" sean perezosos, lo que pasa es que pocos cuentan con los conocimientos necesarios; pero te puedo asegurar que hay un buen numero de estos dichosos virus.

Consegui deshabilitar el autorun editando el explorer en memoria, buscando la palabra "autorun.inf" (en UNICODE) relativa a shell32.dll, aunque tambien he encontrado dicha cadena en newdev.dll la primera es la inicial causante de los destrosos involuntarios.

Acabo de encontrar algo a ver si sirve...

Salud!
  • 0

#12 Jade

Jade

    Newbie

  • Miembros
  • Pip
  • 4 mensajes
  • LocationEspaña

Escrito 25 enero 2009 - 06:33

En efecto, crear la carpeta "autorun.inf" ha sido la solucion mas efectiva y sencilla para evitar la propagacion hacia mi ordenador.

Para desactivar la ejecucion del autorun en xp, Inicio > Ejecutar > gpedit.msc y la consola de directivas de grupo aparece.

Abrir "Plantillas Administrativas > Sistema > Desactivar reproduccion automatica"

Habilitar y seleccionar Todas las unidades (si, habilitarla)

Esta directiva esta tanto en la configuracion del equipo como en la del usuario. Habilitarla en ambos por seguridad.

En vista no funciona del todo bien. En windows xp home no hay gpedit.msc

chao!


  • 0

#13 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 enero 2009 - 06:45

solo puedo decir una cosa: guau, gracias a todos por tan importantes aportes... Hemos llegado al punto donde es preferible "vacunar" todos nuestros equipos.
  • 0

#14 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 10 febrero 2009 - 07:15

Interesante tema. Yo también ha tenido problemas con los virus de pendrive y opté por colocar en todos mis pendrives una carpeta autorun.inf que me ha resultado un sistema muy eficaz para evitar que aunque mi pendrive estuviese infectado propagase la infección.

También elimino el autorun de los PCs modificando el registro con el siguiente archivo que denomino NoUSBAutorun.reg:


php
  1. Windows Registry Editor Version 5.00
  2.  
  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
  4. "NoDriveTypeAutoRun"=dword:000000ff


Saludos.

PD.


Habiendo comprendido la dinámica de éste virus los siguientes dos pasos fueron; crear un depurador para éstos virus que les gusta adherirse a otros ejecutables, y crear una vacuna para el Virut.J, la cual la adjunto para ejemplificar;
No he podido acceder al link *-)
  • 0

#15 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 mensajes
  • LocationMéxico

Escrito 10 febrero 2009 - 10:52

Utilizo este y no he tenido problemas.


Salud.

  • 0

#16 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 11 febrero 2009 - 02:08

...También elimino el autorun de los PCs modificando el registro con el siguiente archivo que denomino NoUSBAutorun.reg:

delphi
  1. REGEDIT4
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
  3. "NoDriveTypeAutoRun"=dword:000000ff


Siendo técnicamente lo mismo comentado por Jade creo que (a diferencia de lo que alguna vez me dijeron) es un metodo plenamente valedero ;)

...PD.


Habiendo comprendido la dinámica de éste virus los siguientes dos pasos fueron; crear un depurador para...

No he podido acceder al link *-)


Pues es un subforo al que se accede con cierto nivel de participacion, pero no te aflijas que es un tema a discucion ;)
  • 0

#17 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 11 febrero 2009 - 04:47

...También elimino el autorun de los PCs modificando el registro con el siguiente archivo que denomino NoUSBAutorun.reg:

delphi
  1. REGEDIT4
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
  3. "NoDriveTypeAutoRun"=dword:000000ff


Siendo técnicamente lo mismo comentado por Jade creo que (a diferencia de lo que alguna vez me dijeron) es un metodo plenamente valedero ;)


Si que lo es, además es muy cómodo ejecutar el archivo.reg con doble click en lugar de navegar por el registro con regedit....

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.