Титла: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: ludsic в Aug 11, 2009, 23:44 Здравейте
Значи имам примерно некво vulnarable apache пуснато на слака. И идва некво script kiddie дето не разбира нито от асемблер нито от С (а баща му не рабира как е могло да се пръкне такова идиотче...) пуска exploit-a който му execute-ва shell на моята машина и по-конкретно /bin/bash A въпроса ми е - шела с правата на apache ли се execute-ва или по-точно казано ако правата на /bin/shell са -rwxr-x--- т.е. на other групата не са дадени права ще може ли да се execute-не /bin/bash Става въпрос КОНКРЕТНО за /bin/bash Regards Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: eniac111 в Aug 12, 2009, 00:04 Код ==> може... Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: gat3way в Aug 12, 2009, 00:28 Ще се изпълни с правата, с които е работил apache процеса, т.е твърде много вероятно няма да е root.
Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: neter в Aug 12, 2009, 00:32 Освен, ако някой не е лепнал setuid бит към изпълнимия файл :) При така показания пример за правата не се забелязва такъв (на мястото на първия "х" щеше да пише "s"), но знае ли се каква е реалната ситуация...
Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: gat3way в Aug 12, 2009, 00:35 Това няма да помогне, apache drop-ва привилегиите си и се изпълнява с uid-то указано в конфигурацията. В смисъл, apache ТРЯБВА да се стартира като root, иначе не може да си bind-не listening socket-а на порт 80 (80<1024). Така че и да го suid-неш, нищо няма да стане. Можеш разбира се да се пробваш да му укажеш в конфигурацията да работи с uid0 обаче последния път като бях пробвал много лошо изрева и отказа да се стартира.
Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: ludsic в Aug 12, 2009, 00:37 Значи въпреки че няма права ще се изпълни
т.е. там където е проверката за това дали има права се слага едно jmp да я пропусне така или нещо от сорта на прав път ли съм ? Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: neter в Aug 12, 2009, 00:38 Хмм... не е задължително да го пуска директно през apache. Може да пусне cron задача.
Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: neter в Aug 12, 2009, 00:41 Значи въпреки че няма права ще се изпълниВ ситуацията от твоя пример няма да успее да изпълни /bin/bash, освен ако не получи достъп до реална конзола с root права. Setuid трябва да бъде зададен предварително от теб, за да му пуснеш вратичка. Да си имаш едно наум, когато използваш setuid. Понякога е нужно, но в повечето ситуации трябва да се пести ;) Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: gat3way в Aug 12, 2009, 00:44 Значи ако apache потребителя няма права да изпълни шела, не - няма да го изпълни. Обаче това, което искаш да направиш е ужасно глупаво и ще има много лоши последствия - в общи линии освен ако не вкараш непривилегированите потребители в една група - собственик на /bin/bash - те няма да могат да се логнат. После, /bin/bash не е единствения шел, твърде вероятно има и други - ksh например. Обикновените kiddies трудно ще модифицират шелкода, но някой с малко повече мозък в главата може да го модифицира да изпълнява нещо друго, не точно /bin/bash. Така че това не е точно най-добрия начин да се спасиш от такива неща.
Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: ludsic в Aug 12, 2009, 00:54 Значи ако apache потребителя няма права да изпълни шела, не - няма да го изпълни. Обаче това, което искаш да направиш е ужасно глупаво и ще има много лоши последствия - в общи линии освен ако не вкараш непривилегированите потребители в една група - собственик на /bin/bash - те няма да могат да се логнат. После, /bin/bash не е единствения шел, твърде вероятно има и други - ksh например. Обикновените kiddies трудно ще модифицират шелкода, но някой с малко повече мозък в главата може да го модифицира да изпълнява нещо друго, не точно /bin/bash. Така че това не е точно най-добрия начин да се спасиш от такива неща. Значи първо тва си го измислих сам за да бъде по-интересен и смилаем въпроса ми И сам се досетих проблема с потребителите но все пак благодаря за напомнянето :) Идеята ми е да разкарам колкото се може повече неща които да може да пуска user apache httpd или там още квито могат да бъдат а при положение че освен root друг user на машината не се ползва мисля че няма да е чак такъв проблем и другото което искам да попитам аджаба на apache трябва ли му какъвто и да било шел Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: gat3way в Aug 12, 2009, 01:10 Ако някъде имаш PHP скрипт. който вика system() предполагам ще му трябва.
Ама още веднъж ти казвам, не е достатъчно да отрежеш възможността уеб сървъра да изпълнява шелове. Шелкода спокойно може да изпълнява wget и тогава задачата пак се свежда до същото. Ако примерно ползваш PHP, шелкода може дори да си създаде файл и да изпише в него PHP код - резултатът ще бъде че ще могат да си изпълняват после неща през браузъра. Не е много сложно, ако не вярваш че е възможно - ето ти един пример: http://www.gat3way.eu/poc/shellcode/test1.c.txt x86 шелкод, който презаписва /var/www/index.html с "pwn3d by gat3way". Със същият успех може да се презапише с нещо от сорта на "<? eval(base64_decode($_GET['param'];);?> да речем. В крайна сметка мисля, че това, което ти трябва се нарича SELinux. Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: gat3way в Aug 12, 2009, 01:15 Обаче като се замисля, май наистина не мога да се сетя за причина apache потребителя да има шел, това със system() не е вярно, там се вика /bin/sh -c .... така че дали в passwd има или няма шел, няма значение.
Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: ludsic в Aug 12, 2009, 01:24 Значи стигнахме до същината на идеята :)
Почти написах bash script който рекурсивно да махне от всички файлове пермишъните на other групата и правя така пускам скрипта махам пермишъните после едно по едно давам права на апача за това което измрънка че му трябва и дори да изпълнят някакъв код на машината ми през bug на апача да не могат да направят кажи речи нищо няма wget, gcc etc. та дори да нямат и шел на който да се мъчат да изпълнят ls примерно което ще върне грешка защото и за това нямат права //offtopic тъпите еврокомци днес за 6-ти път си спират някой от сървърите за 5-10 минути да им .... и .... .... админи дето имат :) Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: foxb в Aug 12, 2009, 02:19 Странно...
Защо всичките тези упражнения като можеш просто да си обновиш апаче? Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: ludsic в Aug 12, 2009, 02:43 Странно...Защото ми се занимава с нещо или по точно учи ми се нещо а не се хващам да науча квото и да било ако нямам конкретна задача За тва съм се сетил сега и тва нищя Търсил съм някакви exploit-и за apache и съм мислил дори да си сложа същата версия за да мога да си го exploit-на и да видя кво може да се направи и кво не може От това което може да се направи как да се спре само че не можах да си намеря читав и тва остана в миналото Затова питам тука хората които са се занимавали и знаят да кажат. А и ми даде друга идея да си напиша script който проверява дали има нова версия да я сваля и да ми прашта смс а защо пък не направо и да пачва :) Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: gat3way в Aug 12, 2009, 10:28 Вероятността някой да атакува уеб приложението работещо там е в пъти по-голяма, отколкото това. Apache се разработва отдавна, ползва се от много хора и повечето проблеми са му избистрени отдавна. Дори да се намери някой buffer overflow проблем, в днешно време писането на експлойти не е толкова лесно. Първо, ядрото до голяма степен прави нещата много сложни заради рандомизацията на адресното пространство и заради NX-бита на страниците памет. Второ, glibc от друга страна прави нещата сложни заради това че може да слага canary values в стека и да проверява дали стойността им е същата и ако са презаписани с друга стойност, да крашва програмата. После, атакуващият трябва да знае разни адреси или поне отмествания в паметта от нещо, тези неща са специфични за конкретния build. Ако се открие някой лош проблем и излезе някой зъл експлойт, това бързо ще се разчуе. Така че не виждам какво толкова се притесняваш.
Титла: Re: зъл shell code >:D - options(ае не знам как да кръстя темата :) ) Публикувано от: ludsic в Aug 12, 2009, 13:04 Чак пък да се притеснявам ... :)
Просто ми се занимава с нещо Току виж ми прищракало да си сложа некъф слак с кернел 2.2.х :) Информацията винаги е полезна :) |