it-swarm-es.com

¿Puedo obtener todas las contraseñas de Active Directory en texto sin cifrar mediante cifrado reversible?

EDITAR: ¿Alguien puede realmente responder la pregunta? Gracias, no necesito ningún rastro de auditoría, SABRÉ todas las contraseñas y los usuarios no pueden cambiarlas y continuaré haciéndolo.

¡Esto no es para piratear!

Recientemente, hemos migrado de un antiguo y oxidado dominio Linux/Samba a un Active Directory. Teníamos una pequeña interfaz personalizada para administrar cuentas allí. Siempre almacenaba las contraseñas de todos los usuarios y todas las cuentas de servicio en texto sin cifrar en una ubicación segura (por supuesto, muchos de ustedes ciertamente no pensarán que esto es seguro, pero sin exploits reales nadie podría leer eso) y deshabilitó el cambio de contraseña en el controlador de dominio samba. Además, ningún usuario puede seleccionar sus propias contraseñas, las creamos usando pwgen. No los cambiamos cada 40 días aproximadamente, sino solo cada 2 años para recompensar a los empleados por aprenderlos realmente y NO escribirlos.

Necesitamos las contraseñas para, por ejemplo, acceda a las cuentas de usuario y modifique las configuraciones que son demasiado complicadas para las políticas de grupo o para ayudar a los usuarios.

Sin duda, estas pueden ser políticas controvertidas, pero quiero continuarlas en AD. Ahora guardo las cuentas nuevas y las generadas por PWGEN (pwgen crea palabras aleatorias que suenan agradables con cantidades agradables de vocales, consonantes y números) manualmente en el antiguo archivo de texto que los antiguos scripts solían mantener automáticamente.

¿Cómo puedo recuperar esta funcionalidad en AD?

Veo que existe un "cifrado reversible" en las cuentas de AD, probablemente para los sistemas de autenticación de respuesta de desafío que necesitan la contraseña de texto sin cifrar almacenada en el servidor.

¿Existe un script que muestre todas estas contraseñas? Eso seria genial. (Nuevamente: confío en que mi DC no se verá comprometido).

¿O puedo tener un complemento en usuarios y computadoras de AD que reciba una notificación de cada nueva contraseña y la almacene en un archivo?

En los clientes que es posible con GINA-dlls, pueden recibir notificaciones sobre contraseñas y obtener el texto sin cifrar.

2
Christian

Para responder la pregunta, lea esto: http://blog.teusink.net/2009/08/passwords-stored-using-reversible.html

En la parte inferior del artículo se describe cómo obtener la contraseña reversible almacenada. No lo he probado, así que no sé exactamente cómo hacerlo como se describe, pero debería funcionar.

Aparte de eso, estoy de acuerdo con el resto de la gente que llora lobo ante la sugerencia de usar cifrado reversible. Simplemente no es seguro.

4
Lord HellFire

Me parece que estás brindando apoyo al usuario al iniciar sesión con sus cuentas, ¿conoces sus contraseñas? Como dijiste, esa es una muy mala idea por muchas razones.

Sé que a algunos usuarios de la vieja escuela les suele gustar eso, simplemente se encogen de hombros y te piden que lo arregles de forma remota y te den su contraseña. Pero di que no. Nadie debe conocer su contraseña excepto ellos mismos: principio básico.

La mayoría de las cosas se pueden arreglar desde otro contexto de usuario, el suyo. Aquellos que realmente no pueden, y necesitan terminar con el usuario conectado de forma interactiva, requieren que el usuario lo haga y se quede y observe cómo el personal arregla cosas a través de la cuenta de ese usuario.

De forma remota, hay RDP Shadow, Remote Help y soluciones interactivas similares donde el usuario tiene el control y nadie necesita saber su contraseña para ayudar con algún problema relacionado con el escritorio. Con las políticas de grupo, básicamente no hay necesidad de este comportamiento de todos modos, ya que un administrador puede configurar fácilmente la mayoría de las cosas.

Si otorga acceso a otras personas a las cuentas de usuario de otras personas, también pierde la pista de auditoría y la responsabilidad por las acciones realizadas por los usuarios en el sistema, lo que fácilmente podría salir del grupo de administradores autorizados.

14
Oskar Duveborn

No estaría tan seguro de que mi DC esté seguro. Si fuera un atacante o un probador de lápiz, no iré tras tu DC primero , de todos modos. Voy a buscar sus estaciones de trabajo y servidores. Vector de ataque básico:

  1. Descubrir nombre de usuario/contraseña débil, ya sea dominio o algún servicio (digamos una cuenta en SQL Server) o una vulnerabilidad que puedo explotar y que me permite obtener derechos de administrador (parchear sus sistemas, amigos).
  2. Encuentre el sistema donde esa cuenta tiene derechos de administrador.
  3. Vuelque los secretos de LSA para encontrar el nombre de usuario/contraseña de todas las cuentas de servicio.
  4. Utilice CacheDump para volcar nombres de usuario/contraseñas en caché.
  5. Vea si alguno de ellos tiene derechos de administrador en algún lugar.
  6. Repita del 1 al 5 hasta que obtenga una cuenta de administrador de dominio.
  7. Utilice la cuenta de administrador de dominio para acceder al controlador de dominio.
  8. Volcar SAM del controlador de dominio.
  9. Utilice tablas de Rainbow para descifrar más contraseñas, o fuerza bruta si es necesario fuera de línea.

A menos que sea todo Vista/Windows Server 2008/Windows 7, este es el patrón de ataque básico utilizado por la mayoría de los pentesters. La razón por la que esos 3 sistemas operativos rompen el patrón es porque el ataque de inyección DLL contra LSA Secrets no funciona contra esos sistemas operativos.

Con todo lo dicho, no debe usar el cifrado reversible y debe deshabilitar los hash LM. Quieres hash NTLM. Y no desea almacenar esas contraseñas en texto plano.

10
K. Brian Kelley

Lo que estás haciendo es una muy, muy mala idea. Si no desea que los usuarios tengan que administrar contraseñas, puede invertir en un sistema de tokens de desafío/respuesta para AD que le costará un dinero mínimo.

10
duffbeer703

Para ser honesto, no creo que su razonamiento para querer hacer esto sea válido. Como administrador, obtengo una gran dosis de heebeejeebees al pensar en conocer la contraseña de un usuario. Es su territorio personal y les está pidiendo que depositen un GRAN nivel de confianza en usted. Incluso aparte de eso, si alguna vez hay una fuga de datos confidenciales, estará instantáneamente bajo sospecha, ya que conocería las contraseñas del usuario. La falta de una pista de auditoría verificable es una señal de alerta de seguridad colosal. La regla 1 es "protéjase", y si esto significa tener que aceptar algún inconveniente, que así sea.

Creo que existen soluciones alternativas que lograrán lo que quieres sin tener que ir al extremo de conocer las contraseñas. ¿Ha mirado las preferencias de políticas de grupo? ¿Cuáles son sus habilidades para escribir scripts? El uso de métodos de fuerza bruta normalmente es una clara indicación de que el enfoque estándar no se está utilizando de manera óptima, por lo que creo que sería mucho mejor retroceder y repensar lo que está haciendo.

6
Maximus Minimus

Rendición de cuentas, registro y seguimiento.

Hemos estado luchando con la administración sobre esto durante algunos años. El director ejecutivo y el presidente se negaron a cambiar su contraseña durante años, y todos los encargados de TI que habían ido y venido en más de 7 años conocían sus contraseñas. Incluso si "confía" en todos, es muy inseguro que varias personas que ya no son empleados tengan acceso a cuentas poderosas. Y mucho menos que todos sepan que otros conocen las contraseñas y que sería seguro utilizarlas.

Les predicamos a los usuarios una y otra vez que nunca compartan sus contraseñas, incluso con nosotros, nunca. Este es el comienzo para prevenir el "Social Hacking" ¿Cuántos de sus usuarios le darían su contraseña a alguien que llama y dice que es uno de los nuevos tipos de TI?

Si es absolutamente necesario estar en una cuenta de usuario para hacer algo, les pedimos que inicien sesión y monten en la escopeta, o cambiamos su contraseña. Tan pronto como cambiamos su contraseña, somos responsables de su cuenta y ellos ya no son responsables, hasta que les damos una nueva contraseña, con la cuenta marcada como que el usuario debe cambiar la contraseña en el próximo inicio de sesión. Esto preserva el registro y el seguimiento. Con todo lo malo, ilegal y poco ético que los usuarios pueden hacer en Internet. Si pueden culpar a muchos otros que conocen sus contraseñas, podrían generar muchos problemas.

Ahora estamos trabajando para eliminar todos los inicios de sesión de cuentas compartidas, como los de computadoras compartidas. Si debemos tener una, esa cuenta tiene derechos muy limitados y no tiene acceso a Internet.

Hay una razón por la que las contraseñas son tan importantes. No son solo para proteger sus datos, están ahí para protegerlo a usted ya sus usuarios, etc. No es difícil encontrar o intercambiar ideas con ejemplos. Reproduce las conversaciones en tu cabeza. "Todos sabían mi contraseña, y uno de ellos entró en mi computadora y leyó el correo electrónico de mi amante y le dijo a mi esposa" Hay muchas, muchas consideraciones de privacidad posibles además de la seguridad.

Brian

pD. tratando muy duro de no ser discutidor. Aunque no respondí a la pregunta, hice un editorial en contra de hacer lo que se sugiere. También recomendaría no decir cosas como esta, citar la pregunta: "EDITAR: ¿Alguien puede realmente responder la pregunta? Gracias, no necesito ningún registro de auditoría, SABRÉ todas las contraseñas y los usuarios no pueden cambiarlas y yo continuará haciéndolo. ¡Esto no es para piratear! "

  1. Esto haría que lo destituyeran de su trabajo como administrador del sistema en muchas, muchas empresas.
  2. Una actitud como esta también podría afectar sus futuras oportunidades laborales. Eliminaría de inmediato a cualquiera que solicite un trabajo de administrador de sistemas en nuestra empresa si los busco en Google y descubro que han hecho esta pregunta.
  3. Estoy tratando de imaginar qué tipo de escenario necesitaría y apoyaría esto. Una oficina familiar de 3-4 personas, tal vez. Pude ver que esta actitud prevalece en un escenario religioso, pero incluso entonces nadie es perfecto y puede cometer errores.
  4. Si esto es demasiado argumentativo o peyorativo, no dude en editar o eliminar el p.s.
5
Brian

Creo que las preocupaciones de auditoría, responsabilidad y seguridad general se han abordado adecuadamente, así que intentaré una respuesta diferente :)

Existe un Servicio de notificación de cambio de contraseña que se puede instalar en todos los controladores de dominio que reenviará todos los cambios de contraseña de forma segura a un servicio receptor.

Esto fue diseñado para Identity Integration Server (ahora Identity Lifecycle Manager) como destino, pero debería ser posible escribir su propio destino, o incluso usar MIIS/MILM para recibir la contraseña y reenviarla a través de otro conector a su propio sistema.

4
Froosh

Como otros han cubierto, su política y prácticas son, en el mejor de los casos, poco ortodoxas. El administrador de desbloqueo mencionado anteriormente parece un compromiso decente (sin juego de palabras). Su propósito declarado de conocer sus contraseñas de usuario es brindar soporte dentro de su perfil de usuario de Windows. Multa. Cuando sus usuarios necesiten soporte y necesiten estar en otro lugar, pídales que bloqueen su estación de trabajo. Luego, con Desbloquear administrador puede desbloquear la estación y permanecer en su perfil de usuario.

Pierde la capacidad de caminar hasta cualquier estación de trabajo, pero ya no necesita saber su contraseña. Eso parece un compromiso decente entre seguridad y facilidad de soporte.

2
iPaulo

Tendría que obtener los hashes (ya sea LM o NTLM) y hacer un ataque de diccionario sobre ellos. Cualquiera con una contraseña moderadamente compleja sería casi imposible de descubrir. No habilite el "cifrado reversible"; debe cambiar la forma en que administra las contraseñas.

2
PowerApp101

Desbloquear administrador podría resolver parte de su problema sin necesidad de conocer la contraseña.

2
Joseph

Hay una variedad de formas de hacer esto que he visto que utilizan personas que han penetrado en nuestros servidores. El método más popular es volcar los hashes de contraseña en un archivo usando algo como pwdump4, y luego ejecutar los hashes resultantes a través de una tabla Rainbow. Hay algunos límites de longitud de contraseña que hacen que este enfoque sea mucho más difícil, por lo que nuestras contraseñas administrativas tienen 16 caracteres o más.

Una vez que haya invertido en un buen conjunto de mesas Rainbow (se puede conseguir por un buen dinero en muchos lugares de Internet, y si esta es realmente una línea de negocio para usted, el costo no debería ser un problema). -El proceso de descifrado se puede realizar en menos de 30 minutos para la mayoría de los usuarios.

Hicimos esto una vez para tener una idea de la facilidad con la que adivinamos las contraseñas de nuestros usuarios. Algo así como el 30% de las contraseñas se descifraron dentro de los 5 minutos posteriores al inicio de un ataque de diccionario simple, y cerca del 80% se descifraron a través de la tabla Rainbow autogenerada en menos de un día. Esto fue ... hace 3 años, así que las cosas se han acelerado. Los resultados se presentaron a la alta dirección, que rápidamente aceptó reforzar (está bien, crear) las políticas de contraseña.

2
sysadmin1138

Consigue L0phtcrack y ejecútalo contra el DC. Puede tardar HORAS, pero debería poder obtener la mayoría de las contraseñas.

De hecho, me topé con esto porque estaba buscando lo mismo, pero mis motivos para conocer las contraseñas de los usuarios son bastante diferentes.

Estoy migrando una antigua solución de administrador de red de usar IIS para el alojamiento FTP del cliente, recientemente descubrimos que nuestro IIS ftp había sido forzado brutalmente y alojaba software espía). Las contraseñas de usuario no se documentaron, solo se restablecieron si alguien las olvidó, por lo que me mudaré a otra solución (FileZilla) que no usa AD. Necesito volver a crear todas estas cuentas de AD con las mismas contraseñas (excluidas las cuentas comprometidas) para que la migración sea transparente hasta el final Dado que no hay IIS utilidad de migración para FileZilla, mi única esperanza es descifrar las contraseñas de los usuarios.

Estoy abierto a cualquier sugerencia sobre cómo lograr esto sin descifrar las contraseñas de los usuarios.

1
ITGuy

Microsoft tiene su producto ILM que puede replicar contraseñas, quizás a una tienda LDAP extranjera.

1
James Risto