Size: a a a

Ассемблер

2021 March 20

AK

Aleksey Kislitsa in Ассемблер
Den
вообще про канарейку я имел ввиду что она тут сама по себе не может защитить от переполнения и подмены адреса возврата, это чисто контрольная штука, а человек написал, что она защищает
Защищает таки да, но не гарантирует.
Защитит в случае если ты не можешь стек восстановить, если можешь, то ты можешь применить брутфорс, то есть в общем случае какую то защиту дает и лучше с ней, чем без нее
источник

D

Den in Ассемблер
Просто если в функции не контролируется переполнение буффера, ты зная его длинну можешь туда напихать, потом переписать канарейку, адрес возврата на следующую строку и следущей строкой пойдет твой код на исполнение и ты можешь что хочешь там сделать в правах того пользователя от которого программа запущена, ну а потом программу просто вышибет конечно, но вред то уже нанесен
источник

AK

Aleksey Kislitsa in Ассемблер
Den
Просто если в функции не контролируется переполнение буффера, ты зная его длинну можешь туда напихать, потом переписать канарейку, адрес возврата на следующую строку и следущей строкой пойдет твой код на исполнение и ты можешь что хочешь там сделать в правах того пользователя от которого программа запущена, ну а потом программу просто вышибет конечно, но вред то уже нанесен
Канарейка не контролирует переполнение буфера, она контролирует порчу стека.
Допустим у тебя программа содержит уязвимость и канарейку, ты переписал RET в стеке но канарейка испорчена, проверка не пройдена и гудбай, программа вылетает.
Соответственно планы получить шел накрылись медным тазом.
Но тут есть нюанс, например уязвимость в функции которая исполняется в форкнутом потоке, что тогда произойдет? А вот что, чайлд закроется с сегфолтом, как положено, но родительский поток то останется и канарейка в следующем чайлде будет такая же как и в предыдущем.
И это дает возможность по байтику подобрать и канарейку и все остальное, что перед канарейкой лежит (а это уже упрощает поиск базового адреса ЛИБС и соответственно атаку на неисполняемый стек и ту самую смену адресов ЛИБС)
Конечно програм использующих форк много меньше програм выполняющихся в одном потоке, но почти все много поточные программы работают в сфере интернет серверов Веб или ФТП и могут быть атакованы удаленно, что опаснее по многим причинам.
источник

D

Den in Ассемблер
а все, я понял, это компилятор, си генерит код в функции, который еще ставит канарейку и добавляет дополнительный код, в любую функцию, чтобы перед ret она еще проверяла совпадает ли канарейка, потому что сам ret, просто считает то место, где лежит адрес возврата и присвоит его ip, тогда, да она защитит
источник

D

Den in Ассемблер
Aleksey Kislitsa
Канарейка не контролирует переполнение буфера, она контролирует порчу стека.
Допустим у тебя программа содержит уязвимость и канарейку, ты переписал RET в стеке но канарейка испорчена, проверка не пройдена и гудбай, программа вылетает.
Соответственно планы получить шел накрылись медным тазом.
Но тут есть нюанс, например уязвимость в функции которая исполняется в форкнутом потоке, что тогда произойдет? А вот что, чайлд закроется с сегфолтом, как положено, но родительский поток то останется и канарейка в следующем чайлде будет такая же как и в предыдущем.
И это дает возможность по байтику подобрать и канарейку и все остальное, что перед канарейкой лежит (а это уже упрощает поиск базового адреса ЛИБС и соответственно атаку на неисполняемый стек и ту самую смену адресов ЛИБС)
Конечно програм использующих форк много меньше програм выполняющихся в одном потоке, но почти все много поточные программы работают в сфере интернет серверов Веб или ФТП и могут быть атакованы удаленно, что опаснее по многим причинам.
форк это типа копия потока? я пока в этом ничего не соображаю 🤔
источник

AK

Aleksey Kislitsa in Ассемблер
Den
форк это типа копия потока? я пока в этом ничего не соображаю 🤔
Форк это процесс который копирует часть параметров из родительского, почти полная копия
источник

s

snxx in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
а что написал то?
я - ничего. это он написал
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
snxx
я - ничего. это он написал
что написал?
источник

s

snxx in Ассемблер
snxx
кто он, и почему он мне написал?
"Что за Денис?"
источник

s

snxx in Ассемблер
видимо мое био посмотрел
источник

D

Den in Ассемблер
Aleksey Kislitsa
Форк это процесс который копирует часть параметров из родительского, почти полная копия
а, понял, спасибо буду знать, вообще если еще и nx byte включен в ядре это ведь вообще на сколько я понял делает именно область стэка неисполняемой?
источник

AK

Aleksey Kislitsa in Ассемблер
Den
а, понял, спасибо буду знать, вообще если еще и nx byte включен в ядре это ведь вообще на сколько я понял делает именно область стэка неисполняемой?
Вообще весь сегмент памяти неисполняемый. Если в отладчике или дизассемблере типа radare2 посмотреть сегменты поцесса там все четко видно.
И это делает всякие шеллкоды во многом пережитком прошлого
источник

D

Den in Ассемблер
Aleksey Kislitsa
Вообще весь сегмент памяти неисполняемый. Если в отладчике или дизассемблере типа radare2 посмотреть сегменты поцесса там все четко видно.
И это делает всякие шеллкоды во многом пережитком прошлого
да, я смотрел, nx byte был включен в ядре 3.24 уже в kubuntu
источник

АШ

Алексей Шведов... in Ассемблер
s54816
Берешь дизассемблер и смотришь, с чем ксорится. Наверняка одним байтом.
Так а найти как функцию эту?
источник

АШ

Алексей Шведов... in Ассемблер
Не смотреть же все функции?
Может есть плагин для поиска сигнатуры XOR-шифрования
Именно который покажет смещение этого кода с XOR
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Переслано от Aiwan ╭∩╮ (òÓ,) ╭∩╮b...
инетресно смотреть в 144р понимая что это 16 color
источник

s

s54816 in Ассемблер
Алексей Шведов
Так а найти как функцию эту?
Скорее всего оно будет деобфусцироваться либо при старте, либо непосредственно перед использованием. Там и смотреть.
источник

D

Den in Ассемблер
а что это?, на пузырьки вроде похоже
источник

楽園松本 in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
Переслано от Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
инетресно смотреть в 144р понимая что это 16 color
Рендерер твой?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
楽園松本
Рендерер твой?
не, илюомы
источник