Pocket-sized passive recon with e-Paper display
Built for Red Teams โข Pi Zero 2W + Waveshare 2.13" e-Paper
Features โข Hardware โข Quick Start โข Modes โข Web UI โข Ecosystem
โ ๏ธ DEVELOPMENT STATUS: This project is under active development and has not been live-tested in the field. Use at your own risk.
MoMo-Shadow is a pocket-sized, buttonless WiFi reconnaissance device designed for stealth operations. It combines a Raspberry Pi Zero 2W with a Waveshare 2.13" e-Paper display for ultra-low power consumption and outdoor readability.
| Challenge | Shadow Solution |
|---|---|
| ๐ Limited battery life | โ e-Paper + low power = 48-72h runtime |
| ๐ฑ No screen for feedback | โ e-Paper shows status, AP info, stats |
| ๐๏ธ Physical buttons required | โ WiFi AP + Web UI for full control |
| ๐ต๏ธ Visible devices suspicious | โ ~75x40x15mm, fits in palm |
| ๐ฐ Expensive recon gear | โ ~$50 total hardware cost |
Passive Scanning:
โโโ Access point discovery
โโโ Hidden SSID detection
โโโ Client MAC logging
โโโ Probe request capture
โโโ Signal strength mapping
โโโ BLE device detection (planned)
Capture:
โโโ WPA2/WPA3 handshake capture
โโโ PMKID capture
โโโ Targeted deauthentication
โโโ Auto-stop on success
โโโ Hashcat format export
e-Paper Display (250x122):
โโโ Current mode & status
โโโ AP/Client/Probe counts
โโโ Battery percentage
โโโ WiFi AP credentials
โโโ Target information
โโโ Capture progress
Web UI (Mobile-friendly):
โโโ Real-time statistics
โโโ Access point list
โโโ Target selection
โโโ Mode switching
โโโ Capture control
โโโ System management
Battery Optimization:
โโโ e-Paper = near-zero idle draw
โโโ Configurable refresh rate
โโโ Drop mode (display off)
โโโ Low battery warnings
โโโ Auto-shutdown protection
โโโ 48-72h passive scanning
| Component | Model | Price |
|---|---|---|
| SBC | Raspberry Pi Zero 2W | $15 |
| Display | Waveshare 2.13" e-Paper HAT | $20 |
| Battery | 2000mAh LiPo + charging board | $10 |
| Storage | MicroSD 16GB | $5 |
| Total | ~$50 |
๐ No external WiFi adapter needed! Installer automatically patches internal WiFi with Nexmon for monitor mode.
e-Paper 2.13" V4 Connection:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ VCC โโโโ 3.3V (Pin 1) โ
โ GND โโโโ GND (Pin 6) โ
โ DIN โโโโ MOSI (Pin 19, GPIO10) โ
โ CLK โโโโ SCLK (Pin 23, GPIO11) โ
โ CS โโโโ CE0 (Pin 24, GPIO8) โ
โ DC โโโโ GPIO25 (Pin 22) โ
โ RST โโโโ GPIO17 (Pin 11) โ
โ BUSY โโโโ GPIO24 (Pin 18) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PHYSICAL LAYOUT โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ e-Paper Display โ โ
โ โ (250 x 122) โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Pi Zero 2W + HAT โ โ
โ โ (Internal WiFi+Nexmon) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ โ
โ โ LiPo Battery โ โ USB โ โ
โ โ 2000mAh โ โChargeโ โ
โ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Dimensions: ~65 x 30 x 12mm (super compact!)
No external WiFi adapter needed!
Fastest way to get started - flash and go!
-
Download from Releases:
momo-shadow-vX.X.X-pi-zero-2w.img.xz -
Flash with balenaEtcher:
- Select downloaded
.img.xz - Select your SD card
- Click "Flash!"
- Select downloaded
-
Boot - Insert SD card, power on Pi Zero 2W
-
Connect to WiFi:
Shadow-Setup(password:shadowpass123) -
Open http://192.168.4.1 - You're ready! ๐ฅท
Default SSH:
pi/shadow123
If you prefer to install on existing Raspberry Pi OS:
# SSH into your Pi Zero 2W, then:
curl -fsSL https://raw.githubusercontent.com/M0M0Sec/MoMo-Shadow/main/deploy/install.sh | sudo bashThe script automatically:
- โ Installs all dependencies
- โ Installs Nexmon (monitor mode for internal WiFi)
- โ Installs MoMo-Shadow
- โ Configures systemd service
- โ Enables SPI for e-Paper
After reboot, Shadow starts automatically.
# Clone repository
git clone https://github.com/M0M0Sec/MoMo-Shadow.git /opt/shadow
cd /opt/shadow
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install
pip install -e .
# Configure
sudo mkdir -p /etc/momo-shadow
sudo cp config/shadow.example.yml /etc/momo-shadow/config.yml
# Run
shadow run
# Boot and connect!Click to expand manual installation steps
# 1. Flash Raspberry Pi OS Lite (64-bit)
# 2. Enable SSH: touch /boot/ssh
# 3. Boot and SSH into Pi
# Update system
sudo apt update && sudo apt upgrade -y
# Install dependencies
sudo apt install -y git python3-pip python3-venv python3-dev \
hostapd dnsmasq aircrack-ng hcxtools iw wireless-tools \
build-essential libgmp3-dev gawk raspberrypi-kernel-headers
# Install Nexmon (for monitor mode)
cd /opt
sudo git clone https://github.com/seemoo-lab/nexmon.git
cd nexmon
source setup_env.sh
# ... (follow Nexmon build instructions for bcm43436s)
# Install MoMo-Shadow
cd /opt
sudo git clone https://github.com/M0M0Sec/MoMo-Shadow.git shadow
cd shadow
python3 -m venv venv
source venv/bin/activate
pip install -e .
# Configure
sudo mkdir -p /etc/momo-shadow /var/momo-shadow/data /var/momo-shadow/captures
sudo cp config/shadow.example.yml /etc/momo-shadow/config.yml
# Install service
sudo cp deploy/shadow.service /etc/systemd/system/
sudo systemctl enable shadow
sudo rebootBoot Sequence:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 1. BOOT (10s) โ
โ โโโบ System starting... โ
โ โ
โ 2. SETUP MODE (60s) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโบ WiFi AP: Shadow-XXXX โโ
โ โโโบ Connect & open http://192.168.4.1 โโ
โ โโโบ Configure targets, start scan โโ
โ โโ
โ 3. AUTO-SWITCH โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโบ AP stops, Monitor mode starts โ
โ โโโบ Scanning begins automatically โ
โ โ
โ 4. SCANNING (autonomous) โ
โ โโโบ Reboot to return to Setup mode โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Quick Connect:
- Connect to WiFi:
Shadow-XXXX - Password:
shadowpass123 - Open:
http://192.168.4.1 - Click "Start Scanning" or wait 60s for auto-start
# Config
autostart:
mode: passive
# Behavior
- Listen only, no packets transmitted
- Log all APs, clients, probes
- Maximum stealth
- Battery: 48-72 hours# Config
autostart:
mode: capture
targets:
ssids:
- "Target-Network"
# Behavior
- Select target AP
- Send targeted deauth
- Capture handshake
- Auto-stop on success
- Battery: 12-24 hours# Config
autostart:
mode: drop
# Behavior
- Display off (max power save)
- Silent background logging
- Retrieve data via SD card
- Battery: 72+ hoursThe web interface provides full control without physical buttons.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฅท MoMo-Shadow [SCANNING] ๐85%โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ ๐ Statistics โ
โ โโโโโโโโโโ โโโโโโโโโโ โ
โ โ 12 โ โ 24 โ โ
โ โ APs โ โClients โ โ
โ โโโโโโโโโโ โโโโโโโโโโ โ
โ โโโโโโโโโโ โโโโโโโโโโ โ
โ โ 156 โ โ 2 โ โ
โ โ Probes โ โ HS โ โ
โ โโโโโโโโโโ โโโโโโโโโโ โ
โ โ
โ ๐ถ Access Points โ
โ โโโ Corp-WiFi -45dBm WPA2 โ
โ โโโ Guest-Net -52dBm OPEN โ
โ โโโ IoT-Devices -68dBm WPA2 โ
โ โ
โ ๐ฏ Capture โ
โ [Passive] [Capture] [Drop] โ
โ Target: None selected โ
โ [โถ Start Capture] โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/status |
System status |
| GET | /api/aps |
Access points |
| GET | /api/clients |
Clients |
| GET | /api/probes |
Probe requests |
| GET | /api/handshakes |
Captured handshakes |
| POST | /api/mode |
Change mode |
| POST | /api/target |
Set target |
| POST | /api/capture/start |
Start capture |
| POST | /api/deauth |
Send deauth |
| POST | /api/shutdown |
Shutdown device |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SHADOW ๐ 85% โ <- Header (18px)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ MODE: SCANNING โ <- Mode
โ โ
โ APs: 12 Clients: 24 โ <- Stats
โ Probes: 156 HS: 2 โ
โ โ
โ WiFi AP: Shadow-A3F2 โ <- AP Info
โ Pass: shadowpass123 โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ Connect to WiFi AP โ <- Instructions
โ Open http://192.168.4.1 โ
โ โ
โ Up: 2h 34m โ <- Uptime
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
250px ร 122px (2.13" diagonal)
MoMo-Shadow/
โโโ src/shadow/
โ โโโ __init__.py # Package init
โ โโโ main.py # Main orchestrator
โ โโโ config.py # Pydantic config
โ โโโ cli.py # Typer CLI
โ โ
โ โโโ core/ # Core functionality
โ โ โโโ scanner.py # WiFi scanner
โ โ โโโ capture.py # Handshake capture
โ โ โโโ deauth.py # Deauth attacks
โ โ โโโ hopper.py # Channel hopping
โ โ
โ โโโ ui/ # User interface
โ โ โโโ epaper.py # e-Paper driver
โ โ
โ โโโ web/ # Web UI
โ โ โโโ server.py # FastAPI server
โ โ
โ โโโ network/ # Network management
โ โ โโโ ap.py # WiFi AP (hostapd)
โ โ โโโ manager.py # Interface manager
โ โ โโโ nexmon.py # Nexmon monitor mode
โ โ
โ โโโ storage/ # Data persistence
โ โ โโโ database.py # SQLite storage
โ โ โโโ export.py # Hashcat export
โ โ
โ โโโ hardware/ # Hardware drivers
โ โโโ battery.py # Battery monitor
โ โโโ power.py # Power management
โ
โโโ config/
โ โโโ shadow.example.yml # Example config
โ
โโโ deploy/
โ โโโ install.sh # One-line installer (Nexmon + Shadow)
โ โโโ shadow.service # Systemd service
โ โโโ image/ # SD card image builder
โ
โโโ tests/ # Test suite
โโโ docs/ # Documentation
โโโ pyproject.toml # Project config
โโโ README.md # This file
MoMo-Shadow is part of the MoMo offensive security ecosystem.
โ๏ธ CLOUD/VPS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ GPU Cracking โ WireGuard โ
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ MoMo-NEXUS โ
โ Central C2 Hub โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโผโโโโโโ โโโโโโโโผโโโโโโโ โโโโโโโผโโโโโโ
โ MoMo โ โGhostBridge โ โ Shadow โ โ You are here
โ WiFi/BLE โ โ Net Implant โ โ Recon โ
โ Pi 5 โ โ NanoPi โ โ Pi Zero โ
โโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโ
| Project | Description | Platform |
|---|---|---|
| ๐ต MoMo | Full WiFi/BLE/SDR platform | Raspberry Pi 5 |
| ๐ข Nexus | Central C2 hub | Raspberry Pi 4 |
| ๐ป GhostBridge | Network implant | NanoPi R2S |
| ๐ญ Mimic | USB attack platform | Pi Zero 2W |
| ๐ฅท Shadow | Stealth recon (this project) | Pi Zero 2W |
# Start Shadow
shadow run [--config PATH] [--mode MODE] [--debug]
# Show status
shadow status
# Manage config
shadow config --show
shadow config --create /path/to/config.yml
# List interfaces
shadow interfaces
# Export captures
shadow export capture.pcap [--output /path/to/output]
# Version info
shadow version
# Web UI only
shadow web [--host 0.0.0.0] [--port 80]MoMo-Shadow is designed for authorized security testing and educational purposes only.
- โ Only use on networks you own or have explicit written permission to test
- โ Respect local laws regarding wireless security testing
- โ Follow responsible disclosure practices
- โ Unauthorized access to computer systems is illegal
- โ The developers are not responsible for misuse
This project is licensed under the MIT License - see the LICENSE file for details.
Part of the ๐ฅ MoMo Ecosystem
Stealth โข Portable โข Low Power
๐ต MoMo โข ๐ข Nexus โข ๐ป GhostBridge โข ๐ญ Mimic โข ๐ฅท Shadow
Made with โค๏ธ by the MoMo Team