
Server FTP honeypot scritto in .NET Core (C#) per Linux e Windows.
BearFTP è un server FTP honeypot, progettato per registrare i tentativi degli hacker e segnalarli a database pubblici di blacklist IP.
Questo software è stato testato e funziona perfettamente su:
Utilizziamo diversi progetti come dipendenze per funzionare senza intoppi:
BearFTP richiede .NET Core 3.1 o superiore.
Scarica i binari dalla scheda Release o compilalo tu stesso.
Se sei su Windows, esegui
C:/BearFTP/BearFTP/bin/Release/netcoreapp3.1> ./BearFTP.exe
Per Linux, esegui
$ dotnet BearFTP.dll
Il programma dovrebbe terminare con un errore. Procedi a modificare il 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!"
}]
}
| Chiave | Valore |
|---|---|
| PortDef | Sostituisci con la porta che vuoi usare per le nuove connessioni (21 di default) |
| PortPasv | Sostituisci con la porta per la modalità PASV (1222 di default) |
| Hostname | Sostituisci con un IPv4 pubblico effettivo del tuo PC/server. Usato per avviare le connessioni PASV. Per favore usa IPv4, non supportiamo domini |
| Banner | Banner inviato subito dopo l'handshake TCP. %host% verrà sostituito con l'hostname corrente |
| Token | Token AbuseIPDB per segnalare i malintenzionati |
| Report | Dobbiamo segnalare azioni sospette? |
| Ban | Dobbiamo bannare gli utenti per azioni sospette? (Il ban dura 1 ora per evitare che le persone vengano segnalate due volte) |
| PunishScans | Dobbiamo bannare/segnalare gli scanner nmap? |
| AllowAnonymous | Dobbiamo consentire agli utenti di accedere con nome utente "anonymous"? |
| PerIPLogs | Crea log per singoli IP. Richiede la cartella "iplogs" |
| AnonStat | Vuoi inviare statistiche anonime sull'uso delle versioni? (Vediamo solo la versione di BearFTP che usi. Nessuna informazione privata) |
| ConsoleLogging | Dobbiamo registrare i tentativi nella console? |
| ActiveMode | Dobbiamo consentire l'uso della modalità Active? (comando PORT) |
| Max_PerSecond | Numero max. di connessioni al secondo da un IP. Si applica solo al socket di base |
| Max_Total | Numero max. di connessioni attive da un IP. Si applica sia alla base che al PASV |
| BanLength | Durata (in secondi) di un ban. 3600 secondi = 1 ora. |
| MaxErrors | Numero max. di tentativi di eseguire un comando FTP non valido. |
| BufferSize | Dimensione del buffer su RETR per i file. Intorno a 2048-8192 va bene. Determina la velocità di download. |
| MaxThreads | Numero massimo di thread, controllati dai client, che possono essere generati da BearFTP |
| Files[] | Array di file. |
| Files[Name] | Nome del file |
| Files[Content] | Contenuto dei file (stringa). Inizia con --- per caricarlo da un file (esempio: "---file.exe") |
Per farlo funzionare, dovresti cambiare PortPasv con qualsiasi altro valore, così PortPasv non è uguale a PortDef. Le altre opzioni sono facoltative. Sconsigliamo vivamente l'uso di file di dimensioni superiori a 4 MB! Non dovresti usare l'honeypot come un vero server FTP per condividere file!
Vuoi contribuire? Ottimo!
Usiamo VS2019 e .NET core 3.1 per lo sviluppo.
Ecco la nostra lista TODO ATTUALE:
MIT