Hashcat / itunes backup help, please
#1
Hi everybody
OK, so I'm not an IT novice at all, but I've never done any of this stuff.  I'm trying to crack, at this stage, an itunes 9.3.1 backup password for my daughter who (when first backup was ever taken at age 11) - swears she didn't create a password (yeah, I know). Hope is that if I can crack the Ver 9 password, it'll still be the same for her version 13 password, most recent backup.

I've read the forum rules and I'm aware of not posting any of my actual stuff on here, so I'll ask my question without doing that...

I have followed the AVIARY guide on youtube and compiled the manifest931.txt file which contains, as far as I can tell (I've checked it several times) the list of stuff needed for Hashcat to have a go at the password, based on a dictionary file.

I won't post the info, of course, but the 1st line of the manifest931,txt file begins $itunes_backup$*9* then followed by all the data i extracted.

I have a dictionary file called attack.txt

I'm on Windows 11 by the way if that matters

when I run 
hashcat -a 0 -m 14700 -o cracked.txt --outfile-format=2 manifest931.txt attack.txt

I get
Hashfile 'manifest931.txt' on line 1 ($itune...X7XX5XX2b3aXXbX73XXcc8f0XX4fXX63**): Token length exception

No hashes loaded.



(I hope I've successfully masked the hashes that were output in that error above, before the last two ** it put loads of numbers etc.)


So:
1. have I posted correctly and not broken any rules?  I hope :-)
2. Am I being dumb?   if so...
3. Why?

Thanks everyone, ANY help appreciated.  My daughter's phone "reset" during an upgrade last year (yeah, don't know what happened, I wasn't there) and she lost all data. Backup is encrypted, she doesn't know password.  Every single photo she's taken, including a few thousand of her cat.  Cat then died two months later., double whammy - no cat, no photos and videos.  I would *love* to solve this for her, it would make her day/week/month/year.

Any help appreciated :-)

T H A N K  Y O U
Reply
#2
Hi

This is a sample hash form https://hashcat.net/wiki/doku.php?id=example_hashes the password is hashcat check if you have the same problem...


$itunes_backup$*9*b8e3f3a970239b22ac199b622293fe4237b9d16e74bad2c3c3568cd1bd3c471615a6c4f867265642*10000*4542263740587424862267232255853830404566**
Reply
#3
not quite sure what the yt tutorial told you, but use john the ripper and its itunes2john script to extract your hash (john and hashcat are 90% compatible), then take a look at your output, john sometimes adds some not needed information at the end of the hash, check with the example hash from above and delete not needed informations

Token length exception tells, that the hash is somehow malformed and therefore not valid for attacking with hashcat

you could post your full hash, just cover some spots with XXXX like example hash, but dont delete the * as these are used for splitting the hash and the different parts have also some restrictions like lenght
EXAMPLE
$itunes_backup$*9*b8e3f3a970239bXXXXc199b622293fe4237b9d16e74bad2c3c3568cd1bd3cXXXX15a6c4f867265642*10000*4542263740587XXXX62267232255853830404566**

with that information i could check the restrictions and tell you which part seems malformed
Reply
#4
Thank you both for your replies, that's very kind.

Please can you or any other helpful people bear with me whilst I ask some more questions and ask for more help.

So..... Despite what I said about checking it several times, I'd obvously got the data selection wrong in the first part: too many characters, so I didn't select the 40 bytes properly. (d'oh). I guess checking your own work isn't a good idea.

So, now - the command runs, and I get an unsuccessful (at finding the password) result. Again, to avoid any rule-breaking, I've XXXXd some bits out here. This is the output:

The wordlist or mask that you are using is too small.
This means that hashcat cannot use the full parallel power of your device(s).
Unless you supply more work, your cracking speed will drop.
For tips on supplying more work, see: https://hashcat.net/faq/morework

Approaching final keyspace - workload adjusted.

Session..........: hashcat
Status...........: Exhausted
Hash.Mode........: 14700 (iTunes backup < 10.0)
Hash.Target......: $itunes_backup$*9*5618d8XXXXdfefdXXXX4042XXXX2f3ae1...42c9**
Time.Started.....: Wed Jun 15 20:25:30 2022 (0 secs)
Time.Estimated...: Wed Jun 15 20:25:30 2022 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (attack.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:    3511 H/s (1.09ms) @ Accel:8 Loops:256 Thr:512 Vec:1
Recovered........: 0/1 (0.00%) Digests
Progress.........: 187/187 (100.00%)
Rejected.........: 0/187 (0.00%)
Restore.Point....: 187/187 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:9984-9999
Candidate.Engine.: Device Generator
Candidates.#1....: XXXX->
Hardware.Mon.#1..: Temp: 41c Fan:  0% Util: 75% Core: 132MHz Mem:3802MHz Bus:16


I've a couple of stupid questions here, sorry.

1. My dictionary file is 187 lines long, that's some possible variations of my daughter's name, the first and only password she has used for itunes itself, my old password, mum's old password etc. BUT - I've already tried all those manually in iTunes, so is the dictionary attack ONLY doing those or is it (somehow?!) doing variations too?  That may be a dumb question.  If it's only doing the 187, then it's only doing what I've done already.

2. Can I get this attack to do variations on those passwords, to narrow down a brute force attack?  Or is that a stupid question?   We can't believe we'd have set a password longer than 15 characters by the way.  If so, and there is a way of doing this, what's the syntax please?

3. If (2) cant be done or doesn't work, what's the syntax for a full brute-force attack, limiting to 15 characters please?  I promise I'm not being lazy here, I could look it up myself, yes: but it's just that I've about 15 other tabs open here at the moment and I'm really confused about what's what and what to run now.  I'd just love to get this done *somehow*

Thanks in advance for your patience with me.
Reply
#5
The best way to start is to use your own list of passwords and use the following command on it:

hashcat --force --stdout your_pass_list.txt -r rules/dive.rule > output_pass_list.txt

Then you run the generated list on your hash
Reply
#6
Smile 
(06-15-2022, 10:21 PM)marc1n Wrote: The best way to start is to use your own list of passwords and use the following command on it:

hashcat --force --stdout your_pass_list.txt -r rules/dive.rule > output_pass_list.txt

Then you run the generated list on your hash

Ok, great, thanks - this is more promising

I now get (I''ve just included the relevant parts)

Speed.#1.........:    74114 H/s (5.24ms) @ Accel:4 Loops:256 Thr:512 Vec:1

Recovered........: 1/1 (100.00%) Digests
Progress.........: 258048/16943714 (1.52%)
Rejected.........: 0/258048 (0.00%)
Restore.Point....: 239616/16943714 (1.41%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:9984-9999
Candidate.Engine.: Device Generator
Candidates.#1....: j********159 -> r*****
Hardware.Mon.#1..: Temp: 48c Fan:  0% Util: 79% Core:1888MHz Mem:3802MHz Bus:16


So:  what does this all mean
Recovered? 1/1
Candidates?  There are two passwors there separated by the ->, but it's neither of those.....

Are we getting closer?

Again, apologies if this is simple stuff I'm asking here...

(There is a chance of a medal if you sort this :-))
Reply
#7
Recovered passwords not working?

your_hash:password
Reply
#8
(06-15-2022, 11:09 PM)marc1n Wrote: Recovered passwords not working?

aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!
aaaaaaaaaaaaaaaah!!!!!


if just realised it's not the CANDIDATES in that list I need to look at
but the outputted text file
cracked.txt


IT WORKS
IT BLOODY WORKS
IT ONLY BLOODY F'ING WORKS

(IS SWEARING ALLOWED?!)

I THINK I MIGHT LOVE YOU :-)

Oh blimey!!

How can I/we thank you?
Reply
#9
you are welcome, just a small addition to marc1ns answer

@marcin (NEVER user --force)

Code:
hashcat --force --stdout your_pass_list.txt -r rules/dive.rule > output_pass_list.txt

you didnt need to generate wordllists like this beforehand as hashcat can apply rules directly on the fly, just add -r and the rules.file and your wordlist

Code:
hashcat -a0 -m14700 -o cracked.txt --outfile-format=2 -r rules/dive.rule manifest931.txt attack.txt

yeah -o tells please put output in cracked.txt, second, you could also have openend hashcat.potfile because this is the file where your cracked hash:pw are stored by default
Reply