viernes, 10 de noviembre de 2017

Cuidado con los Administradores de Active Directory que pueden comprometer toda la organización

He estado investigando un poco sobre Active Directory y haciendo algunas pruebas y sin duda, todo depende de la conciencia del Administrador de Sistemas. Disponer de un Windows Server con Active Directory puede ser algo muy sensible si el administrador no sigue una serie de medidas. Me he limitado únicamente a pensar en cómo puede actuar un Administrador de Active Directory y si no se tiene cuidado, las consecuencias pueden ser bastante grandes.


Toda esta investigación se debe a una noticia que leí hace relativamente poco y en la que se hablaba del fallo de seguridad en LexNet, el "Active Directory" de los abogados españoles. Este fallo consistía en que cualquier abogado podía acceder a todos los casos de todos los abogados de toda España. LexNet se impuso por el Gobierno y no por el Poder Judicial, en enero de 2016-este es un punto que critican muchos abogados afectados-.


Así que en esta entrada voy a tratar de comentar una forma sencilla de comprometer toda una organización mediante una suma de pequeñas debilidades. Es una forma que cualquiera de los que sigáis el blog podéis entender e incluso podréis aplicar a vuestros laboratorios o tratar de investigar en auditorias que tengáis.


Como he dicho, he estado investigando sobre algunas formas sencillas de comprometer un AD y por tanto, me he creado mi laboratorio y he añadido una máquina Windows Server 2008 R2 con AD y, por supuesto, el servicio DNS. También he implementado otros servicios como DHCP, pero que para esta entrada no es relevante.

Si quieres aplicar y "llevarte" a tu casa este laboratorio, pero estás empezando y no sabes bien cómo montar un Active Directory, no te preocupes, en unos días escribiré una entrada en el que os añadiré un manual que os estoy redactando para que si lo seguís, no tengáis problema en montar un Windows Server desde 0; lo único que os pido es un poco de tiempo porque es bastante laborioso y tengo muy poco tiempo libre.

De vuelta a la investigación, por supuesto, lo primero es tirar de un Nmap para descubrir ordenadores dentro de la red y ver qué puertos tienen o no abiertos. En la captura anterior ya se puede apreciar que el equipo que he creado yo en una máquina virtual con IP estática 192.168.1.2, tiene muchos puertos abiertos. Ya os adelanto que ese equipo es el servidor.


Una vez que nuestro Nmap termine de trabajar, veremos como, efectivamente, el equipo con IP 192.168.1.2, es nuestro servidor. Esto lo sabemos por su FQDN, el cual muestra claramente que pertenece a un Dominio. No obstante, cuando ya nos deja la evidencia más clara de que es el Active Directory, es cuando descubrimos que tiene el puerto 389 abierto, puerto utilizado por LDAP al utilizar TCP, además en la versión, vemos que nos reporta que es un AD, por lo que ya hemos descubierto a la víctima.





El siguiente paso será el delicado, ya que tendremos que generar un payload y que posteriormente tendremos que ocultar para que ningún IDS y ningún anti-malware lo detecte. Al estar en un entorno de pruebas, lo dejaré así sin ocultar, pero no tendrá éxito alguno a menos que nos encontremos en Servidores sin AntiMalware. Hay de todo en la viña de Gauss.


Tendremos que tratar de conseguir que el administrador se descargue el archivo, el cual puede ir bindeado en un PDF de un informe que le haya pasado "el jefe"-por supuesto podríamos hacernos pasar por el jefe utilizando la ingeniería social- o utilizar cualquier otra técnica para lograr que nuestro payload esté dentro del sistema. Una vez dentro, solamente tendremos que esperar a que lo ejecute.



Tras hacer click, el Administrador ya está perdido, pues nosotros ya estaremos dentro del sistema como podemos comprobar, pero ¿Qué podemos hacer?


Una cosa bastante curiosa y que desconocía por completo, es la facilidad de ser SYSTEM en un Windows Server, ya que aquí no hace falta con hacer un Bypass de UAC; no, basta con pedir ser SYSTEM y te deja ser SYSTEM. Esto se debe a que estamos en el equipo del Administrador del dominio, de ahí su sencillez.


Pero ¿Qué es un AD sin usuarios? Exacto, nada. Lógicamente, una organización tiene que tener usuarios e incluso en la empresa más pequeña pueden tener perfectamente 50 usuarios, pero son 50 usuarios que se han tenido que crear, y que por supuesto no va a ir de equipo en equipo creando los usuarios 1 a 1, no; lo normal es que se cree un script donde al ejecutarlo, cree todos los usuarios. Si conseguimos acceso a ese script, tendremos acceso a cada usuarios, ya que sabremos su usuarios, el dominio al que pertenece y su contraseña.


Si nos descargamos el script veremos que tenemos el nombre de cada usuarios y su contraseña. Yo he creado 100 usuarios, sé que ese script es una bestialidad y que sería más sencillo con un for, pero la verdad es que he programado más scripts en Linux que en Windows y como no me veía cómodo ni seguro, lo hice de la forma bruta. No obstante, seguimos disponiendo de las credenciales de todos los usuarios. Aquí la cosa se empieza a poner interesante.



Ahora solamente tendremos que utilizar una máquina virtual, decirle a qué dominio nos queremos conectar e introducir las credenciales de un usuario cualquiera y ya tendremos nuestro escritorio, dentro de uno de los usuarios del dominio manuad.com. Aquí ya podremos hacer cosas más interesantes, ya que nos hemos colado en la red de una determinada organización, pero no es hasta ahora, que podemos comprometer de verdad, ya no sólo al administrador, sino a cualquier usuario del dominio. En este caso, simplemente voy a crear un script que abra la calculadora, es algo inofensivo, pero si abre la calculadora, es decir, si ejecuta ese comando, podría ejecutar cualquier otro, ya sea un format o abrir mediante un bucle while un determinado programa, ocasionado el apagado del equipo. Ese script le decimos que se arranque conforme se arranca el sistema y ya hemos molestado bastante a la gente dentro de ese dominio. Pero en mi caso, era lanzar la insignificante calculadora de Windows.



A continuación, crearemos una carpeta que compartiremos con todos los usuarios de la red, ya que somos "Muy g3n3r0s0s". Podríamos complicarlo más y hacer que conforme lo abra un usuario, se propague por SMB y acabe en todos los equipos al estilo WannaCry, lo que pasa es que en este caso sería WannaCalculate.


Si hace doble click el administrador, simplemente estará a golpe de ratón, el poder comprometer su seguridad y la de todos los usuarios de la organización. Y como sabemos, todos los usuarios se leen todo lo que aparece en cada nueva ventana en lugar de pulsar Siguiente o Ejecutar sin más.


Y como podemos observar, se ejecuta la calculadora, algo inofensivo, pero que podría haber sido perfectamente un format o abrir en un while infinito un programa. Nos damos cuenta de que no son grandes fallos de seguridad, sino pequeñas debilidades que, sumadas, pueden ocasionar graves fallos en la seguridad.

¿Hackeamos el Mundo?

P.D: Estoy investigando sobre otro punto en Active Directory que espero que os pueda contar pronto, pero no he podido dejarlo preparado para antes. Muy pronto veréis más sobre Hacking sobre AD.


No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...