⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠾⠛⢉⣉⣉⣉⡉⠛⠷⣦⣄⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠋⣠⣴⣿⣿⣿⣿⣿⡿⣿⣶⣌⠹⣷⡀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣆⠉⠻⣧⠘⣷⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠈⠀⢹⡇⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⢸⣿⠛⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⢸⡇⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷⠀⢿⡆⠈⠛⠻⠟⠛⠉⠀⠀⠀⠀⠀⠀⣾⠃⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣧⡀⠻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠃⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⠿⣦⣄⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣦⠀⠀⠈⠉⠛⠓⠲⠶⠖⠚⠋⠉⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⣠⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⢀⣄⠈⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠁
--- capture screenshots of suspected phishing domains
A Python-based CLI tool designed to automate the process of taking screenshots of web pages using Selenium, particularly focusing on domains that might be involved in typosquatting or phishing activities. This tool is tailored towards security professionals, digital forensics experts, or anyone interested in identifying potentially malicious web pages.
- Docker Integration: The included Dockerfile provides a secure and isolated environment for web scraping. Minimizing the risk to the host system when querying potentially malicious domains.
- Automated Screenshot Capture: Captures and saves screenshots of web pages from provided domain lists automatically.
- Headless Browsing: Supports headless mode for operations without a graphical user interface.
-
Clone This Repository:
git clone https://github.com/m-wentz/magnify
-
Navigate to the App Directory:
cd magnify
-
Install Required Packages:
pip install -r requirements.txt
To use magnify.py
, follow these steps:
- Prepare your domain list: Create a text file containing the list of domains you want to take screenshots of using a tool like DNSTwist, one domain per line.
- Run the script: Use the command line to run the script with the necessary arguments. Here's the basic syntax:
Replace
python magnify.py -f [path_to_domain_list_file] -o [output_directory]
[path_to_domain_list_file]
with the path to your domain list file, and[output_directory]
with the path where you want the screenshots to be saved. - Headless mode: If you want to run the browser in headless mode (without GUI), add the
--headless
flag:python magnify.py -f [path_to_domain_list_file] -o [output_directory] --headless
Here's an example command:
python magnify.py -f domains.txt -o screenshots
This command will take screenshots of the domains listed in domains.txt
and save them in a folder named screenshots
. For additional help and a list of all command-line options, run python magnify.py -h
or python magnify.py --help
.
This project includes a Dockerfile for easy setup and execution in a Docker container. Here's how to use it:
- Build the Docker Image: Navigate to the directory containing the Dockerfile and run the following command to build the Docker image:
- Run the Container: After building the image, run the container using:
- The
-v $(pwd)/screenshots:/usr/src/app/screenshots
argument mounts a local directory (screenshots
) to the container so that the screenshots can be accessed from your host machine. - Replace
/path/to/your/domain_list.txt
with the actual path to your domain list file inside the container. - If running in headless mode, add
--headless
to the end of the command.
docker build -t magnify .
This command creates an image named magnify
.
docker run -v $(pwd)/screenshots:/usr/src/app/screenshots magnify -f /path/to/your/domain_list.txt
Make sure your domain list file is accessible within the Docker container. You might need to adjust the file paths or use additional volume mounts as necessary.
Welcoming any contributions to this project. Here's how you can contribute:
- Fork the repository and create your branch from
main
. - Make your changes, ensuring they are well-documented and tested.
- Submit a pull request with a clear description of your updates.
Thanks for your interest in improving this project!