Un AVISO de (in)SEGURIDAD en entornos Windows y la línea de comandos

foro; [PC] AVISO de (in)SEGURIDAD en entornos Windows y CMD

Para que un Troyano, un virus o un Script malicioso, se haga con nuestra computadora, lo que suele hacer es atacar directamente a C:\Windows\system32\cmd.exe porque desde "cmd.exe" puede literalmente hacer de todo con nuestra máquina.

Los ataques, pese a ser manuales, suelen ejecurarse bajo Script, pre-concebidos para tal efecto, por lo que una "MUY BUENA" defensa sería variar la letra del Windows System32

D:\Windows\system32\cmd.exe

Lo bueno, y lo malo, es que Windows, muy egoísta el tío Gates, quiere ser siempre el 1º de la clase, y quiere instalarse, necesita instalarse en C:\ aunque hay trucos para cambiar eso...


Otra opción de andar por casa sería borrar el cmd.exe y el net.exe y llevarlo a alguna otra carpeta y colocar esa carpeta en el path (=ruta) del sistema para que nosotros sí que pudiésemos ejecutarlos, con esto evitaríamos los ataques tipo a nuestro PC de los Hacker más toscos... (lo que no es poco )

Con este tomará su cuenta de invitado, administrador... y nos largará de nuestra máquina...
Código:
C:\WINDOWS>net.exe
La sintaxis de este comando es:


NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |
SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]
Con este otro, os digo que se puede hacer de todo....
Código:
C:\WINDOWS>cmd.exe
Inicia una nueva instancia del intérprete de comandos de Windows XP

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] cadena]

/C Ejecuta el comando especificado en cadena y luego finaliza
/K Ejecuta el comando especificado en cadena pero sigue activo
/S Modifica el tratamiento de cadena después de /C o /K (consultar
más abajo)
/Q Deshabilita el eco
/D Deshabilita le ejecución de los comandos de AutoRun del registro
(consultar más abajo)
/A Utiliza ANSI para la salida de comandos internos hacia una
canalización o un archivo
/U Utiliza UNICODE para la salida de comandos internos hacia una
canalización o un archivo
/T: fg Configura los colores de primer y segundo plano (para obtener
más información, consulte COLOR /?)
/E:ON Habilita las extensiones de comando (consultar más abajo)
/E:OFF Deshabilita las extensiones de comando (consultar más abajo)
/F: ON Habilita los caracteres de terminación de los nombres de archivos
y directorios (consultar más abajo)
/F: OFF Deshabilita los caracteres de terminación de los nombres de
archivos y directorios (consultar más abajo)
/V: ON Habilita la extensión de variables de entorno retardada usando !
como delimitador. Por ejemplo, /V: ON permitirá que !var! extienda
la variable var en tiempo de ejecución. La sintaxis var
extiende variables en tiempo de entrada, lo cual es
diferente cuando se está dentro de un bucle FOR.
/V: OFF Deshabilita la extensión de variables de entorno retardada.

Tenga en cuenta que los comandos múltiples separados por el separador de
comandos '&&' se aceptan como cadena si están entre comillas. Por razones
de compatibilidad, /X equivale a /E:ON, /Y equivale a /E:OFF y /R equivale a
/C. Se omitirá cualquier otro tipo de modificador.

Si se especifica /C o /K, lo que viene después de la línea de comando se
ejecuta como línea de comando, siguiendo la lógica siguiente para procesar
caracteres comillas ("):

1. Se conservan las comillas del comando si se cumplen todas las
condiciones siguientes:

- no aparece el modificador /S
- hay exactamente dos caracteres comillas
- no hay caracteres especiales entre ambas comillas, siendo los
caracteres especiales: &<>()@^|
- hay uno o más espacios en blanco entre ambas comillas
- la cadena entre ambas comillas es el nombre de un archivo
ejecutable

2. En caso contrario, el comportamiento clásico es comprobar si el
primer carácter es una comilla y de ser así, quitar ésta y
también la última comilla de la línea de comandos, conservando el
texto que venga después de ésta

Si no se especificó /D en la línea de comandos, cuando CMD.EXE se inicie,
buscará las variables del Registro REG_SZ/REG_EXPAND_SZ, y si alguna de
ellas está presente, se ejecutarán en primer lugar.

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

y (o)

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

Las extensiones de comando están habilitadas de forma predeterminada.
Puede deshabilitar las extensiones de una invocación particular usando el
modificador /E:OFF. Puede habilitar o deshabilitar las extensiones de
todas las invocaciones de CMD.EXE en una máquina o en una sesión de
usuario estableciendo con REGEDT32.EXE los dos valores de REG_DWORD
del registro siguientes:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

y (o)

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

a 0x1 o 0x0. La configuración específica del usuario tiene preferencia
respecto a la del equipo. Los modificadores de la línea de comando tienen
prioridad sobre la configuración del registro

Las extensiones de comando implican cambios y ampliaciones en los
siguientes comandos:

DEL o ERASE
COLOR
CD o CHDIR
MD o MKDIR
Presione una tecla para continuar . . .
Un AVISO de (in)SEGURIDAD en entornos Windows y la línea de comandos, Parte 2ª


Cita:
Mensaje Original de Señor X Ver Mensaje
Otra opción de andar por casa sería borrar el cmd.exe y el net.exe y llevarlo a alguna otra carpeta y colocar esa carpeta en el path (=ruta) del sistema para que nosotros sí que pudiésemos ejecutarlos, con esto evitaríamos los ataques tipo a nuestro PC de los Hacker más toscos... (lo que no es poco )

Esto está muy bonito "dirá alguno" ¿cómo se hace eso? pues como somos Linuxeros arrepentidos del Guindos seremos fieles a nosotros y lo haremos desde la Consola de Comandos, ya casi hemos olvidado el "entorno gráfico" para vagos.es jejeje

Usaremos el comando FSUTIL

Código:
C:\WINDOWS>FSUTIL
---- Comandos compatibles ----

behavior Control del modo de sistema de archivo
dirty Administra la parte dañada del volumen
file Comandos de archivos específicos
fsinfo Información del sistema de archivo
hardlink Administración de vínculos permanentes
objectid Administración de Id. de objetos
quota Administración de cuota
reparsepoint Administración de punto de reanálisis
sparse Control de archivo disperso
usn Administración USN
volume Administración de volumen

La potencia de crear ENLACES SIMBÓLICOS (accesos directos) al Disco Duro como se hace en UniX (para los que conozcan Linux) es increíble.

Abriremos nuestra consola de comandos (ver el primer post)

fsutil hardlink create


ejemplo;

fsutil hardlink create c:\windows\system32\cmd.exe c:\tmp\cmd.exe

Lo más gracioso es que esto crea un enlace simbólico al archivo y no "duplica" el archivo y además se comportan a todos los efectos como si fuera el archivo original, podéis borrar el archivo y ver que el "otro" u "otros" enlaces siguen viéndolo (aunque estén en otras carpetas), y el archivo es "único" y está en un solo sitio del disco. Cuando borreis todos los enlaces, al borrar el último será unicamente cuando se borre de verdad el archivo.

Recomendado hacer una copia de seguridad antes de borrar nada


Un AVISO de (in)SEGURIDAD en entornos Windows y la línea de comandos, Parte 3ª

En la 1ª Parte sugerimos variar;
C:\Windows\system32\cmd.exe por D:\Windows\system32\cmd.exe

En la 2ª Parte vimos como hacerlo con el cmd:
FSUTIL

En esta 3ª parte comprobaremos si cambiamos el PATH del cmd.exe desde otro cmd:

PRIMERO crearemos un script de 89 bytes

Abrimos un Documento de Texto en el escritorio, y dentro metemos esto:

@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if {%%~$PATH:i} NEQ {} echo %%~$PATH:i

Cerramos y cambiamos el nombre y extensión del Nuevo Documento de Texto, por; findpath.cmd

Este nuevo file lo metemos en la ruta

C:\WINDOWS

que es la raíz (systemroot) donde arranca nuestra consola de cmd (primer post)

Y lo ejecutamos con; findpath programa

En nuestro caso;

Código:
findpath cmd.exe
De haber logrado los pasos anteriores 1º y 2º de modo correcto, habremos conseguido sacar el "cmd.exe" del directorio, C:\Windows\system32\cmd.exe y el comando findpath, en realidad el script que hemos creado, lo buscará en el PATH, e incluso saber si este está duplicado en varios directorios del path y cual es el primero que cargará...

Lo ideal sobra decir es que "cmd.exe" no figure en la ruta de origen, para salvaguardar nuestra máquina de los Troyanos Maliciosos


Con esto habremos conseguido una máquina más segura sin duda:


Cita:
Mensaje Original de Nota FE de Erratas
Como no me deja editar el VP Vulletin no sé porqué...


Antes dije;

fsutil hardlink create

Y me colé seguido, debía poner esto;

fsutil hardlink create c:\tmp\cmd.exe c:\windows\system32\cmd.exe

Invertí el orden jejeje

0 ¿Algo que Comentar?: