Trong hệ thống tập tin NTFS, các luồng chứa dữ liệu được ghi vào tập tin và cung cấp nhiều thông tin về tập tin hơn các thuộc tính và thuộc tính. Ví dụ: bạn có thể tạo luồng chứa từ khóa tìm kiếm hoặc danh tính của tài khoản người dùng tạo ra tập tin.
Mặc dù khái niệm này là khái niệm lạ đối với bạn, tuy nhiên bạn sử dụng chúng hàng ngày khi truy cập các tập tin trên bất kỳ hệ thống Windows nào. Trong nội dung bài viết này sẽ giới thiệu cơ bản về NTFS ADS, cách mà hacker lợi dụng tính năng này để có thể khai thác các tập tin để tấn công vào hệ thống của bạn.
Luồng dữ liệu mặc định và luồng dữ liệu thay thế (Default Data Streams and Alternate Data Streams)
Dữ liệu tập tin (file stream) là một chuỗi byte chứa các dữ liệu về tập tin như từ khóa, thông tin người tạo ra tập tin,...Và hãy xem luồng dữ liệu này là một tập tin, được nằm ẩn trong một tập tin hợp pháp đã được tạo ra. Mỗi luồng dữ liệu này cũng có khóa riêng và cũng chiếm dung lượng lưu trữ như tập tin bình thường.
Mỗi file NTFS khi được tạo ra, sẽ chứa các dữ liệu bình thường trong nó, ví dụ như dữ liệu text trong file *.txt và dữ liệu thực thi trong file *.exe. Và các thông tin của tập tin đó được lưu trữ trong biến $Data. Và do biến này là biến mặc định nên khi tạo ra các file, chúng ta không cần phải khai báo nên thường luồng dữa liệu này là trống (được đặt thành "").
Ngoài luồng dữ liệu mặc định (DDS) thì một tập tin còn có nhiều luồng dữ liệu thay thế (ADSs). Và mỗi ADS đều phải được đặt tên, dữ liệu mặc định này sẽ không thay đổi khi chúng ta thêm nhiều ADS.
Cách để tạo luồng dữ liệu thay thế (ADS)
Để tạo một ADS rất đơn giản, bằng cách bạn thêm dấu ":" vào sau tập tin, sau đó bạn thêm vào tên luồng (có thể là tên biến hoặc là file). Bạn có thể thêm nhiều luồng ADS vào trong 1 tập tin và lưu trữ chúng. Ví dụ như bạn có thể tạo các tập tin:
taptin.txt:ads1
taptin.txt:ads2
taptin.txt:noidungan.txt
Để phân tích mặc lợi thì ADS cũng có nhiều mặc lợi trong việc lưu trữ, khai thác dữ liệu ở nhiều hệ thống. Tuy nhiên, hacker cũng có thể lợi dụng vào ADS để có thể tấn công vào hệ thống, cài cắm mã độc, virus, ....Việc để một nội dung, một tập tin trong một tập tin khác nó giống như một ngăn bí mật để che mắt mọi người. Việc này có thể tránh được một số trường hợp phòng, chống và phát hiện mã độc cơ bản. Hacker có thể giấu bất kỳ tập tin nào vào tập tin họ muốn như: hình ảnh, âm thanh hoặc các tập tin độc hại như virus, trojan, ransomware,...
Và do nội dung ADS là nội dung ẩn nên người dùng không thể nhìn thấy cũng như không thể list được nội dung thông qua các lệnh cơ bản.
- echo
- more
- type
Cách để phát hiện ra tập tin có chứa các luồng ADS ẩn
Để xem các tập tin có các luồng stream trong thư mục thì ta có thể dùng một số tham số có sẵn trong lệnh DIR
