TLDR;
Recovery root password nhưng trên IoT.
Một số thiết bị IoT khá khoai, không phải cứ login admin, test vài chỗ firewall filter là có thể command injection vào command của iptables. Mà phải có shell để debug xem tại sao command injection không work? Hoặc tải binary của web để dịch ngược tìm lỗi memory corruption. Nhưng để có SHELL debug thì phải RCE được, để RCE được thì phải có SHELL debug, để có SHELL debug thì phải RCE được, để RCE được thì phải có SHELL debug …
Sao không cắm UART vào console? Ừ thì đây cái SHELL UART Console nó như này đây:
Chợt nhớ đến ngày xưa, ai trong chúng ta cũng có một thời quên password linux và tìm đc cái hướng dẫn recovery như sau:
1. Boot vào grub2. Sửa init=/bin/bash3. Boot!4. Remount / với quyền rw5. Passwd root => Đổi pass root6. Reset lại máy => Chào mừng đến bình nguyên vô tận???????
Để giải thích sơ về cái quy trình reset password root này. Bình thường khi boot vào Ubuntu hay Distro khác thì về cơ bản là hệ thống vẫn load nhân hệ điều hành lên trước, trong đó tham số boot init mang ý nghĩa là chương trình nào là chương trình đầu tiên, bình thường chương trình đầu tiên sẽ là chương trình login có yêu cầu xác thực username + password mới cấp shell, nhưng để reset root password ta sẽ chạy luôn /bin/bash để có shell root và reset password.
Tương tự như vậy với IoT nhưng nó hơi khác …
Tham số quan trọng ở đây là bootcmd, có vẻ như nó không có init, không sao cả, linux kernel vẫn nhận như trên cpu x86 x86_64 thôi, chỉ cần thêm vào là được. Tuy nhiên ở đây vì một lý do nào đó mà bootcmd luôn bị sửa lại khi chạy boot thật, thôi lại injection vào biến env console vậy. Mà để đơn giản đỡ phải remount tôi mount luôn quyền rw.
Kết quả:
Khi đã vào được root rồi thì có 7×7 49 cách để chèn thêm user ngang root hoặc sửa luôn password root cũng được. Tôi chọn cách tạo thêm user mang tên tôi cho nó ngầu. Xong rồi thì reset, trả lại nguyên trạng ban đầu mà login thôi. À nếu mà bạn thử làm theo mà đến đoạn này quên mất lưu nguyên trạng ban đầu của các biến ENV là như thế nào thì tôi chia buồn với bạn =)) (Trang 2 của Tịch tà kiếm phổ: không thiến cũng được)
Hẹn các bạn ở một thiết bị nào đó mà tôi phải cắm đồ nghề vào sửa bộ nhớ NAND FLASH.