Lukittujen Apple Notes -muistiinpanojen salauksen purkaminen iOS 16.x -käyttöjärjestelmässä: Täydellinen rikostekninen työnkulku (SQLite, CyberChef, Python), jossa on Hashcat.

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

Tässä vaiheessa tiesin, että salatun muistiinpanon sisältö oli tallennettu NoteStore.sqlite-tietokantaan, erityisesti ZICNOTEDATA-tauluun. Apple usein gzips muistiinpanon protobuf-tiedot, mutta lukittujen muistiinpanojen tapauksessa koko BLOB-tietokanta on ensiksi salattu-mikä tarkoittaa, että suoralla purkuyrityksellä ei saada luettavaa tekstiä. Tarvitset oikea dekoodausavain ennen kuin minkäänlainen purku tai protobufin analysointi voi tapahtua.
Salaus Apple Notes iOS 16 käyttämällä SQLite DB Browserin avulla
Lukitun muistiinpanon ZDATA-kentän salattu BLOB (DB Browser for SQLite).

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ä:

  1. Tunnista asiaankuuluvat lukitut muistiinpanomerkinnät kohdissa ZICNOTEDATA ja ZICCLOUDSYNCINGOBJECT.
  2. Ote kryptografiset yksityiskohdat, kuten iteraatioiden määrä, suola ja kääritty avain.
  3. Crack käyttäjän salasana Hashcat (tai jokin muu salasanan palautustyökalu, kuten John the Ripper tai Passware).
  4. Derive viimeiset näppäimet kohdassa Python tai CyberChef ja purkaa muistiinpanon BLOB.
  5. 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.
SQLite-kysely Hashcatin tarvitsemille parametreille

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).

notes_to_hashcat.py kerää tarvittavat parametrit lukitun Apple Note -salasanan murtamiseen iOS 16:ssa.
Tulos tiedostosta notes_to_hashcat.py

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.
Hashcatin käyttäminen lukitun Apple Notes -salasanan purkamiseen
Hashcat paljastaa murretun salasanan: royalewithcheese

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 = ;
NoteStore.sqlite-tiedostosta kysytään Salt- ja Iteration-lukua, joita tarvitaan lukittujen Apple Notes -muistiinpanojen salauksen purkamiseen tarvittavan KEK:n hankkimiseen.
Iteraatioiden määrä: Salt: d1afa96252a15d8d58827bcb21940de1

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:

CyberChef käyttää KEK:n johtamiseen PBKDF2-parametreista Apple Note -muistiinpanojen salauksen purkamista varten.
KEK: a1dac1516302e1d3d73ad4fd4b6f8fef

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;
SQLite-kysely unwrapped.key-avaimelle, jota tarvitaan appe-muistiinpanojen salauksen purkamiseen iOS16:lla.
Kääritty avain: 78c2b79c3e357117c95feb882009e14be9e5f88598ea6db0

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.

CyberChef käyttää KEK:n johtamiseen ja AES-avaimen purkamiseen Apple Notesin salauksen purkamiseen iOS 16:ssa.
Käärimätön avain: 4b1f0c718aa05a0d097d7bf4865c89d1

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
Python-skripti unwrap.py, joka näyttää lukittujen Apple Notes -muistiinpanojen AES-avaimen puretun salauksen.
Käärimätön avain: 4b1f0c718aa05a0d097d7bf4865c89d1

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.

Aloitusvektori: 5c0c0bde9b6801747ddad1115a422d05
DB-selain näyttää AES-GCM-purkamiseen käytetyn GCM-tagin.
GCM Tag: b9087ba19e3c7deff2cb4b9b51e6aafa
DB-selain, jossa on salattuja Apple Note BLOB -tietoja korostettuna
Salattu BLOB

🧪 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:

  1. Lisäsin "AES Decrypt" toiminta.

  2. Liitin käärimätön AES-avain Avain-kenttään.

  3. Asetan GCM:ään.

  4. Asetin IV ja GCM Tag omille aloilleen.

  5. Lopuksi kopioin salattu BLOB syöttöikkunaan.

Kun osuin Paista, CyberChef purki BLOB-tiedoston salauksen ja paljasti pakatun tiedoston - juuri sen, mitä odotin. Tämä tarkoitti, että salauskerros oli nyt poistettu kokonaan, ja voisin siirtyä purkamaan tietoja.
CyberChef resepti salauksen purkaminen Apple Notes BLOB käyttäen AES-GCM-tilassa
Purettu GZIP-tiedosto

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.

CyberChef näyttää puretut Apple Notesin protobuf-tiedot GZIP-uuttamisen jälkeen.
Purettu protobuf CyberChefissä

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öä.

CyberChef-näkymä Apple Notesin protobufin puretusta rakenteesta JSON-muotoisessa muodossa.
Purettu Protbuf CyberChefissä

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.

Komentokehote, joka näyttää puretun Apple Note -sisällön backboxprotobuf Python-skriptillä
Kauniisti muotoillut tulokset tulostuvat näytölle

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.

Kuvakaappaus lukitun Apple Noten sisällöstä UFADE:n avulla

🔚 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ä. 🔍

Facebook
Twitter
Sähköposti
Tulosta

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *