V'ger

V'ger est une application interactive en ligne de commande pour la post-exploitation d'instances Jupyter authentifiées, axée sur les opérations de sécurité en IA/ML.
Histoires d'utilisateurs
- En tant que Red Teamer, vous avez trouvé des identifiants Jupyter, mais vous ne savez pas quoi en faire. V'ger est organisé dans un format intuitif pour la plupart des professionnels de la sécurité offensive afin de les aider à comprendre les fonctionnalités du serveur Jupyter cible.
- En tant que Red Teamer, vous savez que certaines actions dans le navigateur seront visibles pour les utilisateurs légitimes de Jupyter. Par exemple, la modification des onglets apparaîtra dans leur espace de travail et les commandes saisies dans les cellules seront enregistrées dans l'historique. V'ger réduit la probabilité de détection.
- En tant que Red Teamer IA, vous comprenez les attaques algorithmiques académiques, mais avez besoin d'un vecteur d'exécution plus pratique. Par exemple, vous devrez peut-être modifier un grand jeu de données fondateur à l'échelle d'Internet dans le cadre d'une opération d'empoisonnement de modèle. Modifier ce jeu de données à sa source peut être impossible ou générer des artefacts audités indésirables. Avec V'ger, vous pouvez atteindre les mêmes objectifs en mémoire, une amélioration significative des techniques.
- En tant que Blue Teamer, vous souhaitez comprendre la journalisation et la visibilité d'un déploiement Jupyter en direct. V'ger peut vous aider à générer des artefacts reproductibles pour tester l'instrumentation et réaliser des exercices de réponse aux incidents.
Utilisation

Configuration initiale
pip install vger
vger --help
Actuellement, vger interactive offre le maximum de fonctionnalités, en maintenant l'état des artefacts découverts et des tâches récurrentes. Cependant, la plupart des fonctionnalités sont également disponibles par nom en format non interactif avec vger <module>. Listez les modules disponibles avec vger --help.

Commandes
Une fois la connexion établie, les utilisateurs accèdent à un ensemble de menus imbriqués.
Le menu de premier niveau est :
- Reset : Configurer un hôte différent.
- Enumerate : Utilitaires pour en savoir plus sur l'hôte.
- Exploit : Utilitaires pour effectuer des actions directes et manipuler l'hôte et les artefacts.
- Persist : Utilitaires pour établir des mécanismes de persistance.
- Export : Enregistrer la sortie dans un fichier texte.
- Quit : Personne n'aime les abandonneurs.
Ces menus contiennent les fonctionnalités suivantes :
- List modules : Identifier les modules importés dans les notebooks cibles pour déterminer les bibliothèques disponibles pour le code injecté.
- Inject : Exécuter du code dans le contexte du notebook sélectionné. Le code peut être fourni dans un éditeur de texte ou en spécifiant un fichier
.py local. Les deux entrées sont traitées comme une chaîne et exécutées dans l'environnement d'exécution du notebook.
- Backdoor : Lancer une nouvelle instance JupyterLab ouverte sur
0.0.0.0, avec allow-root sur un port spécifié par l'utilisateur avec un password spécifié par l'utilisateur.
- Check History : Voir les commandes ipython récemment exécutées dans le notebook cible.
- Run shell command : Créer un terminal, exécuter la commande, retourner la sortie et supprimer le terminal.
- List dir or get file : Lister les répertoires relatifs au répertoire Jupyter. Si vous ne savez pas, commencez par
/.
- Upload file : Télécharger un fichier depuis localhost vers la cible. Spécifiez les chemins dans le même format que List dir (relatif au répertoire Jupyter). Fournissez un chemin complet incluant le nom du fichier et l'extension.
- Delete file : Supprimer un fichier. Spécifiez les chemins dans le même format que List dir (relatif au répertoire Jupyter).
- Find models : Trouver des modèles basés sur des formats de fichiers courants.
- Download models : Télécharger les modèles découverts.
- Snoop : Surveiller l'exécution du notebook et les résultats jusqu'à expiration du délai.
- : Lancer/Arrêter des extraits de code récurrents exécutés silencieusement dans l'environnement cible.
Expérimental
Avec pip install vger[ai] vous obtiendrez des résumés générés par LLM des notebooks dans l'environnement cible. Ils sont destinés à être une traduction approximative pour les personnes non spécialistes en DS/IA afin de faire un tri rapide pour savoir si (ou quels) notebooks méritent une investigation plus approfondie.

Il y avait un compromis inhérent entre la taille du modèle et ses capacités, et c'est quelque chose sur lequel je continuerai à travailler, mais j'espère que cela sera utile pour certains utilisateurs de sécurité plus traditionnels. J'adorerais voir les gens commencer à injecter des prompts dans leurs notebooks ("these are not the droids you're looking for").
Exemples