EMBA
EMBA làm một bộ công cụ phân tích firmware hỗ trợ quá trình pentest và research. EMBA hỗ trợ extract firmware, phân tích cho ra báo cáo dưới dạng web chứa nhiều nhiều thông tin hữu ích như các binary, script, kernel module dễ tổn thương, hardcoded-password, các lỗ hổng đang tồn tại trên phiên bản kernel của thiết bị,… Báo cáo sẽ được chia thành nhiều mục tương ứng với các kĩ thuật phân tích khác nhau từ đó giúp người dùng có một góc nhìn tổng quan hơn.
Ngoài ra, EMBA còn hỗ trợ so sánh hai version firmware để tìm ra những đoạn code được vá nhanh, chính xác nhất.
EMBA yêu cầu cấu hình tổi thiểu như sau.
Nếu bạn đáp ứng được yêu cầu về cấu hình thì bắt đầu thôi~
SETUP
Quá trình cài đặt EMBA rất đơn giản, chỉ cần chạy các lệnh sau đây:
git clone https://github.com/e-m-b-a/emba.git cd emba sudo ./installer.sh -d
Ngoài ra, nếu muốn tích hợp AI hỗ trợ phân tích và đưa ra các thông tin về lỗ hổng bạn có thể thêm ChatGPT API key vào phần config.
SCAN
Hiện tại EMBA cung cấp 8 scan-profile, người dùng có thể tuỳ chọn theo nhu cầu của mình.
- default-scan-emulation
- default-scan
- default-scan-long
- default-scan-no-notify
- default-scan-gpt
- example-disable-module
- full-scan
- sbom-default
Nếu muốn sự tuỳ biến cao hơn nữa, người dùng hoàn toàn có thể tự custom cho mình một scan-profile đúng với các như cầu của bản thân, tránh lãng phí tài nguyên.
sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/full-scan.emba -W
-W: tạo web report
-l: đường dẫn tới log folder
-f: đường dẫn tới firmware cần phân tích
-p: scan-profile
Đây là command full-scan, thời gian scan phụ thuộc vào cầu hình máy, scan-profile và độ phức tạp của firmware. Với minimum cấu hình, firmware của một thiết bị router và full-scan profile có thể tốn hơn 10 giờ.
Web Report
Trong báo cáo này chứa tất cả dữ liệu thu thập được từ firmware vì vậy lượng thông tin sẽ rất lớn, thông tin được sắp xếp theo các mục dựa trên phương pháp phân tích. Nhưng cơ bản thì mọi kĩ thuật phân tích đều để tìm các thông tin hữu ích liên quan đến các phần sau:
Bootloader
Các config của bootloader được thu thập và lưu trữ, đồng thời xác định file init của hệ thống.
Kernel
EMBA thu thập kernel version và tất cả các mã CVE, PoC tồn tại trên đó.
ngoài ra còn có thông tin về các kernel module.
Web Service
- Phân tích các web served file và config của web server.
- Phân tích web server.
- Phân tích các file cgi.
- Sau đó, nếu emulate thiết bị thành công:
- Crawl web.
- Scan bằng các tool như nmap, nikto, arachi, testssl.sh.
Các loại file khác
- phân loại các file thành các loại sh file, binary file, init file,..
- Thu thập hardcoded password và hashed password.
- Tìm version của các file thường gặp, mã CVE và PoC trên version đó.
- Phân tích cơ chế bảo vệ của các binary.
- Tìm kiếm các function nguy hiểm đang được các binary sử dụng.
- Yara check để tìm ra các code pattern trên binary.
- Sử dụng semgrep phân tích các file sh.
Emulate
EMBA sử dụng firmadyne tự động tìm ra qemu config phù hợp rồi nén thành tệp, nếu người dùng có nhu cầu emulate thiết bị có thể download về sử dụng một các dễ dàng.
Additional
Ngoài ra bạn có thể tìm hiều thêm về EMBARK tại đây EMBARK là giao diện web cho EMBA.
Công cụ thay thế EMBA, bugprove là một trang online, có giao diện và các công cụ tốt hơn EMBA nhưng đây là một trang trả phí, bạn chỉ có thể phân tích miễn phí tối đa 3 firmware một tháng và cũng có nhiều tính năng bị giới hạn.