Chương trình rootkit đơn giản trên Linux, gồm module tạo số ngẫu nhiên trong kernel và module hook vào syscall open(), write()
- Rootkit này chỉ mới được test trên bản phân phối Ubuntu 16.04 32 bit, phiên bản kernel là 4.15
- Đối với các phiên bản khác, cần kiểm tra lại địa chỉ sys_call_table và các hằng số __NR
- Clone repository này bằng lệnh:
git clone https://github.com/auduongtansang/SimpleRootkit.git
1. Module tạo số ngẫu nhiên:
- Mở terminal trong thư mục randlkm và nhập:
make
- Nếu biên dịch không thành công, hãy kiểm tra lại các đường dẫn
- Sau đó, gắn module randlkm.ko vào kernel bằng lệnh:
sudo insmod randlkm.ko
- Biên dịch chương trình randtest.c:
gcc -o randtest randtest.c
- Thực thi randtest bằng quyền root sẽ nhận được một số ngẫu nhiên:
sudo ./randtest
- Để tháo module ra khỏi kernel, nhập lệnh:
sudo rmmod randlkm
2. Hook vào system call open(), write():
- Mở terminal trong thư mục hooker và nhập:
make
- Nếu biên dịch không thành công, hãy kiểm tra lại các đường dẫn
- Sau đó, gắn module vào kernel bằng lệnh:
sudo insmod hooker.ko
- Nếu có lỗi, hãy kiểm tra lại phiên bản hệ điều hành, kernel,... để chỉnh sửa các địa chỉ cho phù hợp
- Xem log bằng lệnh sau và nhấn Ctrl + C để thoát:
dmesg -w
- Để tháo module ra khỏi kernel, nhập lệnh:
sudo rmmod hooker