strace / dtrace / ltrace ... hữu ích cho nhiều thứ, từ việc tìm kiếm các vi phạm truy cập ẩn đến theo dõi ổ cắm mạng, nhưng có lẽ nó không thể nhìn thấy tất cả.
Tôi đã không thể tìm ra bằng cách sử dụng strace (nó lại xuất hiện khi tôi đang cố gắng trả lời câu hỏi ngày nay) nơi sudo phân bổ và duy trì mật khẩu văn bản gốc trong bộ nhớ hệ thống. Câu hỏi liên kết có liên quan nếu đây là tin tức cho bạn.
Lần gần nhất tôi nhận được, với những dấu vết như thế này (đây có thể là một ví dụ tồi tệ, sử dụng sudo xếp chồng; tôi đã thử một vài thứ):
$ sudo strace -ff -o mem sudo -s
Enter password...
là những dòng như thế này:
mem.14471:stat("/etc/profile.d/gnome-ssh-askpass.sh", {st_mode=S_IFREG|0644, st_size=70, ...}) = 0
mem.14471:access("/etc/profile.d/gnome-ssh-askpass.sh", R_OK) = 0
mem.14471:open("/etc/profile.d/gnome-ssh-askpass.sh", O_RDONLY) = 3
mem.14471:read(3, "SSH_ASKPASS=/usr/libexec/openssh"..., 70) = 70
và tôi tin rằng tôi đã thử truy tìm từng cá nhân, thậm chí thay thế biến env trong / usr / libexec / openssh-askpass bằng dấu vết riêng của mình, nhưng không có kết quả.
Tôi biết cách đọc và giải mã các dấu vết; Tôi có thể làm theo các thẻ được gán, trả về mã và phân bổ bộ nhớ. Những gì tôi không thể tìm thấy là một ngã ba phân bổ và duy trì mật khẩu sudo (tối đa 7 lần) trong bộ nhớ, trong khi sudo đang hoạt động. Chứng minh mật khẩu là thông qua Pháp y LiME áp dụng cho CentOS.
Ngoài ra, sẽ có một cách tiếp cận tốt hơn, như lặp lại phân bổ bộ nhớ quá trình?