Powershell: creación y eliminación de snapshots Hyper-V

índice

En un entorno virtual, es una muy buena práctica tener controlados los snapshots de nuestras máquinas virtuales. A diferencia de VMWare, en Hyper-V són puntos de control que se crean muy rápidamente y se consolidan de la misma forma. Es per ello que es una muy buena opción a contemplar como complemento de los backups.

En un caso concreto yo lo uso como estrategia de prevención contra Cryptolockers y ransomware varios haciendo que cada día, antes de que las empresas entren a trabajar se cree un punto de control. Para ello uso una tasca programada con el siguiente script:

Get-VM  * | checkpoint-vm -SnapshotName "[Nombre que le queramos dar] $((Get-Date).toshortdatestring())" –AsJob

Con este script en powershell, cada día se nos ejecutará un punto de control de TODAS nuestras máquinas virtuales. Podemos acotar la búsqueda o filtrar con el comando:

Get-VM –Name [Nombre de la M]

y que podremos filtrar. Por ejemplo: si todas nuestras máquinas virtuales se llaman SRV-[nombre] pero algunas son OLDSRV y solo queremos snapshots de las primeras, podemos hacer:

Get-VM SRV-*

Hecho esto, el siguiente paso es controlar cuantos snapshots queremos guardar. En mi caso solamente guardo un día puesto que como he dicho antes, es una medida de control contra los ransomware, no una backup. Para ello, uso el script siguiente:

Get-VMSnapshot –VMName [nombre_MV]* | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-1) } | Remove-VMSnapshot

Donde:

  • (Get-Date).AddDays(-1) son los días que quiero almacenar. En mi caso 1. Este valor lo podéis cambiar por el que queráis.
  • [nombre_MV]* es una string del nombre, como si fuera un sufijo. Es para filtrar.

De esta forma, puedo controlar que si nos entra algo que nos engorrine el sistema y es crítico, podemos en tan solo dos clics de ratón, volver al inicio del día. Eso si, para clientes o sistemas más críticos, uso el script varias veces al día y los elimino todos al día siguiente. La secuencia de comandos de la tasca programada es la siguiente:

powershell.exe –ExecutionPolicy Bypass –file “[ruta_del_script]”

Cambiar Win32Time a NTP

El otro día un cliente me comentó que tenía muchos problemas con la hora del servidor de dominio, y eso les daba muchos problemas. Revisando la instalación y configuración que tenía, me fijé que el PDC (Primary Domain Controller) no era el que subministraba la hora a los equipos del dominio, sino que lo hacía otro equipo mediante un ficherito bat. Esto claramente daba problemas, puesto que si el servidor que subministra la hora la pierde, arrastra con ello el resto de equipos.

¿Qué solución le propuse? Pues configurar que el PDC sirva la hora y que además no la sirva con el propio servicio Win32Time sino que lo haga como servidor NTP (mucho más estable).

Para ello, debemos ir a la siguiente clave del registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\

NTP_1

Debemos cambiar los valores siguientes:

  • El valor NtpServer les ponemos cualquier servidor NTP (en mi caso puse es.pool.ntp.org)
  • El valor Type cambiamos NT5DS a NTP

En la misma clave, pero en Config, cambiamos el valor AnnounceFlags de 10 a 5

image

Hecho esto, cerramos el regedit y abrimos un cmd en modo administrador y ejecutamos:

net stop w32time 

net start w32time

w32tm /resync /rediscover

Y testeamos la conexión con el siguiente comando:

c:\> net time \\[nombre_del_PDC] /set /y

¡Y listos! Nuestro servidor ya usará el sistema NTP para sincronizar la hora.

Error en imprimir con Chrome: se quedan los documentos en la cola de impresión

Chrome Crash

Desde el pasado 27 de Agosto, se ha detectado que la última actualización de Google Chrome está dando problemas cuando queremos imprimir a través del navegador, quedándose los documentos en la cola de impresión. Esto sucede tanto si queremos imprimir a través del menú de Chrome o a través de código. De momento no hay una solución oficial y lo único que podemos hacer es cambiar la ruta del directorio temporal pues al parecer, la sandbox falla al no detectar la ruta correcta.

Esto se puede solucionar con un fichero batch:

echo off
md c:\gtemp\%username%\Temp
setx TEMP c:\gtemp\%username%\Temp
setx TMP c:\gtemp\%username%\Temp

En mi caso, al sucederme esto en un entorno Windows 2012R2, he creado un fichero *.bat y lo he forzado a que se ejecute al inicio de sesión de cada usuario, mediante el Logon script de las GPO. De esta forma el cambio se ejecuta en todos los UPD.

De momento no hay parche a la vista. En cuanto salga, actualizaré el post.

Fuente | Code Google

Deshabilitar servicios o programas mediante la consola de recuperación de Windows

¿Qué ocurre cuando un servicio se bloquea y nos impide arrancar Windows? Es decir, cuando no sale una pantalla azul (o BSOD), siempre que el error mostrado sea de un controlador/servicio/programa. Os recomiendo este post y este otro post para poder identificar las distintas causas de los pantallazos así como su codificación.

Pues la solución es bastante sencilla: usando la consola de recuperación. Para ello lo que deberemos hacer es lo siguiente:

  • Arrancamos nuestro Pc con el CD de instalación de Windows XP.
  • Una vez se hayan cargado los controladores, pulsaremos la ‘R‘ y accederemos a la consola de recuperación.

Más adelante explicaré algunos de los comandos más usados (o los que más uso) para reparar el sistema operativo. Ahora, de momento, deberemos aprender el comando listsvc. Este comando nos listará todos los servicios en el inicio de Windows.El otro comando que debéis tener en cuenta es disable y  con el parámetro /? podréis ver sus opciones (aunque no tiene ningún secreto).

 

Fijaros que el comando disable nos presenta los distintos estados de los servicios, es decir, los start_type que son:

  • SERVICE_DISABLED: nos dice que el dispositivo está deshabilitado.
  • SERVICE_BOOT_START: nos indica que el controlador de dispositivo es iniciado por el propio sistema operativo.
  • SERVICE_SYSTEM_START: este es un poco extraño. Nos indica que un controlador de dispositivo es iniciado por la función IoInitSystem (lo busqué en el KB de Microsoft porqué no sabía lo que era).
  • SERVICE_AUTO_STAR: nos indica que un un controlador de dispositivo o servicio de Windows es iniciado por el administrador de servicios de manera automática.
  • SERVICE_DEMAND_START: nos especifica que un controlador de dispositivo o servicio de Windows, es iniciado por el administrador de servicios.

Esto quiere decir que si ponemos:

C:\disable [nombre_del_servicio]

A la que hagamos un listsvc, nos mostrará el estado del servicio. Dicho esto y sabiendo cual es el servicio/controlador que nos está causando problemas, lo podremos deshabilitar y arrancar nuestro sistema operativo. Si, aun deshabilitándolo todo, nos sigue saliendo la pantalla azul, el problema ya es otro 😉

Tip: crear carpetas protegidas por contraseña en Windows 7

A veces mucha gente me pregunta como puede crear un directorio o carpeta bajo Windows protegida por contraseña, y me quedo con cara de pasmarote pensando «botón derecho -> proteger por contraseña» pero por lo que se ve, no funciona del todo :p Así que os presento un pequeño truco para hacerlo mediante los ficheros por lotes (los ficheros bat).

  • Creamos una carpeta nueva
  • Dentro de ella, creamos un nuevo documento (botón derecho -> Nuevo -> Documento de texto) lo abrimos y dentro escribimos el siguiente código:
cls
@ECHO OFF
title Folder Privada
if EXIST “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}” goto UNLOCK
if NOT EXIST Privada goto MDLOCKER
:CONFIRM
echo Quieres proteger tu directorio? (S/N)
set/p “cho=>”
if %cho%==S goto LOCK
if %cho%==s goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Error. Contesta SI (s/S) o NO (n/N).
goto CONFIRM
:LOCK
ren Privada “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}”
attrib +h +s “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}”
echo Carpeta protegida
goto End
:UNLOCK
echo Password para desproteger
set/p “pass=>”
if NOT %pass%== ENTER YOUR PASSWORD HERE goto FAIL
attrib -h -s “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}”
ren “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}” Privada
echo Carpeta desprotegida satisfactoriamente
goto End
:FAIL
echo Password no valido
goto end
:MDLOCKER
md Privada
echo Carpeta Privada creada correctamente
goto End
:End

IMPORTANTE: En la línea 23, veréis que hay un sitio que pone ENTER YOUR PASSWORD HERE que es donde deberéis escribir vuestra contraseña para proteger la carpeta.

  • Guardamos el fichero con extensión .bat con el nombre que queramos.
  • Entonces ejecutamos el fichero [nombre_que_sea].bat y éste nos generará otra carpeta que se llama Privada donde pondremos lo que queramos dentro (que posteriormente protegeremos.)
  • Una vez guardado el contenido en su interior, volvemos a hacer doble clic sobre el fichero [nombre_que_sea].bat y se nos abrirá una ventana cmd que nos preguntará si la queremos proteger (a lo que deberemos responder que si pulsando la tecla ‘s’) y automáticamente la protegerá y la ocultará.

  • Para volver a acceder a ella, ejecutamos de nuevo el fichero [nombre_que_sea].bat y le ponemos el password que previamente hemos escrito en el fichero.

¡TACHÁN! ya tenemos un método para proteger las carpetas.

Via | Google

Tip: Outlook 2003/2007: No se puede abrir la ventana de Outlook (y van 2)

El otro día ya comenté en este post como podemos hacer que MS Outlook deje de reiniciarse constantemente. Pues aquí os dejo el comando definitivo para cuando Outlook no quiere iniciarse.

  • Vamos a inicio -> ejecutar
  • Escribimos outlook.exe /resetnavpane

Este comando prácticamente soluciona todos y cada uno de los problemas de Outlook y lo que hace es crear un nuevo archivo con las carpetas del panel de exploración predeterminado, perdiendo de esta manera cualquier personalización que hayamos hecho en nuestro Outlook.

La otra opción a probar (no siempre funciona) es eliminar el archivo nombre_perfil.xml de la carpeta de archivos de nuestro perfil de usuario en Windows. Para acceder a ella:

  • Inicio -> Panel de Control -> Correo
  • Pulsamos el botón que nos dice «Abrir carpeta». Aquí tendremos almacenado nuestro archivo pst y nuestros archivos xml.

¿La causa del error? Ni los de Microsoft lo saben.

Antivirus en Linux o como desinfectar un Windows mediante Linux.

Leyendo esta mañana uno de mis feeds, di con esta noticia en El Atareao: buscando virus con Linux. Aunque lo que voy a decir puede parecer un plagio (que no lo es), me ha sucedido lo mismo miles de veces.

Hace ya tiempo que una parte de mi faena es la desinfectar los discos duros de los trabajadores ya que, como ocurre en todas o el casi todas las empresas, se aprovecha el ADSL para descargar pelis del eMule, mp3, pasar el PowerPoint de turno que recibiste en el mail de Yahoo o Hotmail y ale … ¡viva la fiesta y el descontrol del malware!

La mejor manera de desinfectar un disco duro siempre es conectándolo de manera externa a un Pc/Portátil y desde allí, como si fuera un Pendrive, desinfectar. Hasta hace un tiempo usaba un sistema dual con un Windows XP Sp2 que posteriormente pasó a ser un Windows 7 Ultimate x64 y Ubuntu y, cuando decidí hacer el salto a sólo Linux me encontré que no tenia herramientas suficientes para desempeñar esta faena en concreto ya que, aun conociendo ClamAntiVirus no me daba los resultados que necesitaba por lo que lo dejé de lado y tuve que buscar una solución alternativa y eficaz.

Así que lo que hice fue instalar VirtualBox, virtualizar un Windows XP y habilitar los puertos USB del mismo 🙂 Proceso rápido sencillo y que no me ha dado problemas ya que si la máquina virtual se me infecta, la elimino, cargo otra (2 minutos) y ale, seguimos desinfectando.

Pero para los que quieran probar ClamAV aquí os dejo como instalarlo 🙂

sudo add-apt-repository ppa:ubuntu-clamav/ppa
sudo apt-get update
sudo apt-get install clamav

Y para actualizar ClamAV escribimos:

sudo freshclam

Y listos. Ya tenemos instalado un antivirus en nuestro Linux para poder desinfectar nuestras particiones Windows (como me gusta la frase) 🙂 Para utilizarlo, se usa el terminal escribiendo:

$sudo clamscan [opciones] [archivo/carpeta/-]

Aunque si queréis os podéis instalar un interfaz gráfico, podéis usar tanto ClamTk para Gnome o KlamAV para KDE. Os deja aquí un par de enlaces de referencia, sobretodo de cómo compartir los USB en VirtualBox o como virtualizar un Windows XP.

Enalces | Compartir puertos USBVirtualizar Windows XP

Via | El Atareao

Microsoft Windows Phone 7 ya ha sido jailbreckeado

Poco a durado el OS Windows Phone 7 en ser jailbreckeado. Chris Walsh, un desarrollador Australiano, encontró una vulnerabilidad en una DLL. Según Walsh, se puede ejecutrar el código nativo permitiendo a los usuarios ejecutar el software que se desee. El método consiste en manipular un archivo DLL llamado Microsoft.Phone.InteropServices que a  su vez permite a los usuarios el acceso al root del dispositivo.

Más información | Blog de Chris Walsh, Windows 7 News

Tip: Navegación segura con Chrome

Firesheep, la iniciativa de un programador llamado Eric Butler, nos ha demostrado a todos las condiciones de inseguridad que muchos servicios web ofrecen a sus usuarios: la mayoría de los servicios web funcionan a través de conexión estándar no cifrada, o como mucho, cifran únicamente el momento del login.

Entonces, ¿cómo podemos navegar de manera segura? En mi caso y para no complicarme mucho, utilizo Chromium y una extensión llamada KB SSL Enforcer que de forma automática, activa las conexiones SSL para todos aquellos servidores y servicios web que lo ofrezcan.

Como sus propios creadores indican «no es completamente seguro contra el infame Firesheep pero si minimizará su riesgo en gran medida» y lo que nos ofrece es:

  • Detecta automáticamente si un sitio es compatible con SSL (TLS) y lo redirecciona
  • Opciones flexibles para neutralizar la detección automática
  • Cachés que sitios de soporte SSL
  • De código abierto (GPLv2 o posterior)

Sin duda, para los que uséis Chrome/Chromium una extensión muy a tener en cuenta. Además, si se me permite la opinión personal, usar Chrome/Chromium ya minimiza mucho los riesgos 😉

Para los que usen Firefox | Balcksheep: extensión que nos avisa de Firesheep

Via | Security By Default, GeeksRoom