Keylogger Linux không có root hoặc sudo! Có thật không?


29

Ai đó trên Youtube tuyên bố có một keylogger trên Ubuntu không được thực thi cũng như không được cài đặt dưới quyền root. Liên kết dưới đây cho thấy một bản demo của nó hoạt động.

http://www.youtube.com/watch?v=Y1fZAZTwyPQ

Mặc dù tuyên bố ngược lại, người này có thể đã cài đặt nó dưới quyền root trước khi trình diễn cho video. Có bằng chứng bán đáng tin cậy nào khác cho thấy điều này thực sự có thể mà không cần root để cài đặt hoặc thực thi không?

CẬP NHẬT: Phần mềm được tham chiếu trong câu trả lời ngày 24 tháng 6 sẽ không cài đặt mà không có sudo / root. Tôi đã thêm tiền thưởng cho bất cứ ai cung cấp liên kết đến phần mềm keylogger Linux đang hoạt động có thể được cài đặt và chạy với các đặc quyền người dùng thông thường.


Tôi tin rằng điều này có thể được thực hiện ở cấp X một cách dễ dàng. Chỉ cần nghĩ về các chương trình với các phím tắt toàn cầu.
Denis Nikolaenko

Để ngăn chặn các keylogger của hệ thống cửa sổ X, bạn cần triển khai SELinux cho X. Theo hiểu biết của tôi, không có bản phân phối Linux lan rộng nào thực hiện được điều đó. nsa.gov/research/_files/selinux/ con / x11 / t1.shtml
Denis Nikolaenko

Bạn có biết bất kỳ ví dụ làm việc thực tế? Không thấy nó hoạt động đầu tiên, tôi vẫn hoài nghi. Và không biết rằng keylogger thực sự có thể được cài đặt mà không có đặc quyền sudo / root, không đáng để xử lý sự phức tạp của việc thiết lập AppArmor hoặc SELinux để chống lại nó.
Mike Rowave


3
Hãy tóm tắt những điểm quan trọng của video trong câu trả lời của bạn. Nó có thể bị xóa hoặc máy chủ có thể không khả dụng. (Vâng, khi tôi đăng bài, Youtube không hoạt động.) Cũng khá thô lỗ khi yêu cầu khách truy cập xem video để tìm hiểu câu hỏi của bạn là gì.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


29

Vâng, nó là có thật. Nếu bạn đã bị khai thác thông qua trình duyệt và kẻ tấn công có thể chạy mã với đặc quyền người dùng của bạn, anh ta có thể đăng ký chương trình thông qua các cơ sở tự khởi động của Gnome hoặc KDE chạy chương trình khi đăng nhập. Bất kỳ chương trình nào cũng có thể nhận được mã quét của các phím được nhấn trong Hệ thống X Window. Nó dễ dàng được chứng minh với lệnh xinput. Xem bài đăng trên blog về cách ly GUI để biết chi tiết.


12

Khái niệm trong video đó là thật 100% và mã rất đơn giản.

Xác định id bàn phím của bạn với: xinput --list

Đăng nhập tổ hợp phím với: xinput --test $id

Khớp số với các phím với: xmodmap -pke


11

Vâng, nó là có thể.
Bạn có thể thử nó trên máy của riêng bạn với phần mềm tương tự lkl .


Thật đáng sợ nếu nó có thật. Tôi sẽ thiết lập một máy ảo để kiểm tra nó. Nhưng câu đố tiếp theo là làm thế nào để phát hiện ra nó ngay lập tức nếu nó bằng cách nào đó tự cài đặt thông qua khai thác trình duyệt hoặc một cái gì đó tương tự, hoặc ít nhất là chủ động chặn nó truyền bất cứ thứ gì sang Internet nếu nó chạy.
Mike Rowave

Tôi có ít kiến thức trong khu vực, nhưng wiki.ubuntu.com/SELinux có thể giúp đỡ. Hãy cập nhật câu hỏi ban đầu với những phát hiện của bạn. : D
bbaja42

1
Khó có thể nói chơi khăm, thực tế, hoặc ít hơn là chỉ từ một video. Tôi đã có thể nghĩ ra những nơi để bắt đầu nếu tôi muốn tạo một video giả sử để chứng minh một lỗ hổng lớn (thủ thuật suýt, hết thời gian, công cụ hệ thống bị pha trộn, v.v. thật là ngu ngốc Nhưng người ta không thể đưa ra kết luận dựa trên video Youtube.
Andrew Lambert

@Amazed điểm hợp lệ, nhưng vui lòng cài đặt lkl và kiểm tra nó trên máy của riêng bạn.
bbaja42

1
Nó không hoạt động. Chạy make installtạo ra lỗi cannot create regular file '/usr/local/bin/lkl': Permission denied. Chạy sudo make installkhông đưa ra lỗi, nhưng sau đó cố gắng thực sự chạy lkl lại đưa ra một lỗi khác Have to be root to perform a iopl()!.
Mike Rowave

9

Tôi chưa xem video, vì vậy tôi đang phản hồi lại ấn tượng mà tôi nhận được về những gì nó tuyên bố từ luồng SU thay vì video bạn trích dẫn.

Nếu kẻ tấn công có thể chạy mã trên máy của bạn với tư cách là người dùng của bạn, thì họ có thể ghi nhật ký nhấn phím của bạn.

Vâng, duh. Tất cả các ứng dụng bạn đang chạy đều có quyền truy cập vào các phím bấm của bạn. Nếu bạn đang nhập nội dung trong trình duyệt web, trình duyệt web của bạn có quyền truy cập vào các phím bấm của bạn.

Ah, bạn nói, nhưng những gì về đăng nhập nhấn phím trong một ứng dụng khác? Miễn là ứng dụng khác đang chạy trên cùng một máy chủ X, chúng vẫn có thể được ghi lại. X11 không cố gắng cô lập các ứng dụng - đó không phải là công việc của nó. X11 cho phép các chương trình xác định các phím tắt chung, rất hữu ích cho các phương thức nhập liệu, để xác định các macro, v.v.

Nếu kẻ tấn công có thể chạy mã với tư cách là người dùng của bạn, anh ta cũng có thể đọc và sửa đổi các tệp của bạn và gây ra tất cả các loại tác hại khác.

Đây không phải là một mối đe dọa. Đó là một phần của những kỳ vọng bình thường của một hệ thống làm việc. Nếu bạn cho phép kẻ tấn công chạy mã trên máy của bạn, máy của bạn sẽ không còn an toàn nữa. Nó giống như nếu bạn mở cửa trước và cho phép một kẻ giết người bằng rìu vào: nếu sau đó bạn bị chẻ làm hai, thì không phải vì cửa trước của bạn không an toàn.

Keylogger chỉ có thể ghi nhật ký các phím được nhấn bởi người dùng bị nhiễm. (Ít nhất là miễn là người dùng bị nhiễm không gõ mật khẩu sudo.)



"Không cho phép kẻ tấn công chạy mã trên máy của bạn" là một mô hình bảo mật tuyệt vời ... Tôi đoán Windows sẽ trở nên hoàn toàn an toàn khi được sử dụng bởi một người dùng Linux sau đó (người chắc chắn sẽ không "cho phép kẻ tấn công chạy mã") ...
gbr

3

Nó là 100% có thể. Đối với ttys / ptys (chế độ văn bản), cách dễ nhất là thêm shim vào / bin / {ba, da, a} sh (ví dụ: phân đoạn .code thứ hai, RX) và thay đổi điểm vào (giống như ELF virus sẽ). Chặn quyền truy cập vào điều đó trong trường hợp này, người ta có thể sửa đổi ~ / .profile hoặc ~ / .bashrc (v.v.) thành một mô hình giả thuyết rất đơn giản:

exec ~ / .malicy_programme

có thể tải mã đối tượng được chia sẻ động để ẩn chương trình độc hại đang được đề cập (ví dụ: cho phép .profile đọc và sửa đổi, nhưng ẩn dòng. Và / hoặc ẩn chương trình.)

Sau đó, người ta có thể sử dụng hệ thống UNIX98 pty (7) hoặc thậm chí đơn giản là đường ống (2) để ghi lại tất cả đầu vào trong một vỏ rẽ nhánh, giả sử fd không được đánh dấu FD_CLOEXEC và thậm chí thay đổi đầu vào của người dùng sang vỏ.

Trong X11, mặc dù kdm / gdm / xdm chạy dưới dạng setuid root (hoặc tương đương về khả năng [xem setcap (8)] hoặc bất kỳ mô hình bảo mật nào bạn đang sử dụng nếu không mặc định), rõ ràng mọi thứ trở nên phức tạp hơn. Nếu một người có thể nâng cao đặc quyền? iopl (2) hoặc ioperm (2) làm cho cuộc sống khá dễ dàng với truy cập trực tiếp vào các cổng bàn phím 0x60 / 0x64 trên x86. Vì chúng tôi cho rằng bạn không thể, chúng tôi phải tìm một tuyến đường khác. Tôi biết một số, nhưng tôi không hoàn toàn chắc chắn rằng bạn muốn có một bài luận văn về cách nó có thể và các giao diện liên quan.

Có thể nói, vòng 3, trojan không phải siêu người dùng hoàn toàn có thể xảy ra trên * nix, mặc dù cách ly quá trình, do các vấn đề khác nhau (đặc biệt là với X) đã thêm các tính năng cho trình nền chế độ người dùng để cung cấp, ví dụ: văn bản hỗ trợ lời nói cho tất cả các ứng dụng không ảnh hưởng đến bảo mật của hệ thống. Tôi đã phác thảo một cái hoạt động tương tự như ttysnoops (đã quá hạn sử dụng) và nó không yêu cầu root. Tôi có mã mẫu cho trường hợp này (sẽ bao gồm bên trong các thiết bị đầu cuối trong X), nhưng tôi chưa công bố nó. Nếu bạn muốn biết thêm thông tin, xin vui lòng liên hệ với tôi.


Câu hỏi cho biết "không có root hoặc sudo". Làm thế nào một kẻ tấn công sẽ sửa đổi một chương trình trong /binmà không có đặc quyền?
G-Man nói 'Phục hồi Monica'

0

Có, có thể cài đặt phần mềm mà không có đặc quyền su hoặc sudo; tuy nhiên, điều này thường được thực hiện mặc dù khai thác leo thang đặc quyền. Video đó thực hiện khá tốt các khả năng của keylogger đó, nhưng nó để lại một chút chi tiết về cài đặt keylogger. Có thể có một chút mánh khóe ở đây, nhưng thật khó để nói từ video.


Bạn đang vặn vẹo lời nói. Có thể cài đặt phần mềm vào thư mục hệ thống mà không cần chạy su hoặc sudo, nhưng khai thác leo thang đặc quyền sẽ cung cấp cho đặc quyền gốc của kẻ tấn công - còn gọi là đặc quyền "superuser" hoặc "su".
G-Man nói 'Phục hồi Monica'

0

Để thử nghiệm, tôi đã tạo một keylogger TTY có thể tự động đính kèm với tty của người dùng và chương trình không cần phải được cài đặt bằng root và có thể được sử dụng bởi bất kỳ tài khoản nào. Sau khi đính kèm, nó sẽ ghi nhật ký đầu vào khớp với mẫu được đưa ra trên dòng lệnh khi chương trình bắt đầu.


-3

Có thể với các hệ thống như Crunchbang (distro dựa trên Debian) chỉ cần thêm quyền vào tệp sudoers bằng cách sử dụng nano visudo trong thiết bị đầu cuối và thêm keylogger để tự khởi động như logkey cho Linux, ví dụ: logkey --start --output /home/user/.secret / đăng nhập

Chúc may mắn


5
Quyền root hoặc sudo là bắt buộc để chỉnh sửa tệp sudoers.
Mike Rowave
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.