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 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)
- TCP/IP, registrando el resultado en un archivo: con la instrucción: netsh int ip reset c:\tmp\resetlog.txt
- Winsock2 con el comando: netsh winsock reset
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.
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
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
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:
Copia del directorio c:\tmp al directorio c:\tmpbackup:
robocopy c:\tmp c:\tmpbackup /copyall /dcopy:t /mir
13.- Histórico de comandos.
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
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.
Referencias:
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
- http://technet.microsoft.com/en-us/library/cc772390(v=ws.10)
- http://technet.microsoft.com/en-us/library/cc732490(v=ws.10).aspx
- http://loewenherz.geekhost.de/downloads/CommandLineKungFuByLoewenherz.pdf
- http://perishablepress.com/fun-with-the-dos-command-prompt/
- http://pcsupport.about.com/od/commandlinereference/tp/command-prompt-tricks-hacks.htm
- http://labnol.blogspot.com.es/2006/04/useful-windows-xp-dos-commands-tricks.html
- http://www.howtogeek.com/howto/windows-vista/how-to-delete-a-system-file-in-windows-vista/
- http://www.webtutoriales.com/articulos/comandos-windows-7