Johdanto
Analysoidessani testilaitetta suositulla kaupallisella mobiilirikosteknisellä työkalulla törmäsin johonkin mielenkiintoiseen - lukittuun Apple Noteen, joka näkyi vain "piilotettuna". Työkalu näytti muistiinpanon yhteenvedon (merkintä "Lance"), mutta varsinainen sisältö puuttui. Ei ollut mitään vihjeitä siitä, mitä lukon takana oli, ja minulle jäi polttava kysymys: voisinko paljastaa salaisuuden sisältä? Tarvitsin työnkulun, joka auttaisi minua purkamaan Apple Notesin salauksen iOS 16:ssa.
Laite oli käynnissä iOS 16.7.10, ja kaivettuani NoteStore.sqlite-tietokantaa tajusin, että kaikki salausvihjeet olivat siellä odottamassa purkamista. Avoimen lähdekoodin työkalujen avulla lähdin palauttamaan salasanaa ja purkamaan muistiinpanojen sisältöä.
Tämä viesti opastaa sinua täydellinen rikostekninen työnkulku miten Apple Notesin salauksen purkaminen iOS 16:ssa:
- 🔓 Hashcat salasanan murtamiseen
- 🗄️ DB Browser for SQLite tutkia ja poimia salausparametreja
- 🐍 Python-skriptit avainten johtamiseen ja AES-avaimen purkamiseen
- 🔍 CyberChef lopullisen protobuf-hyötykuorman salauksen purkaminen, purkaminen ja jäsentäminen.
⚠️ Tärkeä huomautus: Tämä työnkulku koskee erityisesti Apple Notes -muistiinpanoja, jotka on lukittu osoitteeseen iOS 16.x. iOS 17:stä alkaen Apple muutti salattujen muistiinpanojen tallennustapaa, ja iOS 18 tuo mukanaan vielä lisää muutoksia.
Sukelletaanpa sisään ja paljastetaan lukitun Apple Note -muistiinpanon sisällä oleva piilotettu viesti.
Tutustuminen NoteStore.sqlite-tiedostoon

Kuvakaappauksessa näet ZDATAn raa'at heksadesimaaliarvot. Tämä data on tehokkaasti sekoitettu AES-salaus, ja kriittiset metatiedot - kuten suolat ja iteraatioluvut - tallennetaan tietokannan muihin osiin. Vuodesta oikeuslääketieteellisen tutkijan näkökulmasta, kun tunnistat, että huomautus on täysin salattu, sinun on syytä kaivaa syvemmälle ZICCLOUDSYNCINGOBJECT-taulukkoon parametreja, joita tarvitaan crack salasana ja avaa huomautus 🔓.
Miksi lukitut Apple Notes -muistiinpanot ovat salattuja iOS 16:ssa?
Apple Notes suojaa lukitut muistiinpanot yhdistelmällä PBKDF2 (avainten johtaminen) ja AES (salaus). Kun salasana on käytössä muistiinpanossa, Apple tallentaa tietokantaan keskeisiä salausmetatietoja, kuten:
- ZCRYPTOITERATIONCOUNT
- ZCRYPTOSALT
- ZCRYPTOWRAPPEDKEY
Nämä arvot varmistavat, että vain oikean salasanan omaava henkilö voi purkaa viestin sisällön.
Oikeuslääketieteellinen lähestymistapa
Rikosteknisestä näkökulmasta katsottuna vaiheisiin kuuluu yleensä:
- Tunnista asiaankuuluvat lukitut muistiinpanomerkinnät kohdissa ZICNOTEDATA ja ZICCLOUDSYNCINGOBJECT.
- Ote kryptografiset yksityiskohdat, kuten iteraatioiden määrä, suola ja kääritty avain.
- Crack käyttäjän salasana Hashcat (tai jokin muu salasanan palautustyökalu, kuten John the Ripper tai Passware).
- Derive viimeiset näppäimet kohdassa Python tai CyberChef ja purkaa muistiinpanon BLOB.
- Purkaminen lukitsemattomat protobuf-tiedot (ja CyberChef tai Python) lopullisen selväkielisen tekstin paljastamiseksi.
Lukitun Apple Noten salasanan murtaminen Hashcatilla
Tavoitteeni oli simuloida realistista rikosteknistä skenaariota: minulla oli lukittu Apple Note ja minun piti palauttaa sen salasana sisällön salauksen purkamiseksi. Tässä kohtaa Hashcat tulee kuvaan mukaan. Hyödyntämällä sen Apple Secure Notes -hash-tilaa (ID 16200), Hashcat kokeili järjestelmällisesti salasanoja, kunnes se löysi oikean salasanan.
Tarvittavien sarakkeiden poimiminen
Aloitin avaamalla NoteStore.sqlite DB-selaimessa ja kohdistamalla rivit, joissa ZICCLOUDSYNCINGOBJECT-taulukon ZISPASSWORDPROTECTED = 1. Tämän jälkeen kysyin seuraavia sarakkeita:
- Z_PK - huomautuksen yksilöllinen tunniste.
- ZCRYPTOSALT - PBKDF2:n suola-arvo.
- ZCRYPTOWRAPPEDKEY - kääritty avain, joka myöhemmin puretaan.

Hashcat-syöttötiedosto luotiin pienellä Python-skriptillä. notes_to_hashcat.py, joka muotoili nämä arvot yhdeksi riviksi, jonka Hashcat pystyi jäsentämään, mukaan lukien iteraatioiden määrä (ZCRYPTOITERATIONCOUNT-arvosta).

Hashcatin suorittaminen lukitun Apple Note -salasanan purkamiseksi
Kun Hashcat-syöttötiedostoni oli valmis ja sanakirja käsillä, suoritin seuraavan komennon:
hashcat -m 16200 -a 0
Tässä:
- -m 16200 määrittää Apple Secure Notes -tilan.
- -a 0 asettaa Hashcatin Straight (sanakirja) hyökkäystilaan.
- Sanakirja voi olla seuraavanlainen rockyou.txt tai laitteen artefakteista johdettu mukautettu luettelo.

Hashcat tunnisti onnistuneesti oikean salasanan: royalewithcheese. Todellisessa tutkimuksessa sanakirjasi voisi olla paljon suurempi, mutta tämä tulos vahvisti, että Hashcat pystyi hoitamaan raskaan työn.
Avainsalausavaimen (KEK) johtaminen Apple Notesin salauksen purkamiseksi
Kun salasana oli selvillä, seuraava askel oli johtaa Avainsalausavain (KEK), jota käytetään käärimään lopullinen AES-avain, jolla muistion sisältö salataan. KEK:n saamiseksi tarvitsen seuraavat arvot ZICCLOUDSYNCINGOBJECT-taulukosta:
- Salasana (murrettu salasana)
- Iteraatioiden määrä (ZCRYPTOITERATIONCOUNT)
- Suola (ZCRYPTOSALT)
Esimerkiksi DB Browserin avulla tein kyselyn:
SELECT ZCRYPTOITERATIONCOUNT, ZCRYPTOSALT FROM ZICCLOUDSYNCINGOBJECT WHERE Z_PK = ;

Seuraavaksi avasin CyberChefin - suosikkityökaluni 🛠️ - ja vedin sisään "Derive PBKDF2 key" -operaation. Asetin hashing-funktion arvoksi SHA-256 ja syöttämällä salasanan, suolan ja iteraatioluvun, CyberChef tuotti 16 tavun KEK:

Tämän prosessin automatisoimiseksi loin Python-skriptin nimeltä get_key.py, joka hyväksyy argumentteina tietokannan polun, huomautuksen PK ja salasanan. Sen suorittaminen palauttaa KEK:n heksadesimaalina.
python get_kek.py NoteStore.sqlite
Tulos:
Huomautus PK=16: KEK (hex) = a1dac151616302e1d3d73ad4fd4b6f8fef
AES-avaimen purkaminen lukittujen Apple Notes -muistiinpanojen salauksen purkamiseksi iOS 16:ssa
Seuraava vaihe oli avaimen avaaminen jota käytetään viestin sisällön salaamiseen. Kääritty avain tallennetaan ZICCLOUDSYNCINGOBJECTin ZCRYPTOWRAPPEDKEY-sarakkeeseen. Esimerkiksi kysyin::
SELECT ZCRYPTOWRAPPEDKEY FROM ZICCLOUDSYNCINGOBJECT WHERE Z_PK = 16;

Kääreiden purkamisvaihtoehdot
Vaihtoehto 1: AES-avaimen purkaminen lukittujen Apple Notes -muistiinpanojen purkamiseksi iOS 16:ssa CyberChefin avulla
Poistin kaikki aiemmat toiminnot käytöstä, etsin komennon "AES Key Unwrap" ja raahasin sen resepti-ikkunaan. Liittämällä KEK:n ja käärityn avaimen CyberChef antoi tuloksena puretun AES-avaimen.

Vaihtoehto 2: AES-avaimen purkamisen automatisointi unwrap.py:llä
Kehitin myös Python-skriptin nimeltä unwrap.py joka ottaa argumentteina tietokannan polun ja KEK:n (heksadesimaalina). Tämän skriptin suorittaminen purki avaimen ja tulosti sen heksamuodossa. Minun tapauksessani purettu avain oli:
python unwrap.py NoteStore.sqlite

Tämä on lopullinen AES-avain, jota käytetään lukitun Apple-muistion sisällön salauksen purkamiseen.
Apple Notesin BLOB-tiedostojen salauksen purkaminen AES-GCM:n avulla iOS 16:ssa
Nyt kun minulla oli purettu avain, oli aika purkaa Apple Notesin BLOB-tiedosto, joka oli tallennettu tiedostoon ZICNOTEDATA
pöytä. Apple käyttää AES GCM-tilassa suojata lukittujen muistiinpanojen sisältö, mikä tarkoittaa, että tarvitsen neljä olennaista komponenttia jatkamista varten:
🔑 Käärimätön AES-avain
🔁 Aloitusvektori (IV) osoitteesta
ZCRYPTOINITIALIZATIONVECTOR
🏷 GCM-tunnistusmerkki osoitteesta
ZCRYPTOTAG
💾 Salattu BLOB osoitteesta
ZDATA
📤 IV- ja GCM-tagin poimiminen NoteStore.sqlite-tiedostosta
Paikallistaa IV ja GCM-tunniste, avasin ZICNOTEDATA
taulukko DB Browser for SQLite -ohjelmassa. Nämä kentät tallennetaan binääriarvoina ja ne löytyvät joko kentästä ZICNOTEDATA
tai ZICCLOUDSYNCINGOBJECT
pöydät. Molemmat tallentavat tiedot samoilla sarakkeiden nimillä.
IV:
5c0c0bde9b6801747ddad1115a422d05
GCM-tunniste:
b9087ba19e3c7deff2cb4b9b51e6aafa
Itse salattu BLOB oli myös näkyvissä osoitteessa ZDATA
sarake. Kopioin kaikki kolme arvoa heksadesimaalimuodossa valmistautuakseni salauksen purkamiseen.



🧪 Muistiinpanon purkaminen CyberChefin avulla
Kun kaikki oli käsissäni, käännyin CyberChef. Tämän työkalun avulla oli helppo yhdistää kaikki parametrit ja paljastaa alkuperäinen sisältö. Näin minä tein:
Lisäsin "AES Decrypt" toiminta.
Liitin käärimätön AES-avain Avain-kenttään.
Asetan GCM:ään.
Asetin IV ja GCM Tag omille aloilleen.
Lopuksi kopioin salattu BLOB syöttöikkunaan.

Lopullisen muistiinpanon purkaminen ja jäsentäminen (Apple Notesin purettu protobuf)
Kun olin purkanut AES-salatun BLOB-tiedoston salauksen, tallensin tulosteen tiedostoon nimeltä decrypted_blob.bin
ja avasin sen HxD:ssä. Tiedoston allekirjoitus 0x1F8B08
vahvisti, että kyseessä oli GZIP-pakattu tiedosto - Apple käyttää tätä pakkaamaan protobuf-tietoja.
Puraaksesi selväkielisen tekstin, avasin CyberChefin uudelleen ja lisäsin tiedoston Gunzip toiminto työnkulkuun. Tulosteessa alkoi heti näkyä tuttuja merkkijonoja.

Kun purettu, olen soveltanut Protobufin dekoodaus CyberChefissä. Tuloksena oli JSON:ia muistuttava rakenteinen näkymä, jossa avaimet ja arvot edustavat lukitun Apple Note -muistion sisältöä.

Lukemisen helpottamiseksi käytin myös Python-skriptiä, joka hyödynsi työkalua backboxprotobuf
moduuli jäsentää protobuf-tiedoston ja tulostaa tulosteen puhtaassa, ihmisen luettavassa muodossa.

Tämä vastaa sitä, mitä käyttäjä kirjoitti lukittuun Apple Note -muistiinpanoonsa. Olet päässyt piilotetusta, salasanalla suojatusta merkinnästä varsinaiseen, selväkieliseen viestiin - korvaamaton löytö missä tahansa rikosteknisessä tapauksessa.

🔚 Pakkaus
Onneksi olkoon 🎉 - olet juuri suorittanut täydellisen rikosteknisen työnkulun. lukittujen Apple Notes -muistiinpanojen salauksen purkaminen iOS 16:ssa. Poimit salausparametrit SQLite-tietokannasta, murtauduit salasanaan käyttämällä Hashcat, johdettu ja purettu AES-avain käyttäen Python, ja lopuksi purkaa ja jäsentää protobufin komennolla CyberChef. Jokainen askel toi sinut lähemmäksi viestin piilotetun sisällön paljastamista.
Tämä käytännönläheinen läpikäynti todistaa, kuinka tehokkaita avoimen lähdekoodin työkalut voi olla digitaalisessa rikostekniikassa. Ne auttavat tutkijoita löytämään salattuja Apple Notes -muistiinpanoja, jotka kaupalliset työkalut saattavat jäädä huomaamatta - erityisesti laitteissa, joissa on käytössä iOS 16 tai aikaisempi.
🕵️ Bonus: Salasanavihje
Tässä on ylimääräinen kierre - löysin erään salasanavihje vuonna ZICCLOUDSYNCINGOBJECT
pöytä:
Quarter Pounder
Koska laite kuului jollekin Vincent-nimiselle henkilölle, salasanaa ei ollut vaikea arvata: royalewithcheese - nyökkäys Pulp Fiction. Todellisissa tapauksissa tällaiset salasanavihjeet voivat nopeuttaa työnkulkua, kun ne yhdistetään strategiseen murtoprosessiin.
📱 Vielä yksi asia... iOS 17:stä ja iOS 18:sta
Tämä opas koskee erityisesti salauksen purkamista Apple Notes iOS 16:ssa ja sitä aikaisemmissa versioissa. Alkaen iOS 17Apple teki merkittäviä muutoksia Notesin salausprosessiin. Saatat törmätä puuttuviin avainten johdannaiskenttiin, erilaisiin salausrakenteisiin tai muistiinpanoihin, jotka eivät enää purkaudu samoilla menetelmillä.
Jos tutkit, miten purkaa Apple Notesin salaus iOS 17:ssä tai iOS 18:ssaHaluaisin tehdä yhteistyötä. Jaa havaintosi - puretaan uusi salaus yhdessä.
Kiitos lukemisesta! Onko sinulla kysymyksiä tai näkemyksiä? Kirjoita ne alla oleviin kommentteihin tai ota suoraan yhteyttä. Jatketaan rikosteknisen selvittämisen rajojen pidentämistä. 🔍