Tải bản đầy đủ (.pdf) (34 trang)

Bài tập lớn môn an toàn mạng (68)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.75 MB, 34 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN I

Học phần: An Tồn Mạng
Báo cáo đề tài:
Tìm hiểu về cơng cụ phân tích Firmware: Binwalk
Giảng viên hướng dẫn:
Sinh viên thực hiện:
Mã sinh viên:
Nhóm mơn học:

TS. ĐẶNG MINH TUẤN
Trịnh Thành Long
B18DCAT151
Nhóm 2

Hà Nội, 2021

1


MỤC LỤC
DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT ............................... 3
DANH MỤC CÁC HÌNH VẼ ........................................................................................... 4
Lời Mở Đầu ........................................................................................................................ 5
Chương 1. Khái quát về Binwalk và Firmware .............................................................. 6
1.1

.Reverse Engineering là gì? ................................................................................... 6

1.2 .Giới thiệu sơ lược Binwalk....................................................................................... 7


1.3. Giới thiệu FirmWare................................................................................................. 7
1.4. Cơ chế hoạt động của Binwalk ................................................................................. 8
Chương 2. Hướng dẫn cài đặt Binwalk ........................................................................... 9
2.1. Cài đặt Binwalk trên kali Linux ............................................................................... 9
2.2. Cài đặt Binwalk trên windows10 ........................................................................... 10
2.3. Cài đặt Binwalk trên Unbuntu 20.04 ...................................................................... 10
Chương 3. Hướng dẫn sử dụng Binwalk ....................................................................... 11
3.1. Tập lệnh hỗ trợ........................................................................................................ 11
3.2. Tùy chọn quét chữ ký ............................................................................................. 12
3.3. Tùy chọn trích suất ................................................................................................. 14
3.4. Tùy chọn Entropy ................................................................................................... 15
3.5. Tùy chọn khác biệt nhị phân (Binary Diffing Options) ......................................... 17
3.6. Tùy chọn nén thô (Raw Compression Options) ..................................................... 18
3.7. Tùy chọn chung ...................................................................................................... 19
Chương 4. Demo -Lab ..................................................................................................... 21
4.1. Trích xuất các tập tin từ Kernel của Box FPT ........................................................ 21
4.2. Quét firmware image với binwalk ....................................................................... 25
4.3. Phân tích firmware DIR882A1_FW130B06.bin bị mã hóa ................................... 28
Lời Kết .............................................................................................................................. 33
Tài Liệu Tham Khảo ....................................................................................................... 34

2


DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT
Từ
viết tắt

Thuật ngữ tiếng Anh/Giải thích


Thuật ngữ tiếng Việt/Giải thích

RE

Reverse Engineering

Kỹ thuật đảo ngược

CPU

Center Processing Unit

Bộ xử lý chung tâm

LCD

Liquid Crystal Display

Màn hình tinh thể lỏng

OTP

One Time Programable

Chương trình sử dụng 1 lần

PNG

Portable Network Graphics


Biểu đồ minh họa mạng lưới
không dây

CMD

Command Prompt

Chương trình chạy dịng lệnh trên
windows

3


DANH MỤC CÁC HÌNH VẼ
Hình 2. 1. Cài đặt Binwalk cho kali Linux .......................................................................... 9
Hình 3. 1 .Hệ thống tập lệnh binwalk ................................................................................ 11
Hình 3. 2 .Cú pháp đơn giản để phân tích 1 file bằng binwalk ......................................... 12
Hình 3. 3 .Signature Scan Options: ................................................................................... 12
Hình 3. 4: Extraction Options ............................................................................................ 14
Hình 3. 5. Entropy Options ................................................................................................ 15
Hình 3. 6 Hình chụp EnTropy ........................................................................................... 16
Hình 3. 7. Binary Diffing Options ..................................................................................... 17
Hình 3. 8. Raw Compression Options ............................................................................... 18
Hình 3. 9 .General Options ................................................................................................ 19
Hình 4. 1. tải firmware FPT-KERNEL về máy ................................................................ 21
Hình 4. 2 .Thực hiện phân tích sơ bộ firmware ................................................................. 21
Hình 4. 3 .Kiểm tra lại bằng 010 editor ............................................................................. 22
Hình 4. 4. Giải nén firmware với tài khoản thường ......................................................... 23
Hình 4. 5 .Giải nén firmware với tài khoản root .............................................................. 23
Hình 4. 6 .Phân tích file vmlinux_xload.zbf ..................................................................... 24

Hình 4. 7 .Trích xuất file ra thành file 1896.gz ................................................................. 24
Hình 4. 8 .Dữu liệu bên trong file 1896............................................................................. 24
Hình 4. 9. Dữ liệu bên trong file 6606848 ........................................................................ 25
Hình 4. 10 .Tải và giải nén firmware Archer C7(EU)_V5_210519 .................................. 25
Hình 4. 11 .Thực hiện quét với binwalk ............................................................................ 26
Hình 4. 12. Hình ảnh U-Boot ............................................................................................ 26
Hình 4. 13 .hệ thống tệp đầy đủ cảu firmware .................................................................. 27
Hình 4. 14. Mật khẩu root mặc định của bộ định tuyến .................................................... 27
Hình 4. 15. Giải nén và hình ảnh ENTROPY của firmware bị mã hóa ............................ 28
Hình 4. 16. Phân tích firmware DIR882A1_FW104B02_Middleware.bin và giải nén .... 28
Hình 4. 17. Thơng tin tệp và thư mục của firmware ......................................................... 29
Hình 4. 18.File imgdecrypt chưa trong firmware có thể là file để giải mã ....................... 29
Hình 4. 19 . Vị trí file firmware bị mã hóa bên trong thu mục cpio-root .......................... 30
Hình 4. 20 . Tiến hành giải mã firmware bị mã hóa .......................................................... 30
Hình 4. 21 . Phân tích thành cơng firmware bị mã hóa ..................................................... 31
Hình 4. 22. Giải nén firmware bị mã hóa .......................................................................... 31
Hình 4. 23 Tệp và thư mục bên trong firmware bị mã hóa ............................................... 32
Hình 4. 24 .Tệp và thư mục bên trong firmware bị mã hóa .............................................. 32
4


Lời Mở Đầu
Vạn vật kết nối (Internet of Things) hiện nay được sử dụng ngày càng rộng rãi trong
cuộc sống, đi kèm với những tiện ích mới cơng nghệ này mang lại đó chính là vấn đề an
ninh, an tồn thông tin. Kết quả các nghiên cứu gần đây đã chỉ ra rằng các lỗ hổng bảo mật
và đặc biệt là mã độc xuất hiện rất nhiều trên hệ điều hành của các thiết bị mạng (firmware).
Vì tính đặc thù cao của các thiết bị mạng cũng như của các firmware mà việc phân tích, rà
quét các lổ hổng bảo mật và mã độc gặp rất nhiều trở ngại. Hơn nữa, do chưa có được sự
quan tâm đúng mức của cá nhân, tổ chức lớn nên việc phát triển các cơng cụ cũng như
phương pháp phân tích, phát hiện cịn nhiều hạn chế. Hạn chế có thể kể đến là khả năng

trích chọn firmware và dịch ngược chúng thành mã tường minh để từ đó có thể sử dụng
các phương pháp phân tích lỗ hổng, mã độc khác nhau. Trong bài báo này, C500-Toolkit
sẽ được giới thiệu với mục tiêu tăng hiệu suất trích chọn và dịch ngược firmware của các
thiết bị định tuyến. Gần 13.674 firmware từ 27 nhà phân phối được sử dụng để đánh giá và
so sánh với các cơng cụ hiện có như fmk, binwalk và mơ đun trích chọn, dịch ngược của
firmadyne.
Một trong những cơng cụ hỗ trợ phân tích firmware được sử dụng rộng rãi nhất hiện
này là binwalk. Binwalk là một công cụ phân tích firmware được thiết kế để hỗ trợ trong
việc phân tích, khai thác và kỹ thuật djch ngược các firmware hình ảnh. Nó đơn giản để sử
dụng, dễ dàng mở rộng thông qua chữ ký tùy chỉnh,

5


Chương 1. Khái quát về Binwalk và Firmware
1.1 .Reverse Engineering là gì?
RE là q trình tìm hiểu những cơng nghệ được sử dụng bởi 1 thiết bị, 1 đối tượng
hoặc 1 hệ thống thơng qua việc phân tích cấu trúc, các chức năng và hoạt động của nó.
RE là 1 khái niệm rất rộng, bao gồm cả RE phần cứng và RE phần mềm. Nhưng trong
bài này, chúng ta chỉ tìm hiểu RE phần mềm. Và từ đây, trong bài này, nhắc đến RE, chúng
ta chỉ nói đến RE phần mềm.
Việc phân tích hoạt động cụ thể của một hệ thống hay 1 chương trình sẽ được sử dụng
trong việc bảo trì chính hệ thống hay chương trình đó. Một mục đích khác của RE là phục
vụ cho việc tạo ra một hệ thống mới hoặc chương trình mới có những chức năng tương tự
mà không sử dụng hoặc chỉ là sao chép đơn giản (khơng có sự hiểu biết) hệ thống/chương
trình gốc.
Ứng dụng của RE:Phân tích malware (viruses, trojans, worms...) để biết được chúng
lây lan ra sao, lấy cắp thơng tin cá nhân như thế nào? Để xóa chúng khỏi hệ thống, hay
điều tra thông tin về người phát tán, cần thực hiện những hành động điều tra gì?
Ngồi ra một ứng dụng khác của RE, tương tự như ví dụ đưa ra ở đầu bài viết, đó là

khi bạn có một phần mềm thương mại, cần phải trả phí để sử dụng mà bạn khơng đủ khả
năng để chi trả hoặc thậm chí là khơng muốn trả khoản phí đó. Bạn có thể RE để tìm hiểu
cách thức hoạt động của module thực hiện công việc bạn cần quan tâm để viết lại 1 chương
trình khác thực hiện cơng việc đó,
Một số cơng cụ thường sử dụng
 OllyDBG: OllyDBG hay cịn gọi tắt là Olly là cơng cụ debug rất phổ biến. Nhờ
giao diện trực quan và dễ sử dụng nên Olly phù hợp với người dùng ở mọi trình
độ khác nhau.
 .Net Reflector: Nếu như ta có Olly để debug các chương trình window 32-bit
thì các chương trình chạy trên nền tảng .NET Framework ta có cơng cụ .Net
Reflector.
 IDA: là công cụ disassembler và debuger đa nền tảng, có thể sử dụng trên nền
tảng Windows, Linux or Mac OS X. Đây là tính năng ưu việt hơn hẳn so với
Olly và .Net Reflector- chỉ sử dụng cho 1 nền tảng nhất định.
 Hex Editor: Trong quá trình thực hiện cơng việc Reverse, ta cần đến các công
cụ Hex Editor để đọc và chỉnh sửa các file dưới định dạng hex.Có rất nhiều Hex
Editor, mỗi người thường lựa chọn 1 công cụ phù hợp với điều kiện và sử dụng
quen tay.
6


1.2 .Giới thiệu sơ lược Binwalk
Binwal được viết bằng Python 2.7 trong một dự án của Craig Heffner năm 2010.
Binwalk quét trong bản ảnh firmware, xác định đặc trưng phù hợp với nhiều hệ thống file
và định dạng file theo chuẩn . Binwalk cũng có thể trích xuất nhiều thành phần của bản ảnh
firmware và hỗ trợ nhiều dạng nén, cũng như trích xuất nhiều nội dung file nén. Cơng cụ
này cũng có thể tạo biểu đồ thể hiện "entropy: của firmware, nó trình bày bằng đồ hoạ các
kiểu dữ liệu thực của ảnh, cũng như những vùng dữ liệu trống hoặc không sử dụng.
Binwalk là một công cụ phân tích firmware được thiết kế để hỗ trợ trong việc phân
tích, khai thác và kỹ thuật dịch ngược các firmware hình ảnh. Nó đơn giản để sử dụng, dễ

dàng mở rộng thơng qua chữ ký tùy chỉnh.
Bạn có thể sử dụng binwalk để thiết kế ngược một hình ảnh phần sụn để hiểu cách
hoạt động của nó. Bạn có thể thiết kế ngược các tệp nhị phân bên trong hình ảnh hệ thống
tệp để tìm kiếm các lỗ hổng. Bạn có thể trích xuất các tệp từ hình ảnh và tìm kiếm mật khẩu
cửa sau hoặc chứng chỉ kỹ thuật số. Bạn có thể xác định mã quang cho nhiều loại kiến trúc
CPU.
Bạn có thể giải nén hình ảnh hệ thống tệp để tìm kiếm các tệp mật khẩu cụ thể
(passwd, shadow, v.v.) và cố gắng phá vỡ các hàm băm mật khẩu. Bạn có thể thực hiện
khác biệt nhị phân giữa hai hoặc nhiều tệp. Bạn có thể thực hiện phân tích entropy dữ liệu
để tìm kiếm dữ liệu nén hoặc khóa tiền điện tử được mã hóa cứng. Tất cả điều này mà
không cần truy cập vào mã nguồn

1.3. Giới thiệu FirmWare
Theo Wikipedia, firmware là "một loại chương trình máy tính cung cấp kiểm sốt
mức thấp cho phần cứng cụ thể của thiết bị.". Hầu như thiết bị nào ngày hơm nay, dù là
máy tính, điện thoại, âm thanh nổi stereo, xe hơi hoặc máy giặt đều đến từ nhà sản xuất với
một số dạng firmware khác nhau.
Firmware là một thuật ngữ được dùng để chỉ những chương trình máy tính cố định
và điều khiển cấp thấp nhiều thiết bị điện tử. Một số ví dụ điển hình về firmware có thể
thấy từ những sản phẩm như bộ điều khiển từ xa hoặc máy tính bỏ túi, đến những thiết bị
phần cứng như ổ cứng, bàn phím, màn hình LCD bóng bán dẫn mỏng hoặc thẻ nhớ, người
máy công nghiệp,..
Đối với các thiết bị đơn giản, firmware là tất cả những gì chúng cần để hoạt động.
Đối với các thiết bị tiên tiến hơn như máy tính cần thêm phần mềm software - chẳng hạn,
hệ điều hành và ứng dụng phần mềm - để sử dụng chúng. Hơn nữa, firmware cũng có mặt
trong những thiết bị tiêu dùng phức tạp hơn để đáp ứng những quy trình cơ bản của thiết
bị cũng như thực hiện những chức năng cao cấp hơn.
7



Firmware chủ yếu liên quan tới những quy trình hết sức cơ bản và cấp thấp trong
một thiết bị. Nếu khơng có firmware, thiết bị hồn tồn khơng thể hoạt động được.
Firmware đơn giản chủ yếu ở bộ nhớ chỉ đọc, hoặc OTP/Bộ nhớ chỉ đọc khả dĩ lập trình,
khi những firmware phức tạp hơn thường lưu trú ở bộ nhớ nháy để có thể cập nhật. Những
lý do thơng thường để cập nhật firmware bao gồm sửa lỗi hoặc thêm chức năng vào thiết
bị.

1.4. Cơ chế hoạt động của Binwalk
Tính năng chính của binwalk là tính năng quét chữ ký của nó. Binwalk có thể qt
hình ảnh phần sụn để tìm kiếm các loại tệp nhúng và hệ thống tệp khác nhau
Lệnh File sẽ nhìn vào tiêu đề của tệp và tìm kiếm chữ ký (magic number) để xác
định loại của file . Ví dụ: nếu tệp bắt đầu bằng chuỗi byte 0x89 0x50 0x4E 0x47 0x0D
0x0A 0x1A 0x0A, nó biết đó là tệp PNG (có thể tìm hiểu thêm về danh sách chữ ký số phổ
biến : />Binwalk hoạt động theo cùng một cách. Nhưng thay vì chỉ tìm kiếm chữ ký ở đầu
tệp, binwalk sẽ qt tồn bộ tệp. Ngồi ra, binwalk có thể giải nén các tệp được tìm thấy
trong hình ảnh.
Cả 2 cơng cụ File và Binwalk đều sử dụng thư viện libmagic để xác định chữ ký
tệp. Nhưng binwalk cũng hỗ trợ một danh sách các chữ ký ma thuật tùy chỉnh để tìm các
tệp nén / lưu trữ, firmware headers, Linux kernels, bootloaders, filesystems, and nhiều hơn
nữa

8


Chương 2. Hướng dẫn cài đặt Binwalk
2.1. Cài đặt Binwalk trên kali Linux
Với các bản Kali Linux mới công cụ BinWalk đã được tích hợp sẵn trên bộ
KaliLinux . Ngồi ra bạn có thể cài Binwalk bằng câu lệnh :sudo-apt get install binwalk

Hình 2. 1. Cài đặt Binwalk cho kali Linux


Bạn cũng có thể cài đặt hydra thơng qua việc tải xuống phiên bản mới nhất ủa Hydra
thông qua kho phát triển Github của Hydra : />Để có được hoạt động cơ bản của binwalk thì ta có thể làm theo 2 cách trên. Tuy nhiên,
nếu bạn muốn có chức năng nâng cao về vẽ đồ thị và giải nén firmware, chúng ta có thể
làm theo 5 bước sau đây:

1. sudo python setup.py install
2. sudo apt-get install python-lzma
3. sudo apt-get install libqt4-opengl python-opengl python-qt4 python-qt4-gl
python-numpy python-scipy python-pip
4. sudo pip install pyqtgraph
5. sudo apt-get install mtd-utils gzip bzip2 tar arj lhasa p7zip p7zip-full
cabextract cramfsprogs cramfsswap squashfs-tools.
9


2.2. Cài đặt Binwalk trên windows10
Bước1:
 Cài đặt Python . sau đó cài đặt python-lzma module.
Bước 2:


Tải xuống tệp zip Binwalk từ Binwalk repo trên GitHub.
 Sau đó, bạn cần giải nén tệp đã tải xuống và mở nó . BinWalk sẽ được cài đặt thông
qua lệnh: python setup.py install
Bước 3:
 Bạn cần tải xuống tập lệnh binwalk.py. Lưu ý rằng tệp này sẽ được đặt trong một
thư mục riêng trên màn hình nền.
 Cần lưu ý rằng bạn phải mở CMD trong thư mục trên. Sau đó nhập lệnh sau. Bằng
cách nhập lệnh: pip install pyinstaller vào CMD, pyinstaller được cài đặt.

Bước 4:
 Để tạo tệp thực thi (.exe ) từ binwalk.py, bạn phải nhập lệnh sau: pyinstaller -onefile binwalk.py
 Bạn có thể tìm thấy tệp thực thi bằng cách đi tới thư mục hiện tại. Sau đó, bạn cần
sao chép nó vào “ C: \ Windows \ System32 “.

2.3. Cài đặt Binwalk trên Unbuntu 20.04
Bước 1: Cài đặt Python2.7
 # Python2.7
 sudo python setup.py install
Bước 2: Tải xuống Binwalk.
 wget /> unzip master.zip
Bước 3: Cài đặt Binwalk
 sudo apt update
 sudo apt install binwalk

10


Chương 3. Hướng dẫn sử dụng Binwalk
3.1. Tập lệnh hỗ trợ
Sử dụng câu lệnh binwalk –h hoặc binwalk để xem tồn bộ tập lệnh được hiện ra

Hình 3. 1 .Hệ thống tập lệnh binwalk

Cú pháp của binwalk: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] …
Trong đó,
 OPTIONS là lựa chọn của chúng ta để rà quét hay phân tích tập tin.
 FILE là tập tin firmware được chọn.

11



Hình 3. 2 .Cú pháp đơn giản để phân tích 1 file bằng binwalk

3.2. Tùy chọn quét chữ ký

Hình 3. 3 .Signature Scan Options:

-B, --signature

: Qt(các) tệp đích để có các chữ ký tệp chung

 Điều này thực hiện phân tích chữ ký của các tệp được chỉ định; nếu khơng có tùy
chọn phân tích nào khác được chỉ định, thì đây là tùy chọn mặc định.
 Sử dụng tùy chọn này khi bạn muốn kết hợp phân tích chữ ký với các máy phân tích
bổ sung, chẳng hạn như --entropy
12


-R, --raw=<str>

: Qt (các) tệp đích để tìm chuỗi byte được chỉ định

 Điều này cho phép bạn tìm kiếm (các) tệp được chỉ định cho một chuỗi tùy
chỉnh. Chuỗi tìm kiếm có thể bao gồm các giá trị bát phân và / hoặc thập lục phân
thoát.
-A, --opcodes

: Quét (các) tệp đích để tìm chữ ký mã quang thực thi phổ biến


 Điều này hướng dẫn binwalk tìm kiếm (các) tệp được chỉ định cho các mã opc thi
hành được phổ biến cho nhiều loại kiến trúc CPU. Lưu ý rằng một số chữ ký opcode
ngắn và do đó dễ tạo ra kết quả dương tính giả.
-m, --magic=<file>

: Chỉ định một tệp ma thuật tùy chỉnh để sử dụng

-b, --dumb

: Tắt các từ khóa chữ ký thơng minh

 Tắt đối sánh chữ ký "thơng minh".
 Hữu ích khi các từ khóa chữ ký thơng minh trong chữ ký dương sai khiến các chữ
ký hợp lệ khác bị bỏ sót (ví dụ: thơng qua từ khóa jump-to-offse)
-I, --invalid

: Hiển thị kết quả được đánh dấu là không hợp lệ

 Hiển thị tất cả các kết quả, ngay cả những kết quả được đánh dấu là khơng hợp lệ.
 Hữu ích nếu bạn cho rằng cách binwalk đang coi một tệp hợp lệ là khơng hợp lệ,
nhưng có thể tạo ra nhiều đầu ra rác
-x, --exclude=<str>

: Loại trừ các kết quả phù hợp với <str>

 Loại trừ các chữ ký phù hợp với bộ lọc loại trừ đã chỉ định. Bộ lọc là các cụm từ
thông dụng viết thường; nhiều bộ lọc có thể được chỉ định.
 Chữ ký magic có dịng đầu tiên khớp với bộ lọc được chỉ định sẽ khơng được tải; do
đó, việc sử dụng bộ lọc này có thể giúp giảm thời gian quét chữ ký
-y, --include=<str>


:Chỉ hiển thị các kết quả phù hợp với <str>

 Chỉ bao gồm các chữ ký phù hợp với bộ lọc bao gồm được chỉ định. Bộ lọc là các
cụm từ thơng dụng viết thường; nhiều bộ lọc có thể được chỉ định.
 Chỉ những chữ ký magic có dịng đầu tiên khớp với bộ lọc được chỉ định mới được
tải; do đó, việc sử dụng bộ lọc này có thể giúp giảm thời gian quét chữ ký.

Trong tùy chọn này, binwalk sẽ lựa chọn quét các file đã được chỉ định để tìm ra các chữ
ký của tệp. Hiển thị ra kết quả được đánh dấu là không hợp lệ, loại trừ hoặc hiển thị kết
quả phù hợp.

13


3.3. Tùy chọn trích suất

Hình 3. 4: Extraction Options

-e, --extract

:Tự động trích xuất các loại tệp đã biết

 Tải các quy tắc trích xuất --dd phổ biến từ một tệp được xác định trước và các quy
tắc dành riêng cho người dùng từ ~ / .config / binwalk / config / extract.conf
-D, --dd=<type:ext:cmd> :Trích xuất --signature <type>, cung cấp cho tệp phần mở
rộng là <ext> và thực thi <cmd>
-M, --matryoshka

:Quét định kỳ các tệp đã trích xuất


 Tùy chọn này sẽ đệ quy quét các tập tin trong một chiết xuất --signature quét. Chỉ
hợp lệ khi được sử dụng với --extract hoặc --dd .
-d, --depth=<int>

:Giới hạn độ sâu đệ quy matryoshka (mặc định: sâu 8 cấp)

-C, --directory=<str>
:Giải nén các tệp / thư mục vào một thư mục tùy chỉnh (mặc
định: thư mục làm việc hiện tại)
 Đặt thư mục đầu ra cho dữ liệu được trích xuất (mặc định: thư mục làm việc hiện
tại).
 Chỉ áp dụng khi sử dụng với các --extract hoặc --dd lựa chọn
-j, --size=<int>

:Giới hạn kích thước của mỗi tệp trích xuất

 Giới hạn kích thước của dữ liệu được tạo ra từ (các) tệp đích. Theo mặc định, khơng
có giới hạn kích thước.
 Chỉ hợp lệ khi được sử dụng với --extract hoặc --dd .
14


 Lưu ý rằng tùy chọn này không giới hạn kích thước dữ liệu được trích xuất / giải
nén bởi các tiện ích trích xuất bên ngồi.
 Hữu ích khi khắc hoặc trích xuất dữ liệu từ các tệp lớn với dung lượng ổ đĩa hạn chế
-n, --count=<int>

:Giới hạn số lượng tệp được trích xuất


-r, --rm

:Xóa các tệp đã khắc sau khi giải nén

 Dọn dẹp các tệp có kích thước bằng không và các tệp không thể được xử lý bằng
các tiện ích trích xuất trong q trình giải nén.
 Chỉ hợp lệ khi được sử dụng với --extract hoặc --dd .
 Hữu ích để làm sạch các tệp dương tính giả được sao chép ra khỏi (các) tệp đích
trong q trình giải nén
-z, --carve
trích xuất

:Khắc dữ liệu từ các tệp, nhưng khơng thực thi các tiện ích

 Chỉ thực hiện khắc dữ liệu, không thực hiện các tiện ích trích xuất bên ngoài.
 Chỉ hợp lệ khi được sử dụng với --extract hoặc --dd.
 Hữu ích khi bạn chỉ muốn khắc dữ liệu từ (các) tệp đích, nhưng khơng tự động giải
nén / giải nén dữ liệu đó
-V, --subdirs

:Trích xuất vào các thư mục con được đặt tên bởi phần bù

3.4. Tùy chọn Entropy

Hình 3. 5. Entropy Options

15


-E, --entropy


:Tính tốn tệp entropy

 Thực hiện phân tích entropy trên (các) tệp đầu vào, in dữ liệu entropy thô và tạo đồ
thị entropy.
 Phân tích Entropy có thể được kết hợp với --signature , --raw hoặc --opcodes để
hiểu rõ hơn về (các) tệp đích.
 Hữu ích để xác định các phần của dữ liệu thú vị mà quá trình qt chữ ký có thể đã
bỏ sót

Hình 3. 6 Hình chụp EnTropy

-F, --fast

:Sử dụng phân tích entropy nhanh hơn nhưng ít chi tiết hơn

-J, --save

:Lưu đồ thị theo dạng PNG

-Q, --nlegend

:Bỏ qua chú giải khỏi biểu đồ entropy

-N, --nplot

:Không tạo đồ thị biểu đồ entropy

-H, --high=<float>


:Đặt ngưỡng kích hoạt entropy cạnh tăng (mặc định: 0,95)

 Chỉ hợp lệ khi được sử dụng với --entropy . Giá trị được chỉ định phải nằm trong
khoảng từ 0 đến 1
-L, --low=<float>

:Đặt ngưỡng kích hoạt entropy cạnh giảm (mặc định: 0,85)

 Chỉ hợp lệ khi được sử dụng với --entropy . Giá trị được chỉ định phải nằm trong
khoảng từ 0 đến 1
16


Đây là một trong những tùy chọn nâng cao của binwalk. Tại tùy chọn này, chúng ta có
thể tiến hành tính tốn và phân tích tệp entropy sau đó lưu lại đồ thị của tệp theo dạng PNG.
Ngoài ra, chúng ta cịn 1 số tùy chọn tiện ích chi tiết của sơ đồ tệp entropy cũng như đặt
lại ngưỡng kích hoạt entropy của file đã quét. Có thể nói, đây là một tùy chọn khá hay của
Binwalk khi nó có thể tối ưu thời gian phân tích tệp entropy của file được chỉ định.

3.5. Tùy chọn khác biệt nhị phân (Binary Diffing Options)
.

Hình 3. 7. Binary Diffing Options

-W, --hexdump

:Thực hiện hexdump / diff của một tệp hoặc các tệp

 Thực hiện kết xuất hex của (các) tệp đầu vào và các byte mã màu như sau:
 Màu xanh lá cây –Các byte này giống nhau trong tất cả các tệp

 Màu đỏ - Các byte này khác nhau trong tất cả các tệp
 Màu xanh lam –Các byte này chỉ khác nhau trong 1 số tệp
 Bất kỳ số lượng tệp tùy ý nào có thể khác nhau; các tùy chọn hữu ích bổ sung là -block , --offset , --length và --terse :
-G, --green
tất cả các tệp

:Chỉ hiển thị các dòng chứa các byte giống nhau giữa

-i, --red
tệp

:Chỉ hiển thị các dòng chứa các byte khác nhau giữa tất cả các

-U, --blue

:Chỉ hiển thị các dòng chứa các byte khác nhau giữa một số tệp

-u, --similar

:Chỉ hiển thị các dòng giống nhau giữa tất cả các tệp

-w, --terse
tệp đầu tiên

:Khác biệt tất cả các tệp, nhưng chỉ hiển thị kết xuất hex của

17


3.6. Tùy chọn nén thơ (Raw Compression Options)


Hình 3. 8. Raw Compression Options

-X, --deflate

:Quét các luồng nén giảm phát thô

 Xác định các luồng dữ liệu nén thơ có thể xảy ra xì hơi bằng bạo lực.
 Hữu ích để khơi phục dữ liệu từ các tệp có tiêu đề bị hỏng / sửa đổi / thiếu. Có thể
được kết hợp với --lzma .
 Q trình qt này có thể chậm, vì vậy sẽ hữu ích khi giới hạn vùng được quét bằng
--offset và / hoặc --length
-Z, --lzma

:Quét các luồng nén LZMA thô

 Xác định các luồng dữ liệu nén LZMA thơ có thể xảy ra bằng brute-force..
 Hữu ích để khơi phục dữ liệu từ các tệp có tiêu đề bị hỏng / sửa đổi / thiếu. Có thể
được kết hợp với --deflate .
 Do có nhiều tùy chọn nén LZMA khác nhau, q trình qt này có thể rất chậm, vì
vậy sẽ hữu ích khi giới hạn vùng được quét bằng --offset và / hoặc --length
-P, --partial

:Thực hiện quét bề ngoài nhưng nhanh hơn

-S, --stop

:Dừng lại sau kết quả đầu tiên

18



3.7. Tùy chọn chung

Hình 3. 9 .General Options

-l, --length=<int>

:Số byte cần quét

-o, --offset=<int>

:Bắt đầu quét ở phần bù tệp này

 Đặt độ lệch bắt đầu để bắt đầu phân tích tệp đích. Một khoảng cách âm (khoảng
cách từ End-Of-File) cũng có thể được chỉ định

-O, --base=<int>

:Thêm địa chỉ cơ sở vào tất cả các phần bù đã in

-K, --block=<int>

:Đặt kích thước khối tệp

 Đặt kích thước khối, tính bằng byte, được sử dụng trong q trình phân tích.
 Khi được sử dụng với --entropy , điều này xác định kích thước của mỗi khối được
phân tích trong q trình phân tích entropy.
 Khi được sử dụng với --hexdump , điều này sẽ đặt số byte hiển thị trên mỗi dòng
trong đầu ra hex


-g, --swap=<int>

:Đảo ngược mỗi n byte trước khi quét

-f, --log=<file>

:Ghi kết quả vào tệp

 Ghi kết quả quét vào tệp được chỉ định.
 Dữ liệu được lưu vào tệp nhật ký sẽ giống với dữ liệu được hiển thị trong thiết bị
đầu cuối trừ khi --csv được chỉ định.
 Dữ liệu sẽ được lưu vào tệp nhật ký ngay cả khi --quiet được chỉ định

-c, --csv

:Ghi kết quả vào tệp ở định dạng CSV
19


 Làm cho dữ liệu nhật ký được lưu ở định dạng CSV. Tùy chọn này bị bỏ qua nếu
được sử dụng với --cast hoặc --hexdump .
 Chỉ hợp lệ khi được kết hợp với tùy chọn --log

-t, --term

:Định dạng đầu ra để vừa với cửa sổ đầu cuối

 Định dạng xuất ra chiều rộng cửa sổ đầu cuối hiện tại.
 Hữu ích để làm cho đầu ra có dịng dài dễ đọc hơn


-q, --quiet

:Ngăn chặn đầu ra thành stdout

 Tắt đầu ra thành stdout.
 Thuận tiện nhất khi được sử dụng với --log hoặc quét chi tiết như --entropy

-v, --verbose

:Bật đầu ra dài dòng

 Cho phép xuất chi tiết, bao gồm tệp mục tiêu MD5 và dấu thời gian quét.
 Nếu được chỉ định hai lần, đầu ra từ các tiện ích trích xuất bên ngồi sẽ được hiển
thị nếu --extract cũng đã được chỉ định

-h, --help

:Hiển thị đầu ra trợ giúp

-a, --finclude=<str>

:Chỉ quét các tệp có tên khớp với regex này

-p, --fexclude=<str>

:Khơng qt các tệp có tên khớp với regex đã cho

 Đặc biệt hữu ích khi kết hợp với --matryoshka và --extract
-s, --status=<int>


:Bật máy chủ trạng thái trên số cổng được chỉ định.

 Máy chủ trạng thái chỉ lắng nghe trên localhost và in ra dữ liệu ASCII có thể đọc
được của con người liên quan đến trạng thái quét hiện tại. Bạn có thể kết nối với nó
bằng telnet , netcat , v.v.

20


Chương 4. Demo -Lab
4.1. Trích xuất các tập tin từ Kernel của Box FPT
Đầu tiên, ta tải Kernel về thông qua câu lệnh
wget />
Hình 4. 1. tải firmware FPT-KERNEL về máy

Sau khi tải về chúng ta sử dụng binwalk để phân tích thử

Hình 4. 2 .Thực hiện phân tích sơ bộ firmware

21


Như vậy tập tin FPT-KERNEL.bin thực chất là một file ảnh (romfs dạng một phân
vùng có tên là MIPSLINUX_XLOAD).

Hình 4. 3 .Kiểm tra lại bằng 010 editor

Thự hiện giải nén file FPT-KERNEL.bin bằng binwalk thông qua câu lệnh
binwalk –e –M FPT-KERNEL.bin

và kiếm tra ta thấy ko thấy file nào ngoài file ảnh ko có sự tồn tại của file nào khác việc
này ko giống với khi kiểm tra bằng hex
22


Hình 4. 4. Giải nén firmware với tài khoản thường

Thực hiện giải nén và tìm kiếm vs tài khoản root ta nhận thấy rằng đã tìm được file
vmlinux_xload.zbf như khi ta kiểm tra bằng 010 Editor

Hình 4. 5 .Giải nén firmware với tài khoản root

23


Tiến hành phân tích file vmlinux_xload.zbf

Hình 4. 6 .Phân tích file vmlinux_xload.zbf

Như vậy nhìn vào những gì Binwalk phân tích thì ta thấy file này chứa ZBOOT và
tại offset 0x768 có chứa dữ liệu bị nén bằng gzip. Trích xuất file này, ta được

Hình 4. 7 .Trích xuất file ra thành file 1896.gz

Giải nén file 1896.gz = câu lệnh : gizp –d 1896.gz
Tiếp tục phân tích file 1896 sau khi được giải nén ta lại thu được 1 số lượng data bị
nén nữa. ta nhận thấy lại có tệp 6606848 bị nén

Hình 4. 8 .Dữu liệu bên trong file 1896


24


Tiếp tục là tương tự vs file 6606848.gz như file 1896.gz ta thu được 1 lượng data

Hình 4. 9. Dữ liệu bên trong file 6606848

Và giờ đã ko còn file nào bị nén nữa chúng ta đã trích xuất các tập tin từ Kernel của
Box FPT.Có thể sử dụng thêm câu lệnh: tree 6606848/ để xem tree process của tập tin

4.2. Quét firmware image với binwalk
Tải firmware Archer C7(EU)_V5_210519 bộ định tuyến wiffi và giải nén file từ
link: />
Hình 4. 10 .Tải và giải nén firmware Archer C7(EU)_V5_210519

25


×