{"id":35800509,"url":"https://github.com/catsec/phishing2","last_synced_at":"2026-01-07T11:02:48.755Z","repository":{"id":323657464,"uuid":"1092687935","full_name":"catsec/phishing2","owner":"catsec","description":"A python / Docker deployment of a phishing scan shown from both the hacker and victim sides","archived":false,"fork":false,"pushed_at":"2025-11-11T11:53:52.000Z","size":133,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-11T13:05:58.961Z","etag":null,"topics":["awareness","security"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/catsec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-09T05:16:09.000Z","updated_at":"2025-11-11T11:53:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/catsec/phishing2","commit_stats":null,"previous_names":["catsec/phishing2"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/catsec/phishing2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catsec%2Fphishing2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catsec%2Fphishing2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catsec%2Fphishing2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catsec%2Fphishing2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catsec","download_url":"https://codeload.github.com/catsec/phishing2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catsec%2Fphishing2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28234797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-07T02:00:05.975Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awareness","security"],"created_at":"2026-01-07T11:01:49.281Z","updated_at":"2026-01-07T11:02:48.749Z","avatar_url":"https://github.com/catsec.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Phishing Awareness Training Demo | הדגמת מודעות לפישינג\n\n[English](#english) | [עברית](#hebrew)\n\n---\n\n\u003ca name=\"english\"\u003e\u003c/a\u003e\n## English\n\n### WARNING - Educational Use Only\n\nThis application simulates a phishing attack for **authorized security awareness training purposes ONLY**.\n\n**DO NOT:**\n- Use this for actual phishing attacks\n- Use on unauthorized systems\n- Enter real personal information\n- Use real credit card numbers\n\nThis tool is designed for educational demonstrations in controlled environments to help users recognize phishing attempts.\n\n---\n\n### Overview\n\nA Flask-based phishing awareness training application that demonstrates:\n- Fake banking phishing pages\n- SMS phishing (smishing) techniques\n- OTP capture methods\n- Real-time attacker control panel\n- Complete phishing attack flow simulation\n\n**Key Features:**\n- Multi-stage phishing flow (card capture → transaction alert → OTP)\n- Admin dashboard with SMS sending capability (Twilio integration)\n- Real-time data capture display\n- **Comprehensive activity logging** - Track all hacker and victim activities\n- Hebrew RTL interface for realistic Israeli banking simulation\n- Retro 80's hacker dashboard with Fira Code font\n- Theme toggle (classic hacker / modern gradient)\n- Session-based authentication with rate limiting\n- In-memory data storage (nothing persisted)\n- Automatic CSS cache busting via timestamp versioning\n- Cloudflare-compatible cache control headers\n\n---\n\n### Quick Start\n\n#### Prerequisites\n- Docker and Docker Compose **OR**\n- Python 3.13+\n- Twilio account (for SMS functionality)\n\n#### Installation\n\n**Option 1: Pre-built Docker Image (Fastest)**\n\n```bash\n# Pull the pre-built image from Docker Hub\ndocker pull ramprass/phishing-demo:latest\n\n# Run the container with environment variables\ndocker run -d \\\n  --name phishing-demo \\\n  -p 9999:9999 \\\n  -e TWILIO_ACCOUNT_SID=your_twilio_sid \\\n  -e TWILIO_AUTH_TOKEN=your_twilio_token \\\n  -e DEFAULT_FROM_NUMBER=BANK \\\n  -e DEFAULT_SMS_MESSAGE=\"Your SMS message here\" \\\n  -e COMPANY_HEBREW=בנק \\\n  -e ADMIN_USERNAME=admin \\\n  -e ADMIN_PASSWORD=change_this_password \\\n  -e PORT=9999 \\\n  -e FLASK_DEBUG=false \\\n  -e BEHIND_HTTPS_PROXY=false \\\n  -e DEFAULT_TO_NUMBER=+9725 \\\n  ramprass/phishing-demo:latest\n```\n\nThe application will be available at `http://localhost:9999`\n\n**Option 2: Docker Compose (Recommended)**\n\n```bash\n# Clone the repository\ngit clone https://github.com/catsec/phishing2.git\ncd phishing2\n\n# Edit docker-compose.yml and configure your credentials\n# Change TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, and other values\n\n# ⚠️ SECURITY WARNING: Change the default admin credentials!\n\n# Start the application\ndocker-compose up\n```\n\nThe application will be available at `http://localhost:9999`\n\n**Option 3: Python Virtual Environment**\n\n```bash\n# Create virtual environment\npython3.13 -m venv venv\n\n# Activate virtual environment\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n# Install dependencies\npip install flask twilio flask-wtf flask-limiter\n\n# Set required environment variables\nexport TWILIO_ACCOUNT_SID=\"your-twilio-sid\"\nexport TWILIO_AUTH_TOKEN=\"your-twilio-token\"\nexport DEFAULT_FROM_NUMBER=\"BANK\"\nexport DEFAULT_SMS_MESSAGE=\"This is a test message from your bank\"\nexport COMPANY_HEBREW=\"בנק\"\nexport ADMIN_USERNAME=\"admin\"\nexport ADMIN_PASSWORD=\"password\"\nexport PORT=\"9999\"\nexport FLASK_DEBUG=\"false\"\n\n# Run the application\npython phishing_demo.py\n```\n\n---\n\n### Usage\n\n#### For Demonstrators (Attackers)\n\n1. **Access Admin Panel:**\n   - Navigate to `http://localhost:9999/login`\n   - Login with credentials (default: admin/password)\n\n2. **Hacker Dashboard:**\n   - View captured credit card data\n   - View captured OTP codes\n   - Send SMS messages via Twilio\n   - Control victim flow (advance to next stage)\n   - Monitor all activity in real-time logs\n   - Clear data for new demonstrations (logs persist)\n   - Clear activity logs independently\n\n3. **SMS Sending:**\n   - Enter \"from\" number (can be alphanumeric like \"Cal\")\n   - Enter victim's phone number\n   - Compose message (supports Hebrew RTL)\n   - Click send\n\n4. **Flow Control:**\n   - Wait for victim to submit card details\n   - Click \"Continue to Transaction Alert\" when ready\n   - Victim proceeds through transaction alert → OTP entry\n   - View all captured data in real-time\n\n#### For Participants (Victims)\n\n1. **Receive SMS** with phishing link\n2. **Click link** → lands on fake banking page\n3. **Enter card details** → loading page (waits for attacker)\n4. **Transaction alert** → shows fake suspicious transaction\n5. **Enter OTP** → final capture\n6. **Success page** → shows reference number\n\n#### Test Data\n\nUse these test credentials for demonstrations:\n- **Name:** test test\n- **Card Number:** 4580123412341232\n- **Expiry:** 12/35\n- **CVV:** 123\n- **OTP:** Any 6 digits\n\n---\n\n### Project Structure\n\n```\nphishing2/\n├── phishing_demo.py          # Main Flask application\n├── logo.png                  # Logo image\n├── Dockerfile                # Docker configuration\n├── docker-compose.yml        # Docker Compose setup\n├── templates/                # HTML templates\n│   ├── phishing_form.html    # Initial card capture page\n│   ├── loading.html          # Waiting page\n│   ├── transaction_alert.html # Fake transaction alert\n│   ├── otp.html              # OTP entry page\n│   ├── verification_success.html # Final success page\n│   ├── hacker_dashboard.html # Admin control panel\n│   ├── login.html            # Admin login\n│   └── disclaimer.html       # Disclaimer/warning page\n└── static/\n    └── css/\n        └── main.css          # Unified stylesheet\n```\n\n---\n\n### Security Features\n\n- **Authentication \u0026 Sessions:**\n  - Session-based authentication for admin routes\n  - Session fixation protection (regenerates on login)\n  - Constant-time password comparison (prevents timing attacks)\n  - Session timeout (1 hour)\n  - HttpOnly, SameSite=Lax cookies\n  - Optional Secure flag for HTTPS proxy setups\n\n- **Input Protection:**\n  - CSRF protection on all forms (Flask-WTF)\n  - Comprehensive input validation (Luhn algorithm for cards, E.164 for phones)\n  - Input sanitization (HTML escaping)\n  - Length limits on all inputs\n\n- **Rate Limiting:**\n  - No application-level rate limiting (handled by Cloudflare)\n\n- **Security Headers:**\n  - X-Content-Type-Options: nosniff\n  - X-Frame-Options: DENY\n  - X-XSS-Protection: 1; mode=block\n  - Content-Security-Policy (restricts script/style sources)\n  - Cache-Control: no-cache (prevents caching while allowing sessions)\n  - CDN-Cache-Control: no-cache (Cloudflare-specific)\n\n- **Additional Security:**\n  - Thread-safe state management with locks\n  - No persistent data storage (in-memory only)\n  - Environment-based configuration (no hardcoded secrets)\n  - Auto-generated cryptographic SECRET_KEY per deployment\n\n---\n\n### Configuration\n\nAll configuration via environment variables:\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `TWILIO_ACCOUNT_SID` | Twilio account ID | ACxxxxxxxxxx |\n| `TWILIO_AUTH_TOKEN` | Twilio auth token | Your token |\n| `DEFAULT_FROM_NUMBER` | Default SMS sender | BANK or +1234567890 |\n| `DEFAULT_SMS_MESSAGE` | Default SMS template | Your message |\n| `COMPANY_HEBREW` | Company name in Hebrew | בנק |\n| `ADMIN_USERNAME` | Admin login username | admin |\n| `ADMIN_PASSWORD` | Admin login password | password |\n| `PORT` | Application port | 9999 |\n| `FLASK_DEBUG` | Debug mode | false |\n| `BEHIND_HTTPS_PROXY` | Behind HTTPS reverse proxy | false |\n| `DEFAULT_TO_NUMBER` | Default SMS recipient | +9725 |\n\n**Notes:**\n- The Flask SECRET_KEY is automatically generated at startup using a cryptographically secure random value\n- CSS version is automatically set based on deployment timestamp for cache busting\n- Set `BEHIND_HTTPS_PROXY=true` if behind Nginx Proxy Manager or similar HTTPS reverse proxies\n\nSee `docker-compose.yml` for default values.\n\n---\n\n### Endpoints\n\n**Victim Flow:**\n- `/` - Phishing form (Hebrew banking interface)\n- `/submit` - Card data submission\n- `/check_ready` - Polling endpoint for flow control\n- `/transaction_alert` - Fake transaction alert\n- `/otp` - OTP entry page\n- `/verify` - OTP verification \u0026 reference number generation\n- `/disclaimer` - Warning and information page\n\n**Admin Routes (Authentication Required):**\n- `/login` - Admin login page\n- `/hacker` - Main dashboard with activity logs\n- `/hacker/data` - JSON API for captured data\n- `/hacker/logs` - JSON API for activity logs\n- `/hacker/continue` - Advance victim flow\n- `/hacker/clear` - Clear captured data (logs persist)\n- `/hacker/clear_logs` - Clear activity logs\n- `/send` - SMS sending API\n\n---\n\n### Features\n\n- **Hebrew RTL Support:** Realistic Israeli banking interface\n- **Retro Hacker Theme:** 80's terminal aesthetic with Fira Code monospace font\n- **Theme Toggle:** Switch between classic hacker (green on black) and modern gradient themes\n- **Real-time Updates:** Auto-refreshing dashboard (2-second interval)\n- **Comprehensive Activity Logs:**\n  - Track all hacker actions (login attempts, SMS sending, flow control)\n  - Track all victim actions (page access, data entry, validation failures)\n  - Real-time log viewer with filtering (All/Hacker/Victim)\n  - Scrollable table (75vh height) with sticky header\n  - Automatic log rotation at 10,000 entries\n  - Color-coded entries with success/fail highlighting\n  - Independent log clearing (preserves logs when clearing captured data)\n- **Reference Number:** 10-digit unique reference based on card data\n- **Flow Control:** Attacker controls victim progression\n- **Prominent Warnings:** Red pulsing disclaimer footer on all pages\n- **Cache Busting:** Timestamp-based CSS versioning prevents caching issues during deployments\n- **CDN Compatible:** Works seamlessly behind Cloudflare and other CDNs\n\n---\n\n### License \u0026 Disclaimer\n\n**This software is for educational and authorized security training purposes only.**\n\nBy using this software, you agree to:\n- Only use it in controlled, authorized environments\n- Never use it for malicious purposes\n- Not enter real personal or financial information\n- Comply with all applicable laws and regulations\n\nThe authors and contributors are not responsible for misuse of this software.\n\n---\n\n### Development\n\n**Built with:**\n- Python 3.13\n- Flask 3.1+\n- Flask-WTF (CSRF protection)\n- Twilio Python SDK\n- Gunicorn (production WSGI server)\n- Docker\n\n**Fonts:**\n- Fira Code (Google Fonts) - Hacker dashboard\n\n**Created by:** catsec.com\n\n**Recent Updates:**\n- **NEW: Comprehensive Activity Logging System**\n  - Real-time tracking of all hacker and victim activities\n  - Filterable log viewer with 75vh scrollable table\n  - Automatic log rotation at 10,000 entries\n  - Independent log clearing (logs persist when clearing captured data)\n  - IP address tracking with proxy header support\n  - Color-coded success/fail indicators\n- Removed application-level rate limiting (now handled by Cloudflare)\n- Switched to production-ready Gunicorn server (replaced Flask dev server)\n- Added timestamp-based CSS cache busting for reliable deployments\n- Implemented comprehensive cache control headers (browser + Cloudflare)\n- Added theme toggle with retro hacker and modern gradient options\n- Switched to Fira Code font for authentic 80's terminal aesthetic\n- Enhanced security with timing attack protection and CSRF validation\n- Fixed CSRF token handling with session-compatible cache headers\n\n---\n\n\u003ca name=\"hebrew\"\u003e\u003c/a\u003e\n## עברית\n\n### אזהרה - לשימוש חינוכי בלבד\n\nאפליקציה זו מדמה התקפת פישינג **למטרות הדרכה מורשות בלבד**.\n\n**אין לעשות:**\n- שימוש למטרות פישינג אמיתיות\n- שימוש על מערכות לא מורשות\n- הזנת מידע אישי אמיתי\n- שימוש במספרי כרטיסי אשראי אמיתיים\n\nכלי זה מיועד להדגמות חינוכיות בסביבות מבוקרות כדי לעזור למשתמשים לזהות ניסיונות פישינג.\n\n---\n\n### סקירה כללית\n\nאפליקציית הדרכה מבוססת Flask המדגימה:\n- דפי פישינג מזויפים של בנקים\n- טכניקות פישינג SMS (smishing)\n- שיטות לכידת OTP\n- לוח בקרה של תוקף בזמן אמת\n- סימולציה של זרימת התקפת פישינג מלאה\n\n**תכונות עיקריות:**\n- זרימת פישינג רב-שלבית (לכידת כרטיס → התראת עסקה → OTP)\n- לוח ניהול מנהל עם יכולת שליחת SMS (אינטגרציית Twilio)\n- תצוגת לכידת נתונים בזמן אמת\n- ממשק עברי RTL לסימולציה ריאליסטית של בנקאות ישראלית\n- לוח בקרה רטרו בסגנון שנות ה-80 עם פונט Fira Code\n- החלפת ערכות נושא (האקר קלאסי / גרדיאנט מודרני)\n- אימות מבוסס session עם הגבלת קצב\n- אחסון נתונים בזיכרון (שום דבר לא נשמר)\n- ביטול מטמון CSS אוטומטי באמצעות גרסה מבוססת timestamp\n- תאימות לכותרות בקרת מטמון של Cloudflare\n\n---\n\n### התחלה מהירה\n\n#### דרישות מקדימות\n- Docker ו-Docker Compose **או**\n- Python 3.13+\n- חשבון Twilio (לפונקציונליות SMS)\n\n#### התקנה\n\n**אפשרות 1: Docker Image מוכן מראש (הכי מהיר)**\n\n```bash\n# משיכת ה-image המוכן מ-Docker Hub\ndocker pull ramprass/phishing-demo:latest\n\n# הרצת ה-container עם משתני סביבה\ndocker run -d \\\n  --name phishing-demo \\\n  -p 9999:9999 \\\n  -e TWILIO_ACCOUNT_SID=your_twilio_sid \\\n  -e TWILIO_AUTH_TOKEN=your_twilio_token \\\n  -e DEFAULT_FROM_NUMBER=BANK \\\n  -e DEFAULT_SMS_MESSAGE=\"הודעת SMS שלך כאן\" \\\n  -e COMPANY_HEBREW=בנק \\\n  -e ADMIN_USERNAME=admin \\\n  -e ADMIN_PASSWORD=change_this_password \\\n  -e PORT=9999 \\\n  -e FLASK_DEBUG=false \\\n  -e BEHIND_HTTPS_PROXY=false \\\n  -e DEFAULT_TO_NUMBER=+9725 \\\n  ramprass/phishing-demo:latest\n```\n\nהאפליקציה תהיה זמינה ב-`http://localhost:9999`\n\n**אפשרות 2: Docker Compose (מומלץ)**\n\n```bash\n# שיבוט המאגר\ngit clone https://github.com/catsec/phishing2.git\ncd phishing2\n\n# ערוך את docker-compose.yml והגדר את האישורים שלך\n# שנה TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN וערכים אחרים\n\n# ⚠️ אזהרת אבטחה: שנה את אישורי ברירת המחדל של המנהל!\n\n# הפעלת האפליקציה\ndocker-compose up\n```\n\nהאפליקציה תהיה זמינה ב-`http://localhost:9999`\n\n**אפשרות 3: סביבה וירטואלית של Python**\n\n```bash\n# יצירת סביבה וירטואלית\npython3.13 -m venv venv\n\n# הפעלת הסביבה הוירטואלית\nsource venv/bin/activate  # ב-Windows: venv\\Scripts\\activate\n\n# התקנת תלויות\npip install flask twilio flask-wtf flask-limiter\n\n# הגדרת משתני סביבה נדרשים\nexport TWILIO_ACCOUNT_SID=\"your-twilio-sid\"\nexport TWILIO_AUTH_TOKEN=\"your-twilio-token\"\nexport DEFAULT_FROM_NUMBER=\"BANK\"\nexport DEFAULT_SMS_MESSAGE=\"הודעת SMS שלך כאן\"\nexport COMPANY_HEBREW=\"בנק\"\nexport ADMIN_USERNAME=\"admin\"\nexport ADMIN_PASSWORD=\"password\"\nexport PORT=\"9999\"\nexport FLASK_DEBUG=\"false\"\n\n# הרצת האפליקציה\npython phishing_demo.py\n```\n\n---\n\n### שימוש\n\n#### למדגימים (תוקפים)\n\n1. **גישה ללוח הניהול:**\n   - ניווט ל-`http://localhost:9999/login`\n   - התחברות עם אישורים (ברירת מחדל: admin/password)\n\n2. **לוח בקרה:**\n   - צפייה בנתוני כרטיסי אשראי שנלכדו\n   - צפייה בקודי OTP שנלכדו\n   - שליחת הודעות SMS דרך Twilio\n   - שליטה בזרימת הקורבן (קידום לשלב הבא)\n   - מעקב אחר כל הפעילות בלוגים בזמן אמת\n   - ניקוי נתונים להדגמות חדשות (הלוגים נשמרים)\n   - ניקוי לוגי פעילות באופן עצמאי\n\n3. **שליחת SMS:**\n   - הזנת מספר \"מאת\" (יכול להיות אלפאנומרי כמו \"Cal\")\n   - הזנת מספר טלפון של הקורבן\n   - כתיבת הודעה (תומך בעברית RTL)\n   - לחיצה על שלח\n\n4. **בקרת זרימה:**\n   - המתנה לקורבן להגיש פרטי כרטיס\n   - לחיצה על \"Continue to Transaction Alert\" כשמוכן\n   - הקורבן ממשיך דרך התראת עסקה → הזנת OTP\n   - צפייה בכל הנתונים שנלכדו בזמן אמת\n\n#### למשתתפים (קורבנות)\n\n1. **קבלת SMS** עם קישור פישינג\n2. **לחיצה על הקישור** → נחיתה בדף בנקאות מזויף\n3. **הזנת פרטי כרטיס** → דף טעינה (ממתין לתוקף)\n4. **התראת עסקה** → מציג עסקה חשודה מזויפת\n5. **הזנת OTP** → לכידה סופית\n6. **דף הצלחה** → מציג מספר אסמכתא\n\n#### נתוני בדיקה\n\nהשתמש באישורים אלה להדגמות:\n- **שם:** test test\n- **מספר כרטיס:** 4580123412341232\n- **תוקף:** 12/35\n- **CVV:** 123\n- **OTP:** כל 6 ספרות\n\n---\n\n### מבנה הפרויקט\n\n```\nphishing2/\n├── phishing_demo.py          # אפליקציית Flask ראשית\n├── logo.png                  # תמונת לוגו\n├── Dockerfile                # תצורת Docker\n├── docker-compose.yml        # הגדרת Docker Compose\n├── templates/                # תבניות HTML\n│   ├── phishing_form.html    # דף לכידת כרטיס ראשוני\n│   ├── loading.html          # דף המתנה\n│   ├── transaction_alert.html # התראת עסקה מזויפת\n│   ├── otp.html              # דף הזנת OTP\n│   ├── verification_success.html # דף הצלחה סופי\n│   ├── hacker_dashboard.html # לוח בקרה של מנהל\n│   ├── login.html            # התחברות מנהל\n│   └── disclaimer.html       # דף אזהרה/מידע\n└── static/\n    └── css/\n        └── main.css          # גיליון סגנון מאוחד\n```\n\n---\n\n### תכונות אבטחה\n\n- **אימות ו-Sessions:**\n  - אימות מבוסס session למסלולי מנהל\n  - הגנה מפני session fixation (יצירה מחדש בהתחברות)\n  - השוואת סיסמאות בזמן קבוע (מניעת התקפות timing)\n  - פג תוקף session (שעה אחת)\n  - עוגיות HttpOnly, SameSite=Lax\n  - דגל Secure אופציונלי להגדרות HTTPS proxy\n\n- **הגנת קלט:**\n  - הגנת CSRF על כל הטפסים (Flask-WTF)\n  - אימות קלט מקיף (אלגוריתם Luhn לכרטיסים, E.164 לטלפונים)\n  - חיטוי קלט (HTML escaping)\n  - הגבלות אורך על כל הקלטים\n\n- **הגבלת קצב:**\n  - אין הגבלת קצב ברמת האפליקציה (מטופל על ידי Cloudflare)\n\n- **כותרות אבטחה:**\n  - X-Content-Type-Options: nosniff\n  - X-Frame-Options: DENY\n  - X-XSS-Protection: 1; mode=block\n  - Content-Security-Policy (מגביל מקורות script/style)\n  - Cache-Control: no-cache (מונע caching תוך כדי שמירת sessions)\n  - CDN-Cache-Control: no-cache (ספציפי ל-Cloudflare)\n\n- **אבטחה נוספת:**\n  - ניהול מצב thread-safe עם locks\n  - אין אחסון נתונים קבוע (בזיכרון בלבד)\n  - תצורה מבוססת סביבה (אין סודות מוקשים)\n  - SECRET_KEY קריפטוגרפי אוטומטי לכל deployment\n\n---\n\n### תצורה\n\nכל התצורה באמצעות משתני סביבה:\n\n| משתנה | תיאור | דוגמה |\n|-------|--------|--------|\n| `TWILIO_ACCOUNT_SID` | מזהה חשבון Twilio | ACxxxxxxxxxx |\n| `TWILIO_AUTH_TOKEN` | טוקן אימות Twilio | הטוקן שלך |\n| `DEFAULT_FROM_NUMBER` | שולח SMS ברירת מחדל | BANK או +1234567890 |\n| `DEFAULT_SMS_MESSAGE` | תבנית SMS ברירת מחדל | ההודעה שלך |\n| `COMPANY_HEBREW` | שם החברה בעברית | בנק |\n| `ADMIN_USERNAME` | שם משתמש להתחברות מנהל | admin |\n| `ADMIN_PASSWORD` | סיסמת מנהל | password |\n| `PORT` | פורט אפליקציה | 9999 |\n| `FLASK_DEBUG` | מצב debug | false |\n| `BEHIND_HTTPS_PROXY` | מאחורי reverse proxy של HTTPS | false |\n| `DEFAULT_TO_NUMBER` | נמען SMS ברירת מחדל | +9725 |\n\n**הערות:**\n- ה-SECRET_KEY של Flask נוצר אוטומטית בהפעלה באמצעות ערך אקראי מאובטח קריפטוגרפית\n- גרסת CSS מוגדרת אוטומטית על בסיס timestamp של deployment לביטול מטמון\n- הגדר `BEHIND_HTTPS_PROXY=true` אם מאחורי Nginx Proxy Manager או reverse proxies דומים של HTTPS\n\nראה `docker-compose.yml` לערכי ברירת מחדל.\n\n---\n\n### נקודות קצה\n\n**זרימת קורבן:**\n- `/` - טופס פישינג (ממשק בנקאי עברי)\n- `/submit` - הגשת נתוני כרטיס\n- `/check_ready` - נקודת polling לבקרת זרימה\n- `/transaction_alert` - התראת עסקה מזויפת\n- `/otp` - דף הזנת OTP\n- `/verify` - אימות OTP ויצירת מספר אסמכתא\n- `/disclaimer` - דף אזהרה ומידע\n\n**מסלולי מנהל (נדרש אימות):**\n- `/login` - דף התחברות מנהל\n- `/hacker` - לוח בקרה ראשי עם לוגי פעילות\n- `/hacker/data` - API JSON לנתונים שנלכדו\n- `/hacker/logs` - API JSON ללוגי פעילות\n- `/hacker/continue` - קידום זרימת קורבן\n- `/hacker/clear` - ניקוי נתונים שנלכדו (הלוגים נשמרים)\n- `/hacker/clear_logs` - ניקוי לוגי פעילות\n- `/send` - API שליחת SMS\n\n---\n\n### תכונות\n\n- **תמיכה בעברית RTL:** ממשק בנקאי ישראלי ריאליסטי\n- **ערכת נושא האקר רטרו:** אסתטיקה של טרמינל משנות ה-80 עם פונט Fira Code monospace\n- **החלפת ערכות נושא:** מעבר בין האקר קלאסי (ירוק על שחור) לערכות נושא גרדיאנט מודרניות\n- **עדכונים בזמן אמת:** לוח בקרה מתרענן אוטומטית (מרווח של 2 שניות)\n- **מספר אסמכתא:** אסמכתא ייחודית בת 10 ספרות מבוססת נתוני כרטיס\n- **בקרת זרימה:** התוקף שולט בהתקדמות הקורבן\n- **אזהרות בולטות:** כותרת אזהרה אדומה פועמת בכל הדפים\n- **ביטול מטמון:** גרסה מבוססת timestamp של CSS מונעת בעיות caching במהלך deployments\n- **תאימות CDN:** עובד בצורה חלקה מאחורי Cloudflare ו-CDNs אחרים\n\n---\n\n### רישיון ואזהרה\n\n**תוכנה זו מיועדת למטרות חינוכיות והדרכה מורשות בלבד.**\n\nעל ידי שימוש בתוכנה זו, אתה מסכים:\n- להשתמש בה רק בסביבות מבוקרות ומורשות\n- לעולם לא להשתמש בה למטרות זדוניות\n- לא להזין מידע אישי או פיננסי אמיתי\n- לציית לכל החוקים והתקנות החלים\n\nהמחברים והתורמים אינם אחראים לשימוש לרעה בתוכנה זו.\n\n---\n\n### פיתוח\n\n**נבנה עם:**\n- Python 3.13\n- Flask 3.1+\n- Flask-WTF (הגנת CSRF)\n- Twilio Python SDK\n- Gunicorn (שרת WSGI לייצור)\n- Docker\n\n**פונטים:**\n- Fira Code (Google Fonts) - לוח בקרה האקר\n\n**נוצר על ידי:** catsec.com\n\n**עדכונים אחרונים:**\n- **חדש: מערכת לוגי פעילות מקיפה**\n  - מעקב בזמן אמת אחר כל פעילויות התוקף והקורבן\n  - מציג לוגים ניתן לסינון עם טבלה גלילה בגובה 75vh\n  - סבב אוטומטי של לוגים ב-10,000 רשומות\n  - ניקוי לוגים עצמאי (הלוגים נשמרים בעת ניקוי נתונים שנלכדו)\n  - מעקב כתובות IP עם תמיכה בכותרות proxy\n  - אינדיקטורים צבעוניים להצלחה/כישלון\n- הוסרה הגבלת קצב ברמת האפליקציה (מטופל כעת על ידי Cloudflare)\n- מעבר לשרת Gunicorn ייצור (החלפת שרת הפיתוח של Flask)\n- נוסף ביטול מטמון CSS מבוסס timestamp עבור deployments אמינים\n- יושמו כותרות בקרת מטמון מקיפות (דפדפן + Cloudflare)\n- נוספה החלפת ערכות נושא עם אפשרויות האקר רטרו וגרדיאנט מודרני\n- מעבר לפונט Fira Code עבור אסתטיקה אותנטית של טרמינל משנות ה-80\n- שיפור אבטחה עם הגנה מפני התקפות timing ואימות CSRF\n- תוקן טיפול ב-token CSRF עם כותרות מטמון תואמות session\n\n---\n\n## Support | תמיכה\n\nFor issues, questions, or contributions, please contact catsec.com\n\nלבעיות, שאלות או תרומות, אנא צור קשר עם catsec.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatsec%2Fphishing2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatsec%2Fphishing2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatsec%2Fphishing2/lists"}