Shadow copy, pequeña herramienta para la lucha contra el gran mal

Shadow Copy, la ayuda oculta eternamente desconocida

Muy buenas a todos, mil perdones por la tardanza, pero el tema del curro es lo que tiene, que le limita a uno la vida ¡qué le vamos a hacer!

A lo que vamos, es obvio que todos los que me vais a leer sabéis perfectamente lo que ha pasado con “Wannacry” y todo ese rollo mesiánico que parecía que se iba a acabar el mundo y tal y cual. Veo que seguimos por aquí ¿no? A ver, que levante la manita aquel que haya tenido que formatear algún equipito esta semana…

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Perfecto, yo aunque tengo algún conocimiento de malware, no soy experto en ello ni mucho menos, de modo que ni intentaré hablar sobre este tema, aparte de que creo que sería llover sobre mojado. Lo que sí puedo hacer y a ello voy es comentar el uso de una herramienta que tiene Windows que puede ayudarnos a mitigar su incidencia, en esa, nuestra amada red llena de usuarios malignos que nos odian y nos quieren estropear el día. Os voy a hablar de Shadow Copy.

¿Qué es eso? Este servicio, que Windows tiene activado por defecto desde Windows XP, es el servicio responsable de crear copias de seguridad periódicas de nuestro equipo, con objeto de poder realizar una restauración del sistema o de algún archivo en concreto, es lo que normalmente conocemos como “punto de restauración del sistema” (VSS).

Este servicio crea copias ocultas (shadow copy) de cada uno de los bloques que recibe una variación y/o cambio de estado en la partición NTFS del disco duro. En principio realiza las copias de seguridad ocultas cada vez que ocurre una variación en el sistema como, por poner un ejemplo, una modificación de cualquier archivo, por ejemplo un .docx o en el caso de la instalación y/o actualización de un programa. Se puede decir que la frecuencia de realización de estas copias sucede, al menos, con la periodicidad de las actualizaciones del sistema en Windows, para que os hagáis una idea acerca de su actividad (que es mayor de la que parece), aunque también este punto es configurable.

Si hacemos caso de lo que nos indica Microsoft:

“Applies To: Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista

Backing up and restoring critical business data can be very complex due to the following issues:

The data usually needs to be backed up while the applications that produce the data are still running. This means that some of the data files might be open or they might be in an inconsistent state.

If the data set is large, it can be difficult to back up all of it at one time.

Correctly performing backup and restore operations requires close coordination between the backup applications, the line-of-business applications that are being backed up, and the storage management hardware and software. The Volume Shadow Copy Service (VSS), which was introduced in Windows Server® 2003, facilitates the conversation between these components to allow them to work better together. When all the components support VSS, you can use them to back up your application data without taking the applications offline.

VSS coordinates the actions that are required to create a consistent shadow copy (also known as a snapshot or a point-in-time copy) of the data that is to be backed up. The shadow copy can be used as-is, or it can be used in scenarios such as the following:

You want to back up application data and system state information, including archiving data to another hard disk drive, to tape, or to other removable media.

You are data mining.

You are performing disk-to-disk backups.

Y esta es la opción que me interesa mostrar ahora…

You need a fast recovery from data loss by restoring data to the original LUN or to an entirely new LUN that replaces an original LUN that failed.”

Ya estamos entrando en calor ¿no? Muy bien, ahora vamos con la siguiente duda que a todo buen sysadmin que se precie le vendrá inmediatamente a la cabeza: “Esto esta genial, pero ¿cuánto espacio ocupa esto en mi disco duro? Porque voy un poco escaso ya…”

La utilización del disco duro suele variar de un sistema operativo a otro, por usar un ejemplo, en windows vista (¿alguien se acuerda de Windows vista?) se reservaba entre el 15% de la capacidad y un máximo del 30% del espacio libre en el disco duro (incluso en algunos casos no había o hay mejor dicho límite alguno), sin embargo en Windows 7/8 este tamaño es de aproximadamente 5%. Esto por supuesto, también depende de la actividad (cambios) que se detecten en el disco duro del Sistema, asimismo es de justicia remarcar que desde windows 7, se nos permite modificar de forma muy sencilla el espacio en disco duro que ocupará el servicio de VSS. Seguro que ya respiramos ahora más tranquilos, que ya nos vamos conociendo.

¿Queréis aprender cómo trabajar con esta herramienta? Al lio…

Usaremos para ello el comando “vssadmin” desde un cmd o una powershell, ejecutando cualquiera de ellas, eso sí, como administrador, usaré una cmd en honor a @fpalenzuela que es un  nostálgico y le mola el rollo retro 😉

Ejemplo 1:

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Aquí se muestran algunos ejemplos de su uso, no parece muy difícil ¿verdad?

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Esta es la lista de proveedores de instantáneas de volumen.

Ahora listaremos las copias:

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

 

Podemos ver la lista de copias, fecha en que se realizaron, nombre del equuipo, podemos borrar para liberar espacio, podemos listar los volúmenes válidos para las instantáneas…

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Tenemos un montón de opciones con las que jugar, eso sí, usando la sensatez y la cordura. Cuidado con lo que se hace ¿vale? Pensad antes de actuar, consejo de amigo.

Dicho esto, os voy a dar una explicación más de esta herramienta que es lo que más de uno desea averiguar, como trabajar con el espacio asignado a esta magnífica herramienta. Hay interfaces gráficas para ello, pero a nosotros no nos gustan ¿verdad que no?

Se usa el siguiente comando:

“vssadmin List ShadowStorage” para ver cuánto espacio está asignado actualmente y a que volumen:

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Se auto explica ¿verdad? Vemos es espacio asignado, el espacio usado y el espacio máximo de almacenamiento. ¿Podemos modificarlo? ¡Claro que sí!

Mirad, es muy sencillo…

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Ahora lo comprobamos a ver si los cambios se han guardado, ¿os acordáis cómo? ¡Si! Muy bien con “vssadmin list shadowstorage”:

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

¡Aquí se aprecia modificado!

Como podéis ver, no es muy difícil, es bastante sencillo de hecho, incluso se puede inhabilitar si queréis vivir en el riesgo. Podemos configurar incluso donde se guardan las copias, un montonazo de parámetros y opciones que os animo a investigar…

Pero bueno, ya me he vuelto a ir por las nubes, volvamos a lo nuestro, como podemos usar esta herramienta para un caso de emergencia:

Usaremos MKLINK para crear un enlace simbólico a un volumen VSC:

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Ejemplo de uso:

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

La ruta C:\Users\Diego\Desktop\monta es donde se montará y \\\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\ es el volumen que quiero “montar”.

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Esta es la carpeta, hacemos doble click en ella y ya estamos dentro y podemos movernos por todo ese sistema de archivos, hemos “viajado en el tiempo”.

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

¡Y ya podemos trabajar! No tiene más misterio esto.

¿Queréis más? ¿Queréis una interfaz gráfica que es más molona? Sin problemas, usad esta VSC TOOLSET

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Más fácil ya no puede ser ¿verdad que no?

¡Pues sí! Para recuperar archivos puntuales, ese Word modificado y que no te gusta cómo queda después y lo quieres dejar como estaba antes, mira click derecho sobre el archivo => Propiedades => Versiones anteriores y una vez allí, eliges la que quieres y la restauras, así de sencillo.

https://aprendizdesysadmin.com/ shadow-copy-pequena-herramienta-para-la-lucha-contra-el-gran-mal

Bueno, con esta “pequeña” introducción creo que tenéis ya una más buena base para explorar y ampliar, solo me resta añadir unos puntos que considero también debéis tener en cuenta:

  1. El malware se puede esconder ahí en el sistema, lejos del control rutinario del Administrador del Sistema, ha pasado ya antes y sigue pasando, mucho cuidado con ese tema, lo Antivirus no tienen acceso a esos almacenamientos.
  2. Un insider malicioso ,un pentester o un Analista Forense  conocedor de tu trabajo podría encontrar ahí información de archivo borrados por el Administrador del Sistema o los malos, no lo olvidéis, yo lo he usado en alguna ocasión y he encontrado cosas MUY jugosas. Ahí lo dejo
  3. Desde ahí, se puede acceder a zonas protegidas del ordenador que en la máquina en vivo no podemos acceder (SAM, SISTEM…etc). Mucho cuidado tanto en el bastionado del equipo en sí como en la custodia de esos volúmenes VSC, que están guardados en otro lugar que no sea el propio equipo por aquello de la seguridad. A ver si quien no puede acceder a nuestro equipo tiene acceso al disco donde se guardan esos discos, me ha tocado en algún análisis forense y muchas veces no se tiene en cuenta. Por favor no lo olvidéis.
  4. Debéis tener en cuenta que los malos malotes también saben que esta funcionalidad existe, por tanto el ransonware o malware que se precie de estar medianamente “bien diseñado”, se lanzará a por ello de cabeza, tanto para impedir recuperar la información ahí guardada y extorsionar más a gusto, como para robar información dejando menos huellas que si accede a un archivo “normal” del sistema. ¿Vale?

Y con esto creo que por hoy ya podemos descansar. Podéis usar esta poderosa herramienta en su contexto, NO ES una herramienta de backup y no debe plantearse como tal, pero en muchas ocasiones (bien usada eso sí) os salvará el pellejo.

Un fuerte abrazo y hasta la próxima

Guía Hardening – Configuración de redes y Firewall – Uncomplicated Firewall (ufw)

En la anterior parte de la guía vimos como utilizar iptables, y lo versátil que puede ser, pero también puede ser algo complicado en un principio, por eso queremos dar por terminada esta parte de firewall con una introducción a Uncomplicated Firewall, UFW  para los amigos 😉

UFW es la opción más sencilla de controlar nuestro firewall si no queremos complicarnos mucho, o todavía estamos algo verdes.

Debemos tener en cuenta que por defecto UFW esta deshabilitado, por lo cual, debemos habilitarlo para poder trabajar con el:

# ufw enable

A partir de este momento ya se encuentra totalmente operativo y para comprobarlo puedes utilizar:

# ufw status verbose

O para que nos muestre una lista de las reglas numeradas:

# ufw status numbered

UFW cuenta con 4 reglas por defecto que podemos aplicar dos reglas para permitir o bloquear las conexiones entrantes y 2 para permitir o bloquear todas las conexiones salientes, cuidado con esto, nos podemos quedar incomunicados con nuestro servidor si estamos en remoto.

# ufw default deny incoming
# ufw default allow incoming
# ufw default allow outgoing
# ufw default deny outgoing
Bloquear o permitir puertos también se convierte en una tarea sencilla:

# ufw allow 80
# ufw deny 80

Si conocemos la dirección IP del atacante o de algún usuario podemos bloquear o permitir esa dirección IP:

# ufw deny from 158.50.78.25 to any port 80
# ufw allow from 158.50.78.25 to any port 80

También podemos bloquear o permitir rangos:

# ufw deny from 159.61.93.0/24 to any port 80
# ufw allow from 159.61.93.0/24 to any port 80

Y si necesitas bloquear o permitir UDP o TCP también podemos hacerlo muy sencillamente:

# ufw deny 161/udp 
# ufw allow port 53 
# ufw allow 143/tcp

Y el mas fácil todavía, permitir y bloquear por nombre se servicio:

# ufw allow ssh
# ufw deny ssh

Si necesitamos eliminar alguna regla, podemos hacerlo por su numeración:

# ufw delete 1

Como se puede ver, el uso de UFW es super sencillo, pero si todavía queremos algo más fácil tenemos la opción de utilizarlo con su interfaz gráfica:

# apt-get install gufw

 

PowerShell >_ Pipe (que no es lo mismo que pipa)

Hola de nuevo aprendices, tal y como dice el título, hoy hablaremos un poco de los Pipe ( | ). Por si alguien no se acuerda, los pipe ya los teníamos en los cmd de siempre… quien no ha escrito nunca un dir | more en su cmd, que levante la mano  🙂

Con los pipe en powershell podremos pasar los resultados de un comando a otro, pero como soy de los que piensan que se aprende caminando, veamos unos ejemplos y además aprenderemos algunas cosillas más.

Al ataque…..

Arrancamos nuestro PS y escribimos ls -Recurse | more … pero tenemos ls en powershell …. pues no… os acordáis en el post anterior comentamos el tema de los alias… si queréis saber que cmdlet ejecuta el alias ls ejecutad Get-Alias ls.

Como podéis ver, el resultado del ls -Recurse se lo hemos pasado a more para que lo muestre la información de forma paginada.

Perfecto peroooo…. no acabo de verlo claro….

Bueno no pasa nada vamos a ver otros ejemplos,  veamos el cmdlet get-process que nos sirve para ver los procesos, y supongamos que queremos que el resultado se nos muestre ordenado por nombre de proceso…. 

Por si no os habéis dado cuenta, el alias sort pertenece al cmdlet Sort-Object y si miráis la ayuda veréis que lo que estamos haciendo es ordenar el objeto (resultado) por la propiedad ProcessName, OJO, estamos interactuando con objetos, no con texto y esto nos da una flexibilidad que con un cmd no tenemos… ALEGRÍA

Veamos otro ejemplo, pero aquí vamos a introducir alguna cosilla más… veamos…

1..5 significa que estamos definiendo un rango desde el 1 al 5. El cmdlet foreach nos permite realizar una operación para cada elemento de una colección, en nuestro ejemplo la colección es del 1 al 5, y la operación que realizaremos es ( Write-Host ) escribir el valor de la colección, un guión y hola, tal y como se puede ver en el resultado. Aquí os comento una cosita, foreach tiene un alias que es el % con lo que si en lugar de escribir foreach escribimos % el resultado será el mismo, aquí os lo demuestro:

Veamos otro ejemplo, volvemos con Get-Process:

Get-Process | Where-Object {$_.Name -match “iexpl”}

Esta vez hemos realizado un filtrado el objeto resultante del cmdlet get-process cuya Propiedad.ProcessName es “iexpl”.

Como véis, y aunque no lo parezca hoy hemos visto varias cosas de powershell, desde el PIPE – objetivo de este post – , pasando por cmdlets como get-process, ls, sort, write-host y como “matchear” resultados, así como definir un rango de datos númericos de forma sencilla.

Espero que os haya gustado, como siempre si tenéis alguna duda o consulta los comentarios del post estan abiertos…. y no mordemos 😀

 

 

Empezando con PowerShell >_

Hola a todos:

Para empezar, no os voy a soltar el rollo de que es Powershell, un cmdlet, etc. Ya hay mucha información en internet y con una búsqueda en duckduckgo, Google o bing encontraréis dicha información de forma más que sencilla, ya sabéis que intentamos no repetir trabajo, sobre todo cuando es un tema más que documentado. Lo que vam os a intentar es que aprendamos con ejemplos que nos puedan servir para aprender practicando, al principio evidentemente serán sencillos, pero poco a poco los iremos complicando y dándoles uso dentro del mundo de sistemas, redes, virtualización, forensics, pentesting, etc. Espero que todos incluyendo nosotros aprendamos juntos, con esto os animo a que nos dejéis comentarios, preguntas, que nos cuestionéis, en definitiva, que interactuéis con nosotros.

Advertencia

Puede ser que algunos cmdlets no os funcionen, son cosas del powershell, dependiendo de la versión de PS que tengamos puede haber cmdlets que no estén o que tengan otros parámetros. “Revisad vuestros sistemas y necesidades”. A partir de aqui ….

 

¿Empezamos?

Abrimos Powershell ISE,

 

Una vez hemos arrancado el Powershell ISE, en la sección inferior lo primero que quiero saber es que versión de PowerShell estoy utilizando, para ello usaremos el cmdlet psversion o Get-Psversion.

 

Depende de la versión de PS que tengamos el cmdlet anterior no os funcionará, pero podéis utilizar el siguiente: $PSVersionTable.PSVersion

Ahora, vamos a ver si hay definido algún alias,  a lo mejor me ahorro escribir un poco…. veamos el comando Get-Alias, me bastará ejecutarlo directamente o necesito parámetros… uhmmm veamos la ayuda sobre dicho cmdlet Get-Help Get-Alias -online y veremos la información online del cmdlet Get-Alias, que chulo ¿no?.

 

También podemos pedir la ayuda de forma local con Get-Help Get-Alias,  antes de ejecutarlo, conviene que actualicemos la ayuda en local con un powerhsell en modo administrador y con el cmdlet Update-Help.

Ejecutamos Get-Help Get-Alias.

Bueno, ya sabemos como buscar ayuda de los cmdlets, volvamos a lo que queríamos antes, saber los alias definidos. Get-Alias

Vaya, hay un montón de alias definidos, podemos ver el alias y el cmdlet de PS que ejecuta, os recomiendo que los miréis con tranquilidad, por ejemplo el alias cp ejecuta realmente Copy-Item, o el Alias cls que ejecuta el cmdlet Clear-Host. El tema de los alias nos permite personalizar los nuestros propios y “personalizar” nuestra shell, recordad que Get-Help cmdlet nos mostrará la ayuda del cmdlet del que necesitemos ayuda.

Veamos otro alias, por ejemplo el alias cat.

Y si le añadimos el parámetro -Tail, veremos el final del archivo.

Bueno, hemos empezado por lo más básico, hemos aprendido como arrancar powershell, hemos ejecutado algunos cmdlets y hemos aprendido a buscar la ayuda sobre los cmdlets que necesitemos, tambien hemos visto un poquito de los alias.

Espero que no os hayais aburrido mucho, la cosa irá mejorando pero tened en cuenta que nuestra intención es aprender progresivamente, vosotros y nosotros.

!! Hasta la próxima aprendices de sysadmin…. !!!

Reset del password de root en CentOS

Sin usar ninguna herramienta extra…

¡Muy buenas amigos/as!

Gracias por vuestra paciencia, en este sencillo post os voy a mostrar un pequeño “hack” (aunque tengo mis reparos a llamarlo así) o truco para resetear ese password de root que hemos perdido, que nos han cambiado o como me pasó a mi hace un tiempo, que un resentido sysadmin cambió ,antes de que lo despidieran de la empresa . Posteriormente no le dió la gana revelar a quien le sucedió en el puesto esa clave (acción un poco estúpida en mi opinión ya que el compañero que entró después no tenía la culpa de nada, pero bueno, allá cada cual…).

Obviamente hay muchas mas opciones, escribo sobre esta en concreto ya que me da pie para incidir en otro punto importante de nuestras amadas máquinas: el acceso físico a ellas y la más que escasa seguridad que hay en muchos centros de trabajo, que nos sirvan también estas palabras para concienciarnos de que la seguridad del software está muy bien, pero no hacemos nada si esas medidas de hardening no van acompañadas de un sistema de seguridad física correcto. Ahí lo dejo.

Al lío…

No tenemos ese password y debemos entrar al sistema y empezar a realizar nuestras funciones, ¿qué hacemos?

Arrancamos o reiniciamos la máquina y al llegar a este punto…

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.05.32.png

Presionamos la tecla “e”…

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.06.32.png

Y pasamos a buscar la línea de inicio del kernel (una pista, comienza por  linux16 vmlinuz-3.10.0-514, como el kernel, ya sabes ) … 😉

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.09.06.png

Una vez hallada la línea de inicio, se busca la palabra “ro” se substituye por “rw init=/sysroot/bin/sh”. Quedando algo asi…

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.15.28.png

Una vez modificado, cerramos el editor con “control +x” para arrancar en modo de usuario único.

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.18.44.png

Saldría algo como esto, ahora en el prompt escribimos  “chroot /sysroot” y después le cambiamos el password a root, así tal cual, ¿qué te parece?

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.22.22.png

Ahora actualizamos los parámetros de selinux con “touch /.autorelabel

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.23.43.png

Y reiniciamos, el primer reinicio le cuesta un poquito mas ya que tiene que actualizar los parámetros, no pasa nada, esperas un poco…

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.26.24.png

Se reiniciará una vez mas, no pasa nada es normal, cuando arranque ya será un arranque normal…

Nos logueamos con la nueva password y…

Macintosh SSD:Users:DiegoADMIN:Desktop:Captura de pantalla 2017-04-20 a las 14.29.18.png

Ahí lo tienes password cambiado y lo único que se ha perdido es la autoestima del individuo maligno que la cambió a mala leche.

Aquí abajo os pongo un vídeo que realizado para ayudar a facilitar su comprensión.

Espero que os sea útil o al menos espero que os lo hayáis pasado tan bien leyendo como yo escribiéndolo.

¡Hasta la próxima!