شناسایی حرفه ای به سبک هکرها - قسمت دوم

شناسایی حرفه ای به سبک هکرها - قسمت دوم

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

1- Links and JS Discovery

در این روش ما به دنبال جمع آوری مجموعه ای کامل از لینک های موجود در یک سایت و همچنین بررسی محتوای فایل های js استفاده شده هستیم تا بتوانیم با استفاده از این روش تعداد زیادی از زیردامنه های موجود را پیدا کنیم. برای این کار می توانیم از ابزارهای متفاوتی استفاده کنیم که از جمله آن ها می توان به دو ابزار Burp Suite Pro و SubDomainizer اشاره کرد.

1-1- استخراج لیستی از لینک ها با Burp Suite Pro

یکی از راه های گسترش scope مورد نظر، استخراج و بررسی تمامی لینک های هدف است. یکی از راه های انجام این کار، استفاده از Burp Suite Pro است. پس از دیدن دامنه ی seed/root و spider کردن تمامی لینک ها، موارد به دست آمده توسط regex بررسی شده و تمامی زیردامنه های درون scope به دست می آید.

2-1- بررسی فایل های js با استفاده از SubDomainizer

یکی دیگر از شیوه های دستیابی به زیردامنه های بیشتر، وارسی فایل های جاوا اسکریپت است.Subdomainizer، ابزاری است که با سه هدف مشخص برای تحلیل فایل های جاوا اسکریپت طراحی شده است:

  • یافتن subdomain های مشاهده شده در فایل های جاوا اسکریپت
  • یافتن سرویس های ابری مشاهده شده در فایل های جاوا اسکریپت
  • یافتن موارد احتمالاً حساس در فایل های جاوا اسکریپت

این ابزار یک آدرس را دریافت کرده و به دنبال فایل های جاوا اسکریپت برای تحلیل می گردد و در نهایت اگر زیردامنه یا موارد حساس دیگری در داخل فایل وجود داشته باشد، لیستی از این موارد را به ما نمایش می دهد.

2- Subdomain Scraping

منابع  و روش های زیادی در سطح اینترنت برای یافتن زیردامنه های یک دامنه وجود دارد. یکی از روش ها، استفاده از منابعی است که با scrap کردن و ذخیره ی اطلاعات مربوط به زیردامنه های سایت های مختلف، امکان جستجو برای یافتن زیردامنه ها را به ما می دهند. ابزارهای Amass و Subfinder، دو ابزار در این زمینه هستند که با گرد هم آوری اطلاعات یافت شده از منابع مختلف، به استخراج زیردامنه ها می پردازند.

ابزار Amass از بیش ترین منابع بهره برده، خروجی آن قابل تعمیم بوده و امکان جست وجوی جامع و permutation scanning در آن فراهم است. این ابزار همچنین دامنه های استخراج شده را به ASN آن ها مرتبط کرده و لیستی از رنج شبکه ی آن ها را نمایش می دهد. برای استفاده از این ابزار کافی است تا از دستوری مانند زیر استفاده کنید و به جای target.com دامنه مورد نظرتان را جایگزین کنید.

amass enum -d target.com

ابزار Subfinder نیز مشابه Amass، از منابع متعددی بهره می برد و خروجی آن قابل تعمیم است. برای استفاده از این ابزار نیز می توانید از دستور زیر استفاده کنید و در آن به جای target.com آدرس دامنه مورد نظرتان را قرار دهید.

subfinder -d target.com -v

ابزار github-subdomains.py  از دیگر ابزارهای مناسب برای یافتن زیردامنه است که در مجموعه ابزارهای صفحه ی github-search  وجود دارد.

3- Subdomain Bruteforce

حدس زدن زیردامنه ها روشی دیگر برای دستیابی به نتایج جامع تر در Recon است. این روش با resolve کردن زیردامنه ها (ترجمه یک دامنه به آی پی آن) و بررسی موفقیت آن، زیردامنه های فعال را شناسایی می کند. استفاده ی همزمان از DNS server های متعدد، رویکرد اصلی در به کارگیری این شیوه است. یکی از ابزارهای مناسب برای استفاده در این روش ابزار Amass است که به صورت پیش فرض از هشت resolver استفاده می کند و امکان شخصی سازی آن  با سوئیچ rf- وجود دارد. این ابزار عمل جست وجوی جامع با ابزار enum و سوئیچ brute انجام می دهد. مثال هایی از دستورهای مورد استفاده در این حالت را می توانید در نمونه های زیر مشاهده کنید:

amass enum -brute -d target.com -src
amass enum -brute -d target.com -rf resolvers.txt -w bruteforce.list

ابزاری دیگر برای انجام این کار shuffleDNS است که نمونه ای از خروجی آن برای دامنه hackerone.com را در تصویر زیر می توانید مشاهده کنید. دستور مورد استفاده برای این کار عبارت است از:

shuffledns –d hackerone.com –w words.txt –r resolvers-excellent.txt

برای انجام این کار نیاز به لیست کلماتی است که پرکاربردترین آن ها را می توانید از لینک های زیر دریافت کنید.

https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056

https://github.com/assetnote/commonspeak2

سایر ابزارها

پس از اتمام کار استخراج دامنه ها و زیردامنه ها، به ابزارهایی نیاز است تا اطلاعات بیشتری از asset های کشف شده استخراج کنید. در ادامه به کاربردی ترین ابزارهای مورد استفاده در این بخش خواهیم پرداخت. 

1- بررسی Portهای 80 و 443 با httprobe

پس از جمع آوری مجموعه ای از دامنه ها و زیردامنه ها از روش های بالا، لازم است دامنه هایی که روی سرور آن ها پروتکل های http و https فعال است، برای بررسی مشخص گردند. یکی از بهترین ابزارها برای این کار ابزار httprobe است. به صورت زیر می توان لیستی از دامنه ها را با این ابزار بررسی کرد:

cat recon/target/domains.txt | httprobe

برای افزودن portهای بیشتر برای بررسی می توان از دستوری مانند زیر استفاده کرد.

cat domains.txt | httprobe -p http:81 -p https:8443

برای افزایش تعداد Threadهای ابزار و تسریع انجام کار می توان از دستوری زیر استفاده کرد.


cat domains.txt | httprobe -c 50

2- تبدیل دامنه ها به IP های متناظر

پس از بدست آمدن دامنه ها لازم است IP هایی که این دامنه ها به آن resolve می شوند را پیدا کرد و دامنه هایی را که هم اکنون روی یک سرور، فعال هستند را جدا کرد. اسکریپت converter به آسانی این کار را انجام داده و در انتها، لیستی از کل آدرس های یکتا را در فایلی به عنوان خروجی می دهد. نمونه ای از دستور لازم برای اجرای این اسکریپت را در مثال زیر می توانید مشاهده کنید.

./converter.sh target.txt ip.target.txt

3- یافتن اطلاعات حساس توسط Github Dorking

حجم وسیع اطلاعات موجود در github منبع مناسبی برای یافتن اطلاعات مهم و حساس در رابطه با هدف مورد نظر ما است. اسکریپت Gdorklinks.sh لینک انواع مختلف Query ها برای یافتن اطلاعات در گیت هاب را ایجاد می کند و با بررسی اطلاعات موجود در تمامی صفحات اطلاعات حساس را استخراج می کنیم:

./Gdorklinks.sh target.com

4- گرفتن اسکرین شات از صفحات وب

بررسی یک لیست طولانی  از صفحات وب http و https کاری زمان بر است. استفاده از ابزارهایی که به صورت خودکار از صفحات وب مورد نظر کاربر اسکرین شات می گیرند شیوه ای مناسب جهت بررسی این صفحات است.EyeWitness یکی از ابزارهای مناسب جهت گرفتن اسکرین شات از صفحات وب است.

5- تحلیل Favicon

یکی از تکنیک های زیرکانه برای یافتن asset های بیشتر استفاده از favicon سایت هدف و hash آن است. با استفاده از hash favicon می توان به صورت زیر در shodan به جست وجو پرداخت:

org:“Target” http.favicon.hash:116323821

برای محاسبه ی hash favicon یک سایت می توان از قطعه کد زیر استفاده کرد:

import mmh3
import requests

response = requests.get('https://target.com/favicon.ico')
favicon = response.content.encode('base64')
hash = mmh3.hash(favicon)
print(hash)

6- اسکن هدف با ابزار Nuclei

ابزار Nuclei ابزاری مناسب برای اسکن cve، صفحات login و subdomain takeover روی هدف است. پس از استخراج دامنه های باز http و https از asset های هدف، با دادن لیست این دامنه ها در قالب دستوری مانند مثال زیر، می توان عملیات اسکن را روی آن ها انجام داد.

nuclei -l urls.txt -t files/git-core.yaml -o results.txt

نتیجه اسکن را در فایل results.txt می توانید مشاهده کنید. از طریق آدرس این repository می توان template های مختلف این اسکنر را دریافت کرد و با دادن آن ها با استفاده از سوئیچ t- می توان انواع مختلف اسکن را روی سایت هدف انجام داد. برای مثال اسکن cve های مختلف روی هدف را با دستوری مانند مثال زیر می توان انجام داد.

nuclei -l target.com/httprobe.txt -t cve/* -o results.txt

مستندسازی  Recon

برای دسترسی آسان به asset ها و موارد کشف شده در فاز Recon، نیازمندیم که تمامی مشاهده ها را به صورت ساختار یافته دسته بندی و مستند کنیم. فایل mindmap در اینجا، قالبی مناسب را برای این کار فراهم می کند که بر اساس آن می توانیم مشاهدات خود را مستند نماییم. برای باز کردن این فایل کافی است تا نرم افزار XMind را دانلود و نصب کنید.

منبع

https://www.youtube.com/watch?v=uKWu6yhnhbQ

https://docs.google.com/presentation/d/1MWWXXRvvesWL8VGiwGssvg4iDM58_RMeI_SZ65VXwQ/edit#slide=id.p

نظرات

پیشنهادات بیشتر سکان بلاگ برای شما

اگر login نکردی برامون ایمیلت رو بنویس: