05 septiembre 2012

Trucos para la consola de Windows

Tomo prestada la idea del magnífico blog de Open Security Research para, imitando a las antiguas revistas de papel, publicar algunos trucos de la famosa línea de comandos de Windows 7/2008. Algunos más enfocados a seguridad, otros simplemente prácticos.

1.- Ejecutar CMD como Administrador.
Aunque realmente sirve para cualquier comando, si se pulsan las teclas control+shift y la tecla enter,  una vez se ha buscado por "cmd" en el buscador de Windows 7, directamente se ejecutará con permisos de Administrador. Es una tontería, pero una vez te acostumbras, desplegar las opciones con el botón derecho del ratón para irse sobre "Ejecutar como administrador", se vuelve casi molesto.


2.- Configuración del firewall.
El comando netsh (Network Shell), sirve para manejar la configuración de red del sistema. Es bastante completo y permite definir un interfaz con direccionamiento DHCP, con una IP estática o incluso mostrar la configuración del firewall de un perfil.

Para ver un resumen: netsh advfirewall show currentprofile


Para obtener las reglas del firewall: netsh advfirewall firewall show rule name=all


Para deshabilitarlo: netsh firewall set opmode disable

3.- Restablecer Winsock2 y TCP/IP.
Con netsh también se puede restablecer la configuración de Winsock2 y TCP/IP si se detectan problemas de conectividad y algunos expedientes X de red (esas cosas que pasan a veces en Windows y que no se solucionan mirando el /var/log/messages)

4.- Contraseña de una conexión Wireless en texto claro.
Mediante el mismo netsh existe la opción de generar un fichero de configuración del perfil actual de la conexión de la configuración wireless. Este fichero almacenará en texto claro (en formato hexadecimal), la contraseña que utiliza el sistema para conectarse al punto de acceso.

Guardar la configuración en el directorio actual: netsh wlan export profile folder=. key=clear




5.- Borrar registro de eventos.
Con el comando wevtutil se gestionan los logs de los sistemas Windows, configuración, borrado, almacenamiento, etcétera. Es bastante completo y para aprender a usarlo nada como leerse su documentación.

Para eliminar los registros de Seguridad, System y Application:
  • wevtutil cl "Security"
  • wevtutil cl "System"
  • wevtutil cl "Application"

6.- Datos del sistema de WMI.
Utilizando el comando wmic es posible hacer consultas al Windows Management Instrumentation (WMI), que entre otras cosas, almacena decenas de tablas con información sobre el sistema.

Algunos ejemplos:
  • Lista completa y detallada de usuarios: wmic useraccount list full
  • Lista de usuarios de sistema: wmic sysaccount list full
  • Direcciones IP y nombres de interfaz de red: wmic nicconfig get index,description,ipaddress
  • Lista de procesos (sustituto de tasklist): wmic process list brief

7.- Modificar el prompt.
Al igual que en Linux se modifica el PROMPT con la variable PS1, en Windows es posible con el comando prompt.
  • Prompt por defect: prompt $p$g
  • Prompt con el nombre del sistema, de usuario y la ruta: prompt [%computername%] [%username%] $p$g

8.- Cambiar color de la terminal.
Para cambiar los colores de la consola no hace falta irse a las propiedades, desde línea de comando y con un simple "color 0a", estaremos en un viejo fósforo P1 a lo Matrix.


El "0" representa el color de fondo (negro) y la "a", el verde de las letras. Con color /? se consultan todas las posibilidades. Otra mucho más útil: color f0, blanco sobre negro, muy práctica para las capturas de pantalla.

9.- Consultar los ficheros que abre cada proceso.
En Windows también se puede averiguar (sin necesidad de herramientas como handle de sysinternals) los ficheros que están abiertos por cada proceso al igual que se hace en Linux con lsof.

Primero se habilita openfiles con la instrucción: openfiles /local on



Una vez se reinicia el sistema (esta es la única pega), tan solo hace falta ejecutar el comando: openfiles


10.- Cambiar el tamaño de la consola.
Ya que el propio cmd no deja redimensionarse horizontalmente, para hacerlo directamente desde el propio cmd sin tener que abrir sus propiedades, se utiliza el comando: mode, seguido de las columnas y líneas que se desean:

Establecer una ventana de 80 caracteres de columna y 40 líneas: mode 80,40


11.- Comparar archivos de texto y buscar textos
También es posible comparar archivos de texto usando fc, que mostrará las diferencias entre ambos, similar al comando diff de sistemas unix:

Diferencias entre el archivo 1.txt y 2.txt (uno tiene la letra d y otro no): fc 1.txt 2.txt


También es posible buscar una cadena de texto pasando por una tubería con el comando "find", tal y como se hace con grep:
  • Buscar los archivos que contengan la cadena 'dll': dir | find "dll"
  • Una alternativa es usar el comando findstr
12.- Copias incrementales de ficheros.
Para copiar un directorio y todo su contenido recursivamente, pero tan solo aquellos ficheros que no estén en el destino. Es decir, incrementalmente y manteniendo fechas de timestamp, se puede usar el comando robocopy.

Copia del directorio c:\tmp al directorio c:\tmpbackup:

robocopy c:\tmp c:\tmpbackup /copyall /dcopy:t /mir


13.- Histórico de comandos.
Tan solo pulsando la tecla F7 se abrirá un pseudo pop-up con los últimos comandos ejecutados. Al igual que ocurre cuando se pulsa sobre la tecla de cursores arriba, solo que visualmente.



14.- Averiguar qué proceso abre un puerto.
En Windows 7/2008 existe la posibilidad de conocer cuál es el proceso que está haciendo bind de un determinado puerto con el comando netstat. Tal y como hace el famoso tcpview, solo que desde línea de la terminal.

Para listar todos los puertos y mostrar los ID del proceso que lo usa: netstat -ano
Posteriormente se usa "tasklist" para listar los procesos y "findstr" para filtrar el contenido en base a una cadena de texto.


15.- Copiar al portapapeles la salida de un comando.
Para almacenar la salida de un comando en el portapales directamente, tan solo hay que usar una tubería y el comando clip



Referencias:

17 comments :

carlos fouz dijo...

gracias un post muy útil, todos no los tenia controlados.

Discuss dijo...

Mother of god... lo del F7 en consola es amérrimo.

Pakoska dijo...

Muy buen post, no conocida varias!

Felipe Jarenau dijo...

Cambiar el color de la consola está bien, pero mejor si es de forma permanente para molar más desde que la abres:


- regedit
- HKCU/Software/Microsoft/Command Processor
- Default Color = a

Alain dijo...

Muy bueno. Algunas no las conocía pero en general, muy bueno.

Alejandro Ramos dijo...

Hubiera molado más hacerlo permanente usando el comando 'reg add' ;))

Felipe Jarenau dijo...

Vaya... :_(

1gbdeinfo dijo...

o desde "propiedaddes" . "colores" una vez abierto el cmd....os mola complicaros y tocar el registro eh?? :P

dot_ike dijo...

Muy Grande Alejandro =)

Patoruzu dijo...

También, es posible usar la interface gnu posix cygwin. Implementa toda la utilería linux/bsd, y así, estandarizar herramientas y costumbres, entre las plataformas.

Rafa AKAE dijo...

Gracias Alex, buen post.

Pablo Santistevan dijo...

Alex, Muy buen post!!!!Lo que si, al comando completo para ver las reglas del firewall le falta la opción show:
netsh advfirewall firewall show rule name=all

Alejandro Ramos dijo...

Gracias!! Arreglado ;)

Sniffarte dijo...

En el Tip 14, tambien se logra agragando la opcion "b" al comando netstat.
Ej. "netstat -anob"


Saludos, y muchas gracias!

Trux dijo...

Gracias bro .. de mucha ayuda .. !

Dayonick dijo...

Excelente post, aunque en mi cabeza no cabe la idea de usar la consola de Windows :/

Alfonso Ortíz dijo...

Gracias por la informacion!