Deploy Watchdog: Open-Source Asset Management & Security Scanning Platform

This guide introduces Watchdog, an upgraded, web-based security platform derived from Bayonet, and provides step-by-step instructions for installing, configuring, and deploying it across multiple Ubuntu nodes, including database setup, Flask service launch, and activation of sub-domain, port, URL, and Xray scanning modules.

Software Development Quality
Software Development Quality
Software Development Quality
Deploy Watchdog: Open-Source Asset Management & Security Scanning Platform

Introduction

Bayonet is an integrated web‑based security tool suite that helps penetration testers manage IT assets.

Features

Sub‑domain scanning: oneforall

Port service scanning: Shodan + asynchronous socket + Nmap (IP database, CDN detection)

URL availability probing

Browser‑driven crawler: crawlergo

Passive vulnerability scanning: xray

Watchdog – the upgraded version

Watchdog is a modified Bayonet with redesigned database, web interface, and scanning modules; it is currently under development.

Demo

Three VPS are deployed: node a runs the database, web server, and client tools; nodes b and c run only the client tools.

Installation

Example on a fresh Ubuntu 16.04 system.
# 1. Install Python 3 environment (Miniconda recommended)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh  # follow prompts

# 2. Create a Python 3.8 environment
conda create --name python python=3.8
conda activate python

# 3. Install required system packages
apt-get update
apt install build-essential libssl-dev libffi-dev python3-dev
apt install nmap
sudo apt-get install chromium-browser

# 4. Install Python dependencies
git clone https://github.com/CTF-MissFeng/Watchdog.git
cd Watchdog
pip install -r requirements.txt

# 5. Install and configure PostgreSQL
apt install postgresql postgresql-contrib
sudo -u postgres psql
\password postgres

# 6. Enable remote access for PostgreSQL (modify postgresql.conf and pg_hba.conf)

# 7. Adjust project configuration files
vim Watchdog/web/config.py
vim Watchdog/client/database.py

# 8. Run Watchdog
cd Watchdog
export FLASK_APP=app.py:APP
flask createdb
flask createuser   # default root/qazxsw@123
flask run -p 80 -h 0.0.0.0
nohup flask run -p 80 -h 0.0.0.0 > web.log 2>&1 &

# 9. Configure and start each tool module
# Sub‑domain scanning (oneforall) – set Shodan API key in client/subdomain/oneforall/config.py
cd client/subdomain/oneforall
nohup python -u sbudomain_run.py > dns.log 2>&1 &
cat dns.log

# Port scanning
cd client/portscan
nohup python -u portscan_run.py > port.log 2>&1 &
cat port.log

# URL probing
cd client/urlscan/url_probe
nohup python -u urlscan_run.py > url.log 2>&1 &
cat url.log

# Xray scanning
cd client/urlscan/xray
nohup python -u xray_run.py > xray.log 2>&1 &
cat xray.log

Multi‑node deployment

Additional nodes do not need the database or web server; they only require the client environment and a database connection pointing to the primary node.

Related Links

DevSecOps研发安全实践—测试篇

DevOps中安全测试工具推荐

【安全测试】Ostorlab:一款功能强大的资产安全扫描平台

deploymentOpen Sourceasset managementWatchdogPenetration Testing
Software Development Quality
Written by

Software Development Quality

Discussions on software development quality, R&D efficiency, high availability, technical quality, quality systems, assurance, architecture design, tool platforms, test development, continuous delivery, continuous testing, etc. Contact me with any article questions.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.