🧑‍💻Cyber.vision🧑‍💻
556 subscribers
199 photos
13 videos
20 files
150 links
Python tips and tricks
The Good, Bad and the Ugly
متخصص امنیت شبکه های کنترل صنعتی
👨‍💻این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی این چند سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)
https://t.iss.one/Hacker0x01
Download Telegram
#Solarwinds #Platform #Deserializtion #Bugs
همانطور که میدانید یکی از اصلی ترین نرم افزار های SolarWinds محصول مدیریت و نظارت بر شبکه است که طی سالهای اخیر چند آسیب پذیری روز صفر داشته است.

پروتکلی در SolarWinds استفاده میشود با نام RabbitMQ که بر مبنای TCP کار کرده و در تصویر بالا پکت ضبط شده آن را مشاهده میکنید.

این پروتکل بر روی پورت 5671 کار کرده و میتواند پیام های AMQP ارسال نماید، این پیام چند نوع و روش ارسال داده دارد.

که در نوع Content header (2) میتواند نوع داده Serialize ارسال کند و در Properties تصویر دوم مشخص میشود که دریافت کننده مقدار کجاست.

محقق با بررسی دقیق و مهندسی معکوس کد منبع، متوجه شده که در جریان ردیابی کد، هیچ کنترلی بر روی مقادیر Serialize نبوده و مقدار Properties در پیام، ظرفیت Deserialize شدن دارند.

در تصویر بالا تابع HandleBasicDeliver پیام در پروتکل را دریافت میکند و در موقعیت 3 اقدام به برگشت دادن مقدار به تابع میکند.

در تصویر دوم، Consume رو داریم که یک Method از IDisposable است و مقدار پیام دریافتی در Body را Deserialize میکند و عدم کنترل موجب اجرای کد شده است.