#Json_RCE on #NC_Shell
در برخی آسیب پذیری هایی که بر بستر application/json گاها دیده شده که پارامترهایی در خصوص خط فرمان هم تعریف شده که خب اگر درست فیلتر نشده باشه آسیب پذیری RCE رخ خواهد داد, اما نکته جذاب این پست کجاست؟ آنجا که ما با استفاده از این سبک RCE ها نشان میدیم که چگونه میشود دسترسی NC را حتی در سرورهایی که بسیار محدود شدن حاصل کرد,

قدم اول دریافت BackConnect پایتونی است که من در تصویر پست آدرش رو مشخص کردم دوم تعریف java.lang.Runtime در فایلی به نام r.vm که در Request تعریف شده, قراره از روی پورت 2121 خوانده بشه, و به واسطه خواندن exec فعال برای خواندن پارامتر آسیب پذیر command میشه,که دستور bash از روی TCP فایل back.py را از پورت Ngrok دانلود و در ادامه به اجرا در میاره, اسکریپت back.py به ما دسترسی bin/sh/ رو به پورت دوم NC ما ارسال خواهد کرد که روی 4444 قرار داره, اما یک نکته پارامتر _template مقدار r.vm مارو دریافت و cache میکته, نکته بعدی برای لیست کردن سرویس FTP آز کتابخونه pyftpdlib که استفاده شده, نکته آخر بجای wget از خود TCP برای دریافت فایل back.py استفاده شده...

@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