[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

Thảo luận trong 'Bảo Mật' bắt đầu bởi contentteam, 6/10/17.

  1. contentteam

    contentteam Buildcontent Kiểm duyệt nội dung

    [​IMG]
    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

    Link tải đã ẩn Để tránh Google nghía, bạn cần đặng nhập để thấy link. Đăng ký or đặng nhập tại đây

    .



    [​IMG]
    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

    Link tải đã ẩn Để tránh Google nghía, bạn cần đặng nhập để thấy link. Đăng ký or đặng nhập tại đây

    .



    [​IMG]
    Nối dây vào các chân UART


    [​IMG]
    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.



    [​IMG]
    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).



    [​IMG]
    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).



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


    [​IMG]
    đọc và kiểm tra bộ nhớ flash


    [​IMG]
    đẩ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



    [​IMG]
    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.



    [​IMG]
    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).



    [​IMG]
    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ố



    [​IMG]

    Link tải đã ẩn Để tránh Google nghía, bạn cần đặng nhập để thấy link. Đăng ký or đặng nhập tại đây

     

    Bùng Nổ Giá - Giảm đến 70k tại Shopee Xem ngay

    Rẻ Vô địch - Mua sắm thả ga màu World Cup Xem ngay

    Phụ kiện đồng giá 19k! Mua hết ga Xem ngay

    Swings Onlyone, RonHoLL Stylish thích bài này.
  2. windy000 Gà con

    Đóng góp nội dung

    Đú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
     
  3. LL Stylish

    LL Stylish Búa Đá Đôi

    Đóng góp nội dung

    Hàng Việt nam, chất lượng Tàu {feel_good}{feel_good}{feel_good}{feel_good}
     

Chia sẻ trang này