[exploit] Инструкция по получению root на pocketboot 60х/90х
Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9  Next
 
Libroom Forum IndexPocketBookPocketBook Free
AuthorMessage

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
 
View user's profile ^

fedor2004
Новенький участник форума

Новенький участник форума



Joined: 04 Jan 2010
Posts: 3



Posted: 24.04.2011 08:43    

работает на pb902 Very Happy
теперь понятно почему тупит explorer - один файл в папке, а загрузка cpu под завязку Sad
 
View user's profile ^

bugmenot
Бывалый участник форума

Бывалый участник форума



Joined: 11 Sep 2007
Posts: 130



Posted: 24.04.2011 09:00    

Вау! Искреннее спасибо!
Работает на PB603 (прошивка 2.0.5)
На whoami отвечает reader Smile
Подключиться по telnet не получилось - спрашивает username/password для подключения - ввожу - снова спрашивает username/password
mamaich wrote:
...
Что сейчас имеем:
- получение локального шелла с рутом на устройстве (но это, согласитесь, неудобно, так как pocket term кривой до ужаса)
- поднятие FTP и telnet демона (использую "полноценный" busybox, а не кастрата из прошивки), в результате чего теперь можно по WiFi подцепиться удаленно к устройству по FTP или Telnet, и орудовать на нем с правами рута. Вот это - главное, чего лично мне не хватало.
...

А нельзя полноценного некастрата выложить готовым к употреблению *.app?
_________________
Onyx Boox 60 > PocketBook 603
 
View user's profile ^

mamaich
Искушенный участник форума

Искушенный участник форума



Joined: 22 Mar 2010
Posts: 63



Posted: 24.04.2011 11:08    

bugmenot wrote:
На whoami отвечает reader Smile...

значит на x03 не работает. Должно отвечать root.
И судя по тому, что телнет спрашивает логин/пароль - у вас в прошивке уже вшитый телнет демон.

Полноценный бизибокс - с официального сайта: http://busybox.net/downloads/binaries/latest/
У нас armv6l.
 
View user's profile ^

bugmenot
Бывалый участник форума

Бывалый участник форума



Joined: 11 Sep 2007
Posts: 130



Posted: 24.04.2011 11:24    

Грустно Sad
Скачал http://busybox.net/downloads/binaries/latest/busybox-armv6l
Переименовал в busybox-armv6l.app и положил в applications во внутреннюю память...
Не запускается Sad Экран перемаргивает и всё. Консоль не появляется.

зы: запустился из poterm. жаль, я думал у него своя оболочка есть

ззы: телнет - да, запускается без предварительного запуска get_root.app
_________________
Onyx Boox 60 > PocketBook 603
 
View user's profile ^

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
.......
 
View user's profile ^

biv_sumy
Член клуба The eBook

Член клуба 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.
 
View user's profile ^

bugmenot
Бывалый участник форума

Бывалый участник форума



Joined: 11 Sep 2007
Posts: 130



Posted: 24.04.2011 13:28    

после запуска get_root.app
сначала устанавливается соединение с домашней сеткой
в трее появляются значки wifi и bluetooth
значки остаются висеть, никаких окон не появляется - на экране окно с приложениями

далее запускаю poterm
Code:
$ whoami
reader
$

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
 
View user's profile ^

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 тоже с удаленным телнетом.
 
View user's profile ^

bugmenot
Бывалый участник форума

Бывалый участник форума



Joined: 11 Sep 2007
Posts: 130



Posted: 24.04.2011 14:38    

mamaich
есть рут!
Code:
$ whoami
root


вот результат "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
 
View user's profile ^

mamaich
Искушенный участник форума

Искушенный участник форума



Joined: 22 Mar 2010
Posts: 63



Posted: 24.04.2011 14:42    

или я слепой, или одно из двух - но у тебя на 603 в списке процессов висит бизибоксовский телнет демон, который ну никак не должен спрашивать логин/пароль. Других телнетов - не вижу.
Может ты когда удаленно прицеплялся с ПК телнетом к читалке, её ИП адрес перепутал, например, с вифи рутером? Smile
Судя по твоему логу читалка получила ИП 192.168.1.3
 
View user's profile ^

bugmenot
Бывалый участник форума

Бывалый участник форума



Joined: 11 Sep 2007
Posts: 130



Posted: 24.04.2011 14:49    

Ну правильно. Логин/пароль спрашивает вин7 на ББ после того, как из poterm ввожу
Code:
telnet 192.168.1.1

(192.168.1.1 - это домашний компик)
Что не так?

Code:
$ telnet 192.168.1.1
Login: myloginon19216811
Password: mypass
Login:

_________________
Onyx Boox 60 > PocketBook 603
 
View user's profile ^

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 и отлаживаешь программу прямо на устройстве, не парясь с убогим эмулятором от покетбуков.
 
View user's profile ^

bugmenot
Бывалый участник форума

Бывалый участник форума



Joined: 11 Sep 2007
Posts: 130



Posted: 24.04.2011 15:27    

А-а-а... Как я тупанул Embarassed
Пасиба огромное! Всё работает Smile

Осталось скриптик для старта написать.. что-то типа
Code:
/mnt/ext1/applications/potermpro.app | type '/mnt/ext1/applications/get_root.app'

Потерм прожуёт такое?
_________________
Onyx Boox 60 > PocketBook 603
 
View user's profile ^

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 на случай если тут потрут. Я там зарегистрироваться не могу (неправильный емейл указал) Smile
_________________
Pocketbook 650 (до него 302 и 602)
 
View user's profile ^

lunohod
Член клуба The eBook

Член клуба 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
 
View user's profile ^

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
 
View user's profile ^

mamaich
Искушенный участник форума

Искушенный участник форума



Joined: 22 Mar 2010
Posts: 63



Posted: 24.04.2011 16:37    

bugmenot wrote:
Дык так без root'а получается. И по FTP доступ не ко всем каталогам

не может такого быть. Скрипт - один и тот же, выполняются те же команды, только при запуске не через poterm ты их вывода на экран не видишь.
Могу порекомендовать только резетнуть устройство предварительно (скрепкой).
_________________
Pocketbook 650 (до него 302 и 602)
 
View user's profile ^

bugmenot
Бывалый участник форума

Бывалый участник форума



Joined: 11 Sep 2007
Posts: 130



Posted: 24.04.2011 16:55    

mamaich wrote:
bugmenot wrote:
Дык так без root'а получается. И по FTP доступ не ко всем каталогам

не может такого быть. Скрипт - один и тот же, выполняются те же команды, только при запуске не через poterm ты их вывода на экран не видишь.
Могу порекомендовать только резетнуть устройство предварительно (скрепкой).

Факт.
Если сначала запустить get_root, а потом poterm , то
Code:
$ whoami
reader
$

Если сначала poterm, а уже из него get_root, то
Code:
$ whoami
root
$

_________________
Onyx Boox 60 > PocketBook 603
 
View user's profile ^

Antuan
Член клуба The eBook

Член клуба 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.
 
View user's profile ^
Libroom Forum IndexPocketBookPocketBook FreeAll times are GMT + 4 Hours
Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9  Next
Page 1 of 9

 
Jump to:  
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