
Honeypot-FTP-Server, geschrieben in .NET Core (C#) für Linux und Windows.
BearFTP ist ein FTP-Honeypot-Server, der entwickelt wurde, um Angriffsversuche von Hackern zu protokollieren und sie an öffentliche IP-Blacklist-Datenbanken zu melden.
Diese Software wurde getestet und läuft einwandfrei auf:
Wir verwenden mehrere Projekte als Abhängigkeiten, um einen reibungslosen Betrieb zu gewährleisten:
BearFTP erfordert .NET Core 3.1 oder höher.
Lade die Binärdateien vom Release-Tab herunter oder kompiliere sie selbst.
Wenn du unter Windows bist, führe Folgendes aus:
C:/BearFTP/BearFTP/bin/Release/netcoreapp3.1> ./BearFTP.exe
Für Linux führe Folgendes aus:
$ dotnet BearFTP.dll
Das Programm sollte sich mit einem Fehler beenden. Fahre dann mit der Bearbeitung der config.json fort.
{
"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!"
}]
}
Damit es funktioniert, solltest du PortPasv auf einen anderen Wert ändern, sodass PortPasv nicht gleich PortDef ist. Andere Optionen sind optional. Wir raten dringend davon ab, Dateien mit einer Größe von mehr als 4 MB zu verwenden! Du solltest den Honeypot nicht als echten FTP-Server zum Teilen von Dateien nutzen!
Du willst mitwirken? Großartig!
Wir verwenden VS2019 und .NET core 3.1 für die Entwicklung.
Hier ist unsere AKTUELLE TODO-Liste:
MIT
| Key | Value |
|---|
| PortDef | Ersetze durch den Port, den du für neue Verbindungen verwenden möchtest (Standard: 21) |
| PortPasv | Ersetze durch den Port für den PASV-Modus (Standard: 1222) |
| Hostname | Ersetze durch eine echte öffentliche IPv4-Adresse deines PCs/Servers. Wird verwendet, um PASV-Verbindungen zu initiieren. Bitte verwende IPv4, wir unterstützen keine Domains |
| Banner | Banner, das direkt nach dem TCP-Handshake gesendet wird. %host% wird durch den aktuellen Hostnamen ersetzt |
| Token | AbuseIPDB-Token, um Übeltäter zu melden |
| Report | Sollen wir verdächtige Aktionen melden? |
| Ban | Sollen wir Benutzer bei verdächtigen Aktionen bannen? (Der Bann ist 1 Stunde lang, um zu verhindern, dass dieselben Leute doppelt gemeldet werden) |
| PunishScans | Sollen wir Nmap-Scanner bannen/melden? |
| AllowAnonymous | Sollen wir Benutzern erlauben, sich mit dem Benutzernamen „anonymous“ anzumelden? |
| PerIPLogs | Protokolle für einzelne IPs erstellen. Erfordert den Ordner „iplogs“ |
| AnonStat | Möchtest du anonyme Statistiken zur Versionsnutzung senden? (Wir sehen nur die von dir verwendete BearFTP-Version. Keine privaten Informationen) |
| ConsoleLogging | Sollen Versuche in der Konsole protokolliert werden? |
| ActiveMode | Sollen wir die Nutzung des aktiven Modus erlauben? (PORT-Befehl) |
| Max_PerSecond | Max. Anzahl von Verbindungen pro Sekunde von einer IP. Gilt nur für den Basis-Socket |
| Max_Total | Max. Anzahl von aktiven Verbindungen von einer IP. Gilt sowohl für Basis als auch PASV |
| BanLength | Dauer eines Banns (in Sekunden). 3600 Sekunden = 1 Stunde. |
| MaxErrors | Max. Anzahl von Versuchen, einen ungültigen FTP-Befehl auszuführen. |
| BufferSize | Puffergröße bei RETR für Dateien. Irgendwo zwischen 2048 und 8192 ist in Ordnung. Bestimmt die Download-Geschwindigkeit. |
| MaxThreads | Maximale Anzahl von Threads, die von Clients kontrolliert und von BearFTP erzeugt werden können |
| Files[] | Array von Dateien. |
| Files[Name] | Dateiname |
| Files[Content] | Inhalt der Dateien (Zeichenkette). Beginne mit ---, um den Inhalt aus einer Datei zu laden (Beispiel: „---file.exe“) |