Skip to content

A Python-based CLI tool designed to automate the process of taking screenshots of malicious web pages using Selenium.

License

Notifications You must be signed in to change notification settings

m-wentz/magnify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠾⠛⢉⣉⣉⣉⡉⠛⠷⣦⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠋⣠⣴⣿⣿⣿⣿⣿⡿⣿⣶⣌⠹⣷⡀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣆⠉⠻⣧⠘⣷⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠈⠀⢹⡇⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⢸⣿⠛⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⢸⡇⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷⠀⢿⡆⠈⠛⠻⠟⠛⠉⠀⠀⠀⠀⠀⠀⣾⠃⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣧⡀⠻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠃⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⠿⣦⣄⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣦⠀⠀⠈⠉⠛⠓⠲⠶⠖⠚⠋⠉⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣄⠈⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  ⠁                                  
--- capture screenshots of suspected phishing domains
License: MIT

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.

Features

  • 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.

Prerequisites

  • Python 3.x
  • pip (Python package manager)

Installation

  1. Clone This Repository:
    git clone https://github.com/m-wentz/magnify
  2. Navigate to the App Directory:
    cd magnify
  3. Install Required Packages:
    pip install -r requirements.txt

Usage

To use magnify.py, follow these steps:

  1. 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.
  2. Run the script: Use the command line to run the script with the necessary arguments. Here's the basic syntax:
    python magnify.py -f [path_to_domain_list_file] -o [output_directory]
    Replace [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.
  3. 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.

Running with Docker (Optional)

This project includes a Dockerfile for easy setup and execution in a Docker container. Here's how to use it:

  1. Build the Docker Image: Navigate to the directory containing the Dockerfile and run the following command to build the Docker image:
  2. docker build -t magnify .

    This command creates an image named magnify.

  3. Run the Container: After building the image, run the container using:
  4. docker run -v $(pwd)/screenshots:/usr/src/app/screenshots magnify -f /path/to/your/domain_list.txt
    • 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.

    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.

Contributing

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!

Let's Connect!

LinkedIn GitHub

About

A Python-based CLI tool designed to automate the process of taking screenshots of malicious web pages using Selenium.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published