9 پرسش و 20 پاسخ به ابهامات اتومیشن و شروع باگ بانتی

9 پرسش و 20 پاسخ به ابهامات اتومیشن و شروع باگ بانتی

دراین مقاله ترجمه صحبت هایی که در قسمت پرسش و پاسخ برنامه لایو پنجشنبه­‌های بانتی یوتوبر معروف باگ بانتی هانتر STÖK صورت گرفته رو برای شما قرار داده ­ایم. دراین برنامه که به اسم BOUNTY THURSDAYS – ON AIR  در تاریخ 31 مارس 2022  از کانال یوتوب استوک پخش شد، Jason Haddix و KUGG مهمان استوک بودند و به همراه او به سوالات افراد حاضر در لایو و اسپیس توییتر پاسخ می­دادند. پس با ما همراه باشید تا پاسخ های فنی و کاربردی و به روز این متخصص های باگ بانتی را در کنار هم بخوانیم.

سوال: آیا ما در برنامه‌های باگ بانتی عمومی اجزه استفاده از امکانات اتومیشن اسکن خودکار (Automated Scanning ) را داریم؟ ارزش داره روی استفاده از این ابزارها زمان بذاریم؟ چه زمانی بهتره از این ابزارها استفاده کنیم؟

پاسخ:

JHADDIX: اغلب در برنامه های باگ بانتی تا زمانیکه از محدودیت‌های تعیین شده برای عبور نکرده باشین استفاده از این ابزارها مجاز هست. اگر برنامه­‌ای که دراون شرکت کردین قوانین و محدودیت‌های خاصی تعیین کرده، یا پلتفرم برگزار کننده برنامه یک سری قوانین عمومی و کلی برای برنامه­‌هایی که توسط این بستر برگزار میشوند وضع کرده استفاده از این ابزارها با رعایت این قوانین برای شما مشکلی پیش نخواهد آورد. امروزه اکثرا افراد از این ابزارها استفاده می‌کنند و مشکلی هم برایشان تا به‌حال پیش نیامده‌است.

کوربین لئو که دانشجوی من بود، اخیرا رشته توییتی درباره اسکن‌های خودکار منتشر کرده‌ که تواین رشته توییت به صورت ویژه به nuclei پرداخته. دراین رشته توییت کوربین کمی بیش از حد در مورد nuclei نامهربانانه رفتار کرده، و از این ابزار به عنوان یک ابزار ضعیف از لحاظ رقابتی یاد کرده.

این رشته توییت درمورد تاثیرات این ابزار نوشته شده و هدف اصلی متن آن صرفا در مورد اجرای nuclei در حالت آماده‌به‌کار و آماده‌ی این ابزار، بدون درنظر گرفتن امکانات ساخت افزونه و الگوهای شخصی بود. به‌نظر من باتوجه به موضوع این رشته توییت، مواردی وجود دارد که در توییت‌ها نمی‌توان این ابزار را مورد قضاوت قرار داد. بااحترام بسیار زیادی که برای کوربین قائل هستم، من کاملا با نظرات او در این رشته توییت مخالفم. افراد زیادی هستند که رابطه خوبی با ابزار nuclei ندارند و این تنفر آن‌ها بخاطر راحتی استفاده از این ابزار هست که باعث شده افراد زیادی از آن استفاده کنند و با توجه به این مساله امکان دارد باگی که شما با استفاده از این ابزار پیدا کرده­‌اید به صورت همزمان توسط فرد یا افراد دیگری که از این ابزار استفاده می‌کنند نیز کشف شده باشد.

من یک تست‌گر ریکان (Recon Tester) هستم، و الان هم درحال انجام پروژه‌های تست خودم هستم و اکثر مواقع tdl های مبهم یا دامنه‌های بسیار مبهمی را دریافت می‌کنم که این روزها بیش از پیش به چشم می‌خورند. ازاین جهت استفاده کردن از ابزاری مثل nuclei برای من از واجباته. من حتی از بسته پیش‌فرض nuclei برای اسکن کردن استفاده می‌کنم، و باید از این بسته‌ها استفاده کنم، یعنی راه دیگری برای انجام کارم ندارم! همین دیروز، 11  زیردامنه تصاحب شده پیدا کردم، یا مثلا امروز صبح یک حساب کاربری grafana با نام کاربری و کلمه عبور پیش‌فرض پیدا کردم! خود شما هم از این چیزها آگاه هستید و تمام کارهای که من انجام میدم بخاطر حرفه‌ام که ریکانه (Recon) هست،اینجوری من کمتر بین دامنه‌ها در رفت‌ و آمد هستم. اگر از ابزار اسکن nuclei در مقابل یک دامنه اصلی مثل airbnb.com استفاده کنید، نه شما و نه شخص دیگری نمیتونید چیزی بدست بیارید.

صحبت‌های کوربین در رشته توییت هم کاملا بی‌جا نبود، اما اگر چیزی مثل airbnb.co.uk یا tdl های دیگر یا سایر دواپس‌های airbnb و درکل چیزهای دیگری که مطمئن هستید شرکت airbnb مالک آن‌هاست و تاکنون کسی با nuclei آن‌ها اسکن نکرده‌است را پیدا کردید، این میتواند برای شما یک برگ برنده باشد. مطلب دیگری که باید درمورد nuclei بدانیم این است که ساختن الگوهای شخصی یکی از بهترین کارهایی است که در این ابزار می‌توانید انجام دهید. مثلا دیروز یک آسیب‌پذیری بیرون آمد که پاتریک مسئول امنیت IT در اینمورد گفت: “ساختن یک الگو برای چنین آسیب‌پذیری هایی صرفا برای تشخیص مسیر انجام می‌شود که تقریبا با 6 خط در uml به شما ارائه می‌شود.” این جمله کاملا ما را از اهمیت ساختن الگوی شخصی آگاه می‌کند.  ساختن الگوهای اسکن شخصی برای خودتان کار بسیار آسانی است. اگر کامیونیتی را ازطریق توییتر دنبال می‌کنید یا پیگیر افشای باگ‌ها، rss feed ها هستید یا  صرفا روی یک برنامه باگ بانتی با دامنه گسترده در حال کارکردن هستید و  متوجه می‌شوید که باید از یک پلتفرم یا فناوری خاصی برای یافتن تمام سایت های آن برنامه استفاده کنید، اینجا می‌توانید از امکانات ساخت الگوهای اسکن nuclei استفاده کنید و دامنه‌ها و موارد قابل استفاده جدیدی که این موارد را پوشش می‌دهند را پیدا کنید، که درصورت موفقیت در اجرای این مرحله نیز پیروزی نسیب شما خواهدشد.

من طرفدارnuclei هستم، ممکن است شما با من موافق نباشید و صرفا چون دامنه اصلی استاندارد را می‌شناسید می‌خواهید با nuclei مخالفت کنید، اما من یک طرفدار پروپاقرص برای nuclei هستم!

STÖK: بهتره بگیم تو طرفدار استفاده از ابزارها برای جلو بردن کارهای خودت هستی. Nuclei یک ابزار عالی و کاربردی‌یه چراکه مبتنی بر کامیونیتی ساخته شده، کامیونیتی هم یعنی جاییکه آدم‌های زیادی تو اون محیط هستن و کارهای زیادی توی اون محیط قرار داده می‌شه. مثلا خود من به محض اینکه این ابزار معرفی شد من مشتری‌های خودم رو اطراف این ابزار پیدا کردم. چند خط کد می‌نویسی و نگاه می‌کنی ببینی آیا نتیجه‌ای میتونی بگیری یا نه! چیزی که در درجه اول برای من جالب بود این بود که اگر چیز مبهمی هست که شما همیشه دنبال آن بودید و این چیز مبهم داخل الگوها نبود، دست‌بکار شوید و خودتان الگوی آن را بسازید. چون نمیدونید در ادامه قراره با چه چیزی روبه‌رو بشید یا اگر اطلاع دارید در ادامه چه اتفاقی قرار است رخ دهد، می‌تونید الگوهای جالب و کاربردی‌ای بسازید که هدف مدنظرتون رو مورد هدف قرار بده، چراکه این الگوها به‌روش‌های خاصی به صورت داخلی (bult-in) ساخته می‌شوند. یا می‌توانید سربرگ‌های خاص موردنیازتان را اضافه کنید. خلاصه با این اسکنرهای کارهای زیادی میتونید انجام بدید. و من شخصا مشکلی دررابطه بااستفاده از اسکنرها به عنوان راه‌حل مشکلات، مشکلی نمی‌بینم. مهم اینه که سریع و قابل اعتماده.

سوال: باگ بانتی را از کجا شروع کنیم؟ راه آنلاین و رایگانی برای آموزش باگ بانتی وجوددارد؟

 پاسخ:

STÖK: آموزش رایگان تقریبا غیرممکنه، چون همه ما برای اینترنتی که از اون برای جست و جو کردن مطالب و استفاده از اینترنت برای باگ بانتی یک مبلغی رو به ISP پرداخت می‌کنیم. جیسون میشه تو هم نظر خودت رو برامون بگی؟

JHADDIX: امروزه منابع رایگان زیادی وجود دارن که انواع تست های امنیتی‌ای که در باگ بانتی از اونها استفاده می‌شه رو به شما آموزش بدن. یکی از بهترین منابعی که الان میتونم معرفی کنم آکادمی وب‌سایتی Portswigger هست. همچنین pentesterlab  و tryhackme هم پتانسیل قرار گرفتن در اول لیست را دارند. تمام این موارد ابتدا به تست نفوذ وب پرداخته‌اند. این منابع دقیقا جایی هستند که می‌توانید مراحل مقدماتی آموزش تست نفوذ وب را به صورت عملی از آنجا شروع کنید. پس این منابع یک سری اهداف تمرینی هستند که در کنارشان صدها وب اپلیکیشن خود-میزبان هم وجود دارد که می توانید از آنها برای خودتان یک وب اپلیکیشن آسیب پذیر، ماتیلدا و … بسازید. طبق تجربه آموزشی چندین ساله‌ام در امنیت اپلیکیشن می‌توانید این پروژ‌ها را دانلود کنید و با کمک گرفتن از دیگران این پروژه‌ها را با سرعت خودتان راه‌اندازی کنید. بدنه زبان برنامه نویسی را دانلود کنید، تکنیک‌ها را یاد بگیرید، من همیشه می‌گویم کتاب Web Application hackers Handbook کتاب مقدس امنیت وب است، در کنار آن  مطالعه کتاب hacking 101 را هم پیشنهاد می‌کنم اما کتاب اولی برای شروع و پیش بردن کار خیلی بهتر است. مورادی که گفتم بهترین منابع برای شروع باگ بانتی هستند و اینها چیزهایی هستند که خود من برای آموزش دانشجوهام از آنها استفاده می‌کنم. منابع دیگری هم هستند که من الان حضور ذهن ندارم! STÖK تو میتونی کمکمون بکنی؟

STÖK:  کتاب Bug Bounty Bootcamp که کتاب جدید Vickie Li هست هم منبع خوبیه. یک منبع خوب برای پیدا کردن تمام گزارش های باگ بانتی.

JHADDIX: بله کتاب جدید ویکی لی هم کتاب بسیار خوب برای پیدا کردن آسیب‌پذیری‌های وب در باگ بانتی برای افراد مبتدیه. که بااستفاده از اون درواقع می‌تونید هرجور تست نفوذی رو انجام بدین. من این کتاب رو دیدم و به نظرم واقعا کتاب خوب و کاربردی­­­­­یه.

STÖK: من پیشنهاد می‌کنم وب‌سایت shawn رو هم ببینید؛ من تارگت‌های لایو زیادی اون اطراف پیدا کردم و میتونم بگم جایی هست که میتونید تمرین کنید، تجربه کسب کنید و کلی کارهای دیگه بدید.  شاون تو کارهای عملی واقعا خیلی خوب عمل می‌کنه و همچنین کتاب خودش را هم در وب سایت خودش به فروش گذاشته که میتونید بخرید.  این کتاب یک روش کلی به شما یاد می‌دهد تا به کمک آن باگ بانتی را شروع کنید. منابع آموزشی خوب زیادی وجود دارند. اگر میتونید برای آموزشتان هزینه کنید، از tryhackme و hack the box برای جلو بردن کارهاتون می‌تونید استفاده کنید، یا مثلا Penthouse Labs هم منبع خوبی برای یادگیری میتونه باشه. منظورم اینه که منابع زیادی برای شما وجود داره. منابع تمرینی زیادی برای تست امنیت وب و انجام کارهای مهم  اون بیرون وجود داره که رایگان هم هستن.

سوال: پرسشگر از burp استفاده می‌کنه و داده‌های زیادی از HTTP جمع‌آوری کرده که این داده‌ها با as-256 رمزگذاری شده‌اند، به چه روشی میتونه این داده‌ها را رمزگشایی کنه؟

پاسخ:

KUGGO: از اونجاییکه as-256  حالت‌های مختلفی داره، و حالتی که شما اینجا دارید از اون استفاده می‌کنید براساس کلیدیه که کلمه عبور است، می‌تونید این کلمه عبور رو کرک کنید.  ام به‌نظر بعید میاد که با این روش شما بتونید مشکلتون رو حل کنید. پس تاجاییکه امکان داره از انجام دادن کاریکه بلد نیستی اجتناب کنید، این کار اینجا تلاش برای استخراج کلی رمزگذاری شده از اپلیکیشن درحال اجراست مثلا میتونه یک اپلیکیشن موبایلی باشه. اگر یک اپلیکیشن موبایل داری ، اجزای اپلیکیشن رو از هم جدا کن و کلید رو داخل اجزای اپلیکیشن جست و جو کن و برای رمزگشایی ازش استفاده کن.

سوال: یک خزنده (Crawler) خوب چه کارهایی میتونه انجام بده؟

STÖK: منظورت وب سایت خزنده وب‌سایته؟ چیزیکه وب سایت ها رو چک میکنه و در بازگشت کلی اطلاعات و داده برمی‌گردونه؟

پرسشگر: بله.

STÖK: یک خزنده وب‌سایت خوب میتونه تمام کدهای جاوااسکریپت و تمام اندپوینت‌هایی که به جاهای خاصی اشاره دارند را برای شما جمع‌آوری کند. در شمارش پارامترهای آشکار و پنهان مسیرهای داخل یک وب‌سایت به شما کمک می‌کنه و تمام این اطلاعات را جمع کنه و به شما ارائه بده.  به نظرمن از این ابزار همه جا نیتونید استفاده کنید. جیسون تو این زمینه تو چه چیزایی میتونی بهمون یادبدی؟

JHADDIX: این سوال واقعا یک سوال عالی و کاربردی‌یه. به نظر من در عرصه ابزارها در زمینه اتومیشن خزنده‌های بیشماری وجود دارند. خزنده‌های مبتنی‌بر خط دستور زیادی در لینوکس هستند که کارهایی از قبیل پیگیری لینک‌های http خاصی را برعهده دارند، یا خزنده‌های پیشرفته زیادی هستند که کدهای جاوااسکریپت را اجرا می‌کنند و مسیرهای پویا می‌سازند و درکنار خزش خود پارامترهای پویا ایجاد می‌کنند. که این خزنده های خزنده‌های سطح بالا (next-level) هستند. این امکانات در burp و ابزارهای دیگری مثل zap وجود دارند. اگر واقعا قصد داری یک کار اساسی انجام بدی، من خودم شخصا تمام کارهای مربوط به خزنده رو با burp انجام میدم. اما در مراحل اولیه اتومیشن و ریکان صرفا برای تامین ورودی burp به ندرت از خروجی‌های ابزار hack crawler هم استفاده می‌کنم. با استفاده از پروکسی اون رو بکار بندازید تا تمام کدهای جاوا اسکریپت رو جمع‌آوری کنه، سپس این کدها و هرچیز قابل اجرایی رو اجرا کنید. من بعد از اینکه اینکار و انجام می‌دم احساس می‌کنم یک درک کامل و خوبی از پارامترها و مسیرهای اون وب‌سایت دارم.

STÖK: حتی همیشه میتونی به برگردی و به اتفاقاتی که قبلا روی اون قسمت‌ها رخ دادن هم یک نگاهی بندازی و چک کنی ببینی که تو مسیرت روی url های قبلی چه اتفاقاتی افتاده، نحوه آپدیت شدنشون با جاوااسکریپت چجوری بوده و … . کار جالبی میتونه باشه که به امتحان کردنش می‌ارزه.

سوال: پرسشگر می‌خواد یک سیستم اتومیشن آماده کنه، تقریبا تمام منابع ممکن رو مطالعه کرده و  درباره ابزارهای مختلف و متصل کردن این ابزارها به یکدیگر نیز تحقیق و بررسی انجام داده. مشکل اینجاست که او اکنون با یک vps که پر است از هزاران زیردامنه وهزاران اندپوینت و صدها فایل جاوااسکریپت و پارامترو… گیرکرده‌است و نمیداند با این همه داده چکار کند!

پاسخ:

STÖK: جوابت اینه، فکر می‌کنم تمام الگوهای nuclei  رو یکجا روی هدفت اجرا کردی!!! J

و اما اگر بخوام به شکل جدی جوابت رو بدم، چیزی که تو اینجا داری در واقع یک معدن طلاست. حقیقتا تو الان تمام موارد موردنیاز برای شروع یک جستجوی عمیق برای کشف رو تو دستات داری و تنها چیزی که نیاز داری الک کردن این داده‌ها و جدا کردن آن‌هاست. میتونی یک لیست از email های 10 نفر داشته باشی یا میتونی اطلاعات 10.000 نفری‌که از وب سایت‌ات بازدید کردن را داشته باشی که میخوای مطمئن بشی مشتری‌های سایت‌ات هستند. حالا هرچی که میخواد باشه، اینجا مساله اصلی الک کردن یا از قیف رد کردن اطلاعاته (Funneling)، دنبال چیزهایی باش که برات جالب هستن. آپلودهایی که روی سایت انجام گرفته یا ممکنه نوع خاصی از مسیر api باشه که برات جالب باشه. یک معما هست که میگه چجوری میتونیم یک فیل رو بخوریم؟ جواب این است که ابتدا فیل را قطعه قطعه می‌کنیم و بعد آن را لقمه لقمه میخوریم. و این جواب سوال شماست، باید این داده‌های در دسترست رو به قطعات کوچکتر تقسیم کنی. جیسون تو چه جوابی برای دوستمون داری؟

JHADDIX: این سوالیه که به شکل‌های مختلف و  زیاد از من پرسیده میشه که با خروجی‌های اوتوماسیون‌شان چکار میتونن بکنن؟ من قبلا دراین مورد با ben nahamsec صحبت کردم و دقیقا همانطور که استوک گفت، این دقیقا مثل اینه که بپرسی یک فیل رو چجوری میتونیم بخوریم، اینجوری که فیل رو قطعه قطعه کنیم و در هر زمان یک قطعه از اون رو بخوریم. خب اینجا بدون توجه به ابزاری که برای زیردامنه‌هاییکه در حال اجرا بودن استفاده کردی شما یک لیست بلند بالا از اوتوماسیونت داری. کاری که من بااین زیردامنه های انجام میدم اینه که اونها رو داخل یک نقشه ذهنی قرار میدم. من این نقشه ذهنی رو به دو قسمت تقسیم میکنم، یک قسمت کارهایی که باید انجام بدم (to do)  و یک قسمت کارهایی که انجام شده  (Done). ابتدا حدود 100 تا از این زیردامنه‌ها رو برمیدارم و داخل یک مرورگر قرار می‌دم و اجازه میدم تا مرورگر دونه دونه این لینک ها رو بررسی کنه و داخل burp بفرسته تا ببینم نتیجه چی می‌شه. دراین حالت تعدادی سایت برای شما باز می‌شه. من خودم شخصا سعی می‌کنم به صورت چشمی و دستی اینا رو بررسی کنم تا ببینم که آیا چیز به دردبخوری هستن یا نه. به این طریق صفحات به دردبخوریکه نظرم رو جلب کردن رو جدا می‍کنم. اول از همه حدود 80% این 100 صفحه به دامنه اصلی سایت ریدایرکت می‌شن که این صفحات به صورت خودکار از تست ما حذف می‌شن و 20% این زیردامنه‌ها برای ما باقی می‌مونن، که برخی از این زیردامنه‌ها مربوط به قسمت‌هایی مثل پورت‌های vpn یا سایر پورتال‌ها که به امکان وجود داشتن آسیب پذیری دراین قسمت ها وجود ندارد نیز خود به خود از تست حذف می‌شوند، مگراینکه CVE مربوط به آنها منتشر شده باشد، یا اگر چیزی مثل  zero day داریدمومونندبر بخ و میتوانید دراین قسمت ها نیز دنبال باگ بگردید. پس از این تعدادی نرم افزار پیشفرض که هدف شما روی آن نوشته شده‌است، وب سرورهای خالی‌ای وجود دارد که این وب سرور پاسخ میده درصورتیکه هنوز هیچ محتوایی روی آن قرار نگرفته که ما تمام این اپلیکیشن های پیشفرض و وب سرورهای خالی رو برای تست برمی‌داریم. خب خودتون هم میدونید که توی بستر اینترنت هیچ وب سروری وجود نداره که اطلاعاتی روی اون بارگذاری نشده باشه تابه حال، بنابراین این موارد معرف معادن طلا برای ما هستن که باید جست‌وجوی محتوا و باگ رو روی این گزینه‌ها هرچه زودتر شروع کنیم. در ادامه با چیزی مثل ff یا چیزی که با اون بتونید اپلیکیشن رو پیدا کنید  نیاز دارید که در اکثر مواقع اپلیکیشن پیشفرض هست و درآخر شما با تعداد زیادی اپلیکیسن پیشفرض میمونید که هدف روی آن‌ها نوشته شده و معمولا این اپلیکیشن‌ها همیشه پر از آسیب‌پذیری ‌هایی هستند که شما به دنبالشان هستین. آسیب‌پذیری‌هایی از قبیل cross-site scripting، injection ، misconfiguration ، Off bypass، idor  و … رو میتونید داخل این اپلیکیشن ها پیدا کنید که داخل 10% باقیمانده اون 100 دامنه‌ای هست که با مرورگر بررسی کردم، و حالا در واقع شروه میکنم به تست کردن تک تک این موارد. دراین حالت اسکوپ من کوچکتر میشه و یک چک لیست جمع‌وجور برای کارهایی که روی اون سایت ها میخوام انجام بدم میتونم داشته باشم، مثل باگ های عمومی و کلی، ابزارهای دیگری که میخوام روی هدف اجرا کنم و تست‌های دستی که می‌خوام روی اهدافم اجرا کنم رو تو چک لیستم می‌نویسم. شروع میکنم از روی لیست کارها رو انجام میدم و وقتی کارم تموم شد، مطمئن میشم همه‌ی کارهایی که میتونستم انجام بدم رو انجام دادم و دیگه احتمالا هیچ باگی نمونده که کشف نکردم، اون رو به بخش Done نقشه ذهنیم منتقل میکنم. به ترتیب تک تک سایت ها رو به این منوال بررسی میکنم تا باگ‌ها رو کشف کنم.

STÖK: فکر میکنم منم تقریبا به همین منوال کارم رو انجام می‌دم. من قبل از هرکاری بااستفاده از httpx یک نگاه کلی و گذرا به همشون میندازم، عناوین و پاسخ‌ها رو مرتب‌سازی می‌کنم و همه ی اون 300،400 تا رو تو یک مرحله انجام می دم. موارد رو ریدایرکت می‌کنم تا اسم اوناییکه برام جالب نیستن رو ببینم. همیشه به دنبال ریدایرکشن httpx از دش استفاده می‌کنم تا بدونم کجا قراره تموم بشه، چون اگر یک دامنه شخص سوم(thirdparty) باشه، من آدمی نیستم که بخوام روی همچین دامنه‎ای وقت بذارم و همیشه سعی کردم از این دامنه ها رد بشم و بیشتر روی دامنه‌های اصلی وقت بذارم. اگر من یک تست cdn انجام بدم و ببینم که یک waf تو اول صف قرار گرفته، تمام اون هایی waf ندارن رو به لیست طلاییم منتقل می‌کنم، چرا که اینها همونایی هستن که قبل از هرچیزی می‌خوام بررسی کنم و بعد از اون به ترتیب فرایندی که ایجاد کردم رو قدم به قدم انجام می‌دم و تقریبا تا اینجا مثل تو این کار رو انجام دادم.

علاوه براین من از ابزاری به اسم کروم باکت (Chrome bucket) یا چیزی به اسم Bulk Opener استفاده می‌کنم، که یه چیزی مثل افزونه‌اس که داخل لیست جاگذاریش می‌کنم و تمام تب‌ها رو یکجا باز می‌کنه برام. جیسون تو از چه روشی استفاده می‌کنی؟

JHADDIX: من از یک لیست باز استفاده می‌کنم، خروجی‌های ابزارها رو که تعداد زیادی لینک در جریان http  و https به من داده رو برمی‌دارم و این لیست رو داخل لیست باز کروم قرار می‌دم. بعدش برای هر لینک یک تب باز می‌کنم، تب‌های عمودی در سمت چپ مانتیور که فقط بتونم عنوان تب ها رو ببینم، اینجوری میتونم به راحتی متوجه ریدایرکت‌ها هم بشم. تنها فرقی که بین روش و من و تو وجود داره فکر میکنم این باشه که تو از اتومیشن برای فیلتر کردن کدهای پاسخ استفاده می‌کنی. اگر یک ریدایرکت مدت زمان زیادی رو صرف خودش بکنه، من دچار مشکل میشم، چون دراینصورت این ابزارها ممکنه در ارزیابی دچار مشکل بشه، حتی گفته میشه برخی از ابزراهای اسکرین شات هم در زمان رخ دادن ریداریرکت و زمانی که یک ریدایرکت زمانی بیشتر از زمان نرمال رو صرف می‌کنه درست عمل نمی‌کنن. به همین خاطر من بیشتر تمایل دارم تا این مراحل رو به صورت دستی انجام بدم و به صورت دستی تمام این لینک ها رو داخل مرورگرم بارگزای کنم، بررسی کنم و یکی یکی تب هایی که چیز به دربخوری ندارند رو ببندم. این تفاوت دیدگاه بین تو خودم برام جالب بود.

STÖK: فرهنگ های متفاوت، راه‌حل‌های متفاوت. متفاوت عمل می‌کنیم و کارهای متفاوتی هم انجام می‌دیم!

سوال: چگونه در اندپوینت راه برگشت به url  را پیدا کنیم؟ یا کلا چگونه اندپوینت های مخفی را پیدا کنیم؟ ابزارهای استفاده شده: wave urls- gogo plus

پاسخ

 JHADDIX: زمانیکه شما از ابزارهایی مثل way back url استفاده می‌کنید، خروجی که که بدست می‌آورید، بازنمایی از حالات قبلی وب‌سایت در یک زمان خاص است. و چیزی که الان شما به آن نیاز دارید url هایی هستند که دیگر در صفحه فعال نیستند، ولی هنوز ردی از آنها در صفحه وجود دارد، پس می رین و این از این صفحات بازدید می‌کنید، اگر این صفحات را کلمه به کلمه به یک فایل جاوااسکریپت ترجمه کنید، اندپوینت‌هایی را دراین صفحات پیدا می‌کنید که قبلا ابزار عنکبوت شما از حضور آن ها کلا بی اطلاع بود، چرا که کلا این ابزار قبلا چنین اندپوینتی را پیدا نکرده بود. چون سایت فعال قبلا در طی فرایند اجرای ابزار عنکبوت burp یا هرچیز دیگری، هیچ ارجاعی به این اندپوینت نداده بود.پس فایل‌های جاوا اسکریپت چیزی هست که باید به دنبال آن بگردید، برای اینکه بتوانید تمام لینک‌های وابسته و پویایی ممکن است توسط جاوااسکریپت ساخته شود را پیدا کنید، بایستی این فایل‌ها را تجزیه کنید، در ادامه اگر فقط صفحات معمولی مثل صفحات html رو از طریق ابزار به شما برگشت داده شد، شبیه هایپرلینک‌های ارجاع داده به  خود سایت نبودند، اینجا هم امکان دارد کدهای جاوااسکریپت داخل این صفحات تعبیه شده باشد. و این درواقع بین خروجی های عنکبوت‌ها و تجزیه کننده‌های جاوا اسکریپت وجود دارد. تجزیه‌کننده‌های کدهای جاوااسکریپت ممکن است تنها یک نوع از لینک‌های ارجاع داده شده به جاوااسکریپت را تجزیه کنند، که ممکن است این لینک ها، لینک‌های وابسته یا غیروابسته باشند، و اینجاست باید از این نکته مطمئن بشید که تجزیه‌کننده‌ای که استفاده می‌کنید، قادر به ساختن لینک‌های شما باشد و همچنین تمام این لینک ها را برای شما پیدا کند. به‌جای اینکه فقط فایل‌های .js رو تجزیه کنه، برای تجزیه صفحات وب معمولی هم بتونید ازش استفاده کنید و کدهای جاوااسکریپت پویا را بتونیداز داخل صفحات وب معمولی هم برای ساختن اندپوینت‌های جاوااسکریپتی که به دنبالشون هستید، بیرون بکشید. در ادامه میتونید برای برگشت به urlهای مدنظرتون از ابزارهایی که گفتین استفاده کنید. می تونید از یکی از ابزارهای تجزیه‌کننده‌ جاوا اسکریپت روی یکی از این صفحات استفاده کنید که برای شما لیستی از اندپوینت ها رو ایجاد کنه که با استفاده از عنکبوت معمولی سایت خودتون نمی تونستید اون اندپوینت ها رو پیدا کنید.

سوال: من در حال یادگیری لینوکس هستم، می‌خوام دانش خودم رو یک پله بالاتر ببرم و درنظر دارم وارد دنیای امنیت بشم. نمیدونم چه‌کاری باید انجام بدم. من یه یک نقشه یادگیری نیاز دارم؟

پاسخ

STÖK: ما تو دنیای امنیت از لینوکس به عنوان ابزار استفاده می‌کنیم. ازنظر من پاسخ درست برای سوال شما این است اول زبان بش و سپس پایتون و بعد از اون جاوا اسکریپت رو یادبگیرین. اما به نظرم کریستوفر نظر دیگه ای داشته باشه.

KUGGO: به‌نظرمن دربحث‌های ترفیع زنجیره‌ای امنیت لینوکس محلی و ترفیع امتیازی (privileged escalation)  در مرحله‌های آخر قرار دارند، چراکه تنها دسترسی پیدا کردن به یک سیستم درقدم اول نیازمند مهارت بسیار زیاد است، جاییکه مهارت شما در کار با سیستم  یا کشف آسیب پذیری به اندازه کافی اثبات شده باشد. اگر به‌اندازه‌ای مهارت دارید که هرکاری دراین زمینه می‌تونید انجام بدین، منظورم اینه که داخل سازمان‌های نظامی مشغول به کار هستید یا جایی به صورت جدی دارید کار می‌کنید، و قصد دارید از این کارها انجام بدین، به کرنل دسترسی پیدا کنید و از این کارهای پردردسر انجام بدین بحث فرق می‌کنه. اما اگر قصدتون ورود به عرصه باگ بانتی هست، تنها کاری که با لینوکس انجام میدین استفاده از اون به نفع خودتونه، کارهایی مثل کد زدن بازبان بش، برگشت به خانه، بلد بودن فنون برای اجرای post explotation. دراین صورت به ترفیع امتیازی درحد کاربری نیاز دارید، نیازی ندارید تا از Ch root تون خارج بشید یا نیازی به واردشدن به داخل docker ندارید.

سوال: من داخل یک صفحه وب یک آسیب‌پذیری ssrf blind پیدا کردم ولی ریکوئست از یک سرور کلاودفلیر داره ارسال میشه. من الان باید این آسیب‌پذیری رو گزارش بدم یا بیشتر روی اون کار کردم ازش بهره برداری کنم؟(به ایشون برای همدستی پینگ ارسال میشه!)

پاسخ

STÖK: باید این آسیب‌پذیری رو ترفیع بدی، چرا که یک آسیب پذیری ssrfکور که چیزی قابل ارائه ای هم برای نشان دادن دسترسی داشتن تان به داده‌های داخلی یا اثبات اثرگذاری نداشته باشی ارزش گزارش نداره. حداقل باید چیزی رو ارائه بدی که نشون بده داری کار می‌کنی، بااینکه blind ssrf به عنوان آسیب‌پذیری شناخته میشه، اگر نتونی اثرش رو به گروه تریاژ یا برنامه نویسی ثابت کنی ارزشی نداره. چرا که ممکنه بگن ما درمقابل این قبیل آسیب‌پذیری‌ها سپر دفاعی داخلی داریم یا ممکنه بگن کمکی از دست ما برنمیاد. من میگم دراین شرایط دنبال سرنخ‌های ssr یا چیزی باش که بتونی روش حساب کنی، مثلا می‌تونی درخواست مبتنی برزمان بفرستی؟، می تونی درخواست‌ها رو دریافت کنی؟، میتونی درخواست‌هایی رو به سایت های خارجی بفرستی و به url داخلی مثل داده aws  یا هاست محلی  3 یا3/ 3یا 7/ 3یا 2 ریدایرکت بفرستی و ببینی که آیا این درخواست ها تایم اوت می‌شن یانه. اگر این درخواست هایی که به مکان های معتبر میفرستی تایم اوت شدند، میتونی ثابت کنی که از فیلتر uri تونستی رد بشی. این راهیه که میتونی ازش استفاده کنی و بیشترین ایمپکت ها رو ازش بگیری، اما اگر نتونی اثرات آسیب رو نشون بدی، کارت لنگه.

JHADDIX: به‌نظر من یکی از مولفه‌های جانبی این سوال داشتن اجازه برای نفوذ به سیستم درست زمانیکه درخواست از یک جای نامعلوم  ارسال می‌شود که اشاره به دامنه اهداف میزبانی شده دارد. و اگر این درخواست اولین درخواست ارسال شده به اپلیکیشن نوشته شده توسط شما باشد، من ترجیح می‌دهم بازی عادلانه را پیش بگیرم. اگر ssrf  یا ارتباط کور از یک میزبان متفاوت برمی‌گردد اما شما می‌توانید آن را توسط دامنه تحریک کنید، ازنظر من این آسیب پذیری را میتوان داخل اسکوپ درنظرگرفت.

سوال: موتورهای ریکان خودتون رو چجوری می‌نویسید؟

پاسخ

JHADDIX: در واقع من خودم برای یک مدت طولانی از hunter.sh اسکریپت خودم استفاده می‌کردم و تمام این ابزارهایی که استفاده می‌کردم رو پیدا کردم و بااستفاده از بش اونارو بهم دیگه چسبوندم، بعضی از این ویژگی‌هاشون رو که به نظرم کاربردی بودن رو بهبود دادم و توی پس زمینه روی لیست دامنه ها اجرا کردم. الان اگر شما هنوز با بش راحت نیستین، من شدیدا بهتون پیشنهاد می‌کنم که شما هم این کار رو انجام بدین و موتور ریکان مخصوص خودتون رو بنویسید.  من اخیرا بخاطر شکست مصیبت‌بار جعبه ابزارم، زمانیکه روی یک پروژه به صورت پنهانی درحال تست بودم، از ابزار recon for the win  استفاده کردم. این ابزار recon for the win  خیلی شبیه اسکریپت hunter.sh من هست. این ابزار درواقع تعدادی از ابزارهایی را که در ریپازیتوری گیت‌هاب می‌توانید پیدا کنید را بهم چسبانده، که شما هم می‌توانید ابزارها و ویژگی‌های دیگری نیز با توجه به نیازتان به آن اضافه کنید، چراکه هریک از این ابزارها داخل reacon. اجرا می‌شوند. Recon for the win  یک تابع داخل فایل بش اصلی هست که میتونید با استفاده از کدهای دستوری توابعی که نمیخواهید اجرا کنید رو حذف کنید، یا میتونید یک لیست بهش بدین و تا تمام اسکریپت‌نویسی‌های زیردامنه‌ها، تمام بروت فورس‌های زیردامنه‌ها و کارهایی از این قبیل رو برای شما انجام بده، از این جهت یک ابزار بسیار کاربردی برای افراد مبتدیه. این ابزار  اکتشافات محتوایی شما رو خودکار می‎‌کنه. ابزارهای زیادی داخل recon for the win  قرار دارن  که فقط کافیه ازشون برای راه انداختن کارتون استفاده کنید.

اتومیشن باگ بانتی

 

برای افرادیکه جدیدا فعالیت خودشون رو تو این زمینه شروع کردن و یه جورایی تو این کار سطح یک هستن از امکانات پایه ای این ابزار استفاده می‌کنن، پس از اینکه پیشرفت کردین و به سطح 2 یا 3 رسیدین میتونید به توسعه و توزیع این ابزار هم فکر کنید. الان من احساس میکنم همه دارن به Axiom  فکر می‌کنن. Axiom  یک چارچوب توزیعی پیشرفته‌اس که  می‌تونید ابزار recon for the win  به اون اضافه کنید. Axiom  کلا خودش به شما این اجازه رو میده تا به صورت هم زمان چند ماشین مختلف رو بهش اضافه کنید. هفته گذشته درمورد اینکه تا چه حد میتونیم سرعت اکتشاف محتوا رو بااستفاده از تعداد مشخصی از هاست، با توزیع کردن روی Axiom  بالا ببریم ، صحبت کردیم.

STÖK:  اگر می‌خوایین یک جریان کاری خودکار بسازین، به تمام سوالات شما داخل faq چارچوب axiom پاسخ داده شده. با استفاده از تمامی دامنه‌های اصلی (Root Domains) که دارید می‌تونید یک عمل اسکن اجرا کنید، که این ابزار از میان این دامنه‌ها یک زیردامنه‌یاب اجرا می‌کند و داخل فایل زیردامنه‎‌ها بارگذاری می‌کند. اینجا شما فقط 3 رشته کار را اجرا می‌کنید،  این به این معنی هست که این 3 رشته به صورت سریع و گذرا اجرا می‌شن و شما دوباره همون کارها رو انجام می‌دین. اینجا کلی زیردامنه دارید که میخوایید اونا رو حل کنید و به دنبال ip آدرس‌های ریسپاندرها و ریسالورهایی که به شما بازگشت داده می‌شوندبگردید و این ip ها رو داخل یک لیست قرار بدین، سپس تمام این ip ها را بردارید و به صورت انبوه اسکن کنید. پس از اینکه تمام این کارها رو روی تمام پورت‌هایی که باز هستن انجام دادین. برای اینکه زمان زیادی رو از دست ندید، ترافیک رو مپ کنید، داده ها رو دوباره روی nmap تجزیه کنید. باوجوداینکه nmap  رو همیشه ستایش می‌کنیم، ولی واقعا سرعتش خیلی پایینه.  با پذیرفتن این مساله که سرعت nmap خیلی پایینه و ما زمانی برای از دست دادن نداریم و با سرعت لیست رو مرور می‌کنیم و پایین می‌ریم، یعنی تمام پورت‌های باز، تمام موارد جدید رو به صورت گذرا بررسی می‌کنیم و رد می‌شیم، چون بعدا قراره دوباره اسکن شون کنیم. برای اینکه متوجه بشید وب سرورها باز هستن یا نه httpx رو اجرا کنید، دراینصورت متوجه این وب سرورهای باز می‌شید. در کل منظورم اینه که تمام این کارها اسکریپت اتومیشن شما هستن و یک تا صدش دست خودتونه. اگر درحال استفاده از دیجیتال‌اوشن هستین و به دنبال یک محقق برای به انجام رسوندن کارهاتون هستین  و شروع بکارکردین. شما با اجرای یک کد دستوری میتونید 100 تا هدف داشته باشین که به صورت همزمان درحال اجرا باشن، تقریبا 5 الی6 دقیقه زمان نیاز داره تا همشون تکلیفشون روشن بشه، چون درست بعد ازاینکه ساخته شدن، به صورت همزمان درحال اجرا شدن هستن. تمام کارهای توزیع شده رو با توزیع codingos انجام می‌دیم، و اینجوری کارها سریعتر انجام می‌شه.

JHADDIX: این کار یکم سطحش بالاست، به نظر من اگر تازه باگ بانتی رو شروع کردین، بهتره از ابزاری مثل recon for the win که تعاملی تره استفاده کنید. اگر همینجوری بی مقدمه برین سراغ axiom کلی کار باید برای پیکربندی انجام بدین.

STÖK: اگر بخوایید میتونید این کار رو با یک خط حلقه while هم اینکار رو انجام بدین. برین سراغ بعدی و دوباره انجام بدین، و در آخر هم با یک اعلان خوب کار رو تموم کنید. بااستفاده از تمام چیزهایی که بدست آوردین و پیدا کردین. شما کارتون رو شروع می‌کنید، و در آخر با حجم وسیعی از اعداد کار رو تموم می‌کنید. اینجا شما فقط برای اطلاع رسانی اطلاعات رو ارائه می‌دین، یک لیست کاربردی از تمام زیردامنه‌ها بدست آوردی و این لیست رو به slack یا تلگرامت یا… اضافه می‌کنی. اتومیشن جاییه که تمام این کارها رو میتونی انجام بدی و اینه که اتومیشن رو سرگرم کننده می‌کنه.

بنر آکسیوم

 

 

سوال: روش تحلیلی شما برای تحلیل maleware چیه؟

پاسخ

STÖK: این برنامه یک برنامه تیم قرمزه، ما اینجا درمورد کارهایی که انجام می‌دیم صحبت می‌کنیم. ما تو قسمت تهاجمی کار می‌کنیم. درسته شاید ساختن maleware یا C2 کار جالبی باشه، اما برنامه من جای چنین بحث‌هایی نیست!

سوال: من زبان برنامه نویسی جاوا اسکریپت و بش رو بلد هستم و یه مدت فرانت اند کار کردم و الان تو قسمت دفاعی امنیت وب کار می‌‌کنم. برای ادامه راهم شما چه پیشنهادی برای من دارین؟

پاسخ

STÖK: سوال اینجاست، که تو دلتمیخواد چه کاری انجام بدی؟ میخوای امنیت وب کار کنی یا می‌خوای تست‌کننده نفوذ باشی.طبق دانش و اطلاعاتی که الان داری دوست داری چه‌کارهایی انجام بدی، و در چه زمینه‌ای می‌خای بیشتر یادبگیری. خوب طبق سابقه و تجربه‌ای که داری ما وب رو انتخاب می‌کنیم. فرض می‌کنیم تو یک آکادمی ثبت‌نام کردی و شروع کردی به یادگرفتن مطالب آکادمی وب این موسسه کردی و واقعا داری یه چیزایی یادمی‌گیری. پیشنهاد من اینه که قبل ازاینکه اینکار رو انجام بدی، یه سری به tryhackme بزن، 20تا هزینه کن، یه اشتراک tryhackme بخر و از سری‌های اول مبتدیان، از قسمت‌های تست نفوذ وب اپلیکیشن‌ها یا OS top 10 شروع کن به یاد گرفتن. اینجوری مباحث اولیه و پایه‌ای که لازمه یادبگیری رو به خوبی یادمی‌گیری، حتی مسیر آموزشی‌ای که بایددنبال کنی هم اینجوری برات روشن میشه و بهتر میدونی در ادامه باید دنبال چه چیزهایی باشی. اینجوری متوجه حست نسبت به مواردیکه یادگرفتی می‌شی و می‌فهمی دوست داری امنیت چه قسمتی رو ادامه بدی. چون اگر در زمان انجام دادن یک کاری حس خوبی نداشته باشی و برات خسته کننده باشه، اون کار درآینده هم بهت انگیزه و انرژی کافی نمیده، پس بهتره همونجا دست نگه‌داری. پینشهاد من اینه که درابتدای کار به کارهای شبه-آسیب‌پذیر هستن ولیکن کنجکاوی تو رو تحریک می‌کنن ناخنک بزنی، اینجوری تو مسیر درست باقی می‌مونی. اپلیکیشن ها و مسیرهای آکادمیک مثل hack the box یا  tryhackme خیلی خوب هستن، چراکه شدیدا مبتدی پسند هستن و  دقیقا  قدم به قدم دست شما رو از اولین و پایه‌ای ترین مسائل میگیرن و آهسته آهسته تا جاییکه میخوایید برسین میبرن. توخودت موارد پایه‌ای فرانت اند وب رو بلدی، شاد فقط نیاز داری که قسمتی  از اطلاعات‌ات در زمینه مهارت‌های شبکه رو که قدیمی شدن رو به روزسانی کنی. مثلا اگر من الان ازت بپرسم پورت 9100 پورت چیه، میتونی جواب بدی! (پورت پرینتر hp)

JHADDIX: اول از هرچیزی منمیگم که انتظار معجزه نداشته باشید، انتظار نداشته باشید همه چی بهتون تو یک شب الهام بشه. من خودم قبل ازاینکه باگ بانتی رو شروع کنم، به مدت 10 سال شبکه‌ها و اپلیکیشن‌ها رو تست می‌کردم. آشنایی کمی با لینوکس و وب‌سرورها و ازاین قبیل چیزها داشتم. تو الان بخاطر دانش و اطلاعاتی که درباره لینوکس داری، زبان‌های برنامه‌نویسی‌ای که بلدی یک پله بالاتر از بقیه قرار داری، چون تو میتونی الان خودت یک وب سایت راه‌اندازی کنی و به خوبی از پس آموزش‌های خودآموز tryhackme یا hack the box  بربیای. میتونی شروع کنی به یادگرفتن تک تک آسیب‌پذیری‌ها، بعد کارای طراحی وب سایت رو هم ادامه بدی و خودت این وسط متوجه اشکالات وآسیب‌پذیری‌هایی که وجوددارن می‌شی، یعنی باتوجه به دانشی که از مطالعه آسیب‌پذیری‌ها داری، وقتی یه چیزی تو طراحی وب‌سایت درست نیست، تو متوجه اون چیز نادرست می‌شی. رفته رفته به جایی می‌رسی که موجه می‌شی، نسبت به آسیب‌پذیری‌ها یک دانش کلی داری. منابع زیادی توی اینترنت وجود دارن و روز به روز دارن بیشتر هم میشن. اکثر سایت ها مثل reddit، subreddit  (reddit netsec hiring) یا Netflix (Netflix hiring thread) بدنبال استخدام محقق امنیتی هستن، با اونها از طریق ایمیل در ارتباط باش، بگو که این چیزا رو بلدی و میتونی این کارارو انجام بدی و دوستداری تو این زمینه هم باهاشون همکاری کنی، احتمالش زیاده که یکی از این گزینه ها باهات تماس بگیرن و تو ر وبه کار دعوت کنن، حتی بعضیاشون روال کاری شون رو به افرادیکه انتخاب می‌کنن آموزش میدن.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *