Меню сайта

Библиотека

Icam - 608 Part 2 Хакинг
Описание Уязвимости и методы борьбы с ними.
Краткий обзор уязвимостей:
1) CVE-2017-8224 - Backdoor account
Это при старте чебурашки работающий телнет с известным нам логином и паролем (т.е. любой может подключиться).

Фикс:
Два варианта:
Первый: ставим свой пароль на telnet, описан вот в этой статье - Icam - 608 Part 3 etc/passwd
Второй: если не можем прошить rootfs то
Файл /system/init/ipcam.sh после /system/system/bin/wifidaemon & добавить:
bash:
Подсветка синтаксиса : Bash
  1. # kill telnetd
  2. killall telnetd
  3. # disable TelnetSwitch=1 in system.ini
  4. printf "x01" > /tmp/patch_system_ini
  5. dd if=/tmp/patch_system_ini of=/system/www/system.ini obs=1 seek=3983 conv=notrunc
  6. rm -f /tmp/patch_system_ini
Parsed in 0.068 seconds, using GeSHi 1.0.8.11. Created cache - 26.12.24 13:34


Последние 3 строчки нужны для того чтобы программы типа дигма или запросы через cgi не путались, показывая , что телнет вроде есть, но на самом деле мы вручную убили процесс. Мы просто изменяем флаг телнета в файле system.ini
p.s. Флаг Telnetswitch находится в system.ini по смещению 0x0F8F по крайней мере это относится к моей чебурашки, в других я не знаю, не видел, не патчил....

2) CVE-2017-8222 - RSA key and certificates
В прошивке находится закрытый ключ шифрования, т.е. тот у которого есть вторая часть ключа, автоматически авторизуется.

Фикс Просто удалим этот ключик
Код:
rm -f /system/www/pem/ck.pem


3) CVE-2017-8225 - Pre-Auth Info Leak (credentials) within the custom http server
Простым get запросом злоумышленник получает все настройки чебурашки, в том числе пароль и логин на админку. И потом он делает с не всё что хочет

Фикс в ipcam.sh после строки /system/system/bin/wifidaemon & добавляем
bash:
Подсветка синтаксиса : Bash
  1.  
  2. mkdir -p /tmp/cfg/
  3.  
  4. sleep 30
  5. rm -f /tmp/web/network.ini
  6. rm -f /tmp/web/network-b.ini
  7. rm -f /tmp/web/system.ini
  8. rm -f /tmp/web/system-b.ini
  9. rm -f /tmp/web/factory.ini
  10. rm -f /tmp/web/factoryparam.ini
  11.  
Parsed in 0.064 seconds, using GeSHi 1.0.8.11. Created cache - 26.12.24 13:34

Первая строка нужна для второй части нашего фикса.

И для надежности патчим encoder и wifidaemon , т.е. там где создаются эти сим-линки. Для этого нам понадобится sd-карта вставленная в чебурашку и примонтированная, как DCIM.
bash:
Подсветка синтаксиса : Bash
  1.  
  2. #patch encoder & wifidaemon path network.ini & system.ini
  3. echo 'Now patch encoder, wifidaemon '
  4. /usr/bin/unzip -o /system/system/bin/encoder.zip -d /mnt/DCIM/
  5. cp -f /system/system/bin/wifidaemon /mnt/DCIM/
  6.  
  7. echo 'patch encoder & wifidaemon path network.ini & system.ini...'
  8. # network.ini
  9. sed -i -e 's//tmp/web/network.ini//tmp/cfg/network.ini/g' /mnt/DCIM/encoder
  10. sed -i -e 's//tmp/web/network.ini//tmp/cfg/network.ini/g' /mnt/DCIM/wifidaemon
  11. # network-b.ini
  12. sed -i -e 's//tmp/web/network-b.ini//tmp/cfg/network-b.ini/g' /mnt/DCIM/encoder
  13. sed -i -e 's//tmp/web/network-b.ini//tmp/cfg/network-b.ini/g' /mnt/DCIM/wifidaemon
  14. # system.ini
  15. sed -i -e 's//tmp/web/system.ini//tmp/cfg/system.ini/g' /mnt/DCIM/encoder
  16. sed -i -e 's//tmp/web/system.ini//tmp/cfg/system.ini/g' /mnt/DCIM/wifidaemon
  17. # system-b.ini
  18. sed -i -e 's//tmp/web/system-b.ini//tmp/cfg/system-b.ini/g' /mnt/DCIM/encoder
  19. sed -i -e 's//tmp/web/system-b.ini//tmp/cfg/system-b.ini/g' /mnt/DCIM/wifidaemon
  20. # factory
  21. sed -i -e 's//tmp/web/factory.ini//tmp/cfg/factory.ini/g' /mnt/DCIM/encoder
  22. sed -i -e 's//tmp/web/factory.ini//tmp/cfg/factory.ini/g' /mnt/DCIM/wifidaemon
  23. # factoryparam.ini
  24. sed -i -e 's//tmp/web/factoryparam.ini//tmp/cfg/factoryparam.ini/g' /mnt/DCIM/encoder
  25. sed -i -e 's//tmp/web/factoryparam.ini//tmp/cfg/factoryparam.ini/g' /mnt/DCIM/wifidaemon
  26.  
Parsed in 0.094 seconds, using GeSHi 1.0.8.11. Created cache - 26.12.24 13:34


Этот код оформлен в виде патча.
Установка проста:
1) закачиваем содержимое файла на sd-карту в директорию DCIM, я закачиваю подключившись по фтп к чебурашке используя total commander
2) запускаем файл runme.sh после того как он отработает, нужно создать архив zip, и полученный encoder поместить в него. Это нужно потому что busybox не поддерживает архивирование. Поэтому это нужно сделать ручками, впоследствии установил что можно и не делать, но раздел system, где находится encoder, у нас не резиновый.
3) запускаем файл runme2.sh который скопирует encoder.zip и wifidaemon в нужное место, и перезагрузит чебурашку.

4) Authenticated RCE as root
Сложный вопрос, но сделать можно. Для этого правится в encoder функция , которая запускает дырявый файл ftpupload.sh
После правки запускаться будет не уязвимый ftpupload.sh , а наш файл без этой уязвимости.
Править те-же файлы, как и в предыдущей уязвимости, лучше в виде патча.

Фикс Изменяем вызов файла ftpupload.sh на другой, с которым мы можем делать всё что захотим. Для этого патчим encoder
bash:
Подсветка синтаксиса : Bash
  1. # install hackme.sh
  2. echo 'Now install /system/hackme.sh'
  3.  
  4. echo '#! /bin/sh' > /system/hackme.sh
  5. echo '' >> /system/hackme.sh
  6. echo '/tmp/ftpupload.sh &' >> /system/hackme.sh
  7. echo 'echo $(date +%Y%m%d_%H%M%S) hackme.sh is alive > /tmp/hackme.log' >> /system/hackme.sh
  8. chmod a+x /system/hackme.sh
  9.  
  10. # patch encoder ftpupload.sh
  11. echo 'patch ftpupload...'
  12. sed -i -e 's//tmp/ftpupload.sh > /tmp/ftpret.txt//system/hackme.sh > /tmp/ftpret.txt/g' /mnt/DCIM/encoder
Parsed in 0.074 seconds, using GeSHi 1.0.8.11. Created cache - 26.12.24 13:34


p.s. Ну и конечно можно изменить команду set_ftp.cgi на какой-либо другой, но это вопрос интимный. Конечно в веб-морде упраление ftp потеряется, но ради безопастности можно изменять настройки ftp и вручную, через cgi, введе не set_ftp.cgi , а что-нибудь другое_интимное.cgi

5) Pre-Auth RCE as root
Эта уязвимость вытекает из предыдущих, если ранее мы уже пропатчились, то нам это не грозит.
Фикс - Читать с начала.

6) Details -- CVE-2017-8223 - Misc - Streaming without authentication
Возможность смотреть видеопоток без авторизации
Фикс - менять порт rtsp потока, и вроде бы китайцы пытались сделать там авторизация, но я не пробовал. Не знаю как она там работает и работает ли вообще.

7) CVE-2017-8221 - Misc - "Cloud" (Aka Botnet)
Моё любимое - китайский облачный сервис. В гугле полно ипкамер с паролями и девайсидом, для просмотра.
Фикс - пока нет, но всегда можно прикрыть на роутере, или фаервале В работе

Подведем итог Почти все известные дырки мы закрыли!
Надеюсь что это всё Smile

У Вас нет прав чтобы скачать файл!!!
Только зарегистрированные пользователи могут скачать этот аттач.

 
Автор gosudar  •  Дата Июль 30 2017, 00:34  •  Тип FAQ  •  Просмотров 1558
Категория icam-608   •  Трекбек
 голос(ов) 0



Часовой пояс: GMT + 3