ᎬᏡᏢᏆᏒᎬ ᎢᎬᎪᎷ
6.5K subscribers
147 photos
46 videos
97 files
198 links
Dear @durov
In this channel there isn't any content that violates copyright laws.
Contents of this channel are for helping people.
Please ignore traitors reports.
Thank yo

❗️ هر استفاده نادرست به عهده خود شخص میباشد ❗️
Download Telegram
🔤شل کد (shellcode)چیه و چطوری اجرا میشه ؟

یه قطعه کوچیک از کد باینریه که معمولا توسط هکرها نوشته میشه تا کاری خاص توی سیستم انجام بده
مثلا باز کردن یه shell اجرای یه دستور یا ارتباط با سرور خودشون
به زبون ساده shellcode مثل یه برنامه خیلی کوچیکه که قراره مستقیم داخل حافظه سیستم اجرا بشه بدون اینکه توی فایل ذخیره شده باشه

معمولا با زبان اسمبلی نوشته میشه چون باید خیلی کوچیک و دقیق باشه
بعدش کامپایل میشه و خروجیش یه سری بایت باینریه که میشه اونو داخل یه فایل یا یه بافر ریخت و اجراش کرد

مثال خیلی ساده از یه shellcode روی ویندوز
یه MessageBox نشون میده
این کد توی حافظه قرار می‌گیره و یه تابع مثل CreateThread تابع خودش اجراش می‌کنه

حالا چطوری اجرا میشه

1 اول حافظه‌ای رزرو میشه مثلا با VirtualAlloc یا malloc

2 shellcode اونجا کپی میشه

3 مجوز اجرای کد به اون حافظه داده میشه مثلا با VirtualProtect

4 آدرس اون حافظه به عنوان تابع اجرا میشه

یعنی سیستم فکر میکنه یه تابع عادی صدا زده شده ولی در واقع داره کدی رو اجرا می‌کنه که از بیرون اومده

به این روش میگن code injection یا memory execution
خیلی از آنتی ویروس‌ها فقط فایل‌ها رو اسکن می‌کنن نه حافظه رو برای همین این تکنیک stealthy حساب میشه

یه نکته مهم اینکه shellcode باید مستقل باشه
یعنی نباید به آدرس‌های ثابت یا تابع‌های خاص سیستم وابسته باشه برای همین معمولا از تکنیک‌هایی مثل dynamic API resolving استفاده میکنن
یعنی خودش توی حافظه اسم تابع رو پیدا میکنه و آدرسشو resolve میکنه

⚜️ @Expire_Security ⚜️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
ᎬᏡᏢᏆᏒᎬ ᎢᎬᎪᎷ
🔤شل کد (shellcode)چیه و چطوری اجرا میشه ؟ یه قطعه کوچیک از کد باینریه که معمولا توسط هکرها نوشته میشه تا کاری خاص توی سیستم انجام بده مثلا باز کردن یه shell اجرای یه دستور یا ارتباط با سرور خودشون به زبون ساده shellcode مثل یه برنامه خیلی کوچیکه که قراره…
VirtualAlloc:
تابع ویندوزه که یه تیکه حافظه خالی برات رزرو میکنه
موقع اجرای shellcode بهش نیاز داری

malloc:
تو زبون C استفاده میشه برای رزرو حافظه
نسبت به VirtualAlloc سطح پایین‌تره

VirtualProtect:
تابعی که مجوزهای دسترسی یه بخش از حافظه رو تغییر میده
مثلا یه بافر معمولی رو تبدیل میکنه به حافظه‌ای که میشه توش کد اجرا کرد

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

code injection:
تزریق کد به یه برنامه دیگه یا حافظه
یعنی یه کد مخفی یا shellcode می‌فرستی وسط اجرای یه برنامه تا اون کد اجرا شه

memory execution:
وقتی یه کد مستقیم از حافظه اجرا میشه بدون اینکه توی دیسک باشه
روشی محبوب برای دور زدن آنتی ویروس‌ها

dynamic API resolving:
تکنیکی که shellcode باهاش خودش تو حافظه دنبال تابع‌های سیستم میگرده
یعنی لازم نیست آدرس تابع‌ها از قبل مشخص باشه خودش پیداشون میکنه

stealthy:
یعنی مخفی و سخت برای شناسایی
shellcode اگه خوب نوشته شده باشه خیلی stealthy حساب میشه چون راحت نمی‌تونن بگیرنش

memory execution:
وقتی یه کد مستقیم از حافظه اجرا میشه بدون اینکه توی دیسک باشه
⚜️ @Expire_Security ⚜️
👍3
🌟 جزوه کاربردی و فارسی Powershell ویژه تست و نفوذ

⚜️ @Expire_Security ⚜️
PE(Portable Executable)

ساختار فایل PE که فایل‌های اجرایی ویندوز مثل exe و dll ازش استفاده می‌کنن مثل یه کیک چندلایه‌ست که هر لایه یه سری اطلاعات خاص برای سیستم‌عامله

1. IMAGE_DOS_HEADER
اولین بخش فایل
با دو حرف MZ شروع میشه
یه فیلد مهم به اسم e_lfanew داره که میگه از کجا باید دنبال اطلاعات جدیدتر گشت

2. PE Signature
نشون میده فایل واقعا یه فایل PE هست
چهار بایت خاصه PE و دو تا صفر تهش
ویندوز با این می‌فهمه فایل معتبره

3. IMAGE_FILE_HEADER
یه سری مشخصات کلی فایل
سیستم هدف سی و دو بیتی یا شصت و چهار بیتی
چند تا سکشن داره
کی ساخته شده

4. IMAGE_OPTIONAL_HEADER
با اینکه اسمش optional یا اختیاریه ولی اجباریه
نقطه شروع برنامه رو مشخص می‌کنه
کجا تو حافظه لود بشه
اطلاعات استک و هیپ
و یه سری جدول مهم مثل Import و Resource

5. IMAGE_SECTION_HEADER
برای هر سکشن مثل text و data و rdata
اسم سکشن
آدرس شروع تو فایل و حافظه
اندازه
مجوزهای دسترسی مثل خوندن نوشتن اجرا


6. بخش‌های خاص یا Data Directories
Import Table فایل‌هایی که برنامه نیاز داره مثل DLL
Export Table توابعی که میشه از بیرون صدا زد
Relocation Table اگه آدرس‌ها نیاز به جابجایی داشته باشه

نمودار ساده ساختار
MZ Header
PE Signature
File Header
Optional Header
DataDirectories
Section Headers
Raw Section Data

⚜️ @Expire_Security ⚜️
👍2🤡2
Advanced Bug Hunting Toolkit

https://lostsec.xyz/

⚜️ @Expire_Security ⚜️
تحلیل جاوااسکریپت برای تست نفوذگران (JavaScript Analysis for Pentesters)

در دنیای مدرن وب، جاوااسکریپت فقط یه زبان برای افکت‌های ظاهری نیست؛ بلکه مرکز منطق اپلیکیشن‌های سمت کاربر شده. حالا که فریم‌ورک‌هایی مثل React، Vue و Angular حجم زیادی از منطق کسب‌وکار رو به کلاینت منتقل کردن، دیگه بدون بررسی دقیق جاوااسکریپت نمی‌تونیم تست نفوذ درست‌وحسابی انجام بدیم.

یه مقاله فوق‌العاده از Konstantin توی سایت kpwn.de منتشر شده که حاصل ۵ سال تجربه‌ش تو زمینه تست نفوذه. از شناسایی کلیدهای مخفی و endpointها گرفته تا بررسی توابع خطرناک، بای‌پس کردن Obfuscation، تشخیص فشرده‌سازی کد و کلی تکنیک جذاب دیگه، همه‌چی رو تو این مقاله پیدا می‌کنید.

اگه باگ‌هانتر یا Pentester هستید، این مقاله می‌تونه تبدیل به یکی از منابع
مرجع‌تون بشه

https://kpwn.de/2023/05/javascript-analysis-for-pentesters/

⚜️ @Expire_Security ⚜️
windows internals

ویندوز اینترنالز یعنی چی اصلا
یعنی اون چیزایی که زیر پوسته سیستم عامل ویندوز هستن اون چیزایی که کاربرا نمیبینن ولی باعث میشن همه چی کار کنه
اگه بخوای یه برنامه بنویسی که عمیق با سیستم کار کنه یا بخوای بفهمی چی باعث میشه ویندوز درست کار نکنه یا بخوای دیباگ کنی یا حتی اکسپلویت بنویسی باید ویندوز اینترنالز رو بلد باشی

اینترنالز یعنی درون
یعنی بریم ببینیم ویندوز واقعا چطوری ساخته شده از چی تشکیل شده و چجوری با سخت افزار حرف میزنه چجوری برنامه ها رو اجرا میکنه چجوری حافظه رو مدیریت میکنه چجوری امنیت رو کنترل میکنه و کلی چیز دیگه

اصلا چرا باید بدونی اینا رو
اگه فقط برنامه معمولی مینویسی شاید مهم نباشه ولی اگه میخوای بفهمی وقتی یه برنامه کرش میکنه مشکلش از کجاست یا میخوای یه ابزار حرفه‌ای بسازی یا بخوای بفهمی یه ویروس چیکار کرده باید بفهمی زیر کاپوت ویندوز چی داره میگذره
ویندوز یه سیستم عامله که از لایه‌های مختلف تشکیل شده یه لایه برای رابط کاربری یه لایه برای مدیریت فایل‌ها یه لایه برای حافظه یه لایه برای امنیت و پایین‌ترین لایه هم هسته سیستم یا کرنله

کرنل مغز سیستم عامله هر کاری که سخت و پیچیده باشه میندازه گردن کرنل مثلا وقتی یه برنامه میخواد از حافظه استفاده کنه یا میخواد یه فایل باز کنه یا یه ترد بسازه همه اینا رو از طریق یه سری API به کرنل میگه و کرنل انجامش میده

تو این سری مقالات قراره این لایه‌ها و اجزا رو یکی یکی باز کنیم ببینیم هر کدوم چیکار میکنن و چجوری کار میکنن

مثلا وقتی یه برنامه رو باز میکنی دقیقا چه اتفاقی میفته
وقتی یه فایل رو مینویسی کجا میره
وقتی سیستم هنگ میکنه دلیلش چی میتونه باشه
وقتی یه درایور نصب میشه چطوری با سیستم یکی میشه
#windows_internals
#part_0
⚜️ @Expire_Security ⚜️
👍1
ᎬᏡᏢᏆᏒᎬ ᎢᎬᎪᎷ
windows internals ویندوز اینترنالز یعنی چی اصلا یعنی اون چیزایی که زیر پوسته سیستم عامل ویندوز هستن اون چیزایی که کاربرا نمیبینن ولی باعث میشن همه چی کار کنه اگه بخوای یه برنامه بنویسی که عمیق با سیستم کار کنه یا بخوای بفهمی چی باعث میشه ویندوز درست کار نکنه…
اول از همه باید بدونی که ویندوز مثل یه ساختمونه که از چند طبقه تشکیل شده هر طبقه وظیفه خاصی داره بعضی طبقه‌ها مخصوص کاربرا هستن بعضی‌ها مخصوص خود سیستم

اگه بخوای ساده بگی معماری ویندوز دو بخش اصلی داره
یکی user mode
یکی kernel mode
یعنی یه سری چیزا فقط تو حالت کاربر اجرا میشن یه سری چیزا تو حالت کرنل که دسترسی کامل به همه چی دارن

حالت کاربر همون چیزیه که ما به عنوان کاربر باهاش سروکار داریم مثلا برنامه‌هایی مثل ورد مرورگر فایل اکسپلورر یا حتی بازی‌ها اینا همه تو user mode اجرا میشن و نمیتونن مستقیم با سخت‌افزار یا حافظه فیزیکی حرف بزنن

حالت کرنل اونجاست که کنترل واقعی سیستم دستشه
هر چیزی که بخواد به سخت‌افزار دسترسی داشته باشه یا حافظه سیستم رو مدیریت کنه یا زمان‌بندی انجام بده باید تو kernel mode اجرا بشه
برنامه‌های کاربر اگه بخوان کاری کنن که نیاز به دسترسی سطح پایین داره باید درخواستش رو بدن به کرنل و کرنل تصمیم میگیره اجراش بکنه یا نه

حالا بیایم یه نقشه کلی از معماری ویندوز ترسیم کنیم
از بالا به پایین اینطوریه

۱. برنامه‌های کاربر (User Applications)
همه چیزایی که تو دسکتاپ میبینی یا اجرا میکنی اینجاست مثل کروم فتوشاپ cmd فایل اکسپلورر
اینا مستقیم با سخت‌افزار کار نمیکنن بلکه از API های سیستم استفاده میکنن

۲. زیرسیستم‌های محیطی (Environment Subsystems)
یه لایه واسطه هست که بین برنامه‌های کاربر و سیستم عامل قرار می‌گیره مثلا win32 subsystem که برنامه‌های معمولی ویندوز باهاش حرف میزنن
اگه یه برنامه مخصوص POSIX یا OS/2 باشه میره سراغ زیرسیستم مربوط به خودش (البته اینا دیگه کم‌کاربردن)

۳. Executive Services (کرنل سطح بالا)
اینجا جاییه که اجزای اصلی سیستم کار میکنن مثل
memory manager
process manager
I/O manager
object manager
security reference monitor
این سرویسا همه تو kernel mode اجرا میشن و کارای واقعی رو انجام میدن

۴. کرنل (Kernel)
هسته واقعی سیستم اینجاست که چیزایی مثل زمان‌بندی تردها interrupt handling و synchronization رو انجام میده
یعنی کرنل وسط این پازله همه‌چی از اینجا کنترل میشه

۵. HAL (Hardware Abstraction Layer)
یه لایه هست بین کرنل و سخت‌افزار
کارش اینه که اجازه بده ویندوز رو رو سخت‌افزارهای مختلف اجرا کنی بدون اینکه لازم باشه برنامه‌ها بدونن چی دقیقا پشت صحنه هست
مثلا چه مدل CPU چه مدل مادربرد چه چیپست
HAL مثل یه مترجم بین کرنل و سخت‌افزاره

۶. درایورها (Drivers)
اینا یه جور نرم‌افزار هستن که به سخت‌افزار میگن چیکار کن
مثلا درایور کارت گرافیک درایور موس درایور شبکه
درایورها هم تو حالت کرنل اجرا میشن چون باید بتونن با سخت‌افزار مستقیما در ارتباط باشن

پس اگه بخوای خلاصه کنی ویندوز از بالا تا پایین اینطوریه
برنامه کاربر ← زیرسیستم ← Executive ← کرنل ← HAL ← سخت‌افزار

هر وقت یه برنامه اجرا میشه یا یه فایل باز میکنی یا یه کاربر لاگین میکنه این مسیر از بالا تا پایین و برعکس طی میشه
همه چی مثل یه سیستم چند طبقه کار میکنه

#windows_internals
#part_1
⚜️ @Expire_Security ⚜️
👍2