bước để khám phá vị trí lưu mật khẩu sudo


1

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?

Câu trả lời:


3

strace sẽ không hiển thị bất cứ điều gì cụ thể như thế này. Gần nhất bạn có thể nhận được là brk() hoặc là mmap(MAP_ANONYMOUS) các cuộc gọi mà glibc sử dụng để lấy toàn bộ vùng nhớ mới. Phần còn lại không sử dụng hệ thống gọi, chỉ cần truy cập bộ nhớ trực tiếp.

Bạn có thể thử ltrace cho các cuộc gọi thư viện không gian người dùng.

Hoặc chỉ cần tìm dấu nhắc mật khẩu trong mã nguồn và xem điều gì xảy ra với kết quả của nó. Thêm một vài printf() Để hiển thị các địa chỉ bộ nhớ.


Cảm ơn. Tôi nhớ rằng đã nhận ra / đọc rằng strace có thể không có quyền truy cập vào tất cả các cuộc gọi hệ thống (có thể theo TỰ) và không chắc chắn 100%; Điều này có vẻ như nó trả lời những gì tôi đã thiếu. Tôi đánh giá cao việc làm rõ mục tiêu, những gì thực sự xảy ra và hướng bổ sung.
ǝɲǝɲbρɯͽ

1
Đúng; cho dù nó có quyền truy cập vào các cuộc gọi hệ thống hay không, bạn vẫn đang tìm kiếm thứ gì đó không phải là cuộc gọi hệ thống ở nơi đầu tiên ...
grawity
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.