diff --git a/README.md b/README.md index f142652..1b77dbb 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,88 @@ - **AI** powered: uses a LLM AI-Agent to assist and automate - **O**pen-source: full open-source solution (even the LLM) - **P**entesting **S**uite: includes several tools for various use cases + + +## Overview +The objective of **AI-OPS** is to enhance Penetration Testing operations with an *AI Agent* +capable of planning and executing tasks, whether that's about automating the **Reconnaisance**, +the **Exploitation**, generating a **Report** or just getting another point of view on a target system. + +AI-OPS objective is not replacing human Pentesters, it is an AI Agent with *human-in-the-loop* +by design, think it as follows: AI will not replace programmers, it makes bad programmers job worse, but +it enhances great programmers and make them more productive; that's the same objective of AI-OPS. + + +## Key Features + +**TODO:** *Knowledge, Collections, Tools etc.* + +## Install + +### End-User +**Requirements** +- Docker + +1. **TODO:** *work in progress* + +### Development + +**Requirements** +- Python >= 3.11 +- Node +- Linux +- Docker + +1. **TODO:** *work in progress* + +## Tools + +### Available Tools + +| Name | Use Case | Implemented | +|-------------|----------------------------------|---------------------| +| nmap | Scanning/Network Exploitation | ✓ | +| hashcat | Password Cracking | ✗ | +| SQLmap | SQL Injection | ✗ | +| Metasploit | Exploitation | ✗ | + +### Add a Tool + +Most Penetration Testing tools are 'simple' CLI programs, so the Agent only needs a Terminal and +instructions to use the tool, however there are more advanced tools (such as `Metasploit`) that +need a specific class to be integrated; for this reason there are two ways of adding a tool: +1. **JSON Instructions**: create a file with instructions for the Agent and add it to +`/home/YOUR_USERNAME/.aiops/tools` (or `../Users/YOUR_USERNAME/.aiops/tools`); all available tools +that use JSON Instructions are available in `tools_settings`. +```json +{ + "name": "...", + "tool_description": "...", + "args_description": [ + "Multiline JSON\n", + "instructions\n", + "..." + ], + "examples": [ + "reason to execute (thought process) \n", + "command (ex. nmap -sV 127.0.0.1)\n" + ] +} +``` + +2. **Custom Class**: tools that require more advanced usage can be implemented extending the class +`Tool` at `src.agent.tools.base`; you're welcome to open an issue for a tool request/proposal. + + +## Knowledge + +**TODO** + +### Available Collections + +**TODO** + + +### Add a Collection + +**TODO**