Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
iCloudKitExtractor — Experimental .NET/WPF forensic toolkit for iCloud auth, CloudKit/MMCS backup download, and Octagon/PCS recovery (ADP, Recovery Key, Lockdown Mode). Research software by Forensis-Lab — highly experimental; Apple private APIs may change overnight. | Kitploit
Tools/GitHubGitHub/giordanosconti/icloudkitextractor
Encryption/Decryption ToolsiOS SecurityForensicsInformation GatheringMobile ForensicsData RecoveryDigital ForensicsCloud SecurityAuthentication

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
GitHubgiordanosconti/icloudkitextractor

iCloudKitExtractor

Experimental .NET/WPF forensic toolkit for iCloud auth, CloudKit/MMCS backup download, and Octagon/PCS recovery (ADP, Recovery Key, Lockdown Mode). Research software by Forensis-Lab — highly experimental; Apple private APIs may change overnight.

View Repository
23010h 26m agoNot yet reviewed

iCloudKit Extractor

Public experimental phase — a WPF (.NET 10) app for iCloud sign-in, device backup listing, and download via CloudKit/MMCS.

iCloudKit Extractor application

Research / lab software. Not a finished product: undocumented Apple APIs, account-ban risk, no warranty. Use only with your own Apple ID and at your own risk.

About me

My name is Giordano Sconti. I collaborate with the forensic laboratory Forensis-Lab, and I work as a software researcher as well as a technical consultant (Consulente Tecnico).

This software is released under the MIT license, but it belongs to the Forensis-Lab forensic laboratory.

This project should be considered highly experimental, because Apple’s internal APIs can change overnight.

I am making this project available because it is valuable for forensic work when we must recover—in extreme cases—backups and CloudKit data that are not accessible except through the devices themselves.

Unlike commercial tools I have used, I achieved a stable and complete download of my own personal backups both with ADP enabled and disabled (of course knowing the device Octagon PIN or the Recovery Key when activated).

It also works when protections such as Lockdown Mode are enabled and iCloud.com is turned off.

This project took roughly seven months of research. Without Cursor coding-agent models it would have taken far longer: the only time I had was during work hours when possible, or late at night. I tried to keep a modular code organization—I hope I succeeded.

If you would like to buy me a coffee, I would rather you thank Forensis-Lab or offer some other form of recognition instead.

Contributing & contact

Anyone who wants to try the software, suggest improvements, or help finish the remaining features is welcome.

You may use paid coding-agent models (please avoid free ones—they are often unreliable for code correctness). What matters is that you always review the generated code and that there is no unauthorized appropriation of third-party code without consent. Pull requests will be reviewed very carefully.

Contact: [email protected]

Every line of code in this project belongs to Forensis-Lab, under my direct grant. Any use or modification must remain attributable to Forensis-Lab.

Preview access to Anisette Server

If you want to try the software before running your own anisette stack, contact me privately to request access to my Anisette Server.

Github Page

https://giordanosconti.github.io/iCloudKitExtractor/

iCloudKit Extractor GitHub Pages

Important note: Recovery Key & Octagon

Recovery Key unlock uses an Octagon endpoint that can dump the full set of encrypted TLKShares. From those shares it is also possible to recover the ones associated with Recovery Key peers (SHA-384 of the public key that signs the Recovery Key). That allows verifying whether a given Recovery Key is among those present and, if it is, recovering the Manatee/PCS KeySet for CloudKit zones—including ADP-protected backups and Keychain.

What’s included

  • Main app: src/iCloudKitExtractor
  • Photo library viewer: src/PhotosViewer (copied into viewer-payload when IKE builds)
  • AnisetteServer (+ optional bridge projects) for OTP / ADI
  • Setup scripts for emulated akd / bridge
  • Docs under docs/

What’s intentionally excluded

  • Lab build artifacts, probes, and capture corpora

Requirements

  • Windows + .NET 10 SDK
  • A phisical Anisette server (emulated ones not work anymore)
  • A test Apple ID you control

Build

dotnet build src/iCloudKitExtractor/iCloudKitExtractor.csproj -c Release
dotnet run --project src/iCloudKitExtractor/iCloudKitExtractor.csproj -c Release

GitHub Pages

A project site lives under docs/ (index.html + site.css).

  1. Push main to GitHub.
  2. Repo Settings → Pages.
  3. Source: Deploy from a branch.
  4. Branch: main / folder: /docs.
  5. Save — site URL will be similar to https://giordanosconti.github.io/iCloudKitExtractor/.

Anisette with Frida (jailbroken iPhone)

Preferred path for a coherent iPhone/akd identity: OTP is minted on-device via Frida → AuthKit/akd, then served by AnisetteServer.

1. Prerequisites (device + PC)

  • Jailbroken iPhone with frida-server running (USB or Wi‑Fi)
  • Matching frida-tools version on the PC (pip install frida-tools)
  • Python 3 available as python (or set FRIDA_ANISETTE_PYTHON)
  • fetch_anisette.py (Frida attach script). Set its path with FRIDA_ANISETTE_FETCH_PY

Jailbreak install steps: see Preparing a jailbroken iPhone below (details TBA).

2. Environment variables

VariableRequiredDefaultMeaning
ANISETTE_SERVER_BACKENDyescoreadiMust be frida (aliases: iphone-frida, jb-frida)
ANISETTE_SERVER_URL / ANISETTE_SERVER_URLSnohttp://127.0.0.1:6969URL(s) where AnisetteServer listens
ANISETTE_SERVER_PORTno6969Port if URLs not set
ICLOUD_AUTH_MODErecommendediphone (via config)Use iphone for full AuthKit iPhone SRP
FRIDA_ANISETTE_HOSTno127.0.0.1:27042frida-server host:port (USB often via iproxy 27042 27042)
FRIDA_ANISETTE_PROCESSnoakdProcess to attach
FRIDA_ANISETTE_FETCH_PYyes*heuristic pathAbsolute path to fetch_anisette.py
FRIDA_ANISETTE_PYTHONnopythonPython executable
FRIDA_ANISETTE_LITEno1 / trueLite attach mode
FRIDA_ANISETTE_TIMEOUTno60Seconds before aborting a mint

*Without FRIDA_ANISETTE_FETCH_PY, the app only searches a few legacy sibling paths; set the env var explicitly.

Optional app config file: %AppData%\iCloudKitExtractor\anisette.json (authMode, serverUrl). Env vars override the file.

3. Start AnisetteServer (Frida backend)

$env:ANISETTE_SERVER_BACKEND = "frida"
$env:ANISETTE_SERVER_PORT = "6971"
$env:FRIDA_ANISETTE_HOST = "127.0.0.1:27042"
$env:FRIDA_ANISETTE_PROCESS = "akd"
$env:FRIDA_ANISETTE_FETCH_PY = "C:\path\to\fetch_anisette.py"
$env:FRIDA_ANISETTE_PYTHON = "python"
$env:FRIDA_ANISETTE_LITE = "1"
$env:FRIDA_ANISETTE_TIMEOUT = "60"

dotnet run --project src/AnisetteServer/AnisetteServer.csproj -c Release -- --backend frida --port 6971

CLI --backend / --port override the environment.

Smoke test:

curl http://127.0.0.1:6971/health
curl http://127.0.0.1:6971/

Expect JSON with machine data (X-Apple-I-MD-M, X-MMe-Client-Info containing com.apple.akd).

4. Point IKE at the server

$env:ANISETTE_SERVER_URL = "http://127.0.0.1:6971/"
$env:ICLOUD_AUTH_MODE = "iphone"
dotnet run --project src/iCloudKitExtractor/iCloudKitExtractor.csproj -c Release

Preparing a jailbroken iPhone

Install Frida (frida-server) and OpenSSH from Sileo on the device first.

Assumes a rootless jailbreak (/var/jb/...). Over SSH as root:

ls -l /var/jb/usr/sbin/frida-server

Recreate the LaunchDaemon plist (LF endings, rootless)—no editor needed:

Download Tool