Điều kiện nào để một user application chạy với quyền root trong Unix hay SYSTEM trong Windows

lelelov3

W-------
11/03/2015
4
33 bài viết
Điều kiện nào để một user application chạy với quyền root trong Unix hay SYSTEM trong Windows
Các bạn cho mình hỏi điều kiện nào để một user application, hay chi tiết hơn một process chạy với quyền root trong Unix hay SYSTEM trong Windows, để từ đó có thể là mục tiêu tấn công lỗi tràn bộ đệm để chạy shellcode. Mình xem trên mạng thấy một chương tring C đơn giản như sau (Vuln.c):

#include <stdio.h>
#include <string.h>
void func(char *name)
{
char buf[100];
strcpy(buf, name);
printf("Welcome %s\n", buf);
}

int main(int argc, char *argv[])
{
func(argv[1]);
return 0;
}

Cũng có thể làm tiền đề khai thác lỗi tràn bộ đệm và chạy shellcode trong Unix
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Trong linux khá bảo mật trong vấn đề phân quyền. Ví dụ bạn đang chạy chương trình C với User A:
Mã:
#include <stdio.h>
#include <string.h>
void func(char *name)
{
char buf[100];
strcpy(buf, name);
printf("Welcome %s\n", buf);
}
int main(int argc, char *argv[])
{
func(argv[1]);
return 0;
}

Thì khi bạn exploit được chương trình đó với với kỹ thuật pwning. Bạn vẫn chỉ thực thi được với quyền của User A thôi, bởi chương trình dịch chạy được đã thông qua biên dịch. File exe có mục phân quyền rất rõ ràng...không giống như file source.

Tuy nhiên thì có một vài điểm khác đối với ngôn ngữ bậc cao hơn như python và Java. Java thì mình không chắc chắn lắm nhưng Python biên dịch theo từng dòng lệnh. Nên khi chạy file Python từ source, sẽ có một vài kỹ thuật vượt quyền riêng, một vài phiên bản python và kernel trước đây của linux cũng dính lỗi nhưng giờ có lẽ đã fixx...
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Trong linux khá bảo mật trong vấn đề phân quyền. Ví dụ bạn đang chạy chương trình C với User A:
Mã:
#include <stdio.h>
#include <string.h>
void func(char *name)
{
char buf[100];
strcpy(buf, name);
printf("Welcome %s\n", buf);
}
int main(int argc, char *argv[])
{
func(argv[1]);
return 0;
}

Thì khi bạn exploit được chương trình đó với với kỹ thuật pwning. Bạn vẫn chỉ thực thi được với quyền của User A thôi, bởi chương trình dịch chạy được đã thông qua biên dịch. File exe có mục phân quyền rất rõ ràng...không giống như file source.

Tuy nhiên thì có một vài điểm khác đối với ngôn ngữ bậc cao hơn như python và Java. Java thì mình không chắc chắn lắm nhưng Python biên dịch theo từng dòng lệnh. Nên khi chạy file Python từ source, sẽ có một vài kỹ thuật vượt quyền riêng, một vài phiên bản python và kernel trước đây của linux cũng dính lỗi nhưng giờ có lẽ đã fixx...
Bạn xem bài này để giải thích cho mình và các bạn rõ nhé:

https://dhavalkapil.com/blogs/Shellcode-Injection/
https://dhavalkapil.com/blogs/Shellcode-Injection/
Mình đọc trong infosecinstitute có đoạn sau:

"In buffer overflow attack, the exploit code will run with the program permissions. Because of this, exploiting an SUID root program is very useful since it will run with root privileges. On Unix systems, attackers normally target programs with UID 0 and in Windows, attackers normally target programs that run as SYSTEM."
nên mới hỏi như vậy
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Đoạn tiếng anh đó chỉ nói là khuyến khích tấn công những phần mềm đang chạy với UID là 0. Trong Linux UID 0 mặc định là quyền root đó bạn.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Thẻ
root system unix user application windows
Bên trên