Author | Message |
---|
mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 07:33 | |
| Эта тема посвящена получению root на устройствах PocketBook Pro 602, 603, 902 и 903 с прошивками вплоть до 2.1.0 через уязвимость в ядре. Начиная с версии 2.1.1 используемая уязвимость закрыта. Устройства PocketBook Pro 612 и 912 не имеют этой уязвимости с самого начала. iFred
В соседней теме, куда я выложил SDK для windows, я предложил попроверять существующие эксплоиты для 2.6.29ого кернела, чтобы получить рут - но в реальности все оказалось намного проще: китайцы, делая прошивку для покетбука, оставили для нас достаточно дыр в написанных ими suid приложениях.
В данном примере я эксплуатирую простейшую дыру в /ebrmain/bin/netagent. В данном suid приложении, переданный параметр командной строки передается в функцию system как есть, в результате чего мы можем выполнить любую команду с правами рута. На поиски данной дырки у меня ушло 2 вечера, странно, что до сих пор никто ее не нашел.
Что сейчас имеем: - получение локального шелла с рутом на устройстве (но это, согласитесь, неудобно, так как pocket term кривой до ужаса) - поднятие FTP и telnet демона (использую "полноценный" busybox, а не кастрата из прошивки), в результате чего теперь можно по WiFi подцепиться удаленно к устройству по FTP или Telnet, и орудовать на нем с правами рута. Вот это - главное, чего лично мне не хватало.
Сразу отмечу, для получения рута вам не потребуется ни паять что-либо, ни вносить изменения в прошивку, ни делать каких-либо подобных "низкоуровневых издевательств" над устройством. Все что нужно - распаковать архив отсюда: http://www.multiupload.com/A49K088F4J в корень "встроенной" памяти устройства, тем самым файлы лягут в каталоги /mnt/ext1/applications и /mnt/ext1/system/bin на устройстве. После этого запускаете приложение get_root, оно получит рута, включит вифи и соединится с вашей беспроводной точкой (естественно, вифи должно быть предварительно настроено). И тут вы получаете возможность работать с устройством по FTP и телнету просто соединившись с ПК на его ИП адрес.
В случае, если вифи точки дома кто-то до сих пор не имеет, но хочет получить на экране шелл с рутовыми правами - можно запустить get_root.app из pocket term (набрав в нем: /mnt/ext1/applications/get_root.app), после того как скрипт отработает, вы получите рутовый шелл внутри этой же сессии poterm (закроете окно poterm - потеряете рутовый шелл и скрипт придется запускать повторно). Но тут есть "особенность" pocket term - он не нарисует символ $ для приглашения шелла, так что первую команду потребуется вводить "в слепую" (например, команду id, чтобы удостовериться что вы рут).
Траблшутинг: При корректной работе скрипта, у вас сперва включится блютус стек (это побочный эффект), после чего пойдет соединение с вифи (с выводом соответствующих окон), после этого через 5-10 секунд ваш девайс станет доступен по телнету/ftp через вифи. Если же окна не появлялись, или при запуске через pocket term данный скрипт отработал мгновенно - значит что-то ему помешало. Например, включенный ранее вифи/блютус. В таком случае рекомендую добыть скрепку и перезагрузить устройство, после чего попробовать еще раз.
Работоспособность гарантирована на PocketBook 60x/90x. На более старых устройствах скорее всего нет /ebrmain/bin/netagent, и эксплуатировать его дырявость нельзя.
Еще раз ссылка на скачивание: http://www.multiupload.com/A49K088F4J
А теперь пара вопросов. Здесь есть знатоки линукса? В частности, интересует - как на линуксе включается полноценное стерео аудио через блютус (a2dp профиль)? Это вторая вещь, за отсутствие которой покетбуков побить мало. Реально не хватает возможности слушать mp3 через беспроводные наушники. Имея рута, думаю, теперь и эта возможность вполне реализуема.
Disclaimer: Данный хак полностью безопасен для вашего устройства. Он не вносит никаких изменений в прошивку или аппаратную часть устройства, не запускается автоматически при ребуте, и для удаления его с устройства, например, перед походом в сервис - достаточно удалить его файлы вручную, либо сделать форматирование встроенной памяти штатными средствами. Но. Данный хак дает вам рутовые права. А имея их вы уже самостоятельно можете, например, замонтировать системные разделы на запись и удалить или испортить на них важные файлы. Делайте это на свой страх и риск - ведь бокетпуки до сих пор не удосужились выложить даже сырцов от кернела, и мы не знаем, проверяется ли при загрузке контрольная сумма разделов/файлов, или есть ли какая-либо защита от модификаций.
Last edited by mamaich on 24.04.2011 15:09; edited 3 times in total |
| | | fedor2004 Новенький участник форума
Joined: 04 Jan 2010 Posts: 3
| Posted: 24.04.2011 08:43 | |
| работает на pb902 теперь понятно почему тупит explorer - один файл в папке, а загрузка cpu под завязку |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 09:00 | |
| Вау! Искреннее спасибо! Работает на PB603 (прошивка 2.0.5) На whoami отвечает reader Подключиться по telnet не получилось - спрашивает username/password для подключения - ввожу - снова спрашивает username/password
mamaich wrote: | ... Что сейчас имеем: - получение локального шелла с рутом на устройстве (но это, согласитесь, неудобно, так как pocket term кривой до ужаса) - поднятие FTP и telnet демона (использую "полноценный" busybox, а не кастрата из прошивки), в результате чего теперь можно по WiFi подцепиться удаленно к устройству по FTP или Telnet, и орудовать на нем с правами рута. Вот это - главное, чего лично мне не хватало. ... |
А нельзя полноценного некастрата выложить готовым к употреблению *.app? _________________ Onyx Boox 60 > PocketBook 603 |
| | | mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 11:08 | |
| bugmenot wrote: | На whoami отвечает reader ... |
значит на x03 не работает. Должно отвечать root. И судя по тому, что телнет спрашивает логин/пароль - у вас в прошивке уже вшитый телнет демон.
Полноценный бизибокс - с официального сайта: http://busybox.net/downloads/binaries/latest/ У нас armv6l. |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 11:24 | |
| Грустно Скачал http://busybox.net/downloads/binaries/latest/busybox-armv6l Переименовал в busybox-armv6l.app и положил в applications во внутреннюю память... Не запускается Экран перемаргивает и всё. Консоль не появляется.
зы: запустился из poterm. жаль, я думал у него своя оболочка есть
ззы: телнет - да, запускается без предварительного запуска get_root.app _________________ Onyx Boox 60 > PocketBook 603 |
| | | mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 12:39 | |
| посмотрел netagent из прошивки sw_20110331_603_CIS_br__2.0.6_user.zip Дыра там на месте. Соответственно, хак должен работать и на 603/903, правда, пока без телнет демона (тк мешает встроенный в прошивку, но ничто не мешает просто его кильнуть). Но по крайней мере Фтп должен быть.
У тебя включается и БТ и ВиФи при старте get_root.app (естественно, до старта они должны быть выключены)? Если включаются оба - значит стартует /mnt/ext1/system/bin/bb.sh. Стартует он уже с правами рута, а, значит, ты в него можешь спокойно добавить код киляющий штатный телнет демон, или выполняющий все остальное что тебе нужно. Если ВиФи не включается - перезагрузи читалку, потом запусти pocket term, из него выполни команды: /mnt/ext1/applications/get_root.app подожди пока оно отработает, потом: whoami потом cat /tmp/netagent.log потом выйди из покет терма и напиши сюда содержимое файла system\poterm.log с встроеннй памяти устройства. При удачном хаке содержимое должно быть типа такого:
Code: | BusyBox v1.16.1 (2010-10-11 18:29:44 EEST) built-in shell (ash) Enter 'help' for a list of built-in commands.
$ /mnt/ext1/applications/get_root.app [484:24/04/11 18:12:17] netagent called with parameter btservice [484:24/04/11 18:12:18] Use store bt mac [484:24/04/11 18:12:18] BT HW ADDR 0002347640b1 Atached mp shm: id 0 addr 405a4000 size 17256 Atached fb shm: id 8001 addr 405e9000 size 979232 Usage: search [--bdaddr bdaddr] [--tree] [--raw] [--xml] SERVICE SERVICE is a name (string) or UUID (0x1002) [530:24/04/11 18:12:28] netagent called with parameter connect [530:24/04/11 18:12:28] TD_SWITCH ok [530:24/04/11 18:12:28] connect looping Atached mp shm: id 0 addr 405a4000 size 17256 Atached fb shm: id 8001 addr 405e9000 size 979232 Atached mqueue: id 8001 [DEBUG] dt=688862, t1=1302940297, t2=1303629159 tcpsvd: listening on 0.0.0.0:21, starting $ whoami root .......
|
|
| | | biv_sumy Член клуба The eBook
Joined: 20 Jul 2009 Posts: 18808
Location: Сумы, Украина
| Posted: 24.04.2011 13:11 | |
| mamaich wrote: | В случае, если вифи точки дома кто-то до сих пор не имеет - можно запустить get_root.app из pocket term, после того как скрипт отработает (это займет минуту-две, так как будет делаться поиск несуществующих вифи сетей), вы получите рутовый шелл. Но тут есть "особенность" pocket term - он не нарисует символ $ для приглашения шелла, так что первую команду потребуется вводить "в слепую" (например, команду id, чтобы удостовериться что вы рут). |
Для получения Рута под Потерм без точки доступа в файле bb.sh все строки кроме последней (/bin/sh) можно отключить поставив первым символ # тогда будет работать намного быстрее. Проверил на 602. _________________ PB 602Grey, PB A7, NSTGL +PB Power Bank. |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 13:28 | |
| после запуска get_root.app сначала устанавливается соединение с домашней сеткой в трее появляются значки wifi и bluetooth значки остаются висеть, никаких окон не появляется - на экране окно с приложениями
далее запускаю poterm
Code: | $ cat /tmp/netagent.log [name=Pocket603] [enabled=1] preferred connection: "myhome" trying default connection "myhome" connection type: wifi [wifi.1.essid=MYHOME] [wifi.1.hidden=0] [wifi.1.baudrate=115200] [wifi.1.channal=1] [wifi.1.security=3] [wifi.1.key=******] [wifi.1.cacert=@cert_none] [wifi.1.idle=20] [wifi.1.network.ipconfig=0] [wifi.1.proxy=0] error: value '(null)' contains special characters [wifi.1.proxy.port=80] /sbin/insmod /lib/modules/dhd.ko firmware_path=/lib/modules/sdio-g-cdc-full11n-reclaim-roml-wme.bin nvram_path=/mnt/secure/nvram.txt insmod: can't insert '/lib/modules/dhd.ko': File exists /sbin/ifconfig eth0 down /sbin/rmmod dhd.ko /sbin/insmod /lib/modules/dhd.ko firmware_path=/lib/modules/sdio-g-cdc-full11n-reclaim-roml-wme.bin nvram_path=/mnt/secure/nvram.txt /sbin/ifconfig eth0 up ifconfig: SIOCGIFFLAGS: No such device /sbin/ifconfig eth0 up ifconfig: SIOCGIFFLAGS: No such device /sbin/ifconfig eth0 up ifconfig: SIOCGIFFLAGS: No such device /sbin/ifconfig eth0 up ifconfig: SIOCGIFFLAGS: No such device /sbin/ifconfig eth0 up ifconfig: SIOCGIFFLAGS: No such device /sbin/ifconfig eth0 up ifconfig: SIOCGIFFLAGS: No such device /sbin/ifconfig eth0 up /sbin/udhcpc -n -t 7 -T 3 udhcpc (v1.16.1) started Sending discover... Sending select for 192.168.1.3... Lease of 192.168.1.3 obtained? lese time 86400 deleting routers route: SIOCDELRT: Nosuch process adding dns 192.168.1.1 sh: ls: not found $ |
_________________ Onyx Boox 60 > PocketBook 603 |
| | | mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 14:11 | |
| bugmenot wrote: | после запуска get_root.app сначала устанавливается соединение с домашней сеткой в трее появляются значки wifi и bluetooth значки остаются висеть, никаких окон не появляется - на экране окно с приложениями
далее запускаю poterm
|
вот тут и ошибка. Надо на 603 запустить сперва poterm, и уже из него запускать get_root.app командой /mnt/ext1/applications/get_root.app (много печатать придется на неудобной клаве). тогда у тебя в текущей сессии poterm откроется командная строка с рутом. Закроешь poterm - потеряешь рута. И уже в данной командной строке пиши whoami Если же просто запустить скрипт не через poterm - ты окно рутового шелла на экране не увидишь.
Заодно уже из-подрута посмотри результат "ps -a" (можешь сюда привести), тогда увидим "штатный" процесс телнет демона, и можно будет его кильнуть, добавив соответствубщие строки в ../system/bin/bb.sh,, и тогда будет полноценный хак и для 603/903 тоже с удаленным телнетом. |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 14:38 | |
| mamaich есть рут!
вот результат "ps - a"
Code: | PID USER VSZ STAT COMMAND 1 root 2588 S init 2 root 0 SW< [kthreadd] 3 root 0 SW< [ksoftirqd/0] 4 root 0 SW< [watchdog/0] 5 root 0 SW< [events/0] 6 root 0 SW< [khelper] 13 root 0 SW< [suspend] 116 root 0 SW< [kblockd/0] 120 root 0 SW< [ksuspend_usbd] 126 root 0 SW< [khubd] 129 root 0 SW< [kseriod] 141 root 0 SW< [kmmcd] 148 root 0 SW< [bluetooth] 169 root 0 SW [pdflush] 170 root 0 SW [pdflush] 171 root 0 SW< [kswapd0] 173 root 0 SW< [aio/0] 174 root 0 SW< [nfsiod] 183 root 0 SW< [eink_fb_bt] 185 root 0 SW< [eink_fb_pt] 323 root 0 SW< [mtdblockd] 373 root 0 SW< [hid_compat] 397 root 0 SW< [krfcommd] 399 root 0 SW< [rpciod/0] 406 root 0 SW< [mmcqd] 416 root 2592 S /bin/sh /etc/init.d/rcS 441 root 0 SW< [kjournald] 446 root 1788 S ./pocketbook 448 root 1784 S ./pocketbook 449 root 1784 S ./pocketbook 450 root 1784 S < ./pocketbook 451 root 18172 S ./pocketbook 456 reader 1536 S < /ebrmain/bin/mpd.app 457 reader 15228 R /mnt/ext1/applications/potermpro.app 469 reader 2596 S /bin/ash -i 491 root 1504 S /sbin/hciattach /dev/ttySAC1 any 3000000 flow 502 root 1560 S /bin/btauth hci0 0000 /mnt/ext1/system/cache/btauth. 505 root 1576 S /sbin/sdpd 510 root 1572 S /bin/obexutil -d 9 511 root 6064 S ./netagent btservice "|| /bin/sh /mnt/ext1/system/bi 512 root 6064 S ./netagent btservice "|| /bin/sh /mnt/ext1/system/bi 513 root 2588 S sh -c /sbin/sdptool search --bdaddr ""|| /bin/sh /mn 516 root 2588 S /bin/sh /mnt/ext1/system/bin/bb.sh 556 root 0 SW [iscan_sysioc] 557 root 0 SW [dhd_watchdog] 558 root 0 SW [dhd_dpc] 559 root 0 SW [dhd_sysioc] 560 root 0 SW< [ksdioirqd/mmc2] 575 root 3440 S /sbin/wpa_supplicant -Dwext -ieth0 -c/var/etc/wpa_su 600 root 2588 S /sbin/udhcpc -n -t 7 -T 3 601 root 6064 S /ebrmain/bin/netagent connect 604 root 1156 S /mnt/ext1/system/bin/busybox tcpsvd -vE 0.0.0.0 21 / 605 root 2588 S /bin/sh 606 root 1156 S /mnt/ext1/system/bin/busybox telnetd -l /bin/sh 610 root 2592 R ps -a |
_________________ Onyx Boox 60 > PocketBook 603 |
| | | mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 14:42 | |
| или я слепой, или одно из двух - но у тебя на 603 в списке процессов висит бизибоксовский телнет демон, который ну никак не должен спрашивать логин/пароль. Других телнетов - не вижу. Может ты когда удаленно прицеплялся с ПК телнетом к читалке, её ИП адрес перепутал, например, с вифи рутером? Судя по твоему логу читалка получила ИП 192.168.1.3 |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 14:49 | |
| Ну правильно. Логин/пароль спрашивает вин7 на ББ после того, как из poterm ввожу
(192.168.1.1 - это домашний компик) Что не так?
Code: | $ telnet 192.168.1.1 Login: myloginon19216811 Password: mypass Login: |
_________________ Onyx Boox 60 > PocketBook 603 |
| | | mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 15:08 | |
| bugmenot wrote: | Что не так? |
ээ, а зачем ты из poterm идешь на ПК? Тебе как раз наоборот нужно с ПК на читалку идти. Соответственно, под вындой пишешь telnet 192.168.1.3 (это ИП твоей читалки), и всё. Ты имеешь удаленный шелл, в который ты вводишь команды с клавиатуры ПК, а не с наэкранного убожества. Аналогично в вынде открываешь ftp://192.168.1.3 и шаришься по папкам девайса, включая "защищенные" типа /mnt/system. То есть ты теперь можешь с ПК без проводов записывать файлы на читалку через FTP, например, свежесобранные программы. И запускать их после этого через удаленный терминал, в не париться набирая длинные строки в poterm. Заодно и отлаживать проще - собираешь GDB и отлаживаешь программу прямо на устройстве, не парясь с убогим эмулятором от покетбуков. |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 15:27 | |
| А-а-а... Как я тупанул Пасиба огромное! Всё работает
Осталось скриптик для старта написать.. что-то типа
Code: | /mnt/ext1/applications/potermpro.app | type '/mnt/ext1/applications/get_root.app' |
Потерм прожуёт такое? _________________ Onyx Boox 60 > PocketBook 603 |
| | | mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 15:38 | |
| bugmenot wrote: | Осталось скриптик для старта написать.. что-то типа
Code: | /mnt/ext1/applications/potermpro.app | type '/mnt/ext1/applications/get_root.app' |
|
Незачем - просто запускаешь get_root.app из списка программ. После этого с ПК цепляешься к устройству телнетом/ФТП.
Просьба, кто-нибудь, опубликйте ссылку на информацию о рутовании на http://www.mobileread.com на случай если тут потрут. Я там зарегистрироваться не могу (неправильный емейл указал) _________________ Pocketbook 650 (до него 302 и 602) |
| | | lunohod Член клуба The eBook
Joined: 10 Jan 2007 Posts: 4283
Location: Stuttgart, Germany
| Posted: 24.04.2011 15:57 | |
| А дамп прошивки кто-нибудь выложит? _________________ V3, n516, PRS-505, iLiad, eSlick, Samsung E60, K3, K4NT, Onyx M90, PB 912, Kobo Mini |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 16:33 | |
| mamaich wrote: | bugmenot wrote: | Осталось скриптик для старта написать.. что-то типа
Code: | /mnt/ext1/applications/potermpro.app | type '/mnt/ext1/applications/get_root.app' |
|
Незачем - просто запускаешь get_root.app из списка программ. После этого с ПК цепляешься к устройству телнетом/ФТП. |
Дык так без root'а получается. И по FTP доступ не ко всем каталогам Попробовал копировать по FTP - ошибки чтения _________________ Onyx Boox 60 > PocketBook 603 |
| | | mamaich Искушенный участник форума
Joined: 22 Mar 2010 Posts: 63
| Posted: 24.04.2011 16:37 | |
| bugmenot wrote: | Дык так без root'а получается. И по FTP доступ не ко всем каталогам |
не может такого быть. Скрипт - один и тот же, выполняются те же команды, только при запуске не через poterm ты их вывода на экран не видишь. Могу порекомендовать только резетнуть устройство предварительно (скрепкой). _________________ Pocketbook 650 (до него 302 и 602) |
| | | bugmenot Бывалый участник форума
Joined: 11 Sep 2007 Posts: 130
| Posted: 24.04.2011 16:55 | |
| mamaich wrote: | bugmenot wrote: | Дык так без root'а получается. И по FTP доступ не ко всем каталогам |
не может такого быть. Скрипт - один и тот же, выполняются те же команды, только при запуске не через poterm ты их вывода на экран не видишь. Могу порекомендовать только резетнуть устройство предварительно (скрепкой). |
Факт. Если сначала запустить get_root, а потом poterm , то
Если сначала poterm, а уже из него get_root, то
_________________ Onyx Boox 60 > PocketBook 603 |
| | | Antuan Член клуба The eBook
Joined: 30 Sep 2009 Posts: 11643
Location: Киев
| Posted: 24.04.2011 19:43 | |
| bugmenot А зачем вообще запускать poterm, если можно без проблем подключиться с ПК по telnet-у? _________________ PB 360° (v.15.3) | PB Pro 602 Grey (v.2.2.1a fastdrv) | PB A7 (v.1.3.1583) - подарок от PocketBook. |
| | |
| You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
© Libroom, 2021
|