jueves, 9 de diciembre de 2021

Cómo dar permisos al registro vía GPO

 Seguro que todos nos hemos encontrado con esas aplicaciones que requieren permisos de administrador sobre el equipo para funcionar, como pueden ser, por poner un ejemplo, Contaplus, o similares. Si tenemos puesto el foco en la seguridad, lo de andar dando permisos de administrador en las maquinas a los usuarios es una locura, de manera que lo correcto es determinar dónde requieren dichas aplicaciones esos permisos, y concederlos sólo allí donde se necesiten. Por desgracia, esto nos obliga en algunas situaciones a facilitarlos en claves concretas de registro.

Puestos a modificar claves de registro a usuarios específicos por necesidades de aplicación, lo suyo es tener a dichos usuarios dentro de un mismo grupo de seguridad, y dar estos permisos al grupo. Esto simplifica sobre todo la gestión cuando se produce rotación de personal. Pero al grano: vamos a ver cómo dar permisos a un grupo de seguridad especifico vía GPO.

Para ello, abrimos la consola de administración de directivas de grupo, y editamos la GPO que proceda. En este caso, vamos a modificar una clave de HKLM, de manera que tocaremos en la parte de máquina de la gpo:

Como se ve en la imagen, debemos ir a la parte de configuración del equipo / directivas / configuración de Windows / configuración de seguridad / Registro. Aquí pulsamos botón derecho / agregar clave, y generamos la clave que queramos para modificar permisos. Por ejemplo... supongamos que quiero dar permisos a HKLM\Software\Microsoft\EnterpriseCertificates. Pues generamos el registro de la siguiente manera:

Segun damos a aceptar, llegamos a la pantalla de permisos. Es el momento de agregar el grupo de seguridad que queramos que tenga permisos sobre esta clave de registro, y su nivel de permisos:

Aplicamos y aceptamos, y nos preguntará cómo deben propagarse los permisos, si es que deben propagarse:

Con esto, tenemos la clave generada, y con la propagación necesaria, si corresponde. 

¡Espero que os sea de utilidad! Si te ha gustado el articulopuedes invitarme a un café  ;)

domingo, 28 de noviembre de 2021

El "adios" de Pat Gelsinger

 Este es un video que tengo guardado de hace tiempo, y que de vez en cuando me gusta volver a ver, ya que es un pedacito de la historia informática moderna. Es el adiós del CEO de VMware Pat Gelsinger en 2021 a sus usuarios de VMUG, para volver de nuevo a sus orígenes en Intel. De este anuncio va a hacer ya un año.

El grupo VMUG es el VMware Users Group, el grupo de usuarios de VMware, o dicho de otra forma, el "club de fans" de VMware. Es una asociación independiente de VMware, pero muy enlazada con ellos, como es lógico. Ayudan a la resolución de problemas, asesoran para la formación de los productos de VMware, y por supuesto, evangelizan su tecnología. Pertenecer a este grupo no tiene ningún coste, y lo recomiendo a todos los usuarios de productos de VMware, porque también organizan frecuentemente diversos eventos de promoción y muestra de las capacidades de los productos, usualmente dirigidos por colaboradores de VMware, como puede ser OVH, o miembros de la comunidad de vExperts.

Me he dado cuenta que siendo un video del canal de VMUG TV, es posible que no haya tenido tanta difusión como debiera, de manera que aquí lo dejo subido y disponible en Youtube.  

¡Que lo disfrutéis!

Dejo también AQUI el enlace original.

viernes, 3 de septiembre de 2021

Ya está disponible Windows Server 2022

 En silencio, sin publicidad, Microsoft anunció en su blog la disponibilidad general de su nuevo sistema operativo para servidores, Windows Server 2022. No es la versión RC, es la versión definitiva, LTCS, con sus habituales 5 años de soporte y 5 años extendidos

Esta nueva versión llega en 3 versiones diferentes, como la anterior edición. Si Windows Server 2019 vino con las versiones Essential, Standard y Datacenter, Windows Server 2022 viene con las versiones Essentials, Standard, y Datacenter, aunque se comentó una Datacenter Azure Edition, pero no aparece en la pagina de precios (la agrego más abajo). 

Está claro que esta nueva versión permitirá una conectividad total con herramientas y funcionalidades de Azure. Para ello, traen Azure Arc, que ayudará a simplificar la administración de distintos entornos con los que se pueda trabajar, ya sea multicloud, entorno on-prem, o hibrido. También se potencia la herramienta Admin Center que nos lleva acompañando desde Windows Server 2016, mejorando su gestión con VMs.

Se ha mejorado la compatibilidad de hardware, así como la cantidad máxima de recursos que puede gestionar, llegando ahora a 48 TB de RAM y 2048 núcleos lógicos sobre 64 sockets

Luego hay mejoras varias en el uso de contenedores en todas sus facetas, e indican que también están trabajando fuerte en la mejora de compatibilidad, gestión y rendimiento de su AKS (Azure Kubernetes Service)

En temas de seguridad también hay avances, como una mejora del protocolo HTTPS con un cifrado AES-256 y soporte para el protocolo SMB con compresión en tránsito

Para ir comenzando las pruebas con Windows Server 2022, podemos realizar la descarga desde su Centro de Evaluación de Windows Server.

O bien podemos ir al Centro de Servicios de Licencias por Volumen, si somos clientes de licencias.

La página de precios por ahora muestra solo las versiones Essentials, Standard y Datacenter, ni rastro de la Datacenter Azure Edition (pero dejo enlace de esta versión, de la propia Microsoft, para que veáis que no me lo invento). También puedo ir adelantándolo:

Click para ampliar

Adjunto también un enlace al Evento de Presentación de Windows Server 2022 el 16 de Septiembre. Por supuesto, online.

lunes, 30 de agosto de 2021

Agregar el servicio COM+ en Windows Server 2016

Lo primero de todo: ¿qué es COM+?

COM+ (Component Object Model: modelo de objeto componente) es una tecnología de Microsoft cuya finalidad es posibilitar la interconexión de procesos entre si y ofrecer un entorno de desarrollo de objetos (aplicaciones). COM+ no es más que una extensión de COM y este servicio es el que se encarga de gestionar los procesos y aplicaciones basados en esta tecnología. Aunque el servicio sigue presente tanto en Windows Vista como en posteriores, parte de las funciones de COM están siendo sustituidas por Microsoft .NET y por Windows Communication Fundation. Viene bien explicado en este LINK.

Entonces, ¿para qué lo queremos instalado en el servidor? Por lo de siempre en el entorno Microsoft, no hay obsolescencia, las aplicaciones duran décadas. Aunque las aplicaciones ya no hagan uso de esta extensión, al estar incluidas en otros elementos como .NET, las aplicaciones antiguas siguen requiriéndolo. Y hasta Windows Server 2012 es fácil instalarla, solo tenemos que seguir los siguientes pasos:

Desde instalación de Roles y Características, agregamos el rol de Servidor de aplicaciones,

Y posteriormente en los servicios del rol, Acceso a red COM+

Como decía, hasta W2K12 R2, es facil. El problema viene a partir de Windows Server 2016. El servicio ya está obsoleto, y Microsoft no lo incorpora en sus nuevas versiones de Windows. Entonces, ¿Cómo instalarlo?

Podemos instalarlo en dos pasos:

1º Habilitamos el "acceso a red COM+" en el firewall de Windows. Para ello, le damos acceso en la ventana de "apps permitidas" en el firewall:

2º Modificamos el registro. Para ello, vamos a la siguiente subclave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3. Allí, hacemos doble click en la clave RemoteAccessEnabled y cambiamos su valor a 1.

Con esto, ya tenemos el servicio funcionando en las nuevas versiones de Windows.

Si te ha gustado el articulo, puedes invitarme a un café  ;)

domingo, 29 de agosto de 2021

Repite conmigo: los snapshots no son backups

Estamos en 2021, hace 11 años apareció ESXi 4.0. Entonces ya hacia snapshots, y por aquella época, se consideraban una forma de backup. Esto cambio en torno a 2014, con ESXi 5.0. Entonces los snapshots eran un medio de tomar una foto al equipo en un momento dado, para revertir pequeños cambios, pero de ninguna manera podían considerarse ya como copias de seguridad.
¿Y por qué este mini salto en el tiempo en referencia a los snapshots de VMware? 



En una charla sobre limpieza de snapshots todavía a estas alturas me indicaban que un snapshot es un backup. Que es lo que hacen las compañías de backup, un snapshot, que copian a su sistema. Y si, eso es lo que hacen, pero...¿y si se corrompe el vmdk original? Solo por poner solo un ejemplo. La respuesta es que el archivo delta del snapshot no te sirve de nada. Se pierde la VM.
Pero la mejor forma de demostrar estas afirmaciones es con hechos y documentación, y a ello vamos:

VMware

Para ello os dejo el siguiente LINK, de las best practices de VMware. Primer punto de las best practices: Do not use VMware snapshots as backups. Se puede decir mas alto, no mas claro. Ya de paso, es bueno seguir el resto de recomendaciones. Si bien originalmente los snapshots se vieron como backups, al ser algo revolucionario en sus origenes, con el tiempo, se consideran solo como solución de seguridad para una marcha atrás rápida. Por ejemplo, un parcheo fallido.

Veeam

En el siguiente articulo de Veeam explican muy bien las razones por las cuales un snapshot no es un backup. Aquí el LINK, y a continuación un breve spoiler: no es un backup principalmente por la razón indicada al comienzo: Sin una copia de todos los archivos originales que componen la VM, una corrupción o perdida de uno de estos hacen que el snapshot sea inútil. La propia Veeam reconoce que hacen uso del sistema de snapshots para sus copias, pero que se trata la copia completa de la VM como una Full, y posibilidad total de restores, mientras que los snapshots se consideran copias incrementales. Adicionalmente, dejan muy claro que cada snapshot es un SPOF en si mismo. Y por supuesto, la frase: It is important to note that the snapshot by itself is not a backup

Veritas

Esta compañía tiene solera en el tema del software de backup. Cuando empresas como Vembu, Veeam o Nakivo ni siquiera existian, ellos ya eran los "Windows" del sector de backups. Al grano, LINK, y paseo al punto 6 de los backups en vSphere. De nuevo, Snapshots are not backups. Luego agregan que, y traduzco, "las instantáneas de máquinas virtuales, si bien son útiles, nunca deben usarse como su medio principal de respaldo. Las instantáneas están bien para copias de seguridad a corto plazo de máquinas virtuales, pero tenga en cuenta que incurrirá en sanciones cada vez que las utilice". Con sanciones entra en una serie de problemas que indica vmware en sus best practices relacionadas con el rendimiento.

Vembu

Ya que les he mencionado, les agrego. LINK. Aunque no dicen explícitamente que los snapshots no son backups, sí dicen que no son una solución completa, sino que son un complemento, y que una copia incemental la consideran un snapshot, no un backup. De hecho, hay una parte de su documento muy correcta: While performing a backup you want your backup to be independent of your Virtual Machine that you are safeguarding.

Como se puede ver, todas las soluciones toman el snapshot como una especie de copia incremental que debe desaparecer en el tiempo, y ninguna lo toma como una solución válida ni segura. Y todas inciden en la copia completa de los archivos de la maquina, a otra ubicación no dependiente del sistema que la sostiene. Lo que viene a ser un backup de toda la vida de los archivos, vaya.

Si te ha gustado el articulo, puedes invitarme a un café  ;)

viernes, 27 de agosto de 2021

Mover múltiples usuarios a una OU

 Aquí dejo un script para poder mover un listado de usuarios, ubicados en cualquier OU, a la OU que se indique. Muy cómodo si tienes usuarios desperdigados por todo el directorio activo con alguna característica identificable, como por ejemplo que estén deshabilitados, o creados en una fecha determinada. 

Se puede hacer una búsqueda previa, y generar un listado con ellos. Posteriormente, con este script movemos dichos usuarios. 

Ahí va:

Y con esto tenemos el movimiento hecho, de todos los usuarios dentro del archivo users.txt.

Peculiaridades:

  • En el archivo de texto  debe ir un UserDN por linea (el ID con el que hacen login).
  • El "Write-Host "Moviendo cuenta... ." $userDN" es un "punto de control" que muestra el usuario que va procesando el script, por pantalla. De esta manera, se puede eliminar, pero asi tienes idea por pantalla de por donde va, sobre todo si el listado lo has organizado por orden alfabetico.
  • Igualmente el  "Write-Host "Movimiento de usuarios completado"" es por dejar el script finalizado mostrando algun tipo de aviso en pantalla. Saber que ha finalizado despues de ejecutar el bucle.

Si te ha resultado útil el articulo, puedes invitarme a un café  ;)

jueves, 22 de julio de 2021

Localizar software instalado en servidores con PowerShell

Vamos as ver cómo localizar software instalado en servidores, o equipos en nuestra red, a partir de PowerShell y el uso de WMI.

Partimos de la premisa que no tenemos una herramienta más potente para estas labores de detección e inventariado como SCCM, que nos permite sacar unos informes más completos que solo el nombre de la aplicación. 

El script es el siguiente:

$list = get-content c:\listadoservidores.txt

foreach($PC in $list){

    $data = Get-WmiObject -ComputerName $PC -Class Win32_Product | sort-object Name |

    Select-Object Name | Where-Object { $_.Name -like "*Zoom*" -or $_.name -like "*McAfee*"}

    if($data){

            Write-Output "$PC tiene $($data.name) instalado" |

            out-file c:\temp\maquinasconsoft.txt -Append
    }
}

Si, es el tercer post con un bucle foreach, lo siento... Pero vamos con la explicación del funcionamiento.

Con el $list = get-content c:\listadoservidores.txt metemos en la variable $list el listado de las máquinas que queremos analizar. Otras opciones válidas serian por ejemplo, $list = 'server1','server2' o bien $list = Get-ADComputer -Filter * lo que nos permitiria directamente meter en la variable realizando la búsqueda de maquinas con filtrado directamente en AD.

Luego, desde el foreach hasta la linea del write-output tenemos la búsqueda en si. Es importante indicar que la búsqueda con el parámetro -like y los ** nos permite buscar un nombre que contenga la palabra indicada, no es necesario que sea el nombre completo. Eso si, si se meten varias aplicaciones a buscar, el script te dice si ha encontrado algo o no, pero ni especifica cual, asi que normalmente del -or hasta el } suelo eliminarlo, dejando un solo término.

Finalmente, el  out-file c:\temp\maquinasconsoft.txt -Append lo que hace es indicar en el fichero de salida "maquinasconsoft.txt" en qué maquinas ha encontrado el software instalado. En estos bucles es importante agregar el -append, porque si no, cada ejecución del bucle machaca el archivo, mostrando finalmente sólo la ultima vuelta. En cambio con -append va incorporando, sin machacar el texto previo.


jueves, 1 de julio de 2021

Workaround para Vulnerabilidad 0Day Microsoft Windows Print Spool CVE-2021-1675

 Se ha encontrado una vulnerabilidad 0 Day calificada como crítica que afecta al servicio print spooler que permitiría ejecución de código remoto y escalada de privilegios sobre los servidores. Los datos sobre la vulnerabilidad podéis encontrarlos AQUI.

 Por suerte, es una vulnerabilidad que solo afecta al servicio de impresión, que no tiene por qué estar funcionando en aquellos servidores que no ejerzan específicamente este rol.


Por eso, la mejor solución hasta que aparezca un parche de urgencia, y después, porque no tiene sentido dejar servicios corriendo sin uso, es parar y deshabilitar el servicio de impresión allí donde no se utilice.

Para eso, podemos basarnos en el script de mi anterior post. Partimos de que tenemos un listado de las máquinas donde no debe por que estar corriendo el servicio. Después, ajustamos el script para que lea ese archivo:

$archivo = get-content c:\ficheromaquinas.txt

foreach ( $equipo in $archivo ) {

write-host $equipo

Get-Service -Name spooler -ComputerName $equipo  | stop-Service

Get-Service -Name spooler -ComputerName $equipo  | Set-Service -Status stopped -startuptype disabled

Mismo procedimiento de siempre... se mete en un bucle lo que necesitamos ejecutar ,que es, primero una parada del servicio con "Get-Service -Name spooler -ComputerName $equipo  | stop-Service", y luego lo deshabilitamos, lanzando practicamente el mismo comando pero deshabilitando, con "Get-Service -Name spooler -ComputerName $equipo  | Set-Service -Status stopped -startuptype disabled". No le sienta bien al servidor todo del tirón.

¡Cuidado con dejar saltos de linea en el archivo del que toma las maquinas! No pasaría nada realmente, mas allá de un error al final, o allí donde dejemos el salto de línea.

martes, 29 de junio de 2021

Tratar el contenido de un archivo en Bucle con PowerShell

 A veces es muy útil realizar acciones a partir de algún archivo de datos... Por ejemplo, buscar alguna característica de un listado de equipos o usuarios que te pasan en algún excel, o similar. Bueno, vamos a ver cómo leer un archivo en PowerShell para luego utilizarlo en un bucle. La función es simple, pero lo importante es entender el proceso. 

El script es el siguiente:

$archivo = get-content c:\ficheromaquinas.txt

foreach ( $equipo in $archivo ) {

write-host $equipo

Get-Service -Name spooler -ComputerName $equipo  | Set-Service -Status Running

 La primera línea, $archivo = get-content c:\ficheromaquinas.txt lo que hace es meter en una variable con el nombre "archivo" todo el contenido que hay en el documento "ficheromaquinas.txt" Powershell permite tratar esa variable, que se pasa a llamar $archivo como un único objeto.

El segundo fragmento:

foreach ( $equipo in $archivo ) {....} 

Lo que hace es decir que para cada nuevo elemento que se encuentra en archivo, al que pasaremos a llamar "equipo" haga lo que metamos dentro de las llaves.

Dentro de las llaves hemos metido un script muy simple, 

Get-Service -Name spooler -ComputerName $equipo  | Set-Service -Status Running

Que lo que hace es que mire el servicio spooler (la cola de impresión, vaya) de cada equipo, que metimos en la variable $equipo, y lo arranque, canalizando el comando con el "|" y le pase la orden  Set-Service -Status Running, para arrancarlo.

Igual que podemos obtener ese servicio, podemos hacer lo mismo con, por ejemplo un apache, Oracle Service, RDP...lo que sea, y sólo de las máquinas que tenemos en el archivo. Pero lo importante es el hecho de meter el contenido del archivo en una variable, para a partir de ahí, con un "foreach", pedirle que haga una acción.

miércoles, 16 de junio de 2021

Libro de PowerShell en español

 PowerShell lleva con nosotros desde Windows XP, prácticamente, y poco a poco se ha ido convirtiendo en una herramienta esencial para el entorno Windows, hasta el punto de ser prácticamente esencial en las nuevas versiones de sus productos, puesto que sin esta herramienta, no podríamos realizar tareas básicas que ya no son accesibles mediante GUI. 

Formándome e informándome sobre PowerShell, dí con un libro de Xavier Genestós sobre esta herramienta, en su web, sysadmit.com

Es un libro "peculiar", podríamos decir. Si has visto otros libros sobre esta materia, habrás observado el desarrollo de los mismo hacia el apartado del scripting, orientándolos sobre todo como si de una formación de un libro de programación se tratara. No se si conoces los libros de "Microsoft xxx Pocket Consultant", que eran una especie de manual de trabajo de lo que tratara el libro, de la editorial de Microsoft. Este libro es la versión condensada de esos libros. Tomas lo básico, lo más interesante, y lo plasma en sus páginas. Lo que vendría a ser un "chuletario" de manejo de Powershell, pero en un libro tamaño cuaderno grande, de 200 páginas, indizado. De tener una pega, es que pasa muy de puntillas por la parte del desarrollo de scripts, donde para eso, sí se puede quedar corto. Pero también es cierto que va más focalizado a que entiendas la gramática de PowerShell, para que te busques la vida por internet adaptando los miles de scripts que hay por la web.

Una foto de ejemplo del contenido del libro, que sirve mejor que el índice para hacerse una idea de a qué me refiero con "datos condensados" y de máxima utilidad. Igualmente te encuentras otros comandos de usu muy resumidos para distintas tareas como conexion via ssh con powershell, comprobación de puertos, psremote en reemplazo de psexec de las pstools, etc...

Puedes consultar AQUI el más información del libro en la web de su autor para tener una idea más clara de su contenido.

El libro puedes adquirirlo a través de este ENLACE.


lunes, 31 de mayo de 2021

Cómo comprobar puertos en Windows

 Parafraseando a Pablo Neruda, con el libro de "20 poemas de amor y una canción desesperada", veremos varias maneras de comprobar puertos en Windows con, bueno, no 20 herramientas, pero sí tres, y un Powershell que más que desesperado, es muy socorrido. ¡Vamos allá!

Imagen de Gerd Altmann en Pixabay 

Vamos a utilizar un entorno de 2 maquinas, una "atacante", y otra con IP 192.168.96.128 para las diversas pruebas. Desde la maquina atacante comprobaremos el clásico puerto 80, y el 443, por ejemplo:

Chequeo de puertos con NMAP.

Esto es para comenzar fuerte. Nmap es una herramienta que viene por defecto en Linux, y es realmente potente para muchas funciones. Solo explicar Nmap no es que dé para un artículo aparte, es que da para un libro, sólo para exprimir sus posibilidades. Pero vamos a ver la funcionalidad en Windows.

Porque, sí, es posible instalarlo en Windows, donde además aplica un entorno gráfico que simplifica más cosas. En Windows se llama Zenmap, y lo puedes descargar desde AQUI.

Una vez instalado, lanzamos una consulta simple a los puertos que nos interesa con un nmap -sV -p 80,21,443, 192.168.96.128 (-sV es para comprobar los servicios que usan los puertos que queremos comprobar, y -p especifica los puertos. Realmente Nmap está pensado para rangos muy amplios de redes, no para este tipo de comprobaciones), y obtendremos esto:

Prácticamente de forma automática nos muestra el estado del puerto, y el servicio que lo utiliza.


TCPING

TCPing es una pequeña utilidad que se ejecuta por línea de comandos, y lo que hace es un ping al puerto que le indiques. La utilidad la puedes encontrar AQUI, basta con dejarla en el sitio habitual donde ejecutes este tipo de aplicaciones, y se invoca con "tcping ip puerto. Por ejemplo, 

tcping 192.168.96.128 443

Simple, y cómoda. Lástima que no venga integrada en el sistema.


Telnet

¡El viejo Telnet! Antes venia instalada en Windows, ahora debes buscarla como característica de sistema, por el nombre de Telnet Client. 

Lanzar telnet es tan simple como, en una ventana de comandos, escribir "telnet ip-destino puerto". 

telnet 192.168.96.128 443

Por Si probamos la conexión y esta se ve bloqueada, saldrá el siguiente aviso:

En cambio, si el puerto está abierto, haciendo por ejemplo telnet a 3389, conectará rápidamente, mostrando solamente el prompt:


Powershell

¿Para qué instalar herramientas, si ya tenemos PowerShell? Una herramienta que tenemos disponible sin instalar nada desde Windows Server 2008, pero para sistemas más antiguos, podíamos instalar, incluso en Windows XP.

Para probar un puerto en powershell, la nomenclatura será la siguiente:

Test-netconnection -computername nombremaquina -port 3389

Por ejemplo, Test-NetConnection -computername 192.168.96.128 -port 3389:

Y tenemos los resultados.

Espero os sirva de ayuda a la hora de delimitar problemas de conectividad.


jueves, 27 de mayo de 2021

Nueva vulnerabilidad crítica en VMware, CVE-2021-21985, CVE-2021-21986

 El 26 de Mayo el CCN-Cert ha publicado una nueva vulnerabilidad en el entorno de VMware. Esta vulnerabilidad afecta a los vCenter Server de la version 6.5 a la 7, y a vSAN. La información facilitada sobre la vulnerabilidad es la siguiente:


vulnerabilidad que se sirve de un error de validación de entrada en el complemento Virtual SAN (vSAN), habilitado de forma predeterminada en vCenter Server. Este error permite ejecutar código de forma remota con privilegios ilimitados en el sistema operativo que aloja vCenter Server aprovechando el acceso de red al puerto 443, ya que éste se encuentra expuesto a Internet.

El NIST no tiene todavía una clasificación de la gravedad de la vulnerabilidad, aunque VMware la ha clasificado como crítica. Por suerte, no se han reportado casos del aprovechamiento de las mismas, ni pruebas de concepto, ni exploits específicos. Adicionalmente, VMware ya ha publicado parches para corregirla. Son los siguientes:


Adicionalmente, se ha publicado una serie de instrucciones para deshabilitar los complementos vulnerables a dicha vulnerabilidad, AQUI. Pero claro, esto elimina la posibilidad de utilización de los mismos, y con ello la perdida de gran parte de la capacidad de administración y Monitorizacion de vCenter, ya que los plugins son los siguientes:



Referencias: 
https://www.ccn-cert.cni.es/seguridad-al-dia/avisos-ccn-cert/11024-vulnerabilidad-en-vmware.html
https://www.vmware.com/security/advisories/VMSA-2021-0010.html

viernes, 7 de mayo de 2021

Deshabilitar TOE (TCP-IP Offload Engine) en Windows server 2016 - 2019

 Aunque en esta misma web hice hace tiempo un artículo para deshabilitar el TOE, estaba más orientado a servidores Windows Server 2008 a 2012, sobre todo, ya que algunos parámetros cambian en versiones más modernas de Windows Server.

El antiguo artículo lo puedes consultar AQUI, pero para servidores nuevos, vamos a repasar las instrucciones, que cambian un poco, ya que por hay mas cosas a deshabilitar.

No cambia el tener que deshabilitar el TCP-Offload por el sistema operativo, y por la tarjeta de red, de manera que vamos por partes.

Tarjeta de red:

Para ello, vamos a las propiedades e la tarjeta de red, y pulsamos en Configurar:


Ahora, en la pestaña "Opciones avanzadas" deshabilitaremos las siguientes opciones:

IPv4 Checksum Offload

IPv4 TSO Offload

Large Send Offload V2 (ipv4)

Large Send Offload V2 (ipv6)

Offload IP Options

Offload taggered traffic

Offload TCP Options

Receive Side Scalling

Recv Segment Coalescing (IPv4)

Recv Segment Coalescing (IPv6)

TCP Checksum Offload (IPv4)

TCP Checksum Offload (IPv6)

UCP Checksum Offload (IPv4) 

UDP Checksum Offload (IPv6)   

Agregaría capturas, ¡pero son unas cuantas! Así que solo pondré una, indicativa para localizar las opciones


Sistema operativo

esta parte es mas simple. La configuración inicial se ve con el comando netsh int tcp show global, y se muestra así:

Deberemos modificarla con los siguientes comandos:


Los indico a continuación, para facilitar un poco la tarea:


netsh int tcp set global chimney=Disabled

netsh int tcp set global autotuninglevel=Disabled

netsh int tcp set global ecncapability=Disabled

netsh int ip set global taskoffload=disabled

netsh int tcp set global timestamps=Disabled

netsh int tcp set global rsc= disabled

netsh int tcp set global rss=disabled

Tras ello, si volvemos a ejecutar el comando netsh int tcp show global, quedará así:


Es necesario dar un reinicio al equipo, al finalizar, para que aplique bien los cambios. 

martes, 27 de abril de 2021

Tunea Chrome

Hay navegadores y navegadores, pero las estadísticas son claras: Google Chrome es el navegador más utilizado (que no necesariamente el mejor).

La cosa es que cuando antes Chrome era un navegador increíblemente ligero y rápido, hoy, no lo es tanto, Solo hay que abrir la ventana de procesos y ver la cantidad de RAM que este programa toma, por cada pestaña abierta.

Aqui van una serie de trucos para solventar o al menos amortiguar este consumo:


Extensiones para administrar pestañas y reducir el consumo de recursos

No hace mucho les hablamos sobre una forma de optimizar el consumo de recursos en Firefox mediante algunas extensiones, que si bien hay muchas que prometen, otras son realmente funcionales, y hoy tenemos dos extensiones que te ayudarán a administrar las pestañas que abres en Google Chrome y a suspenderlas cuando no las estés usando.

TooManyTabs es una extensión que permite visualizar y organizar las pestañas en una sola vista, por aquello de que al abrir muchas pestañas en Chrome se pierde el icono de las páginas y su respectivo nombre, algo que no ayuda mucho en ocasiones al navegar. Además, esta increíble extensión te permite archivar sitios web que no estés usando para que puedas abrirlos luego y así el navegador no reserve más memoria de la necesaria.

Si no te gusta perder el tiempo haciendo manualmente las cosas, puedes combinar la extensión anterior con The Great Suspender, una extensión que automatiza la suspensión de tablas por un tiempo que puedes definir desde sus configuraciones, con la opción de evitar las pestañas fijas y la que tienes abierta, para no perder información importante. Cuando vuelvas a una de las pestañas suspendidas, la página se recargará automáticamente, si así lo deseas. Lamentablemente, esta extensión ha sido removida de Google al agregar distribución de Malware. En su lugar, dejo enlace con 3 alternativas distintas que hacen la misma función.



Chrome Flags para mejorar el rendimiento y la navegación
El apartado de Chrome Flags muestra características que se incluyen en Chrome, algunas activadas y otras no, pero que pueden activarse manualmente, aunque Google no considere activarlas por defecto en el navegador porque actualmente están en desarrollo. Cabe mencionar que activarlas puede provocar inestabilidad, pero las siguientes características fueron probadas para comprobar su funcionamiento.

El problema más grave de Google Chrome es que intenta cargar por completo las páginas antes de mostrarlas, pero el rendimiento no es el mejor, eso es seguro. Cuando esto pasa, el desplazamiento en páginas web con imágenes o animaciones GIF tiene algunos retrasos, al igual que la animación, mientras que en otros navegadores suele ser más suave. Para solucionarlo, basta con activar la característica #enable-gpu-rasterization.

Cerrar las pestañas puede volverse un caos cuando sobrepasasas el límite del ancho de la ventana, aunque para eso existe una opción que permitirá cerrarlas con mayor rapidez al permitir que JavaScript se ejecute de manera independiente de la interfaz gráfica, la cual puedes activar haciendo clic en #enable-fast-unload.

¿Tienes problemas al cargar las páginas muy seguido? La característica #enable-offline-load-stale-cache te permite activar una opción para abrir una versión de la página guardada en caché, si es que existe.

Otra característica es #enable-offline-auto-reload-visible-only, que luego de permanecer sin conexión y volver a conectarse, recarga automáticamente la página visible, mientras que la opción #enable-offline-auto-reload permite que todas las pestañas se recarguen automáticamente, aunque se recomienda deshabilitar ésta última.

Por otro lado, si quieres que las descargas que se cancelaron cuando por accidente cerraste el navegador se reanuden de manera automática, puedes activar la característica #enable-download-resumption.

Si no te gusta que sitios web como PayPal eviten que sea llenada la caja de contraseña automáticamente, la opción #ignore-autocomplete-off-autofill desactivará por completo la solicitud, para que puedas ingresar rápidamente a tus sitios web, aunque debes considerar el riesgo que puede traer consigo desactivarla.

Cuando escribes en Internet Explorer y te equivocas, el navegador te corrige por sí sólo. Esta opción también está disponible en Chrome, activando la característica #spellcheck-autocorrect.

Quizá pienses que guardar una página web es algo tedioso y desorganizado, porque guarda varios archivos dentro de una carpeta y un fichero HTML fuera de ella. Pues bien, la característica #save-page-as-mhtml te permitirá guardar una página web en un sólo archivo con formato MHTML, que también podrás abrir en Google Chrome.


Dejamos lo mejor para el final
Probablemente sepas que existe un repositorio de comandos de Chromium que podemos usar en Google Chrome, en el cual podemos destacar a uno que permite juntar las pestañas del mismo sitio en un sólo proceso, para reducir el consumo de recursos. Es decir, si tienes abiertas varias pestañas de un mismo sitio web, en lugar de que cada una signifique un proceso, el sitio web se convertirá en un sólo proceso. Cabe mencionar que es el único comando funcional de su tipo.

Para implementarlo, basta con hacer clic derecho en el icono de Chrome e ir a sus Propiedades. Yo lo hice desde un acceso directo ubicado en la barra de tareas, aunque funciona para todos.

Una vez allí, ubicamos el apartado Destino y nos vamos hasta el final de la ubicación, justo después de las comillas. Pasamos un espacio y escribimos el comando --process-per-site.

Prueba todas estas características y notarás un cambio en la navegación y una reducción en el uso de memoria, más aún cuando tengas muchas pestañas abiertas.

viernes, 9 de abril de 2021

Listar directorios virtuales de IIS

 Un directorio virtual es un directorio que se ha publicado en IIS y que apunta a una carpeta o dirección de red. Como si fuera un DFS, pero el acceso se hace con http://. No tiene por qué estar la ubicación a la que apunta, por tanto, en el servidor que aloja el servicio en IIS, sino que la carpeta publicada puede estar en cualquier otra ruta. Además, el nombre no tiene por qué ser el mismo de la carpeta. Esto da una serie de posibilidades para acceder a distintas ubicaciones, muy interesantes.


El problema viene cuando tu listado de directorios virtuales es muy extenso, cosa que es facil que ocurra en cuanto ves el juego que puede dar. Por la interfaz grafica de IIS, podemos ver el listado de directorios sin problema, pero no permite hacer una exportación del mismo.

Para ello, deberemos utilizar la aplicación "appcmd.exe", que se encuentra en

%systemroot%\system32\inetsrv\

El comando para sacar el listado de sitios es 

%systemroot%\system32\inetsrv\APPCMD list vdirs /app.name:"TudirectorioaExportar/" 

Al comando le agregamos una ruta de exportación, porque básicamente, te saca los tatos en pantalla, y con eso ya lo tenemos.

La aplicación appcmd.exe es una herramienta muy potente para la gestión de IIS. Puedes obtener más info de ella y de sus posibilidades en este LINK.


martes, 30 de marzo de 2021

Correlacionar vml ID con naa ID en ESXi 5.5 en adelante

 Supongamos que tenemos una VM con un disco RDM, y que por ejemplo, necesitamos ampliar disco. No es posible realizar la ampliacion directamente como con cualquier disco estandar, al ser directamente un disco anexado a la maquina. Ma modificacion vendria desde el tamaño del disco en el datastore. 

 

Cuando editamos la configuración de la vm, no solo expandiendo el disco, como en la imagen superior, obtenemos más datos. El dato que nos interesa el el "Physical LUN". En este caso, tenemos:

Physical LUN

vml.02000b00006006016026a03e0074a3abc6885ae811565241494420

Lo que necesitamos es traducir el numero mostrado al valor que normalmente presenta la cabina, en nuestro caso los identificamos más fácilmente por el numero de LUN o bien por el identificador "naa".

Para ello, vamos a "traducir" el numero que vemos, de la siguiente manera:


vml. 02 00 0b 0000 6006016026a03e0074a3abc6885ae811 565241494420
AAAA BB CC DD EEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF GGGGGGGGGGGG

donde:

A - representa el espacio de nombre de ID externo.

B – representa el tipo de uuid del dispositivo:

  • 0x0 - para mpx.vmhbax:Cx:Tx:Lx format
  • 0x1 - para serial number format
  • 0x2 - para naa format
  • 0x3 - para SYMM format

C - representa el tipo de dispositivo:

  • 0x00 - DISK
  • 0x01 - TAPE
  • 0x02 - PRINTER
  • 0x03 - PROCESSOR /* HP scanners use this */
  • 0x04 - WORM /* Treated as ROM by our system */
  • 0x05 - ROM 0x05
  • 0x06 - SCANNER
  • 0x07 - MOD /* Magneto-optical disk - * - treated as TYPE_DISK */
  • 0x08 - MEDIUM_CHANGER
  • 0x09 - COMM /* Communications device */
  • 0x0c - RAID
  • 0x0d - ENCLOSURE 0x0d /* Enclosure Services Device */
  • 0x0e - RBC 0x0e
  • 0x7f - NO_LUN

D – representa el LUN number (32 bits in normal device from SAN. Está en hexadecimal)

E – reservado para uso en el futuro

F - representa el LUN identifier (32 digit naa number in hexadecimal format)

G - Un hash único de otros datos sobre la LUN (En versiones anteriores a 5.5 incluye el numero de LUN)



En el servidor, los identificadores vienen como naa, no vml:


Así que de nuevo, con el numero de ejemplo,

vml.      02    00   0b    0000    6006016026a03e0074a3abc6885ae811          565241494420
AAAA  BB  CC  DD  EEEE  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF  GGGGGGGGGGGG

tenemos un vml naa disco 11 0000 6006016026a03e0074a3abc6885ae811 

LUN 11 por lo indicado anteriormente, los valores estan en hexadecimal, convertido da 11:


donde 6006016026a03e0074a3abc6885ae811, en la lun 11, tiene estos datos:

Con estos datos, ya es fácil localizar en la LUN el disco a ampliar, y que vereis que el dato concuerda con l oque se muestra en el datastore.

Como recursos, teneis un conversor a hexadecimal AQUI, y un artículo relacionado de VMware AQUI.

¡Espero que os sea de utilidad!