Уязвимости ядра

Internal structure and you change requests/suggestions
  • Уязвимость в 4 сисфункции
    Описание: система падает
    Описание уязвимости: везде надо ставить указатели поставил системные адреса
    Attachments
    SYSFUN_4.ASM (2.57 KiB)
    Downloaded 227 times
  • сисфункции с уязвимостями:
    7
    15.5
    48.2
    65
    74.1
    75.6 //возможно
    75.7 //возможно

    60 и 69 сисфункции не тестил, посмотрю позже
    также возможны уязвимости в 76 сисфункции, но это лучше в исходниках смотреть, так как доки на неё ничего (мне уж точно) не объясняют. Но возможно она даёт прямой доступ к сетевым функциям в обход сокетов
  • Doczom,
    offtop по твоему коду:

    Code: Select all

    dd     1           ; версия заголовка (всегда 1)
    
    таки уже не всегда, теперь и 2 бывает.
    Подробности тут viewtopic.php?f=1&t=1839&start=75#p76483

    По уязвимости:
    пожалуйста, предоставь больше данных,
    например, как влияет изменения аргументов, т.е. когда именно проявляется баг, а когда не проявляется?
  • Coldy wrote:Doczom,
    offtop по твоему коду:

    Code: Select all

    dd     1           ; версия заголовка (всегда 1)
    
    таки уже не всегда, теперь и 2 бывает.
    Подробности тут viewtopic.php?f=1&t=1839&start=75#p76483

    По уязвимости:
    пожалуйста, предоставь больше данных,
    например, как влияет изменения аргументов, т.е. когда именно проявляется баг, а когда не проявляется?
    По "уязвимостям" в сисфункциях 7, 15.5, 65, .
    Там "уязвимость" заключается в возможности вывести данные в фон рабочего стола/окна из любого адреса, в том числе и из системной области памяти, и возможность прочитать эти данные есть.

    По 74.1 и 4 сисфункциям: они просто приводят к крашу памяти, то есть если ввести в эти сисфункции вместо буфера для данных системный адрес(от 0х80000000) то эти сисфункции запишут данные по этому адресу, а это может привести, в самом лучшем для пользователя случае, к зависанию, а в самом частом случае к падению ядра.

    48.2 я бы даже уязвимостью не назвал, так , вывести данные из ядра можно, но прочитать вроде нет. это же касается и 54 сисфункции, но её надо тестить и смотреть реализацию.

    75.6 75.7 тоже самое одно может(возможно) прочесть данные из ядра , другая может записать данные в ядро.
    А по 76 сисфункции в вики инфы почти нет, в исходнике глянул, вроде доступ к сетевым функциям в обход сокетов, но это не точно.

    70 сисфункция что-то с чем-то , так как её через int 0x40 юзало само ядро)
  • Coldy wrote:Doczom,
    offtop по твоему коду:

    Code: Select all

    dd     1           ; версия заголовка (всегда 1)
    
    таки уже не всегда, теперь и 2 бывает.
    Я обновил example.asm из образа #8682
    Из хаоса в космос
  • Doczom wrote:сисфункции с уязвимостями:
    ...
    74.1
    ...
    Fixed in #8700.
  • Coldy wrote:Exception for 69.4 is possibly wrong. What's problem use 70.7 before? What for use 69.4 and 69.5 directly?
    Функция 69 - отладка.
    ...
    Все подфункции, кроме 4 и 5, применимы только к процессам/потокам, запущенным из текущего функцией 70 с установленным флагом отладки.
    ...
    Direct thread suspend with syscall 69.4 has been disabled in rev. #8534. So, this feature no more supported because makes no sense. It also created an additional vulnerability. Please, update docs.
  • #8711 fixed vulnerability (reading kernel memory from userspace) in sysfn 54.2
    #8712 fixed vulnerability (reading kernel memory from userspace) in sysfn 48.2
    #8713 fixed vulnerability (reading kernel memory from userspace) in sysfn 47
    #8714 fixed vulnerability (reading kernel memory from userspace) in sysfn 7, 15.5 and 65
    #8715 fixed vulnerability (kernel memory rewrite) in sysfn 4
  • Нашёл очень опасную уязвимость, которая ставит под угрозу использования КОС в качестве серверной ОС. При DoS атаке, а именно SYN-флуде(даже если порт закрыт!), система сходит с ума: сперва начинаются тормоза, рандомное падение запущенных программ(у меня упала доска отладки и меню), а заканчивается это полным зависанием КОС (иногда проги не падают и она зависает намертво сразу).
    Правда не понятно проблема это ядра, сетевого стека или даже драйвера. Хотя... На реальном железе и виртуалке разные сетевухи, но поведение аналогичное.
    Досил с помощью hping3:

    Code: Select all

    sudo hping3 -S --flood -V -p 80 192.168.0.101
    PS. Один раз доска выжила и вывела следующие:
    Spoiler:
    Dx6Cw-5mAhM.jpg
    Dx6Cw-5mAhM.jpg (552.79 KiB)
    Viewed 7903 times
    Изобретайте колёса каждый раз, когда хотите написать новую программу.
  • I never said network stack was ready for production :)
    Maybe should add a warning?

    At least part of the problem seems to be in network drivers.
    Fix for PcNET32 has been committed in #8898.

    Other drivers left as an exercise to the readers :mrgreen:
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • даже если порт закрыт!
    Where exactly is the port closed? Kolibri has firewall? :shock:
  • turbocat: RTL8169 fixed in #8997, sent 100 million packets, no longer able to reproduce.
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • hidnplayr wrote:turbocat: RTL8169 fixed in #8997, sent 100 million packets, no longer able to reproduce.
    Thank you very much for fixing the driver for my network card. The bug really disappeared .... But a new one appeared ... After a long flood with the help of hping, the driver dies and the network falls off. Here the OS process has crashed. That's all. Maybe you take a look again)

    PS. PcNET32 behaves the same in virtualbox ... And even weirder ...
    Spoiler:
    efBZZDSZPUw.jpg
    efBZZDSZPUw.jpg (541.9 KiB)
    Viewed 6763 times
    Изобретайте колёса каждый раз, когда хотите написать новую программу.
  • i found that functions 70.7/80.7 do not check input flags. we can set flag 2 and easily run main process thread as kernel thread. :)
    this is bug or undocumented feature?
    Attachments
    exploit.zip (6 KiB)
    .
    run test.kex and you will see crash
    run test.kex using start.kex and you will see process names readed directly from kernel :)
    Downloaded 140 times
  • Who is online

    Users browsing this forum: No registered users and 3 guests