همه چیز درباره دورک های موتور جستجوی Shodan – چشم خدا

همه چیز درباره دورک های موتور جستجوی Shodan – چشم خدا

موتور جستجوی Shodan

خلاصه:

Shodan یک موتور جستجو برای دستگاه های متصل به اینترنت است. Shodan از موتورهای جستجویی نظیر Google و Bing متفاوت است؛ چرا که Google و Bing برای پیدا کردن وب سایت ها عالی عمل می کند، حال آن که Shodan در پیدا کردن موارد متفاوتی نظیر نسخه های محبوب Microsoft IIS، سرورهای کنترل بدافزار، تعداد هاست های درگیر با CVEهای جدید، کشورهایی که بیشتر متصل می شوند، گواهینامه های SSL وب سایت ها و…  بسیار موثر عمل می نماید.

تفاوت میان موتور جستجوی Shodan و Google:

تفاوت اصلی بین Shodan و Google آن است که Shodan اینترنت را تحلیل کرده و Google شبکۀ جهانی وب را تحلیل می نماید.

توضیحات:

 Shodan محبوب ترین موتور جستجویی است که تا کنون دیده شده است. موتور جستجوی مذکور قابلیت این را دارد که دسکتاپ های کوچک، CCTV ها، نیروگاه های هسته ای و… را ایندکس نماید.

این روزها Shodan در دنیای تست نفوذ، باگ بانتی ها، فارنزیک دیجیتال، شکار تهدیدات و… بسیار محبوب شده است.

دیدی از کوئری جستجوی Shodan:

Shodan از طریق تعامل با وب سرویس ها اطلاعات را جمع آوری کرده که این اطلاعات در یک شی تحت عنوان banner ذخیره می شود، بنابراین هنگامی که با استفاده از دورک Shodan (کوئری جستجو) چیزی را جستجو می کنید، Shodan اطلاعات را از banner آن سرویس گرفته و به شما نمایش می دهد. به زبان ساده، banner متادیتایی برای یک سرویس است؛ به عنوان مثال، این متادیتا در مورد HTTP به معنی هدرها و دربارۀ FTP به معنی رشتۀ خوش آمد گویی است. سرویس های مختلف، banner های متفاوتی دارند. به عنوان مثال بیایید نگاهی به bannerهایvsftpd 3.0.3  و Siemens S7 داشته باشیم.

vsftpd 3.0.3 – Banner
Siemens S7 – Banner

 دو نسخه دارد:

  1. نسخۀ تحت وب
  2. نسخۀ مبتنی بر CLI

رابط خط فرمان (CLI) شودان، از کتابخانۀ پایتون برای Shodan استفاده می نماید. طبق شنیده ها، Shodan CLI قدرتمندتر از نسخۀ تحت وب است. همچنین تفاوتی جزئی بین دستورات استفاده شده در نسخۀ تحت وب و CLI وجود دارد.

چگونه از نسخۀ تحت وب استفاده کنیم؟

  1. به صفحۀ https://account.shodan.io/login?continue=http%3A%2F%2Fwww.shodan.io%2Fdashboard مراجعه کرده و وارد حساب کاربری خود شوید.
ورود وب
  1. دورک Shodan (کوئری) خود را در نوار جستجو وارد کرده و enter را فشار دهید.
جستجو
دورک Shodan
  1. همچنین می توانید نتایج را با استفاده از کدهای پاسخ فیلتر کنید.
دورک Shodan – فیلتر کردن پاسخ

چگونه از نسخۀ مبتنی بر CLI استفاده کنیم؟

  1. sudo apt install python python3 python-pip python3-pip
  2. sudo apt install python-setuptools python3-setuptools
ابزار تنظیم پایتون
تکمیل شد

3. sudo pip install shodan

نصب Shodan

4. پس از نصب، دستور shodan count microsoft iis 6.0 را اجرا کردم که خطایی در رابطه با API key برایم نمایش داد، از این رو دستور shodan init <API-KEY> را به منظور تنظیم API key اجرا کردم.

نکته: من API key را از حساب کاربری Shodan خود برداشتم.

API key

5. سپس از دستور shodan scan submit –force IP برای اسکن کردن IP مشخص با استفاده از Shodan CLI استفاده کردم.

اسکن Shodan

6. برای جستجوی هاست مشخص، از دستور shodan host IP استفاده کردم.

هاست

مانیتورینگ Shodan:

مانیتورینگ Shodan برای شما امکان مانتیور کردن آدرس IP موردنظرتان را فراهم می نماید. این موتور جستجو می تواند یک آدرس IP، لیست آدرس های IP یا حتی بلوک های شبکه (زیرشبکه های IP) را مانیتور کند. این مورد می تواند امکان شناسایی سیستم های کنترل صنعتی، سرویس های در معرض اینترنت، گواهینامه های SSL منقضی شده، سرویس های جدید تارگت موردنظر و CVE آسیب پذیر برای تارگت موردنظرتان را فراهم نماید.

چگونه از Shodan برای مانیتورینگ شبکه استفاده کنیم (با استفاده از CLI)؟

  1. از دستور shodan alert برای بررسی گزینه های موجود استفاده نمایید.
گزینه های Alert

2. در ادامه با استفاده از دستور shodan alert create “TargetName” <TargetIP> تارگت خود را برای مانیتورینگ شبکه اضافه نمایید (همچنین می توانید محدودۀ IP مشخص نمایید – بلوک شبکه به جای IP تکی)

افزودن تارگت برای مانیتورینگ شبکه

3. سپس از دستور shodan alert triggers برای بررسی triggerهای موجود استفاده نمایید.

Alert Triggers
Alert Triggers

4. سپس از دستور shodan alert list برای بررسی alert ID استفاده کنید.

Alert ID

5. حال برای فعال نمودن هشدارها برای تارگت خود از دستور shodan alert enable <alertID> <alertNames> استفاده کنید.

ایجاد alert برای تارگت

مانیتورینگ شبکۀ مبتنی بر دامین:

برخی اوقات ممکن است از آدرس IPها و محدوده های شبکۀ آن ها اطلاعی نداشته و تنها نام دامین موردنظر خود را بدانیم. در چنین حالتی، Shodan امکان مانیتورینگ شبکۀ مبتنی بر دامین را برایمان فراهم می نماید که می توانیم در آن به جای آدرس IPها یا محدودۀ شبکه، به طور مستقیم از نام دامین برای مانیتورینگ استفاده نماییم.

به عنوان نمونه:

  1. از دستور shodan alert domain <domainName> استفاده کنید:

بهترین بخش ماجرا این است که پس از مشخص کردن نام دامین، Shodan به طور اتوماتیک تمامی ساب دامین ها و IP آن ها را پیدا کرده و یک مانیتورینگ شبکه برایشان ایجاد می نماید. این موتور جستجو مانیتورینگ موجود را طبق تغییرات DNS تارگت موردنظر به روز کرده و شما می توانید با استفاده از دستور shodan domain <domainName> اطلاعات تارگت خود را مشاهده نمایید.

به عنوان نمونه:

اطلاعات دامین

چگونه از Shodan برای مانیتورینگ شبکه استفاده کنیم (نسخۀ تحت وب)؟

  1. به آدرس https://monitor.shodan.io/dashboard مراجعه کرده و بر روی گزینۀ « SETUP NETWORK MONITOR» کلیک نمایید.
تنظیم شبکه

2. نام و آدرس IP تارگت خود را وارد کرده (همچنین می توانید محدودۀ شبکه اضافه کنید، به عنوان مثال: 104.16.100.52/32) و بر روی گزینۀ Add Network کلیک نمایید.

نام و آدرس IP تارگت

نکته: همان طور که در ستون سمت راست مشاهده می کنید، 16 آدرس IP باقی مانده است؛ یعنی من می توانم تنها تا 16 آدرس IP اضافه کنم، علت مسئلۀ مذکور نیز این است که عضویت من از نوع آکادمیک است. هر یک از انواع عضویت ها مزایای مختلفی دارند (برای کسب اطلاعات بیشتر، صفحۀ https://account.shodan.io/billing را بررسی نمایید).

  1. حال بر روی گزینۀ ویرایش (edit) کلیک کرده و به پایین صفحه بروید تا قوانین trigger را اعمال نمایید و سپس بر روی گزینۀ Save Changes کلیک نمایید.
ویرایش قوانین Trigger
قوانین Trigger

نکته: من قوانین Trigger را به ازای هر باگ بانتی انتخاب کرده ام. در صورتی که شما در حال انجام تست نفوذ هستید، همۀ آن ها را انتخاب کنید.

  1. حال بر روی dashboard  Browse results < کلیک نمایید.
داشبورد
جستجوی نتایج
نتایج

استفاده از Shodan به عنوان پلاگین مرورگر

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

پلاگین مرورگر Shodan به طور اتوماتیک تشخیص می دهد که وب سایت مربوطه در چه کشور یا شهری میزبانی می شود، مالک IP مربوطه چه کسی است و چه سرویس ها و پورت هایی بر روی آن باز هستند. علاوه بر این، Shodan اطلاعاتی نظیر گواهینامه های SSL، هاست نِیم، تکنولوژی های وب، نام سازمان، ISP، ASN، رکوردهای دامین و ساب دامین های مربوط به تارگت موردنظر شما را نیز ارائه می دهد.

چگونه از پلاگین مرورگر استفاده کنیم؟

  1. به آدرس https://chrome.google.com/webstore/detail/shodan/jjalcfnidlmpjhdfepjhjbhnhkbgleap/related مراجعه کرده و بر روی گزینۀ Add to Chrome کلیک کنید.
پلاگین مرورگر Shodan – افزودن به کروم
  1. بر روی گزینۀ Add extension کلیک کنید:
Add extension
  1. حال از دامین تارگت خود بازدید کرده و بر روی پلاگین کلیک کنید:
دامین تارگت
پلاگین مرورگر Shodan – اطلاعات تارگت
  1. سپس بر روی Open link in new tab < View IP Details راست کلیک کنید.
مشاهده کردن جزئیات IP
مشاهده کردن جزئیات دامین
  1. به منظور مشاهدۀ جزئیات دامین، بر روی گزینۀ Open link in new tab < View Domain details راست کلیک کنید.
مشاهده کردن جزئیات دامین
جزئیات دامین

دیدی از دورک های Shodan:

حالت کلی:

  1. org

از این دورک Shodan برای پیدا کردن تمامی دارایی های مرتبط با دامین هدف شما استفاده می شود. می توانید با اعمال گزینه های فیلترینگ موجود، خروجی غیردلخواه خود را حذف نمایید. هنگامی که شرکت یا دامین تارگت شما، دامین های وایلدکار یا تمامی محصولات خود را جزو اسکوپ تعریف کرده، استفاده از این دورک می تواند بسیار موثر واقع شود.

  1. product

این دورک shodan برای پیدا کردن تارگت بر اساس محصولی خاص استفاده می شود؛ برای مثال، در صورتی که بخواهید تمام دامین های تارگت خود را که از محصول mangodb استفاده می کنند پیدا کنید، استفاده از این دورک می تواند بسیار موثر باشد.

  1. net

این دورک shodan نشانه گذاری CIDR را نمایش می دهد. از این دورک برای یافتن هاست های موجود در سابنت های مخصوص استفاده می شود؛ برای مثال در صورتی که آدرس IP تارگت شما به صورت 104.16.100.52/32 باشد، در اینجا 32، سابنت IP شما محسوب شده و Shodan همۀ آدرس های IP متعلق به این سابنت بخصوص را برایتان لیست خواهد کرد.

  1. asn

این دورک Shodan برای پیدا کردن تمامی هاست ها/دامین های شرکت تارگت شما استفاده می شود. ASN سیستم شماره گذاری خودگردان است که تمامی دارایی های متصل شدۀ اینترنتی متعلق به شرکت هدف شما را پیدا می کند؛ برای مثال به آدرس https://hackertarget.com/as-ip-lookup مراجعه کرده و آدرس IP تارگت خود را وارد نمایید تا شمارۀ ASN مربوط به تارگت خود را مشاهده کنید. سپس از این شمارۀ ASN برای جستجوی تارگت خود روی Shodan استفاده نمایید.

  1. hostname

از این دورک Shodan برای یافتن تمامی هاست های متصل به اینترنت تارگت شما استفاده می شود؛ برای مثال فرض کنید تارگت خود را به صورت www.hackerone.com وارد کردید، در ادامه این دورک، تمامی هاست های که با این نام به اینترنت متصل هستند را پیدا خواهد کرد.

  1. ip

این دورک Shodan به شما کمک می کند تا تمامی هاست های تارگت خود که دارای IP ارائه شدۀ شما هستند را بیابید؛ برای مثال، در صورتی که IP شما 104.16.100.52 باشد، این دورک تمامی هاست های متعلق به این IP مشخص را پیدا می کند.

  1. all

این دورک Shodan تمامی نتایج مربوط به نامی که به همراه این دورک وارد شده را پیدا می کند؛ برای مثال، در صورتی که بخواهید تمامی نتایج مربوط به tesla را بیابید، با استفاده از این دورک می توانید این کار را انجام دهید.

  1. port

از این دورک Shodan برای پیدا کردن تمامی پورت های باز آسیب پذیر که بر روی تارگت شما قرار داشته و ممکن است اطلاعات حساسی را افشا نمایند، استفاده می شود.

HTTP:

  1.     http.component  و  http.component_category

تفاوت اندکی مابین http.component و http.component_category وجود دارد. به طوری که http.component نام تکنولوژی مورد استفادۀ وب سایت بوده، برای مثال: wordpress، jquery، mysql، nginx و… حال آن که http.component_category نام دسته بندی کامپوننت ها و اجزای در حال استفاده است، برای مثال: cms، کتابخانه های جاوا اسکریپت، پایگاه داده ها، وب سرور ها و…

Component و دسته بندی Component
  1. http.favicon.hash

favicon آیکون کوچکی است که در برگه یا نوار مرورگر نمایش داده شده و برای مشخص کردن علامت تجاری آن وب سایت استفاده می گردد. می توانیم با دانلود کردن فایل facicon.ico، هش این آیکون را محاسبه کنیم. این هش با قرارگیری در دورک http.favicon.hash شودان، امکان یافتن اکسپلویت های موجود را میسر می سازد.

  1. http.html

از این دورک Shodan برای یافتن تکنولوژی ها و کلمه های موجود در سورس کد وب سایت تارگت شما استفاده می گردد؛ برای مثال فرض کنید می خواهید بدانید که آیا وب سایت موردنظر شما از drupal 8.0 استفاده می کند یا خیر، در این صورت به سادگی می توانید عبارت موردنظر خود را به این دورک دهید تا نتایج موجود را برایتان نمایش دهد.

نکته یک) از این دورک زمانی استفاده می شود که بدانید فلان نسخۀ تکنولوژی موردنظر شما (دروپال) نسبت به یک CVE خاص آسیب پذیر است.

نکته دو) این دورک وقتی استفاده می شود که تارگت شما اسکوپ بزرگی از ساب دامین ها را شامل می گردد.

  1. http.title

از این دورک برای پیدا کردن هر آنچه که مابین تگ باز و بستۀ <title> در کد html وب سایت هدف نوشته شده، استفاده می شود. برای مثال، در صورتی که بخواهید وب سایتی با تایتل و عنوان Grafana پیدا کنید، این دورک به دردتان می خورد. تفاوت اندک مابین http.title و http.html این است که http.html نتایج بیشتری را در مقایسه با http.title برایتان نمایش می دهد، حال شما بسته به نیاز خود می توانید یکی از آن ها را انتخاب نمایید.

وب سایتی با عنوان Grafana
  1. http.status

این دورک برای فیلتر کردن خروجی بر اساس کد وضعیت تارگت شما استفاده می گردد؛ برای مثال 200، 403، 301، 302، 401 و… شما همچنین می توانید با افزودن کد وضعیت موردنظر خود به عبارت موردجستجو با استفاده از علامت +، بدون استفاده از این دورک Shodan و به طور مستقیم کد وضعیت را نیز در نتایج جستجو اعمال کنید؛ اما با این کار، جستجو فقط به کد وضعیت محدود نشده و برای تمامی مقادیر 200 ممکن انجام خواهد گرفت (یعنی نتایجی که مقدار عددی 200 را در خود دارند نیز در خروجی نمایش داده خواهند شد.).

  1. http.waf

از این دورک برای فیلتر کردن نتایج خروجی بر اساس فایروال مورداستفادۀ تارگت برای وب اپلیکیشن خود استفاده می گردد؛ برای مثال اگر وب اپلیکیشن تارگت شما از فایروال Barracuda استفاده می کند، با استفاده از این دورک می توانید بفهمید کدام یک از دامین های وب اپلیکیشن تارگت شما از این فایروال استفاده می کنند.

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

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

SSL

  1. ssl.alpn

مذاکرۀ پروتکل لایۀ اپلیکیشن (ALPN) یک افزونۀ امنیت لایۀ انتقال (TLS) است که به لایۀ اپلیکیشن این اجازه را می دهد تا دربارۀ این که کدام پروتکل باید بر روی اتصالی امن اجرا شود، مذاکره نماید. از این دورک می توان برای شناسایی اینکه کدام ALPN توسط درخواست های دامین تارگت شما پشتیبانی می شود، استفاده نمود. برای مثال اگر درخواست تارگت شما در خود دارد و شما می خواهد بدانید که آیا از یا نیز پشتیبانی می کند یا خیر، می توانید از این دورک استفاده کنید.

نکته یک) از این دورک زمانی استفاده می شود که بخواهید حملات غیرهمگام سازی/اسماگلینگ HTTP انجام دهید.

نکتۀ دو) این دورک زمانی استفاده می شود که تارگت شما اسکوپ بزرگی از ساب دامین ها را پوشش می دهد.

2 . ssl.cert.subject.cn  و  ssl.cert.issuer.cn

تفاوت اندکی مابین ssl.cert.subject.cn و ssl.cert.issuer.cn وجود دارد؛ به طوری که ssl.cert.subject.cn نام شرکت یا سازمان تارگت شما بوده و ssl.cert.issuer.cn به آن شرکتی اشاره دارد که گواهینامه های مربوط به شرکت یا سازمان هدف شما را صادر و تایید می کند.

نکتۀ یک) دورک ssl.cert.issuer.cn در باگ بانتی مورد استفاده قرار نخواهد گرفت.

دورک های سفارشی

  1. set-cookie

این دورک سفارشی Shodan برای پیدا کردن مقادیری استفاده می شود که کوکی مربوط به درخواست شرکت تارگت شما حاوی آن است.

  1. x-drupal-cache

این دورک سفارشی Shodan برای پیدا کردن مشکلات کش دروپال مربوط به وب سایت تارگت شما استفاده می شود.

  1. access-control-allow-origin

از این دورک سفارشی Shodan برای پیدا کردن مشکلات اشتراک منابع cross-origin در وب سایت تارگت شما استفاده می شود.

  1. WWW-Authenicate

این دورک سفارشی Shodan در پیدا کردن مشکلات مربوط به احراز هویت در وب سایت تارگت شما بسیار موثر عمل می کند.

  1. X-Magento-Cache-Debug

از این دورک سفارشی Shodan برای پیدا کردن مشکلات کش magneto در وب سایت تارگت شما استفاده می شود.

  1. kbn-name

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

  1. x-forwarded-host و x-forwarded-for

از این دورک های سفارشی Shodan برای پیدا کردن مشکلات تزریق هدر در وب سایت تارگت شما استفاده می شود.

  1. x-jenkins

از این دورک سفارشی Shodan برای پیدا کردن سرور Jenkins در وب سایت تارگت شما استفاده می شود.

نکتۀ یک) خود شما می بایست عملیات پیمایش و جستجو برای آسیب پذیری را انجام دهید. این دورک ها مستقیماً شما را به آسیب پذیری نمی رسانند.

نکتۀ دو) این دورک ها در فهمیدن این که چه آسیب پذیری هایی را می توانید بر روی دامین های تارگت مدنظر خود پیدا کنید به شما کمک می کند، البته به این شرط که تارگت مدنظر شما از هدرهای فوق را استفاده کرده باشد.

نمودار استفاده از Shodan dorking

Shodan – نقشۀ ذهنی

Shodan Dorking (تحت وب)

URL هایی برای دورک های Shodan (تحت وب):

  1. http.html

https://gist.github.com/JerryShah3/8e25ecfeb9fa88784aa274d97b3cf86f

  1. http.title

https://gist.github.com/JerryShah3/ccd9c8bd7eafa52b69f5a76917eec074

  1. http.status

https://gist.github.com/JerryShah3/e4018ecce48eefcb8e02ebadf9468ae8

  1. port

https://gist.github.com/JerryShah3/7c5cb2f25ceb3e522bfdfd0f9a68f6bb

  1. http.favicon.hash

https://gist.github.com/JerryShah3/9eb4189b9b450d32c229b9c0cfbe3988

  1. http.component

https://gist.github.com/JerryShah3/95d3a1baf2d29973286effb491684297

  1. http.component_category

https://gist.github.com/JerryShah3/71bbbd368af846304e8588747984663b

  1. http.waf

https://gist.github.com/JerryShah3/db7e47d1497d64e80c841961f3fb48b3

  1. ssl.alpn

https://gist.github.com/JerryShah3/91c9fc5116bd58d3f92a454cb544b4f3

  1. product

https://gist.github.com/JerryShah3/82346509de0208cf0d932e92bf20f0db

Shodan Dorking (از طریق CLI):

shodan host <IP>
shodan stats — facets port,org ssh
shodan domain <domain-name>
shodan honeyscore IP
shodan alert create “HackerOne” 104.16.100.52

(این مورد هشداری برای آدرس IP ایجاد کرده و یک شناسۀ هشدار نیز ارائه می دهد)

shodan stats –facets org discourse
shodan download –limit -1 <filename> ‘title:”IBM”’
shodan parse –fields ip_str,port,org –separator , filename.json.gz

(برای مشاهدۀ محتوای فایل دانلود شده از طریق فیلتر کردن آن استفاده می شود)

shodan domain hackerone.com
shodan honeyscore IP
shodan alert create “HackerOne” 104.16.100.52

(این مورد هشداری برای آدرس IP ایجاد کرده و یک شناسۀ هشدار نیز ارائه می دهد)

shodan alert create “Hyatt Hotels” 140.95.0.0/16
shodan alert enable <alert ID> new_service,open_database,vulnerable,ssl_expired,internet_scanner,uncommon
shodan alert hackerone.com

نکته) من از نسخۀ CLI زیاد استفاده نکرده ام، به همین خاطر تنها به آن دسته از دورک های CLI که می دانستم و از آن ها استفاده کرده ام را ذکر کردم.

تشکر ویژه از Jinay Patel برای تصحیح و مشارکت در دورک ها

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

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