تشخیص ماشین های مجازی در حال شنود ترافیک

0 564
Telegram_GEEKBOY

برای بسیاری ممکن است این مساله ساده پیش بیایید که در محیط مجازی vSphere یک ماشین مجازی شروع به sniff کردن پکت های سایر ماشین ها نماید.

ressis 02

اگر بخواهیم در مورد راه جلوگیری از استراق سمع و شنود ترافیک ها صحبت کنیم می توانیم به گزینه promiscuous mode روی سوییچ های مجازی اشاره کنیم. اما فرض کنید که شما در شرایطی مجبور هستید این گزینه را برای عملکرد خاصی Accept قرار دهید. بهتر است بگویم چه عملکردی؟ بطور مثال ماشین های مرکز کال سنتر میخواهند یک نسخه از ترافیک صوتی یک ماشین دیگر را ضبط نمایند و در این شرایط ادمین آن ماشین از شما می خواهد تا امکان انالیز و sniff ترافیک های ماشین دیگرش را فراهم نمایید. ( این یک مثال واقعی است)

بحث اصلی در این مقاله روش شناسایی و تشخیص ماشین های مجازی است که در محیط مجازی شروع به اسنیف کردن و شنود ترافیک سایر ماشین ها کرده اند و شما بایستی به عنوان ادمین بستر مجازی قادر به شناسایی این VM ها باشید. شاید واحد امنیت یکباره از شما کمک هایی در این زمینه بخواهد و نباید دست تان خالی باشد!

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

/var/log/vmkernel or /var/log/messages

این پیام را جستجو کنید:

cpuN:nnnn)etherswitch: L2Sec_EnforcePortCompliance: 0xnnnnnnnn: peer not allowed promiscuous, revoking setting

این پیام ها از سمت ESXi vmkernel نشان می دهد که یک ماشین مجازی در حال ضبط تمام ترافیک شبکه روی یک پورت گروپ یا سوییچ مجازی است. پس لازم است تا کمی جدی تر بتوانید ماشینی که در حال اسنیف کردن یا اجرای نرم افزارهای ناخواسته است را شناسایی و موقعیت یابی کنید. در ادامه مقاله روشهایی برای شناسایی یک ماشین مجازی در حال capture کردن ترافیک های شبکه روی سوییچ های مجازی ارائه شده است. بایستی بدانید که پیام های log file قادر به تشخیص کارت شبکه مجازی خاصی روی یک هاست esxi از طریق PortID هستند. این شناسه در برنامه vSphere client نمایش داده نمی شود، ولی آن می تواند به یک ماشین مجازی وابسته باشد.

جهت شناسایی اینکه چه ماشین مجازی در حال وارد شدن به مد promiscuous می باشد، بایستی Port ID های هگزادسیمال ثبت شده را به مبنای ده دهی تبدیل کنید و ماشین مجازی که از این Port ID استفاده می کند را تعیین نمایید.

از پیام های vmkernel.log لازم است تا Port identifier و World number ماشین مجازی تان را شناسایی کنید. مثلا:

cpuN:12345)etherswitch: L2Sec_EnforcePortCompliance: 0x5000003: peer not allowed promiscuous, revoking setting

در مثال فوق 12345 همان world number و عدد هگزادسیمال 0x5000003 نیز بعنوان port identifier محسوب می شود.

در گام بعدی پورت نامبر هگزادسیمال را به ده دهی تبدیل کنید. مثلا مبنای ده دهی عدد فوق 83886083 است.

حال وقت آن رسیده تا با داشتن پورت نامبر ده دهی با یکی از متدهای زیر آنرا به یک ماشین مجازی نگاشت کنید:

nested-esxi-prom-new-01

شناسایی یک ماشین مجازی با port identifier با استفاده از PowerCLI

خط فرمان powerCLI را اجرا کنید و به هاست فیزیکی ESXi که لاگ های آنرا بررسی کرده اید متصل شوید.

Connect-VIServer -Server <ESX Host name Or IP Address>

بعد از وارد شدن با حساب کاربری root می توانید عملیات واکشی شمارشگرهای عملکرد هاست را با esxtop مورد بررسی قرار دهید.

Get-ESXTOP -CounterName NetPort | select PortID,WorldLeader,ClientName | Where { $_.PortID -eq “83886082” } | ft -AutoSize

خروجی شبیه مورد زیر نمایش داده خواهد شد:

PortID WorldLeader ClientName
—— ———– ———-
83886082 12344 Virtual Machine Name

نام ماشین مجازی و world number آن قابل دسترس می باشد. حال می توانید ماشین مجازی موردنظر را در vSphere Client یافته و آنرا مورد جستجو و کنکاش قرار دهید.

شناسایی یک ماشین مجازی با port identifier با استفاده از resxtop

خط فرمان remote resxtop یک ابزار مانیتورینگ و مشاهده کارآیی و عملکرد سیستم می باشد که در vSphere CLI برای ماشین های لینوکسی ارائه شده است.

خط فرمان vCLI را اجرا کنید.

یک متغیر شامل port identifier با استفاده از یک فرمان مشابه زیر تعیین کنید.

PORTID=”83886082″

سپس فرمان زیر را اجرا کنید:

resxtop –server <ESXHostnameOrIPAddress> –username <Username> -n 1 -b | tr ‘,’ ‘\n’ | grep -o “Network Port(.*:$PORTID:.*)” | sort -u

بایستی خروجی مشابه زیر را مشاهده کنید:

Network Port (vSwitchName:83886082:12344:Virtual Machine Name)

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

شناسایی یک ماشین مجازی با port identifier با استفاده از esxtop

با حساب کاربری root و از طریق putty به هاست فیزیکی تان متصل شوید. یک متغیر بصورت زیر و در مبنای ده دهی تعیین کنید:

PORTID=”83886082″

دستور زیر را اجرا کنید:

esxtop -n 1 -b | tr ‘,’ ‘\n’ | grep -o ‘Network Port(.*:$PORTID:.*) ‘ | sort -u

بایستی خروجی مشابه زیر را ببینید که بر اساس آن نام ماشین مجازی قابل تشخیص می باشد:

Network Port(vSwitchName:83886082:12344:Virtual Machine Name)

شناسایی یک ماشین مجازی با port identifier با استفاده از esxcfg-info

ابتدا لازم است با putty به هاست فیزیکی تان متصل و از دستور esxcfg جهت جستجو و کسب اطلاعات استفاده کنید.

در گام اول دستور زیر را اجرا کنید:

esxcfg-info –network | grep -A 3 “Port Id.*83886082”

خروجی مشابه زیر را مشاهده می کنید:

|—-Port Id……….83886082
|—-World Leader…..12344
|—-Client Name……Virtual Machine Name

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

منبع: blog.koushki

در صورتی که مطالب سایت برای شما مفید بوده است، می توانید از طریق لینک زیر از سایت حمایت کنید.

image_pdfدانلود نسخه PDF

ارسال یک نظر

آدرس ایمیل شما منتشر نخواهد شد.

This site uses Akismet to reduce spam. Learn how your comment data is processed.