
Honeypot FTP-сервер, написанный на .NET Core (C#) для Linux и Windows.
BearFTP — это honeypot 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!"
}]
}
| Key | Value |
|---|---|
| PortDef | Замените на порт, который хотите использовать для новых подключений (по умолчанию 21) |
| PortPasv | Замените на порт для PASV-режима (по умолчанию 1222) |
| Hostname | Замените на реальный публичный IPv4 вашего ПК/сервера. Используется для инициации PASV-подключений. Пожалуйста, используйте IPv4, мы не поддерживаем домены |
| Banner | Баннер, отправляемый сразу после TCP-рукопожатия. %host% будет заменен на текущее имя хоста |
| Token | Токен 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") |
Чтобы это заработало, измените PortPasv на любое другое значение, чтобы PortPasv не был равен PortDef. Остальные параметры необязательны. Мы настоятельно не рекомендуем использовать файлы размером более 4 МБ! Вам не следует использовать honeypot в качестве настоящего FTP-сервера для обмена файлами!
Хотите внести свой вклад? Отлично!
Для разработки мы используем VS2019 и .NET Core 3.1.
Вот наш текущий список задач: