lunes, 30 de abril de 2018

Fiesta Pagana y cómo conocí la cuenta bancaria de vuestra madre [PARTE II]

Tras la primera parte de este artículo donde explicaba, al fin y al cabo la base teórica de las redes informáticas, pasaré a esta segunda y última parte. He tenido dudas sobre cómo subir estas entradas, pues quería implementar una herramienta que estoy desarrollando y que se está quedando bastante bien, pero, como sabéis, cuando investigas algo surgen problemas de debajo de las piedras y lo he tenido que aplazar, aunque espero que a finales de esta semana podáis tener, al menos una entrada, donde os explique el proyecto.


El caso es que quería investigar en mis ratos libres de prácticas en la Universidad, en vulnerabilidades en software. Como en la Universidad no trabaja ni el tato, tenía mucho tiempo para investigar en lo que yo quisiese, así que al principio me pillé software de edición de audio que usa mi pareja para ver si le encontraba vulnerabilidades, pero como no tenía todo el hardware necesario, dejé esa idea apartada por un momento.

Así que, no me preguntéis muy bien por qué, decidí investigar en software de contabilidad. Me parecía una idea interesante y que podría estar bastante bien para aprender y contar por el blog. Así pues, busqué por Internet y di con que uno de los más usados es Senior Conta. Me lo instalé en una VM de Windows 7 y me puse a analizarlo.


Nada más arrancar el programa ya te daba el primer "bug" en la cara. Es gracioso que digan que "Por seguridad" te activan el mismo usuario en todas las máquinas con este software, que se llama SUPERVISOR, que no tiene password y que tiene todos los privilegios. La primera en la frente.

Imaginad que consigo acceso remoto a una máquina con este software instalado, ya me sé la cuenta con la que entrar. Empezamos bien.


Después analicé los procesos que abría y con un netstat -naob que envié a un txt, pude ver que abría el puerto 137. Aquí el segundo problema.


El puerto 137 es el netbios de Windows, es decir, el que da nombre a los equipos de la red. Basta con que esa cuenta de máquina o no tenga password o tenga una sencilla de crackear con un entorno de ataque de fuerza bruta y tienes, como muestro en la foto, acceso a todas las carpetas compartidas de esa máquina.


Para probar cómo funcionaba el software, decidí hacer pruebas agregando una "nueva empresa" al software. Tenía que introducir algunos datos y listo. Ya tenía mi prueba, ya sólo me faltaba saber dónde se guardaba, porque, recuerdo, ya teníamos acceso a través de la red a las carpetas compartidas de la máquina.


Lo mejor es que te puedes ir al manual de Senior Conta y en ese mismo manual te dice dónde se instala el programa, y por tanto, podríamos acceder a las bases de datos del programa si tuviésemos acceso remoto a la máquina donde se ha instalado Senior Conta.


Los puertos abiertos de la máquina también los podías detectar con nmap, pero no sabríamos a qué programa estaría asociado. Anteriormente sí que sabíamos que el proceso de Senior Conte era el causante de que se abriese el puerto 137.


Y claro, el ataque te lo pone en bandeja, de canto como dicen en La Vida Moderna. Creas un payload para Windows con msfvenom y se lo subes a su Escritorio por ejemplo.


Conociendo la contraseña de acceso a la máquina víctima, podríamos subir el payload sin problema y sin miedo a que salte ningún aviso.


Y vemos como el payload está en el Escritorio de la víctima, así de sencillo. Esto depende de los sistemas utilizados, puede estar mejor o peor. Por ejemplo, Hackwise subió un vídeo donde se aprovechó de AirDrop en los dispositivos de Apple para mandar un archivo.



El tema de conocer la contraseña no tiene por qué ser un problema, ya que si tenemos en cuenta que esta situación se suele dar en entornos empresariales donde las máquinas de la empresa suelen tener una contraseña sencilla para que se pueda recordar fácilmente, por lo que un ataque de fuerza bruta sería bastante sencillo.


Después sería lo de siempre, tener un multi/handler a la escucha esperando a que la víctima pulse en el payload-que lo hemos podido camuflar, por ejemplo, en un videoclip, en un pdf, una imagen,etc.


Como cosas curiosas tenemos que si elevamos privilegios para ser system, podemos ejecutar el comando "execute -f calc.exe -s{número de la sesión actual}" para probar si podemos ejecutar código arbitrario en la máquina víctima. En este caso vemos que ejecuta la calculadora, ejemplo típico para demostrar que existe la famosa vulnerabilidad de ejecución de código arbitrario. Al igual que nos permitiría ejecutar el código de la calculadora, podríamos ejecutar cualquier comando que sea más peligroso que la propia calculadora. Decir que para esto no nos hace falta ser System en el equipo.


Ahora vamos a migrar el proceso de lsass.exe para poder extraer las contraseñas de las cuentas existentes en esa máquina.


Y nos sale un listado con los hashes de las contraseñas de las cuentas salvo la cuenta con la que el usuario ha iniciado sesión. En esa cuenta nos da la pista que muchos usuarios ponen cuando están instalando su sistema operativo. Si en lugar de poner una pista, pusiese la contraseña, ya la tendríamos. En este caso la tendríamos igualmente, pero podríamos sacar la passwords de otras cuentas.


Si miramos en el directorio donde se ha instalado este software, veremos una carpeta que nos dice "Ejercicio 2018" donde tenemos varias bases de datos, en una de esas bases de datos, si nos la bajamos a nuestro Kali Linux y la pasamos a una máquina Windos con DBF Manager podremos leer los datos que hemos introducido anteriormente. En este caso porque yo he añadido poca información, pero recordemos que es un software de contabilidad como el que pueden tener en Hacienda o un banco y podríamos acceder a los datos de una cuenta bancaria de cualquier persona. Un gran problema por una cosa tan estúpida como habilitar el puerto 137, algo que se recomienda deshabilitar de toda máquina.

Muchos fallos grandes en grandes empresas vienen por fallos tan tontos y fáciles de detectar como los que he comentado. Basta con un análisis de red y un análisis de los procesos y puertos abiertos de nuestros sistemas y ver qué se podría hacer con cada puerto. Estos problemas se incrementan en entornos donde se manejan información confidencial como lo puede ser información relativa al ejercicio económico de una persona.

¿Hackeamos el Mundo?

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...