
Servidor FTP honeypot escrito em .NET Core (C#) para Linux e Windows.
O BearFTP é um servidor FTP honeypot, projetado para registrar as tentativas de hackers e reportá-las a bancos de dados públicos de lista negra de IPs.
Este software foi testado e funciona perfeitamente em:
Usamos vários projetos como dependências para funcionar sem problemas:
O BearFTP requer .NET Core 3.1 ou superior.
Baixe os binários na aba Release ou compile você mesmo.
Se você estiver no Windows, execute
C:/BearFTP/BearFTP/bin/Release/netcoreapp3.1> ./BearFTP.exe
Para Linux, execute
$ dotnet BearFTP.dll
O programa deve ser encerrado com um erro. Prossiga para editar o 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!"
}]
}
| Chave | Valor |
|---|---|
| PortDef | Substitua pela porta que você deseja usar para novas conexões (21 por padrão) |
| PortPasv | Substitua pela porta para o modo PASV (1222 por padrão) |
| Hostname | Substitua por um IPv4 público real do seu PC/servidor. Usado para iniciar conexões PASV. Use IPv4, não suportamos domínios |
| Banner | Banner enviado logo após o handshake TCP. %host% será substituído pelo hostname atual |
| Token | Token do AbuseIPDB para reportar os mal-intencionados |
| Report | Devemos reportar ações suspeitas? |
| Ban | Devemos banir usuários em ações suspeitas? (O ban dura 1 hora para evitar que pessoas sejam reportadas duas vezes) |
| PunishScans | Devemos banir/reportar scanners nmap? |
| AllowAnonymous | Devemos permitir que usuários façam login com o nome de usuário "anonymous"? |
| PerIPLogs | Criar logs para IPs individuais. Requer a pasta "iplogs" |
| AnonStat | Você quer enviar estatísticas anônimas sobre o uso da versão? (Só vemos a versão do BearFTP que você usa. Nenhuma informação privada) |
| ConsoleLogging | Devemos registrar as tentativas no console? |
| ActiveMode | Devemos permitir o uso do modo Active? (comando PORT) |
| Max_PerSecond | Quantidade máx. de conexões por segundo a partir de um IP. Aplica-se apenas ao socket base |
| Max_Total | Quantidade máx. de conexões ativas de um IP. Aplica-se tanto à base quanto ao PASV |
| BanLength | Duração (em segundos) de um ban. 3600 segundos = 1 hora. |
| MaxErrors | Quantidade máx. de tentativas de executar um comando FTP inválido. |
| BufferSize | Tamanho do buffer no RETR para arquivos. Em torno de 2048-8192 é o suficiente. Determina a velocidade de um download. |
| MaxThreads | Quantidade máxima de threads, controladas pelos clientes, que podem ser geradas pelo BearFTP |
| Files[] | Array de arquivos. |
| Files[Name] | Nome do arquivo |
| Files[Content] | Conteúdo dos arquivos (string). Comece com --- para carregar de um arquivo (exemplo: "---file.exe") |
Para que funcione, você deve alterar PortPasv para qualquer outro valor, de modo que PortPasv não seja igual a PortDef. As outras opções são opcionais. Recomendamos fortemente que você não use arquivos com mais de 4 MB! Você não deve usar o honeypot como um servidor FTP real para compartilhar arquivos!
Quer contribuir? Ótimo!
Usamos VS2019 e .NET core 3.1 para desenvolvimento.
Aqui está a nossa lista de tarefas ATUAL:
MIT