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

Cách mã hóa mật khẩu trong Kali Linux 2016.2 | Encrypt Passwords

Xin chào tất cả mọi người ! Như tất cả mọi người cũng đã biết việc mã hóa mật khẩu là vô cùng quan trọng trong thời buổi công nghệ thông tin phát triển như vũ bão hiện nay. Việc để mật khẩu một cách bình thường là vô cùng nguy hiểm. Hôm nay tôi xin giới thiệu cho tất cả mọi người một công cụ chuyên mã hóa mật khẩu trên Kali Linux đó chính là HashCode Tool. Việc cài đặt và sử dụng HashCode rất đơn giản, chúng ta sẽ bắt đầu luôn nào ! Bước 1:Download  Để Download HashCode các bạn có thể tải bằng cách: ~# cd Desktop ~# git clone https://github.com/Sup3r-Us3r/HashCode.git Sau đó chờ tải file HashCode về. File sẽ được lưu ở ngoài màn hình Desktop. Bước 2: Cài đặt (Install) Sau khi file đã tải xong các bạn trỏ tới file: ~# cd HashCode Chạy 3 lệnh tiếp theo: ~# sudo chmod +x hashcode-en.py ~# sudo chmod +x hashcode-pt.py ~# sudo chmod +x hashcodegui.py Sau khi chạy xong 3 lệnh trên vậy là việc cài đặt của chúng ta đã hoàn tất và bây giờ chúng ta hãy c...

ES6 Arrow Function Cheatsheet

Dưới đây là một số cách để bạn có thể viết arrow functions trong ES6 . // Explicit Return, Multi-Line a => { return a } // Explicit Return, Single-Line a => { return a } // Implicit Return, Multi-line a => ( a ) // Implicit Return, Single-Line a => a // Multiple Parameters, Parentheses Required (a, b) => a, b Implicit vs Explicit Return Mỗi chúng ta có một cách viết arrow functions khác nhau. Với normal functions , nếu bạn muốn return 1 cái gì đó, bạn sẽ dùng từ khóa return . Arrow functions cũng như vậy. Khi bạn dùng từ khóa return , nó sẽ gọi là ` explicit return `. Hãy thử coi các ví dụ sau: Có thể nhận rõ ràng sự khác biệt. Khi nào thì dùng dấu ngoặc nhọn` {} `, bạn cần phải chính xác cái mà return ra. Tuy nhiên, nếu không dùng ` {} `, return sẽ là bao hàm, và bạn không cần chúng. Có một cách gọi tên cho việc đó. Khi bạn sử dụng dấu ngoặc nhọn như ở Example B thì nó gọi là ` block body `, và cú pháp ở Example C gọi là ` concise body `....

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...