2009-02-09 28 views
5

Là một phần của khóa học, tôi cần viết mã khai thác để gây tràn bộ đệm và thực thi mã hiện diện trên ngăn xếp.bảo vệ thực thi ngăn xếp và ngẫu nhiên trên ubuntu

Tôi đã tắt ngẫu nhiên ngăn xếp theo lệnh sau: sysctl -w kernel.randomize_va_space = 0 Tuy nhiên, tôi không thể tìm cách tắt bảo vệ thực thi ngăn xếp. Tôi không chắc liệu có một số bảo vệ exec stack trong ubuntu hay không ... vì vậy câu hỏi đầu tiên của tôi là liệu có cái gì đó giống như mũ đỏ exec-shield trong ubuntu 8.10 và nếu có, làm thế nào chúng ta có thể tắt nó đi.

Tôi đã cố gắng gây ra tràn bộ đệm và thực hiện lệnh từ ngăn xếp, nhưng bất cứ khi nào tôi cố gắng làm như vậy, nó mang lại cho tôi một lỗi seg.

tôi đã nhận được ubuntu 8.10 64 bit, BAO GIỜ, chương trình gỡ lỗi im được biên dịch trên máy tính i386 có bảo vệ ngăn xếp bị tắt.

+0

* lol * cuộc chiến chống bánh quy giòn là chấm dứt mũ trắng của chúng tôi để tìm hiểu giao dịch. Có lẽ bọn tội phạm sẽ biến mất khi chúng ta không biết họ làm thế nào? ;) –

+0

[link này] (http://pwet.fr/man/linux/administration_systeme/execstack) có giúp được không? – jpalecek

Trả lời

5

Bạn có thể muốn biên dịch với -z execstack cờ trong biên soạn GCC của bạn, cùng với -fno-stack-protector (để vô hiệu hóa SSP/Propolice chồng bảo vệ của GCC), tức là:

gcc -fno-stack-protector -z execstack -o vuln vuln.c 

Tất cả mọi thứ có lẽ nên quay ra jake sau này. Lưu ý rằng sysctl -w kernel.randomize_va_space=0 chỉ là ngẫu nhiên không gian địa chỉ và không được bảo vệ ngăn xếp, mỗi lần; mà có thể được brute buộc phải chống lại bằng cách sử dụng một loạt các kỹ thuật.

0

Các chương trình này thường có thể được khai thác mà không có ngăn xếp thực thi. Nếu nạn nhân được biên dịch mà không có chồng thực thi, hãy xem xét lập trình hướng trở lại như một kỹ thuật khai thác.

http://en.wikipedia.org/wiki/Return-oriented_programming

Các vấn đề liên quan