BearFTP 是一个蜜罐 FTP 服务器,旨在记录黑客的尝试并将其报告给公共 IP 黑名单数据库。
本软件已在以下环境测试并完美运行:
我们使用以下项目作为依赖以确保平稳运行:
BearFTP 需要 .NET Core 3.1 或更高版本。
从 Release 标签页下载二进制文件,或自行编译。
如果你在 Windows 上,运行
C:/BearFTP/BearFTP/bin/Release/netcoreapp3.1> ./BearFTP.exe
对于 Linux,运行
$ dotnet BearFTP.dll
程序会以错误退出。请继续编辑 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!"
}]
}
要使其正常工作,你应将 PortPasv 改为其他值,使 PortPasv 不等于 PortDef。其他选项为可选。 我们强烈不建议使用超过 4 MB 的文件!你不应将蜜罐当作真正的 FTP 服务器来共享文件!
想要贡献代码?太好了!
我们使用 VS2019 和 .NET Core 3.1 进行开发。
这是我们目前的待办事项列表:
MIT
| 键 | 值 |
|---|
| PortDef | 替换为你希望用于新连接的端口(默认为 21) |
| PortPasv | 替换为 PASV 模式的端口(默认为 1222) |
| Hostname | 替换为你电脑/服务器的实际公共 IPv4。用于发起 PASV 连接。请使用 IPv4,我们不支持域名 |
| Banner | TCP 握手后立即发送的横幅。%host% 将被替换为当前主机名 |
| Token | 用于举报恶意 IP 的 AbuseIPDB 令牌 |
| Report | 是否举报可疑行为? |
| Ban | 是否对可疑行为的用户实施封禁?(封禁时长为 1 小时,以防止用户被重复举报) |
| PunishScans | 是否封禁/举报 nmap 扫描器? |
| AllowAnonymous | 是否允许用户使用 "anonymous" 用户名登录? |
| PerIPLogs | 为每个 IP 创建日志。需要 "iplogs" 文件夹 |
| AnonStat | 是否发送关于版本使用情况的匿名统计?(我们只能看到你使用的 BearFTP 版本,没有私人信息) |
| ConsoleLogging | 是否将尝试记录到控制台? |
| ActiveMode | 是否允许使用主动模式?(PORT 命令) |
| Max_PerSecond | 单个 IP 每秒的最大连接数。仅适用于基础套接字 |
| Max_Total | 单个 IP 的最大活动连接数。同时适用于基础连接和 PASV |
| BanLength | 封禁时长(秒)。3600 秒 = 1 小时。 |
| MaxErrors | 尝试执行无效 FTP 命令的最大次数。 |
| BufferSize | 文件 RETR 的缓冲区大小。2048-8192 左右即可,决定下载速度。 |
| MaxThreads | BearFTP 可以由客户端控制生成的最大线程数。 |
| Files[] | 文件数组。 |
| Files[Name] | 文件名 |
| Files[Content] | 文件内容(字符串)。以 --- 开头可使其从文件加载(例如:"---file.exe") |