[cam9] Phía sau một cô gái - Camera an ninh nguồn không rõ ràng từ trung quốc đầy lổ hổng bảo mật

contentteam

Buildcontent
#1
1*22JsCklcbe2IoP2WVUCpIg.jpeg

Lời mở đầu
Có ông bạn béo béo cho mượn mấy cái IP Camera cắm chơi phòng trộm hoặc ngó nhà, trông trẻ khi đi làm. Nghe thiên hạ nói rằng hãng làm cái này hiện đang rất đình đám ở VN, sử dụng những công nghệ rất ư là tiên tiến. Mà qua mấy vụ DDoS trong năm rồi đưa VN lên bảng đồ TOP 1 Thế Giới về “lực sát thương” bằng vũ khí chủ yếu là IP Camera nên mình cũng ngần ngại cắm nó vô internet, vì vậy theo thói quen nghề nghiệp ngồi mổ bụng móc ruột dòm ngó trước để đảm bảo sẽ không là người góp băng thông vào một cuộc phá hoại khác trong tương lai.

Mình viết bài này xem như một bài hướng dẫn về cách tiếp cận embedded system để sau này các bạn đi sau khi có nhu cầu nghiên cứu, học tập có thể tham khảo cách mình đã làm.

Phần cứng
Camera sử dụng một bo mạch BLK18E-OH22_33x32_S dùng SoC Hi3518 của Hisilicon, một bo mạch IR LED và một ống kính.

Thông tin bo mạch có thể dễ dàng tìm thấy trên
Bạn phải đăng nhập để xem liên kết Log in or register now.
.



1*PC0SiA5Zk5fqzkwoPi6AvA.jpeg

Các thành phần của camera
Ngoài ra hầu hết các thành phần khác (trừ miếng decal dán bên ngoài) đều có thể tìm mua trên AliExpress.

Truy cập bootloader
Nhìn trên board không thấy có ra chân JTAG hay SPI mà chỉ có 3 chân UART (lỗ tròn) nằm sát cạnh chân bắt ốc.

Qua kiểm tra bằng cách đo 3 chân bằng máy đo đa dụng kế, mình xác định được các chân như sau: GND, TX, RX (theo thứ tự từ sát chân bắt ốc vào). Cách đo đơn giản là đo volt lần lượt trên các chân, chân nào nhảy volt liên tục khi có dữ liệu xuất ra là RX và nhảy volt khi có dữ liệu đưa vào là TX và chân luôn luôn ở mức 0 volt là GND.

Đã có 3 chân UART, ta có thể truy cập vào bằng cách dùng các công cụ có chức năng chuyển UART qua USB vào máy tính như Bus Pirate, Shikra, JTaGulator hoặc một mạch chuyển USB UART rẻ tiền. Mình sử dụng mạch chuyển USB UART CP2102, có thể mua thiết bị này tại
Bạn phải đăng nhập để xem liên kết Log in or register now.
.



1*rV0vQNDJ9FjlImketQhVbg.jpeg

Nối dây vào các chân UART


1*tT0lwrqVAJQ0mUgBya3c_g.jpeg

Nối dây UART vào mạch chuyển USB UART CP2102
Cắm mạch chuyển vào máy tính sau khi đã cắm dây, kết nối vào cổng UART với baud rate thiết lập là 115200 . Cắm điện camera ta sẽ thấy thông tin boot của camera.



1*YNXZ9MbCVx2bS_WG45MfqQ.png

Tuy nhiên sau khi boot đến kernel thì không còn thấy gì. Không thấy thông tin kernel boot, không có single mode console -> không có root tương tự như trên cổng UART của của một số thiết bị nhúng khác.

Dòm kỹ lại các thông tin được in ra từ bootloader ta thấy có nhận vào Ctrl+C để gián đoạn quá trình autoboot.

Press Ctrl+C to stop autoboot
Khởi động lại camera, nhấn Ctrl+C ta sẽ tương tác được với bootloader qua tập lệnh có sẵn (gõ help hoặc ? để xem danh sách lệnh).



1*Izlzg3IaBR5qc6mivsupAQ.png

Các lệnh của bootloader
Nhìn danh sách lệnh sẽ thấy có 2 lệnh sử dụng SPI là flwritesf, ngoài ra còn có lệnh tftp để tải lên và về camera các tập tin từ máy chủ TFTP.

flwrite — SPI flash sub-systemsf — SPI flash sub-systemtftp — tftp — download or upload image via network using TFTP protocol
Như vậy thông qua 3 lệnh này ta có thể đọc ghi được dữ liệu trên bộ nhớ flash của camera và gởi về máy tính để phân tích.

Trích xuất firmware
Qua thông tin in ra từ bootloader, ta thấy được dung lượng flash trên camera này là 8MB. Địa chỉ nạp là 0x82000000.

Check spi flash controller v350… FoundSpi(cs1) ID: 0xc2 0x20 0x17 0xc2 0x20 0x17Spi(cs1) Block:64KB Chip:8MB Name:”MX25L6406E”…### boot load complete: 1969140 bytes loaded to 0x82000000
Sử dụng hàm sf để nạp và đọc hết 8MB flash rồi copy về máy chủ TFTP bằng lệnh tftp (nhớ cắm dây mạng cho camera). Thông tin IP máy chủ TFTP và camera có thể xem qua lệnh printenv. Ngoài ra ta có thể cấu hình lại IP camera và máy chủ qua lệnh setenv (IP sẽ trở về mặc định sau khi khởi động lại).



1*k1QirdVH1pVW5XM-ZOAzzg.png

Thông tin các biến môi trường
sf probe 0sf read 0x82000000 0x0 0x800000tftp 0x82000000 vp9.bin 0x800000


1*oa2FgPONUPlPqyDiBhoJsQ.png

đọc và kiểm tra bộ nhớ flash


1*M291PktRmEFBk7m-KZqYWw.png

đẩy firmware về máy chủ TFTP
Như vậy ta đã có đầy đủ firmware của camera, để phân tích firmware ta có thể sử dụng binwalk để giải nén và đọc các thông số, dịch ngược các tập tin binary hoặc thay đổi lại firmware và nạp lại lên camera. Các công việc này đòi hỏi nhiều kỹ năng về lập trình, đọc ngôn ngữ cấp thấp, hệ thống linux embedded và nhất là thời gian và sự kiên nhẫn. Mình sẽ không ghi lại các quá trình này (có thời gian mình sẽ viết riêng một bài nếu cần thiết), các bạn có thể tìm trên Google với từ khoá “reverse engineering firmware binwalk”.

Các lỗi bảo mật trên camera
Trong quá trình phân tích firmware, mình thấy camera có khá nhiều lỗi bảo mật nghiêm trọng và hầu như không thể vá được nếu không có mã nguồn của một số phần mềm đang chạy và cho dù có mã nguồn thì nó cũng quá khó đối với người dùng bình thường khi họ không thể có được kỹ năng tự vá lỗi.

Truy cập vào web xem camera không cần đăng nhập
Người dùng có thể truy cặp thẳng vào phần coi camera mà không cần đăng nhập vào web bằng cách thay Login.htm thành DVR.htm



1*215lUtqSfKcYJKLKfWrSVA.png

Tự động chạy dịch vụ telnet với mật khẩu mặc định và không thể thay đổi
Đọc tập tin /etc/passwd trên firmware của camera ta thấy được hash mật khẩu của user root.

root:$1$RYIwEiRA$d5iRRVQ5ZeRTrJwGjRy.B0:0:0:root:/:/bin/sh
Bằng cách đơn giản nhất là tìm kiếm trên Google, ta có ngay được mật khẩu mặc định này là xmhdipc.



1*2enn7xXafO1eLpcJ4x0CLw.png

Google hash mật khẩu (Mật khẩu này Mirai botnet đã từng dùng)
Nhiều lỗi nghiêm trọng trên phần mềm Sophia
Phần mềm Sophia chạy trên camera đóng vai trò làm dịch vụ rtsp truyền hình ảnh, dịch vụ webdịch vụ onvif soap. Qua dịch ngược, phân tích phần mềm này cho thấy phần đảm nhiệm dịch vụ web có chức năng liệt kê thư mục và không kiểm tra khi có truy cập thoát khỏi thư mục gốc, do đó bất kỳ người dùng nào truy cập được vào web đều có thể liệt kê và đọc hết toàn bộ nội dụng trên camera mà không cần đăng nhập (Sophia được chạy với quyền root).



1*gtdqs64fofT5ZzIOrQ3Q3A.png

liệt kê và đọc các tập tin trên camera
Trên Sophia còn rất nhiều lỗi bảo mật nghiêm trọng tồn tại như lỗi tràn bộ đệm trong dịch vụ web. Xem trực tiếp camera bằng giao thức rtsp qua dịch vụ rtsp. Tràn bộ đệm, chèn lệnh hệ thống, điều khiển thiết bị (tạo xoá tài khoản, reset thiết bị về mặc định, khởi động lại, điều chỉnh thông số…) trong dịch vụ onvif soap không cần đăng nhập… mà liệt kê và demo sẽ làm tốn thêm thời và gian độ dài của bài viết nên mình tạm dừng ở đây.

Kết luận
Nhìn qua thì sản phẩm này cũng gần như 100% là đồ nhập từ Trung Quốc gồm cả phần cứng lẫn phần mềm (trừ con decal) chứa đầy các lỗi bảo mật nghiêm trọng như bao camera Trung Quốc khác ngoài thị trường.

Sản phẩm này nếu được truy tập từ internet hoặc để ở các mạng công cộng thì sẽ là hiểm hoạ của an toàn thông tin và bảo mật cá nhân.

Và cuối cùng là … quảng cáo hơi lố



1*8stYNdPXZW8kyO9bZoBn0w.png


Bạn phải đăng nhập để xem liên kết Log in or register now.
 
#2
Đúng là lúc học thầy mình có bảo, giờ VN muốn sản xuất cái gì cứ ra mua bên Tàu về ráp lại :)) dán mác VN là xong
 

j4uj4f

Búa Gỗ
#4
Nếu mua camera từ tàu +, có một ngày bạn phát hiện ra camera của mình tự xoay và đều chỉnh góc quay và phát ra các cuộc nói chuyện thì bạn đã biết rằng cuốc sống riêng tư của mình đang bị theo dõi
 
Top