EyeWitness is designed to take screenshots of websites, provide some server header info, and identify default credentials if possible.
Python
5,869
1,153 commits
updated Jan 5, 2026
EyeWitness is designed to take screenshots of websites, provide server header info, and identify default credentials if known. Now powered by Chromium browser for better reliability and easier installation.
EyeWitness now uses Python virtual environments for all installations, providing:
eyewitness-venv/ directory to remove everythingeyewitness-venv/ directory with isolated PythonEyeWitness/
βββ eyewitness-venv/ # π Virtual environment (isolated Python packages)
β βββ bin/activate # Linux/macOS activation script
β βββ Scripts/activate.bat # Windows activation script
βββ Python/
β βββ EyeWitness.py # π Main script (runs in virtual environment)
βββ setup/ # Setup scripts and requirements
π₯ NEW: EyeWitness now uses Python virtual environments for zero conflicts and bulletproof installation across all platforms!
Note: Docker support is currently in development. Please use native installation options below for now.
Automated setup with Python virtual environment:
# 1. Open PowerShell as Administrator
# 2. Navigate to EyeWitness directory
cd path\to\EyeWitness\setup
# 3. Run the setup script (creates virtual environment)
.\setup.ps1
# 4. Test installation by activating virtual environment
cd ..
eyewitness-venv\Scripts\activate.bat
python Python\EyeWitness.py --single https://example.com
What gets installed:
Production-ready setup with Python virtual environment:
# 1. Navigate to setup directory
cd EyeWitness/setup
# 2. Run the setup script (creates virtual environment)
sudo ./setup.sh
# 3. Test installation by activating virtual environment
cd ..
source eyewitness-venv/bin/activate
python Python/EyeWitness.py --single https://example.com
What gets installed:
π― Benefits:
Supported Linux Distributions:
Homebrew-based setup with Python virtual environment:
# 1. Install Chrome via Homebrew
brew install --cask google-chrome
# 2. Navigate to setup directory and run setup
cd EyeWitness/setup
sudo ./setup.sh
# 3. Test installation by activating virtual environment
cd ..
source eyewitness-venv/bin/activate
python Python/EyeWitness.py --single https://example.com
What gets installed:
After running the setup script, activate the virtual environment and run EyeWitness:
π§ Linux/macOS:
# 1. Activate the virtual environment
source eyewitness-venv/bin/activate
# 2. Run EyeWitness (you're now in the isolated environment)
python Python/EyeWitness.py --single https://example.com
python Python/EyeWitness.py -f urls.txt
python Python/EyeWitness.py -x nmap_scan.xml
python Python/EyeWitness.py -f urls.txt -d /path/to/output
# 3. When finished, deactivate the virtual environment
deactivate
πͺ Windows:
# 1. Activate the virtual environment
eyewitness-venv\Scripts\activate.bat
# 2. Run EyeWitness (you're now in the isolated environment)
python Python\EyeWitness.py --single https://example.com
python Python\EyeWitness.py -f urls.txt
python Python\EyeWitness.py -x nmap_scan.xml
python Python\EyeWitness.py -f urls.txt -d C:\path\to\output
# 3. When finished, deactivate the virtual environment
deactivate
# Activate virtual environment first
source eyewitness-venv/bin/activate # Linux/macOS
eyewitness-venv\Scripts\activate.bat # Windows
# Create a sample config file
python Python/EyeWitness.py --create-config
# Use a config file
python Python/EyeWitness.py -f urls.txt --config ~/.eyewitness/config.json
# Activate virtual environment first
source eyewitness-venv/bin/activate # Linux/macOS
eyewitness-venv\Scripts\activate.bat # Windows
# Validate URLs without taking screenshots
python Python/EyeWitness.py -f urls.txt --validate-urls
# Skip validation (use with caution)
python Python/EyeWitness.py -f urls.txt --skip-validation
# Activate virtual environment first
source eyewitness-venv/bin/activate # Linux/macOS
eyewitness-venv\Scripts\activate.bat # Windows
# Adjust threads based on your system (default: auto-detected)
python Python/EyeWitness.py -f urls.txt --threads 5
# Increase timeout for slow connections
python Python/EyeWitness.py -f urls.txt --timeout 30
# Add delays and jitter
python Python/EyeWitness.py -f urls.txt --delay 2 --jitter 5
# Use proxy
python Python/EyeWitness.py -f urls.txt --proxy-ip 127.0.0.1 --proxy-port 8080
# Custom output directory
python Python/EyeWitness.py -f urls.txt -d /path/to/output
# Resume a previous scan
python Python/EyeWitness.py --resume /path/to/output/ew.db
EyeWitness automatically detects your system resources and adjusts accordingly:
Create a config file to save your preferred settings:
{
"threads": 10,
"timeout": 30,
"delay": 0,
"jitter": 0,
"user_agent": "Custom User Agent",
"proxy_ip": "127.0.0.1",
"proxy_port": 8080,
"output_dir": "./sessions",
"prepend_https": false,
"show_selenium": false,
"resolve": false,
"skip_validation": false,
"results_per_page": 25,
"max_retries": 2
}
Chromium/ChromeDriver not found:
sudo ./setup.sh in setup/ directory.\setup.ps1 as Administrator in setup\ directorysudo ./setup.sh in setup/ directory (after brew install --cask google-chrome)Virtual environment issues:
Connection timeouts:
--timeout 60High memory usage:
--threads 5Permission errors:
All errors now include specific troubleshooting steps. For example:
EyeWitness generates:
report.html - Main report with screenshotsscreens/ - Screenshot imagessource/ - Page source codeew.db - SQLite database for resume capabilityvenv module support (standard in most Python installations)π Note: The setup script handles all dependencies automatically. You just need Python 3.7+ and admin privileges.
This fork includes significant modernization:
E-Mail: GetOffensive [@] redsiege [dot] com
EyeWitness is licensed under the GNU General Public License v3.0.
(top 24 of 40)
13,993 followers Β· starred Sep 2017
337 followers Β· starred May 2014
3,016 followers Β· starred Nov 2015
5,857 followers Β· starred Feb 2018
EyeWitness is designed to take screenshots of websites, provide some server header info, and identify default credentials if possible.
Python
5,869
1,153 commits
updated Jan 5, 2026
EyeWitness is designed to take screenshots of websites, provide server header info, and identify default credentials if known. Now powered by Chromium browser for better reliability and easier installation.
EyeWitness now uses Python virtual environments for all installations, providing:
eyewitness-venv/ directory to remove everythingeyewitness-venv/ directory with isolated PythonEyeWitness/
βββ eyewitness-venv/ # π Virtual environment (isolated Python packages)
β βββ bin/activate # Linux/macOS activation script
β βββ Scripts/activate.bat # Windows activation script
βββ Python/
β βββ EyeWitness.py # π Main script (runs in virtual environment)
βββ setup/ # Setup scripts and requirements
π₯ NEW: EyeWitness now uses Python virtual environments for zero conflicts and bulletproof installation across all platforms!
Note: Docker support is currently in development. Please use native installation options below for now.
Automated setup with Python virtual environment:
# 1. Open PowerShell as Administrator
# 2. Navigate to EyeWitness directory
cd path\to\EyeWitness\setup
# 3. Run the setup script (creates virtual environment)
.\setup.ps1
# 4. Test installation by activating virtual environment
cd ..
eyewitness-venv\Scripts\activate.bat
python Python\EyeWitness.py --single https://example.com
What gets installed:
Production-ready setup with Python virtual environment:
# 1. Navigate to setup directory
cd EyeWitness/setup
# 2. Run the setup script (creates virtual environment)
sudo ./setup.sh
# 3. Test installation by activating virtual environment
cd ..
source eyewitness-venv/bin/activate
python Python/EyeWitness.py --single https://example.com
What gets installed:
π― Benefits:
Supported Linux Distributions:
Homebrew-based setup with Python virtual environment:
# 1. Install Chrome via Homebrew
brew install --cask google-chrome
# 2. Navigate to setup directory and run setup
cd EyeWitness/setup
sudo ./setup.sh
# 3. Test installation by activating virtual environment
cd ..
source eyewitness-venv/bin/activate
python Python/EyeWitness.py --single https://example.com
What gets installed:
After running the setup script, activate the virtual environment and run EyeWitness:
π§ Linux/macOS:
# 1. Activate the virtual environment
source eyewitness-venv/bin/activate
# 2. Run EyeWitness (you're now in the isolated environment)
python Python/EyeWitness.py --single https://example.com
python Python/EyeWitness.py -f urls.txt
python Python/EyeWitness.py -x nmap_scan.xml
python Python/EyeWitness.py -f urls.txt -d /path/to/output
# 3. When finished, deactivate the virtual environment
deactivate
πͺ Windows:
# 1. Activate the virtual environment
eyewitness-venv\Scripts\activate.bat
# 2. Run EyeWitness (you're now in the isolated environment)
python Python\EyeWitness.py --single https://example.com
python Python\EyeWitness.py -f urls.txt
python Python\EyeWitness.py -x nmap_scan.xml
python Python\EyeWitness.py -f urls.txt -d C:\path\to\output
# 3. When finished, deactivate the virtual environment
deactivate
# Activate virtual environment first
source eyewitness-venv/bin/activate # Linux/macOS
eyewitness-venv\Scripts\activate.bat # Windows
# Create a sample config file
python Python/EyeWitness.py --create-config
# Use a config file
python Python/EyeWitness.py -f urls.txt --config ~/.eyewitness/config.json
# Activate virtual environment first
source eyewitness-venv/bin/activate # Linux/macOS
eyewitness-venv\Scripts\activate.bat # Windows
# Validate URLs without taking screenshots
python Python/EyeWitness.py -f urls.txt --validate-urls
# Skip validation (use with caution)
python Python/EyeWitness.py -f urls.txt --skip-validation
# Activate virtual environment first
source eyewitness-venv/bin/activate # Linux/macOS
eyewitness-venv\Scripts\activate.bat # Windows
# Adjust threads based on your system (default: auto-detected)
python Python/EyeWitness.py -f urls.txt --threads 5
# Increase timeout for slow connections
python Python/EyeWitness.py -f urls.txt --timeout 30
# Add delays and jitter
python Python/EyeWitness.py -f urls.txt --delay 2 --jitter 5
# Use proxy
python Python/EyeWitness.py -f urls.txt --proxy-ip 127.0.0.1 --proxy-port 8080
# Custom output directory
python Python/EyeWitness.py -f urls.txt -d /path/to/output
# Resume a previous scan
python Python/EyeWitness.py --resume /path/to/output/ew.db
EyeWitness automatically detects your system resources and adjusts accordingly:
Create a config file to save your preferred settings:
{
"threads": 10,
"timeout": 30,
"delay": 0,
"jitter": 0,
"user_agent": "Custom User Agent",
"proxy_ip": "127.0.0.1",
"proxy_port": 8080,
"output_dir": "./sessions",
"prepend_https": false,
"show_selenium": false,
"resolve": false,
"skip_validation": false,
"results_per_page": 25,
"max_retries": 2
}
Chromium/ChromeDriver not found:
sudo ./setup.sh in setup/ directory.\setup.ps1 as Administrator in setup\ directorysudo ./setup.sh in setup/ directory (after brew install --cask google-chrome)Virtual environment issues:
Connection timeouts:
--timeout 60High memory usage:
--threads 5Permission errors:
All errors now include specific troubleshooting steps. For example:
EyeWitness generates:
report.html - Main report with screenshotsscreens/ - Screenshot imagessource/ - Page source codeew.db - SQLite database for resume capabilityvenv module support (standard in most Python installations)π Note: The setup script handles all dependencies automatically. You just need Python 3.7+ and admin privileges.
This fork includes significant modernization:
E-Mail: GetOffensive [@] redsiege [dot] com
EyeWitness is licensed under the GNU General Public License v3.0.
(top 24 of 40)
13,993 followers Β· starred Sep 2017
337 followers Β· starred May 2014
3,016 followers Β· starred Nov 2015
5,857 followers Β· starred Feb 2018