B
banbui
Guest
Binwalk cơ bản để rà soát CVE-2022-0162 trên TL-WR841N V13
B
- banbui
- 4.040 Lượt xem
Chào các bạn! Bài viết đầu tay này của mình sẽ chia sẻ với mọi người về cách mình sử dụng binwalk và rà soát CVE-2022-0162 trên một phiên bản phần cứng khác của TL-WR841N. Đây là một lỗ hổng trên router có thể cho phép kẻ tấn công trên mạng cục bộ truy cập giao diện quản lý dựa trên web của thiết bị bị ảnh hưởng với các đặc quyền quản trị.
Giới thiệu qua một chút, Binwalk là một công cụ nhanh chóng và dễ sử dụng để phân tích, RE (dịch ngược) và trích xuất file hệ thống từ firmware.
Chúng ta cần một số công cụ cơ bản để phục vụ quá trình tìm kiếm lỗ hổng như sau: distro Linux bất kì, binwalk và firmware của thiết bị. Ở đây mình tải trực tiếp firmware trên trang chủ của TP-Link.
2. Trích xuất các file từ binary:
Sau khi trích xuất chúng ta thu được các file sau:
Trong directory squashfs-root là file hệ thống:
Đến đây chúng ta đã hoàn thành công việc sử dụng binwalk để kết xuất file hệ thống từ firmware đơn giản.
3. Mở directory squashfs-root để tìm kiếm một số thông tin như: đang sử dụng BusyBox v1.19.2, web, các binary file,… Sau khi tìm kiếm ở thư mục .\squashfs-root\web\frame\login.htm thì ta thấy dòng sau:
Ở đây cookie được tạo bằng chuỗi Basic + base64([userName]:[password]). Do cookie được gửi lại trong mỗi request nên việc để mật khẩu trên cookie (kể cả được encrypt) là một điều cần tránh mà đoạn code trên chỉ encode bằng Base64! Đây là điều mà CVE-2022-0162 có nhắc tới.
Theo NIST và CAN, đây là một lỗ hổng được cho là nghiêm trọng với mức điểm CVSS lần lượt là 9.8 và 8.4. Ngoài ra không chỉ phiên bản V11 theo báo cáo của cert-in mà còn ảnh hưởng ở nhiều phiên bản phần cứng khác chưa được vá như tại đây là V13. Các bạn có thể thử với các phiên bản phần cứng với firmware trên trang chủ của TP-Link.
Trong đó:
Cú pháp:
Đến đây chúng ta có thể thấy được các file hệ thống giống như sử dụng binwalk.
2. Ngoài ra, các bạn cũng có thể tìm ra CVE-2022-0162 theo cách của một web pentester:
Các bạn có thể sử dụng bất kì một công cụ bắt request hoặc đọc cookies để nhận thấy cookie được truyền có dạng username: password dạng base64. Ở đây mình sử dụng extension cookie editor:
Trên đây là chia sẻ của mình về binwalk cơ bản để rà soát CVE-2022-0162. Cảm ơn các bạn đã đọc bài viết và nếu còn câu hỏi nào hãy comment để cùng thảo luận. Trong các chủ đề sau mình sẽ chia sẻ một số kiến thức thú vị hơn để mọi người trao đổi thêm nhé.
Giới thiệu qua một chút, Binwalk là một công cụ nhanh chóng và dễ sử dụng để phân tích, RE (dịch ngược) và trích xuất file hệ thống từ firmware.
Chúng ta cần một số công cụ cơ bản để phục vụ quá trình tìm kiếm lỗ hổng như sau: distro Linux bất kì, binwalk và firmware của thiết bị. Ở đây mình tải trực tiếp firmware trên trang chủ của TP-Link.
A - Trích xuất file hệ thống và tìm kiếm lỗi:
1. Binwalk để kiểm tra các thành phần trong file binary:
Bash:
binwalk TL-WR841Nv13_VN_0.9.1_3.16_up_boot\[161031-rel68410\].bin
2. Trích xuất các file từ binary:
Bash:
binwalk -e TL-WR841Nv13_VN_0.9.1_3.16_up_boot\[161031-rel68410\].bin
Sau khi trích xuất chúng ta thu được các file sau:
Trong directory squashfs-root là file hệ thống:
Đến đây chúng ta đã hoàn thành công việc sử dụng binwalk để kết xuất file hệ thống từ firmware đơn giản.
3. Mở directory squashfs-root để tìm kiếm một số thông tin như: đang sử dụng BusyBox v1.19.2, web, các binary file,… Sau khi tìm kiếm ở thư mục .\squashfs-root\web\frame\login.htm thì ta thấy dòng sau:
Ở đây cookie được tạo bằng chuỗi Basic + base64([userName]:[password]). Do cookie được gửi lại trong mỗi request nên việc để mật khẩu trên cookie (kể cả được encrypt) là một điều cần tránh mà đoạn code trên chỉ encode bằng Base64! Đây là điều mà CVE-2022-0162 có nhắc tới.
B - Mức độ nguy hiểm của lỗ hổng
Với lỗ hổng này kẻ tấn công có thể bắt các gói tin trên đường truyền để lấy thông tin đăng nhập một cách dễ dàng từ đó can thiệp vào toàn bộ cấu hình cài đặt trên router như thay đổi thông tin đăng nhập, DNS,…Theo NIST và CAN, đây là một lỗ hổng được cho là nghiêm trọng với mức điểm CVSS lần lượt là 9.8 và 8.4. Ngoài ra không chỉ phiên bản V11 theo báo cáo của cert-in mà còn ảnh hưởng ở nhiều phiên bản phần cứng khác chưa được vá như tại đây là V13. Các bạn có thể thử với các phiên bản phần cứng với firmware trên trang chủ của TP-Link.
C - Một số phương pháp khác để rà soát
1. Ở bước 2, các bạn có thể sử dụng lệnh “dd” để thay cho dùng binwalk -e với cú pháp:
Bash:
dd if=TL-WR841Nv13_VN_0.9.1_3.16_up_boot\[161031-rel68410\].bin bs=1442304 skip=1 of=rootfs.squashfs
Trong đó:
- if là tên file binary
- bs là đoạn binary được phân tách, ví dụ: bs=64 thì đoạn data được tính là tách thành các đoạn nhỏ 64 bytes.
- skip là số lượng các đoạn bs được bỏ qua tính từ dầu tiên, ví dụ bs=64 skip=2 thì bỏ quả 128 byte đầu tiên.(Nếu không có option gì thêm thì file được trích xuất đến cuối file binary)
- of là file được trích xuất ra
- count : count là đếm số bytes kể từ điểm bắt đầu trích xuất đến điểm cuối cùng trích xuất. Ví dụ bs=64 skip=2 count=1024 thì file được lấy kể từ byte thứ 64*2= 128 đến byte thứ 64*2 + 1024= 1152. Lựa chọn này không có trong câu lệnh trên tuy nhiên nó hay được sử dụng khi đoạn file hệ thống không nằm cuối binary.
Cú pháp:
Bash:
unsquashfs rootfs.squashfs
Đến đây chúng ta có thể thấy được các file hệ thống giống như sử dụng binwalk.
2. Ngoài ra, các bạn cũng có thể tìm ra CVE-2022-0162 theo cách của một web pentester:
Các bạn có thể sử dụng bất kì một công cụ bắt request hoặc đọc cookies để nhận thấy cookie được truyền có dạng username: password dạng base64. Ở đây mình sử dụng extension cookie editor:
Trên đây là chia sẻ của mình về binwalk cơ bản để rà soát CVE-2022-0162. Cảm ơn các bạn đã đọc bài viết và nếu còn câu hỏi nào hãy comment để cùng thảo luận. Trong các chủ đề sau mình sẽ chia sẻ một số kiến thức thú vị hơn để mọi người trao đổi thêm nhé.
Chỉnh sửa lần cuối bởi người điều hành: