WebLinksLab is a comprehensive security analysis tool that provides:
- Malicious URL detection powered by VirusTotal API
- Safe URL interaction through isolated Docker environments
- Remote container deployment capabilities with NoVNC web-based Chrome access
-
URL Threat Analysis
Instant scanning using VirusTotal's threat intelligence database -
Secure Sandbox Environment
Docker-based isolation with:- NoVNC web interface
- Chromium browser
- Remote container deployment
-
API Integration
FastAPI backend for scalable operations
- Linux host system (Recommended: Ubuntu 20.04/22.04 LTS)
- Docker Engine 24.0+
- Python 3.8+
- Virtual environment (recommended)
- Ubuntu Server 22.04 LTS
- Docker Engine 24.0+
- SSH server access
- Minimum 2GB RAM (4GB recommended)
# Remove old Docker versions
sudo apt-get remove docker docker-engine docker.io containerd runc
# Set up repository
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Verify installation
sudo docker run hello-world
# add your user to docker group
sudo usermod -aG docker $USER
# reboot your system
sudo reboot -f git clone [Your-Repository-URL]
cd WebLinksLab
# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt- Obtain VirusTotal API key from VirusTotal Portal
- Configure
.envfile:
VIRUSTOTAL_API_KEY=your_api_key_here
REMOTE=remote_machine_ip# Copy project files to remote
scp -r novnc-chrome user@remote_ip:/path/to/destination
# SSH into remote machine
ssh user@remote_ip
# Build Docker image
cd novnc-chrome
docker build -t dev-chrome1 .# Generate SSH key pair
ssh-keygen -t rsa -b 4096
# Copy public key to remote
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_ipTerminal 1 (Backend):
source venv/bin/activate
python3 backend.pyTerminal 2 (API Server):
source venv/bin/activate
cd API
uvicorn api:app --reload- Access web interface at
http://localhost:8000 - Enter target URL for analysis
- Select isolation mode for container deployment:
- Local analysis: Basic scanning
- Remote isolation: Deploys secure container with web-based Chrome access
-
API Key Protection
Never commit.envfile to version control -
SSH Key Management
Use passphrase-protected keys and rotate regularly -
Container Security
Regularly update Docker images and apply security patches
Docker Permission Issues:
sudo usermod -aG docker $USER
newgrp docker