Guardian Tools Configuration
December 22, 2025 ยท View on GitHub
This directory contains wrappers for various penetration testing tools.
Available Tools
Network Scanning
-
Nmap: Comprehensive port scanning and service detection
- Installation:
apt-get install nmaporchoco install nmap - Features: Port scanning, service version detection, OS fingerprinting
- Installation:
-
Masscan: Ultra-fast TCP port scanner
- Installation:
apt-get install masscanor build from source - Features: Fast large-scale port scanning, banner grabbing, rate limiting
- Installation:
Web Reconnaissance
-
httpx: HTTP probing and technology detection
- Installation:
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest - Features: HTTP headers, status codes, technology fingerprinting
- Installation:
-
WhatWeb: Web technology fingerprinting
- Installation:
apt-get install whatweborgem install whatweb - Features: CMS detection, framework identification, plugin detection
- Installation:
-
Wafw00f: Web Application Firewall detection
- Installation:
pip install wafw00f - Features: Detect WAF products, identify vendors
- Installation:
Subdomain Enumeration
-
Subfinder: Passive subdomain discovery
- Installation:
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest - Features: Multiple sources, DNS resolution
- Installation:
-
Amass: Advanced network mapping and asset discovery
- Installation:
go install -v github.com/owasp-amass/amass/v4/...@master - Features: Active/passive enumeration, ASN/CIDR discovery, relationship mapping
- Installation:
Vulnerability Scanning
-
Nuclei: Template-based vulnerability scanner
- Installation:
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest - Features: Community templates, CVE detection, misconfigurations
- Installation:
-
Nikto: Web vulnerability scanner
- Installation:
apt-get install nikto - Features: 6700+ potentially dangerous files/CGIs, outdated versions
- Installation:
-
SQLMap: Automated SQL injection and database takeover
- Installation:
pip install sqlmaporapt-get install sqlmap - Features: SQL injection detection, database enumeration, risk levels
- Installation:
-
WPScan: WordPress vulnerability scanner
- Installation:
gem install wpscanor download from wpscan.com - Features: Plugin/theme enumeration, vulnerability database, user enumeration
- Installation:
SSL/TLS Testing
-
TestSSL: SSL/TLS security testing
- Installation: Download from https://testssl.sh/
- Features: Protocol support, cipher suites, certificate validation, vulnerabilities
-
SSLyze: Advanced SSL/TLS configuration analyzer
- Installation:
pip install sslyze - Features: Certificate analysis, protocol support, vulnerability detection (Heartbleed, ROBOT)
- Installation:
Content Discovery
-
Gobuster: Directory/file brute forcing
- Installation:
go install github.com/OJ/gobuster/v3@latest - Features: Fast directory enumeration, status code filtering, extensions
- Installation:
-
FFuf: Fast web fuzzer
- Installation:
go install github.com/ffuf/ffuf/v2@latest - Features: Advanced fuzzing, JSON output, recursion, filtering/matching
- Installation:
Tool Wrapper Architecture
Each tool wrapper inherits from BaseTool and implements:
get_command(): Build command with parametersparse_output(): Parse tool output into structured data_check_installation(): Verify tool is available
Adding New Tools
To add a new tool:
- Create a new file in
tools/directory - Inherit from
BaseTool - Implement required methods
- Add to
tools/__init__.py - Register in
ToolAgent.available_tools - Update prompt templates
Example:
from tools.base_tool import BaseTool
class MyToolTool(BaseTool):
def __init__(self, config):
super().__init__(config)
self.tool_name = "mytool"
def get_command(self, target, **kwargs):
return ["mytool", target]
def parse_output(self, output):
return {"findings": []}
Tool Configuration
Tools can be configured in config/guardian.yaml:
tools:
nmap:
enabled: true
default_args: "-sV -sC"
timing: T4
whatweb:
enabled: true
aggression: 1
nikto:
enabled: true
tuning: "x" # All tests except DoS
Testing Tools
Check tool availability:
from core.tool_agent import ToolAgent
tool_agent = ToolAgent(config, gemini, memory)
status = tool_agent.get_available_tools()
# Returns: {"nmap": True, "httpx": False, ...}