آموزش استفاده از httpx و eyewitness

قبلا در مورد ابزارهای مختلفی صحبت کرده‌ام که به شما کمک می‌کند نقص‌های بیش‌تری را در وبسایت موردنظر پیدا کنید. امروز در این مقاله نه یک ابزار بلکه دو ابزار را بررسی خواهیم کرد. هر دو ابزار به ما کمک می‌کنند که سطح حمله خود را افزایش دهیم و همچنین کارها را سریع‌تر پیش ببریم.

اغلب زمانی‌که ما باگ‌بانتی یا تست‌نفوذ خارجی انجام می‌دهیم، محدوده خود را چیزی شبیه به *example.com دریافت می‌کنیم. این بدان معنی است که همه زیردامنه‌های example.com برای این اسکوپ معتبر هستند.

اینجا صفحه bugcrowd تسلا است و همانطور که می‌بینید، در این محدوده به عنوان *tesla.com ذکر شده‌اند و به این معنا است که ما به عنوان باگ‌هانتر می‌توانیم در هر یک از زیردامنه‌های آن‌ها نقص پیدا کرده و گزارش دهیم. هر زمان که چنین چیزی می‌بینیم، با استفاده از ابزارهایی مانند assetfinder, sublist3r, crt.sh و … شروع به جستجو زیردامنه‌های وبسایت می‌کنیم. این ابزارها برای یافتن بیش‌تر زیردامنه‌ها بسیار خوب عمل می‌کنند.

در اینجا من از ابزاری به نام assetfinder برای دریافت زیردامنه‌های tesla.com استفاده کرده‌ام. شما می‌توانید از ابزارهای دیگر و همچنین خدمات آنلاینی مانند crt.sh استفاده کنید.

مشکل

مشکل کار با زیردامنه‌ها همانطور که در این مثال از تسلا می‌بینید، این است که ما 517 زیردامنه از assetfinder داریم. اگر از ابزارهای بیش‌تری استفاده کنیم ممکن است در نهایت زیردامنه‌های بیش‎‌تری دریافت کنیم. اما باید درک کنیم که همه زیردامنه‌ها زنده (فعال) نیستند.

از آنجایی که این ابزارهای زیردامنه‌‌یاب از خدمات مختلفی برای بررسی زیردامنه‌ها استفاده می‌کنند، اما بررسی نمی‌کنند که آیا هر یک از آن‌ها فعال هستند یا خیر و بررسی یک به یک آن‌ها کار خسته‌کننده‌ای است.

راه‌حل

برای حل این مشکل یک ابزار خیلی عالی به نام httpx داریم. Httpx  ابزاری است که توسط Project Discovery ساخته شده است و یک جعبه ابزار HTTP سریع و چندمنظوره فراهم می‌کند که امکان اجرای چندین کاوشگر با قابلیت تکرار library را ایجاد می‌کند. این ابزار برای حفظ قابلیت اطمینان نتایج با افزایش موضوعات طراحی شده است.

Probe‌های پشتیبانی‌شده از Httpx:

Probes  Default check  Probes  Default check 
URL  true IP true
Title  true CNAME true
Status Code  true Raw HTTP false
Content Length  true HTTP2 false
TLS Certificate  true HTTP Pipeline false
CSP Header  true Virtual host false
Line Count  true Word Count true
Location Header  true CDN false
Web Server  true Paths false
Web Socket  true Ports false
Response Time  true Request Method true
Favicon Hash  false Probe Status false
Body Hash  true Header Hash true
Redirect chain  false URL Scheme true
JARM Hash  false ASN false

نصب httpx بسیار ساده است. برای نصب موفقیت‌آمیز به go 1.17 نیاز دارید. دستور زیر را برای نصب، اجرا کنید.

go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest

در مثال قبل، 517 زیردامنه از تسلا پیدا کردیم اما نمی‌دانیم که چند مورد از آن‌ها زنده هستند. اکنون با اجرای httpx میخواهیم بدانیم چند مورد از آن‌ها فعال هستند.

cat tesla.txt| httpx > test-alive.txt

قبلا ما تمام لیست‌های زیردامنه‌ها را در tesla.txt ذخیره کرده‌ایم و tesla.txt را به httpx ، pipe  نکردیم و پاسخ را در یک فایل دیگری به نام teslalive ذخیره کردیم.

پس از یک بار اتمام، اجازه دهید تعداد زیردامنه‌هایی که برگردانده است را ببینیم:

همانطور که می‌بینید از بین 517 زیردامنه‌ای که assetfinder برایمان پیدا کرده بود، تنها 117 مورد از آن‌ها فعال هستند. این قدرت httpx است. در این مثال من فقط یک کاربرد ساده httpx را نشان دادم. Httpx همچنین ویژگی‌هایی نظیر کشف vhost، یافتن استاتوس کدها و بسیاری از ویژگی‌های دیگر را دارد.

اکنون پس از اجرای httpx، لیستی از زیردامنه‌های فعال را دریافت کردیم. در این مورد، 117 دامنه بود. در حال حاضر، این مورد منجر به مشکل دیگری می‌شود که اکثر مردم با آن مواجه هستند.

مشکل (2)

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

اگرچه به عنوان یک تست‌نفوذگر باید تمامی زیردامنه‌ها را بررسی کنیم، اما اگر به نحوی بتوانیم زیردامنه‌ها را براساس تارگت‌های high-value و low-value دسته‌بندی کنیم، می‌تواند در تست کمک زیادی به ما کند. منظور من از تارگت high-level این است که فرض کنید یکی از سایت‌ها یک فرم ورود به سیستم باشد، پس می‌تواند یک دامنه high-value باشد به طوری که می‌توانیم راه‌های مختلفی را برای دور زدن فرم ورود و ورود به داخل آن امتحان کنیم.

راه‌حل

 برای این مشکل، می‌توانیم از ابزاری به نام eyewitness استفاده کنیم. eyewitness برای گرفتن اسکرین‌شات از وبسایت‌ها، ارائه برخی از اطلاعات هدر سرور و در صورت امکان برای شناسایی اعتبار پیشفرض طراحی شده است.

نصب:

  • به دایرکتوری Python/setup بروید.
  • اسکریپت sh را اجرا کنید.

کاربرد:

./EyeWitness.py -f filename –timeout optionaltimeout

اینجا یک دستور برای گرفتن اسکرین‌شات از زیر دامنه‌های تسلا اجرا می‌کنیم.

./EyeWitness -f /home/kali/teslalive

گزارش نهایی مانند مورد زیر است:

همانطور که می‌بینید، ما یک زیردامنه با دکمه ورود داریم. بنابراین شاید بتوانیم این زیردامنه را در حین بررسی در اولویت قرار دهیم. امیدوارم اکنون httpx و Eyewitness و اینکه چگونه می‌توانیم از این دو ابزار درکنار هم برای عمل تست استفاده کنیم، درک کنید.

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

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