Tấn công HID là gì? Mình đã dễ dàng chế tạo USB theo dõi, đánh cắp dữ liệu như thế nào?

WhiteHat Team

Administrators
Thành viên BQT
09/04/2020
92
583 bài viết
Tấn công HID là gì? Mình đã dễ dàng chế tạo USB theo dõi, đánh cắp dữ liệu như thế nào?
1. Thực trạng hiện nay

Anh-whitehat-vn.png

- Theo thống kê vào T1/2021 của Cục An ninh mạng và phòng chống tội phạm sử dụng công nghệ cao, Bộ Công an cho thấy, tấn công thông qua thiết bị USB, là một trong những thủ đoạn tấn công phổ biến nhất hiện nay. (Lưu ý: Bài nghiên cứu này được thực hiện năm 2021 nên số liệu cập nhật theo năm 2021)

- Tuy nhiên, 1 chiếc USB chứa mã độc thường thì trong USB có các payload và sẽ autorun khi cắm vào nhưng khi cắm vào máy tính, sẽ bị trình diệt virus quét các payload trong nó và xóa ngay lập tức hoặc bị tắt hay xóa tính năng autorun (nếu muốn chạy thì phải vào USB và chạy script bằng tay)

=> Bởi vậy, nhằm vượt qua các cơ chế kiểm soát của hệ điều hành ngày nay, phương pháp tấn công sử dụng công cụ HID là một lựa chọn hoàn hảo. Bằng cách lập trình lại vi điều khiển của thiết bị, tin tặc có thể giả lập các hành vi như một bàn phím hoặc chuột để gửi các thông tin dữ liệu mong muốn đến máy tính/ thiết bị kết nối nhằm thực thi mã độc chiếm quyền điều khiển.

2. 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.

3. Phương thức hoạt động

ảnh 2.png
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.

ảnh 3.png
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

4. Một số công cụ HID trên thị trường

ảnh 4.png


- Một số công cụ tấn công HID phổ biến trên thị trường hiện nay như : Teensy HID, USB rubber Ducky được sản xuất bởi Hak5

- Cả 2 công cụ được phát triển để đưa các tổ hợp phím vào hệ thống nhằm đánh cắp dữ liệu, tải và thực thi các câu lệnh độc hại. Điều quan trọng chính của các thiết bị này là nó không bị phát hiện bởi bất kỳ chương trình anti-virus hoặc tường lửa nào bởi nó hoạt động như một HID

- Tuy nhiên, giá thành khá là cao, giá các thiết bị này trên các sàn thương mại điện tử dao động từ 35[imath]-90[/imath].

5. Mình đã chế tạo công cụ tấn công HID như thế nào? (Nghiên cứu thử nghiệm)

B1: Chuẩn bị công cụ

ảnh 5.png


- 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

ảnh 6.png


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

ảnh 7.png
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 mình xây dựng:



ảnh 8.png
Để 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

  • Ấn enter để mở window security
ảnh 9.png
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

ảnh 10.png


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.



ảnh 11.png


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



ảnh 12.png


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:

ảnh 13.png


ảnh 15.png

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.

Vậy câu hỏi đặt ra: Làm sao để phòng tránh tấn công này?

Nếu mọi người có hứng thú hãy tương tác với bài viết này để mình có động lực viết tiếp nha, cảm ơn mn đã chú ý theo dõi, kiến thức của mình không nhiều nên có gì sai sót mong mn góp ý để bài viết được hoàn thiện hơn, hẹn gặp lại mn ở bài viết tiếp theo ^^


Tài liệu tham khảo:

[1]. USB Implementers’ Forum, Device Class Definition for Human Interface Devices (HID), 2001

[2]. Human interface device, tại: https://vi2.wiki/wiki/Human_interface_device

[3]. Evildaemond, USB HID Attacks, Jan 24, 2020, tại:

https://medium.com/heck-the-packet/usb-hid-attacks-ea45d6a68924

[4]. USB Implementers’ Forum, HID Usage Tables, 2004

[5]. Hack5, USB Rubber Ducky, tại:

https://hak5.org/products/usb-rubber-ducky-deluxe/ ;

[6]. Bkav, Tổng kết an ninh mạng năm 2016 và dự báo xu hướng 2017, tại:

https://www.bkav.com.vn/tin-tuc-noi-bat/-/view-content/138985/tong-ket-an-ninh-mang-nam-2016-va-du-bao-xu-huong-2017

[7]. Myung-gu Kang, USBWall, University of Kansas, 2015

[8]. Federico Griscioli and Maurizio Pizzonia, USB CaptchaIn, 16 Mar 2019

[9]. Arduino, tại:

https://vi.wikipedia.org/wiki/Arduino ;

[10]. Quang Minh Tâm, Tấn công máy tính sử dụng Teensy –HID, tại:

http://arduino.vn/bai-viet/970-tan-cong-may-tinh-su-dung-teensy-hid-p1 ;

[11]. Johann Wyss, USB Rubber Ducky, tại: https://diyodemag.com/projects/usb_rubber_ducky

[12]. Silicon Laboratories, Human Interface Device Tutorial, 2011

[13]. Đỗ Hữu Toàn, Giới thiệu về Arduino Pro Micro – Giải thưởng top 3 trong kỳ, tại:

http://arduino.vn/bai-viet/1035-gioi-thieu-ve-arduino-pro-micro-giai-thuong-top-3-trong-ky ;

[14]. Arduino IDE, tại: https://www.arduino.cc/en/Main/Software ;

[15]. Keyboard, tại:

https://www.arduino.cc/reference/en/language/functions/usb/keyboard/

[16]. Nguyễn Anh Kiệt, Hướng dẫn học Metasploit Framework rất chi là cơ bản, tại:

https://linuxteamvietnam.us/huong-dan-hoc-metasploit-framework-rat-chi-la-co-ban/ ;

[17]. ThS. Đồng Thị Thùy Linh, Bài thực hành số 01, Sao lưu hệ thống và dữ liệu, An toàn hệ điều hành, Học viện Kỹ thuật Mật mã, 2015
 
Chỉnh sửa lần cuối:
Thẻ
hid hid attack
Bên trên