Khai thác smart card trong Active directory

Thảo luận trong 'Infrastructure security' bắt đầu bởi nǝıH, 21/05/20, 02:05 PM.

  1. nǝıH

    nǝıH Moderator Thành viên BQT

    Tham gia: 23/03/20, 11:03 PM
    Bài viết: 9
    Đã được thích: 6
    Điểm thành tích:
    3
    Tôi có đọc được một bài viết khá hay của Hector Cuesta trên Sensepost mô tả kỹ thuật mạo danh người dùng khác bằng cách sửa đổi User Principal Name (UPN) trên Active Directory chỉ sử dụng thẻ thông minh.

    Hãy thử tưởng tưởng sẽ thật tuyệt vời nếu nhân viên trong công ty bạn đều có thể sử dụng smart card để đăng nhập vào máy tính, email, ứng dụng nội bộ,…mà không cần dùng đến mật khẩu. Tuy nhiên mọi cách thức đều có điểm yếu.

    Smart Card và Active directory

    Trước khi khai thác bất kỳ công nghệ nào, điều quan trọng là phải hiểu những điều cơ bản, vì vậy hãy xem cách Active Directory giao tiếp với smart card.

    Nếu bạn có một số kiến thức về hệ điều hành windows, bạn có thể biết rằng hàm băm NTLM / NetNTLM rất quan trọng để các máy tính windows giao tiếp với nhau và các hàm băm này được tạo từ một mật khẩu bí mật, thường là mật khẩu của người dùng. Vậy Active Directory xác thực Smart card như thế nào nếu người dùng không có bất kỳ mật khẩu nào?

    Khi bạn thiết lập tài khoản người dùng trong Active Directory để sử dụng smart card, mật khẩu tài khoản sẽ tự động được thay đổi thành chuỗi 120 ký tự ngẫu nhiên. Vì vậy, cơ hội bẻ khóa gần như bằng không với công nghệ hiện tại.

    Vậy cách thức hoạt động của nó là thế nào? Smart card chứa gì, quan trọng hơn là Smart card và Active Directory có mối liên quan như thế nào?

    Cách thức hoạt động

    Tất cả các thẻ thông minh đều chứa một chứng chỉ trong đó có nhiều trường giá trị, một trong số chúng là Subject Alternative Name (SAN). Trường này chứa email của chủ sở hữu thẻ (ví dụ: hector.cuesta@contoso.local). Để truy cập chứng chỉ trên smart card, người dùng cần nhập mã PIN sau đó được xác thực với số được lưu trên thẻ. Mỗi lần người dùng muốn đăng nhập vào máy tính của họ, trước tiên họ cần cho thẻ vào máy và sau đó nhập mã pin.

    1SCCert.jpg
    Thuộc tính SAN của smart card certificate

    Sau khi nhập mã pin, smart card sẽ cấp chứng chỉ cho máy tính và thông tin này được chuyển tiếp đến domain controller để xác thực tiếp. Khi domain controller nhận được chứng chỉ, nếu chữ ký này là đang tin cậy thì việc xác thực sẽ được tiến hành.

    2diagram.png
    Quy trình đăng nhập bằng smart card

    Ở đây ta có thể tấn công Active Directory bằng cách sửa đổi UPN của nạn nhân thành giá trị của SAN trong smart card của bạn (nghĩa là: chuyển UPN của nạn nhân sang cho bạn). Khi đó domain controller sẽ gửi lại chi tiết của nạn nhân thay vì bạn.

    Ai có thể sửa đổi UPN của người dùng?

    Việc ủy quyền trong Active Directory là rất phổ biến và bao gồm cả việc ủy quyền để thay đổi UPN của người dùng. Điều này có thể được tìm thấy trong các hướng dẫn của Microsoft, thậm chí có một mẫu để thực hiện việc thay đổi này.

    3image-85-1024x414.png
    Mẫu để ủy quyền thay đổi UPN trong Active Direcroty

    Vậy tại sao ai đó lại muốn ủy quyền để cho phép thay đổi UPN? Hãy tưởng tượng một công ty lớn với hàng ngàn nhân viên. Khi Cập nhật hồ sơ người dùng như: thay đổi địa chỉ / số điện thoại, sửa lỗi hoặc sửa đổi địa chỉ của người dùng là những nhiệm vụ phổ biến. Thông thường, quản trị viên cấp cao như domain admin không thực hiện các thay đổi, thay vào đó, người dùng có quyền thay đổi giá trị UPN bản thân. Vì vậy, người dùng có thể mạo danh bất kỳ người dùng nào khác trong Active Directory khi sử dụng smart card.

    Thực hiện cuộc tấn công

    Trước hết, bạn sẽ cần thay đổi UPN của người dùng được liên kết với smart card của bạn, vì thư mục hoạt động không cho phép các UPN trùng lặp tồn tại.

    4Screenshot-2020-04-23-at-10.43.06-1024x57.png
    Thay đổi UPN của bạn thành một người dùng ngẫu nhiên

    Tiếp theo, bạn sẽ cần sửa đổi UPN của nạn nhân để phù hợp với thuộc tính SAN trong smart card của bạn.

    5Screenshot-2020-04-23-at-10.43.13-1024x56.png
    Thay đổi UPN của nạn nhân để khớp SAN trong smart card của bạn (trong trường hợp này đây là UPN của bạn).

    Sau đó, bạn chỉ cần đăng nhập vào máy tính bằng thẻ thông minh của bạn và windows tự động sẽ đăng nhập với tư cách là nạn nhân.



    Cuối cùng, khôi phục UPN của nạn nhân, nếu không họ sẽ không thể đăng nhập bằng thẻ của họ được nữa.
    6Screenshot-2020-04-23-at-10.43.13-1-1024x56.png
    Khôi phục UPN của nạn nhân

    Cách phát hiện và khắc phục

    Trước hết, hãy theo dõi các sự kiện thay đổi trong UPN trong windows, chẳng hạn như ID của sự kiện và xác minh tính hợp lệ của những thay đổi này ngay khi chúng được thực hiện. Một việc quan trọng khác là xem xét ai có thể thực hiện các thay đổi UPN trong tổ chức của bạn. Càng ít người dùng được phép thực hiện thay đổi này càng tốt.

    Nói chung, các giá trị được sử dụng cho giao tiếp giữa smart card và Active Directory, SPN và UPN phải được coi là giá trị nhạy cảm, giống như mật khẩu. Vì vậy cần phải theo dõi các thay đổi và kiểm soát ai có thể sửa đổi chúng.

    Nguồn: Sensepost
     

    Các file đính kèm:

    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