Writeup về phòng Dumping Router Firmware trên Tryhackme

Trong bài này, mình sẽ hướng dẫn từng bước cho các bạn, tức là từ việc tải firmware mẫu và sau đó phân tích nó để tìm câu trả lời. Bạn có thể cùng theo dõi và trả lời câu hỏi tại đây.

Một chút writeup về phòng Dumping Router Firmware trên Tryhackme

Chuẩn bị

Điều đầu tiên và quan trọng nhất là tìm một router firmware cần được phân tích. Trong trường hợp này, chúng ta đã được cung cấp mục tiêu nên mình sẽ tải firmware về máy Linux.

Chúng ta cần tải firmware V2 của Linksys WRT1900ACS. Bạn có thể tải firmware này tại đây.

Writeup về phòng Dumping Router Firmware trên Tryhackme 21

Sau khi tải xuống, bạn có thể chạy lệnh ‘file’ để tìm kiếm các thông tin cơ bản của tệp.

Writeup về phòng Dumping Router Firmware trên Tryhackme 22

Chúng ta có thể thấy rằng đây là ‘u-boot legacy uImage’ và là firmware của Router Linksys WRT1900ACS dựa trên Linux/ARM.

Bây giờ chúng ta đã hoàn tất việc thu thập thông tin cơ bản vào giai đoạn chuẩn bị – Cho phép. điều tra phần sụn.

Bắt đầu điều tra

Một công cụ quan trọng ở đây là lệnh ‘string’. Nó cung cấp cho chúng ta tất cả thông tin chuỗi cơ bản (được công nhận bằng tiếng Anh) mà nó có thể tìm thấy trong mã nhị phân của tệp. Chạy lệnh và xem những gì chúng ta có thể tìm thấy nào.

Có một số lượng cực lớn các chuỗi được tìm thấy ở đây, bạn cần lưu chúng vào một tệp văn bản để phân tích dễ dàng hơn.

Writeup về phòng Dumping Router Firmware trên Tryhackme 23

Sử dụng lệnh less để xem vài dòng đầu tiên của file.

Writeup về phòng Dumping Router Firmware trên Tryhackme 24

Dòng đầu tiên cần được chú ý vì nó cung cấp cho chúng ta thông tin về firmware này và router mà nó được tạo ra. Bây giờ chúng ta sẽ tìm hệ điều hành. Chúng ta có thể in toàn bộ tệp và tìm kiếm bằng lệnh ‘grep’.

Writeup về phòng Dumping Router Firmware trên Tryhackme 25

Dựa vào kết quả trên thì chúng ta chắc chắn là hệ điều hành Linux. Chúng ta có thể thấy trong ảnh ở trên có một số thư mục được liệt kê.

Writeup về phòng Dumping Router Firmware trên Tryhackme 26

Bây giờ chúng ta đã có một cái nhìn tổng quan. Chúng ta cần giải nén firmware. Để giải nén firmware, mình sẽ sử dụng “BinWalk”.

Writeup về phòng Dumping Router Firmware trên Tryhackme 27

Chúng ta gặp lỗi và binwalk không thể giải nén file system. Điều này là do binwalk không hỗ trợ JFFS2. Đầu tiên chúng ta cần thiết lập nó. Thực hiện những lệnh sau:

sudo pip install cstruct
git clone https://github.com/sviehb/jefferson cd jefferson
python setup.py install

Sau khi cài đặt thành công, hãy chạy lại binwalk và bây giờ chúng ta có thể thấy rằng binwalk đã xác định file system là JFFS2.

Writeup về phòng Dumping Router Firmware trên Tryhackme 28

Bây giờ chúng ta có rất nhiều thông tin liên quan đến firmware. Kích thước tiêu đề, kích thước hình ảnh, kiểm tra CRC, ngày tạo gần đây nhất, chi tiết hệ điều hành, CPU mà nó chạy trên đó,…

Binwalk tạo một thư mục riêng cho dữ liệu mà nó trích xuất.

Writeup về phòng Dumping Router Firmware trên Tryhackme 29

Chúng ta có thể thấy rằng có một tệp hiển thị filesystem JFFS2 và tệp kia là tệp gzip. Chạy tệp sẽ xuất ra 6870 và không có dữ liệu nào khác. Điều này có nghĩa là binwalk đã hiểu sai dữ liệu, chúng ta có thể chạy lại binwalk trên tệp để tìm kiếm các khả năng khác để thử và trích xuất dữ liệu theo đúng định dạng.

Writeup về phòng Dumping Router Firmware trên Tryhackme 30

Chúng ta có thể thấy rằng tệp này chứa một bản sao của một nhân Linux thực; binwalk cũng cho chúng ta thấy phiên bản mà kernel này hoạt động. Chúng ta cũng có thể thấy một số dữ liệu nén LZMA và một số dữ liệu lưu trữ cpio.

Bước tiếp theo là mounting firmaware để phân tích kỹ hơn phần này.

Mounting

Đầu tiên, chúng ta cần tạo một “Block Device”. Nó có thể được thực hiện bằng cách sử dụng lệnh:

mknod /dev/mtdblock0 b 31 0

Sau đó, chúng ta cần tạo một thư mục để đẩy filesystem của mình đến đó bằng lệnh:

mkdir /mnt/jffs2_file/

Firmware yêu cầu một số mô-đun kernel. Vì vậy, chúng ta cần tải tất cả chúng để đảm bảo rằng filesystem được hoạt động tốt. Bạn có thể sử dụng các lệnh sau:

modprobe jffs2
modprobe mtdram
modprobe mtdblock

Bây giờ chúng ta cần ghi image vào “Block Device” và nó có thể được thực hiện bằng lệnh:

dd if=/root/Router/600000.jffs2 of=/dev/mtdblock0

Tiếp theo, chúng ta cần mount filesystem bằng lệnh:

mount -t jffs2 /dev/mtdblock0 /mnt/jffs2_file/

Cuối cùng, chúng ta sẽ truy cập vào filesystem được mount bằng lệnh:

cd /mnt/jffs2_file/

Sau khi tất cả hoàn thành, thực hiện lệnh ls để hiển thị các thư mục. Chúng ta vừa mount firmware này vào local :v.

Writeup về phòng Dumping Router Firmware trên Tryhackme 31

Khi liệt kê tất cả các tệp, chúng ta có thể thấy rằng một số tệp đang được liên kết tượng trưng với các vị trí khác. Về bản chất, một số tệp có ‘shortcuts’ đến những tệp khác ở nơi khác trên file system.

Writeup về phòng Dumping Router Firmware trên Tryhackme 32

Ngoài ra, chúng ta có thể thấy rằng có ba thư mục mẹ được liên kết với thư mục /tmp/. Chúng ta cũng có thể thấy thư mục /www/, đây là nơi dữ liệu ứng dụng web sẽ được lưu trữ.

Hãy xem trong thư mục bin:

Writeup về phòng Dumping Router Firmware trên Tryhackme 33

Chúng ta có thể thấy rằng cơ sở dữ liệu là “sqlite3”.

Bây giờ chúng ta hãy xem những gì bên trong thư mục etc.

Writeup về phòng Dumping Router Firmware trên Tryhackme 34

Có rất nhiều tệp cấu hình ở đây, cùng với rất nhiều dữ liệu. Hãy xem qua tệp thebuilddate. Mình tự hỏi tệp này có thể làm gì ???

Writeup về phòng Dumping Router Firmware trên Tryhackme 35

Ở đây cũng có các khóa RSA và chúng ta có thể thấy rằng máy chủ SSH đang được sử dụng ở đây là “dropbear”.

Thú vị thật, có những dữ liệu của máy chủ trung gian cũng được hiển thị ở đây. Kiểm tra thêm cho thấy đây là của Cisco.

Writeup về phòng Dumping Router Firmware trên Tryhackme 36

Hãy xem các file service khác để biết càng nhiều thông tin liên quan đến các giao thức được sử dụng và số cổng được chỉ định của chúng.

Writeup về phòng Dumping Router Firmware trên Tryhackme 37

Có một tệp khác được gọi là “system_defaults” chứa tất cả các cài đặt mặc định cho router.

Writeup về phòng Dumping Router Firmware trên Tryhackme 38

Có một tệp chứa phiên bản firmware.

Writeup về phòng Dumping Router Firmware trên Tryhackme 39

Có một thư mục tên là JNAP chứa các tập lệnh lua. Các tập lệnh này được sử dụng để điều khiển mạng.

Writeup về phòng Dumping Router Firmware trên Tryhackme 40

Đây là bản tóm tắt rất nhanh về phân tích firmware của router. Ngoài ra, bạn cũng có thể xem thêm các phòng để tập hack trên tryhackme tại đây.

Previous Post Next Post