Skip to content

sudo-DC404/Darkapp

Repository files navigation

Darkapp

A powerful Open Source Intelligence (OSINT) toolkit for WhatsApp reconnaissance and metadata collection during authorized penetration testing engagements.

Darkapp

Screenshot From 2025-11-25 00-06-47

A powerful Open Source Intelligence (OSINT) toolkit for WhatsApp reconnaissance and metadata collection during authorized penetration testing engagements.

⚠️ Legal Disclaimer

FOR AUTHORIZED PENETRATION TESTING ONLY

This toolkit is designed exclusively for:

  • Authorized penetration testing engagements with written permission
  • Security research with proper authorization
  • Educational purposes in controlled environments
  • Defensive security operations

You MUST have:

  • Written authorization from the target organization
  • Documented scope of testing
  • Compliance with all applicable laws and regulations

Unauthorized use may violate:

  • Computer Fraud and Abuse Act (CFAA)
  • WhatsApp Terms of Service
  • Privacy laws (GDPR, CCPA, etc.)
  • Local and international laws

The authors assume no liability for misuse of this tool.

πŸš€ Features

1. Phone Number Validator

  • βœ“ Check if phone numbers are registered on WhatsApp
  • βœ“ Bulk validation from file
  • βœ“ Extract basic profile information
  • βœ“ Export results (JSON, CSV)

2. Profile Scraper

  • βœ“ Extract profile pictures
  • βœ“ Scrape "About" sections
  • βœ“ Collect status messages
  • βœ“ Gather profile metadata
  • βœ“ Bulk profile scraping

3. Activity Tracker

  • βœ“ Real-time online/offline monitoring
  • βœ“ Activity pattern analysis
  • βœ“ Typing status detection
  • βœ“ Last seen information
  • βœ“ Duration-based tracking with statistics
  • βœ“ Live dashboard display

4. Group Intelligence

  • βœ“ List all groups
  • βœ“ Extract group member lists
  • βœ“ Identify group administrators
  • βœ“ Scrape group descriptions
  • βœ“ Analyze group invite links

5. Advanced Reporting

  • βœ“ Comprehensive HTML reports
  • βœ“ JSON export for automation
  • βœ“ CSV export for spreadsheet analysis
  • βœ“ Visual activity timelines
  • βœ“ Statistical analysis

6. Stealth Features

  • βœ“ Random delays between actions
  • βœ“ User agent rotation
  • βœ“ Rate limiting
  • βœ“ Persistent sessions
  • βœ“ Headless mode support

πŸ“‹ Requirements

  • Python 3.8+
  • Google Chrome browser
  • ChromeDriver (automatically managed)
  • WhatsApp account for Web access

πŸ› οΈ Installation

Quick Install

cd Darkapp
pip install -r requirements.txt
chmod +x darkapp.py

Manual Installation

# Install Python dependencies
pip install selenium webdriver-manager requests beautifulsoup4 pandas
pip install openpyxl python-dotenv colorama rich pillow phonenumbers
pip install aiohttp qrcode pyfiglet tqdm

# Install Chrome (if not already installed)
# Ubuntu/Debian:
sudo apt update && sudo apt install -y google-chrome-stable

# Arch Linux:
sudo pacman -S chromium

πŸ“– Usage

Basic Usage

# Start the toolkit
python3 darkapp.py

# Run in headless mode (no GUI)
python3 darkapp.py --headless

# Specify engagement name
python3 darkapp.py --engagement "ClientName Pentest 2025"

First Time Setup

  1. Launch the toolkit:

    python3 darkapp.py
  2. Scan QR Code:

    • WhatsApp Web will open in Chrome
    • Scan the QR code with your phone
    • The session will be saved for future use
  3. Navigate the menu:

    • Select operations from the interactive menu
    • Follow on-screen prompts

Module Usage

Phone Number Validation

1. Select "Phone Validator" from main menu
2. Choose single or bulk validation
3. For bulk: prepare a text file with numbers (one per line)
   Example format:
   +1234567890
   +447700900000
   +919876543210
4. Export results in JSON or CSV format

Profile Scraping

1. Select "Profile Scraper"
2. Enter target phone number(s)
3. Tool will extract:
   - Profile name
   - Profile picture (saved to data/)
   - About/Status
   - Metadata
4. Export scraped profiles

Activity Tracking

1. Select "Activity Tracker"
2. Enter target phone number
3. Specify:
   - Duration (minutes)
   - Check interval (seconds)
4. Monitor real-time activity:
   - Online/Offline status
   - Typing indicators
   - Last seen times
5. View statistical analysis
6. Export activity log

Group Intelligence

1. Select "Group Intelligence"
2. Options:
   - List all groups you're part of
   - Get detailed info on specific group
   - Analyze group invite links
3. Extract:
   - Member lists
   - Admin identities
   - Group metadata
4. Export group data

Report Generation

1. Collect data using various modules
2. Select "Generate Report"
3. Choose format:
   - JSON: For automation/parsing
   - CSV: For spreadsheet analysis
   - HTML: Professional presentation report
   - All: Generate all formats
4. Reports saved to exports/ directory

πŸ“ Project Structure

Darkapp/
β”œβ”€β”€ darkapp.py                  # Main CLI interface
β”œβ”€β”€ config.py                   # Configuration settings
β”œβ”€β”€ utils.py                    # Utility functions
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ README.md                   # Documentation
β”œβ”€β”€ modules/
β”‚   β”œβ”€β”€ phone_validator.py      # Phone validation module
β”‚   β”œβ”€β”€ profile_scraper.py      # Profile scraping module
β”‚   β”œβ”€β”€ activity_tracker.py     # Activity monitoring module
β”‚   β”œβ”€β”€ group_intel.py          # Group intelligence module
β”‚   └── report_generator.py     # Report generation module
β”œβ”€β”€ data/                       # Profile pictures and data
β”œβ”€β”€ logs/                       # Activity logs
β”œβ”€β”€ exports/                    # Generated reports
└── chrome_profile/             # Persistent Chrome session

βš™οΈ Configuration

Edit config.py to customize:

# Rate limiting (seconds)
MIN_DELAY = 2
MAX_DELAY = 5

# Tracking settings
TRACKING_INTERVAL = 30
MAX_TRACKING_DURATION = 3600

# Browser settings
HEADLESS_MODE = False
IMPLICIT_WAIT = 10

# Export format
EXPORT_FORMAT = "all"  # json, csv, html, all

🎯 Use Cases

Authorized Penetration Testing

  • Enumerate employee WhatsApp accounts
  • Map organizational communication channels
  • Identify key personnel and hierarchies
  • Test social engineering attack surfaces

Security Awareness Training

  • Demonstrate OSINT capabilities
  • Show metadata exposure risks
  • Educate on privacy settings

Red Team Operations

  • Reconnaissance phase intelligence gathering
  • Target profiling and behavior analysis
  • Communication pattern mapping

πŸ”’ Operational Security

Best Practices:

  1. Use a dedicated phone number for OSINT operations
  2. Create a separate WhatsApp account not linked to personal identity
  3. Use VPN to mask IP address
  4. Enable headless mode to reduce fingerprinting
  5. Respect rate limits to avoid detection
  6. Document all activities for engagement reporting
  7. Delete sensitive data after engagement completion

πŸ“Š Export Formats

JSON

{
  "engagement": "Assessment Name",
  "generated": "2025-01-15 14:30:00",
  "phone_validation": [...],
  "profiles": [...],
  "activity_logs": [...],
  "groups": [...]
}

CSV

Separate CSV files for each data type:

  • phone_validation_20250115.csv
  • profiles_20250115.csv
  • activity_log_20250115.csv
  • groups_20250115.csv

HTML

Professional HTML report with:

  • Executive summary
  • Visual timelines
  • Statistical analysis
  • Detailed findings
  • Recommendations

πŸ› Troubleshooting

Issue: QR Code Won't Load

Solution: Update Chrome and ChromeDriver to latest versions

Issue: "Element not found" errors

Solution: Increase IMPLICIT_WAIT in config.py

Issue: Too many requests / Getting blocked

Solution: Increase delays in config.py, use headless mode

Issue: Profile pictures not downloading

Solution: Check permissions on data/ directory

Issue: Session expires frequently

Solution: Ensure chrome_profile/ directory is persistent

πŸ”§ Advanced Usage

Python API

from modules.phone_validator import PhoneValidator
from modules.profile_scraper import ProfileScraper

# Initialize
validator = PhoneValidator(headless=True)
validator.start()

# Check numbers
result = validator.check_number("+1234567890")
print(result)

# Scrape profile
scraper = ProfileScraper(driver=validator.driver)
profile = scraper.scrape_profile("+1234567890")

# Cleanup
validator.stop()

Automation Script

#!/usr/bin/env python3
import sys
from modules.phone_validator import PhoneValidator
from modules.report_generator import ReportGenerator

# Load targets
targets = open("targets.txt").read().splitlines()

# Run validation
validator = PhoneValidator(headless=True)
validator.start()
results = validator.check_bulk(targets)
validator.stop()

# Generate report
report = ReportGenerator("Automated Scan")
report.add_data("phone_validation", results)
report.generate_html_report()

🀝 Contributing

This is a security research tool. Contributions welcome:

  • Bug fixes
  • New OSINT modules
  • Improved stealth techniques
  • Better reporting features

DO NOT contribute features that:

  • Bypass WhatsApp security controls
  • Enable mass surveillance
  • Facilitate harassment or stalking

πŸ“„ License

This tool is provided for educational and authorized security testing purposes only.

πŸ™ Credits

Developed for the penetration testing community.

Built with:

  • Selenium WebDriver
  • Rich CLI framework
  • Pandas data analysis
  • Beautiful Soup parsing

πŸ“ž Support

For issues and questions:

  • Check troubleshooting section
  • Review logs in logs/ directory
  • Ensure proper authorization before use

Remember: With great power comes great responsibility. Use ethically and legally.

About

A powerful Open Source Intelligence (OSINT) toolkit for WhatsApp reconnaissance and metadata collection during authorized penetration testing engagements.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors