What the Watcher does
The watcher continuously monitors your monitored assets and bounty programs and notifies you about relevant changes. Key capabilities:
New bug-bounty programs: Automatically alerts when new programs are published.
Wildcard monitoring: Add wildcard assets (*.example.com) and schedule a task to run at your preferred interval. After each run the watcher executes httpx to detect live subdomains, performs asset discovery, and reports discovered live subdomains.
CIDR support & port scanning: You may register CIDR ranges for daily port scans. This is available but not recommended for wide use because it may trigger blocks by ISPs or the target organization.
HTTPX change detection: The
httpx changeflow notifies you about changes in targets — including new URLs discovered on assets, parameter discovery, and URL/content changes.
- URL discovery: The system performs daily URL discovery for assets and notifies when new URLs are found.
- Parameter discovery: It attempts to discover parameters on found URLs.
- URL change detection: Detects changes such as different JS resource hashes or changes in HTTP status codes and alerts accordingly.
If you have questions, contact @nexovir (I haven’t had time to fully document everything yet). Reach out on X or Telegram with that handle for support.
This guide walks you through:
- Preparing PostgreSQL and setting DB credentials in the backend settings.
- Creating and activating a Python virtual environment and installing
requirements.txt. - Installing additional external tools required by the system.
- Admin panel manual configuration (Tools, Program Watchers, AssetWatchers).
- Adding a Periodic Task named
orchestratorwith your chosen schedule.
Use this document for initial setup and to ensure the admin panel contains the required monitoring entries.
- Linux distribution (Ubuntu/Debian/CentOS or similar) with Python 3.8+.
- PostgreSQL server (create a database and a user for the application).
python3,virtualenvand build tools as needed.- Network connectivity for downloading tools and dependencies.
- Install PostgreSQL and create a dedicated database and user (for example,
watchtower). - Open the backend settings file and set the PostgreSQL connection values (username/password/host/name):
infodisclosure_backend/settings.py
Make sure you replace the DB username and password in that file with the PostgreSQL credentials you created. Verify connectivity with psql before proceeding.
- Create and activate a virtual environment:
python3 -m venv .venv
source .venv/bin/activate- Upgrade pip and install Python dependencies:
pip install --upgrade pip
pip install -r requirements.txt- Run database migrations and collect static files (project-specific commands may vary):
python manage.py migrate
python manage.py collectstatic --noinput- Start the application and verify logs to confirm DB connectivity and service health.
In addition to requirements.txt, the following external tools must be installed on the host (or in the environment) and be executable by the application user. Some are installed via go install, others via package manager or prebuilt binaries. Ensure binaries are on the system PATH or configure explicit paths in the app settings.
Required tools (one per line):
- naabu
- nuclei
- fallparams
- x8
- reflix
- subfinder
- findomain
- httpx
- waybackurls
- dnsx
- awk
- unfurl
- dnsgen
- jq
- puredns
- amass
Note:
x8appeared twice in the original list — only one installation is required.
Installation notes:
- Most tools can be installed with
go install github.com/...@latestor by downloading the release binary. Follow each tool's official installation instructions. - Confirm each binary by running e.g.
naabu -h,nuclei -version, etc.
Login to the admin panel (e.g., /admin) and manually add the items listed below.
Add the following tools as separate Tool entries (exact names):
- Daily Vulnerabilities Monitoring
- Daily Narrow Monitoring
- CRT.sh
- Wabackurls
- HTTPX
- DNS Bruteforce
- Amass
- Owned
- Findomain
Manually add the following Program Watchers. The names are case-sensitive and must be entered exactly as shown.
- Yeswehack :
https://raw.githubusercontent.com/arkadiyt/bounty-targets-data/refs/heads/main/data/yeswehack_data.json - Intigriti :
https://raw.githubusercontent.com/arkadiyt/bounty-targets-data/refs/heads/main/data/intigriti_data.json - Hackerone :
https://raw.githubusercontent.com/arkadiyt/bounty-targets-data/refs/heads/main/data/hackerone_data.json - Federacy :
https://raw.githubusercontent.com/arkadiyt/bounty-targets-data/refs/heads/main/data/federacy_data.json - Bugcrowd :
https://raw.githubusercontent.com/arkadiyt/bounty-targets-data/refs/heads/main/data/bugcrowd_data.json
Make sure each URL is entered exactly (including
https://).
- Add your wildcard entries (e.g.,
*.example.com) in AssetWatchers as needed. - Recommendation: Do not enable DNS brute forcing for wildcard entries unless you are certain it is safe and permitted for that asset. DNS brute force on wildcards can produce noisy and potentially harmful traffic.
If the admin panel throws an error when saving wildcards:
-
Create two sample text files on the server (if not present):
dns_bruteforce_static_wordlist.txtdns_bruteforce_dynamic_wordlist.txt
-
Add a minimal sample entry in each file. These sample files are not used by the program logic but some admin panel versions expect them to exist to accept the wildcard configuration.
Open the admin area for periodic tasks (e.g., Periodic Tasks → Periodic tasks) and add the following task:
- Task name:
orchestrator - Schedule: Set your preferred schedule (e.g., daily, hourly, cron expression). The task runner will execute according to the periodic schedule you choose.
Make sure the task name is exactly
orchestrator(case-sensitive) when adding it to the Periodic Tasks list.
- Case sensitivity: Several fields in the admin panel are case-sensitive (Program Watchers and task names). Enter them exactly as listed.
- Tool PATH: Ensure all external tool binaries are accessible by the application user and are on the
PATHor configured in settings. - Logs: If you encounter errors while saving admin entries or running the app, check application logs and Django/system logs for detailed error messages.
- Security: Use HTTPS/TLS for the admin panel, restrict admin access, and enable MFA for admin accounts in production.
I can also provide:
- An English README in a different style (short checklist or full tutorial).
- A
systemdunit example for running the web service and Celery/beat if used.
Tell me which of the above you want and I will prepare it.