wiki/vi/research-security.md

7.9 KiB

OpenIPC Wiki

Mục lục

Truy cập SSH, Telnet, FTP và các dịch vụ khác

Rất thường xuyên, firmware gốc cung cấp quyền truy cập vào hệ điều hành của nó nhưng quyền truy cập bị đóng với mật khẩu không được tiết lộ. Chúng ta có thể khôi phục hàm băm mật mã của mật khẩu đó trong khi trích xuất bản sao của hình ảnh firmware.

Hàm băm mật khẩu

$1$bh2njiGH$4duacOMcXDh6myANzbZTf.

Chuỗi mật khẩu muối băm bao gồm ba phần: mã định danh thuật toán băm, muối và hàm băm mật khẩu, mỗi phần được đặt trước bởi dấu đô la. Phần đầu tiên, $1, là thuật toán băm được mã hóa bằng một (hiếm khi là hai) ký tự. Nó biểu thị phương pháp mật mã được sử dụng để tạo hàm băm:

  • $1 - Thuật toán MD5.
  • $2 - Thuật toán Blowfish.
  • $2a - Thuật toán eksblowfish
  • $5 - Thuật toán SHA-256
  • $6 - Thuật toán SHA-512

Phần thứ hai, $bh2njiGH, là muối - một chuỗi ký tự được thêm vào mật khẩu văn bản thuần túy trước khi băm nó để ngẫu nhiên hóa các hàm băm kết quả cho cùng một mật khẩu và ngăn chặn các cuộc tấn công bảng cầu vồng.

Phần cuối cùng, $4duacOMcXDh6myANzbZTf., là hàm băm. Khi bạn nhập mật khẩu, nó được nối với muối được cung cấp sau đó được băm bằng thuật toán băm được cung cấp và kết quả được so sánh với hàm băm. Cùng một mật khẩu, muối và phương pháp băm sẽ luôn tạo ra kết quả giống nhau.

Các thuật toán băm là các phương pháp mã hóa một chiều có nghĩa là hàm băm không thể được giải mã trở lại mật khẩu văn bản thuần túy, nhưng có thể thực hiện băm các biến thể có sẵn của mật khẩu văn bản thuần túy cho đến khi tìm thấy kết quả khớp. Phương pháp này được gọi là tấn công brute-force.

Camera IP có xu hướng sử dụng thuật toán băm MD5 tương đối đơn giản và nhanh nên việc sử dụng phần mềm phá mật khẩu và tài nguyên máy tính mạnh mẽ thì mật khẩu văn bản thuần túy ban đầu có thể được chọn trong vài tuần hoặc vài ngày, nếu không phải vài giờ, đặc biệt là sử dụng từ điển chất lượng cao.

Trong ví dụ trên, chúng tôi đã sử dụng mật khẩu "openipc". Bạn có thể kiểm tra tính hợp lệ của mật khẩu bằng cách sử dụng mkpasswd hoặc openssl:

$ mkpasswd -m md5crypt -S bh2njiGH openipc
$1$bh2njiGH$4duacOMcXDh6myANzbZTf.
$ openssl passwd -1 -salt bh2njiGH openipc
$1$bh2njiGH$4duacOMcXDh6myANzbZTf.

Khi tìm thấy mật khẩu, nên chia sẻ công khai để các nhà nghiên cứu khác trong lĩnh vực này có thể dành nguồn lực mật mã của họ cho việc khám phá thêm nhiều mật khẩu chưa biết. Chia sẻ là quan tâm, các bạn!

Một số mật khẩu mà chúng tôi tìm thấy trong các firmware khác nhau

| Hash                                  | Văn bản thuần túy |
|---------------------------------------|------------|
| $1$MoCJ1nRA$NfsI1wlYcWoF5MbU4t3Og0    | ivdev      |
| $1$ZebZnWdY$QZ1Aa.7hwBshCS5k40MUE1    | xc12345    |
| $1$d3VPdE0x$Ztn09cyReJy5Pyn           | runtop10   |
| $1$qFa2kfke$vJob19l64Q6n8FvP8/kvJ0    | wabjtam    |
| $1$rHWQwR5V$i4FVDvwhuzau8msvAfHEt.    | 2601hx     |
| $1$tiaLlxGM$byeTUfQgqyET5asfwwNjg0    | hichiphx   |
| $1$0Me7S3z5$.uQ4Pr/QjJQ/0JUZI0w4m.    |            |
| $1$4dAkkeWK$HCy0K1z8E.wAuwgLV8bWd/    |            |
| $1$7bfnUEjV$3ogadpYTDXtJPV4ubVaGq1    |            |
| $1$7BqzlCqK$nQXIfc53c1ACEwzNg7G3D.    |            |
| $1$cNGGWwI/$5/mZTMlcVfJlpE5DGrdsl/    |            |
| $1$FMNq4QIj$lJg6WzZxy1HWl3sL.YwIq1    |            |
| $1$IZfqary9$IrG6loat5pDTBLr6ksKTD0    |            |
| $1$ocmTTAhE$v.q2/jwr4BS.20KYshYQZ1    |            |
| $1$OIKWDzOV$WjZNcNtHSKVscbi9WQcpu/    |            |
| $1$rnjbbPTD$tR9oAIWgUp/jRrhjDuUwp0    |            |
| $1$RYIwEiRA$d5iRRVQ5ZeRTrJwGjRy.B0    | xmhdipc    |
| $1$uF5XC.Im$8k0Gkw4wYaZkNzuOuySIx/    |            |
| $1$vN9F.lHa$E09mbCRo70834AUfkytpX     |            |
| $1$wbAnPk8f$yz0PI9vnyLRmWbENUnce3/    |            |
| $1$ybdHbPDn$ii9aEIFNiolBbM9QxW9mr0    |            |
| $1$yq01TaSp$lkN/azu3IxE97owy27pve.    |            |
| $1$yFuJ6yns$33Bk0I91Ji0QMujkR/DPi1    |            |
| $1$yi$FS7W5j1RJmbRHDe0El/zX/          |            |
| $1$yi$MiivC6pLdwS0zp0pa0cUq1          | qw1234qw   |
| $Dg.cUjtWGTIVkuFS0ZYbN1               | fx1805     |
| $enWsv2cbxPCrd0WeXUXtX0               | nobody     |
| $qZV4X6DTqMHUDIyZG.8PH.               |            |
| $z2VkRbfNoE/xHLBj8i2cv.               | ftp        |
| 7wtxBdUGBnuoY                         | runtop10   |
| 9B60FC59706134759DBCAEA58CAF9068      | Fireitup   |
| LHjQopX4yjf1Q                         | ls123      |
| ab8nBoH3mb8.g                         | helpme     |
| absxcfbgXtb3o                         | xc3511     |
| xt5USRjG7rEDE                         | j1/_7sxw   |
| $1$EmcmB/9a$UrsXTlmYL/6eZ9A2ST2Yl/    |            |
| $1$soidjfoi$9klIbmCLq2JjYwKfEA5rH1    |            |

Chiếm quyền mật khẩu mặc định

đã thử nghiệm trên Goke

Thông qua giao diện UART, có thể tạm thời làm gián đoạn trình tự khởi động bình thường và chuyển sang một shell Linux hạn chế ở giai đoạn đầu khởi động hệ thống.

setenv bootargs ${bootargs} single init=/bin/sh
boot

Shell này sẽ không tải toàn bộ hệ thống đang hoạt động, vì vậy bạn phải sửa đổi nó theo cách thủ công. Đầu tiên, hãy mount hệ thống tệp /rom:

mount -t jffs2 /dev/mtdblock3 /rom

Mount phần còn lại của các điểm mount từ /etc/fstab:

mount -a

Ngoài ra, hãy mount thẻ SD để sao chép tệp đến và đi:

mount /dev/mmcblk0p1 trên /mnt/s0

Trên hệ thống tệp /rom, bạn có thể chỉnh sửa tệp /room/etc/passwd nhưng một khi thiết bị khởi động lại, nó sẽ được đặt lại về mặc định. Điều này xảy ra vì có một tệp bin hướng dẫn tạo lại tệp passwd trong mỗi lần khởi động, vì vậy chúng ta cần sửa đổi tệp thực thi đó.

Sao chép system.dat vào thẻ SD:

cp /rom/system.dat /mnt/s0

Trên máy tính Linux, giải nén tệp system.dat bằng cách sử dụng unsquashfs:

mkdir squashfs-temp
cd squashfs-temp
unsquashfs system.dat

Tìm tệp hướng dẫn và chỉnh sửa nội dung của nó trong trình soạn thảo hex để sửa đổi tên của tệp mà mật khẩu được ghi trong mỗi lần khởi động lại. Tìm kiếm /etc/passwd và thay đổi một chữ cái trong tên của nó thành một cái gì đó khác, như /etc/passwT.

Đóng gói hệ thống tệp squash bằng cách sử dụng mksquashfs:

mksquashfs ./squashfs-root ./file -comp xz -no-xattrs -noappend -no-exports -all-root -quiet -b 131072

và sao chép nó từ thẻ SD trở lại thư mục /rom trên camera.

Bây giờ bạn có thể thay thế mật khẩu trong /rom/etc/passwd bằng mật khẩu của riêng bạn và khi bạn khởi động lại thiết bị, bạn sẽ có hệ thống hoạt động đầy đủ với mật khẩu của riêng bạn.

Phần mềm