چگونه با پایتون تست نفوذ بگیریم
تست نفوذ با پایتون(آزمایش قلم) تلاشی است برای ارزیابی امنیت زیرساختهای فناوری اطلاعات با شبیهسازی حمله سایبری علیه سیستم رایانهای برای سوء استفاده از آسیب پذیریها، بدین ترتیب این سازمان با شناسایی آسیب پذیریها به دفاع از سازمان در برابر حملات سایبری کمک میکند.
آزمایش کنندگان نفوذ و تحلیلگران امنیت سایبری اغلب در شرایطی قرار میگیرند که مجبور به انجام کارهای تکراری میشوند و همین موضوع زمان گرانبها و تمرکز فعال را از آنها سلب میکند. برای مثال از چنین موقعیتهایی، میتوان به اسکن اهداف، انجام شمارش فشرده، کشف زیر دامنه، شناسایی و موارد دیگر اشاره کرد.
اینجاست که زبانهای برنامه نویسی مانند پایتون بسیار مفید میشوند. تسلط بر پایتون به شما این امکان را میدهد که دست از این کارهای تکراری و پیش پا افتاده بردارید، آنها را از طریق کد، خودکار کنید و آنها را سریعتر کنید تا بتوانید بر جنبههای واقعاً چالش برانگیز آزمایشات نفوذ و امنیت سایبری خود تمرکز کنید.
پایتون یک زبان همه منظوره، سطح بالا، شی گرا، اِسکریپتی و متن باز است !
پایتون برای تست نفوذ زبانی مناسب است که توسط خیدو فان روسوم در سال ۱۹۹۱ در کشور هلند طراحی شد.
فلسفهٔ ایجاد آن تأکید بر دو هدف اصلی خوانایی بالای برنامههای نوشته شده و کوتاهی و بازدهی نسبی بالای آن بود.
کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شدهاند و در مقابل کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند.
این مقاله به شما کمک میکند تا مهارتهای پایتون خود را توسعه داده و آنها را در امنیت سایبری و تست نفوذ به کار بگیرید.
کتاب تست نفوذ با پایتون
در اینجا به ۲کتاب مفید برای آموزش تست نفوذ با پایتون اشاره کرده و توضیحات مختصری در رابطه با آنها برایتان شرح میدهیم تا بدین وسیله در رابطه با تست نفوذ با پایتون اطلاعات مفیدی به دست آورده و در راه انجام هرچه بهتر کارهایتان از آنها بهره بگیرید.
کتاب Hands-On Penetration Testing with Python
با مطالعه این کتاب میتوانید با موضوعاتی مثل، توسعه اسکنر، آسیب پذیری سفارشی، اتوماسیون اسکن برنامههای وب و توسعه از طریق سناریوهای روزمره امنیت سایبری که میتوانند با پایتون خودکار شوند، آشنا شوید.
همچنین میتوانید موارد استفاده خاص سازمان و اتوماسیون شکار تهدید را کشف کنید، درک عمیقی از مهندسی معکوس به دست آورده و با مفاهیمی مثل fuzzing سرریز بافر، توسعه keyger logger و بهرهبرداری از توسعه برای سرریزهای بافر، خراشیدن وب در پایتون به دست آورده و از آن برای پردازش پاسخهای وب استفاده کنید.
حتی میتوانید موارد استفاده از مرکز عملیات امنیتی (SOC) را کاوش کنید با علم داده، پایتون، امنیت سایبری، آموزش هک و تست نفوذ آشنا شوید.
Python Penetration Testing Essentials – Second Edition
این کتاب مهارتهایی که برای استفاده از پایتون برای آموزش تست نفوذ (pentesting) نیاز دارید را، با کمک مثالهای کد دقیق در اختیار شما قرار میدهد. این کتاب با بررسی اصول اولیه شبکه با پایتون شروع میکند و سپس به آموزش هک و امنیت شبکه میپردازد.
در نهایت به وسیله این کتاب، شما در جستجوی کتابخانههای پایتون برای انجام انواع مختلفی از تکنیک های نفوذ پنتیستن و هک اخلاقی تحقیق میکنید. در مرحله بعد، به آموزش مقدماتی برنامه نویسی هک و تست نفوذ با پایتون پرداخته شده و سپس به سراغ مفاهیم مربوط به هک وب سایت مانند دستکاری پارامترها، DDoS ، XSS وتزریق SQL. پرداخته خواهد شد.
با خواندن این کتاب، تکنیکها و روشهای متفاوتی را فرا خواهید گرفت که شما را با تکنیکهای pentesting پایتون، نحوه محافظت از خود و ایجاد برنامههای خودکار برای یافتن کنسول مدیریت، تزریق SQL و حملات XSS آشنا میکند.
آموزش تست نفوذ با کالی لینوکس
آزمایش نفوذ میتواند به شما در افزایش امنیت و کیفیت محصول کمک کند. این یک فرآیند پیچیده و در عین حال خلاق است که در آن باید بدانید چه کار میکنید و چرا آن را انجام میدهید.
در این قسمت از مقاله، ما بر کالی لینوکس، توزیع لینوکس که در انجام وظایف مختلف تست نفوذ مفید است، از جمع آوری اطلاعات در مورد محصول تا آزمایش عملکرد آن با تست استرس، تمرکز میکنیم.
کالی لینوکس یک توزیع مشتق شده از دبیان از سیستم عامل محبوب لینوکس است. با کمک کالی، آزمایش نفوذ بسیار سادهتر انجام میشود. کاربران پیشرفته میتوانند از Kali برای اجرای تستهای امنیت اطلاعات برای تشخیص و رفع آسیب پذیریهای احتمالی در برنامههای خود استفاده کنند.
یکی از ویژگیهای اصلی کالی لینوکس این است که این سیستم به معماری ARM منتقل شده است. در نتیجه kali را میتوان نه تنها بر روی کامپیوترهای رومیزی و لپ تاپها بلکه بر روی تلفنهای هوشمند مبتنی بر Android نیز نصب کرد.
کالی لینوکس یک ابزار فوق العاده قدرتمند برای آموزش تست نفوذ است که دارای بیش از ۶۰۰ ابزار امنیتی از جمله راه حلهای محبوب مانند Wireshark ، Nmap ، Armitage ، Aircrack و Burp Suite است. در طول آزمایش نفوذ، باید به مشکلات مختلف و بردارهای احتمالی حمله، توجه ویژهای داشته باشید.
چهار مرحله مهم از آزمایش امنیت اطلاعات محصول، به شرح زیر است؛
جمع آوری اطلاعات Gathering information
تجزیه و تحلیل آسیب پذیریها Analyzing vulnerabilities
بو کشیدن و جعل کردن ترافیک Sniffing and spoofing traffic
تست استرس Stress testing
با تغییر تکنولوژیکی و زیرساختهای فعلی، تست نفوذ دیگر یک فعالیت فرایند محور نیست. آزمایش نفوذ امروزی، نیاز به اتوماسیون و نوآوری زیادی دارد. پایتون تنها زبانی است که بر همه همسالان خود تسلط دارد.
با توجه به تعداد زیاد ابزارهای نوشته شده در پایتون و محبوبیت آن در فضای آموزش هک و تست نفوذ ، این زبان همیشه اولین انتخاب برای تستکنندههای نفوذ بوده است.
تست نفوذ دستی با پایتون، شما را با سازههای برنامه نویسی پیشرفته پایتون آشنا میکند. برای حرفه ای شدن در این حوضه، هنگامی که با مفاهیم اصلی آشنا شدید، باید کاربردهای پیشرفته پایتون را در زمینه آزمایش نفوذ و بهینه سازی کشف کنید.
در نهایت به درک نحوه ارتباط پایتون، علم داده و اکوسیستم امنیت سایبری با یکدیگر بپردازید. مواردی مثل توسعه بهرهبرداری، مهندسی معکوس و استفاده از امنیت سایبری به صورت خودکار با پایتون قابل مطالعه هستند.
با تست نفوذ با پایتون میتوانید آسیب پذیریهای زیرساختی خود را شناسایی و افشا کنید، نحوه استفاده از توسعه سوء استفاده سفارشی را بیاموزید و به ساخت ابزارهای قوی و قدرتمند امنیت سایبری بپردازید.
آموزش مقدماتی برنامه نویسی هک و تست نفوذ با پایتون
برای شروع و ارائه یک مثال ساده، به تست نفوذ یک سیستم در شبکه فقط با نوشتن یک اسکریپت چهار خطی اشاره میکنیم؛
در این بخش از مقاله یاد میگیریم اسکریپتی بنویسیم که فقط ۴ خط کد دارد و پس از اجرای آن روی سیستم هدف، خواهیم توانست که به سادگی در شبکه به فایل های روی سیستم هدف دسترسی پیدا کرده و آنها را ببینیم، باز کنیم و.. این اسکریپت بر روی هر سیستم عاملی قابل اجراست؛
در واقع این اسکریپت بر روی هر سیستم عاملی که اجرا شود یک وب سرور را از طریق پورت HTTP اجرا کرده و فایلهای سیستم عامل را بصورت کلاینت سروری در اختیار نفوذگر قرار میدهد.
خود پایتون دارای اسکریپتها و کتابخانههای داخلی مختلفی است که به صورت پیشفرض روی پایتون نصب هستند.
برای مثال ما امروز از ماژولی به اسم HTTP SERVER استفاده میکنیم که باعث میشود با چند خط کد، بتوانیم یک وب سرور روی سیستم هدف ایجاد نماییم.
سورس کد :
from http.server import SimpleHTTPRequestHandler as handler
from socketserver import TCPServer
httpd = TCPServer((“” ,8000) , hve_forever()andler)
httpd.ser
توضیح سورس کد :
در ابتدا ماژول http.server کلاس SimpleHTTPRequestHandler را import کردیم.
وظیفه این کلاس پردازش درخواستهای http که توسط هکر ارسال میشود، میباشد. در خط بعد از کتابخانه socketserver روی TCPServer استفاده نمودیم. کاربرد این مورد نیز برای ساختن و اجرای وب سرور میباشد.
در خط بعدی handler یا همان کنترل کننده وب سرور را ساختیم و آن را داخل متغییر httpd. قرار دادیم.
در اینجا ۲ ورودی از ما گرفته شد، ورودی اول یک تاپل است که شامل یک رشته خالی و عدد ۸۰۰۰ است.
به جای رشته خالی باید آِدرس IP لوکال سیستمی که اسکریپت روی آن اجرا میشود (در اینجا سیستم قربانی) را بنویسیم. اگر این قسمت را خالی بگذاریم خود پایتون به طور خودکار آدرس آی پی لوکال سیستم را درنظر میگیرد.
عدد ۸۰۰۰ نیز نشان دهنده پورتی است که میخواهیم وب سرور روی آن اجرا شود.
ورودی دوم نیز کلاس هندلری است که میخواهیم با آن درخواستهای http را پردازش نماییم. در این مثال همان SimpleHTTPRequestHandler که ابتدا ایمپورت شده بود، ثبت شده است.
در انتها با استفاده از متود Serve_Forever وب سرور را راه انداخته و دقیقا کار اصلی از همینجا شروع خواهد شد.
حال باید به سراغ اجرا و تست نتیجه برویم.
برای تست ما یک سیستم لینوکس بلک آرچ را به عنوان کامپیوتر قربانی در شبکه در نظر گرفتیم(یعنی اسکریپتی که نوشتیم روی این سیستم اجرا خواهد شد) همچنین یک سیستم ویندوز را به عنوان سیستم هکر در شبکه در نظر گرفتیم.
طبق تصویر زیر اسکریپت را روی سیستم عامل لینوکس و با ویندوز اجرا مینماییم؛
حال وارد سیستم هکر شده، مرورگر را باز میکنیم و ادرس آی پی سیستم قربانی را در adressbar وارد میکنیم. (به همراه شماره پورتی که وب سرور روی آن کار میکند)؛
همانطور که در تصویر فوق مشاهده میکنیدپس رفتن به آدرس وارد شده، اطلاعات موجود در سیستم قربانی در قالب فایلها و فولدرها به ما نمایش داده میشود که اطلاعات داخلی آنها نیز برای ما قابل مشاهده خواهد بود.
البته نکنهای که در این قسمت وجود دارد این است که ما دقیقاً نمیدانیم کاریر قربانی، میخواهد اسکریپت را در چه مسیری اجرا نماید، پس ممکن است به اطلاعات سیستمی فرد نیاز داشته باشیم که در این صورت میتوان کاری کرد که به صورت خودکار و اتوماتیک، محتویات مسیر مورد نظر روی وب سرور ارسال شوند. ما برای اینکار به یک کتابخانه به اسم OS نیاز داریم . برای انجام این عمل کافیست طبق کد زیر عمل نماییم؛
from http.server import SimpleHTTPRequestHandler as handler
from socketserver import TCPServer
from os import chdir as chdir
chdir(“/root/Desktop”)
httpd = TCPServer((“” ,8000) , handler)
httpd.serve_forever()
به این ترتیب به سادگی میتوانید از اسکریپت فوق خروجی اجرایی بگیرید.
در این مقاله سعی کردیم تا شما را با نحوه انجام تست نفوذ با پایتون آشنا کرده و روند انجام این فرایند را برایتان شرح دهیم، امیدواریم برایتان مفید بوده باشد.