Foro de elhacker.net

Seguridad Informática => Criptografía => Mensaje iniciado por: AlbertoBSD en 31 Agosto 2016, 15:42 pm



Título: I lost my OPENBSD FDE Password
Publicado por: AlbertoBSD en 31 Agosto 2016, 15:42 pm
Demostracion de como recuperan el block key material para descifrar el Disco Duro


Código
  1. func main() {  
  2.    scmKey := decode(scmKey)
  3.    salt := decode(salt)
  4.  
  5.    maskkey := pbkdf2.Key([]byte("password"), salt, rounds, 32, sha1.New)
  6.  
  7.    // AES-ECB-256_decrypt(k=maskkey, scm_key) = scr_key
  8.    a, err := aes.NewCipher(maskkey)
  9.    if err != nil {
  10.        log.Fatal(err)
  11.    }
  12.    for i := 0; i < len(scmKey); i += a.BlockSize() {
  13.        a.Decrypt(scmKey[i:i+a.BlockSize()], scmKey[i:i+a.BlockSize()])
  14.    }
  15.  
  16.    // HMAC-SHA1(k=maskkey, scm_key) == sch_mac
  17.    h := sha1.Sum(maskkey)
  18.    mac := hmac.New(sha1.New, h[:])
  19.    mac.Write(scmKey)
  20.    expectedMAC := mac.Sum(nil)
  21.  
  22.    fmt.Print(hex.Dump(expectedMAC))
  23. }

El link con la lectura completa en Ingles:

https://blog.filippo.io/so-i-lost-my-openbsd-fde-password/