#Python #Input #Vulnerability
در سال ۲۰۱۷ یک محقق آسیب پذیری رو در تابع ()input زبان پایتون ۲ کشف کرد که نکات جالبی رو به همراه خودش داره, اول اینکه منشاء این آسیب پذیری این است که تابع ()input از ماژول builtin استفاده میکند برای اجرای خود و همچنین مقادیر تابع ()input درون تابع ()eval قرار میگیرد در نتیجه مقادیر ورودی اگر بصورت کد پایتون باشند اجرا خواهند شد,

اما نکته ای که این آسیب پذیری داره که در خصوص اون این پست رو زدیم اینه که این آسیب پذیری میتونه در حالاتی پازل تکمیل کننده ای از یک حمله سایبری عظیم بشه, تصور کنید این اسکریپت در یک سیستم هدف Echo بشه و بعد با ماژول هایی مانند pyinstaller تبدیل به یک فایل فرمت PE بشه و یک argv برایش تعریف شده باشه, اینجاس که میتونه برای ما مثل یک Persistence مخفی در سیستم عامل قربانی عمل کنه و جزئی از پازل Lateral Movement حمله #APT ما باشه...

https://medium.com/@abdelazimmohmmed/python-input-vulnerability-30b0bfea22c9
https://docs.python.org/2/library/functions.html
@Unk9vvN
Unk9vvN
#Python #Input #Vulnerability در سال ۲۰۱۷ یک محقق آسیب پذیری رو در تابع ()input زبان پایتون ۲ کشف کرد که نکات جالبی رو به همراه خودش داره, اول اینکه منشاء این آسیب پذیری این است که تابع ()input از ماژول builtin استفاده میکند برای اجرای خود و همچنین مقادیر…
#Input_Function Vulnerability Documents
برخی عزیزان باور غلطی دارند مبنی بر اینکه زبان پایتون دارای باگ و آسیب پذیری در توابع جامع خود نیست و اگر شخصی مدعی این مسئله بشود او بیسواد است, برای پاسخ به این ادعا میبایست نگاهی به دامنه زیر از وبسایت پایتون انداخت که بیش از ۴۰ هزار باگ و برخی آسیب پذیری ها را در توابع مختلف زبان پایتون ثبت کرده است,

https://bugs.python.org

اما مستندات مربوط به آسیب پذیر تلقی شدن تابع ()input در زبان پایتون ۲ و به سبب اون حذف شدنش از پایتون ۳ و جایگزینی تابع ()raw_input بجای تابع ()input ,در کجاست؟ وبسایت معروف و معتبر geeksforgeeks که در تصویر بالایی اشاره داره به همین موضوع گواه ادعا محقق مربوطه هستش که بهش اشاره شده,وبسایت geeksforgeeks مقاله ای کامل در این خصوص زده و تشریح کرده

https://www.geeksforgeeks.org/vulnerability-input-function-python-2-x/

با صراحت تمام کلمه Vulnerability رو برای تابع ()input پایتون ۲ استفاده شده, همچنین در وبسایت های برنامه نویسان دیگر هم این گزارش آمده.

https://help.semmle.com/wiki/display/PYTHON/%27input%27+function+used

@Unk9vvN
#brk & #sbrk #Memory_Management #System_Calls #Unix
شاید تا به حال در خصوص توابع زبان سی و سی پلاس پلاس که در خصوص رزرو حافظه #Heap استفاده میشوند رو شنیده باشید, اما توابع سیستمی که Data Segment هارو مدیریت میکنند چطور؟

حافظه پویا همواره نیازمند اینه که تغییر سایز بده و اشاره گر های اون آزاد و رزور بشه, به همین منظور میبایست در یک Segment که مختص حافظه #Heap هستش آدرس دهی ها بست و گُسست پیدا کنند, از همین روی تابع ()brk و ()sbrk مامور تعیین آدرس ابتدا و انتهای حافظه Heap رو دارا هستند,

در تصویر پست یک کد سی بیس میبینید که با استفاده از یک حلقه for اقدام به رزرو حافظه #Heap پرداخته و دوباره با یک حلقه for دیگری حافظه رزوی رو آزاد کرده و دوباره اقدام به رزرو حافظه میکنه,

تنیجه در تصویر بعدی بسیار جالبه آدرس های اولین رزرو با دومین رزرو یکی بوده و بازه آدرس Data Segment هم مشخص هستش, ناگفته نمونه که تابع ()brk بصورت پیشفرض با طول آدرس 1000 تایی هر Segment رو میسازه...

https://en.wikipedia.org/wiki/Sbrk
https://man7.org/linux/man-pages/man2/brk.2.html
@Unk9vvN
Media is too big
VIEW IN TELEGRAM
#ANGRYPUPPY #BloodHound Attack Automation in #Cobalt_Strike
همونطور که میدونید یک Tools بسیار محبوب در حوزه استخراج اطلاعات یک #ActiveDirectory فعال وجود داره به اسم #BloodHound که در این دمو توضیح داده میشه که با استفاده از یک Tools دیگه امکان اینو پیدا میکنیم که با اطلاعاتی که BloodHound برای ما استخراج میکنه از کاربران اون DMZ عملیات Pivot زدن به اونهارو راحت تر کرده و به نوعی #Lateral_Movement بین سیستمی انجام دهیم,

اما این Lateral_Movement بر بستر کدامین #COM یا #DCOM_Object ها پیاده سازی میشه؟ همونطور که سازنده محصول #ANGRYPUPPY توضیح داده این ابزار با استفاده از اطلاعاتی که BloodHound در اختیارش قرار میده میتونه بر روی psexec, psexec_psh, wmi, winrm پیلود اجرا کرده و دسترسی سیستم عامل Parent رو برای ما حاصل کنه...

https://github.com/vysecurity/ANGRYPUPPY
https://github.com/BloodHoundAD/BloodHound
@Unk9vvN
#JIT_Engine Exploitation
بعد از تجربه موفق اکسپلویت کردن آسیب پذیری های موتورهای تفسیری زبان JavaScript و VBScript و PHP بر روی مرورگرها و موتور تفسیری ZendEngine مربوط به زبان PHP , آیا میتونیم در آینده شاهد اکسپلویت شدن موتوهای تفسیری #JIT_Base زبان های دیگر هم باشیم؟

آیا دنیا قراره به این سمت هم بره؟ که مثلا از کامپایلرهای Intermediate (CLR) در زبان های NET. و مثلا Dalvik Virtual Machine اندروید کشف آسیب پذیری های مربوط به حافظه بشه ؟

در پروژه کشف آسیب پذیری از توابعی مانند Unserialize در زبان PHP ما شاهد اکسپلویت شدنش بر پایه آسیب پذیری هایی مانند Use_After_Free بودیم,

همینطور اکسپلویت شدن Engine های تفسیری V8 مربوط به زبان VB , پس میشه اینطور برداشت کرد که مفسر های دیگه هم دارای آسیب پذیری های حافظه باشند,

https://github.com/80vul/phpcodz
https://halbecaf.com/2017/05/24/exploiting-a-v8-oob-write/

در آینده منتظر اکسپلویت شدن #DVM با طراحی Bytecode بیس یک اپ اندرویدی apk باشید, همینطور از خانواده NET. ...

@Unk9vvN
#Software Assurance Maturity Model
به تازگی #OWASP از یک پروژه ای با نام #SAMM رو نمایی کرده که استراتژی اندازه گیری وضعیت امنیتی نرم افزارها برای سازمان هارو مشخص میکنه,

این استراتژی بر مبنای یک نقشه راه ترسیم میشه که از مرحله ارزیابی , طراحی , توسعه و استقرار نرم افزار آغاز شده و به آموزش طراحی امن برنامه و شبیه سازی حملات سایبری خواهد رسید,

که در شبیه سازی سایبری پیکربندی هایی در خصوص برهم زدن پارامترهای موفق یک حمله تاکید خواهد نمود و نهایتا بعد از مرحله Secure Coding یک پروسه Review بصورت WhiteBox انجام داده و نهایتا انجام عملیات Penetration Testing پیاده خواهد شد,

در اصل پروژه #SAMM تاکید به پیاده سازی سیاست های استاندارد و اصولی در بحث امن سازی یک نرم افزار متمرکز میشویم...

https://github.com/OWASP/samm
https://owasp.org/www-project-samm/
@Unk9vvN
#Automated Threats WebApps ( Account Aggregation )
اگر به Handbook مجموعه OWASP نگاهی بیندازید بیست و یک مرحله در خصوص الزامات تکنیکی در بحث ساخت شکارجی آسیب پذیری که بصورت اتوماتیک کار میکنند صحبت کرده,

من یک نمونه از این تکنیک هارو در تصویر پست بر پایه یک اسکریپت بش پیاده سازی کردم, که بصورت اتوماتیک Request مربوط به Authentication صفحه Login پلتفرم آزمایشی #DVWA زده و بعد از لاگین شدن مقدار Autorize شده در SESSION رو در فایلی با نام unk9.vvn ذخیره کرده و با استفاده از awk مقدار SESSION برای ماژول متاسپلویت متغیر میشه,

البته توجه داشته باشید که صفحه لاگین DVWA مجهز به مکانیزم Double Submit Cookie (که یک نوع Mitigation در برابر درخواست های جعلی است) هستش, در نتیجه یک Request هم با Curl برای دریافت کد Nonce زده و مقدار اون رو هم برای Request مربوط به Login استفاده خواهیم کرد,

در بحث طراحی محصولات هوشمند برای شکار آسیب پذیری در هر شرایط و پلتفرمی رعایت این بیست و یک نکته تکنیکی بسیار کمک کننده و حیاتیست...

https://owasp.org/www-project-automated-threats-to-web-applications/
@Unk9vvN
#ModSecurity for Debian & Kali ( Apache2 )
یک اسکریپت طراحی شده برای نصب خودکار فایروال اپلیکیشن متن باز Mod Security برای وبسرور Apache2 در سیستم عامل های Debian و Ubuntu...

همچنین بصورت خودکار محیط آزمایشگاهی DVWA هم نصب شده و عملکرد Mod Security رو در برابر پیلود های مختلف از جمله Metasploit تست کرده و در فایل Log مربوط به وبسرور Apache2 به شما به نمایش خواهد گذاشت,

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

# Open Terminal
unk9vvn@avi:~$ wget https://gist.githubusercontent.com/a9v8i/9033fb57fdb7329db9e254c24c228cdb/raw/ace2cd4a101dda476108d00a84c3c92f6367489a/ModSecurity-DEB.sh;sudo ./ModSecurity-DEB.sh


https://gist.github.com/a9v8i/9033fb57fdb7329db9e254c24c228cdb
@Unk9vvN
#SMBGhost Analysis (CVE-2020-0796)
اینبار بر روی الگوریتم Compression نسخه 3.1.1 آسیب پذیری ای بروز داده که از نوع Integer Overflow هستش, این آسیب پذیری بر روی نسخه های 1903 و 1909 ویندوز 10 قابلیت اکسپلویت کردن داره و بصورت unauthenticated عمل میکنه,

آسیب پذیری در درایور srv2.sys قرار داره و اگر به تصویر 1 نگاهی کنید ما در پروتکل دو پارامتر با نام های OriginalCompressedSegmentSize و Offset/Length داریم که گزینه اول برای اعلام طول سگمنت کمپرس شده هستش و دومی اندازه داده های فشرده نشده رو نشان میده, هر دو این پارامترها 32bit بوده و تحت کنترل یک هکر میتونه قرار بگیره,

حالا اگر به تصویر 2 نگاه کنید سمت چپ کد Reverse شده تابع مربوطه رو میبینید که قسمت آسیب پذیر مشخص شده, همونطور که میدونید DataType های از نوع integer که بصورت unsigned هستند بازه مثبت 65,535 بایت داده عددی دریافت میکنند, خب آسیب پذیری اونجایست که تابع SrvNetAllocateBuffer که یک اشاره گر به قسمتی از حافظه هستش مقادیر ورودیش کنترل نشده و موجب ورود داده عددی بالای مقدار تعیین شده ی DataType بوده و موجب سر ریز عددی خواهد شد..

@Unk9vvN
#Net_Framework Compiler (#MSBuild)
استفاده از کامپایلر NET. در خصوص دور زدن EDR ها بسیار کارآمد بوده و همواره استفاده میشه,

استفاده از تابع Unregister در زبان #C این امکان رو میده که با استفاده از پارسرUnregisterAssembly اجرا کرد, این پارسر در خصوص ویژوال استودیو طراحی شده اما میتونه به نفع هکر نقش ایفا کنه,

همونطور که در تصویر میبینید اگر یک سورس کد با تابع نام برده شده ساخته بشه که مامور اجرای یک ماشین حساب هستش, میتونه با استفاده از MSBuild کامپایل شده و DLL خروجی گرفته شده با استفاده از پارسر مربوط به ویژوال استودیو به دست خود کامپایلر صدا و اجرا بشه,

زمانی که در یک سیستم عامل سورس کد خامی ساخته میشه حساسیتی برای Detection ها نخواهد داشت اما زمانی که همان سورس کد کامپایل و اجرا میشه میتونه موجب رخداد یک دسترسی بشه,

هکر میتونه Stage های بعدی خودش رو به این صورت اجرا کنه و Stage های ابتدایی خودش رو صرفاً یک Echo قرار بده بدین ترتیب رفتار شناسی حمله بسیار دشوار خواهد شد...

https://t.me/Unk9vvN/1126
@Unk9vvN
Media is too big
VIEW IN TELEGRAM
#Machine_Learning #Cyberwar
ایلان ماسک زمانی گفته بود: (حرف های من یادتان باشد؛ هوش مصنوعی از بمب های اتمی بسیار خطرناک تر است), با دیدن فیلم فوق به عمق عقیده ایلان ماسک پی خواهید برد.

پیشرفت هوش مصنوعی و تکنیک های بهره برداری از Dataset ها میتواند در ابعاد نظامی و در خصوص ربات های سرباز نیز استفاده شود و در صورت موفقیت هوش مصنوعی در این عرصه، جنگ آیندگان میتواند جنگ ربات ها باشد.

@Unk9vvN