О, сколько нам фейлов чудных готовит билагея дух

FLAME :-E

Postby fk0 » 04 Aug 2017, 01:45

thims wrote:А нах эта защита сдалась, можно узнать?


Ищем баг, из-за которого в стеке аллоцируется слишком дохуя. И эксплуатируем -- стек выезжает из своего сегмента и наезжает на хип или mmap и портит там что-нибудь жизненно важное. Портит так, что мы это можем как-то эксплуатировать потом. Например, засираем все адресом своего шеллкода уже положенного в стек. И если там случайно коллбэк, в засранном хипе, лежал, то получаем управление. Вместо шеллкода может быть return oriented programming, но это уже детали.

Понятно, что в чистом виде переполнение стека не баг. Баг в том, что это переполнение возможно как реакция на входные данные или окружение. Но переполнение с засиранием хипа позволяет не просто обрушить программу, но запускать свой код.

Вообще это актуально в основном, если не только, для программ с установленным setuid битом или запускаемых из под sudo: в рамках своих прав ты и так все что хочешь делать можешь, извращаться со стеком смысла нет.
* Origin: зип файл! (2:5030/1559)
User avatar
fk0
 
Posts: 1522
Joined: 07 Apr 2007, 01:08
Group: Registered users

Postby lvd » 04 Aug 2017, 02:25

deathsoft wrote:Внезапно также как обычно ss:esp, только стэк лежит в отдельном сегменте и с хипом не пересекается, вто что в стеке адресутеся ss:[esp+nnnnnnnn], где в ss загружен селектор того самого защищенного сегмента стэка с базой и лимитом.

Внезапно в языке C (если конечно знаешь такой) есть такое понятие как указатель, и указывать он может как на объекты на стеке, так и на объекты на хипе.
И как давно ты видел указатели, которые вместе с сегментом идут, ебаные 6 или 10 байт? Так что пиздеть про сегменты стека не надо, это defective by design что в осях стек и хип лежат в одном месте без никаких ебаных сегментов. И ничего с этим сделать уже нельзя и вовеки веков. Пиздец :)
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7151
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby lvd » 04 Aug 2017, 02:27

fk0 wrote:Ищем баг, из-за которого в стеке аллоцируется слишком дохуя. И эксплуатируем

Это же трололо, в стране розовых поней программистов на цэ-диезном говнете переполнений стека не бывает, сейчас тебе скажут :)
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7151
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby fk0 » 05 Aug 2017, 00:28

Там зато SQL-инжекшны и прочие штуки есть.
* Origin: зип файл! (2:5030/1559)
User avatar
fk0
 
Posts: 1522
Joined: 07 Apr 2007, 01:08
Group: Registered users

Postby deathsoft » 05 Aug 2017, 02:32

lvd wrote:И как давно ты видел указатели, которые вместе с сегментом идут, ебаные 6 или 10 байт?

Да вот буквально недавно писал такой загручик, ключевое слово far/__far в компиляторах, и 16:16, 16:32 far поинтеры, т.ч. ололо дитя амиги и плоской модели памяти. Ну и какбэ watcom c++ в помощь, всякие ваши убогие gcc не осиливают сегментную модель.
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby lvd » 07 Aug 2017, 14:38

именно, детей амиги и плоской памяти нонче развелось... и блевиста, и буханка... Один ты держишься, молодец. Пусть эти все дети амиги обломаются, а ты останешься на коне. Будь тверд, правда с тобой!
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7151
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby thims » 09 Aug 2017, 14:10

fk0 wrote:Например, засираем все адресом своего шеллкода уже положенного в стек.

Дык DEP же.
User avatar
thims
 
Posts: 154
Joined: 17 Dec 2011, 01:40
Location: Калининград
Group: Registered users

Postby lvd » 12 Aug 2017, 12:18

shit-empire strikes back: https://geektimes.ru/post/291961/
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7151
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby fk0 » 12 Aug 2017, 13:06

thims wrote:Дык DEP же.


ROP. Кроме того, для ряда случаев исполняемый стек _нужен_. Там gcc трамплины прячет, например.
* Origin: зип файл! (2:5030/1559)
User avatar
fk0
 
Posts: 1522
Joined: 07 Apr 2007, 01:08
Group: Registered users

Previous

Return to Флейм

Who is online

Users browsing this forum: No registered users and 2 guests

cron