rivassec/efi-bruteforce

GitHub: rivassec/efi-bruteforce

Stars: 4 | Forks: 1

# 🧬 efi-bruteforce Automated brute-force tool for EFI firmware passwords on legacy MacBook models. Powered by a Teensy microcontroller emulating USB keyboard input. ## ⚙️ Overview Some MacBook models (primarily pre-2018) allow many EFI password attempts at boot time before silent rate-limiting kicks in. This project uses a programmable HID device (Teensy) to simulate a human entering PIN guesses, automating the process in hardware. The sketch handles three failure modes the firmware uses against fast input: 1. **USB poll-rate dropping** — the firmware drops keystrokes sent faster than its polling interval. Fixed via `delay()` calls between `Keyboard.press()` and `Keyboard.release()`. 2. **Per-attempt rate-limiting** — the firmware throttles after each submission. Fixed via a longer delay after Enter. 3. **After-N silent ignore** — after a threshold of consecutive incorrect attempts, the firmware stops processing input until a power cycle. Fixed by power-cycling between batches and persisting the current PIN index across reboots. ## 🔩 Requirements - Basic hardware-hacking familiarity - **Teensy 3.2** or compatible microcontroller (e.g., Teensy LC, Pro Micro with Keyboard library — see community ports below) - Micro USB cable - Target MacBook with EFI password lock (pre-T2, e.g., 2012-2017) - [Teensyduino](https://www.pjrc.com/teensy/teensyduino.html) installed and configured ## 🚀 Setup 1. Clone this repo: git clone https://github.com/rivassec/efi-bruteforce cd efi-bruteforce 2. Open the `.ino` file in the Arduino IDE with Teensyduino enabled. 3. Flash the code to your Teensy 3.2. 4. Plug the Teensy into the locked MacBook and power it on. 5. The Teensy will begin simulating EFI password inputs using PIN-style sequences. ## 📁 Repo Structure efi-bruteforce/ ├── efi_bruteforce.ino # Main Arduino/Teensy script ├── README.md └── docs/ └── wiring_diagram.png # [Optional] Add your own visual guides here ## ⚠️ Legal & Ethical Notice This tool is intended for: - Security research - Digital forensics - Personal device recovery on hardware you own **Unauthorized use is a violation of law.** Only deploy against hardware you own or are explicitly authorized to access. ## 🧭 DevSecOps Perspective While not a traditional software-security project, this repo demonstrates: - Hardware-based attack automation - Rate-limit edge analysis - Cross-domain awareness across firmware, USB HID, and physical security For modern DevSecOps engineers, low-level tooling insight supports broader incident-response and security-architecture work. The same instincts — slow down, instrument, treat layered defenses as observable — port cleanly into cloud and CI/CD security. ## 🔄 Roadmap This project is feature-complete for its target hardware (pre-T2 MacBooks). No further development is planned. The repo is preserved for reference and forensic use cases. If you fork this for a new hardware target or password-prompt screen, please link back so the genealogy stays visible. ## 📜 License This project is released under the [MIT License](LICENSE).