چگونه تست نفوذ با پایتون را انجام دهیم؟
در این مقاله از سایت تک تیپ قصد داریم تا بهترین روش ها و تکنیک های تست نفوذ با پایتون را مورد بررسی قرار دهیم پس با ادامه مقاله همراه باشید تا با انواع روش ها و ویژگی های آن ها آشنا شوید.
تست نفوذ (Pen testing) تلاشی برای ارزیابی امنیت یک زیرساخت فناوری اطلاعات با شبیه سازی یک حمله سایبری علیه سیستم کامپیوتری برای بهرهبرداری از آسیبپذیری ها است. این به یک سازمان کمک می کند تا با شناسایی نقاط آسیب پذیر ، دفاع خود را در برابر حملات سایبری تقویت کند.
برای اینکه این مقاله را بهتر بفهمید باید دانش اولیه در مورد تست ، سیستم عامل و شبکه های کامپیوتری را دارا بوده و همچنین باید از مفاهیم اولیه برنامه نویسی پایتون آگاه باشید.
اگر هنوز پایتون را به خوبی یاد نگرفتید می توانید از آموزش های حرفه ای زیر برای افزایش دانش خود استفاده کنید.
تست نفوذ چیست ؟
Pen test یا تست نفوذ را می توان به عنوان تلاشی برای ارزیابی امنیت یک زیرساخت فناوری اطلاعات با شبیه سازی یک حمله سایبری علیه یک سیستم کامپیوتری برای بهره برداری از آسیب پذیری ها تعریف کرد.
تفاوت بین اسکن آسیب پذیری و تست نفوذ چیست؟
اسکن آسیب پذیری به سادگی آسیب پذیری های مشاهده شده را شناسایی می کند و تست نفوذ با پایتون ، همانطور که در بالا ذکر شد ، تلاشی برای سوء استفاده از آسیب پذیری ها است. تست های نفوذ به تعیین اینکه آیا دسترسی غیرمجاز یا هر گونه فعالیت مخرب دیگری در سیستم امکان پذیر است یا خیر کمک می کند.
ما میتوانیم با استفاده از فناوری های دستی یا خودکار ، تست های نفوذ را برای سرورها ، برنامه های کاربردی وب ، شبکه های بی سیم ، دستگاه های تلفن همراه و هر نقطه بالقوه دیگری انجام دهیم. به دلیل تست های نفوذ ، اگر از هر نوع آسیب پذیری سوء استفاده کنیم ، باید به IT و مدیر سیستم شبکه ارجاع داده شود تا به یک نتیجه استراتژیک برسیم.
اهمیت تست نفوذ با پایتون
در این قسمت با اهمیت تست نفوذبا پایتون آشنا می شویم. برای دانستن معنی به نکات زیر توجه کنید:
امنیت سازمان
اهمیت تست های نفوذ را از این منظر می توان فهمید که با ارزیابی دقیق از امنیت آن سازمان ، امنیت سازمان را تامین می کند.
حفظ حریم سازمان
با کمک تست نفوذ با پایتون ، می توانیم تهدیدات احتمالی را قبل از مواجهه با هر آسیبی شناسایی کرده و از محرمانه بودن آن سازمان محافظت کنیم.
اجرای سیاست های امنیتی
تست نفوذ می تواند اجرای سیاست امنیتی را در یک سازمان تضمین کند.
مدیریت بهره وری شبکه
با کمک تست نفوذ می توان کارایی شبکه را مدیریت کرد. می توانید امنیت دستگاه هایی مانند فایروال ، روتر و … را بررسی کنید.
تضمین امنیت شبکه
فرض کنید می خواهیم تغییری در طراحی شبکه اعمال کنیم یا نرم افزار ، سخت افزار و … را به روز کنیم. سپس تست های نفوذ با پایتون ، امنیت سازمان را در برابر هر نوع آسیب پذیری تضمین می کند.
نکته قابل توجه این است که برای تضمین امنیت شبکه باید تمام روش های امنیتی را بیاموزید و ابتدا آن ها را بر روی شبکه پیاده سازی کرده و سپس تست نفوذ با پایتون را انجام دهید. به همین دلیل یکی از بهترین مجموعه آموزش های امنیت شبکه که توسط فرادرس تولید شده است را در زیر قرار می دهیم تا بتوانید از آن استفاده کنید.
تستر نفوذ خوب کیست؟
تسترهای نفوذ متخصصان نرم افزاری هستند که به سازمان ها کمک می کنند تا با شناسایی آسیب پذیری ها ، دفاع خود را در برابر حملات سایبری تقویت کنند. یک تستر نفوذ پایتون می تواند از تکنیک های دستی یا ابزارهای خودکار مبتنی بر پایتون برای انجام تست ها استفاده کند.
نرم افزار های مورد نیاز تست نفوذ با پایتون
ابزارها و تکنیک های تست نفوذ فقط باید در محیط هایی اجرا شوند که متعلق به شما هستند یا اجازه اجرای این ابزارها را دارید. ما هرگز نباید این تکنیک ها را در محیط هایی که مجاز به انجام آن نیستیم ، انجام دهیم ، زیرا تست نفوذ بدون مجوز غیرقانونی است و در صورت شکایت ، مجرم شناخته خواهید شد.
- ما می توانیم با نصب بسته مجازی سازی ، VMware Player (www.vmware.com/products/player) یا Oracle VirtualBox ، تست نفوذ را تمرین کنیم.
- ما همچنین می توانیم ماشین های مجازی (VM) را از نسخه فعلی ایجاد کنیم:
- کالی لینوکس (www.kali.org/downloads/)
- چارچوب تست وب سامورایی (http://samurai.inguardians.com/)
روش شناسی تست نفوذ با پایتون
در زمان های اخیر ، هم سازمان های دولتی و هم خصوصی ، امنیت سایبری را به عنوان یک اولویت استراتژیک در نظر گرفته اند. مجرمان سایبری اغلب با استفاده از بردارهای حمله مختلف ، سازمان های دولتی و خصوصی را به اهداف آسان خود تبدیل کرده اند. متأسفانه به دلیل نبود سیاست ها ، استانداردها و پیچیدگی سیستم اطلاعاتی ، مجرمان سایبری تعداد زیادی هدف دارند و در بهرهبرداری از سیستم و همچنین سرقت اطلاعات موفق هستند.
تست نفوذ یک استراتژی است که می تواند برای کاهش خطرات حملات سایبری مورد استفاده قرار گیرد. موفقیت تست نفوذ با پایتون به یک روش ارزیابی کارآمد و سازگار بستگی دارد.
ما چندین روش ارزیابی مربوط به تست نفوذ داریم. مزیت استفاده از روش شناسی این است که به ارزیابان اجازه می دهد تا یک محیط را به روشی ثابت ارزیابی کنند. در اینجا چند روش مهم وجود دارد:
- راهنمای روش شناسی تست امنیت منبع باز (OSSTMM)
- باز کردن پروژه امنیتی برنامه وب (OWASP)
- موسسه ملی استاندارد و فناوری (NIST)
- استاندارد اجرای تست نفوذ (PTES)
برای اطلاع بیشتر از روش های تست نفوذ و راه های مقابله با آن می توانید آموزش ویژه فرادرس که در این زمینه تهیه نموده است را مشاهده کنید. لینک این آموزش در زیر آورده شده است.
معرفی ۴ اسکریپت پایتون برای سرعت بخشیدن به تست های نفوذ
ارزیابی خودکار امنیتی با اسکریپت های سفارشی می تواند به شما در گسترش عمق و دامنه آزمایش برنامه در یک چرخه آزمایش کمک کند. در اینجا چهار اسکریپت نوشته شده در پایتون وجود دارد که بارهای بارگذاری را تولید می کنند که می توانید از آن ها برای انجام حملات سفارشی بر روی برنامه های کاربردی وب و میزبان های وب استفاده کنید.
این اسکریپت ها را میتوان برای انواع مختلف حملات ، با حذف پارامتر ها ، انجام شکستن رمز عبور brute-force و جستجوی شناسههای صفحه ، سفارشی کرد.
تبدیل IP به شماره
اسکریپت Github: https://github.com/python/cpython/blob/master/Lib/ipaddress.py
اسکریپت آدرس IP را به یک فرمت عددی رایج تبدیل می کند. این به ویژه هنگام انجام حملات تغییر مسیر URL مفید است. برنامه ها اغلب کاربران را به صفحه دیگری هدایت می کنند و در برخی موارد صفحه مقصد با پارامترهای تایید نشده مشخص می شود و به مهاجم اجازه می دهد مقصد را تغییر دهد. اگر برنامه آدرس URL / IP ارائه شده به کاربر را نادیده بگیرد ، مهاجم فقط باید یک عدد صحیح را به عنوان پارامتر درخواست در درخواست HTTP مشخص کند ، IP مقصد مورد نظر را به یک عدد تبدیل کند و می تواند سیستم را به صفحه مخرب هدایت کند.
گذرواژه ویژه برنامه کاربردی
اسکریپت در Github: https://github.com/Broham/PassGen
حملات گذرواژهی Brute Force عموماً بی اثر هستند ، زیرا از فرهنگ های بزرگ جهانی استفاده می کنند ، نه کلمات خاصی که در برنامه ها یا صفحات وب استفاده می شوند. این اسکریپت از رشته های خاص بازیابی شده از انواع مختلف برنامه ها استفاده می کند ، بنابراین فرهنگ لغت خاص برنامه را کاهش می دهد. بر اساس الگوهای رفتار کاربر ایجاد شده است که در آن از کلمات و مفاهیم استفاده شده در محیط برنامه برای ایجاد رمز عبور استفاده می شود.
Metasploit Payload Generator (MSF)
اسکریپت در Github: https://github.com/g0tmi1k/msfpc
این اسکریپت MSF یک بار را ایجاد می کند که می تواند به یک برنامه اکسپلویت اضافه شود و می تواند سیستم های ویندوز را به خطر بیندازد. در طول مرحله بهره برداری ، تستر باید شنونده ای را برای دسترسی به پوسته Meterpreter پیکربندی کند. معمولاً این کار به صورت دستی انجام می شود ، اما ممکن است زمان بر باشد. اسکریپت ، محموله را با حداقل ورودی کاربر تولید می کند و به طور خودکار پیکربندی می کند.
سازنده فهرست کلمات سفارشی
اسکریپت در Github: https://github.com/r3nt0n/bopscrk
این اسکریپت برای حملات brute force در مرحله نگاشت تست نفوذ با پایتون مفید است. به عنوان مثال ، در یک حمله نفوذی ، نیروی brute فقط به محموله ای از اعداد ، کاراکترهای الفبایی عددی یا حروف نیاز دارد. این اسکریپت از ترکیبی از اعداد ، حروف بزرگ ، کوچک ، عددی و حروف بزرگ ، عددی و کوچک و غیره استفاده می کند.با تکنیک های مختلف طبقه بندی برای تولید بار مورد نیاز.
معرفی ابزار پایتون برای تست نفوذ
کتابخانه های بهره برداری
- Python Nmap : نتایج اسکن Nmap را به صورت برنامه نویسی تجزیه و تحلیل کنید و حملات سفارشی را علیه میزبان های خاص انجام دهید.
- Requests : به شما امکان می دهد درخواست های HTTP / 1.1 را بدون کار دستی و بدون نیاز به کدنویسی ارسال کنید.
- BeautifulSoup : استخراج داده ها از فایل های HTML و XML. می توان از آن برای حمله به بارهای سفارشی و برنامه های کاربردی وب استفاده کرد و می تواند به سرعت جزئیات مهم یک پاسخ را جدا کند.
- Monda—an : “اسکرابر ایمنی” که می تواند به توسعه برنامه های بهره برداری کمک کند. این کتابخانه کارهایی مانند شناسایی افست ها ، کاراکترهای تاب خورده، ابزارهای برنامه نویسی بازگشت گرا (ROP) را ساده می کند و کدی را تولید می کند که می تواند به راحتی در اکسپلویت ها استفاده شود.
- Scapy – کتابخانه پردازش بسته و ابزاری که می تواند بسته ها را در چندین پروتکل جعل یا رمزگشایی کند، آن ها را از طریق شبکه ارسال کند، آن ها را ضبط کند و درخواست ها و پاسخ ها را مطابقت دهد. دسترسی برنامه ریزی شده به عملکردهایی مانند Nmap ، Wireshark ، hping ، arpspoof و tcpdump را فراهم می کند. همچنین می توان از آن برای محو کردن مشتریان استفاده کرد.
ابزارهای شبکه
- pypcap، Pcapy، pylibpcap : پوششهای پایتون برای کتابخانه محبوب libpcap (tcpdumb).
- dpkt : تولید و تجزیه و تحلیل بسته های داده با استفاده از تعاریف اولیه پروتکل TCP / IP.
- Impacket : ایجاد و رمزگشایی بسته های شبکه. شامل پشتیبانی از پروتکل هایی مانند SMB است.
- flowgrep : عبور محموله بسته از طریق عبارات منظم
- اسکن زیر دامنهای Knock : فهرستی از زیر دامنه های هدف را از طریق تکنیک فهرست کلمات بر می گرداند.
- SubBrute : یک ابزار سریع شمارش زیر دامنه.
- Mallory : پروکسی TCP / UDP مقیاس پذیر که از تغییرات به پروتکل های غیر استاندارد پشتیبانی می کند.
- Spoodle : تجزیه و تحلیل زیر دامنه ها و آسیب پذیری های پودل.
- SMBMap : اشتراکهای Samba را در همه دامنه ها اسکن می کند.
پزشک قانونی دیجیتال
- Volatility : اسکن RAM و استخراج داده های forensic.
- Rekall : چارچوبی که توسط گوگل برای اسکن و تجزیه و تحلیل حافظه ایجاد شده است.
- LibForensics : کتابخانه ای برای توسعه برنامه های کاربردی پزشکی قانونی دیجیتال.
- TrlDLib : از امضا های باینری برای شناسایی انواع فایل ، از جمله اتصالات پایتون استفاده می کند.
- stern : جعبه ابزار پزشکی قانونی اندروید که در تست نفوذ با پایتون مورد استفاده قرار می گیرد
تجزیه و تحلیل بدافزار
- pyew : ویرایشگر خط فرمان و جداسازی قطعات عمدتاً برای تجزیه و تحلیل بدافزار استفاده می شود.
- Exefilter : انواع فایل ها را برای ایمیل ها ، صفحات وب یا بایگانی ها فیلتر می کند. این می تواند بسیاری از انواع فایل های محبوب را شناسایی کرده و محتوای فعال را حذف کند.
- pyClamAV : تشخیص ویروس را به ابزار پایتون اضافه می کند.
- Jsunpack-n : یک بازکننده جاوا اسکریپت که با شبیه سازی عملکرد مرورگر ، آسیب پذیری های مرورگر و آسیب پذیری های افزونه مرورگر را شناسایی می کند.
- Phoneyc : پیاده سازی honeclient به طور کامل در پایتون.
- CapTipper : با اسکن فایل های PCAP ، ترافیک HTTP مخرب را تجزیه و تحلیل ، بررسی و بازیابی می کند.
برای استفاده از این ابزار و کتابخانه ها باید تسلط کافی بر زبان پایتون داشته باشید. برای شروع یادگیری پایتون می توانید از آموزش جامع فرادرس استفاده کنید.