
خادم FTP من نوع Honeypot مكتوب بلغة .NET Core (C#) لكل من Linux وWindows.
BearFTP هو خادم FTP من نوع honeypot (فخ عسل)، مصمم لتسجيل محاولات القراصنة والإبلاغ عنها إلى قواعد بيانات القوائم السوداء للعناوين 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 ميغابايت! يجب ألا تستخدم honeypot كخادم FTP حقيقي لمشاركة الملفات!
تريد المساهمة؟ رائع!
نستخدم VS2019 و.NET Core 3.1 للتطوير.
إليك قائمة المهام الحالية لدينا:
| المفتاح | القيمة |
|---|
| PortDef | استبدلها بالمنفذ الذي تريد استخدامه للاتصالات الجديدة (21 افتراضيًا) |
| PortPasv | استبدلها بمنفذ وضع PASV (1222 افتراضيًا) |
| Hostname | استبدلها بعنوان IPv4 عام فعلي لجهازك/خادمك. يُستخدم لبدء اتصالات PASV. يُرجى استخدام IPv4، فنحن لا ندعم النطاقات |
| Banner | رسالة ترحيب تُرسل فور اكتمال مصافحة TCP. سيتم استبدال %host% باسم المضيف الحالي |
| Token | رمز AbuseIPDB للإبلاغ عن الأشرار |
| Report | هل نبلّغ عن الإجراءات المشبوهة؟ |
| Ban | هل نمنع المستخدمين عند القيام بإجراءات مشبوهة؟ (مدة المنع ساعة واحدة لمنع الإبلاغ المزدوج عن المستخدمين) |
| PunishScans | هل نمنع/نبلّغ عن ماسحات nmap؟ |
| AllowAnonymous | هل نسمح للمستخدمين بتسجيل الدخول باسم المستخدم "anonymous"؟ |
| PerIPLogs | إنشاء سجلات لعناوين IP فردية. يتطلب مجلد "iplogs" |
| AnonStat | هل تريد إرسال إحصائيات مجهولة حول استخدام الإصدار؟ (نحن نرى فقط إصدار BearFTP الذي تستخدمه. لا توجد معلومات خاصة) |
| ConsoleLogging | هل نسجّل المحاولات على وحدة التحكم؟ |
| ActiveMode | هل نسمح باستخدام الوضع النشط؟ (أمر PORT) |
| Max_PerSecond | الحد الأقصى لعدد الاتصالات في الثانية من عنوان IP. ينطبق فقط على المقبس الأساسي |
| Max_Total | الحد الأقصى لعدد الاتصالات النشطة من عنوان IP. ينطبق على كل من الأساسي وPASV |
| BanLength | مدة المنع (بالثواني). 3600 ثانية = ساعة واحدة. |
| MaxErrors | الحد الأقصى لعدد محاولات تنفيذ أمر FTP غير صالح. |
| BufferSize | حجم المخزن المؤقت لأمر RETR للملفات. قيمة بين 2048-8192 مناسبة. يحدد سرعة التنزيل. |
| MaxThreads | الحد الأقصى لعدد الخيوط، التي يتحكم بها العملاء، والتي يمكن أن ينشئها BearFTP |
| Files[] | مصفوفة من الملفات. |
| Files[Name] | اسم الملف |
| Files[Content] | محتويات الملفات (نص). ابدأ بـ --- لجعلها تُحمَّل من ملف (مثال: "---file.exe") |