
Linux और Windows दोनों के लिए .NET Core (C#) में लिखा गया Honeypot FTP सर्वर।
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 का उपयोग करते हैं।
यह रही हमारी वर्तमान कार्य सूची (todo list):
| कुंजी | मान |
|---|
| PortDef | उस पोर्ट से बदलें जिसे आप नए कनेक्शन के लिए उपयोग करना चाहते हैं (डिफ़ॉल्ट 21) |
| PortPasv | PASV मोड के लिए पोर्ट से बदलें (डिफ़ॉल्ट 1222) |
| Hostname | अपने PC/सर्वर के वास्तविक सार्वजनिक IPv4 से बदलें। PASV कनेक्शन प्रारंभ करने के लिए उपयोग किया जाता है। कृपया IPv4 का उपयोग करें, हम डोमेन का समर्थन नहीं करते हैं |
| Banner | TCP हैंडशेक के तुरंत बाद भेजा गया बैनर। %host% को वर्तमान होस्टनाम से बदल दिया जाएगा |
| Token | बुरे लोगों की रिपोर्ट करने के लिए AbuseIPDB टोकन |
| Report | क्या हमें संदिग्ध गतिविधियों की रिपोर्ट करनी चाहिए? |
| Ban | क्या हमें संदिग्ध गतिविधियों पर उपयोगकर्ताओं को प्रतिबंधित करना चाहिए? (प्रतिबंध 1 घंटे का होता है ताकि लोगों को दोबारा रिपोर्ट किए जाने से रोका जा सके) |
| PunishScans | क्या हमें nmap स्कैनर को प्रतिबंधित/रिपोर्ट करना चाहिए? |
| AllowAnonymous | क्या हमें उपयोगकर्ताओं को "anonymous" उपयोगकर्ता नाम से लॉगिन करने की अनुमति देनी चाहिए? |
| PerIPLogs | व्यक्तिगत IP के लिए लॉग बनाएँ। "iplogs" फ़ोल्डर की आवश्यकता है |
| AnonStat | क्या आप संस्करण उपयोग पर अनाम आँकड़े भेजना चाहते हैं? (हम केवल आपके द्वारा उपयोग किया जाने वाला BearFTP संस्करण देखते हैं। कोई निजी जानकारी नहीं) |
| ConsoleLogging | क्या हमें कंसोल पर प्रयासों को लॉग करना चाहिए? |
| ActiveMode | क्या हमें Active मोड के उपयोग की अनुमति देनी चाहिए? (PORT कमांड) |
| Max_PerSecond | एक IP से प्रति सेकंड कनेक्शन की अधिकतम मात्रा। केवल बेस सॉकेट पर लागू होता है |
| Max_Total | एक IP से सक्रिय कनेक्शन की अधिकतम मात्रा। बेस और PASV दोनों पर लागू होता है |
| BanLength | प्रतिबंध की अवधि (सेकंड में)। 3600 सेकंड = 1 घंटा। |
| MaxErrors | अमान्य FTP कमांड निष्पादित करने के प्रयासों की अधिकतम मात्रा। |
| BufferSize | फ़ाइलों के लिए RETR पर बफर आकार। लगभग 2048-8192 ठीक है। डाउनलोड की गति निर्धारित करता है। |
| MaxThreads | क्लाइंट द्वारा नियंत्रित, BearFTP द्वारा उत्पन्न किए जा सकने वाले थ्रेड्स की अधिकतम मात्रा |
| Files[] | फ़ाइलों की सरणी (array)। |
| Files[Name] | फ़ाइल का नाम |
| Files[Content] | फ़ाइलों की सामग्री (स्ट्रिंग)। इसे फ़ाइल से लोड करने के लिए --- से शुरू करें (उदाहरण: "---file.exe") |