Al realizar un ‘dump’ de hashes de usuarios en Windows, es muy probable encontrar algo como:
Administrator:500:NO PASSWORD*********************:BA11907555EB9A007913C60E68A392AC:::
Administrator_history_0:500:40D336FD46C2C683982622787A57A44E:02B47C391A43FDEB94C4F02978E70CE3:::
bobama:1111:E2302B9A91361D152C56130078E5BD0C:303FFB9CF918D3AEFA5CAA3E26224237:::
gbush:1114:2A187A88736AC555AE35B8540DA3B0A6:6AF3E51B7C6BC638A5379D3E49F20C69:::
gbush_history_0:1114:D02317BA87EF646FC737F6C0EF02C82F:0E65D0DD29A6719BEA94CA08605BCF10:::
La estructura es así: nombre:grupo:LMhash:NTLMhash
Basicamente, el cifrado de LM es muy malo y si en el hash obtenido se encuentra un hash LM, se deben atacar estos hashes antes de atacar NTLM. ¿Por qué? La respuesta la obtenemos al citar lo descrito en hispasec sobre Mitos y leyendas de claves windows:
“…Uno de los pasos para calcular el hash LM consiste en rellenar de ‘0′ la contraseña hasta llegar a los 14 caracteres (en caso de que sea más corta) y partir el resultado en dos trozos de 7 bytes cada uno (el segundo relleno de esos ‘0′ si es necesario). También convierte a mayúsculas todos los caracteres. Sobre estos dos trozos aplica un algoritmo estándar (DES) para cifrar una cadena arbitraria, conocida y fija (4b47532140232425) y los concatena.”
“…El algoritmo comete una serie de errores imperdonables, incluso para la época en la que fue diseñado. Convertir todo a mayúsculas permite a los programas de fuerza bruta atacar directamente utilizando mayúsculas y reduciendo así el tiempo de cálculo, disminuye considerablemente las combinaciones. Pero lo más grave es que el hecho de partir la contraseña en dos, permite a los programas de fuerza bruta, dividir el trabajo y actuar en paralelo sobre ambos trozos.”
Para los hashes de ejemplo, no es posible atacar LM para el usuario ‘Administrator’, pero si es posible atacarlo para los usuarios ‘bobama’ y ‘gbush’. Por otro lado, el usuario ‘gbush’ tiene guardado el historial de su clave anterior y ya que la clave no es la actual, podría eliminarse de la lista a crackear.
Con mi humilde pc (con GPU), la velocidad de cracking de claves LM es de 22.5M/s y para NTLM es de 56M/s
Resumiendo:
LM Vs. NTLM: First try to crack LM hashes; after it, try to crack NTLM hashes