Trong bài đăng này, chúng ta sẽ xem xét cách chúng ta có thể thực hiện Mô phỏng Firmware của một thiết bị IoT nhất định.

Mô phỏng Firmware có thể phục vụ một số mục đích khác nhau như phân tích chương trình cơ sở theo cách tốt hơn, thực hiện khai thác, thực hiện gỡ lỗi từ xa, v.v. Với kỹ thuật này, bạn có thể mô phỏng Firmware ban đầu được thiết kế để chạy trên một kiến ​​trúc khác và tương tác với nó, ngay cả khi không có thiết bị IoT vật lý.

Một trong những cách trước đây để thực hiện Mô phỏng Firmware là tạo hình ảnh Qemu rồi sao chép nội dung của hệ thống tệp chương trình Firmware vào hình ảnh Qemu rồi khởi chạy hình ảnh.

Tuy nhiên, có một giải pháp thay thế đơn giản hơn nhiều cũng có xu hướng gây ra ít vấn đề hơn cho bạn khi mô phỏng chương trình cơ sở. 

Các công cụ mà bạn sẽ yêu cầu:

Thiết lập lab phân tích Firmware giả lập

Khi đã có đủ 3 thành phần trên, bước đầu tiên là thiết lập Firmware Analysis Toolkit.

Bộ công cụ phân tích chương trình cơ sở chỉ đơn giản là một trình bao bọc xung quanh dự án thực tế Firmadyne và tự động hóa quá trình mô phỏng chương trình cơ sở mới.

Để tải xuống và cài đặt FAT, chỉ cần sao chép đệ quy kho git như dưới đây:git clone –recursive https://github.com/attify/firmware-analysis-toolkit.git

Tiếp theo, chúng ta sẽ cần thiết lập các công cụ riêng lẻ như Binwalk, Firmadyne và Firmware-Mod-Kit.

Tuy nhiên, khi Admin CEHVIETNAM import bản AttifyOS VM prebuild vào Vmware của mình thì đã thấy có sẵn những tool này, nên hầu như ta có thể bỏ qua bước thiết lập, thậm chi còn có sãn cả mẫu WWNAP 320 của Netgear để thực hành. Lưu ý, các bạn ôn thi CPENT ngâm cứu bài này thật kỹ. Ngoài ra, việc cấu hình Firmadyne có thể đơn giãn hơn vì hệ thống AttifyOS làm sẵn cho chúng ta, nên chỉ việc chạy (nếu cần các bạn hãy config lại chút theo hướng dẫn bên dưới). Vì vậy, so với bản Firmadyne được hướng dẫn trong CPENT thì vói AttifyOS các bạn chỉ việc chạy, do đó khi thi các môn CHFI, CEH Master hay đặc biệt là CPENT cần chuẩn bị sẵn các bộ công cụ này.

Thiết lập Binwalk

Để thiết lập Binwalk , chỉ cần cài đặt các phần phụ thuộc như bên dưới, sau đó tiếp tục cài đặt công cụ:cd firmware-analysis-toolkit/binwalk
sudo ./deps.sh
sudo python setup.py cài đặt

Nếu mọi việc suôn sẻ, bạn sẽ có thể chạy binwalk và nhận được kết quả như hình bên dưới.

Thiết lập Firmadyne

Để thiết lập Firmadyne , hãy điều hướng đến thư mục Firmadyne và mở tệp firmadyne.config. Nó sẽ trông như thể hiện trong hình dưới đây.

Bỏ ghi chú dòng nói FIRMWARE_DIR=/home/vagrant/firmadyne/và sửa đổi địa chỉ theo đường dẫn hiện tại của Firmadyne. Dòng cập nhật trong trường hợp của tôi trông giống như dưới đây.

Khi bạn đã cập nhật đường dẫn, bước tiếp theo là tải xuống các tệp nhị phân bổ sung cần thiết để Firmadyne hoạt động. Quá trình này có thể mất một lúc (1–2 phút nếu có kết nối Internet tốt) – vì vậy hãy uống cà phê (hoặc bia) vào thời điểm này.

Sau khi hoàn tất, bước tiếp theo là cài đặt các phần phụ thuộc còn lại để Firmadyne hoạt động bình thường:sudo -H pip cài đặt git+ https://github.com/ahupp/python-magic
sudo -H pip cài đặt git+ https://github.com/sviehb/jefferson
sudo apt-get cài đặt qemu-system-arm qemu-system- mips qemu-system-x86 qemu-utils

Đồng thời thiết lập cơ sở dữ liệu PostgreSQL tại thời điểm này theo hướng dẫn từ wiki Firmadyne chính thức :sudo apt-get cài đặt postgresql
sudo -u postgres createuser -P Firmadyne
sudo -u postgres createb -O Firmadyne firmware
sudo -u postgres psql -d firmware < ./firmadyne/database/schema

Mật khẩu của cơ sở dữ liệu khi được nhắc phải là firmadyne(để tránh mọi sự cố sau này).

Đó là tất cả cho việc thiết lập Firmadyne.

Thiết lập Bộ công cụ phân tích Firmware

Điều đầu tiên chúng ta sẽ làm là di chuyển fat.py và reset.pyvào firmadyne thư mục bên trong.

Khi đã xong, hãy mở fat.py và sửa đổi mật khẩu root (để nó không hỏi bạn mật khẩu khi chạy tập lệnh) và chỉ định đường dẫn của Firmadyne như hiển thị bên dưới.

Đó là tất cả cho việc thiết lập. Đảm bảo rằng cơ sở dữ liệu postgresql của bạn đang hoạt động

.. và chúng ta sẵn sàng đi tiếp.

Mô phỏng hình ảnh firmware

Tất cả những gì bạn cần làm để mô phỏng chương trình cơ sở bây giờ là chạy ./fat.py và chỉ định tên chương trình firmware. Trong trường hợp này, chúng tôi đang chạy chương trình cơ sở WNAP320.zip, vì vậy chúng tôi sẽ chỉ định điều đó.

Đối với Brand, bạn có thể chỉ định bất kỳ nhãn hiệu nào vì nhãn hiệu đó được sử dụng cho mục đích cơ sở dữ liệu thuần túy.

Đầu ra của bạn phải như hình dưới đây:

Sau khi hoàn tất quá trình thiết lập ban đầu cho chương trình cơ sở, nó sẽ cung cấp cho bạn địa chỉ IP. Trong trường hợp chương trình cơ sở chạy máy chủ web, bạn sẽ có thể truy cập vào giao diện web cũng như tương tác với chương trình cơ sở qua SSH và thực hiện việc khai thác bổ sung dựa trên mạng.

Bây giờ chúng ta hãy mở Firefox lên và xem liệu chúng ta có thể truy cập vào giao diện web hay không.

Chúc mừng!!! — chúng tôi đã mô phỏng thành công chương trình cơ sở (ban đầu dành cho kiến ​​trúc MIPS Big Endian) và thậm chí còn có thể truy cập được máy chủ web từ bên trong chương trình cơ sở!

Source Medium AttifyOS

Sau đây là demo , chạy thử – Và phải nói là mình chảng có hay ho gì ở đây cả, chỉ làm theo hướng dẫn nhưng được cái biết chọn đồ chơi và tìm ra hướng dẫn cũng là 1 cái hay nhĩ 🙂 , chứ làm theo lab CPENT config toát mồ hôi. Còn ở đây tôi hầu như chẳng làm gì cả, chỉ gõ lênh thôi , mẫu nó cũng có sẵn cho mà test !

Nhớ là khi thi thực tế phải thay bằng firmware của con IOT mà Thử Thách họ cung cấp, thường là phải hack vào 1 máy nào đó bằng cách bẻ khóa ssh, smb, rdp rồi lôi nó về qua SCP, ai không hiểu cũng không sao, chứ còn trình thi CPENT nói dzậy là hỉu ngay !

Bài này dành cho các học viên khóa học CHFI v10 , và cả CySA+ (CS0-003) thực hành mở rộng !

Bình luận về bài viết này

Thịnh hành