jueves, 29 de marzo de 2018

Copytesters!

Dicen que en la competencia esta el gusto, claro el gusto de ser mas competitivo cada día.
Últimamente veo en linkedin mucha gente que con una facilidad increíble, se ponen como titulo, "pentester" o "hacker etico" o "consultor experto en seguridad informática" o mas graciosos aun, "risk advisory pentester maximum" (no es broma).
La verdad yo mañana me puedo poner "astronauta de la nasa" y no pasa nada, estos tags como que te los puedes ganar o los puedes inventar, la idea es vender al fin y al cabo, como sea, pero se vende.

El punto es cuando esta competencia se torna desleal y cuando te tomas en forma literal el hecho de "vender por vender", fuera de abaratar los precios con avisos como "somos los mas bajos en el mercado"(como si los conocimientos fueron los mas bajos que tienes en el mercado), en también realizar pentesting, tratando de efectuar una copia exacta, mismos albunes de Panini bambas.

Lo simpático es que esta gente, que entiendo tiene limitantes técnicas (espero que alguna vez hagan al menos una diferencia en sus presentaciones y para eso se "estudia"), no tiene la capacidad de leer e interpretar algo ya incluso elaborado, lógicamente por lo primero en mi párrafo.
Encontrarse con estas copias baratas y luego anunciarse como experto pentesting, en lo personal me causa gracia y mas aun si trabajan en multinacionales, con horarios de oficina, muy peinaditos y listos para vender, donde creen que encontraran "hackers" debajo de cada piedra.

Lo bueno de este blog es que me sirve de catarsis.
Hasta la próxima, espero sea pronto.

Escalando privilegios linux/ nfs

Prometí escribir un poco mas, pero bueno por temas de tiempo, entre el trabajo (pentesting) y la familia como que llega la noche o el pequeño tiempo para descansar, lo trato de aprovechar.

Bueno, hace no mucho realizando un reto en particular, me encontré con una forma poco habitual de escalar privilegios a través de nfs, para entender como fue lo que realice pues me atreví a simular este reto en un VM y validar cual es el parámetro que me permitía realizar este escalamiento de privilegios.

Background:

¿Que es nfs?:
"El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales."
wikipedia

En resumen, da la facilidad de mantener un carpeta compartida, la cual puede ser accedida por distintos sistemas, similar al smb o samba pero focalizado a un propósito.
Para configurar los parametros tenemos la siguiente estructura:
archivo:
/etc/exports
<export> <host1>(<options>) <hostN>(<options>)...

donde para entender lo mejor como funciona hagamos un ejemplo:
/another/exported/directory 192.168.0.3(rw,sync)
Done
/another/exported/directory = al directorio que sera compartido
192.168.0.3 = el host o la red cual esta compartiendo
(rw,sync) = las opciones que tendrá, una sera de ro(read only).

Opción root squash

Entre las opciones ademas de permitir escritura, lectura, existe otras 2 opciones que la acompañan, una es wdelay y la otra es "root_squash, mayores detalles aqui
Que dice esta opción ultima en particular:
Previene que los usuarios en modo root conectado de forma remota pueden conservar sus mismos privilegios y se les asigna un id de usuario para el usuario nfsnobody:
Veamos en forma practica:

Primero identificamos si este protocolo esta activo y cual es la carpeta que se esta compartiendo:


Carpeta compartida y red cual se esta compartiendo

Ahora validemos que parámetros están activos en el servidor remoto, como vemos se permite lectura y escritura.

Montemos sobre es carpeta y creamos un archivo a ver que pasa:
Creamos la carpeta "compartido", montamos y creamos el archivo hola.txt

Nosotros podemos validar que el archivo ha sido creado con permisos de root:root(ya que nuestro usuario es root).
Ahora validemos en el servidor remoto los permisos del archivo creado creada:
permisos de archivo

perfecto no "heredo" los permisos de root, veamos que pasa si quitamos ese parámetro:
Cambio de parámetro

Reiniciamos el servicio en el host remoto y volvamos a compartir:

creación de archivo

Ahora volvemos a validar los permisos, pero desde el usuario sin privilegios:

permisos para root root.


Como vemos, hemos podido crear un archivo remotamente con permisos "heredados"(se que ciertamente no es la palabra técnica, pero ayuda a entender que paso), con usuario "root" y en el grupo "root".
¿Ahora que se les ocurre?