**Exploit kernel là làm gì?**
* Chương trình sẽ gọi kernel khi có tương tác giữa chương trình và 1 chương trình khác, file khác trong hệ thống. Ví dụ như open, read, write file thì những lệnh đó sẽ được gửi đến kernel yêu cầu kernel thực thi.
* Exploit kernel giống với exploit binary ở chỗ khi exploit binary, chúng ta sẽ exploit thông qua input vào các functions, sử dụng các functions mà file binary đã được lập trình và có lỗi để exploit vùng nhớ của nó. Exploit kernel cũng tương tự do bản thân kernel cũng là 1 chương trình được lập trình, do đó nó cũng sẽ hoạt động dựa trên các functions và cũng sẽ có vùng nhớ riêng của nó. Khác ở chỗ các functions mà chúng ta có thể dùng ban đầu của binary bị giới hạn ở phần lập trình sẵn, nếu muốn dùng những functions khác thì phải exploit, còn exploit kernel thì các functions bao gồm read, write, execute, permisison to acces, ownership,... sẽ bị giới hạn bởi user permission và user privileges
* Do đó, exploit kernel sẽ là code một chương trình sử dụng các functions tương tác với kernel(qua syscall), dùng bug của functions đấy trên kernel memory để lấy quyền root hoặc user privileges cao hơn