Tấn công HID là gì?

1. Khái niệm
HID là viết tắt của Human Interface Device là một phân lớp trong tiêu chuẩn USB cho các thiết bị máy tính được vận hành bởi con người. Nói theo cách chi tiết hơn, HID là một tiêu chuẩn được tạo ra để đơn giản hóa quá trình cài đặt thiết bị đầu vào.
Kỹ thuật tấn công sử dụng công cụ HID là một sự kết hợp của phần cứng, phần mềm vượt qua cơ chế kiểm soát đầu vào của hệ điều hành
2. Phương thức hoạt động

Nhìn vào mô hình giả lập sau đây, ta có thể khái quát phương thức hoạt động của công cụ HID như sau:
- USB /bàn phím thông thường khi kết nối đến máy tính sẽ hoạt động các tính năng bình thường của nó.
- USB chứa mã độc khi cắm vào máy tính sẽ bị trình diệt Virus khử ngay lập tức, hoặc bị tắt mất autorun, phải chạy script bằng tay.
- Đối với bàn phím sử dụng để thực thi mã độc, trình diệt Virus sẽ bỏ qua vì máy tính nhận nó như một thiết bị ngoại vi, hiện lên là “Keyboard” trong Device Manager.
Khi kết nối một HID độc hại, nó bắt đầu thực hiện các hành động tấn công đã được lập trình sẵn. Từ đó, kẻ tấn công có thể xâm nhập vào hệ thống máy tính, chiếm quyền điều khiển, đánh cắp dữ liệu và thực thi các câu lệnh độc hại.
Do đặc tính linh động và có thể định nghĩa lại vi xử lý, HID có thể ẩn mình dưới nhiều hình dạng và chức năng khác nhau như: Bộ sạc nguồn, bàn phím, quạt USB, đèn USB, đầu đọc thẻ nhớ, đồng hồ, v.v.
Thông thường, chúng trông giống như chiếc USB nhưng trên thực tế, các thiết bị này hoạt động như là một bàn phím trong hệ thống.

Trên thực tế thì hệ điều hành không biết gì về thiết bị kết nối. Nó phải đợi cho đến khi thiết bị gửi dữ liệu để phân loại đây là bàn phím hay USB. Khi đó các thiết bị sẽ thông báo cho hệ điều hành về thông tin phần cứng thông qua bộ mô tả để hệ điều hành kiểm tra.
Thiết bị lưu trữ như USB có bộ mã là 08h trong khi đó bàn phím hay HID có bộ mã là 03h
- Sau đó máy tính sẽ phân tích cú pháp trong bộ mô tả cho phép nó nhận và diễn giải chính xác các gói từ thiết bị
- Đối với USB: Hệ điều hành sẽ xử lý các USB như bình thường VD: Tìm file autorun và chặn hoặc xóa bỏ (kể từ win7)
- Đối với bàn phím: Hệ điều hành tạo kênh kết nối với bàn phím như bình thường
3. Chế tạo công cụ tấn công HID như thế nào?
B1: Chuẩn bị công cụ

- Arduino Pro Micro sử dụng chip ATMega32u4 có hỗ trợ USB giúp nó linh hoạt hơn hẳn so với Pro mini, nên nạp code không cần dùng thêm bộ chuyển đổi USB. Arduino Pro Micro được hỗ trợ trình biên dịch Arduino IDE V1.0.1 trở lên, nên việc lập trình với nó cũng rất đơn giản.
- Ngoài ra Board mạch này có thể sử dụng các chức năng đặc biệt như giả lập bàn phím, chuột virtual Serial/ COM port mà các board thông dụng như Uno hay Mega không có, rất phù hợp để có thể làm công cụ HID.
- Cáp chuyển đổi cổng Micro USB sang cổng USB để kết nối với máy nạn nhân
- Trình biên dịch Arduino IDE là phần mềm mã nguồn mở giúp mình có thể lập trình và nạp vào mạch một cách dễ dàng
- Metasploit là bộ công cụ có sẵn trong linux để tạo mã độc

B2: Xây dựng chương trình

Tấn công HID mô phỏng các thao tác nhập từ bàn phím, như sơ đồ trên đây, nội dung chính chương trình mình xây dựng là:
Sau khi cắm được công cụ HID vào máy nạn nhân, mở Window Security, tiếp đó mở Virus & Threat protection setting sau đó tắt nó
Tiếp tục mở powershell với quyền admin, download và thực thi mã độc đã được chuẩn bị sẵn, kết thúc tấn công
VD: Một phần chương trình

Để làm được thử nghiệm này, mình đã tìm hiểu các lệnh của thư viện Keyboard.h
Thư viện này chỉ sử dụng cho những board hỗ trợ HID USB như Leonardo hay Pro Micro và đã được tích hợp sẵn
- Ở đây chương trình mở windows security bằng việc ấn phím cửa sổ để mở thanh taskbar
- Keyboard.press() : Hoạt động như thể một phím được nhấn giữ trên bàn phím
- Keyboard.releaseAll(): Chuyển sang tất cả các phím hiện đang được nhấn sau câu lệnh keyboard.press()
- Sau đó nhập Windows Security vào ô tìm kiếm
- Keyboard.print(): để gửi một ký tự, chuỗi đến máy tính (dưới dạng 1 lần nhấn phím hoặc dưới dạng tổ hợp phím)
- Delay: Có nhiệm vụ dừng chương trình trong thời gian là mili giây
Nhấn enter để mở window security

Sau khi xây dựng chương trình, thực hiện biên dịch và nạp thông qua nút verify và upload trong phần mềm Arduino IDE - Phần mềm Arduino mã nguồn mở (IDE) giúp dễ dàng viết mã và tải nó lên bảng. Phần mềm này có thể được sử dụng với bất kỳ bảng Arduino nào
B3: Phát tán công cụ
Trên thực tế có thể phát tán công cụ HID thông qua các hình thức khác nhau. Có 2 phương pháp phổ biến:
- Thứ nhất là nội gián cắm thiết bị vào máy mục tiêu khi người dùng không cảnh giác hoặc bỏ ra ngoài
- Thứ hai là đánh rơi ở gần cơ sở mục tiêu, dẫn đến việc người dùng trong cuộc vô tình nhầm lẫn cắm thiết bị vào máy tính. Tỉ lệ xảy ra là khá cao đặc biệt nếu mục tiêu là người dùng thông thường. Ngay tại một sự kiện bảo mật cao như tại Hội nghị RSA năm 2017, các nhà nghiên cứu đã thử nghiệm việc thả chiếc USB ở các địa điểm công cộng và đã có 162 lần thực thi từ 100 USB độc đã xảy ra.
B4: Thử nghiệm

Chuẩn bị:
- 1 máy nạn nhân cài hệ điều hành Microsoft Windows 10 pro
- 1 máy hacker cài hệ điều hành Kali – với địa chỉ 192.168.0.60 tên miền là nhuankma.xyz
- 1 mạch Arduino Pro Micro để xây dựng công cụ tấn công HID
Việc tấn công sử dụng công cụ HID được thực hiện tóm tắt theo các bước sau:
Bước 1: Kẻ tấn công tạo ra một file mã độc có đuôi .exe và tải lên một dịch vụ lưu trữ.
Bước 2: Sử dụng công cụ HID đã được xây dựng cắm vào máy của nạn nhân để vô hiệu hóa hệ thống bảo mật Windows Security (là một trình diệt virus miễn phí đi kèm với Windows 10) tải và thực thi mã độc đã được chuẩn bị ở Bước 1.
Bước 3: File mã độc khi được thực thi sẽ tạo một cửa hậu cho phép kết nối ngược với máy của kẻ tấn công, giúp cho kẻ tấn công chiếm được quyền kiểm soát của máy nạn nhân.
Trong Bước 1 tạo mã độc, mình sử dụng Metasploit Framework để tạo mã độc sau đó đẩy lên dịch vụ lưu trữ. Metasploit là bộ công cụ tấn công có sẵn trong các phiên bản linux như Kali linux

Sau khi xây dựng thành công công cụ tấn công HID như đã giới thiệu, ở bước 2 thực hiện cắm công cụ vào máy nạn nhân
Bằng một cách nào đó cắm thiết bị tấn công HID vào máy mục tiêu, như đã giới thiệu có 2 phương pháp sử dụng nhiều nhất là nội gián + đánh rơi thiết bị gần mục tiêu

Sau khi tấn công HID vào máy nạn nhân thành công và ko gặp trở ngại gì trên đường truyền, kẻ tấn công sẽ nhận được thông báo meterpreter session 1 opened. Như vậy đã có 1 phiên kết nối tới máy nạn nhân.
Sau khi đã có phiên meterpreter, chúng ta hoàn toàn có thể gõ lệnh help để show ra các lệnh, mục đích để khai thác thông tin máy nạn nhân. Một số kết quả thu được từ máy nạn nhân như sau:

Lấy được các tài liệu trong thư mục của nạn nhân. Ngoài ra còn theo dõi webcam, tải và thực thi các câu lệnh độc hại. Tóm lại khi mở được phiên kết nối đến máy nạn nhân kẻ tấn công có thể toàn quyền kiểm soát máy nạn nhân.
Thực tế khi triển khai thực hiện kịch bản tấn công HID này, Windows Security chỉ tắt tạm thời. Vậy nên, khi vừa chiếm được quyền điều khiển, thực hiện tắt vĩnh viễn Windows Security thông qua Registry Editor tránh sinh cảnh báo về mã độc được đẩy lên máy nạn nhân và Thiết lập persistence để cài vĩnh viễn và tự động kích hoạt mã độc trên máy nạn nhân (Khi nạn nhân tắt mạng đi thì lập tức phiên sẽ bị ngắt kết nối dẫn đến việc mất kết nối giữa máy tấn công và máy nạn nhân.
Vì vậy ngay khi có phiên kết nối thì kẻ tấn công tiến hành cài backdoor vào máy của nạn nhân ngay lập tức để có thể kết nối dễ dàng trở lại máy nạn nhân, mỗi khi nạn nhân sử dụng máy tính backdoor sẽ lập tức mở một cổng bất kì từ máy của nạn nhân và kết nối tới địa chỉ ip và cổng của kẻ tấn công nếu kẻ tấn công đang lắng nghe thì sẽ có một phiên được mở ra). Ngoài ra các câu lệnh kể trên còn thực hiện 1 số tấn công khác như ngăn cản người dùng truy cập vào một file hoặc folder quan trọng (ransomware), cài đặt thêm những phần mềm độc hại khác, lén lút theo dõi người dùng và đánh cắp dữ liệu(spyware), làm hư hại phần mềm, phần cứng và làm gián đoạn hệ thống
Nguồn: whitehat.vn