Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
LOLBITS — ** ABANDONNÉ ** Framework C2 qui utilise Background Intelligent Transfer Service (BITS) comme protocole de communication et Direct Syscalls + Dinvoke pour le contournement des hooks en mode utilisateur des EDR. | Kitploit
Outils/GitHubGitHub/kudaes/lolbits
Escalade de PrivilègesFrameworks d'ExploitationMouvement LatéralPost-ExploitationCommandement et ContrôleRed TeamingDéveloppement de Charges Utiles
GitHubkudaes/lolbits

LOLBITS

** ABANDONNÉ ** Framework C2 qui utilise Background Intelligent Transfer Service (BITS) comme protocole de communication et Direct Syscalls + Dinvoke pour le contournement des hooks en mode utilisateur des EDR.

Voir le dépôt
22238il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

License

root@kitploit:~
			 ██╗      ██████╗ ██╗     ██████╗ ██╗████████╗███████╗
			 ██║     ██╔═══██╗██║     ██╔══██╗██║╚══██╔══╝██╔════╝
			 ██║     ██║   ██║██║     ██████╔╝██║   ██║   ███████╗
			 ██║     ██║   ██║██║     ██╔══██╗██║   ██║   ╚════██║
			 ███████╗╚██████╔╝███████╗██████╔╝██║   ██║   ███████║
			 ╚══════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝   ╚═╝   ╚══════╝

Table des matières

  • À propos du projet
    • Remerciements
  • Pour commencer
    • Prérequis
    • Installation
  • Utilisation
  • Contribuer
  • Licence
  • Contact

À propos du projet

LOLBITS est un framework C2 qui utilise le Service de transfert intelligent en arrière-plan (BITS) de Microsoft pour établir le canal de communication entre la machine compromise et le backend. Le backend C2 est dissimulé derrière une application web Flask apparemment inoffensive et n'est accessible que lorsque les requêtes HTTP reçues par l'application contiennent un en‑tête d'authentification valide. Puisque cet outil est destiné à être utilisé dans des environnements fortement surveillés, les fonctionnalités suivantes ont été implémentées pour éviter la détection par les EDR et les antivirus :

  • Correction d'ETW et d'AMSI.
  • Utilisation d'appels système directs pour contourner le hooking des API en mode utilisateur des EDR.
  • Mappage manuel de kernel32.dll et advapi32.dll en combinaison avec DInvoke.
  • Détection basique de sandbox avant d'établir le canal de communication avec le backend C2.
  • Utilisation de BITS en mode arrière‑plan pour générer le canal de communication sans perturber l'expérience utilisateur.

En ce qui concerne l'architecture, LOLBITS est composé de 3 éléments principaux :

  • L'agent C# chargé d'exécuter les commandes sur la machine compromise et de renvoyer le résultat au serveur C2 une fois la tâche terminée.
  • L'application web Flask qui agit comme un répartiteur. Cet élément permet de cacher l'infrastructure C2 derrière un site web inoffensif tout en fournissant les nouvelles commandes à l'agent lorsqu'une requête authentifiée est reçue.
  • La console C2, utilisée pour contrôler l'agent.

Afin d'empêcher l'inspection du contenu par les proxies, tout le contenu pertinent envoyé entre l'agent et le serveur C2 est chiffré via RC4 avec une clé secrète pré‑partagée générée aléatoirement. Un diagramme de haut niveau du comportement de l'infrastructure serait le suivant :

Diagramme de haut niveau

Pour éviter que l'équipe bleue ne reproduise certaines des anciennes requêtes et découvre l'infrastructure du backend C2, chaque en‑tête d'authentification est généré aléatoirement et n'est valable que pour un seul cycle (un cycle est composé d'une requête POST suivie d'une requête GET, dans cet ordre). Les anciens en‑têtes d'authentification seront ignorés et le site web inoffensif sera affiché pour ces requêtes.

Remerciements

Certaines des fonctionnalités de cet outil ont été implémentées soit en réutilisant du code d'autres projets, soit grâce aux efforts de plusieurs chercheurs en cybersécurité. Voici quelques‑uns des travaux et projets externes qui ont été utilisés d'une manière ou d'une autre pour améliorer cet outil :

  • Salsa Tools
  • Dinvoke
  • SharpSploit
  • Table des appels système Windows
  • CheckPlease pour l'évasion de sandbox

Pour commencer

Prérequis

Pour l'infrastructure C2, un Windows Server 2016 ou supérieur avec Python 3.4+ et PowerShell 5.1+ est requis. L'agent C# a été testé avec succès sur Windows Server 2012, Windows Server 2016, Windows Server 2019, Windows 7, Windows 8.1 et Windows 10. Pour le compiler, il est nécessaire d'avoir :

  • Visual Studio 2017 ou supérieur.
  • .NET Framework 4.5 ou supérieur.

Installation

1.- Clonez ce dépôt sur votre serveur C2

root@kitploit:~
git clone https://github.com/Kudaes/LOLBITS.git

2.- Installez le serveur Web (IIS) via le Gestionnaire de serveur Windows. Assurez‑vous d'installer les rôles CGI, ASP.NET et Extension .NET.

Rôles du serveur

Installez également les fonctionnalités .NET Framework et BITS pour IIS.

Fonctionnalités du serveur

3.- Exécutez le script setup.ps1 en tant qu'administrateur pour déployer toute l'infrastructure et configurer l'agent C#.

4.- Compilez l'agent C#. La compilation générera un fichier .exe et une dépendance externe (Newtonsoft.Json.dll). Vous pouvez générer un seul .exe en utilisant ILMerge ou simplement envoyer les deux fichiers sur la machine compromise. Pour éviter les sorties DEBUG, assurez‑vous de compiler le projet en tant qu'Application Windows.

Application Windows

5.- (Optionnel) Par défaut, le script setup.ps1 créera un nouveau site Web dans votre IIS appelé lawlbits écoutant sur le port HTTP par défaut (80/TCP). Ce nouveau site Web n'utilise pas HTTP sur TLS et, bien que le contenu des requêtes envoyées par l'agent C# au C2 soit chiffré via RC4 avec une clé secrète pré‑partagée générée aléatoirement, il est recommandé de configurer l'utilisation de HTTPS pour le nouveau site. Pour ce faire, je recommande d'utiliser Let's Encrypt sur lawlbits, ce qui est l'un des moyens les plus simples de configurer HTTPS. Après cela, n'oubliez pas de modifier la variable Url dans Program.cs pour utiliser HTTPS au lieu de HTTP, qui est le comportement par défaut.

Utilisation

Pour obtenir le shell distant, tapez simplement python lawlbin.py dans une invite de commande du serveur C2 et exécutez l'agent C# sur la machine compromise.

Ce projet étant né des cendres d'un précédent projet avorté, certaines des anciennes fonctionnalités ont été conservées. L'ancien projet était un shell où toutes les commandes disponibles étaient exécutées en utilisant exclusivement des Binaires Vivant de la Terre. C'est de là que vient le LOL de LOLBITS, et c'est pourquoi les fonctionnalités suivantes s'exécutent exclusivement via des LOLBINS (cela peut aider à contourner AWS et certains filtres AV/EDR) :

  • download : Télécharger un fichier depuis un Webdav distant vers la machine compromise.
  • base64encode : Utiliser base64 pour encoder le contenu d'un fichier local.
  • base64decode : Décoder un fichier encodé en base64.
  • compile : Compiler des fichiers .cs en .exe ou .dll.

Bien que ces fonctionnalités puissent être intéressantes dans certains environnements (hum, télécharger des fichiers distants sans utiliser PowerShell ? J'aime ça !), je les ai conservées uniquement pour réutiliser une partie de l'ancien code pour la console C2. Voici une liste d'autres fonctionnalités qui, j'en suis sûr, seront plus utiles dans un contexte classique d'équipe rouge :

  • inject : Télécharger depuis le C2 un fichier shellcode (.bin) ou PE (assembly .NET) et l'exécuter en mémoire. Avec cette commande, la charge utile n'est jamais écrite sur le disque en clair, évitant ainsi la détection par les AV. Les assemblies .NET ne peuvent être chargés que dans le même processus appelant, tandis que les shellcodes peuvent être injectés aussi bien dans le processus propre que dans d'autres processus (uniquement x64).
  • psh : Générer un shell distant PowerShell. Ce shell doit être pris en charge par un logiciel supplémentaire comme netcat (lancez simplement nc -lvp ).
  • send : Pour envoyer un fichier de votre C2 vers la machine compromise, utilisez cette option. Le fichier envoyé sera stocké non chiffré sur le disque.
  • getsystem : Tenter d'obtenir les privilèges Système. Un niveau d'intégrité élevé est requis.
  • impersonate : Tenter de voler un jeton d'accès d'un autre processus pour "devenir" un autre utilisateur.
  • runas : Utiliser des identifiants valides pour modifier votre contexte de sécurité et vous connecter en tant qu'autre utilisateur (local ou de domaine).
  • rev2self : Annuler les modifications du contexte de sécurité effectuées par getsystem, impersonate ou runas.
  • exfiltrate : Envoyer un fichier de la machine compromise vers votre C2.

Pour obtenir des conseils d'utilisation, tapez simplement help ou <somecommand> help.

Contribuer

Toute contribution sera grandement appréciée.

  1. Forkez le projet
  2. Créez votre branche de fonctionnalité (git checkout -b feature/AmazingFeature)
  3. Commitez vos changements (git commit -m 'Ajouter une fonctionnalité géniale')
  4. Poussez vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

Licence

Distribué sous la licence GNU. Voir LICENSE pour plus d'informations.

Contact

Mon Twitter

Mon LinkedIn

Télécharger l’outil