
Serveur FTP honeypot écrit en .NET Core (C#) pour Linux et Windows.
BearFTP est un serveur FTP honeypot, conçu pour journaliser les tentatives des pirates et les signaler aux bases de données publiques de listes noires d'IP.
Ce logiciel a été testé et fonctionne parfaitement sur :
Nous utilisons plusieurs projets comme dépendances pour fonctionner correctement :
BearFTP nécessite .NET Core 3.1 ou supérieur.
Téléchargez les binaires depuis l'onglet Release ou compilez-le vous-même.
Si vous êtes sous Windows, exécutez
C:/BearFTP/BearFTP/bin/Release/netcoreapp3.1> ./BearFTP.exe
Pour Linux, exécutez
$ dotnet BearFTP.dll
Le programme devrait se terminer avec une erreur. Passez ensuite à la modification du config.json
{
"PortDef": 21,
"PortPasv": 21,
"Hostname": "127.0.0.1",
"Banner": "My very own FTP server located at %host%",
"Token": "",
"Report": true,
"Ban": true,
"PunishScans": true,
"AllowAnonymous": false,
"PerIPLogs": false,
"AnonStat": true,
"ConsoleLogging": true,
"ActiveMode": true,
"Max_PerSecond": 5,
"Max_Total": 6,
"BanLength": 3600,
"MaxErrors": 6,
"BufferSize": 8192,
"MaxThreads": 50,
"Files": [
{
"Name": "readme.txt",
"Content": "Hello!"
}]
}
Pour que cela fonctionne, vous devez remplacer PortPasv par une autre valeur, afin que PortPasv ne soit pas égal à PortDef. Les autres options sont facultatives. Nous déconseillons fortement d'utiliser des fichiers d'une taille supérieure à 4 Mo ! Vous ne devez pas utiliser le honeypot comme un véritable serveur FTP pour partager des fichiers !
Envie de contribuer ? Super !
Nous utilisons VS2019 et .NET core 3.1 pour le développement.
Voici notre liste de tâches ACTUELLE :
MIT
| Clé | Valeur |
|---|
| PortDef | Remplacez par le port que vous souhaitez utiliser pour les nouvelles connexions (21 par défaut) |
| PortPasv | Remplacez par le port pour le mode PASV (1222 par défaut) |
| Hostname | Remplacez par une IPv4 publique réelle de votre PC/serveur. Elle est utilisée pour initier les connexions PASV. Veuillez utiliser une IPv4, nous ne prenons pas en charge les domaines |
| Banner | Bannière envoyée juste après la poignée de main TCP. %host% sera remplacé par le nom d'hôte actuel |
| Token | Jeton AbuseIPDB pour signaler les indésirables |
| Report | Devons-nous signaler les actions suspectes ? |
| Ban | Devons-nous bannir les utilisateurs en cas d'actions suspectes ? (Le bannissement dure 1 heure pour éviter que les personnes soient signalées deux fois) |
| PunishScans | Devons-nous bannir/signaler les scanners nmap ? |
| AllowAnonymous | Devons-nous autoriser les utilisateurs à se connecter avec le nom d'utilisateur "anonymous" ? |
| PerIPLogs | Créer des journaux pour des IP individuelles. Nécessite le dossier "iplogs" |
| AnonStat | Voulez-vous envoyer des statistiques anonymes sur l'utilisation des versions ? (Nous voyons uniquement la version de BearFTP que vous utilisez. Aucune information privée) |
| ConsoleLogging | Devons-nous journaliser les tentatives dans la console ? |
| ActiveMode | Devons-nous autoriser l'utilisation du mode actif ? (commande PORT) |
| Max_PerSecond | Nombre max. de connexions par seconde depuis une IP. S'applique uniquement au socket de base |
| Max_Total | Nombre max. de connexions actives depuis une IP. S'applique à la fois au socket de base et au PASV |
| BanLength | Durée (en secondes) d'un bannissement. 3600 secondes = 1 heure. |
| MaxErrors | Nombre max. de tentatives d'exécution d'une commande FTP invalide. |
| BufferSize | Taille du buffer sur RETR pour les fichiers. Environ 2048-8192 convient. Détermine la vitesse d'un téléchargement. |
| MaxThreads | Nombre maximal de threads, contrôlés par les clients, pouvant être créés par BearFTP |
| Files[] | Tableau de fichiers. |
| Files[Name] | Nom du fichier |
| Files[Content] | Contenu des fichiers (chaîne). Commencez par --- pour le charger depuis un fichier (exemple : "---file.exe") |