ربات دانلودکننده داده‌های FOFA **موتور جستجوی دارایی‌ها و دستیار تحلیل شخصی FOFA شما.** این ربات قدرتمند تلگرام عمیقاً با API [FOFA](https://fofa.info) یکپارچه شده است و به شما امکان می‌دهد دارایی‌های فضای مجازی را مستقیماً از طریق تلگرام جستجو، دانلود، تحلیل و مدیریت کنید. این چیزی بیش از یک ابزار استخراج داده است؛ این یک پلتفرم یک مرحله‌ای است که قابلیت‌های متنوع پس‌پردازش و تحلیل را در خود جای داده است. ## سلب مسئولیت * هرگونه اسکریپت، لوگو و گردش کار موجود در این پروژه فقط برای اهداف اشتراک‌گذاری منابع و یادگیری است. قانونی بودن، مشروعیت و دقت آنها تضمین نمی‌شود. لطفاً احتیاط کنید و از استفاده از پروژه برای هرگونه هدف تجاری یا سودآوری خودداری کنید. * با پیروی از اصل بندر امن، اگر هرگونه تصویر یا محتوایی حق چاپ را نقض می‌کند، لطفاً آنها را در بخش مشکلات گزارش دهید و پس از تأیید حذف خواهند شد. تمام حق چاپ متعلق به نویسنده اصلی و وب‌سایت آنهاست. * من هیچ مسئولیتی در قبال هیچ محتوایی، از جمله اما نه محدود به هرگونه ضرر و زیان ناشی از هرگونه خطا در محتوا، نمی‌پذیرم. * هر کسی که به این وب‌سایت دسترسی دارد یا به طور مستقیم یا غیرمستقیم از منابع مرتبط با پروژه به هر وسیله‌ای استفاده می‌کند، باید این سلب مسئولیت را با دقت مطالعه کند. استفاده یا چاپ مجدد هرگونه آموزش یا منبع مرتبط با این پروژه به منزله پذیرش این سلب مسئولیت است. * هرگونه تکثیر یا انتشار هرگونه فایل منبع در این پروژه توسط هر حساب عمومی یا رسانه خودگردان ممنوع است. * داده‌های استفاده شده در این پروژه به طور مستقل توسط افراد یا سازمان‌هایی که از آن استفاده می‌کنند تولید می‌شود. این پروژه مسئولیتی در قبال محتوای داده‌ها، از جمله اما نه محدود به اصالت، دقت و قانونی بودن آن ندارد. تمام عواقب ناشی از استفاده از این پروژه بر عهده هیچ یک از مشارکت‌کنندگان آن نیست و تنها مسئولیت افراد یا سازمان‌هایی است که از آن استفاده می‌کنند. * سخت‌افزار و نرم‌افزار شخص ثالث مورد استفاده در این پروژه هیچ ارتباط مستقیم یا غیرمستقیمی با این پروژه ندارند. این پروژه فقط شرحی عینی از فرآیند استقرار و استفاده ارائه می‌دهد و استفاده از هیچ سخت‌افزار یا نرم‌افزار شخص ثالثی را تأیید نمی‌کند. تمام عواقب ناشی از استفاده از هرگونه سخت‌افزار یا نرم‌افزار شخص ثالث، تنها مسئولیت افراد یا سازمان‌هایی است که از آن استفاده می‌کنند و مسئولیتی بر عهده این پروژه نیست. * تمام محتوای این پروژه فقط برای اهداف یادگیری و تحقیق است. هرگونه استفاده از این پروژه برای فعالیت‌های غیرقانونی، از جمله اما نه محدود به ایجاد VPS یا سایر اهدافی که قوانین، مقررات یا سایر مقررات مربوطه ملی، منطقه‌ای یا سازمانی را نقض می‌کند، ممنوع است. نویسنده مسئولیتی در قبال هرگونه نقض حریم خصوصی یا سایر عواقب ناشی از این استفاده ندارد. * هرگونه تغییر بر اساس کد منبع این پروژه، اقدامات داوطلبانه افراد یا سازمان‌های دیگر است و به طور مستقیم یا غیرمستقیم به این پروژه مربوط نمی‌شود. هرگونه عواقب ناشی از چنین تغییراتی بر عهده این پروژه نیست. * این پروژه حق تکمیل یا اصلاح این سلب مسئولیت را در هر زمان برای خود محفوظ می‌دارد. افراد یا سازمان‌هایی که به طور مستقیم یا غیرمستقیم از محتوای این پروژه استفاده می‌کنند، سلب مسئولیت ویژه این پروژه را پذیرفته‌اند. ## ✨ ویژگی‌های اصلی * **🚀 جستجوی پیشرفته دارایی**: * **جستجوی دقیق**: از دستور `/kkfofa` برای اجرای هرگونه پرس و جوی نحوی FOFA استفاده کنید. * **تنظیمات پیش‌فرض و فیلترها**: مدیران می‌توانند پرس‌وجوهای رایج را از پیش تنظیم کرده و در حین اجرا به سرعت فیلترهای منطقه‌ای (قاره‌ای) را اضافه کنند. * **حالت‌های دانلود چندگانه**: * **دانلود کامل**: نتایج را تا سقف 10000 رکورد به سرعت دانلود کنید. * **ردیابی عمیق**: به عقب برگردید تا محدودیت 10000 رکورد را بشکنید و از نظر تئوری مجموعه کامل داده‌ها را به دست آورید. * **به‌روزرسانی افزایشی**: نتایج پرس‌وجوهای ذخیره‌شده را به‌روزرسانی کنید و فقط داده‌های تازه اضافه‌شده را دانلود کنید و امتیاز F را ذخیره کنید. * **📊 تحلیل عمیق داده‌ها**: * **نمایه میزبان (`/host`)**: اطلاعات جامعی را برای یک IP یا دامنه واحد، از جمله پورت‌های باز، خدمات، گواهینامه‌ها، بنرها و موارد دیگر، به دست آورید. * **آمار تجمیع‌شده (`/stats`)**: آمار تجمیع‌شده جهانی را برای هر پرس‌وجویی تجزیه و تحلیل می‌کند و بینش سریعی در مورد توزیع کلان دارایی‌ها (به عنوان مثال، کشورهای برتر، خدمات، بنادر و غیره) ارائه می‌دهد. * **تحلیل ویژگی‌های دسته‌ای (`/batchfind`)**: فهرستی از آدرس‌های IP (با فرمت `ip:port`) را آپلود کنید، و ربات به طور خودکار ویژگی‌های مشترک این دارایی‌ها را جستجو و هوشمندانه تحلیل می‌کند و به طور خودکار پرس‌وجوهای FOFA پیشنهادی را تولید می‌کند**، که آن را به ابزاری قدرتمند برای تحلیل هوش تهدید و طبقه‌بندی دارایی‌ها تبدیل می‌کند. * **🛠️ ابزارهای قدرتمند پس‌پردازش**: * **بررسی زنده بودن**: پس از دانلود، با یک کلیک، بررسی زنده بودن پورت را روی نتایج انجام دهید. * **اسکن زیرشبکه**: پورت‌های مشابه آدرس‌های IP در بخش C نتایج را اسکن می‌کند تا دارایی‌های بالقوه بیشتری را کشف کند. * **⚙️ ویژگی‌های مدیریتی راحت**: * **تنظیمات تعاملی (`/settings`)**: به راحتی کلیدهای API، پروکسی‌های HTTP، پیش‌تنظیم‌های پرس‌وجو و موارد دیگر را از طریق منو مدیریت کنید. * **پشتیبانی از چندین کلید API**: می‌توانید چندین کلید API FOFA اضافه کنید و آنها را برای استفاده در طول پرس‌وجوها مشخص کنید. اگر یک کلید منقضی شود یا تعداد نقاط F کافی نباشد، ربات به طور خودکار به کلید دیگری تغییر خواهد کرد. * **مدیریت داده‌ها**: از پشتیبان‌گیری و بازیابی پیکربندی، بررسی تاریخچه پرس‌وجو و وارد کردن فایل‌های داده موجود، که همگی به سینتکس FOFA مرتبط هستند، پشتیبانی می‌کند. * **به‌روزرسانی آنلاین (`/update`)**: می‌توانید URL منبع به‌روزرسانی را طوری پیکربندی کنید که اسکریپت ربات را به صورت آنلاین و با یک کلیک به‌روزرسانی کند و آن را به طور خودکار مجدداً راه‌اندازی کند. ## 📖 آماده‌سازی قبل از شروع، به سه چیز زیر نیاز خواهید داشت: 1. **یک سرور**: یک سرور لینوکس (یا هر کامپیوتر/مک دارای پایتون) که بتواند اسکریپت‌های پایتون را 24 ساعته و 7 روز هفته اجرا کند. بهتر است از این در چین یا سایر مناطقی که تلگرام مسدود شده است (مانند ایران) استفاده نکنید (به دلیل فایروال بزرگ، به پروکسی نیاز خواهد بود). 2. **کلید API FOFA**: * شما باید یک حساب عضویت انفرادی [FOFA](https://fofa.info) یا بالاتر داشته باشید. (یا عضو نشوید و امتیاز F بیشتری شارژ نکنید.) * پس از ورود به سیستم، کلید خود را در "مرکز شخصی" -> "رابط API" پیدا کنید. ۳. **توکن ربات تلگرام**: * در تلگرام `@BotFather` را جستجو کنید و مکالمه را شروع کنید. * دستور `/newbot` را ارسال کنید. * برای تنظیم نام و نام کاربری برای ربات خود (باید با `bot` تمام شود) دستورالعمل‌ها را دنبال کنید. * `BotFather` یک رشته طولانی از کاراکترها را به شما می‌دهد که **توکن ربات** شماست. لطفاً آن را ایمن نگه دارید و فاش نکنید. ## 🚀 راهنمای استقرار حتی اگر مبتدی هستید، کافیست مراحل زیر را دنبال کنید تا به راحتی با موفقیت مستقر شوید. ### مرحله ۱: دانلود اسکریپت آخرین نسخه اسکریپت پایتون (`fofa.py`) ارائه شده با این پروژه را روی سرور خود دانلود کنید. ```bash wget https://raw.githubusercontent.com/CXK-Computer/fofa_bot/refs/heads/main/fofa.py ``` همچنین می‌توانید requirements.txt را روی سرور خود دانلود کنید. ```bash wget https://raw.githubusercontent.com/CXK-Computer/fofa_bot/refs/heads/main/requirements.txt ``` همچنین می‌توانید فایل‌های باینری از پیش کامپایل شده را مستقیماً از توزیع دانلود کنید. ### مرحله 2: نصب وابستگی‌ها این ربات به چندین کتابخانه پایتون متکی است. ترمینال سرور را باز کنید و دستورات زیر را برای نصب آنها اجرا کنید: ```bash pip3 install python-telegram-bot==13.15 requests "urllib3<2.0" ``` یا (اگر قبلاً requirements.txt را دانلود کرده‌اید) ```bash pip3 install -r requirements.txt ``` *توجه: ما نسخه ۱۳.۱۵ از `python-telegram-bot` را برای اطمینان از سازگاری مشخص می‌کنیم.* ### مرحله ۳: پیکربندی ربات ۱. فایلی با نام `config.json` را در همان دایرکتوری اسکریپت ایجاد کنید. ۲. موارد زیر را کپی کرده و در فایل `config.json` قرار دهید: ```json { "bot_token": "توکن ربات تلگرام خود را اینجا قرار دهید", "apis": [ "اولین کلید API FOFA خود را اینجا قرار دهید" ], "admins": [], "proxy": "", "full_mode": false, "public_mode": false, "presets": [], "update_url": "" } ``` ۳. **فایل پیکربندی را تغییر دهید**: * `"bot_token"`: با توکنی که از `@BotFather` در **Preparation** دریافت کرده‌اید، جایگزین کنید. * `"apis"`: با کلید API FOFA خود جایگزین کنید. می‌توانید چندین کلید را که با کاما از هم جدا شده‌اند، اضافه کنید، به عنوان مثال: `["key1", "key2"]`. * `"admins"`: **این فیلد را خالی بگذارید**. وقتی برای اولین بار با ارسال دستور `/start` ربات را راه‌اندازی می‌کنید، به طور خودکار شناسه کاربری تلگرام شما را به عنوان اولین مدیر اضافه می‌کند. * `"proxy"`: اگر سرور شما برای دسترسی به تلگرام به پروکسی نیاز دارد (مثلاً در چین، ایران و غیره)، آدرس پروکسی را اینجا وارد کنید، مثلاً `"http://127.0.0.1:7890"`. در غیر این صورت، آن را خالی بگذارید. ### مرحله ۴: اجرای ربات در ترمینال، ربات را با استفاده از دستور زیر راه‌اندازی کنید: ```bash python3 fofa.py ``` اگر همه چیز خوب پیش رفت، باید یک پیام گزارش مشابه "🚀 Ultimate bot started..." ببینید. اکنون می‌توانید ربات خود را در تلگرام پیدا کنید و شروع به استفاده از آن کنید! ### مرحله ۵: اجرای ربات در پس‌زمینه (توصیه شده) برای اجرای ربات حتی پس از بستن ترمینال، استفاده از `nohup` را توصیه می‌کنیم: ```bash nohup python3 -u fofa.py > fofa_bot_run.log 2>&1 & ``` همچنین می‌توانید از `screen` استفاده کنید: ```bash screen -S fofa python3 fofa.py ``` دستور فوق باعث می‌شود ربات در پس‌زمینه اجرا شود و تمام گزارش‌ها را در فایل `fofa_bot_run.log` نمایش دهد (screen کار نخواهد کرد). ## 📚 جزئیات دستور در زیر شرح مفصلی از تمام دستورات موجود آمده است. --- ### 🔍 پرس‌وجوی دارایی * **/kkfofa `[key_index] `** * **عملکرد**: دستورات اصلی پرس‌وجوی FOFA. * **کاربرد**: * بدون پارامتر (`/kkfofa`): اگر یک پرس‌وجوی از پیش تعیین‌شده تنظیم شده باشد، یک منوی پرس‌وجوی از پیش تعیین‌شده ظاهر می‌شود. * با پارامترها (`/kkfofa domain="example.com"`): پرس‌وجو را مستقیماً اجرا کنید. * با یک کلید مشخص (`/kkfofa 2 app="nginx"`): پرس‌وجو با استفاده از کلید API دوم پیکربندی‌شده در `config.json`. * **جریان تعامل**: 1. پس از اجرای پرس‌وجو، ربات می‌پرسد که آیا بر اساس قاره فیلتر شود یا خیر. 2. سپس، بررسی می‌کند که آیا حافظه پنهان محلی وجود دارد یا خیر. 3. اگر بیش از 10000 نتیجه وجود داشته باشد، از شما می‌خواهد که حالت دانلود (کامل/عمیق) را انتخاب کنید. --- ### 📊 تحلیل داده‌ها * **/host ``** * **عملکرد**: دریافت اطلاعات دقیق برای یک هدف واحد. * **مثال**: `/host 1.1.1.1` یا `/host example.com` * **خروجی**: اگر اطلاعات زیادی وجود داشته باشد، خلاصه‌ای ارسال می‌شود و گزارش مفصلی با بنر/هدر کامل به صورت فایل ارسال می‌شود. * **/stats ``** * **عملکرد**: جمع‌آوری آمار برای یک پرس‌وجوی FOFA. * **مثال**: `/stats app="Apache-Tomcat"` * **خروجی**: 5 آمار برتر برای کشورها، سازمان‌ها، خدمات، بنادر و غیره را برمی‌گرداند. * **/batchfind** * **عملکرد**: تجزیه و تحلیل دسته‌ای ویژگی‌های رایج دارایی. این دستگاه است یکی از ویژگی‌های اصلی ربات. * **کاربرد**: ۱. دستور `/batchfind` را ارسال کنید. ۲. یک فایل `.txt` با یک `ip:port` در هر خط آپلود کنید (سازگاری با فرمت‌های پیچیده مختلف، مانند `۱.۱.۱.۱:۴۴۳ | ...`). ۳. بُعد تحلیل مورد نظر (مانند سرویس، گواهی، عنوان و غیره) را از منو انتخاب کنید. ۴. ربات این دارایی‌ها را به صورت دسته‌ای جستجو می‌کند و گزارشی حاوی ویژگی‌های برتر و عبارات جستجوی FOFA پیشنهادی ایجاد می‌کند. --- ### ⚙️ مدیریت و تنظیمات * **/settings** * **عملکرد**: برای مدیریت موارد زیر به منوی تنظیمات تعاملی دسترسی پیدا کنید: * **مدیریت API**: مشاهده، اضافه کردن و حذف کلیدهای API FOFA و تغییر حالت‌های جستجو (سال اخیر/تاریخچه کامل). * **مدیریت از پیش تعیین‌شده**: عبارات جستجوی پرکاربرد را به عنوان از پیش تعیین‌شده برای دسترسی سریع اضافه یا حذف کنید. * **تنظیمات پروکسی**: تنظیم یا پاک کردن پروکسی HTTP. * **پشتیبان‌گیری و بازیابی**: به سرعت از فایل پیکربندی خود نسخه پشتیبان تهیه کنید. * **به‌روزرسانی اسکریپت**: آدرس اینترنتی منبع به‌روزرسانی را تنظیم کنید. * **/history** * **عملکرد**: مشاهده 10 رکورد آخر تاریخچه پرس‌وجو و وضعیت حافظه پنهان آنها. * **/import** * **عملکرد**: مرتبط کردن یک فایل نتیجه موجود (.txt) با یک عبارت پرس‌وجوی FOFA و ذخیره آن. * **کاربرد**: در تلگرام، فایل `.txt` مورد نظر برای وارد کردن را **پاسخ** دهید، سپس دستور `/import` را وارد کنید. ربات از شما می‌خواهد که عبارت پرس‌وجوی مرتبط را وارد کنید. * **/backup** و **/restore** * **عملکرد**: از فایل پیکربندی `config.json` خود نسخه پشتیبان تهیه یا بازیابی کنید. * **کاربرد**: `/backup` فایل را مستقیماً برای شما ارسال می‌کند. `/restore` از شما می‌خواهد که فایل پیکربندی را آپلود کنید. --- ### 💻 مدیریت سیستم * **/update** * **عملکرد**: اگر `update_url` در تنظیمات پیکربندی شده باشد، این دستور آخرین اسکریپت را از آن URL دانلود کرده و ربات را به طور خودکار مجدداً راه‌اندازی می‌کند. * **/getlog** * **عملکرد**: دریافت فایل گزارش اجرای ربات `fofa_bot.log`. * **/shutdown** * **عملکرد**: خاموش کردن ایمن فرآیند ربات. * **/stop** * **عملکرد**: توقف اضطراری وظایف دانلود داده‌های در حال انجام (مانند ردیابی عمیق). * **/cancel** * **عملکرد**: لغو عملیات جلسه در حال انجام (مانند تنظیمات، واردات و غیره). ## ❓ سوالات متداول 1. **اگر ربات پاسخگو نباشد چه باید بکنم؟ ** * بررسی کنید که `bot_token` در `config.json` صحیح باشد. * بررسی کنید که شبکه سرور نرمال باشد و API تلگرام قابل دسترسی باشد (در غیر این صورت، لطفاً یک پروکسی تنظیم کنید. قطعاً در چین بدون پروکسی کار نخواهد کرد). * فایل گزارش `fofa_bot_run.log` را برای هرگونه خطا بررسی کنید (لطفاً در صورت وجود، به‌روزرسانی را ارسال کنید). 2. **چرا ربات هنگام ارسال دستور می‌گوید من مجوز ندارم؟** * پس از شروع ربات، اولین کاربری که `/start` را برای آن ارسال می‌کند، به طور خودکار به عنوان مدیر تنظیم می‌شود. لطفاً مطمئن شوید که شناسه کاربری تلگرام شما به درستی به لیست `admins` در `config.json` اضافه شده است. 3. **چرا درخواست FOFA با شکست مواجه شد؟** * **کلید API نامعتبر**: بررسی کنید که آیا کلید صحیح است یا منقضی شده است. * **امتیازهای F ناکافی**: برای بررسی موجودی امتیاز F خود به وب‌سایت رسمی FOFA وارد شوید. * **خطای نحوی**: بررسی کنید که آیا نحو درخواست FOFA شما صحیح است یا خیر. ## 📞 پشتیبانی و بازخورد - 🐛 **گزارش‌های اشکال**: [مشکلات گیت‌هاب](https://github.com/CXK-Computer/fofa_bot/issues) - 💡 **پیشنهادات ویژگی**: [بحث‌های گیت‌هاب](https://github.com/CXK-Computer/fofa_bot/discussions) ## 📞 پشتیبانی و بازخورد ## 🤝 دستورالعمل‌های مشارکت مشکلات و درخواست‌های pull خوش آمدید! ۱. این مخزن را فورک کنید ۲. یک شاخه ویژگی ایجاد کنید: `git checkout -b feature/amazing-feature` ۳. تغییرات را ثبت کنید: `git commit -m 'Add amazing feature'` ۴. شاخه را وارد کنید: `git push origin feature/amazing-feature` ۵. درخواست pull ارسال کنید ## ⭐ ستاره [![Stargazers over time](https://starchart.cc/CXK-Computer/fofa_bot.svg?variant=adaptive)](https://starchart.cc/CXK-Computer/fofa_bot)## ستاره‌شناسان در طول زمان ## 🙏 تقدیر [X-Fofa](https://github.com/sv3nbeast/X-Fofa) برای ارائه پیاده‌سازی قابلیت ردیابی عمیق `انجمن گیت‌هاب`