Skip to main content

Lỗ hổng trên Samba cho phép tin tặc xâm nhập máy tính Linux từ xa

Samba là một phần mềm mã nguồn mở chạy trên các nền tảng HĐH phổ biến như Windows, Linux, IBM hay OpenVMS. Nó cho phép người dùng các hệ điều hành không phải Windows như GNU/Linux hay macOS chia sẻ thư mục, tập tin, máy tin với Windows thông qua giao thức SMB.

Lỗ hổng thực thi đoạn mã từ xa (CVE-2017-7497) mới được phát hiện ảnh hưởng tới tất cả các phiên bản mới kể từ Samba 3.5.0 phát hành vào 1/3/2010. Samba viết trên trang của mình vào hôm thứ Tư:

" Tất cả các phiên bản Samba từ 3.5.0 trở về sau đều có lỗ hổng thực thi đoạn mã từ xa, cho phép các máy client nhiễm độc tải nội dung lên thư mục dùng chung và khiến máy chủ tải rồi thực thi tập tin".
 Liệu có phải đây là phiên bản Linux của lỗ hổng EternalBlue?

Theo bộ tìm kiếm Shodan, hơn 485.000 máy tính cài đặt Samba sử dụng cổng 445 để truy cập Internet. Theo các nhà nghiên cứu tại Rapid 7, hơn 104.000 endpoint trên Internet chạy các phiên bản Samba có lỗ hổng, trong số đó 92.000 endpoint chạy các phiên bản Samba không được hỗ trợ.


Vì Samba chính là giao thức SMB sử dụng trên hệ thống Linux và Unix nên một vài chuyên gia cho rằng nó chính là phiên bản Linux của EternalBlue, lỗ hổng được WannaCry khai thác. Liệu ta có nên gọi đây là SambaCry?

Hãy nhớ rằng số lượng hệ thống có lỗ hổng là rất nhiều và việc khai thác lỗ hổng cũng rất dễ dàng, Samba hoàn toàn có thể tạo nên một cuộc tấn công quy mô lớn. Ngay cả mạng riêng tư Home Network cũng có thể bị khai thác nếu được dùng với thiết bị có lưu trữ gắn vào mạng (NAS).
Khai thác đoạn mã (sử dụng công cụ Metasploit)

Lỗ hổng này được khai thác qua cách Samba chia sẻ tập tin. Kẻ tấn công sử dụng đoạn module Samba ngẫu nhiên để tải lên thư mục chung và khi máy chủ người dùng tải về, nó sẽ thực thi đoạn mã nhiễm độc. Việc khai thác lỗ hổng rất đơn giản, chỉ cần một đoạn mã để thực thi đoạn mã độc trên máy đã bị nhiễm.

simple.create_pipe("/path/to/target.so")

Lỗ hổng Samba đã được đưa lên Metasploit (một framework dùng để kiểm tra, sử dụng các đoạn mã khai thác lỗ hổng), cho phép các nhà nghiên cứu cũng như hacker dễ dàng khai thác lỗ hổng.


Bán vá

Samba đã vá cho các phiên bản mới 4.6.4, 4..5.10 và 4.4.14. Người dùng các phiên bản vẫn còn lỗ hổng Samba được khuyến khích nhanh chóng cài đặt bản vá. Nếu không thể cập nhật ngay lên những bản mới nhất của Samba, bạn có thể tránh lỗ hổng này bằng cách thêm dòng sau vào tập tin smb.conf của Samba.

nt pipe support = no

Sau khi thêm vào, bạn chỉ cần khởi động lại SMB daemon (smbd) là xong. Thao tác này sẽ ngăn không cho máy client xâm nhập vào mạng cũng như vô hiệu hóa một số chức năng để kết nối với Windows.

Dù các nhà phát hành bản phân phối Linux, bao gồm Red Hat và Ubuntu đã đưa ra bản vá cho người dùng, mối nguy vẫn đến từ các thiết bị NAS khi chúng chưa thể cập nhật nhanh được. Craig Williams của hãng Cisco nói rằng bởi hầu hết các thiết bị NAS chạy Samba và chứa những dữ liệu quan trọng, lỗ hổng này có "nguy cơ trở thành sâu ransomware quy mô lớn đầu tiên trên Linux".

Trong khi đó, Netgear cũng đưa ra lời khuyên bảo mật liên quan tới CVE-2017-7494, rằng rất nhiều router và sản phẩm NAS đã bị ảnh hưởng bởi sử dụng phiên bản Samba 3.5.0 trở lên. Tuy vậy, công ty cũng mới phát hành hướng dẫn cập nhật cho các sản phẩm ReadyNAS chạy OS 6.x.

Nguồn: Quantrimang.com

Comments

Popular posts from this blog

Hướng dẫn cài LibreOffice trên Kali Linux

Xin chào mọi người ! Một số bạn không biết cài bộ công cụ văn phòng nào cho máy tính cài HĐH Kali Linux. Hôm nay mình sẽ hướng dẫn cho các bạn cài  LibreOffice trên Kali Linux. Nó giống như bộ Office của Microsoft và trên thực tế thì không bằng Microsoft được đâu. Việc cài đặt bộ Office này khá là đơn giản. Đầu tiên để cài thì bạn hãy tải LibreOffice phù hợp với phiên bản của máy tính đang sử dụng. Như của mình hiện tại là phiên bản LibreOffice_5.2.4 + Link Download (Download) Hãy tải phiên bản mới nhất có đuôi *.deb cho dễ cài đặt. Sau khi tải xong có 2 cách để các bạn cài đặt nó: + Cách 1: Sử dụng phần mềm Gdebi để cài đặt các file *.deb một cách dễ dàng. Tuy nhiên rất hay bị lỗi và không cài đặt được. + Cách 2: (Nên theo cách này) 1- Giải nén file LibreOffice ra. 2- Mở Terminal ra gõ:   ~# cd Downloads Các bạn có thể dùng lệnh ls để biết chính xác tên thư mục của mình và copy paste cho chuẩn. Tiếp sau đó thì gõ:   ~# cd LibreOffice_5....

Master Proptypes trong React

React là một thư viện JavaScript cho việc xây dựng giao diện người dùng (UI). React giúp quản lý dễ các trạng thái (state) của ứng dụng hơn và sẽ thay đổi UI khi mà state thay đổi. React dựa vào các component và mỗi component có state của nó. Nếu như là state của component dùng setState() và có thể thể props từ component cha. The Problem Từ khi Reatc là một thư viện JavaScript và JS không cung cấp bất cứ thứ gì về type-checking , bỏ qua việc đó khi sử dụng props component có thể khiến bạn gặp bugs trong ứng dụng. Solution Bạn có thể dùng Js extensions như TypeScript cho việc checking, nhưng nếu bạn không muốn sử dụng nó, React cung cấp đầy đủ cho tính năng type-checking verify props của các component chính xác type. Sử dụng PropTypes, bạn có thể chắc chắn các component nhận đúng type của props. Ví dụ, ta có Person component và nhận 2 props: `name` và `age`. Sử dụng PropTypes, ta có thể chắc chắn `name` luôn luôn là `string` và `age` luôn luôn là number. Installing Pr...

Pretty JSON Output

Bạn cảm thấy khó chịu khi JSON output trên cùng 1 dòng, điều đó sẽ chấm dứt với JSON.stringify giúp output ngắn gọn hơn và dễ nhìn hơn. Chỉ cần truyền vào tham số thứ 3 là khoảng cách (space) BOOM ! Tab Spacing Để sử dụng Tab bạn chỉ cần truyền vào tham số "\t" . Ví dụ: Understanding the “Space” argument Tham số thứ 3 của JSON.stringify sử dụng khoảng cách. Nó sẽ giúp cho string output của bạn gọn gàng và dễ nhìn hơn. Nó có 2 loại tham số truyền vào: Number và String . a. Number Bạn có thể dùng bất kì các số từ 0 tới 10. b. String Bạn có thể dùng string thay cho khoảng trống của JSON.stringify. Tối đa bạn chỉ được dùng 10 kí tự. Nếu lớn hơn nó sẽ chỉ lấy 10 kí tự đầu tiên. Hãy thử nó: What is the 2nd parameter ? Tham số thứ 2 dùng để replace. Nó sẽ có 2 loại: Array và Function. a. Array Tôi sẽ demo thử cho bạn với array để thấy sự thú vị của nó: Bạn có thể chọn các cặp key-value bạn muốn output ra...