
Toolkit completo per ricognizione, test, enumerazione e sfruttamento di VPN
🚩 Questo è il repository pubblico di vortex, per l'ultima versione e gli aggiornamenti ti invitiamo a supportarci tramite https://porchetta.industries/
VPN Overall Reconnaissance, Testing, Enumeration and Exploitation Toolkit
Se desideri sponsorizzare questo progetto e avere gli ultimi aggiornamenti su vortex, gli ultimi bug corretti e le nuove funzionalità, supportaci su https://porchetta.industries/
Vieni a chiacchierare su Discord!
Un framework Python molto semplice, ispirato a [SprayingToolkit][1], che cerca di automatizzare gran parte del processo necessario per rilevare, enumerare e attaccare gli endpoint comuni di O365 e VPN (come Cisco, Citrix, Fortinet, Pulse, ecc...).
Rendere la fase di spraying delle VPN molto più rapida e semplice. Inoltre, grazie alla sua flessibilità, questo strumento può essere facilmente integrato in un flusso di lavoro OSINT esistente.
Vortex fornisce principalmente assistenza nell'esecuzione dei seguenti compiti:
Installa i prerequisiti con pip3 come segue:``` sudo -H pip3 install -r requirements.txt
### Install with Virtualenv
Altrimenti, puoi installare i prerequisiti utilizzando un ambiente virtuale:
###### Su Windows```
virtualenv venv
venv\Scripts\activate
pip install -r requirements.txt
python3 -m virtualenv venv source venv/bin/activate pip install -r requirements.txt
## Utilizzo
L'uso dello strumento è abbastanza semplice, ma c'è un flusso di lavoro da rispettare. Lo strumento
utilizza un database SQLite per memorizzare le informazioni sull'attacco corrente.
### Workspace
Il workspace rappresenta il file di database utilizzato dallo strumento. Il nome dovrebbe essere solo un
semplice nome per etichettare l'attacco, il progetto o il target corrente.
A ciascun workspace viene assegnato un database SQLite. Quando specifichi un nome di workspace,
come:```
python manage.py -w workspace1
Ciò che stai effettivamente dicendo è "Voglio operare sul file workspace1.db".
Per funzionare correttamente, Vortex deve inizializzare il DB con gli schemi corretti. Per fare ciò, l'unica cosa da fare è eseguire il comando:``` python manage.py -w workspace1 db -c init
Se un utente cerca di saltare questa fase, Vortex si limiterà a stampare a schermo il comando corretto da eseguire prima.```
[-] Workspace not initialized. Please initialise it using:
python manage.py -w workspace1 db -c init
Invece, quando si esegue lo stesso comando su un DB esistente e inizializzato, Vortex chiederà conferma prima di sovrascrivere il file del DB:``` [-] The DB file exists and it was initialised, overwrite? [y|n] $> y
### Azioni e comandi
Vortex funziona con un argomento posizionale, l'"Azione", e altri valori chiave.
Il più importante tra questi è l'argomento del comando (`-c cmd`). In combinazione con
il valore dell'azione, il comando definisce cosa Vortex deve fare.
È possibile vedere l'elenco delle azioni supportate dall'Help:```
python manage.py -h
Vortex: VPN Overall Reconnaissance, Enumeration and eXploitation
positional arguments:
{db,domain,import,office,profile,search,tor,validate,vpn}
Action to execute
optional arguments:
-h, --help show this help message and exit
-w WORKSPACE, --workspace WORKSPACE
Workspace to use
-c COMMAND, --command COMMAND
Command for the action
-D DOMAIN, --domain DOMAIN
Domain under attack
-C COMPANY, --company COMPANY
Company under attack
-l LOCATION, --location LOCATION
Location of the company under attack (IE, UK, US, ...)
-u URL, --url URL VPN Endpoint Origin (schema://domain:port)
-t ENDPOINT_TYPE, --endpoint-type ENDPOINT_TYPE
Target Endpoint Type
-U USER, --user USER User name
-E EMAIL, --email EMAIL
User email
-N NAME, --name NAME User full name
-R ROLE, --role ROLE User job
-s SQL, --sql SQL SQL statement
-O EXPORT_FILE, --export-file EXPORT_FILE
Export file
-Q QUOTES, --quotes QUOTES
Produce an Excel safe CSV
-nh, --no-headers Remove CSV headers
-k KEYWORDS, --keywords KEYWORDS
Search keywords
-P PASSWORDS_FILE, --passwords-file PASSWORDS_FILE
Password file for spraying
-L, --leaks Use leaks for spraying
-I IMPORT_FILE, --import-file IMPORT_FILE
Import file
Come si può osservare dall'help, l'elenco dei comandi supportati per ogni azione non è specificato da nessuna parte. Questo perché non è necessario specificare direttamente un comando. Infatti, se un comando non viene specificato, Vortex chiederà all'utente di selezionarne uno tra i comandi disponibili per l'azione specificata.``` python manage.py -w workspace1 db
,d#####F^ ,yy############yy ^9#######, ,######" y###################by ^9######, ######^ y#####F"" ^"9######y "######] d#####^ ,#####" by klezVirus ^9#####, ^######, ,#####] ,####F yy#######y, ^9####b ^###### [##### ####F ,###F""'"9####, 9####] 9##### #####F [#### ,##F^ yy "###b 9####, ^#####] #####] [###] ### dF""#b ^###] ^####] #####] 9####b [#### 9##, 9bd [#] [##b ##### [##### [##### ####, 9##y, ,y##^ d##F ##### [####] #####b ^####y ^"#####" d###^ ,####] d##### [#####, ^####by ,d###^ d####^ #####F 9#####y "#####byyyyyyd####F^ d####F [#####9 9#####b, ""############"^ ,d####F ,###### ^######b, ""'""'"^ ,d#####F d#####F
[*] Select a command: 0 : init 1 : sql 2 : add-endpoint 3 : add-user 4 : drop-user 5 : truncate-table 6 : export $>
Lo stesso vale per gli argomenti necessari a una routine specifica. Se un argomento è difficile da inserire in fase di esecuzione, Vortex ricorderà gentilmente all'utente che il parametro è obbligatorio. Altrimenti, Vortex guiderà l'utente nella selezione o nell'inserimento degli argomenti necessari.
Ad esempio, se un utente volesse esportare una tabella specifica o anche una colonna, l'unica cosa necessaria sarebbe lanciare il comando di esportazione, come osservabile dall'immagine qui sotto:

Questo tipo di comportamento rende Vortex molto facile da usare.
### Flusso di lavoro generale
Vortex è stato progettato per aderire a un flusso di lavoro operativo specifico, riassunto nello schema seguente:

### Operazioni
#### Raccogli utenti
La raccolta di utenti validi per un target specifico può essere effettuata utilizzando tre diverse fonti:
* LinkedIn