: )

Joined December 2020
Charon retweeted
Exodus Wallet Stealer snapshot -> copy of the wallet process's memory entropy = 16 random bytes generated when the wallet was created find ideal candidates to identify entropy, each random 16-byte block read from memory and filtered according to certain rules such as not ASCII and high byte diversity become a candidate entropy ( 88k candidates in my case and 0 false positive at the end of each test ) for each candidate -> sha256(entropy) and take the first 4 bits as a checksum and append them to the end of the candidate (128 entropy + 4 checksum) 132 bits are divided into 12 11-bit indices, each representing a word from the BIP39 wordlist ( 2048 words ) seed derivation -> PBKDF2-HMAC-SHA512, password = the 12 words just rebuilt, salt "mnemonic", 2048 iterations -> 64-byte binary seed derivation of master keys for each candidate ( BIP32 and SLIP10 master keys ) how? two HMAC-SHA512 over the same seed, keys "Bitcoin seed" and "ed25519 seed" -> BIP32 + SLIP10 candidate masters comparison of the master keys derived from each candidate with those in memory ( they exist in memory for fundamental operations that the wallet must perform ) if the master keys match = the candidate is the true entropy and the seed phrase reconstructed from it is the correct seed phrase In addition to this, I would like to point out that there is another implemented technique which, while perhaps more elegant, is also less effective. This technique searches for a seed phrase left in plaintext within the process memory; however, for this to occur, the victim would need to visit the backup section of Exodus and view the seed phrase at least once, an action that does not take place during the day-to-day use of the wallet. #maldev #malware
2
3
129
Exodus Wallet Stealer snapshot -> copy of the wallet process's memory entropy = 16 random bytes generated when the wallet was created find ideal candidates to identify entropy, each random 16-byte block read from memory and filtered according to certain rules such as not ASCII and high byte diversity become a candidate entropy ( 88k candidates in my case and 0 false positive at the end of each test ) for each candidate -> sha256(entropy) and take the first 4 bits as a checksum and append them to the end of the candidate (128 entropy + 4 checksum) 132 bits are divided into 12 11-bit indices, each representing a word from the BIP39 wordlist ( 2048 words ) seed derivation -> PBKDF2-HMAC-SHA512, password = the 12 words just rebuilt, salt "mnemonic", 2048 iterations -> 64-byte binary seed derivation of master keys for each candidate ( BIP32 and SLIP10 master keys ) how? two HMAC-SHA512 over the same seed, keys "Bitcoin seed" and "ed25519 seed" -> BIP32 + SLIP10 candidate masters comparison of the master keys derived from each candidate with those in memory ( they exist in memory for fundamental operations that the wallet must perform ) if the master keys match = the candidate is the true entropy and the seed phrase reconstructed from it is the correct seed phrase In addition to this, I would like to point out that there is another implemented technique which, while perhaps more elegant, is also less effective. This technique searches for a seed phrase left in plaintext within the process memory; however, for this to occur, the victim would need to visit the backup section of Exodus and view the seed phrase at least once, an action that does not take place during the day-to-day use of the wallet. #maldev #malware
2
3
129
Cookie values encrypted with a per-process key that never touches disk? Just ask Chrome to decrypt them for you. I've just published my Cookie Chrome Stealer, go check it out and let me know :) github.com/norahc-x/Margaret… #shellcode #maldev #redteam #infosec
8
345