chương 1. Thông qua quá trình kiểm thử sẽ dua ra các lỗ hồng tồn tại và đánh giá về độ an toàn của thiết bị. Thông tin thiết bị Camera Honeywell là sản phâm của tập đoàn đa quốc gia Honeywell. Honeywell là nhà cung cấp các thiết bị an ninh như camera giám sát, hệ thống báo động, báo cháy, hệ thống kiểm soát ra vào.
Camera Honeywell được ứng dụng khá nhiều trong các công trình cao cấp và trong các lĩnh vực mang yếu tô đặc biệt. Trong đồ án này sử dụng camera Honeywell Black có xuất xứ Dai Loan — Trung Quốc.1: Camere Honeywell Black 2. Kiém thir thiét bi 2. Xác định các thành phan hệ thông Về phan cứng thiết bị sử dụng bo mạch BLK18E-OH22 33x32 _§ dùng SoC Hi3518 erbev100 của Hisilicon, flash sử dung eeprom Fm24c08b, một bo mạch LED và một ống kính ghi hình.
Nguyễn Công Thành — D17CQAT03-B 20 Hình 2.2: Các thành phân của camera Quan sát trên mạch có 3 chân UART (lỗ tròn) nằm sát cạnh chân bắt ốc. Thông qua sử dụng máy đo đa dụng kế, em xác định được 3 chân lần lượt là: GND, TX, RX (theo thứ tự từ sát chân bắt 6c vào). Cách dé xác định là do 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 va chân luôn luôn ở mức 0 volt là GND. Nguyễn Công Thành — DI7CQAT03-B 21 Đồ án tot nghié Chương 2: Kiểm thứ IP camera Honeywell Sau khi nối dây, thiết bị có thé được truy cập vào bang cách dùng mạch chuyên USB UART CP2102 dé kết nối với máy tính và dùng phần mềm minicom dé điều khiển với baud rate thiết lập là 115200.
Quy tắc đấu giữa thiết bi và mạch chuyền là: chân GND đấu với GND, hai chân RX và TX của mạch chuyên được đấu lần lượt với TX và RX của thiết bị (dau chéo giữa 2 chân).4: Kết noi thiết bị với mạch chuyển UART Sau khi cắm điện cho camera, thông tin Uboot xuất hiện. Tuy nhiên sau khi boot đến kernel thì không có thông tin kernel boot cũng như không cho truy cập single mode console. Welcome to minicom 2.1 Press CTRL-A Z for help on special keys je U-Boot 2010.06-svn (Mar 27 2014 - 10:49:35) DRAM: 256 MiB Check spi flash controller v350. Found Spt(cs1) ID: @xEF 0x49 0x18 0x99 0x00 0x9 spt(cs1): Block:64KB Chip:16MB Nane: "W250128B lenvcrc 9x9b38a6bb.
ENV_SIZE = 0x3fffc sertaL sertaL sertaL Press Ctrl+C to stop autoboot CFG_BOOT_ADDR: 0x58080000 16384 KiB hi_sfc at 0:0 is now current device ### boot load complete: 1885372 bytes loaded to 0x82000000 ### SAVE TO 80008000 ! ## Booting kernel from Legacy Image at 82000000. Image Name: Linux Image ARM Linux Kernel Image (uncompressed) Data Size: 85308 Bytes = 1.8 MiB Load Address: 80008000 Entry Point: 80008000 oad=0x80008000,_bss_end=808293d8, image_end=801d447c, boot_sp=807971d8 Loading Kernel Image. OK OK starting kernel. done, booting the kernel.
CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.1 | VT102 | Offline | tyUSB9| Hình 2.5: Bootloader của thiết bi Nguyễn Công Thanh — D17CQAT03-B 22 Đồ an tot nghiệp > r Chương 2: Kiểm thir IP camera Honeywell F2 Tién hanh quét Nmap, thu được các port dịch vu hoạt động cua thiết bị bao gồm telnet, http, rtsp và ospf.org ) at 2021-12-19 00:40 PST Nmap scan report for _gateway (192.10) Host is up (0. Not shown: 996 closed ports PORT STATE SERVICE 23/tcp open telnet 80/tcp open http 554/tcp open rtsp 8899/tcp open ospf-Llite 1 IP address (1 host up) scanned in 0.6: Kết quả quét các cổng dịch vu 2. Thu thập thông tin Quan sát những thông tin được in ra từ bootloader, em nhận thấy có nhận vào Ctrl+C dé gián đoạn quá trình autoboot. Sau khi khởi động lại camera và làm gián đoạn quá trình boot, em có thê tương tác được với bootloader.
exluck@ubuntu: ~ File Edit View Search Terminal Help U-Boot 2010.06-svn (Mar 27 2014 - 10:49:35) DRAM: 256 MLB Check spi flash controller v350. Found Spt(cs1) ID: OxEF 0x40 0x18 0x00 0x00 0x00 Spt(cs1): Block:64KB Chip:16MB Name: "W25Q128B" envcrc 0x9b38a6bb ENV_SIZE = 0x3fffc In: serial Out: serial Eqn: serial Press Ctrl+C to stop autoboot hisilicon # <INTERRUPT> hisilicon # <INTERRUPT> hisilicon # <INTERRUPT> Hinh 2.7: Gian doan qua trinh autoboot Qua thông tin in ra từ bootloader, dung lượng flash trên camera nay là 16MB. Dia chi nạp là 0x82000000. Tiến hành đọc hết 16MB flash.
Nguyễn Công Thành — D17CQAT03-B 23 Đồ an tot nghiệp > r Chương 2: Kiểm thir IP camera Honeywell F2 16384 KiB hi_sfc at 0:0 is now current device hisilicon # sf read 0x82000000 0x0 0x1000000 hisilicon # md 0x82000000 40 82000000: ea000419 eS59ff014 e59ff014 e59ff014. 82000010: e59ff014 e59ff014 e59ff014 e59ff014. 82000050: 20030004 0068306e 00000000 900000fd coe NON. 82000070: 2003000c 007c2063 00000000 900000fd 82000080: 20030010 19000000 009000000 e00000fd 82000090: 20030014 00682064 00000000 e00000fd 820000a0: 20030020 1b000000 00000000 e00000fd 820000b0: 20030024 007c40e1 00000000 e00000fd 820000cO: 20030028 00000010 00000000 e00000fd oe cece D 820000d0: 200300e8 0000060f 00000000 001d0000 "1.
820000e0: 20050014 Of ff8000 00000000 e00000fd "1.8: Đọc và kiểm tra bộ nhớ flash Sau khi đã đọc xong flash, em tiến hành cấu hình lại IP máy chủ thành IP máy tinh thông qua lệnh setenv và gửi firmware đã đọc được về may. hisilicon # setenv serverip 192.12 hisilicon # tftp 0x82000000 firmware.bin 0x1000000 Hisilicon ETH net controler Uploading: # [ Connected ] Đ#HUUƯUƯUUƯHHUHUHUHfUfUffHf.888 MB] HHAHHHHHHHRHRHHAHRHRHRHRRR RRR [ 5.752 MB] I#WffẨfẨfẨfĂfHHUUHHIHHHH-HHHHHHHHH-Ht—U—tĐ [ 8.480 MB] HHAHHHHHHHRHHRHRHRHHRHR RRR RRR RR [14.000 MB upload ok.9: Gửi firmware về máy tinh Với firmware vừa thu được, em sử dụng binwalk đề giải nén vào đọc các thông sô khởi tạo. Nguyễn Công Thành — D17CQAT03-B 24 Đồ án tốt nghiệp Chương 2: Kiểm thir IP camera Honeywell > OFbO Recent = nh = _firmware. bin extracted recom Doc s exluck@ubuntu: ~/Desktop/ftp Downloads File Edi Search Terminal Help Music $ sudo binwalk -t -e firmware.bin [sudo] password for exluck: Pictures DECIMAL DESCRIPTION Videos -- Trash 9x89900 edition T Other Locations 0x580000 13369344 excceeee iles , little endian, 1339392, ted_dirs, CRC ®xBDOEAB2B, edition 9, 468 blocks, 131 files 14942208 9xE40068 CramFS filesystem, little endian, size: 12288, s ted_dirs, CRC 0x®2865) ; Files 15204352 OxE80000 i m, little endian, si 2 d_dirs, CRC 0x3266EI Files 15466496 9xEC9098 S2 filesystem, little endian 15794256 OxF10050 Zlib compressed data, compressed 15795440 OxF104FO Zlib compressed data, compressed Hinh 2.10: Giai nén firmware bang binwalk Thông qua file init, em xác định được sau khi khởi động thiết bị sẽ chạy chương trình trình tên là dvrHelper với nhiệm vụ chính là gọi chạy một chương trình có tên là Sofia.
Ngoài ra, mật khẩu root được hash trong file passwd đã bị hash và dễ dàng tìm thấy trên mạng. x A = root:$1$RYTwE1RA$d5tRRVQ5ZeRTr 2wG]Ry .BO:0:0:root:/:/bin/sh 6 root:$1$RYIWEiRA$d5iR: x + € G 08 google.com, w 9 = Google root:$1§RYIWwEiRA$d5iRRVQ5ZeRTrJwGjRy. X mm Q tạ Q Tétcd ©) Video @Muasém (ŒJHìnhảnh : Thêm Céng cu Meo: Tim kiếm chi kết quả tiếng Việt. Bạn có thế chỉ định ngôn ngữ tim kiếm của minh trong Tùy chọn Looking for results In En Change to English https://gist.com › gabonator_ Dịch trang nay TTS tực Sĩ dựng Tiếng | HiSilicon IP camera root passwords - gists - GitHub Cai đặt ngôn ngữ OctopusKat commented on Jul 11, 2017.
root:S1SRYIWEIRASASIRRVQ5ZeRTrJWGjRy.B0:0:0:root:/:/bin/sh [mus as password on https:/www.com › forum Dịch trang này Telnet password and username for IPC - Open IP Camera. thg 4, 2014 - 13 bài đăng - 7 tác giả root:$1SRYIWEiRASd5iRRVQ5ZeRTrJwGjRy.B0:0:0:root:/:/bin/sh. If you still need the password for that hash here it is: JHWITĐE Hình 2.11: Mật khẩu root của thiết bi được tìm thấy trên google Với mật khẩu root có được, em đễ dàng kết nói đến dịch vụ telnet qua đó có thê điều khiển được thiết bị. Thông qua đó, em có thể biết được từng công dich vụ đang được sử dụng bởi các tiến trình nào.
Nguyễn Công Thành — D17CQAT03-B 25 Đồ án tốt nghiệp Chương 2: Kiểm thir IP camera Honeywell :~$ telnet 192. Escape character is '^]'. LocalHost login: root Password: * -<Ô œ@UO(Œ <-2 ¬^+-O-ÔTi2 :8899 :34599 _ LISTEN 763/Softa :34567 ied LISTEN 763/Sofia 2554 ở LISTEN 763/Sofia :WWW -0.12:53706 1 TIME_WAIT oc/net/tcp6: such file or directory 234568 0.0: 763/Sofia @eo0 ®@OnN ne -255.12: Đăng nhập telnet và lay thông tin các cổng dịch vụ Thông qua các thông tin thu thập được, em xây dựng được sơ đồ kết nối của camera đồng thời xác định mục tiêu chính cần tập trung là chương trình Sofia do đây là ứng dụng phụ trách các chức năng chính của thiết bị. TCP/554 RTSP service TCP/80 web service TCP/34599 = xxx Service Sofia an 2 TCP/8899 ospf-lite service a ‹ > 1 tT sẽ TCP/34567 ari dhanalakshmi service 168.12 Sofia TCP/23 Telnet service Teinetd TCP/34561 xxx service upgraded TCP/95527 Debug service dvrHelper Hình 2.13: So đô kết noi của camera Honeywell 2.
Tìm lỗi trong thiết bị Sau khi đã xác định được mục tiêu, em tiễn hanh dịch ngược phần mềm Sofia. Tuy nhiên, khi tiến hành decompile phần mềm bằng IDA, em chỉ thu lại được 3 hàm ngắn không có vẻ gì liên quan đến các chức năng mà máy chủ web thực hiện. Nguyễn Công Thành — D17CQAT03-B 26 Đồ án tốt nghiệp Chương 2: Kiểm thir IP camera Honeywell Roe BA ervey SHES ỳ a DO teh tres X b DD no deduoger ~ ei Ot ý .ễẳẽềœœœmm s2 brary function fl Regular function fi instruction [| 0axa HỒ] Unesglored {| External symbol (Z1 Functions window 38x ï mvewa G8 [TQ PsudeodeA C3 Hecview E3 [| ssưudưes F3 ] Enums Ø3 Bm 8 feos =O Function name Segment Start Leng varg_ri= -OxC stort toap 001E8854—- 00004 ia 2G: sub_1E8C08 LOAD. 0000( _=t SP IEBCSS LOAD 001E8CS8 - 0000 g ` 3 FUNCTION CHUNK AT Ø01EBD44 SIZE 00000020 BYTES ADR R12, off 1EBB44 ILDMrA R12, {R1,R2,R10,R11} lap R16, R10, R12 lap R11, RIL, R12 lnov R0, R2 su8 R9, R12, R1 lado R1, R1, #0x1000 lov R3, #0x1000 srMrp SPI, {R0-R3} liov R2, #7 lov R3, #0x32 lov R4, #0xFFFFFFFF lov R7, 80xC0 svc @ Iceni R0, #0x1000 BCS loc_ 1EBD44 =“———————— ¥ Ỳ START OF FUNCTION CHUNK FOR start Line 1 of 3 dẤh Graph overview nax R9, R10 R2, #0x1E ROI, {R1-R8} R1, aProtExecProthir ; “PROT_EXEC|PROT_WRITE failed.
\n” oc__1EBB94 Ro, #2 R7, #4 @ 100.00% (-363,161) (227,121) 001E3854 001E8854: start (Synchronized with Hex View-1) TP Output window oe@x "6806 USE” EUESSEO Type IC GR0FG-88867 163884: using guessed type int dưord_1E3884[512]; 1E4884: using guessed type int[512]; 1EBE20: using guessed type int[367]; I 1EBC58: using guessed type int _ fastcall sub 1EBC58( DHORD); we All: ile own isk: RAG Hình 2.14: Phan mém Sofia được decompile trong IDA Qua tìm hiểu, em phat hiện phần mềm đã được pack lại và thông qua kiểm tra hex của file em đã xác định phầm mềm Sofia được pack bằng UPX (Ultimate Packer for eXecutables). IDAView-A 3 Pseudocode-A (J [©] Hexvewl Â] [Al strudure Q@1EBCD@ 2 00 00 EA 04 40 94 EO DE FF FF @B 0B 00 00 2A. v 001EBCE9 01 10 AO E3 04 40 94 EO DA FF FF 0B 07 00 00 2A_. = 001EBCF9 @4 40 94 EØ D7 FF FF @B 01 10 A1 EQ 04 40 94 E9 .