Đánh cắp mật khẩu Windows qua hình nền máy tính

Thảo luận trong 'Exploitation' bắt đầu bởi Gấu, 15/09/20, 06:09 PM.

  1. Gấu

    Gấu Moderator Thành viên BQT

    Tham gia: 15/04/20, 09:04 AM
    Bài viết: 10
    Đã được thích: 6
    Điểm thành tích:
    3
    wpaper-1200.jpg
    Nếu một loại tệp mà bạn coi là vô hại trong nhiều năm đột nhiên trở nên rất nguy hiểm, bạn sẽ phải đối mặt với hai tình huống:
    • Bạn sẽ mất bao lâu để bỏ một thói quen tin tưởng vào các tệp đó?
    • Kẻ xấu sẽ mất bao lâu để bắt đầu khai thác phát hiện mới ?
    Chúng ta đều biết những rủi ro do các tệp EXE lạ gây ra vì EXE là phần mở rộng cho các chương trình Windows gốc - ngay cả bản thân hệ điều hành cũng được triển khai như một tập hợp các EXE.
    Hầu hết chúng ta đều phải cảnh giác với các tệp DLL, thực chất là một file EXE đặc biệt, có phần mở rộng khác. Chúng thường được sử dụng kết hợp với các chương trình khác, thay vì được tải riêng.
    Chúng ta đều biết phải thận trọng với DOC và DOCX cũng như tất cả các loại tệp Office khác vì chúng có thể bao gồm các chương trình nhúng macro.
    Chúng ta cũng biết về một loạt các tệp script rủi ro như JS (cho JavaScript), VBS (Visual Basic Script), PS1 (Powershell) và nhiều tệp khác nhưng chúng lại được coi là chuỗi lệnh hệ thống khi được chính Windows xử lý.
    Chúng ta thậm chí phải cảnh giác với Windows vì cách tiếp cận mặc định của nó đối với tên tệp - như trong trường hợp các tệp alert và alert.txt dưới đây, chúng cố gắng thuyết phục chúng ta là văn bản an toàn.
    wp-file-only-640.png

    Các file này ở bên trái có icon như những cuộn giấy thời trung cổ nhưng hoàn toàn không phải là file text.
    Tuy nhiên, icon ở giữa trông giống như một tài liệu kỹ thuật số hiện đại, sắc nét và đi kèm với một tệp thực sự document mới là một tệp văn bản.
    Windows mặc định loại bỏ các phần extension trong tên file, là các ký tự quan trọng nằm sau dấu chấm cuối cùng trong tên tệp, chẳng hạn như .docx ở cuối tệp Word TaxReturn.docx hoặc .exe ở cuối chương trình Notepad .exe.
    Chính Windows thường dựa vào các phần extension để xử lý khi click vào file - ví dụ: xem nó một cách vô hại hay thực thi nó một cách rủi ro.
    Tuy nhiên, hệ điều hành lại giả định rằng bạn không cần phải bận tâm với những ký tự đó ở cuối tên tệp của mình.
    Thật vậy, nếu chúng ta bật View > File name extensions option (highly recomended!) trong File Explorer, bạn sẽ thấy sự thật nguy hiểm đằng sau những tệp “scroll icon” ở trên, chúng không đơn giản chỉ là file alert và alert.txt:
    wp-file-ext-640.png
    Đó là các tệp .js và nếu bạn click đúp vào chúng và nghĩ rằng bạn sắp mở chúng ra để xem nội dung thì sẽ có một sự ngạc nhiên lớn chào đón bạn.
    Windows sẽ tự động chạy chúng dưới dạng các chương trình JavaScript all-powerful - không phải để đảm bảo an toàn so với trình duyệt web của bạn, mà trực tiếp trên máy tính của bạn dưới dạng các ứng dụng cục bộ.

    File Theme
    Ở phía bên phải, bạn sẽ thấy các tệp có phần mở rộng .theme, có biểu tượng mô tả giống một loạt hình nền.
    Chúng tôi cá rằng nếu bạn đã từng tải xuống và sử dụng tệp .theme (hoặc tệp .themepack, chỉ là một tập hợp các tệp .theme được gói lại với nhau), bạn sẽ không phải lo lắng quá nhiều về bảo mật.
    Nói một cách dễ hiểu, Windows Themes chỉ là các text file kiểu INI chỉ định các cài đặt khác nhau cho màu nền, hình nền và hiệu ứng hình ảnh.
    Dưới đây là một ví dụ đơn giản, một bản sao của tệp justatest.theme được mô tả ở trên:
    Theme 1.JPG
    (Chúng tôi không biết đoạn text MTSM = DABJDKT ở dòng cuối cùng có nghĩa là gì hoặc nó dùng để làm gì; chúng tôi chỉ biết rằng Microsoft khẳng định rằng bạn có nó trong tệp và thông báo “You do not have a choice of values for this parameter.”)
    Phải thừa nhận rằng, chỉ cần tải các tệp hình ảnh không đáng tin cậy như Wallpaper được chỉ định ở trên, về mặt lý thuyết có thể gây nguy hiểm.
    Giả sử có một lỗ hổng chưa được vá trong một trong các ứng dụng của bạn hoặc trong chính Windows, có thể bị khai thác để lừa máy tính của bạn thực thi một đoạn mã thực thi khi một tệp hình ảnh được tạo có chủ ý được mở.
    Tuy nhiên, trên thực tế, loại lỗ hổng đó ngày nay rất hiếm - khi có bản vá nhanh chóng sau khi được phát hiện hoặc được bảo mật cẩn thận và thường được kích hoạt bằng cách gửi trực tiếp hình ảnh vào máy tính của bạn trong một trang web hoặc một email hơn là dựa vào một tệp Theme để tham chiếu chúng một cách gián tiếp.
    Do đó, nguy cơ do Theme booby-trapped là không đáng ngại và có thể quản lý được - khiến phần lớn các tệp .theme được đánh giá là vô hại.
    Nhưng theo nghiên cứu gần đây của nhà nghiên cứu bảo mật @bohops, Themes luôn là "miếng mồi ngon" bị tội phạm mạng khai thác - mặc dù theo cách gián tiếp để lừa đảo lấy mật khẩu, không phải trực tiếp lây nhiễm phần mềm độc hại vào máy tính.
    [​IMG]
    Các tệp .theme được sử dụng khá đơn giản như hỗ trợ tự động cài đặt và render một hoặc nhiều file nội bộ. Đây cũng là cách CIA đã sử dụng để kích hoạt khai thác:
    [​IMG]
    Trong hình ảnh động ở trên, có thể thấy khi click đúp vào tệp .theme, file sẽ khởi chạy ứng dụng Windows Settings, tự động điều hướng đến phần Preferences > Themes, sau đó mở, sao chép, chọn và hiển thị tệp hình nền mới justatest.png trên màn hình.
    Cho đến bước này, mọi thứ vẫn chưa có gì nguy hại.
    Tuy nhiên, Bohops đặt ra vấn đề điều gì sẽ xảy ra nếu anh ta sử dụng file Theme để tham chiếu hình ảnh trên internet, sử dụng URL web thay vì tên tệp thông thường.
    Nội dung file justahack.theme (tương tự file justatest.theme ở trên):
    Theme 2.JPG

    Chúng ta đã thay đổi tên DisplayName của Theme và “filename” được chỉ định trên dòng Wallpaper.
    Bohops nhận ra ứng dụng Setting sẽ nhận URL trong tệp Theme, tự động kết nối với URL đó mà không hiển thị bất kỳ loại cửa sổ trình duyệt nào, và cố gắng tìm, nạp tệp được tham chiếu.
    Điều đó đáng lo ngại hơn khi đọc một file đã có trên máy tính của bạn, nhưng có lẽ vẫn không đủ để phân loại lại Theme là không vô hại nữa.

    Một bước nữa
    Tuy nhiên, Bohops đã có thể tiến thêm một bước nữa.

    Trick mà anh ấy tìm ra rất đơn giản nhưng hiệu quả đáng ngạc nhiên: trỏ tệp Theme vào máy chủ web mà bạn kiểm soát, cấu hình trang web của bạn để yêu cầu xác thực và xem liệu máy tính Windows có cung cấp mật khẩu cho bạn hay không.
    Chúng tôi thực hiện điều đó bằng cách mô phỏng một máy chủ web của riêng chúng tôi, thông qua một vài dòng Lua để chúng tôi có thể theo dõi cách mà Setting app hoạt động.
    Trong tập lệnh máy chủ của mình, chúng tôi đã thu thập các HTTP header và sử dụng response HTTP 401 cơ bản (“phải xác thực”) khi Settings app gọi lần đầu tiên.
    Tại đây, chúng tôi kiểm tra xem request web không có Authorization trong header, đây là web client biểu thị rằng nó đã trải qua quá trình đăng nhập:
    [​IMG]

    Lưu ý rằng với xác thực HTTP Basic, chúng ta có thể chọn thông báo mà chúng ta muốn đầu bên kia hiển thị khi nó nhắc nhập bằng chứng xác thực của bạn.
    Client respond câu trả lời 401 Must authenticate bằng cách thu thập username và password của bạn bằng cách nào đó, kết hợp chúng thành một chuỗi văn bản có dấu hai chấm :)) ở giữa, mã hóa chúng bằng Base64 và bao gồm kết quả trong lần tìm nạp tệp tiếp theo.
    Đây là những gì xảy ra:
    [​IMG]
    Lưu ý cách cửa sổ bật lên thông tin xác thực được gắn thẻ là thuộc về ứng dụng Windows Settings chứ không phải trình duyệt của bạn, khiến nó trông có vẻ tin cậy.
    Bạn sẽ phát hiện ra trick ở đây, vì hộp thoại mật khẩu nêu rõ tên trang web mà nó đang kết nối và thông báo rõ đó là trang web yêu cầu mật khẩu, không phải Windows yêu cầu mật khẩu:
    [​IMG]

    Setting app thậm chí sẽ kết nối với một trang web không phải HTTPS để tìm nạp các tệp Theme, mặc dù nó sẽ cảnh báo bạn không nhập mật khẩu của mình do thiếu mã hóa:
    [​IMG]
    (Nếu bạn cố gắng sử dụng HTTPS nhưng không cung cấp chứng chỉ web hợp lệ mà Windows tin cậy, Setting app sẽ âm thầm bỏ qua.)

    Vấn đề có trở nên tồi tệ hơn không?
    Chuyên gia Bohops và những người khác đã chỉ ra, bạn có thể sử dụng đường dẫn Windows UNC thay vì tên trang web trong tệp Theme. Điều này cho phép Windows sử dụng mạng dựa trên tệp của nó thay vì kết nối HTTP thông thường để truy xuất tệp.
    Đường dẫn UNC được người dùng mạng Windows biết đến và thường dựa trên tên máy tính Windows và tên mạng chia sẻ, chẳng hạn như \\YOURPC\C$\Windows\System32\NOTEPAD.EXE.
    Nhưng bạn có thể đặt tên miền internet hoặc IP vào tên Windows UNC và Windows sẽ tự động kích hoạt ứng dụng WebDAV client tích hợp của nó để tìm nạp tệp, thay vì sử dụng các giao thức mạng của riêng nó.
    WebDAV (Web Distributed Authoring and Versoning) là một phiên bản được sửa đổi của HTTP dùng để hỗ trợ các kho dữ liệu dựa trên mạng hỗ trợ các tệp và thư mục giống như một hệ thống lưu trữ nội bộ hoặc nối mạng thông thường như NTFS hoặc CIFS.
    Chúng tôi có thể Setting để sử dụng WebDAV qua TLS bằng cách chỉ định hình nền của chúng tôi như sau:
    Theme 3.JPG

    Về lý thuyết, việc để Windows kết nối với tài nguyên WebDAV yêu cầu xác thực, phải kích hoạt cửa sổ đăng nhập mạng kiểu Windows, sử dụng xác thực Windows NTLM (gốc) thay vì cửa sổ bật lên thông tin xác thực kiểu HTTP kém thuyết phục hơn mà chúng ta đã thấy ở trên.
    Điều này nhiều khả năng khiến tệp Theme giả mạo có thể lừa bạn nhập username và mật khẩu Windows thông thường của bạn, mặc dù xác thực NTLM sử dụng hệ thống băm challenge-response có nghĩ là dạng plain text mật khẩu của bạn sẽ không bị lộ như ở trên khi chúng tôi đã buộc xác thực HTTP cơ bản.
    Do đó, kẻ tấn công sử dụng phương pháp UNC sẽ phải thu thập một mã băm mật khẩu của bạn và bẻ khóa mật khẩu - điều này sẽ bất khả thi nếu bạn lựa chọn khôn ngoan.
    Tuy nhiên, tội phạm mạng có thể khôi phục mật khẩu nếu chúng có điều kiện bẻ khóa (có thể được thực hiện ngoại tuyến).

    Tuy nhiên, chúng tôi không đạt được bước tiến nào khi sử dụng tên tệp UNC.
    Chúng tôi có thể yêu cầu Windows tạo kết nối WebDAV an toàn với máy chủ WebDAV giả lập, giúp giám sát các yêu cầu từ Setting app.
    Chúng tôi đã sử dụng máy chủ Lua và lần này chúng tôi thu được transcript sau:
    Theme 4.JPG
    Phiên được mở ra bằng lệnh OPTIONS, trong đó client xác minh nó đang trao đổi với máy chủ WebDAV chứ không phải với máy chủ HTTP mà thiếu phần mở rộng WebDAV.
    Lệnh PROPFIND theo sau, về bản chất WebDAV tương đương với cặp hàm Windows FindFirstFile() / FindNextFile(), và cho chúng ta biết tệp Windows muốn tải xuống.
    Chúng tôi đã reply Windows và yêu cầu sử dụng xác thực NTLM HTTP
    Các nhà nghiên cứu khác xem xét hành vi của WebDAV và báo cáo client WebDAV phản hồi lại các yêu cầu xác thực HTTP NTLM bằng cách lặp lại nhiều lần yêu cầu chưa được xác thực ban đầu, trước khi chấp nhận thất bại và trải qua quá trình challenge-response NTLM.
    Điều này tiết lộ một bản băm mật khẩu Windows của bạn có thể bị tấn công và bẻ khóa nếu kẻ tấn công may mắn.
    Tuy nhiên, trong các bài test nhấp đúp vào tệp Theme chỉ định tài nguyên UNC từ xa, chúng tôi không thể kích hoạt Setting cố gắng xác thực, chứ đừng nói đến việc tiết lộ mã băm mật khẩu Windows.
    Sau 19 lần cố gắng tìm tệp nowwithwebdav.png mà không cần xác thực, Setting app không lần nào thành công.
    Chúng tôi không thể khẳng định liệu đó có phải là do hạn chế bảo mật có chủ ý trong phần liên quan của ứng dụng Cài đặt hay không, đối với cài đặt Windows NTLM mặc định dành riêng cho phiên bản hệ điều hành chúng tôi đang sử dụng (Windows 10 Enterprise 19041.450), giới hạn trong máy chủ WebDAV giả mạo của chúng tôi.

    Hướng dẫn bảo mật
    May mắn thay, đây không phải là một vấn đề bảo mật nghiêm trọng và có thể dễ dàng tránh được, ngay cả khi kẻ xấu thực sự muốn tấn công.
    Dưới đây là các bước bảo vệ bạn:
    • Đọc kỹ cá thông báo mật khẩu.
    • Tránh mở các tệp lạ.
    • Bật tùy chọn để hiển thị phần mở rộng tệp.
    • Sử dụng sản phẩm an ninh mạng bao gồm tính năng lọc web outbound.
    • Chọn mật khẩu thích hợp.
    • Báo cáo nội dung bất thường hoặc đáng ngờ ngay lập tức cho nhóm bảo mật của bạn.

     

    Các file đính kèm:

    Last edited by a moderator: 16/09/20, 02:09 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan