OWASP VISTO (Vulnerability Intelligence & Security Testing Orchestrator)
VISTO is a prototype AI-powered agent designed to empower penetration testing teams by streamlining initial reconnaissance, automating data collection, and providing insightful, actionable analysis. The core objective is to help pentest teams:
- Systematically Conduct Pentests: Ensure a consistent and auditable approach to early-stage assessments.
- Maintain Comprehensive Audit Trails: Automatically record every command executed and its output, providing a clear history of testing activities for compliance and review.
- Maximize Pentester Efficiency: By automating basic checks and managing pentest data, VISTO aims to free up valuable time for human pentesters, allowing them to focus on more complex manual advanced testing, exploit development, and deeper vulnerability research.
- Ensure Data Privacy and Portability: Leveraging local Large Language Models (LLMs) for analysis, and sensitive testing data never leaves your controlled environment, preventing potential data leaks to public LLM services. This also makes the tool highly portable for use in various isolated testing environments.
- Generate Actionable Reports: The tool can generate a concise, executive-level security report, transforming raw findings and LLM analyses into structured, prioritized recommendations.
Features
VISTO is designed with modular functionality in mind, allowing for easy expansion. Contributions to module development are highly encouraged. Its current capabilities include:
Platform Features
- Project Management: Organize your penetration tests into distinct projects with dedicated sessions.
- Audit Trails: All command executions, outputs, and LLM analyses are logged and stored, forming an invaluable audit trail accessible per project.
- 2-Factor Authentication (2FA): (Optional) Enhanced login security for the web interface.
- AI Assistant (ask_ai): Engage with a local LLM for general cybersecurity questions and advice.
- LLM-Powered Analysis: Receive immediate, technical insights and concise remediation suggestions for each command’s output.
- Automated Executive Reporting: Generate a comprehensive security report summarizing all findings, categorizing vulnerabilities, and providing prioritized remediation steps.
Modular Functionality Overview ( đź‘· Keep updating )
- OSINT (Open Source Intelligence): Gather public information on IPs, domains, and FQDNs (e.g., WHOIS, geolocation, subdomain enumeration, Shodan checks, TLS information).
- Network Discovery: Scan specified IP ranges or subnets to identify active hosts.
- IP Scanning: Perform port scanning on single or multiple IP addresses/FQDNs, with support for various Nmap flags and default top 500 port scanning.
Road Map
The initial workable version has been completed.
Contributions are welcome! If you have suggestions for improvements, bug reports, or want to contribute code, please open an issue or submit a pull request on the GitHub repository.
Important Considerations & Disclaimers
- Authorised Testing Only: This tool may trigger various security testing utilities that interact with networks, systems, or applications in ways that could be considered intrusive or malicious. Ensure you have explicit authorisation and appropriate permissions before conducting any security testing. Unauthorised use of this tool may breach laws or regulations, and could result in disciplinary action, legal consequences, or criminal prosecution. Always test responsibly.
- Local Network Deployment Only: At its current stage, the authentication and security mechanisms of VISTO are designed for project segregation, not robust internet-facing security. DO NOT expose the web interface to the public internet. Deploy and use this tool only within trusted, isolated network environments (e.g., your internal pentest lab, a Kali VM with host-only networking).
- LLM Analysis Verification: The analyses and recommendations generated by the LLM are based on patterns learned from data. While powerful, they are not infallible. Always double-verify all LLM-generated analysis, findings, and remediation suggestions with your own expert judgment and manual testing. It is possible that the data presented could be incorrect, incomplete, or lead to false positives/negatives.
- Performance Notes: The code has been tested on a Kali Linux virtual machine with 8GB RAM and 4 vCPUs, using the phi3 LLM model. Under these specifications, the execution speed for individual commands is generally acceptable. However, LLM analysis, especially for comprehensive report generation, may still take several minutes depending on the complexity of the command output and the number of commands in the project.
License
VISTO is distributed under the Apache License 2.0.
Getting Started
Prerequisites
- Kali Linux (preferred and tested during development testing)
- Python 3.8+
- pip (Python package installer)
- nmap
- A local LLM server (by default: Ollama running phi3) [
Phi-3 is a family of open AI models developed by Microsoft.
]
Deployment
- Install Ollama on Kali Linux
curl -fsSL https://ollama.com/install.sh | sh
- After installation, confirm it’s working
ollama --version
- Pull the Phi-3 Model (You can use your preferred LLM, but please align with your hardware configuration)
ollama pull phi3:mini
- Run Phi-3 Locally
ollama run phi3:mini
- Clone the VISTO repository
git clone https://github.com/redblueteam/VISTO.git cd VISTO
- Create a virtual environment (recommended)
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
- Set up config.py
# Application-wide configuration settings. # LLM Configuration # Scanning Control
- Running the Application (Use sudo to ensure Nmap can perform a full scan, as non-privileged users may have limited scanning capabilities.)
sudo python3 app.py
- Register a new user (For first-time use) via the WEB GUI
http://127.0.0.1:5000
- Accessing the Dashboard (Authenticate with a valid user)
http://127.0.0.1:5000
- Enable 2FA (Optional)
http://127.0.0.1:5000
Command Examples
i. Network Discovery
e.g., Scans a network range 192.168.1.0/24 for active hosts
network_discovery 192.168.1.0/24
ii. IP address scanning
e.g., Scans multiple IP addresses 192.168.1.1,192.168.1.2 for open ports/network services
ip_scan 192.168.1.1,192.168.1.2
iii. OSINT
e.g., Retrieves Shodan Information of an IP addresses (Shodan API Key is required to be configured in config.py)
osint ip {PUBLIC_IP_ADDR} shodan_check
e.g., Attempts to find subdomains for a given domain
osint domain {domain_name} subdomain_enum
e.g., Performs a WHOIS lookup for domain registration details
osint domain {domain_name} whois_check
e.g., Performs a TLS information check for a domain
osint fqdn www.owasp.org tls_check
e.g., Ask Local LLM for other questions
ask_ai What is XSS? How to remediate?
Screenshots
SC01. Screenshot of VISTO login page
SC02. Screenshot of VISTO Dashboard
SC03. Screenshot of VISTO project history (audit trail)
SC04. Screenshot of VISTO LLM generated report