Cap Cracker

crack / cc — Offline WPA/WPA2 .cap Cracker

Dictionary-attacks a captured handshake offline on the device. Reads a libpcap .cap/.pcap file, extracts either a 4-way handshake (M1 ANonce + M2 SNonce/MIC) or a PMKID, and tries passwords from one or more wordlists. Works on captures from karma, wpasniff (ws), pmkid (pm), or any external tool (aircrack-ng, hcxdumptool, …).

CMD> cc                       ← pick a .cap in the current dir, then a wordlist
CMD> cc MyNet.cap             ← crack this cap, pick a wordlist
CMD> cc MyNet.cap rockyou.txt ← cap + explicit wordlist
CMD> cc MyNet.cap lists/      ← run EVERY *.txt in lists/
CMD> cc /apps/karma           ← a directory → pick a .cap inside it

Paths are relative to your cd directory

Like cat/ls, cc resolves paths against the current SD working directory, so you can cd into the folder once and then pass bare filenames:

CMD> cd /apps/karma
CMD> cc MyNet.cap wordlist.txt

Tab-style autocomplete (' key) completes both files and directories for either argument.

Argument Accepts
cap a .cap/.pcap file · a directory (lists caps inside to pick) · omitted (picks from the current dir)
wordlist a .txt file · a directory (runs every *.txt) · omitted (picker: built-in / all *.txt here / one file)

Wordlists

  • Pass a single file, or a directory to run every *.txt in it in sequence.
  • With no wordlist argument you get a picker: Built-in (100), ALL *.txt in this dir, Type a path…, or any individual .txt found in the current directory.
  • Type a path… lets you point at a wordlist file or directory anywhere on the card (not just the current dir) — press ' while typing to autocomplete file and directory names, exactly like the command line. A directory runs every *.txt inside it; a file runs just that file.
  • The built-in 100-password list always runs last as a fallback, so a quick cc cap always tries something even with no SD wordlist.
  • Passwords shorter than 8 or longer than 63 characters are skipped (WPA limits).

Press q any time to abort; the screen shows live tries, rate, current wordlist, and candidate.


Resume a long crack

On-device cracking is slow (each candidate is a full PBKDF2 derivation), so a big wordlist can take a while. You don’t have to babysit it: press q to stop, use the device, and relaunch the same .cap with the same wordlist latercc picks up at the exact byte offset where it left off instead of restarting from word 0. It resumes even across a reboot.

  • The capture is identified by the BSSID + SSID read from inside the .cap (not its filename), so two different networks that happen to share a filename resume independently, and two captures of the same network share progress.
  • The wordlist is identified by its full path + size, so different lists never share a cursor (even at the same size), the same list resumes whichever way you selected it, and editing a list re-arms it (its size changes). Saved to /apps/capcrack/progress.csv.
  • A wordlist that was fully exhausted is skipped instantly on the next run (nothing left to try), and a successful crack clears its cursor.
  • The small built-in 100-password list isn’t tracked — it finishes in seconds.

Background crack — cc bg (crack under the cover)

For long jobs you don’t want to babysit — or that you want to run in public behind the undercover disguise — start it in the background:

CMD> cc bg capture.cap big.txt   # start straight away
CMD> cc bg                       # WATCH the running crack live (or start one if none is running)
CMD> cc                          # same — bare cc watches the running bg crack
CMD> cc bg status                # live view if running, else the last outcome
CMD> cc bg stop                  # halt (the resume cursor is saved)
  • Watch it live: once a bg crack is running, cc or cc bg opens a real-time monitor (list %, tried, rate, current guess). [q] leaves without stopping (it keeps grinding), and [s] stops it right there (cursor saved). (To start a new foreground crack while one runs in the bg, pass a cap: cc <cap>.) cc bg stop still works from the command line too.
  • It returns you to the CLI and shows a small CC tag in the status bar while it runs.
  • It keeps cracking while you use the CLI and while the undercover cover is active — so a device that looks like a Notes app is quietly grinding your wordlist the whole time.
  • It’s cooperative and single-threaded (time-sliced off the main loop), so it never fights the crypto hardware — rock-solid, at the cost of sharing CPU with whatever’s on screen. It throttles by screen state: while you’re looking at the undercover disguise (screen on) it pauses, so touch and the UI stay perfectly responsive; on the CLI (screen on) it cracks gently; and only when the screen is off (pocket / put down) does it crack hard — which is the real “grind in public” case.
  • A hit is silent while under the cover (no beep to give you away) and is written to cracked.csv regardless — you find it when you drop the disguise.
  • It yields the SD card automatically whenever WiFi is doing heavy DMA (a scan, monitor, evil-twin), so it’s safe to leave running alongside other tools.
  • Uses the same resume cursor, so stopping, rebooting, or yielding to WiFi never loses progress.

On-device cracking is slow either way — cc bg is for leaving a weak/common/wordlist-present password grinding over time, not for brute-forcing strong keys.


What it needs in the capture

To derive the PMK the cracker needs the network ESSID, which it reads from a beacon or probe-response frame in the .cap. Captures made by karma already include a beacon, so they work directly. If the cap has no beacon, cc reports noESSID and which handshake pieces were found (noM1 / noM2).

Capture type Needs
4-way handshake beacon (ESSID) + M1 + M2
PMKID beacon (ESSID) + M1 with a PMKID KDE

Output

Cracked passwords are appended to:

/apps/capcrack/cracked.csv      ← ssid,password,HS|PMKID
/apps/capcrack/progress.csv     ← resume cursor: bssid,ssid,wordlist_id,offset

Crack it on a PC instead

For big wordlists, copy the .cap to a computer — it is standard libpcap (linktype 105):

aircrack-ng -w rockyou.txt MyNet.cap
# or
hcxpcapngtool -o hash.22000 MyNet.cap && hashcat -m 22000 hash.22000 rockyou.txt

Notes

  • Reads the SD card only — no WiFi, no transmission. Safe to run any time.
  • Classic pcap only (.cap/.pcap), not pcapng.
  • The on-device crack is single-core PBKDF2 — fine for a targeted list, slow for huge ones; use the PC path for rockyou-scale lists.

See also: Karma · WPA Handshake · PMKID