Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 3 Abril 2018, 22:40 pm



Título: Quitar rastros
Publicado por: Meta en 3 Abril 2018, 22:40 pm
Hola:

Hice una aplicación de C# que se ejecuta en el inico de Windows. Como no se puede borrar así mismo el propio ejecutable, crea un archivo bat o cmd a su lado, luego borra los dos archivos. Precisamente hace esto:

1. Ejecutar C#.
2. C# crea un archivo bat o cmd.
3. C# ejecuta el bat.
4. Bat tiene tiempo de retardo de 1 segundo.
5. C# después de crear el archivo bat, se cierra así mismo o se acaba el programa.
6. Después de pasar 1 segundo, borra el .exe y el bat .cmd así mismo.
7. No hay ningún rastro de archivos.

Si lo hay en el editor de registtro el ejecutable, lo he encontrado en estas direcciones y en la misma lo puede nombrar dos veces.
Citar
Equipo\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

Equipo\HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

Equipo\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store

Equipo\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\bam\UserSettings\S-1-5-21-1318602974-3718958170-1399798190-1001

Equipo\HKEY_USERS\S-1-5-21-1318602974-3718958170-1399798190-1001\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

Equipo\HKEY_USERS\S-1-5-21-1318602974-3718958170-1399798190-1001\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store

Equipo\HKEY_USERS\S-1-5-21-1318602974-3718958170-1399798190-1001_Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

Por ejemplo, en esta ruta:
Equipo\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store

Se encuentra el ejecutable llamado:
C:\Users\Usuario\Desktop\Bat_desde_CS_Consola_02.exe

La ruta completa hay que borrarlo.

Eso si, debo crear un programa que permita localizar dentro del editor de registro el nombre del ejecutable y borrarlo.

¿Alguna idea como se hace?

Si les pica la curiosidad, el programa básico de lo que hace es este.
Código
  1. using System;
  2. using System.ComponentModel;
  3. using System.Diagnostics;
  4. using System.IO;
  5.  
  6. namespace Bat_desde_CS_Consola_02
  7. {
  8.    class Program
  9.    {
  10.        static void Main(string[] args)
  11.        {
  12.            try
  13.            {
  14.                // Variables.
  15.                string strFileFullName = @"archivo.cmd"; // Nombre del archivo.
  16.                string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Startup); // Ruta en Inico de Windwos.
  17.                //string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // Ruta en el escritorio.
  18.                string ficheroAGrabar = Path.Combine(ruta, strFileFullName); // Concatenar ruta.
  19.  
  20.                // Muestra la ruta en pantalla.
  21.                Console.WriteLine(ruta); // C:\Users\Usuario\Desktop
  22.  
  23.                // Si no existe el archivo.
  24.                if (!File.Exists(ficheroAGrabar))
  25.                {
  26.                    // Crea el contenido al archivo de texto.
  27.                    File.WriteAllText(ficheroAGrabar, @"@echo off
  28. TIMEOUT /T 1
  29. DEL /S Bat_desde_CS_Consola_02.exe
  30. DEL /S archivo.cmd
  31. EXIT");
  32.                }
  33.  
  34.                else // Si existe...
  35.                {
  36.                    // Codigo a ejecutar si existe...
  37.                    Console.WriteLine("El archivo existe, así que no se sustituirá.");
  38.                }
  39.  
  40.                // Ejecutar archivo.cmd.
  41.                ProcessStartInfo psi = new ProcessStartInfo();
  42.                psi.UseShellExecute = false;
  43.                psi.CreateNoWindow = true;
  44.                psi.WindowStyle = ProcessWindowStyle.Hidden;
  45.                psi.FileName = strFileFullName; // archivo.cmd.
  46.                Process.Start(psi);
  47.  
  48.                // Cerrar aplicación C#.
  49.                Environment.Exit(-1);
  50.            }
  51.  
  52.            catch (Win32Exception)
  53.            {
  54.                // No mostrar nada.
  55.                // Cerrar aplicación C#.
  56.                Environment.Exit(-1);
  57.            }
  58.        }
  59.    }
  60. }

No olvidar, en las propiedades, para que no muestre la ventana en ningún momento. Hasta el cmd también debe estar oculta, y lo logra con C#.

Otra pregunta.
A parte de todo esto. ¿Hay algún sitio, sea archivo en las profundidades de Windwos que dejen rastros?

Saludos.


Título: Re: Quitar rastros
Publicado por: MCKSys Argentina en 4 Abril 2018, 01:37 am
Eso si, debo crear un programa que permita localizar dentro del editor de registro el nombre del ejecutable y borrarlo.

¿Alguna idea como se hace?

El 1er resultado de google: http://www.robvanderwoude.com/regsearch.php (http://www.robvanderwoude.com/regsearch.php)

No significa que sea la única forma de hacerlo.

Otra pregunta.
A parte de todo esto. ¿Hay algún sitio, sea archivo en las profundidades de Windwos que dejen rastros?

Un lugar posible: https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780(v=vs.85).aspx (https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780(v=vs.85).aspx)

Saludos!