MAC Address چیه و چرا توی لایه دوم قرار داره؟
برای اینکه بفهمیم MAC چی هست، اول باید یه مرور کوتاه روی مدل OSI داشته باشیم:
لایه ۱ (Physical): این لایه فقط وظیفه داره بیتها (۰ و ۱) رو از طریق سیم، فیبر یا امواج رادیویی منتقل کنه. اینجا هیچ آدرسدهی وجود نداره.
لایه ۲ (Data Link): اینجاست که بیتها رو تبدیل به فریم (Frame) میکنه و مشخص میکنه این فریم باید به کدوم دستگاه روی همون شبکهی محلی (LAN) بره.
اینجا ما به چیزی به اسم آدرس سختافزاری (Hardware Address) یا همون MAC Address نیاز داریم.
MAC Address دقیقاً چیه؟
یک آدرس منحصربهفرد سختافزاریه که روی کارت شبکه (NIC) دستگاهها مثل لپتاپ، موبایل، پرینتر، روتر و... توسط سازنده (Vendor) ثبت میشه.
معمولاً به شکل ۶ جفت عدد هگزادسیمال نمایش داده میشه، مثل:
00:1A:2B:3C:4D:5E
در هدر هر فریم اترنت دو تا MAC داریم:
Source MAC → فرستنده
Destination MAC → گیرنده
به همین دلیل میگیم MAC در لایه دوم قرار داره، چون بدون اون دستگاهها داخل یک LAN نمیتونن همدیگه رو پیدا کنن.
چطور MAC رو ببینیم؟
توی ویندوز کافیه دستور زیر رو توی CMD وارد کنید:
ipconfig /all
اونجا قسمت Physical Address رو میبینید که همون MAC Address هست.
ساختار و طول MAC Address
طول MAC Address دقیقاً ۴۸ بیت (۶ بایت)ه.
هر بایت ۸ بیت هست → در مجموع ۶×۸ = ۴۸ بیت.
در نمایش هگزادسیمال، ۱۲ رقم (۶ جفت) داریم.
مثال:
D4-F5-47-8C-1A-2B
۲۴ بیت اول (OUI) = مشخصکنندهی شرکت سازنده (مثلاً Intel، Cisco، Apple).
۲۴ بیت دوم = شماره سریال کارت شبکه.
برای اینکه بفهمیم MAC چی هست، اول باید یه مرور کوتاه روی مدل OSI داشته باشیم:
لایه ۱ (Physical): این لایه فقط وظیفه داره بیتها (۰ و ۱) رو از طریق سیم، فیبر یا امواج رادیویی منتقل کنه. اینجا هیچ آدرسدهی وجود نداره.
لایه ۲ (Data Link): اینجاست که بیتها رو تبدیل به فریم (Frame) میکنه و مشخص میکنه این فریم باید به کدوم دستگاه روی همون شبکهی محلی (LAN) بره.
اینجا ما به چیزی به اسم آدرس سختافزاری (Hardware Address) یا همون MAC Address نیاز داریم.
MAC Address دقیقاً چیه؟
یک آدرس منحصربهفرد سختافزاریه که روی کارت شبکه (NIC) دستگاهها مثل لپتاپ، موبایل، پرینتر، روتر و... توسط سازنده (Vendor) ثبت میشه.
معمولاً به شکل ۶ جفت عدد هگزادسیمال نمایش داده میشه، مثل:
00:1A:2B:3C:4D:5E
در هدر هر فریم اترنت دو تا MAC داریم:
Source MAC → فرستنده
Destination MAC → گیرنده
به همین دلیل میگیم MAC در لایه دوم قرار داره، چون بدون اون دستگاهها داخل یک LAN نمیتونن همدیگه رو پیدا کنن.
چطور MAC رو ببینیم؟
توی ویندوز کافیه دستور زیر رو توی CMD وارد کنید:
ipconfig /all
اونجا قسمت Physical Address رو میبینید که همون MAC Address هست.
ساختار و طول MAC Address
طول MAC Address دقیقاً ۴۸ بیت (۶ بایت)ه.
هر بایت ۸ بیت هست → در مجموع ۶×۸ = ۴۸ بیت.
در نمایش هگزادسیمال، ۱۲ رقم (۶ جفت) داریم.
مثال:
D4-F5-47-8C-1A-2B
۲۴ بیت اول (OUI) = مشخصکنندهی شرکت سازنده (مثلاً Intel، Cisco، Apple).
۲۴ بیت دوم = شماره سریال کارت شبکه.
🔥3❤1🤮1💩1🙏1🖕1
<Red Teaming>
<the ART of EXPLOITATION> <4:1>
در پارت قبلی ما به مسئله BSS Overflow و Heap Overflow پرداختیم و به این نتیجه رسیدیم که اگر یک بافر سمت heap یا bss اگر درست کنترل و رزرو نشود می تواند مشکلات جدی را مانند stack overflow به وجود بیاورد .
در همین باره مسئله ای برای طراحان درایور ها و طراحان مکانیزم های امنیتی سیستم عامل پیش آمد که چطور می توانند از این ضعف ها برنامه ها را حفظ کنند .
در بعضی موارد می توان حتی stack های کنترل شده را هم مورد آسیب پذیری قرار داد و کنترل آنها را به دست گرفت .
به همین دلیل مکانیزم هایی مانند ASLR برای رندوم کردن آدرس های حافظه و DEP برای کنترل بافر و جلو گیری از Execution کد در بافر طراحی شد .
در زندگی امروزه خیلی از متخصصان برای تاکتیک هایی مانند privillege escalation ترجیح می دهند از winapi ها استفاده کنند که همین api ها بدون دسته ای از ماژول های Nt از زیر مجموعه ntdll.dll فقط به user mode دسترسی خواهند داشت و دسترسی بسیار پایینی به kernel mode خواهند داشت .
اکثر متخصصانی که در سیستم هایی با مکانیزم امنیتی فوق پیچیده اکثر تاکتیک ها را به winapi محدود می کنند متخصصان low level هستند ، اما متخصصان APT ای که از zero day استفاده می کنند اکثرا افراد متخصص high level می باشند که برای مکانیزم ها می توانند در هر شرایطی یک حمله طراحی کنند ، اکثر این متخصصان علمی برابر با توسعه دهنده مکانیزم های امنیتی و توسعه دهندگان درایور های سیستم عامل ها دارند و یا دانشی فراتر از آنها دارند .
در سیستم عامل های زیرمجموعه کرنل لینوکس مانند kali بر پایه debian ما winapi هایی را دارا نمی باشیم اما رابط های برنامه نویسی را مانند POSIX یا Portable Operating System Interface دارا می باشیم دارای توابعی مانند:
file managment:
read()
write()
open()
flow managment:
fork()
exec()
thread managment:
pthread_create()
اکثر توزیع های لینوکسی با POSIX سازگار می باشند اما POSIX هم مانند wiapi محدودیت هایی را دارا می باشد شاید از winapi هم محدود تر !
حالا ما قصد آشنایی با یک سری جداول و stub handler هارا در این بخش از پارت چهارم داریم به نام GOT/PLT در ELF برای linux و IAT/TF درون windows .
اول با این جداول در لینوکس آشنا خواهیم شد :
PLT (Procedure Linkage Table)
این مکانیزم یک جدول Linkage می باشد که بر پایه GOT کار می کند و در ادامه به کار آن آشنا خواهیم شد .
GOT(Global Offset Table)
این مکانیزم یک جدول می باشد که در ELF آدرس توابع خارجی مانند ()exit از libc را درون خود نگه میدارد.
PLT/GOT:
در ادامه وقتی کد اجرا خواهد شد باید توابع خارجی توسط Dynamic Loader درون جداول GOT پیاده سازی شوند .
وقتی تابع توسط داینامیک لودر درون GOT پیاده سازی شد ، و وقتی نیاز به اجرای یک تابع خارجی باشد PLT به دنبال آدرس آن تابع درون GOT خواهد گشت و اگر آن را پیدا کند با یک jmp به آن آدرس پرش می کند و آن را فراخوانی می کند .
اگر آدرس آن تابع درون GOT وجود نداشته باشد به داینامیک لودر یک سیگنال خواهد فرستاد که داینامیک لودر موظف به resolve کردن توابع مد نظر درون GOT می باشد .
در بخش بعد به معرفی IAT/TF خواهیم پرداخت
<the ART of EXPLOITATION> <4:1>
در پارت قبلی ما به مسئله BSS Overflow و Heap Overflow پرداختیم و به این نتیجه رسیدیم که اگر یک بافر سمت heap یا bss اگر درست کنترل و رزرو نشود می تواند مشکلات جدی را مانند stack overflow به وجود بیاورد .
در همین باره مسئله ای برای طراحان درایور ها و طراحان مکانیزم های امنیتی سیستم عامل پیش آمد که چطور می توانند از این ضعف ها برنامه ها را حفظ کنند .
در بعضی موارد می توان حتی stack های کنترل شده را هم مورد آسیب پذیری قرار داد و کنترل آنها را به دست گرفت .
به همین دلیل مکانیزم هایی مانند ASLR برای رندوم کردن آدرس های حافظه و DEP برای کنترل بافر و جلو گیری از Execution کد در بافر طراحی شد .
در زندگی امروزه خیلی از متخصصان برای تاکتیک هایی مانند privillege escalation ترجیح می دهند از winapi ها استفاده کنند که همین api ها بدون دسته ای از ماژول های Nt از زیر مجموعه ntdll.dll فقط به user mode دسترسی خواهند داشت و دسترسی بسیار پایینی به kernel mode خواهند داشت .
اکثر متخصصانی که در سیستم هایی با مکانیزم امنیتی فوق پیچیده اکثر تاکتیک ها را به winapi محدود می کنند متخصصان low level هستند ، اما متخصصان APT ای که از zero day استفاده می کنند اکثرا افراد متخصص high level می باشند که برای مکانیزم ها می توانند در هر شرایطی یک حمله طراحی کنند ، اکثر این متخصصان علمی برابر با توسعه دهنده مکانیزم های امنیتی و توسعه دهندگان درایور های سیستم عامل ها دارند و یا دانشی فراتر از آنها دارند .
در سیستم عامل های زیرمجموعه کرنل لینوکس مانند kali بر پایه debian ما winapi هایی را دارا نمی باشیم اما رابط های برنامه نویسی را مانند POSIX یا Portable Operating System Interface دارا می باشیم دارای توابعی مانند:
file managment:
read()
write()
open()
flow managment:
fork()
exec()
thread managment:
pthread_create()
اکثر توزیع های لینوکسی با POSIX سازگار می باشند اما POSIX هم مانند wiapi محدودیت هایی را دارا می باشد شاید از winapi هم محدود تر !
حالا ما قصد آشنایی با یک سری جداول و stub handler هارا در این بخش از پارت چهارم داریم به نام GOT/PLT در ELF برای linux و IAT/TF درون windows .
اول با این جداول در لینوکس آشنا خواهیم شد :
PLT (Procedure Linkage Table)
این مکانیزم یک جدول Linkage می باشد که بر پایه GOT کار می کند و در ادامه به کار آن آشنا خواهیم شد .
GOT(Global Offset Table)
این مکانیزم یک جدول می باشد که در ELF آدرس توابع خارجی مانند ()exit از libc را درون خود نگه میدارد.
PLT/GOT:
در ادامه وقتی کد اجرا خواهد شد باید توابع خارجی توسط Dynamic Loader درون جداول GOT پیاده سازی شوند .
وقتی تابع توسط داینامیک لودر درون GOT پیاده سازی شد ، و وقتی نیاز به اجرای یک تابع خارجی باشد PLT به دنبال آدرس آن تابع درون GOT خواهد گشت و اگر آن را پیدا کند با یک jmp به آن آدرس پرش می کند و آن را فراخوانی می کند .
اگر آدرس آن تابع درون GOT وجود نداشته باشد به داینامیک لودر یک سیگنال خواهد فرستاد که داینامیک لودر موظف به resolve کردن توابع مد نظر درون GOT می باشد .
در بخش بعد به معرفی IAT/TF خواهیم پرداخت
❤4
جاسوسی سختافزاری و شنود در تلفنهای هوشمند
تلفنهای همراه از چندین لایهی اساسی برای پردازش و انتقال داده تشکیل شدهاند:
1. سختافزار (Hardware):
شامل اجزای اصلی مانند تراشه پردازشی (CPU/SOC)، حافظهها (RAM، Flash)، ماژولهای ارتباطی (Baseband/Modem، Wi-Fi، Bluetooth)، و سنسورها (میکروفون، GPS، ژیروسکوپ، دوربین و …).
2. فریمور (Firmware):
نرمافزار سطح پایینی است که مستقیماً بر روی سختافزار اجرا شده و کنترل مستقیم آن را بر عهده دارد.
3. سیستمعامل (Operating System مانند Android یا iOS):
لایهای بالاتر که تعامل کاربر با دستگاه از طریق آن انجام میشود.
زمانی که جاسوسی در سطح سختافزار یا فریمور صورت بگیرد، دادهها پیش از رسیدن به سیستمعامل یا کاربر جمعآوری و منتقل میشوند. به این نوع تهدید، جاسوسی سختافزاری گفته میشود.
روشهای احتمالی شنود سختافزاری
میکروفون یا ماژول صوتی:
در صورت دستکاری، قابلیت ضبط صدای محیط بدون نیاز به اجرای برنامه خاصی وجود دارد و دادهها میتوانند ذخیره یا ارسال شوند.
دوربین:
در صورت تغییرات در سطح فریمور، امکان ثبت تصویر یا ویدئو بدون فعالشدن نشانگر LED فراهم میشود.
ماژولهای ارتباطی (Wi-Fi، Bluetooth، GSM Modem):
در صورت آلودگی، میتوانند اطلاعات را مستقیماً به خارج از دستگاه منتقل کنند.
سنسورهای به ظاهر بیخطر: مانند ژیروسکوپ یا شتابسنج، که از طریق تحلیل لرزشها میتوانند بهطور غیرمستقیم اطلاعات صوتی یا حرکتی را استنتاج کنند.
تفاوت با جاسوسی نرمافزاری
در جاسوسی نرمافزاری لازم است بدافزاری روی گوشی نصب و توسط کاربر اجرا شود. این نوع حمله معمولاً قابل شناسایی و با حذف بدافزار یا ریست دستگاه برطرف میشود.
اما در جاسوسی سختافزاری، کد یا مدار مخرب مستقیماً در سطح برد اصلی یا تراشه تعبیه میشود. چنین تهدیدی با فرمت یا ریست از بین نمیرود و شناسایی و حذف آن بسیار دشوارتر است.
تلفنهای همراه از چندین لایهی اساسی برای پردازش و انتقال داده تشکیل شدهاند:
1. سختافزار (Hardware):
شامل اجزای اصلی مانند تراشه پردازشی (CPU/SOC)، حافظهها (RAM، Flash)، ماژولهای ارتباطی (Baseband/Modem، Wi-Fi، Bluetooth)، و سنسورها (میکروفون، GPS، ژیروسکوپ، دوربین و …).
2. فریمور (Firmware):
نرمافزار سطح پایینی است که مستقیماً بر روی سختافزار اجرا شده و کنترل مستقیم آن را بر عهده دارد.
3. سیستمعامل (Operating System مانند Android یا iOS):
لایهای بالاتر که تعامل کاربر با دستگاه از طریق آن انجام میشود.
زمانی که جاسوسی در سطح سختافزار یا فریمور صورت بگیرد، دادهها پیش از رسیدن به سیستمعامل یا کاربر جمعآوری و منتقل میشوند. به این نوع تهدید، جاسوسی سختافزاری گفته میشود.
روشهای احتمالی شنود سختافزاری
میکروفون یا ماژول صوتی:
در صورت دستکاری، قابلیت ضبط صدای محیط بدون نیاز به اجرای برنامه خاصی وجود دارد و دادهها میتوانند ذخیره یا ارسال شوند.
دوربین:
در صورت تغییرات در سطح فریمور، امکان ثبت تصویر یا ویدئو بدون فعالشدن نشانگر LED فراهم میشود.
ماژولهای ارتباطی (Wi-Fi، Bluetooth، GSM Modem):
در صورت آلودگی، میتوانند اطلاعات را مستقیماً به خارج از دستگاه منتقل کنند.
سنسورهای به ظاهر بیخطر: مانند ژیروسکوپ یا شتابسنج، که از طریق تحلیل لرزشها میتوانند بهطور غیرمستقیم اطلاعات صوتی یا حرکتی را استنتاج کنند.
تفاوت با جاسوسی نرمافزاری
در جاسوسی نرمافزاری لازم است بدافزاری روی گوشی نصب و توسط کاربر اجرا شود. این نوع حمله معمولاً قابل شناسایی و با حذف بدافزار یا ریست دستگاه برطرف میشود.
اما در جاسوسی سختافزاری، کد یا مدار مخرب مستقیماً در سطح برد اصلی یا تراشه تعبیه میشود. چنین تهدیدی با فرمت یا ریست از بین نمیرود و شناسایی و حذف آن بسیار دشوارتر است.
👏4🔥1
What is the APC?
A mechanism in Windows that allows you to execute functions asynchronously in threads With QueueUserAPC you can add a function (such as shellcode) to a thread queue and execute it with NtTestAlert .
What is the APC injection?
APC injection is a exploitation technique for reserving function execution in one thread flow
this technique is excuting shellcode in memory of the one thread
This technique is done using functions such as QueueUserAPC and NtTestAlert and has the ability to bypass a number of EDR security mechanisms However because it will be executed in memory a number of EDRs can detect it such as SentinelOne
example code for APC injection:
Outside of Training
thank you for following us
A mechanism in Windows that allows you to execute functions asynchronously in threads With QueueUserAPC you can add a function (such as shellcode) to a thread queue and execute it with NtTestAlert .
What is the APC injection?
APC injection is a exploitation technique for reserving function execution in one thread flow
this technique is excuting shellcode in memory of the one thread
This technique is done using functions such as QueueUserAPC and NtTestAlert and has the ability to bypass a number of EDR security mechanisms However because it will be executed in memory a number of EDRs can detect it such as SentinelOne
example code for APC injection:
#include <windows.h>
int main() {
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 1234);
LPVOID addr = VirtualAllocEx(hProcess, NULL, 4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
unsigned char code[] = "\x31\xc0\xc3";
WriteProcessMemory(hProcess, addr, code, sizeof(code), NULL);
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)QueueUserAPC, addr, 0, NULL);
CloseHandle(hThread);
CloseHandle(hProcess);
return 0;
}
Outside of Training
thank you for following us
🔥5❤1👏1
<Red Teaming>
<the ART of Exploitation> <4:2>
در پارت قبل به مسئله exploitation از طریقت جداول GOT/PLT پرداختیم که دو stub handler می باشند و در ELF و لینوکس کاربرد فراوانی دارند.
هم اکنون قصد آشنایی با IAT معادل جدول GOT و (TF(Thunk Function معادل جدول PLT در لینوکس را داریم.
این دو جدول کاربرد کاملا مشابهی را دارا می باشند
TF:
این جدول مانند procedure linkage table یک جدول linkage میباشد که مسئول jmp به توابع فراخوانی شده خارجی می باشد و فقط دارای دسترسی READ می باشد و قابل WRITE نمی باشد.
این جدول یعنی مانند TF آدرس توابع خارجی را از IAT دریافت میکند که IAT آدرس توابع خارجی خود را از dynamic loader دریافت میکند.
اگر قصد ما تغییر روند و فرایند آدرس دهی این جداول باشد باید آدرس مورد نظر در جدول IAT را overwrite کنیم.
برای مثال تابع ()exit در زبان c از هدر فایل stdio.h کاربرد خروج از فرایند را محیی میکند.
آدرس این تابع توسط DL درون IAT بازنشانی می شود و زمانی که نیاز به فراخوانی این تابع در برنامه مورد نظر باشد و نیاز به اسمبل شدن آن دستور باشد در این زمان جدول TF به آدرس آن تابع در IAT یک jmp میزند و آن تابع را فراخوانی میکند.
اگر قصد جا به جایی آدرس این توابع را در این جدتل داشته باشیم باید DEP و ASLR و CFG و HVCI را bypass کنیم تا نظارتی بر flow تابع جایگزین ما وجود نداشته باشد اولین قدم Address Leak میباشد برای دور زدن ASLR قدم دوم Return-Oriented Programming برای دور زدن DEP و قدم سوم بای پس Control Flow Guard از طریق پیدایش گجت های cfguard از طریق دستور "cfguard!" در windbg و یا immunity در قدم چهارم نیاز به بایپس HVCI برای کنترل نشدن جریان اجرای آدرس ها میباشد.
در پارت 5 از این آموزشات به راهکار عملی دستکاری IAT/TF و بای پس پروتکتور های ذکر شده خواهیم پرداخت
<the ART of Exploitation> <4:2>
در پارت قبل به مسئله exploitation از طریقت جداول GOT/PLT پرداختیم که دو stub handler می باشند و در ELF و لینوکس کاربرد فراوانی دارند.
هم اکنون قصد آشنایی با IAT معادل جدول GOT و (TF(Thunk Function معادل جدول PLT در لینوکس را داریم.
این دو جدول کاربرد کاملا مشابهی را دارا می باشند
TF:
این جدول مانند procedure linkage table یک جدول linkage میباشد که مسئول jmp به توابع فراخوانی شده خارجی می باشد و فقط دارای دسترسی READ می باشد و قابل WRITE نمی باشد.
این جدول یعنی مانند TF آدرس توابع خارجی را از IAT دریافت میکند که IAT آدرس توابع خارجی خود را از dynamic loader دریافت میکند.
اگر قصد ما تغییر روند و فرایند آدرس دهی این جداول باشد باید آدرس مورد نظر در جدول IAT را overwrite کنیم.
برای مثال تابع ()exit در زبان c از هدر فایل stdio.h کاربرد خروج از فرایند را محیی میکند.
آدرس این تابع توسط DL درون IAT بازنشانی می شود و زمانی که نیاز به فراخوانی این تابع در برنامه مورد نظر باشد و نیاز به اسمبل شدن آن دستور باشد در این زمان جدول TF به آدرس آن تابع در IAT یک jmp میزند و آن تابع را فراخوانی میکند.
اگر قصد جا به جایی آدرس این توابع را در این جدتل داشته باشیم باید DEP و ASLR و CFG و HVCI را bypass کنیم تا نظارتی بر flow تابع جایگزین ما وجود نداشته باشد اولین قدم Address Leak میباشد برای دور زدن ASLR قدم دوم Return-Oriented Programming برای دور زدن DEP و قدم سوم بای پس Control Flow Guard از طریق پیدایش گجت های cfguard از طریق دستور "cfguard!" در windbg و یا immunity در قدم چهارم نیاز به بایپس HVCI برای کنترل نشدن جریان اجرای آدرس ها میباشد.
در پارت 5 از این آموزشات به راهکار عملی دستکاری IAT/TF و بای پس پروتکتور های ذکر شده خواهیم پرداخت
❤7
what is the RootKit?
Rootkits are categorized into 5 types of rootkits.
The use of rootkits is generally to increase the attacker's access to the victim's system.
But the high performance can be changed and induce more complex tasks to the system.
Types of rootkits:
user-mode rootkit:
This type of rootkit includes access at the top layer of the operating system and has capabilities such as controlling surface access such as opening chrome and notepad or making changes to their data.
This rootkit works in ring3 and is considered a relatively low-risk rootkit.
kernel-mode rootkit:
This type of rootkit can have access between ring3 and ring0 and has access to control the process of processes and threads.
This type of rootkit is a little more complex in terms of risk, but still detectable.
Rootkits that run in the Windows registry can be of this type.
bootkits:
This type of rootkit operates in the boot loader and post process and has the ability to change the flows before the kernel loads and definitely has ring0 access and can take control of hardware sockets and even change the kernel loading flows.
This type of rootkit is dangerous but can still be found with special tools.
bios rootkit:
This type of rootkit can even control the boot loading flows and abuse all these flows and perform the work before all operations.
This type of rootkit is very dangerous but can still be detected with external boot and tools like kaspersky rescue disk.
hypervisor rootkit:
This is the ultimate level of rootkits that runs in the hypervisor layer and can copy all the system flows by virtualizing all those flows and taking control of a complete copy of the system.
This type of rootkit runs at the hardware firmware layer and is extremely dangerous because it can only be removed by resetting the system and changing the hardware.
Like the subVist rootkit, which is research.
Yes, my friends, as you have seen, roots can be extremely dangerous and in some cases, such as level 4 and 5, namely the bios rootkit and hypervisor rootkit, they can even cause explosions.
It is worth noting that level 4 and 5 rootkits can only be carried out with hardware and physical access.
Rootkits are categorized into 5 types of rootkits.
The use of rootkits is generally to increase the attacker's access to the victim's system.
But the high performance can be changed and induce more complex tasks to the system.
Types of rootkits:
user-mode rootkit:
This type of rootkit includes access at the top layer of the operating system and has capabilities such as controlling surface access such as opening chrome and notepad or making changes to their data.
This rootkit works in ring3 and is considered a relatively low-risk rootkit.
kernel-mode rootkit:
This type of rootkit can have access between ring3 and ring0 and has access to control the process of processes and threads.
This type of rootkit is a little more complex in terms of risk, but still detectable.
Rootkits that run in the Windows registry can be of this type.
bootkits:
This type of rootkit operates in the boot loader and post process and has the ability to change the flows before the kernel loads and definitely has ring0 access and can take control of hardware sockets and even change the kernel loading flows.
This type of rootkit is dangerous but can still be found with special tools.
bios rootkit:
This type of rootkit can even control the boot loading flows and abuse all these flows and perform the work before all operations.
This type of rootkit is very dangerous but can still be detected with external boot and tools like kaspersky rescue disk.
hypervisor rootkit:
This is the ultimate level of rootkits that runs in the hypervisor layer and can copy all the system flows by virtualizing all those flows and taking control of a complete copy of the system.
This type of rootkit runs at the hardware firmware layer and is extremely dangerous because it can only be removed by resetting the system and changing the hardware.
Like the subVist rootkit, which is research.
Yes, my friends, as you have seen, roots can be extremely dangerous and in some cases, such as level 4 and 5, namely the bios rootkit and hypervisor rootkit, they can even cause explosions.
It is worth noting that level 4 and 5 rootkits can only be carried out with hardware and physical access.
👏6❤3❤🔥2
<red team>
<persis><part 1>
what is the shell execution hijacking via ads?
در این پارت به سوال ads چیست و چه کاربردی دارد و shell execute hijacking چگونه با ads انجام می شود خواهیم پرداخت .
ads چیست؟
alternative data stream یک سرویس ویندوز است که که برای مدیریت stream ها در فایل ها ساخته شده است
stream چیست؟
یک دیتای اضافی که به فایل بایند می شود تا در هنگام اجرای فایل آن stream در پس زمینه فایل باشد تا در مواقع لزوم توسط نرم افزار جاری یا سیستم عامل خوانده شود .
آن stream می تواند متادیتای یک image باشد که در ads آن فایل قرار گرفته .
اگر یک فایل اجرایی exe درون stream یک عکس قرار گیرد چه اتفاقی خواهد افتاد؟
پاسخ واضح است آن stream در پس زمینه ی عکس وجود دارد تا زمانی که فراخوانی شود :
image:malware.exe
و زمانی که فراخوانی شود کاربر عکس را مشاهده خواهد کرد اما در پس زمینه malware.exe اجرا خواهد شد .
از این تکنیک در persistence به صورت مشابه با عنوان atexec یاد می شود .
حال اگر بخواهیم به صورت خودکار پس ازاجرای عکس بدون کامند یک فایل در پس زمینه اجرا شود چه کار کنیم؟
در این مواقع ما نیاز به یک vb script یا یک js script داریم تا برای shell execute استفاده شود .
در این حالت js script به فایل چسبانده خواهد شد و کار او این است که به هنگام اجرای عکس به صورت خودکار stream مورد نظر image:malware.exe اجرا شود.
حال اگر کاربر فقط بر روی عکس دابل کلیک کند shell ما execute خواهد شد و stream مورد نظر در پس زمینه اجرا خواهد شد .
در پست بعدی کد های مربوط به عملیات بالا در اختیار دوستان قرار خواهد گرفت .
این تکنیک همچنین با نام ads polyglot هم شناخته می شود .
#free_learning
<persis><part 1>
what is the shell execution hijacking via ads?
در این پارت به سوال ads چیست و چه کاربردی دارد و shell execute hijacking چگونه با ads انجام می شود خواهیم پرداخت .
ads چیست؟
alternative data stream یک سرویس ویندوز است که که برای مدیریت stream ها در فایل ها ساخته شده است
stream چیست؟
یک دیتای اضافی که به فایل بایند می شود تا در هنگام اجرای فایل آن stream در پس زمینه فایل باشد تا در مواقع لزوم توسط نرم افزار جاری یا سیستم عامل خوانده شود .
آن stream می تواند متادیتای یک image باشد که در ads آن فایل قرار گرفته .
اگر یک فایل اجرایی exe درون stream یک عکس قرار گیرد چه اتفاقی خواهد افتاد؟
پاسخ واضح است آن stream در پس زمینه ی عکس وجود دارد تا زمانی که فراخوانی شود :
image:malware.exe
و زمانی که فراخوانی شود کاربر عکس را مشاهده خواهد کرد اما در پس زمینه malware.exe اجرا خواهد شد .
از این تکنیک در persistence به صورت مشابه با عنوان atexec یاد می شود .
حال اگر بخواهیم به صورت خودکار پس ازاجرای عکس بدون کامند یک فایل در پس زمینه اجرا شود چه کار کنیم؟
در این مواقع ما نیاز به یک vb script یا یک js script داریم تا برای shell execute استفاده شود .
در این حالت js script به فایل چسبانده خواهد شد و کار او این است که به هنگام اجرای عکس به صورت خودکار stream مورد نظر image:malware.exe اجرا شود.
حال اگر کاربر فقط بر روی عکس دابل کلیک کند shell ما execute خواهد شد و stream مورد نظر در پس زمینه اجرا خواهد شد .
در پست بعدی کد های مربوط به عملیات بالا در اختیار دوستان قرار خواهد گرفت .
این تکنیک همچنین با نام ads polyglot هم شناخته می شود .
#free_learning
❤5🔥2❤🔥1
ADS-Polyglot.ps1
12 KB
ADS Polyglot!
ADS Shell execute hijacker
what is this?
1. Alternative Stream Injection (ADS) - Create hidden files in the target file
2. Shell Execute Hijack - Change the behavior of double-clicking a file
3. Support for two scripting engines: · JScript (first priority) · VBScript (backup and fallback)
4. Executable file attachment - Ability to add backdoor.exe as a stream
version 2
for malware development and red teaming
ADS Shell execute hijacker
what is this?
1. Alternative Stream Injection (ADS) - Create hidden files in the target file
2. Shell Execute Hijack - Change the behavior of double-clicking a file
3. Support for two scripting engines: · JScript (first priority) · VBScript (backup and fallback)
4. Executable file attachment - Ability to add backdoor.exe as a stream
version 2
for malware development and red teaming
❤5