Bài viết

Điện thoại Bphone của Bkav bị bẻ khóa như nào

49
Lỗ hổng trong điện thoại thông minh BPhone được cho phép hacker bẻ khóa tính năng chống trộm
— — — — –
Những ngày cuối năm 2021, tôi tham gia BPhone Fan Club để hóng hớt thông tin sau vụ ra đời chiếc tai nghe mấy trăm nghìn ăn đứt tai nghe chục củ. Tính xác nhận về chất lượng của tai nghe AirB này như thế nào thì tôi tạm chưa bàn tới ở đây, chỉ có điều là tham gia group này một thời hạn, tôi có vẻ như được rõ thêm về định nghĩa : như thế nào là tẩy não. Mặc cho thực sự rành rành nhưng ở trong group này, đen cũng thành trắng, người ta bẻ lái, đánh cắp khái niệm rồi tự thủ dâm niềm tin với nhau. Có những ngày đồng nghiệp hỏi tôi có ổn không, vì cả ngày ko thao tác mà chỉ có ngồi cười như thằng điên, tổng thể cũng chỉ là do một vài post của group tinh hoa công nghệ tiên tiến B * kia chòi lên newfeed của tôi …

Sau đó không lâu, vào ngày 19/12/2021, tập đoàn này tiếp tục ra mắt chiếc điện thoại thần kỳ, với các tính năng CAO CẤP bảo mật cao,  CHỤP ẢNH cực đẹp, GIÁ cực ngon, và là chiếc ĐIỆN THOẠI quốc dân…

Xem livestream trình làng loại sản phẩm, tôi cũng thấy chiếc điện thoại thông minh này khá hài hòa và hợp lý với người dùng tầm trung tại việt nam, chỉ tầm 3 tr5 -> 6 tr đã hoàn toàn có thể mua được. Trước đó, mỗi chiếc điện thoại thông minh Bphone có giá giao động từ 7-8 tr trở lên, vượt quá so với túi tiền của người Việt. Âu cũng là mừng khi có một chiếc điện thoại thông minh hoàn toàn có thể sửa chữa thay thế VSmart làm điện thoại thông minh quốc dân !

Xem xét tiếp về phần bảo mật thông tin của chiếc điện thoại cảm ứng mà đó giờ vẫn luôn được nổ rất to là BẢO MẬT CAO, KHÔNG THỂ BỊ PHÁ VỠ. Tôi đã tự hỏi mình, sau bao nhiêu năm kể từ ngày sản xuất ra chiếc điện thoại cảm ứng “ bảo mật thông tin ” tiên phong, họ có khi nào tự kiểm tra lại xem mình “ bảo mật thông tin ” ở chỗ nào chưa. Lý do là vì tầm 3-4 năm trước, khi chiếc Bphone3 sinh ra, tôi cũng đã mua 1 chiếc về để nghiên cứu và điều tra, xem họ “ bảo mật thông tin ” cái gì, “ bảo mật thông tin ” ở chỗ nào, hiệu quả hồi đó đã khiến tôi tuyệt vọng, chiếc Bphone bị bẻ khóa tính năng chống trộm trong vòng chưa tới 5 giây .

Trên FB của CEO NTQ có nói “… có đến 89% khách hàng (Bphone) tìm lại được máy thất lạc“. Và có so sánh với Samsung, Iphone, là tại sao những chiếc Iphone, Samsung kia cũng bị mất mà không thấy ai trả lại cả, rồi lại thủ dâm điện thoại của mình bảo mật cao…

Theo tôi nghĩ lý do thực sự không chắc đã là do tính năng cao cấp của điện thoại, mà nó nằm ở giá trị của cái điện thoại: “Bạn không thể bị lợi dụng khi bạn vô dụng“.

Sau 4 năm làm điện thoại thông minh, họ vẫn hô hào về chiếc điện thoại thông minh BẢO MẬT CAO, tôi cũng thấy làm lạ khi chưa có ai nói về những gì họ thực sự làm. Tôi cũng khá ngứa ngáy trong người nên ngay khi ra đời đã đặt lấy luôn một chiếc về để kiểm tra xem lỗ hổng tôi đã tìm được 4 năm trước có còn sống sót hay không. Và cũng không giật mình lắm khi nó vẫn còn nguyên trong chiếc điện thoại thông minh BẢO MẬT CAO tầm thiên hà này, tác dụng là cũng chỉ mất 5 s để vượt qua chính sách chống trộm của Bphone đời mới nhất .
Lần này tôi quyết định hành động sẽ không giữ kín thông tin nữa, mà sẽ công khai minh bạch hàng loạt thông tin về lỗ hổng cũng như cách khai thác để mọi người cùng biết thực sự về chiếc điện thoại cảm ứng BẢO MẬT CAO level thiên hà này. Tôi cũng đã nghĩ về việc report cho Bkav, tuy nhiên Bkav trả cho mỗi lỗ hổng như này được có tầm 3 tr, trong khi tôi mua máy cùng với công cụ cũng đã hết ngót nghét 20 tr rồi .

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

# # # # # # # # # # # # # # Phần kỹ thuật
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Tôi phát hiện lỗ hổng này khá lâu rồi nên không còn nhớ mọi việc mở màn như thế nào nữa. Bằng một cách nào đó tôi biết được trên Bphone có một ứng dụng tên BMS làm trách nhiệm bảo vệ và lock máy khi nhận được lệnh báo mất máy từ số điện thoại cảm ứng gia chủ .

Ảnh: tinhte.vn

Bphone không cung ứng ROM cho người dùng nên tôiextract file apk của BMS từ điện thoại cảm ứng, tôi dùng 3 lệnh sau để pull app từ bphone về :

“ `
pm list packages | grep bms
pm path com.bkav.bphone.bms
adb pull / system / priv-app / BMS / BMS.apk
“ `

File thu được có hash như sau :

Dịch ngược app BMS không khó, tôi là một dân tay ngang cũng hoàn toàn có thể đọc hiểu code dịch ngược một cách thuận tiện !

Dựa vào thông tin của file Manifest, tôi biết được một số ít service / receiver sau có ảnh hưởng tác động tới tính năng chống trộm của Bphone :


Service BmsFirebaseMessagingService có tính năng gửi nhu yếu đến sever để kiểm tra trạng thái lock của máy và gọi WebAntiTheftUtils. checkAndLock ( ) để lock máy nếu thiết yếu .

Thứ làm tôi thấy mê hoặc và tò mò đó là họ có quảng cáo Bphone có tính năng chống trộm ngay cả khi điện thoại cảm ứng KHÔNG CÓ INTERNET. Tôi tự hỏi bằng cách nào mà họ hoàn toàn có thể kiểm tra trạng thái máy mà KHÔNG CẦN INTERNET ? Theo suy đoán của tôi, Bphone tiếp xúc với server trải qua tin nhắn SMS để kiểm tra trạng thái lock của máy, mặc dầu nó mất thêm ngân sách gửi tin nhắn nhưng không đáng là bao .
Và receiver SimStateReceiver chính là đáp án cho câu hỏi trên .

Dựa vào thông tin config hoàn toàn có thể biết được receiver này sẽ được chạy mỗi lần thay sim hoặc bật máy lên. Mã nguồn của method SimStateReceiver. onReceive ( ) được gọi đến như sau :

Do điện thoại được thiết kế với 2 SIM nên sẽ có 2 thread được tạo ra để gửi SMS cho mỗi SIM
 

Lòng vòng một hồi rồi sẽ gọi ngược về SimStateReceiver. doSendSms ( ) ,SmsAntiTheft. buildMessage ( ) sẽ tạo ra message để gửi đến server, trong message này gồm có 1 số ít thông tin đã được mã hóa của máy như : chip id, IMEI, … Tất cả những tin nhắn này sẽ được mở màn với chuỗi “ BMSCS ” và được gửi đến một trong những số điện thoại cảm ứng sau .– 09680911911
– 0976748888
– 0915026357

Từ thông tin nhận được, server sẽ kiểm tra xem người mua có báo mất máy hay không, nếu có sẽ trả về một SMS khác để triển khai lock máy .

    Vậy đoạn nhận SMS từ server rồi thực hiện lock máy trên Bphone diễn ra như thế nào?

    Dĩ nhiên là nó vẫn được thực hiện bởi app BMS của Bphone. Đoạn code xử lý phần này cũng đã được chú ý một chút và obfuscate nên sẽ tốn thêm một chút thời gian đọc hiểu, class này đã được tôi rename thành BmsSMSChecker, bạn đọc có thể tìm class này bằng cách dựa theo string “bms.main.ISpamCheckerService“:

Class này có method onTransact ( ), công dụng chính của method này là lắng nghe và đọc TẤT CẢ SMS gửi tới BPhone, rồi giải quyết và xử lý những tác vụ tương ứng ( có gửi nội dung đi đâu hay ko thì tôi ko biết ). Trong method này có một phần mã nguồn đáng quan tâm như sau :Class này có method onTransact ( ), công dụng chính của method này là lắng nghe và đọc TẤT CẢ SMS gửi tới BPhone, rồi giải quyết và xử lý những tác vụ tương ứng ( có gửi nội dung đi đâu hay ko thì tôi ko biết ). Trong method này có một phần mã nguồn đáng quan tâm như sau :Để rõ ràng hơn cho đoạn nghiên cứu và phân tích phía dưới, tôi xin cung ứng trước một mẫu tin nhắn được nhận từ số điện thoại thông minh server ( mẫu này tôi lượm đc bên tinhte, có lẽ rằng trước đó cũng đã nhiều người biết chuyện này nhưng không biết tính năng của nó là gì ) :

Ảnh: tinhte

BMSCS2

Zoa726rjSxiXzCVLH4gn5JIw3MmtRtCLZBkG + ZTkVBBiTa3Xj0PyvjRkKngmDPUFlRR2pQMsFdb2ZaQmM4cNtpbgyoVrQ1I6g5f7 / Rthw + k =

## . 

Chương trình KHÔNG KIỂM TRA DANH TÍNH CỦA SENDER, hay brandname như nào, nội dung của SMS vẫn liên tục được gửi vào method SmsAntiTheft. handleSms ( ) để giải quyết và xử lý, nếu tác dụng là true thì sẽ triển khai lock máy. Đây chính là thứ tất cả chúng ta đang tìm kiếm ! Mã nguồn giải quyết và xử lý SMS của method SmsAntiTheft. handleSms ( ) như sau :

Bước tiên phong, method này sẽ check xem tin nhắn có khởi đầu bằng chuỗi “ BMSCS ” hay không, nếu không sẽ ngừng giải quyết và xử lý. Sau khi kiểm tra và cắt bỏ chuỗi BMSCS, method sẽ liên tục giải thuật đoạn base64 bằng method Utilities. decryptAES ( ), mã nguồn của method decryptAES như sau :

Method này đang sử dùng một fixed key và fixed IV để decrypt / encrypt tài liệu. Mặc dù họ đã nỗ lực mã hóa key và IV thêm một lần nữa, nhưng việc giải thuật trọn vẹn đơn thuần, tôi chỉ cần copy y chang đoạn code trên rồi cho vào chạy là đã hoàn toàn có thể lấy được key rồi. Nội dung của AES key và IV sau khi được giải thuật như sau :
Sử dụng những key trên, tôi lấy được nội dung message mà server trả về cho điện thoại cảm ứng. Để tự giải thuật message tựa như bạn hoàn toàn có thể sử dụng link này https://tinyurl.com/2p9fde46 :Sử dụng những key trên, tôi lấy được nội dung message mà server trả về cho điện thoại cảm ứng. Để tự giải thuật message tựa như bạn hoàn toàn có thể sử dụng link này https://tinyurl.com/2p9fde46 :Nội dung của tin nhắn sau khi được giải thuật :

    358329011111111|787863|12c05

    &&

    f:6

    fd:7ab40fff43adf528cbec9bc311bbbe70

    &&

    Các dòng được phân cách bởi ký tự “\n&&\n“, trong đó, dòng đầu tiên bao gồm các thông tin:

        IMEI|code gì đó|GUID

IMEI bắt buộc phải trùng với device hiện tại để chương trình giải quyết và xử lý tiếp, GUID sẽ được lưu lại vào db của device, nếu GUID đã sống sót trong máy thì không giải quyết và xử lý tiếp. Chung quy lại ở đây tất cả chúng ta cần một IMEI đúng mực và một GUID mới để hoàn toàn có thể đi tiếp !
Dòng tiếp theo được giải quyết và xử lý đó là :

f:(với 6 là khóa máy)

fd: 

     Trong đó, hashedPasscode = md5(“bkis” + real_pass_code + “bkavtulu“), ví dụ md5(“bkis000000bkavtulu”) = 7ab40fff43adf528cbec9bc311bbbe70



Tóm lại tại bước này, điều kiện kèm theo và hiệu quả của kỳ vọng đó là :
– Chúng ta có một IMEI trùng với device ,
– GUID mới chưa sống sót trong máy
Khi thỏa mãn nhu cầu những điều kiện kèm theo trên, chương trình sẽ liên tục gọi SmsAntiTheft. doLock ( ) để thực thi lock máy với passcode phía trên :

=> Như vậy, dựa vào lỗi KHÔNG KIỂM TRA người gửi và sử dụng FIXED KEY trong mã nguồn, ta hoàn toàn có thể fake một SMS của server và ép Bphone bị lock với passcode bất kỳ.

 

Tôi đã tạo một con bot Telegram để tạo SMS với passcode mặc định là “ 000000 ”, ai có nhu yếu hoàn toàn có thể sử dụng tại https://t.me/bphone_bot .
đoạn Clip demo :


* Có thể những bạn sẽ tự hỏi làm cách nào để lấy được IMEI của thiết bị, tôi xin phép không đề cập chi tiết cụ thể tới phần này, coi như là một câu hỏi mở dành cho bạn đọc !
Trên đây là những san sẻ của tôi về thực hư của tính năng chống trộm trên chiếc điện thoại cảm ứng BẢO MẬT NHẤT quốc tế. Tính năng này còn những lỗ hổng khác, tuy nhiên do số lượng giới hạn về độ dài của bài viết nên mình sẽ không đề cập tại đây .
Hy vọng Bkav thay vì chỉ biết nổ to ngoài miệng thì hãy dành thời hạn kiểm tra lại những loại sản phẩm của mình xem đã tốt hay chưa .
Tôi cũng mong tất cả chúng ta hoàn toàn có thể có một chiếc điện thoại thông minh QUỐC DÂN, CHẤT LƯỢNG CAO, BẢO MẬT CAO, Made in Vietnam, Made by Vietnam đúng nghĩa, thay vì chất lượng như hiện tại !
Người trong ao hồ xin cảm ơn quý vị đã đọc tới đây ,

p/s: feedback về tai nghe AirB: so sánh với tai nghe hổ vằn người ta còn đánh thêm.

– Advertisement –

0 ( 0 bình chọn )

Cây tri thức

https://caytrithuc.net
Nền tảng tri thức Việt

Ý kiến bạn đọc (0)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết liên quan

Bài viết mới