viernes, 19 de mayo de 2017

Instalar actualizaciones Windows con powershell y PSexec

En esta ocasión por solicitud de nuestro cliente debimos corres de forma masiva la aplicación de un parche de seguridad debido a la amenaza del virus Wanna Cry de acuerdo a el boletín de seguridad de Microsoft MS17-010 se requiere la aplicación de unas actualizaciones de seguridad para solventar la vulnerabilidad de la cual el ya nombrado virus se aprovecha para ingresar a los equipos e iniciar su siniestro proceso.

Pero en ciertas redes no hay configuada una estrategia de actualizaciones automaticas generalmente WSUS, o por la cantidad de actualizaciones pendientes y por motivos de algunas aplicaciones no es factible el despliegue masivo de todas las actualizaciones de una vez, por lo cual se genero un script de powershell hibrido (con algo de bat y el uso de psexec) para realizar esta actividad.

para ello también necesitamos:

  • PSTOOLs de  Sysinternals la cuales se descargan  Aqui. lo descomprimimos en C: de modo que nos quede C:\PSTools y verificacamos que dentro de C:\PSTools\ se encuentre psexec.exe
  • Parche de Windows para W7 32 bit  windows6.1-kb4012212-x86_Wi7.msu el cual renombraremos al descargar para acortar un poco el nombre, yo lo renombre como w7-kb4012212-x86.msu (o cualquier parche que requieran ;))
  • Se requiere un archivo de texto el cual llamaremos listado.txt en el cual colocaremos los nombres de los equipos a verificar uno debajo del otro: EJ.
           equipo1
           equipo2
           equipo3
           etc....

Para ver el script que nos informe los equipos que faltan de esta actualizacion revisa el  Post anterior

luego crearemos el archivo update.ps1 con el siguiente código:


$equipo = (Get-Content listado.txt)
#asignar la ruta compartida donde almacenamos el msu, con su respectivo nombre
$ruta = '\\nombre_servidor\ParchesMS17-010\Windows7\windows6.1-kb4012212-x86_Windows_7x86.msu'

foreach ($pc in $equipo){
CMD /C "sc \\$pc config wuauserv start= auto"
CMD /C "sc \\$pc start wuauserv"

    if (Test-Path "\\$pc\c$"){
        Write-Host "Processing $pc..."
        # copiando
        Copy-Item $ruta "\\$pc\c$"
        & C:\PSTools\PsExec -s \\$pc wusa C:\windows6.1-kb4012212-x86_Windows_7x86.msu /quiet /norestart
        # Eliminamos archivo msu local
        Remove-Item "\\$pc\c$\windows6.1-kb4012212-x86_Windows_7x86.msu"
        Start-Sleep -s 5
        CMD /C "sc \\$pc config wuauserv start= disabled"
        CMD /C "sc \\$pc stop wuauserv"
        
    } else {
        Write-Host "Sin acceso a la Unidad C"
    }
}

los dos archivos se almacenaran en la misma ubicación del servidor desde el cual vamos a correr la actividad, una vez alli ejecutaremos una instancia de powershell como administrador y nos ubicaremos en la carpeta donde guardamos nuestros archivos.

Llego el momento de iniciar la tarea, Ejecutamos

.\update.ps1

Si todo salio bien nos puede arrojar dos errores:

error 3010 : actualizacion instalada  REBOOT_REQUIRED: 
error 2359302 actualizacio ya se encontraba instalada.

Espero a alguno le sea util este post
¡Hasta la proxima!


Si te fue útil la información "HAZ CLICK EN LA PUBLICIDAD DE GOOGLE"

 visitando nuestros anunciantes, agradeces nuestro trabajo...




miércoles, 17 de mayo de 2017

Verificar instalacion de actualizacion kb4012212 MS17-010 remotamente

En estos días se ha vuelto muy famoso el nombre Wanna Cry, debido a que logro tomar una vulnerabilidad de microsoft e ingresar su ataque a varias redes a nivel mundial, microsoft desde Marzo en su boletin MS17-010 ya habia advertido sobre esta vulnerabilidad.

Todo el asunto se reducía a instalar la actualización (hotfix o parche) kb4012212.

Aclaración
La instalacion de esta actualizacion de seguridad impide la ejecucion remota del virus, pero en ningún caso reemplaza las medidas como personas pensantes que debemos tomar para que se ejecute localmente con autorizacion del usuario (que realmente es la mayoria de los casos de infeccion).

Ahora en un ambiente que no se cuente con WSUS, se requiere hacer manualmente la búsqueda en los equipos de cuales faltan por esta actualización.
Vamos a revisar dos opciones:
1.  Buscar Equipos que tienen instalada la actualización.
2.  Buscar equipos a los que le falta la actualización

Paso 1

Se requiere un archivo de texto el cual llamaremos listado.txt e el cual colocaremos los nombres de los equipos a verificar uno debajo del otro: EJ.
           equipo1
           equipo2
           equipo3
           etc....

Opción 1.

Ahora podemos crear un archivo PS1 de powershell o llanamente copiar la siguiente linea y ejecutarla en la terminal de powershell

Get-hotfix -Id "kb4012212" -ComputerName (Get-Content listado.txt)  | Format-Table PSComputerName,Description, HotFixID,InstalledOn | tee -filePath kb.txt

El anterior comando nos generara un archivo llamado kb.txt el cual contendrá el listado de equipos que tienen el kb buscado instalado

PSComputerName      Description     HotFixID         InstalledOn          
--------------                 -----------         --------              -----------          
equipo1                       Update           kb4012212       22/12/2016 12:00:00 a.m.
equipo2                       Update           kb4012212       22/12/2016 12:00:00 a.m.
equipo3                       Update           kb4012212       22/12/2016 12:00:00 a.m.

Asi sabremos que equipos cuentan ya con la actualización recomendada por Microsoft (igual nos sirve para buscar cualquier actualización que se requiera)

Opción 2.

Procedemos a crear nustro archivo .ps1 el cual en este caso llamare kbless.ps1, y tendra el siguiente contenido:

$A = Get-Content "listado.txt"
$A | ForEach { if (!(Get-HotFix -Id "kb4012212" -ComputerName $_)) { Add-Content $_ -Path "falta.txt" }}

ahora ejecutaremos el script, el cual nos arrojara un archivo de texto con el nombre falta.txt en el cual estaran listados los equipos en los cuales no se encontro instalado el KB4012212 (o cualquiera que necesitemos buscar)


Espero a alguno le sea util este post
¡Hasta la proxima!


Si te fue útil la información "HAZ CLICK EN LA PUBLICIDAD DE GOOGLE"
 visitando nuestros anunciantes, agradeces nuestro trabajo...