عملیات شناسایی، اولین مرحله در عملیات هک و نفوذ است. تجربه نشان داده است که هکرهایی که عملیات شناسایی را جامع تر و دقیق تر انجام می دهند عملکرد موفق تری در نفوذ به اهداف خود دارند. در این مقاله به بررسی یکی از بهترین متودولوژی های انجام این کار می پردازیم که توسط یکی از مشهورترین شکارچی های باگ، Jason Haddix در کنفرانس معتبر DEF CON 28 ارائه شده است.
Recon چیست؟
به تکنیک ها و فرایندهای جمع آوری اطلاعات مرتبط با یک وب سایت، Reconnaissance و به اختصار Recon گفته می شود. انجام این کار در بخش های مختلف و با استفاده از ابزارهای متفاوتی صورت می پذیرد که در ادامه تعدادی از آن ها را بررسی می کنیم.
یافتن Seeds/Roots
اولین مرحله برای بررسی یک هدف، یافتن دامنه های اصلی آن سازمان است. با یافتن دامنه های اصلی، مسیرهای متعددی برای پیدا کردن اطلاعات بیشتر در فرایند Recon فراهم می شود. در ادامه مهم ترین شیوه های دست یابی به دامنه های اصلی را بررسی می کنیم.
1- Scope Domains
اگر سایت هدف از سازمان های عضو برنامه Bug Bounty باشد، در سایت هایی مثل Bugcrowd و HackerOne می توان دامنه های مجاز برای کشف باگ در آن سایت ها را پیدا کنیم. به عنوان مثال، می توانید صفحه مربوط به پروژه Bug Bounty سایت Tesla در سایت bugcrowd را در تصویر زیر مشاهده کنید که دامنه های اصلی و زیردامنه های آن با فلش های قرمز رنگ در تصویر مشخص شده اند.
2- Acquisitions
از روش های جدید برای یافتن دامنه های اصلی، دست یابی به Acquisition های یک سایت با استفاده از سرویس Crunchbase است که برای استفاده از آن نیاز به تهیه ی حساب کاربری Pro وجود دارد. در واقع Acquisition ها، شرکت های زیرمجموعه ای هستند که معمولا دامنه های متفاوتی دارند. Wikipedia و Google دیگر منابعی هستند که می توان از آن ها برای این منظور بهره گرفت. نمونه ای از جستجو در این سرویس را می توانید در تصویر زیر مشاهده کنید.
پس از کلیک روی یکی از Organization های موجود در تصویر بالا وارد صفحه ای مانند تصویر زیر می شوید.
در بخش Acquisition های یک سایت با صفحه ای مشابه تصویر زیر مواجه می شوید.
با توجه به اینکه سرویس Crunchbase غیر رایگان است راه حل جایگزین می تواند وب سایت Owler باشد که می توانید یک اکانت رایگان با قابلیت های کافی از آن دریافت کنید. پس از ثبت نام و جستجوی نام شرکت می توانید در تب acquisitions لیست شرکت های زیرمجموعه مشاهده کنید.
تکنیک هکری: در صورتی که لیست ناقصی از acquisition ها به شما نمایش داده شد و موارد آخر لیست به صورت مات شده به شما نمایش داده شد می توانید با استفاده از قابلیت inspect element روی کادر مات شده، در داخل کد عبارت blurred
را جستجو کنید و برای تگ های div
این attribute
را پاک کنید تا اطلاعات به صورت کامل به شما نمایش داده شود.
3- ASN Enumeration
Autonomous System یا AS به مجموعه ای از شبکه ها گفته می شود که در یک حوزه ی مدیریتی واحد قرار دارند که این مجموعه می تواند شبکه های موجود در یک ISP باشد یا یک شبکه ی بزرگ سازمانی. سازمان های بزرگ معمولاً AS مختص به خود را دارند و با پیدا کردن شماره ی مربوط به این AS که ASN نامیده می شود می توانیم دامنه های هدف را پیدا کنیم. برای یافتن ASN یک سازمان می توانیم از سایت bgp.he.net استفاده کنیم. برای مثال فرض کنید که می خواهیم ASN های مربوط به Twitch را پیدا کنیم. برای این کار باید مانند تصویر زیر در سایت bgp.he.net
عبارت Twitch
را جستجو کنیم.
پس از یافتن ASN هدف، برای یافتن دامنه ها، لازم است تمامی فضای ASN اسکن شده و دامنه های اصلی مشاهده شده با گواهی نامه SSL ، استخراج گردد. برای انجام این کار ابزار Amass می تواند گزینه ی بسیار مناسبی باشد. فرض کنید مطابق تصویر زیر بخواهیم روی AS46489 کار کنیم و تمامی دامنه های مربوط به آن را پیدا کنیم.
کافی است تا با استفاده از دستور زیر، دامنه های روی این AS را با استفاده از ابزار Amass جستجو کنیم.
amass intel –asn 46489
نتیجه ی جستجو مطابق تصویر زیر، شامل لیست دامنه های اصلی مربوط به Twitch خواهد بود.
4- Reverse WHOIS
در واقع قابلیت Whois به کاربران اجازه می دهد تا هویت افراد یا سازمان ثبت کننده یک دامنه را پیدا کنند. هنگام ثبت هر دامنه، مجموعه ای از اطلاعات ثبت نام از ثبت کننده دریافت می گردد که زمانی که ما Whois آن دامنه را بررسی می کنیم دقیقا همین اطلاعات را مشاهده خواهیم کرد.دو جزء کلیدی این اطلاعات «نام Organization» و «ایمیل» مربوط به صاحب دامنه است که می تواند مورد استفاده ی ما قرار گیرد. سایت Whoxy یکی از ابزارهای خوب است که امکان جستجوی دامنه های ثبت شده بر اساس ایمیل و نام سازمان را به ما ارائه می دهد. به این قابلیت در اصطلاح Reverse Whois گفته می شود. برای مثال با جستجوی دامنه Twitch.tv در این سایت، در قسمت Whois History مطابق تصویر زیر نام سازمان ثبت کننده و همین طور ایمیل ثبت کننده را می توانید مشاهده کنید.
حالا با داشتن نام شرکت یا سازمان ثبت کننده دامنه، با استفاده از صفحه Reverse Whois می توانیم سایر دامنه هایی که این شرکت یا سازمان ثبت کرده است را مشاهده کنیم.
پس از باز کردن صفحه ی مطابق تصویر بالا باید گزینه Company Name را برای جستجو انتخاب کنید و نام سازمان یا شرکت را وارد کنید. خروجی جستجو مانند تصویر زیر سایر دامنه های ثبت شده توسط آن سازمان خواهد بود.
5- Ad/Analytics Relationships
سرویس های Ad/Analytics در واقع با هدف آمارگیری و انجام موفق تبلیغات ایجاد شده است و مورد استفاده قرار می گیرند. بررسی کدهای ad/analytics tracker وب سایت، یکی دیگر از شیوه های یافتن دامنه ها و زیر دامنه های مرتبط با هدف است. بسیاری از سایت ها از کدهای یکسان برای تمامی دامنه های خود استفاده می کنند و کدهای Google analytics و New Relic از رایج ترین این کدها هستند.BuiltWith ابزاری مناسب برای بررسی این رابطه ها و یافتن دامنه های مرتبط از این طریق است. این ابزار از طریق وبسایت و همین طور افزونه ی قابل نصب در مرورگر Chrome در دسترس است. برای مثال نمونه ای از جستجو با استفاده از این ابزار، برای دامنه Twitch.tv را می توانید در تصویر زیر مشاهده کنید.
اگر به قسمت پایین تصویر که با فلش قرمز رنگ مشخص شده دقت کنید متوجه می شوید که تعدادی دامنه مربوط به Twitch یافت شده اند که از کد UA-23719667 به صورت مشترک استفاده می کنند.
6- Google-Fu
در این قسمت می خواهیم با استفاده از قابلیت جستجوی پیشرفته گوگل، دامنه های اصلی مربوط به یک سازمان را پیدا کنیم. یکی از راه های خوب این مورد، جستجوی واژه های کلیدی زیر برای سازمان هدف در Google است.
- Copyright text
- Terms of service text
- Privacy policy text
در تصویر زیر مثالی از جستجو برای Twitch را مشاهده می کنیم.
7- Shodan
شودان در واقع یک موتور جستجوی اینترنت اشیاء است که از طریق آن می توان اطلاعات مختلف یافت شده راجع به IP های مختلف و سرویس های روی آن ها را پیدا کرد. با استفاده از جستجوی یک دامنه در شودان می توانید اطلاعاتی راجع به آن ها نیز پیدا کنید. برای مثال در تصویر زیر مشاهده می کنید که با جستجوی Twitch.tv تعدادی IP نمایش داده شده است که Common-Name های هرکدام از آن ها می تواند دامنه ی اصلی یا زیردامنه ای مربوط به این دامنه باشد.
در بخش اول از مقاله «شناسایی پیشرفته» با برخی از ابزارها برای شناسایی اهداف آشنا شدید. بهتر است برای یادگیری یک سازمان را انتخاب کنید و این روش ها و تکنیک های شناسایی را روی آن ها اجرا کنید تا با نکات و موارد هر روش از نزدیک آشنا شوید. با ما همراه باشید تا در مقاله ی بعدی سایر ابزارها و تکنیک ها را معرفی کنیم.