Hackear contraseñas ocultas con Smbexec

Hackear contraseñas ocultas con Smbexec

Escribimos regularmente sobre cómo los piratas informáticos a menudo recurren a la explotación métodos de hacking sin código maliciosopara evitar la detección. son literalmente "sobrevivir en el pasto", utilizando herramientas estándar de Windows, evitando así antivirus y otras utilidades para detectar actividad maliciosa. Nosotros, como defensores, ahora nos vemos obligados a lidiar con las desafortunadas consecuencias de técnicas de piratería tan inteligentes: un empleado bien ubicado puede utilizar el mismo enfoque para robar datos de manera encubierta (propiedad intelectual de la empresa, números de tarjetas de crédito). Y si no se apresura, sino que trabaja despacio y en silencio, será extremadamente difícil, pero aún es posible si utiliza el enfoque correcto y la estrategia adecuada. Instrumentos, — para identificar dicha actividad.

Por otro lado, no quisiera demonizar a los empleados porque nadie quiere trabajar en un entorno empresarial sacado directamente de 1984 de Orwell. Afortunadamente, existen una serie de pasos prácticos y trucos que pueden hacer la vida mucho más difícil para los iniciados. consideraremos métodos de ataque encubiertos, utilizado por piratas informáticos por empleados con cierta formación técnica. Y un poco más adelante discutiremos opciones para reducir tales riesgos: estudiaremos opciones tanto técnicas como organizativas.

¿Qué pasa con PsExec?

Edward Snowden, con razón o sin ella, se ha convertido en sinónimo de robo de información privilegiada. Por cierto, no olvides echarle un vistazo esta nota sobre otros insiders que también merecen algo de fama. Un punto importante que vale la pena enfatizar sobre los métodos que utilizó Snowden es que, hasta donde sabemos, no lo instalé ¡Sin software malicioso externo!

En cambio, Snowden utilizó un poco de ingeniería social y utilizó su puesto como administrador de sistemas para recopilar contraseñas y crear credenciales. Nada complicado - ninguno mimikatz, ataques Hombre en el medio o metasploit.

Los empleados de las organizaciones no siempre se encuentran en la posición única de Snowden, pero hay una serie de lecciones que aprender del concepto de "supervivencia alimentándose" que deben tener en cuenta: no participar en ninguna actividad maliciosa que pueda ser detectada y ser especialmente Cuidado con el uso de credenciales. Recuerda este pensamiento.

Psexec y su primo crackmapexec han impresionado a innumerables pentesters, hackers y blogueros de ciberseguridad. Y cuando se combina con mimikatz, psexec permite a los atacantes moverse dentro de una red sin necesidad de conocer la contraseña en texto claro.

Mimikatz intercepta el hash NTLM del proceso LSASS y luego pasa el token o las credenciales, el llamado. ataque "pasar el hash" – en psexec, permitir que un atacante inicie sesión en otro servidor como otro usuario. Y con cada movimiento posterior a un nuevo servidor, el atacante recopila credenciales adicionales, ampliando el alcance de sus capacidades para buscar contenido disponible.

Cuando comencé a trabajar con psexec me pareció mágico - gracias Marcos Russinovich, el brillante desarrollador de psexec, pero también conozco su ruidoso componentes. ¡Él nunca es reservado!

El primer hecho interesante sobre psexec es que utiliza herramientas extremadamente complejas. Protocolo de archivos de red SMB de Microsoft. Usando SMB, psexec transfiere pequeñas binario archivos al sistema de destino, colocándolos en la carpeta C:Windows.

A continuación, psexec crea un servicio de Windows utilizando el binario copiado y lo ejecuta con el nombre extremadamente "inesperado" PSEXECSVC. Al mismo tiempo, puedes ver todo esto, como lo hice yo, observando una máquina remota (ver más abajo).

Hackear contraseñas ocultas con Smbexec

Tarjeta de visita de Psexec: servicio "PSEXECSVC". Ejecuta un archivo binario que se colocó a través de SMB en la carpeta C:Windows.

Como paso final, se abre el archivo binario copiado. conexión RPC al servidor de destino y luego acepta comandos de control (a través del shell cmd de Windows de forma predeterminada), ejecutándolos y redirigiendo la entrada y salida a la máquina doméstica del atacante. En este caso, el atacante ve la línea de comando básica, igual que si estuviera conectado directamente.

¡Muchos componentes y un proceso muy ruidoso!

Los complejos aspectos internos de psexec explican el mensaje que me desconcertó durante mis primeras pruebas hace varios años: "Iniciando PSEXECSVC..." seguido de una pausa antes de que aparezca el símbolo del sistema.

Hackear contraseñas ocultas con Smbexec

Psexec de Impacket en realidad muestra lo que sucede debajo del capó.

No es sorprendente: psexec hizo una gran cantidad de trabajo bajo el capó. Si estás interesado en una explicación más detallada, consulta aquí. por que maravillosa descripción.

Obviamente, cuando se utiliza como herramienta de administración del sistema, que era propósito original psexec, no hay nada de malo en el "zumbido" de todos estos mecanismos de Windows. Para un atacante, sin embargo, psexec crearía complicaciones, y para un insider cauteloso y astuto como Snowden, psexec o una utilidad similar sería un riesgo demasiado grande.

Y luego viene Smbexec

SMB es una forma inteligente y secreta de transferir archivos entre servidores, y los piratas informáticos se han infiltrado directamente en SMB durante siglos. Creo que ya todo el mundo sabe que no merece la pena. abrir Puertos SMB 445 y 139 a Internet, ¿verdad?

En Defcon 2013, Eric Millman (brav0hax) presentado smbexec, para que los pentesters puedan probar el hackeo sigiloso de PYMES. No conozco toda la historia, pero Impacket perfeccionó aún más smbexec. De hecho, para mis pruebas, descargué los scripts de Impacket en Python desde Github.

A diferencia de psexec, smbexec evita transferir un archivo binario potencialmente detectado a la máquina de destino. En cambio, la empresa de servicios públicos vive enteramente del pasto hasta el lanzamiento. local Línea de comando de Windows.

Esto es lo que hace: pasa un comando desde la máquina atacante a través de SMB a un archivo de entrada especial, y luego crea y ejecuta una línea de comando compleja (como un servicio de Windows) que resultará familiar a los usuarios de Linux. En resumen: inicia un cmd shell nativo de Windows, redirige la salida a otro archivo y luego lo envía a través de SMB a la máquina del atacante.

La mejor manera de entender esto es mirar la línea de comando, a la que pude acceder desde el registro de eventos (ver más abajo).

Hackear contraseñas ocultas con Smbexec

¿No es esta la mejor manera de redirigir E/S? Por cierto, la creación del servicio tiene el ID de evento 7045.

Al igual que psexec, también crea un servicio que hace todo el trabajo, pero el servicio posterior remoto – ¡Se usa solo una vez para ejecutar el comando y luego desaparece! Un oficial de seguridad de la información que monitoree la máquina de una víctima no podrá detectar obvio Indicadores de ataque: no se está iniciando ningún archivo malicioso, no se está instalando ningún servicio persistente y no hay evidencia de que se esté utilizando RPC, ya que SMB es el único medio de transferencia de datos. ¡Brillante!

Por parte del atacante, está disponible un "pseudoshell" con retrasos entre el envío del comando y la recepción de la respuesta. Pero esto es suficiente para que un atacante, ya sea un hacker interno o externo que ya tiene un punto de apoyo, comience a buscar contenido interesante.

Hackear contraseñas ocultas con Smbexec

Para enviar datos desde la máquina objetivo a la máquina del atacante, se utiliza smbclient. Si, es la misma Samba. Utilita, pero Impacket solo lo convierte a un script de Python. De hecho, smbclient le permite alojar de forma encubierta transferencias FTP a través de SMB.

Demos un paso atrás y pensemos en lo que esto puede hacer por el empleado. En mi escenario ficticio, digamos que un blogger, un analista financiero o un consultor de seguridad bien pagado puede usar una computadora portátil personal para trabajar. Como resultado de algún proceso mágico, ella se ofende con la empresa y "se pone toda mal". Dependiendo del sistema operativo de la computadora portátil, utiliza la versión Python de Impact o la versión Windows de smbexec o smbclient como un archivo .exe.

Al igual que Snowden, descubre la contraseña de otro usuario mirando por encima del hombro o tiene suerte y se topa con un archivo de texto con la contraseña. Y con la ayuda de estas credenciales, comienza a explorar el sistema para alcanzar un nuevo nivel de privilegios.

Hackear DCC: no necesitamos ningún Mimikatz "estúpido"

En mis publicaciones anteriores sobre pentesting, usé mimikatz muy a menudo. Esta es una gran herramienta para interceptar credenciales: hashes NTLM e incluso contraseñas de texto sin cifrar ocultas dentro de las computadoras portátiles, esperando ser utilizadas.
Los tiempos han cambiado. Las herramientas de monitoreo han mejorado en la detección y bloqueo de mimikatz. Los administradores de seguridad de la información ahora también tienen más opciones para reducir los riesgos asociados con los ataques de paso de hash (PtH).
Entonces, ¿qué debería hacer un empleado inteligente para recopilar credenciales adicionales sin utilizar mimikatz?

El kit de Impacket incluye una utilidad llamada volcado de secretos, que recupera las credenciales de la caché de credenciales de dominio, o DCC para abreviar. Tengo entendido que si un usuario de dominio inicia sesión en el servidor pero el controlador de dominio no está disponible, DCC permite que el servidor autentique al usuario. De todos modos, secretsdump te permite volcar todos estos hashes si están disponibles.

Los hashes DCC son no hashes NTML y no se puede utilizar para el ataque de PtH.

Bueno, puedes intentar hackearlos para obtener la contraseña original. Sin embargo, Microsoft se ha vuelto más inteligente con DCC y los hash DCC se han vuelto extremadamente difíciles de descifrar. Sí tengo hashcat, "el adivinador de contraseñas más rápido del mundo", pero requiere una GPU para funcionar de manera efectiva.

En lugar de ello, intentemos pensar como Snowden. Un empleado puede realizar ingeniería social cara a cara y posiblemente descubrir información sobre la persona cuya contraseña quiere descifrar. Por ejemplo, averigüe si la cuenta en línea de la persona ha sido pirateada alguna vez y examine su contraseña en texto plano en busca de pistas.

Y este es el escenario que decidí seguir. Supongamos que un informante se enteró de que su jefa, Cruella, había sido pirateada varias veces en diferentes recursos web. Después de analizar varias de estas contraseñas, se da cuenta de que Cruella prefiere usar el formato del nombre del equipo de béisbol "Yankees" seguido del año en curso: "Yankees2015".

Si ahora estás intentando reproducir esto en casa, puedes descargar una pequeña "C" código, que implementa el algoritmo hash DCC y lo compila. John the ripper, por cierto, se agregó soporte para DCC, por lo que también se puede usar. Supongamos que un insider no quiere molestarse en aprender John the Ripper y le gusta ejecutar "gcc" en código C heredado.

Fingiendo el papel de alguien con información privilegiada, probé varias combinaciones diferentes y finalmente pude descubrir que la contraseña de Cruella era "Yankees2019" (ver más abajo). ¡Misión cumplida!

Hackear contraseñas ocultas con Smbexec

Un poco de ingeniería social, un poco de adivinación y una pizca de Maltego y estarás en el camino correcto para descifrar el hachís DCC.

Sugiero que terminemos aquí. Volveremos a este tema en otras publicaciones y veremos métodos de ataque aún más lentos y sigilosos, continuando aprovechando el excelente conjunto de utilidades de Impacket.

Fuente: habr.com

Añadir un comentario