Páginas

30 diciembre, 2014

PeStudio: Analizar ejecutables .exe y .dll en busca de posible malware

PeStudio es un software de gratuito si se destina a uso personal, el que nos permitirá ver y/o analizar ficheros .exe y librerías dinámicas .dll, entre otros ficheros.

En estos análisis nos muestra diversos aspectos de un fichero en los cuales podemos investigar para saber que acciones realiza dicho fichero cuando lo ejecutamos, de este modo, podremos saber si se trata de un malware y en ese caso mirar que acciones podría o lleva cabo.

pestudio analizando malware
Figura 1: Analizando un .exe de un software de terceros reconocido apunta hacía un website como muestra en la captura.

En este ejemplo vemos como el fichero .exe de instalación en una de sus cadenas apunta hacía una website, se trata de un aplicación de terceros reconocida.

¿Por qué redirige a dicha página web? la cual por lo que pude comprobar se trata de una web de cracking, principalmente esto fue intencionado para dar a conocer una de muchas funcionalidades de esta herramienta, dicha aplicación fue descargada de un página de software también reconocida, con esto aprovecho para comentar que es mejor descargar siempre software desde las webs oficiales del propio fabricante o autor.

Saludos!

26 diciembre, 2014

WER [Windows Error Reporting]: Generar logs de aplicaciones bloqueadas/crashes

En ocasiones ocurren inesperados crashes en aplicaciones o procesos del sistema que provocan a su vez comportamientos anómalos (cuelgues/congelados) en software de terceros.

Errores habituales del tipo: "explorer.exe dejó de responder", "iexplorer.exe dejó de funcionar", "ocurrió un error inesperado con outlook.exe, dejó de funcionar", etc.

Para este tipo de casos y poder generar un log en el que podamos analizar por qué dicha aplicación se quedó bloqueada, es necesario habilitar el servicio Windows Error Reporting (WER) en los servicios de Windows, por defecto suele estar habilitado.

Este servicio registra todos los eventos de errores ya sean software o hardware de nuestro OS Windows, para después enviar un reporte a Microsoft con información relevante al error ocurrido. Si es que antes el propio servicio en sus tablas de posibles causas ya registradas no lo resuelve antes.

Ahora podremos hacer esto de forma manual en el registro de Windows o simplmente copiar el código de registro que dejo a continuación y pegarlo en un documento de texto al que guardaremos y ejeutaremos posteriormente, con el nombre que queramos pero con extensión .reg.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\Explorer.exe]
"DumpFolder"="C:\\WER Dumps"
"DumpType"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\explorer.exe]
"GlobalFlag"=dword:02000100
"PageHeapFlags"=dword:00000003
Después de a ver hecho lo anterior el servicio WER escribirá un registro detallado del problema en el directorio C:\WER Dumps.

Aunque también existe, faltaría más!, una aplicación al respecto para realizar estas tareas de forma más cómoda.

AppCrashView es un software propiedad de Nirsoft con el que veremos las posibles causas de por que una aplicación/proceso quedó bloquead@ y/o no responde.

Figura 1: AppCrashView analizando un log de iexplorer.exe después de dejar de responder.

Nos mostrará las librerías dependientes al error causado, paths, alertas de mensajes, podremos guardar el log o informe, entre otras cosas.

Una vez se lanza la aplicación con privilegios administrativos, esta escanea hasta la fecha actual los errores de momentos reportados por el servicio WER, de tal modo que nos muestra dichos "bloqueos" con sus logs en la parte inferior en plaintext para poder interpretarlos con claridad.

Más información sobre WER:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb513613(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb513638(v=vs.85).aspx

Saludos!

11 diciembre, 2014

PNPUTIL: Instalar controladores de forma nativa en el repositorio de Windows [DriverStore]

Pnputil.exe es una pequeña herramienta que se usa mediante una command prompt de manera sencilla.

Esta utilidad nos permite principalmente; agregar y/o eliminar drivers o controladores que están preinstalados en la base de datos de nuestro MS Windows.

Lo cual esto nos puede resultar útil si necesitamos instalar equipos en producción en un entorno corporativo en el que se disponen de múltiples modelos de impresoras. Podemos prestablecer en una imágen o maqueta del sistema estos drivers ya instalados como si se trataran de forma nativa en Windows. Y de este modo ahorrarnos el buscar/copiar el driver de dichas impresoras en el equipo en cuestión.

Estos drivers se alamcenan por defecto en el repositorio de la DriveStore de Windows. Carpeta la cual se encuentra en el siguiente path:
%systemroot%\System32\DriverStore\FileRepository
Por ejemplo solo lo que son los controladores de impresoras se componen en su mayoría de ficheros .cat, .dll, .inf, etc. Incluso algunos modelos de impresoras u otros dispositivos solo necesitan un fichero de .inf para que Windows reconozca dicho dispositivo.

Los ficheros *.INF son archivos que almacenan el código de información para la instalación y funcionalidad de los controladores de cualquier tipo de dispositivo.

Para mostrar un ejemplo de todo esto. En mi equipo, Windows 7 por defecto no viene con Drivers para una determinada marca de impresora (Citizen), en este caso, voy instalar los controladores de dicha impresora para diferentes modelos de la misma marca, en los que después por defecto me aparecerán en la lista de drivers de Windows, ya que estos se guardarán en el DriverStore.

[1] - En primer lugar, mirar si disponemos del controlador ya preinstalado en el sistema.

Figura 1: No se muestran controladores Citizen.

[2] - Una vez que tengamos a mano la carpeta del controlador que queramos instalar. Abrimos una consola CMD con privilegios administrativos y escribimos:
pnputil -a Citizen.inf
Con el argumento "-a" (add) añadimos al repositorio de Windows un driver.
Podríamos ejecutar el comando situados en otra ruta, simplemente en ese caso tendríamos que hacer referencia de ella, por ejemplo: %PATH%\Fichero.inf .

En la captura  se observa como el fichero Citizen.inf alamacerá en este caso diferentes modelos de impresora para esta marca.

Añadiendo diversos modelos de controladores de Citizen con pnputil -a
Figura 2: Añadiendo diversos modelos de controladores de Citizen con pnputil -a

En el transcurso de la copia de drivers a la DriverStore, Windows nos puede informar acerca de la firma legítima del fabricante en el controlador, si se trata o no de un controlador de confianza.

Por seguridad y para evitar posibles malwares todo fabricante debería firmar sus controladores para todos sus modelos, pero por tema de costes muchos de ellos no llegan a cumplir esto, incluso si se trata de marcas reconocidas.

Otro caso, puede ser en el que tengamos y queramos otra estructura de drivers según marca/modelo en el existan varios ficheros .inf. Podemos agregar todos con el carácter comodín: *.
pnputil -a *.inf
[3] - Ahora volviendo al repositorio que nos ofrece Windows por defecto, vemos que se ha a añadido una nueva marca con sus respectivos modelos en la DriverStore de Windows.

En este ejemplo el fichero "Citizen.inf", contenía diversos modelos de impresoras de la marca Citizen. Pero no siempre será así, en otras ocasiones solo habrá el driver específico de un modelo y marca. Eso dependerá de la construcción/programación del controlador por parte de la del fabricante.

Figura 3: Ya disponemos de una nueva marca y modelos en el repositorio DriverStore de Windows.

Saludos!

04 septiembre, 2014

Administrar impresoras de Windows instaladas en equipos locales o remotos por linea de comandos o de modo gráfico

En esta entrada veremos que comandos utilizar para poder administrar impresoras desde lineas de comandos, ya sean para equipos locales o equipos remotos de un red.

Administración de impresoras por: Scripts (.vbs)

Nos situamos bajo la ruta "%systemroot%\System32\Printing_Admin_Scripts\..."  dentro de esa carpeta veremos de una carpeta local específica de cada idioma encontraremos lo siguientes scripts.
  • Prnmngr.vbs: Agrega, elimina y enumera impresoras o conexiones de impresora, además de establecer y mostrar la impresora predeterminada.
  • Prncnfg.vbs: Configura o muestra información acerca de una impresora.
  • Prndrvr.vbs: Agrega, elimina y enumera los controladores de impresora.
  • Prnjobs.vbs: Hace una pausa, reanuda, cancela y enumera los trabajos de impresión.
  • Prnport.vbs: Crea, elimina y enumera los puertos de impresora TCP/IP estándar, además de mostrar y cambiar la configuración de puerto.
  • Prnqctl.vbs: Imprime una página de prueba, pausa o reanuda una impresora y borra una cola de impresión.
  • Pubprn.vbs: Publica una impresora para los servicios de dominio de Active Directory.
Si es la primera vez que usamos scripts VBS (Visual Basic Script) desde linea de comandos, podría mostrarse el siguiente mensaje.

WSH_modo Cscript para ejcutar vbs
Figura 1: Mensaje de "Windows Script Host", pasos para cambiar al modo cscript y ejeuctar ficheros .vbs

Lo primero será configurar wscript (Windows-based Script) para para que cscript (Command-line Script) sea el entorno de ejecución por defecto para poder ejecutar ficheros de scripts .vbs.
Para ello basta con ejecutar en una consola de Windows:
cscript //h:cscript //s
Donde //h:cscript cambia el host de secuencias de comandos predeterminado y //s guarda los cambios para el usuario actual.
Si no estamos seguros de si el entorno donde lo vamos a ejecutar está ya configurado de este modo, también podemos incluir esta línea dentro de nuestro script .vbs.

Para poder administrar de forma remota impresoras de otros equipos de un red/dominio, después de añadir los parámetros necesarios para lo que queramos realizar cambios, añadimos los siguientes argumentos, un ejemplo para un cambio de nombre de una impresora instalada en un equipo remoto de un red de dominio en este caso sería:
prncnfg -x -p Brother -z "Brother_Despacho2" -s NombreEquipoRemoto -u UserAdmin -w PasswordUserAdmin
 Donde UserAdmin y PasswordUserAdmin, sería un usuario local con privilegios administrativos del equipo remoto, en caso de estar en un dominio se debería especificar el nombre de equipo para que autentifique como usuario administrador local y no usuario administrador de dominio: NombreEquipoLocal\UserAdminLocal.

En la siguiente captura se puede ver en un caso real del ejemplo anterior, bajo un equipo remoto que forma parte de un dominio (click en la imagen para ampliar).

Ejemplo prncng cambiar nombre impresora instalada en un equipo remoto
Figura 2: Ejemplo de un "cambio de nombre" de una impresora instalada en un equipo remoto de un red de dominio.

Administración de impresoras por: printbrm.exe

Otra herramienta interesante es printbrm.exe, ubicada en la ruta: "%SystemRoot%\System32\Spool\Tools".

Con Printbrm podemos entre otras cosas:
  • Listar información sobre configuraciones de impresoras.
  • Backup y restore de la configuración de un servidor de impresión.
  • Convertir puertos LPR a puertos TCP/IP en un proceso de restauración.
  • Migrar impresoras y colas de impresión de un servidor a otro.
  • Publicar impresoras en Active Directory.
Si se está ejecutando Printbrm a través de la red a hosts remotos, el recurso compartido Print$ debe existir en los hosts de origen y destino y debe estar iniciado el servicio de Windows de "Registro remoto".

Más información sobre el uso de Printbrm en:
http://ss64.com/nt/printbrm.html
http://technet.microsoft.com/en-us/library/jj134237.aspx

Administración de impresoras por: printmanagement.msc (GUI)

La forma más sencilla de hacer las mismas operaciones de prácticamente todo lo que se podría hacer mendiante linea de comandos con los Scripts .vbs y la herramienta Printbrm.exe, es usar un modo gráfico mucho más intuitivo y ágil de usar para el usuario-administrador, el modo gráfico es gracias a una MicroSoft Console (MSC): printmanagement.msc (La consola de Microsoft de "Administración de impresión").

Para poder abrir la consola de Microsoft "Administración de impresión" se puede hacer de varias formas y todas serían válidas:

- Escribimos en una ventana Ejecutar (Tecla Windows+R): printmanagement.msc

- Abriendo una MMC (Microsoft Management Console). Escribimos en una ventana Ejcutar: MMC > Archivo > Agregar o quitar complemento... > Administración de impresión > Escribimos el nombre de host remoto.

- Inicio > Panel de Control > Sistema y Seguridad > Herramientas administrativas > Administración de impresión.

Una vez abierta la Administración de impresión, podremos configurar nuestras propias impresoras instaladas en nuestro host local o conectarnos a otros hosts remotos en los que podremos incluso llegar a instalar impresoras con sus drivers correspondientes.

Unos ejemplos de acciones que se podrían llevar a cabo serían:

- Colocados en la parte de "Servidores de impresión", para conectarnos a un host remoto:
Botón derecho o Acción en la barra de herramientas > Agregar o quitar servidores...

- Para instalar un impresora en un equipo remoto, nos situamos sobre el equipo remoto una vez agregado:
Botón derecho o Acción en la barra de herramientas > Agregar Impresora...

Agregando Host remoto para la administración por printmanagement.msc
Figura 3: Agregando un host remoto para la administración de impresoras por printmanagement.msc

En la captura anterior se puede ver como en mi equipo local tengo agregado a mi propio equipo al servidor administración de impresión y a su vez tengo otros dos equipos de una red de dominio agregados.

En los que de este modo voy poder configurar todo de la misma forma que como lo haría si estuviese sentado físicamente en esos equipos remotos. La gran diferencia es que esto se hace de forma subyacente al usuario y ya con privilegios administrativos.

Más información sobre la MSC "Administración de impresión" http://technet.microsoft.com/es-es/library/cc664683.aspx

Ya sean por comandos de scripts, por una tool de comandos o de forma gráfica, la gran ventaja que esto supone es que nos ayuda a administrar y gestionar impresoras en equipos remotos de forma transparente al usuario final.

Saludos!

02 septiembre, 2014

USBDeview y Ghostbuster: Analiza información de dispositivos USB y otros

USBDeview es una pequeña aplicación de nirsoft.net que nos muestra información muy detallada de los dispositivos USB conectados actuales o que en un pasado estuvieron conectados en un equipos.

Figura 1: Analizando dispositivos USB USBDeview.

Este tipo de información nos puede ser útil para análisis forenses mostrándonos información de dispositivos conectados en un pasado.

Aprovecho para comentar que la rama del registro de Windows donde podremos ver el ID y demás información de cada dispositivo USB conectado.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
Otra informacion similar se guarda en fichero log de Windows, se encuentra en el path:
c:\windows\inf\setupapi.dev.log
Ghostbuster es un software que nos proporcionará información detalle de todos los dispositivos conectados en el equipo. Podremos encontrar la clave de registro de Windows correspondiente.

Eliminar esos "dispositivos fantasmas" que la propia herramienta le llama, refiriéndose a dispositivos que estuvieron conectados en un pasado y ya no se utilizan y aquellos dispositivos que permanecen ocultos a simple vista para el usuario, siendo estes de más bajo nivel.

Figura 2: Analizando información del dispositovo interface de red con Ghostbuster.

Saludos!

30 agosto, 2014

Desinstalar software local o remoto a través de una CMD de Windows

Recientemente buscando la forma de poder desinstalar aplicaciones de forma local y remota solo haciendo uso a través de una shell de Windows Command Prompt. Encontré una forma de poder hacerlo de forma muy fácil y sin hacer uso de tools externas.

Para poder hacer esto haremos uso de la herramienta de comandos WMIC ("Windows Management Instrumentation Command-line"), integrada en Windows 7. Deberemos tener iniciado el servicio WMI de Windows, podremos iniciarlo de forma rápida abriendo una consola con privilegios y escribiendo: net start winmgmt.

Para poder desinstalar una aplicación de un equipo remoto de la red o un dominio, podemos hacer uso de PsExec, una herramienta de linea de comandos incluida en la suite PSTools de la cual ya había comentado en este blog como descargarla y usarla.

Una vez descarga en nuestro equipo local, simplemente tendríamos que ejecutar una CMD de un equipo remoto con PsExec y seguir el procedimiento como si fuese un equipo local, ya que esa CMD es la que equipo remoto al que nos conectamos.

En una CMD de nuestro equipo local escribimos:
psexec \\EquipoRemoto -u UserAdmin -p Password cmd.exe
Donde: EquipoRemoto es el nombre o IP del equipo remoto al que nos queremos conectar, UserAdmin sería un usuario con privilegios de administrador y Password es la contraseña del usuario UserAdmin, acto seguido indicamos la aplicación a ejecutar de forma remota, que para este caso usaremos cmd.exe.

En este ejemplo escogí la aplicación "Passware Kit Enterprise 9.7" para desinstalarla de forma local, pero como ya dije el procedimiento sería el mismo para un equipo remoto una vez tengamos iniciada la consola cmd del equipo remoto en cuestión.

[1] - Como podemos ver la aplicación que quiero desinstalar se visualiza en Progamas y características del Panel de Control de Windows. (esto en el caso de hacerlo de forma local).

Figura 1: Passware Kit Enterprise 9.7 se visualiza instalado en "Programas y características".

[2] - Abrimos una CMD local con altos privilegios administrativos (Tecla Windows+R: escribimos cmd.exe). Una vez abierta escribimos en consola: wmic, y accedemos al modo interactivo del comando, que se nos mostrará con el siguiente prompt: wmic:root\cli>, seguidamente escribimos:
product get name
Para mostrar la lista de aplicaciones instaladas en el equipo y reconocibles.

Nota: Si queremos mostrar más información, como el proveedor y la versión del producto a desinstalar, podemos usar la siguiente sintaxis.
node:HOSTNAME product get name,version,vendor
Donde "HOSTNAME" es el nombre del equipo local. Aunque si habíamos accedido por una cmd.exe remota a otro equipo, será el nombre del equipo remoto.

En este caso para simplificar e usando la primera sintaxis mencionada.
Vemos como se aparece la aplicación que quiero desinstalar, en este caso Passware Kit Enterprise 9.7.

Figura 2: Lista del software instalado en el equipo. (vemos que se muestra Passware Kit Enterprise 9.7).

[3] - Para desinstalar dicha aplicación escribimos:
product where name="NombreExactoDeLaAplicacion" call uninstall
Donde: NombreExactoDeLaAplicacion, es el nombre tal cual se muestra en la lista de aplicaciones (respetando mayúsculas, minúsculas y espacios).
Nos preguntará si estamos seguros de desinstalar la aplicación, presionamos la letra Y para confirmar.

Para verificar que realmente se desinstaló podemos, listar de nuevo las aplicaciones hasta ver que no aparece en la lista o nuevamente desinstalar la aplicación ya desinstalada, en este caso nos mostrará que "No hay instacias disponibles" lo que ya nos da a entender que se desinstaló de nuestro sistema.

Figura 3: Seleccionamos Passware Kit Enterprise 9.7 y lo desinstalamos, después comprobamos que se desinstaló.

[4] - Por último podemos hacer una última comprobación en Programas y características del Panel de control de Windows y comprobar que no se visualiza. (esto en el caso de hacerlo de forma local).

Figura 4: Finalmente comprobamos en "Programas y características" que Passware Kit Enterprise 9.7 ya no se visualiza.

Esta desinstalación es exactamente igual que hacerlo de forma gráfica, es decir que esto, nos tendría más utilidad para llevar a cabo desinstalaciones a equipos remotos de forma subyacente al usuario final, a nivel administrativo.

Para hacer esto de forma no interactiva sin entrar en la consola de WMIC. Podemos usar el parámetro /nointeractive.

Un ejemplo sería. Para listar todos los productos de "Adobe Acrobat" que tengamos instalados en el sistema y desinstalarlos todos de golpe de forma no interactiva.
wmic /node:COMPUTERNAME product where "name like 'Adobe Acrobat%'" call uninstall /nointeractive
Si estamos en un modo interactivo podemos usar solamente product where "name like 'Adobe Acrobat%'" para obtener previamente el listado y no desinstalarlo.

Respecto a si es una desinstalación más o menos limpia, eso dependerá del proceso de programación que tenga software de fabricante dado. Habrá aplicaciones que se desinstalen completamente, sin dejar rastros de carpetas ni rastros en el registro de Windows y habrá otras que no.

Por último, decir que en ocasiones puede que la lista de aplicaciones mostradas no sean todas las que realmente están instaladas en el equipo. Ya que habrá casas comerciales u otros factores que harán que impidan que se listen con WMIC. Con lo cual aquí aconsejo realizar esto por directivas GPO.

Saludos!

05 mayo, 2014

Cambiar MAC Address manualmente en Windows o Linux

En otra ocasión ya había comentando un artículo sobre esto: Win7 MAC Address Changer: Cambiar la dirección MAC Address de Windows 7/Vista/XP, en el cual se podía ver como cambiar la dirección de MAC de una NIC Ethernet como de una tarjeta de red WiFi.

Cambiar MAC Address en sistemas Windows:

Todas estas operaciones es necesario realizarlas desde un usuario con privilegios.

Para cambiar esto de forma manual y gráfica sin necesidad de ningún software de terceros, es realmente sencillo.

[1] - Abrimos una ventana de configuración de adaptador de red. Para ello podemos hacerlo:
Tecla Windows+R -> Y en la ventana 'Ejecutar' escribimos: ncpa.cpl.

[2] - Una vez en la ventana de los adaptadores de red, nos vamos a las "Propiedades" del adaptador de red que queramos cambiar la dirección MAC en cuestión, y después iremos a "Configurar..." y aceptamos el mensaje que nos avisa de los cambios.

Figura 1: Propiedades de la NIC, accediendo a las opciones del controlador en 'Configurar...'

[3] - Después en la pestaña de "Opciones avanzadas", y en el caso de mi NIC y los drivers que tiene le llama al cambio de dirección MAC "Dirección administrada localmente". Esta opción estará en estado 'Ausente' por lo que lo cambiamos a 'Valor' e introducimos la dirección MAC alfanumérica que queramos. Esta dirección debe escribirse sin 'toda seguida', sin espacios, sin rayas, sin dos puntos, etc...

Figura 2: Cambiando la MAC Address manualmente en las opciones de la NIC.

[4] - Por último, aceptamos los cambios y si no se reinicia automáticamente la NIC, la reiniciamos manualmente deshabilitando y volviendo habilitar la tarjeta de red en cuestión, para que se apliquen los cambios realizados en esta.

Comprobamos que a sido cambiada correctamente, con una consola de Windows y el comando: ipconfig /all o simplemente getmac.

Usando el registro 

Para cambiar la MAC Address de forma manual es hacerlo mismo pero por el registro de Windows.

[1] - Abrimos una ventana ejecutar para abrir regedit, una vez en el registro de Windows nos vamos al siguiente path:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}
Dentro de la clave con indentificador "4d36e972", desplegamos y veremos claves del tipo: 0001, 0002, 0003, 0004, etc. Tendremos que localizar la que pertenezca al adaptador de red ethernet que queramos cambiar la dirección MAC.

[2] - Tomando como referencia el nombre de cadena "DriverDesc" veremos a que adaptador apunta.
Una vez encontremos el adaptador en cuestión. Creamos un valor de cadena con el nombre "NetworkAddress" con el valor de la dirección MAC que queramos, este valor deberá ser numérico y seguido, sin puntos ni guiones. Por ejemplo: 001122334455.

Figura 3: Creando valor cadena NetworkAddress con MAC address.

[3] - Comprobamos con comando getmac que realmente la dirección MAC fue cambiada con éxito.

Figura 4: Comprobación de antes y después de cambiar la MAC Address.

Esto SOLO es efectivo en NICs Ethernet cableadas (IEEE 802.3), en NICs inalámbricas mediante WiFi de modo WLAN (IEEE 802.11) NO es posible hacerlo de esta forma manual (o yo al menos no encontré la forma de hacerlo) si alguien sabe como puede hacerse agradecería que dejase un comentario.

Usando PowerShell

Set-NetAdapter -Name "Ethernet 1" -MacAddress "11-22-33-44-55-66"

Cambiar MAC Address en sistemas Linux:

Para cambiar la MAC Address en sistemas Linux, desde un terminal podemos usar la utilidad integrada en dichos sistemas ifconfig.

Primero bajamos la interface, establecemos una nueva dirección física MAC y finalmente volvemos a subir la interface.
ifconfig eth0 down
ifconfig eth0 hw ether 00:11:22:33:44:55
ifconfig eth0 up

Podemos usar también la herramienta macchanger. La instalamos y establecemos la nueva dirección MAC en la interface deseada.
sudo apt install macchanger
macchanger -m 00:11:22:33:44:55 eth0

Saludos!

31 marzo, 2014

Perfiles de usuario en Windows 7 - Definiciones, estructura y comparación con WinXP

Empezamos por decir a groso modo que; cuentas de usuario y perfiles de usuario no es lo mismo, ya que la cuenta vamos a decir y/o entender de algún modo que son las credenciales del usuario y el perfil el contenido en un equipo de este. 

Tipos de Perfiles: Locales, móviles y obligatorios

Perfiles locales (Local Profiles): Es el tipo de perfil que se crea cuando un usuario inicia sesión en un equipo y la información contenida y los cambios realizados solo estarán disponibles en dicho equipo y NO en ningún otro.

El perfil local funciona del siguiente modo:
  • 1.- El usuario inicia sesión.
  • 2.- Windows comprueba la lista de perfiles de usuario en la clave ProfileList si existe o no. En el primer caso, lo usa; en otro caso el sistema realiza una de las siguientes acciones:
  • 2.1.- Si el equipo es un miembro de dominio, Windows busca el recurso compartido NETLOGON en un DC el perfil de usuario predeterminado en la carpeta Default User. Si lo hay, lo copia a %SYSTEMDRIVE%\Usuarios\Nombre_usuario.
  • 2.2.- Si no pertenece a un dominio o Windows no encuentra el perfil en NETLOGON, usa el perfil de usuario predeterminado Local, copiándolo desde: %SYSTEMDRIVE%\Usuarios\Default User a %SYSTEMDRIVE%\Usuarios\Nombre_usuario.
  • 3.- Windows carga la sección del perfil NTUSER.DAT en la clave HKU y enlaza la clave raíz HKCU al mismo.
Cuando el usuario cierra sesión, el sistema guarda los cambios en la carpeta del perfil de usuario. No copia la carpeta de perfil en la red, y también descarga la sección desde el Registro.

Perfiles móviles (Roaming Profiles): Es un tipo de perfil que estará disponible desde cualquier equipo de la red. Los datos o información y cambios realizados se podrán visualizar en cualquier equipo de la red donde se inicie sesión.

Perfiles obligatorios (Mandatory Profiles): (Solo para usuario de dominio en "Active Directory"). Son perfiles de sólo lectura. Para crear un perfil obligatorio, basta con tomar un archivo NTUSER.DAT y cambiarle el nombre por NTUSER.MAN.
En la ventana del usuario de Active Directory, en la ficha "Perfil", especificamos la ubicación del fichero con extensión .MAN. De ese modo, cada vez que el usuario inicie sesión se cargará el perfil ntuser.man, pero NUNCA ser guardará ningún tipo de configuración cuando este cierre sesión.
Esto es una herencia de NT4.0 y hoy es mejor usar las directivas de grupo en su lugar.

El perfil móvil funciona del siguiente modo:
  • 1.- El usuario inicia sesión.
  • 2.- Windows comprueba la lista de perfiles de usuario en la clave ProfileList si existe o no. En el primer caso, el sistema combina la copia del perfil en la red dentro de la carpeta del perfil local; en otro caso el sistema realiza una de las siguientes acciones:
  • 2.1.- Windows comprueba si existe la carpeta de Default User en el recurso compartido NETLOGON de un DC. Si existe, copia la carpeta Default User a %SYSTEMDRIVE%\Usuarios\Nombre_usuario.
  • 2.2.- Si Windows no encuentra la carpeta Default User en NETLOGON , copia %SYSTEMDRIVE%\Usuarios\Default User a %SYSTEMDRIVE%\Usuarios\Nombre_usuario.
  • 3.- Windows carga la sección del perfil NTUSER.DAT en la clave HKU y enlaza la clave raíz HKCU al mismo.
Cuando el usuario cierra sesión, el sistema guarda los cambios en el perfil a la carpeta del perfil local y descarga las secciones de HKU. Después, copia la carpeta de perfil a la ubicación de red especificada. Si esta carpeta ya existe en la red, el sistema combina la local dentro de la copia de red.

A parte de estos tipos de perfiles y de los que se crean cuando el usuario inicia sesión por primera vez en un sistema Windows, también podemos ver otro tipo de perfiles generados por el sistema que podremos definir como:

Tipos de Perfiles especiales

El path de ubicación en el registro de Windows, en el cual podemos encontrar los usuarios por defecto creados por sistema que serían: Public o Acceso público y Default user:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList
En esta clave podemos ver/modificar las rutas de localización por defecto a las que apuntan los directorios de estos perfiles, en el caso de necesitar hacer esto por alguna razón.

Dentro de la carpeta "Users" o "Usuarios" en la raíz C:\. Podemos encontrar los perfiles creados por defecto en Windows 7, para poder visualizarlos todos correctamente tendríamos que tener marcado las opciones de poder "ver todos los ficheros y carpetas ocultas" y "ficheros del sistema ocultos" en las 'Opciones de carpeta' del Explorer.

Acceso Público o Public (Windows 7) o All Users (Windows XP), (Todos los usuarios): Esta carpeta de perfil contiene la configuración que se aplica a todos los usuarios que inicien sesión en el equipo. Contiene una sección de perfil, NTUSER.DAT, que el sistema no carga. Contiene también las carpetas compartidas de documentos y música, accesos del menú de inicio compartidos, accesos directos en el escritorio que apareceran para todos los usuarios y más. 

La clave HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders tiene los vínculos a las subcarpetas de la carpeta del perfil de All Users.

Después otras configuraciones para Acceso Público irían en el path: %systemdrive%\ProgramData es decir en el raíz y no dentro de la carpeta de Acceso Público, esto para el caso de tratarse de Windows 7. En Windows 7 podremos ver un "Default User" con un icono de un "candado en una carpeta", esto es para mantener la compatibilidad con aplicaciones o migraciones de Win 7 a Win XP.

Default (Windows 7) o Default User (Windows XP) Usuario predeterminado: Contiene el perfil de usuario predeterminado que Windows copia cuando crea un nuevo perfil de usuario. Contiene la mayoría de archivos y carpetas que se han visto. Personalizar esta carpeta es una buena vía para iniciar cada usuario que inicia sesión en el equipo con la misma configuración. Windows comprueba primero la existencia de la carpeta de usuario predeterminado en el recurso compartido NETLOGON del servidor antes de usar la misma carpeta local si la copia en red no está disponible. Al personalizarla podemos implementar configuraciones que no queremos administrar. En Windows 7 podremos ver un "Default User" con un icono de un "candado en una carpeta", esto es para mantener la compatibilidad con aplicaciones o migraciones de Win 7 a Win XP.

LocalService (Servicio Local) y NetworkService (Servicio de Red): Son carpetas de perfil para la cuenta integrada de Servicio Local y de Servicio de Red, las cuales usan Service Control Manager para los servicios que no necesitan ejecutarse bajo la cuenta LocalSystem. Son perfiles normales de usuariarios con datos limitados, no lo vemos en el cuadro de diálogo de perfiles de usuario y sus carpetas están super-ocultas. En Windows 7 estas carpetas no se muestran físicamente ni como ocultas, pero existen las cuentas creadas de las mismas en el sistema.

Administrador y/o otros usuarios: Estos son perfiles normales del sistema y depende si ya hubiésemos o no creado dichos perfiles o entráramos alguna vez en ellos.

Carpetas del perfil

En cada perfil creado existe un determinado contenido en su interior que podremos denominar como: las "Carpetas del perfil" muchas de estas permanecen de modo oculto.

Las carpetas de un perfil de usuario contienen los archivos de aplicación por usuario. Por ejemplo, las plantillas instaladas de MS Office y diccionarios personalizados, las cookies almacenadas de IE o navegadores, configuraciones de otras aplicaciones, configuraciones del aspecto del perfil de Windows, accesos directos, etc.

A parte de las ya conocidas en Windows XP, no haré referencia todas las carpetas en profundidad si no que mencionaré las que me parecen más interesantes para la administración y gestión de perfiles de usuario, ya que las típicas

NTUSER.DAT: Es un archivo oculto de registro. Cada archivo NTUSER.DAT de usuario contiene los parámetros de configuración del registro de Windows para esa cuenta en concreto en la cual se almacenan las preferencias del usuario que tenga establecidas a lo largo del tiempo. La configuración de la carpeta de registro "HKEY_CURRENT_USER" está soportada por el actual archivo NTUSER.DAT de usuario.
Este se encuentra en el path del usuario: C:\Users\NOMBRE_USUARIO.

AppData: La cual contiene a tres carpetas: Local, LocalLow y Roaming.

Local
: Denominada así en Windows 7, contiene archivos de aplicaciones que no viajan con el perfil. Los archivos que encontramos aquí son por equipo o demasiado grandes para copiarlos vía red.
En Win XP esta misma carpeta es denominada: Configuración local (Local Settings) y estaba como carpeta oculta en el path: C:\Documents and Settings\%USER%\Configuración local\Datos de programa
  • Datos de Programa (Application Data): Datos específicos de aplicaciones por-equipo.
  • Historial (History): Historial del Internet Explorer.
  • Temp: Archivos temporales por-usuario.
  • Archivos Temporales de Internet (Temporary Internet Files): Archivos desconectados de Internet Explorer.
LocalLow: Es igual que la carpeta 'Local' anterior, pero tiene un nivel de integridad más baja. Por ejemplo, IE8, sólo se puede escribir en la carpeta LocalLow (cuando el modo protegido está activado).

Roaming
: Su contenido son archivos de diversos programas: e-mail, accesos directos, plantillas, etc… Cada distribuidor de software elige que archivos almacena aquí. Todas los temporales, históricos, logs, historiales de conversación de determinadas aplicaciones, plantillas, ficheros que almacenan configuraciones de determinado software, etc. Todo esto y más está guardado en este carpeta. Podremos acceder rápidamente a ella con la variable de entorno %APPDATA%.

Esta carpeta puede redireccionarse a una ubicación de red mediante directivas de grupo. En Win XP esta misma carpeta es Datos de programa (Application Data) en el path: C:\Documents and Settings\%USER%\Datos de programa.

El resto de carpetas cambia un poco la forma de llamarlas y verlas de como era en Windows XP a Windows 7 veremos que existen carpetas ocultas y del estilo de un acceso directo (un tipo de "enlace simbólico"), también llamadas igual que como se llamaban en Win XP. Esto ocurre por motivos de compatibilidad entre sistemas operativos y/o interacción con aplicaciones o migraciones de OS de Win XP a Win 7, de modo que nos ayuda a mantener la integridad y funcionalidad de aplicaciones y sistema operativo.

Por lo que la aclarar este punto anterior no entraré en profundidad en cada una de dichas carpetas restantes situadas en la raíz del perfil, ya que me parece que son suficientemente obvias para explicarlas.

En Windows XP la carpeta SendTo está en la raíz del perfil como oculta: Contiene accesos directos a unidades, carpetas y aplicaciones de destino. Si hacemos doble clic en un objeto y pulsamos en Enviar a, obtenemos una lista de estos destinos, y si pulsamos en cualquiera de ellos el objeto se enviará a esa unidad, carpeta o aplicación. Esta carpeta podemos editarla añadiendo o eliminando accesos directos mapeados a sitios, ya sean paths de alguna ubicación en concreto o atajos para aplicaciones.

En Windows 7, esta carpeta desaparece de la ubicación donde se encontraba en Win XP y pasa al siguiente directorio: C:\Usuarios\%USER%\AppData\Roaming\Microsoft\Windows\SendTo.

Espero que esta entrada aclarase algunas o muchas dudas aquellas personas que las pudiesen tener respeto al tema de como los administra/gestiona Windows.

Saludos!

19 marzo, 2014

Cambiar una dirección IP remotamente de forma subyacente con PsExec

Ya hablara del conjunto de herramientas que componen el paquete PsTools desarrolladas por Mark Russinovich (Sysinternals), las cuales nos permiten entre otras cosas realizar administraciones a equipos remotos de una red.

En esta ocasión haré uso de una de estas herramientas. PsExec la cual nos permite ejecutar procesos de un equipo remoto. Por ejemplo; realizar comandos en una shell remota, estos comandos NO se verán remotamente, es decir, que se hace transparente al usuario final y/o remoto.

En este caso mostraré un pequeño batch processing (.bat) que con ayuda de esta herramienta nos permitirá cambiar la dirección IP remota ACTUAL por una nueva asignación de dirección IP.
Copiando este script y pegándolo en fichero de texto, renombrándolo con una extensión .bat.
@echo off
echo ++ Introduce la IP del equipo Remoto:
set /p ipremota=
echo.
echo ++ Introduce la nueva IP a establecer:
set /p ipnueva=
echo.
echo ++ Introduce la mascara correspondiente:
set /p mascara=
echo.
echo ++ Introduce la Gateway correspondiente:
set /p gateway=
echo.
echo ++ Introduce el nombre de la interfaz: Ej: Conexión de área local
set /p interfaz=
echo.
psexec \\%ipremota% -u UsuarioAdmin -p PasswordAdmin -s netsh interface ip set address name="%interfaz%" source=static %ipnueva% %mascara% %gateway% 1
exit
Simplemente creamos y establecemos las variables a tener en cuenta y que nos harán falta para el uso de psexec. Como son principalmente e importante la dirección IP ya que la Subnetmask y la Gateway es opcional, dependiendo nuestras necesidades.
En mi caso es necesario ya que necesito cambiar IPs remotas que están fuera del rango habitual de mi red actual, pero que sin embargo si forman parte de mi tabla de enrutamiento (route print).

Después hacemos uso de la herramienta PsExec de manera que hagamos referencia a la IP remota (ya introducida como una variable), así como las posteriores variables tomadas que en mi caso eran la mascara de subred y la puerta de enlace.

Los parámetros con PsExec utilizados son los siguientes:
  • \\ipremota: IP Remota o nombre del equipo (para establecer la conexión con el equipo)
  • -u: Usuario con privilegios de la máquina remota para ejecutar el comando.
  • -p: Password de dicho usuario remoto con privilegios.
  • -s: Proceso/comando a ejecutar de manera remota. En este caso, netsh y su respectiva sintaxis de uso.
  • 1: Indica la métrica, normalmente en la mayoría de casos especificamos el valor 1.
Saludos!

17 marzo, 2014

PsTools: Suite de herramientas para la gestión y administración de equipos remotos en redes locales

PsTools es una suite de herramientas útiles para los administradores de sistemas y redes. Esta compuesto por multitudes de utilidades las cuales se utilizan en forma de comandos.

El autor de todo esto, es el conocido Mark Russinovich -programador y fundador de Sysinternals, empresa que Microsoft posteriormente compró-. Esta suite data del año 2007 (lo cual aún hoy me extraña que no hubiese publicado nada en el blog sobre ellas) pero aun tuvo recientes actualizaciones para ciertas herramientas que la componen.

El punto fuerte de este pack de tools en la mayoría de ellas es que sirven para realizar tareas administrativas a equipos remotos de una red local o de dominio, de manera subyacente al usuario final.

El uso de estas herramientas es en forma de comandos mediante una shell de Windows. Así que una vez descarguemos las herramientas que necesitemos o directamente la suite completa PsTools. Simplemente nos tendríamos que colocar el prompt en el path donde esté la carpeta raíz de PsTools descargada o donde la hubiésemos ubicado después de descargar el paquete.

En mi caso agregué la ruta: "C:\Windows\PsTools" a la variable de entorno 'PATH' de Windows.
De modo que ya no tengo por que estar siempre situado en la ruta raíz donde tenga las PsTools, me bastaría con hacer uso de las herramientas desde cualquier ruta en el que esté ubicado, ya que gracias a la variable de entorno añadida, Windows sabrá encontrar el camino raíz de los ejecutables que componen PsTools.

El pack de PsTools incluye las siguientes utilidades:
  • PsExec: Permite ejecutar procesos en cualquier contexto de usuario.
  • PsFile: Muestra los archivos abiertos de forma remota en un sistema.
  • PsGetSid: Muestra el identificador de seguridad (SID) de Windows de un equipo o un usuario.
  • PsInfo: Muestra información acerca de un sistema de Windows.
  • PsKill: Elimina o finaliza los procesos por nombre o identificador PID.
  • PsList: Muestra información detallada acerca de procesos en ejecución.
  • PsLoggedOn: Muestra todos los usuarios que han iniciado la sesión de forma local, así como todos los usuarios de recursos compartidos remotos.
  • PsLogList: Vuelca los registros de eventos de Windows.
  • PsPasswd: Cambia las contraseñas de cuentas de usuario.
  • PsService: Consulta y controla los servicios de Windows.
  • PsShutdown: Apaga, reinicia o suspende un equipo, o lo coloca en modo de hibernación.
  • PsSuspend: Suspende procesos en ejecución.
Esta no es una entrada para profundizar en cada una de ellas, ni era la intención de hacerlo, si no que iré haciendo uso de ellas a medida que me vayan surgiendo la necesidad de usarlas y exponer en posteriores artículos casos más concretos.

Saludos!

09 febrero, 2014

Analizando la carpeta Prefetch de Windows [ficheros .pf]

La carpeta Prefetch de Windows ubicada en el path C:\Windows\Prefetch, según Microsoft Windows, define esta carpeta de la siguiente manera.

"Cada vez que se enciende el equipo, Windows realiza un seguimiento de la forma en que se inicia el equipo y los programas que se abren habitualmente. Windows guarda esta información en una serie de pequeños archivos (de extensión .pf) en la carpeta Prefetch. La próxima vez que encienda el equipo, Windows recurrirá a estos archivos para acelerar el proceso de inicio."

Es decir, que es como un almacenamiento de "cachés" en las que almacenan datos en general, librerías utilizadas por los programas más recurrentes, etc.

Los ficheros .pf entre otras cosas almacenan información relevante a los dispositivos de almacenamiento ya sean discos duros internos, externos, dispositivos de almacenamiento USB, etc. Estos registran datos como la fecha/hora, paths, aplicaciones, librerías dependientes de esas aplicaciones, procesos .exe, etc. instaladas en nuestro sistema. De modo que para análisis forenses estos registros de sucesos pueden resultar muy útiles.

Esto es gracias al funcionamiento del servicio "Programador de tareas" (que se ejecuta bajo el proceso 'svchost') el cual entre otras cosas graba en páginas de memoria que son utilizadas con frecuencia por las aplicaciones. Esta es monitorizada por el File caching (Windows Cache Manager) y después de esa información recogida por cada aplicación utilizada de forma habitual se genera el archivo .pf.

Los ficheros .pf se crean con el nombre del tipo: "IEXPLORE.EXE-4B6C9213.pf". En el que la primera parte del nombre es el proceso ejecutable en cuestión de la aplicación y seguido de un Hash de 32bits representado en hexadecimal, el cual se construye a partir de la ruta completa de la aplicación.

Ahora bien, como vemos la información de estos ficheros .pf ??
Si nos vamos a la ruta donde esta esta carpeta vemos todos los ficheros .pf y también veremos un archivo de inicialización llamado: "Layout.ini".

Este fichero contiene en texto plano registros realizados/cambios con aplicaciones en nuestro ya sean instalaciones, desinstalaciones o actualizaciones, con referencia a los ficheros .pf creados.

Figura 1: Fichero 'Layout.ini' con información de los ficheros .pf almacenados.

Para poder profundizar un poco más en lo que ahora almacena realmente cada fichero .pf, fecha/hora, paths, procesos, dependencias de librerías, etc.

Podemos hacer uso de una herramienta externa desarrollada por Nirsoft la cual es WinPrefetchView.

WinPrefetchView nos permite visualizar de modo legible la información de estos ficheros .pf y que nos sea de utilidad en un análisis forense en busca de evidencias o para controlar si se instaló determinada aplicación en un equipo corporativo. Incluso es muy útil para detectar intrusiones de algún tipo de fichero ejecutable malicioso (malware) haciéndose pasar por otro.

Figura 2: WinPrefetchView mostrando la información de ficheros .pf

Saludos!

03 febrero, 2014

Recuperación de arranque en Windows 7 [BCD Rebuild, BOOTMGR, BOOT, NTLDR]

Hoy comentaré algunas de las formas más eficaces de poder recuperar una secuencia de inicio y carga de arranque corrupto o dañado de Windows 7.

Es decir cuando se nos presentan fallos por estar corruptos algunos ficheros de arranque ya sean, MBR, NTLDR, Bootmgr, etc. al encender nuestro equipo nos encontraremos con mensajes del tipo: BOOTMGR is missing..., Falta NTLDR o mensajes similares.

Tanto NTLDR para Windows XP, como BOOTMGR para Windows Vista en adelante son gestores de inicio o cargadores de sistemas Windows.

Para intentar solucionar este problema:

Podremos usar la forma sencilla y automática de Windows 7 que sería: Iniciar el medio extraíble tipo USB extraíble de instalación de Windows 7, una vez se nos arranque y se nos muestre la primera ventana del asistente de instalación le daríamos en la opción "Reparar equipo" (situada generalmente en la parte inferior-izquierda). Y a partir de ahí, usar la opción de "Reparación de inicio".

Esta opción nos solucionará principalmente fallos cuando se daña el fichero NTLDR (NTLoaDeR).

Otra opción sería hacerlo de forma manual y que restaurar los propios ficheros en cuestión corruptos cogiendo una copia del usb extraíble bootstrapping de instalación de Windows 7 un Windows PE (Entorno de preinstalación).

Ahora explicaré varias posibles soluciones, aunque esto depende también de cada caso que tengamos.

En un Windows RE (Entorno de recuperación), ejecutamos el comando diskpart (Administrador de discos en Windows "diskmgr.msc").

Tendremos que seleccionar el disco en el que tenemos nuestro arranque de OS de Windows 7, esto dependerá de cada uno y de las particiones y/o discos que se tengas instalados en el equipo, pondré un ejemplo típico y común, (cuyo caso sería un solo disco duro y una sola partición).

En esta zona por defecto en un mismo disco en estos casos las letras asignadas a cada partición o unidad suelen distribuirse de la siguiente forma:
  • X: Unidad creada para el sistema de restauración de imágenes de lo anterior seleccionado, esta contienen principalmente los binarios que lanzan los asistentes para la restauración del sistema así como otros para las reparaciones automáticas de arranque que nos ofrece Microsoft en un WindowsRE, entre otras tareas.
  • C: La partición "reservada para el sistema" de unos aprox. 100/200 MB, la cual contiene el boot de arranque y otros ficheros relacionados.
  • D: La partición donde está instalado Windows y los datos, esta es la que estaría montada como C:\ cuando corremos un sistema operativo Windows.
  • E: Unidad asignada al DVD o USB de instalación de Windows (Windows PE y Windows RE).
  • Bootrec será la utilidad principal para poder restablecer el arranque de Windows. Tiene varios modificadores de los cuales son (según su ayuda):
  • /fixmbr: Escribe el registro de arranque maestro de la partición del sistema con el registro de arranque maestro compatible con Windows 7. Esta operación no sobrescribe la tabla de particiones existente.
  • /fixboot: Escribe un nuevo sector de arranque en la partición del sistema con el sector de arranque comptible con Windows 7.
  • /rebuildbcd y /scanos: Examina todos los discos en busca de instalaciones compatibles con Windows 7 permite al usuario elegir la que desee agregar al almacén de configuración de arranque.
En que partición se tienen que realizar las acciones para recuperar el arranque de Windows?

Lógicamente en la partición en la que tengamos dichos ficheros dañados, que obviamente será la partición reservada por el sistema operativo para su arranque, en este caso y por defecto como ya se mencionó anteriormente C:.
c:
diskpart
list disk
select disk=0
list partition
select partition=1
active
exit
Con esto listamos, seleccionamos el disco donde se albergue Windows 7, listamos las particiones y seleccionamos la partición donde esté instalada Windows7, la marcamos como activa y salimos.

A continuación ejecutamos la siguiente secuencia de comandos:
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
exit
Esto nos reparará el MBR (Master Boot Record), la secuencia de inicio boot y nos reconstruirá la base de datos de arranque BCD (Boot Configuration Data).

Reiniciamos y probamos si con esto conseguimos solucionar el problema de arranque y Windows nos arranque correctamente.

Si el error persiste y no se hubiese solucionado nuestro problema habría que reconstruir de nuevo el BCD pero de otra forma, hacerlo "desde cero" sin que sobrescriba ningún fichero ya existente.
Para ello, en la consola de recuperación escribimos:
bcdedit /export c:\bcd_backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.bak
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
exit
Con esto lo que haremos es hacer un respaldo de la base de datos boot exportándola a C:. Después simplemente entramos en la carpeta "Boot" que está situada en la raíz del sistema y borramos los atributos (de archivo del Sistema, Oculto y Solo lectura) del fichero bcd en cuestión.

Por último reconstruimos de nuevo la BCD, en este caso desde cero sin que tome referencia de ninguna otra y reparamos el MBR y el BOOT como los pasos anteriores y reiniciamos a ver si ya se corrigió el problema de arranque.

Si seguimos sin poder repararlo tendríamos que sobrescribir el fichero BOOTMGR situado en la raíz del sistema C:.

Situados en la consola de recuperación, buscaremos y entraremos a la letra de unidad asignada a la lectora DVD o la unidad asignada al dispositivo donde tengamos la instalación de Windows 7. En mi caso, fue la la letra E: pero podría a ver sido otra, es cuestión de ir probando en un orden alfabético (D:, E:, F:, etc.).
e:
copy bootmgr c:\
c:
attrib bootmgr +s +h +r
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
exit
Como vemos, copiamos el bootmgr del DVD (en este caso) al disco raíz, nos vamos a nuestro disco raíz, por defecto C: y establecemos los atributos (de archivo de Sistema, Oculto y Solo lectura) al fichero bootmgr que copiáramos anteriormente.

Seleccionar la partición correcta y marcarla como activa. Después de eso ya podremos reconstruir sin problemas la BCD y seguir con la reparación de fixmbr y fixboot.

Ahora salimos de la consola y reiniciamos y con estos todos casos anteriores y planteados en este artículo deberíamos solucionar gran parte de errores relacionados con fallos de arranque o carga de un sistema operativo Windows 7.

Saludos!

08 enero, 2014

Firmar una fotografía digitalmente en sus metadatos

Seguramente todos conocemos la forma de firmar fotografías con una marca de agua digital ya sea central, en algún lateral de la imagen o de alguna otra forma.
Pero a parte de este tipo de firmas, nunca está de más firmarlas digitalmente en sus metadata. Hace ya un tiempo que había hablado de los metadatos y de la importancia que conllevan.

Pues bien, existen múltiples manera de poder firmar estos ficheros, aquí expondré tres posibles formas de hacerlo, cada una de ellas totalmente válidas y correctas.

Como ya sabremos los metadatos más comunes en una imagen son denominados EXIF (Exchangeable Image File Format) los cuales pueden contener multitud de información relevante a los parámetros fotográficos en los que a sido tomada una fotografía (apertura de diafragma, velocidad de obturación, sensibilidad de película = valor ISO, distancia focal, etc.), como también información más general, así como fecha y hora, autor de la obra, comentarios, etc.

Estos metadatos podremos visualizarlo de forma manual y tradicional examinando las propiedades del fichero o si queremos verlos de forma más sofisticada y "profesional" podemos recurrir a estas tools gratuitas: Exif Reader y MetaStripper.

Método 1: En la propia Cámara fotográfica.

Una de los métodos es hacerlo a través de la propia cámara fotográfica si nos permite esta característica. En mi caso, dispongo de una 'Canon 550D' la cual si me lo permite, por lo que adjuntaré unas imágenes de los pasos a seguir.

Los menús entre las mismas marcas comerciales suelen ser similares, dependiendo la versión de firmware que se tenga y de más.

[1] - Con la cámara encendida y dentro del Menú, en mi caso me voy a la sección de Copyright.

Figura 1: Display de una Canon 550D, panel de "Información de Copyright".

[2] - En esta sección podremos editar tanto el nombre del 'Autor' como los 'Detalles de Copyright' que queramos reflejar en los metadatos de nuestra imagen.

Figura 2: Panel de información de Copyright, editar nombre y detalles de Copyright.

[3] - Ahora como vemos después de editar y guardar los cambios realizados, se nos muestra de este modo la información, esto repercutirá en el momento de examinar los metadatos veremos reflejada de forma nativa esta información en los detalles de la fotografía.

Figura 3: Sección de 'Autor' y 'Copyright' editado y cambiado.

Método 2: Con "Adobe Photoshop Lightroom 5".

Esta sería otra forma muy práctica y cómoda también de firmar una imagen en su metadata, simplemente tendríamos que 'Editar' los metadatos actuales y añadirle los valores correspondientes que deseemos, esto se encuentra en la columna de la izquierda, en mi caso solo mostraré los que estamos tratando como son el 'Copyright' y el 'Creador o Autor'.

Un punto interesante de Lightroom 5, es que en este apartado nos permite "Crear" un plantilla de metadata para nuestras imágenes, de modo que podemos crear dicha plantilla con solamente estos datos y de manera automática en futuras fotografías cargar estos metadatos más rápidamente. 

Figura 4: Edición de metadatos de 'Copyright' y 'Creador o Autor' en "Adobe Photoshop Lightroom 5".

Método 3: Editar metadata del propio fichero de imagen.

Como último método expondré el que particularmente voy usando y que me parece el más rápido, limpio y sencillo a la vez. Que es hacerlo directamente en propio fichero de imagen.

[1] - Entramos en las propiedades del fichero, con el fichero seleccionado: Botón derecho -> Propiedades o simplemente Alt + Enter.

[2] - En la pestaña "Detalles", es donde veremos toda la información metadata relevante a lo que nos interesa. En la sección 'Origen', editamos los campos de texto 'Autores' y 'Copyright'.

Figura 5: Edición de metadatos (Autor y Copyright) en los 'detalles' del fichero.

[3] - Para darle un toque de protección añadida y así evitar accidentalmente el intento de modificación del fichero/imagen; en la pestaña "General", dentro de la sección de 'Atributos' marcamos el checkbox de "Sólo lectura" y Aceptamos.

Con esto evitaremos que se nos modifique inesperada por medio de algún software de por medio u otro/s.

Figura 6: Protección de Sólo lectura en los atributos del fichero de imagen.

Espero que este artículo aclare algunas que otras dudas y se de utilidad para quien lo necesite.

Saludos!

Entradas Populares