Автор Тема: Hahor challenge part ii  (Прочетена 141165 пъти)

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Hahor challenge part ii
« -: Jul 27, 2008, 19:54 »
Сега ще видим кой наистина е зъл хахор '<img'>

Значи подготвил съм нова тестова среда (предполагам не всичко е перфектно още, но ще се стараем в движение '<img'> ).

IP address: 78.90.217.9
Username: newuser
Password: hello
Port: 22 (ssh) 80 (web)


Каква е постановката?

Първоначално се логвате като потребител без особени права. Вашият път към лелеяният root-ски акаунт минава през 2 стъпки: първо трябва да се сдобиете с правата на малко по-привилегирован потребител. За целта е необходимо да "счупите" услуга, работеща с тях. Услугата е echo, писана е от мен с много фрапантна buffer overflow грешка. Целта е да напишете експлойт за нея, който да ви spawn-не shell. За да улесня малко процеса ще дам малко насоки:

* Най-важното е първо да разберете каква е големината на буфера, който се препълва. Услугата ще крашне ако буферът се препълни със стринг, по-голям от  buffer_size+4
* По-умният човек ще знае как да се сдобие с binary-то, което ще се счупи. Това е почти единственият начин да се справите. Атаки могат да се правят директно върху същото binary като той или core файла може да се дебъг-ват с gdb и objdump. Другият вариант е да пробвате на сляпо, но силно вярвам че нищо няма да направите
* За задачката са необходими елементарни знания по C, но малко по-задълбочени по отношение на това какво представляват buffer overflows. Добро начало са разни whitepapers на packetstorm, имаше едно много добро четиво, мисля че авторът му се нарича aleph1.
* Експлойтът трябва да препълни буфера, да презапише return адреса така че изпълнението да прескочи на някакъв негов зъл код. Този код се нарича shellcode, предполагам ще ви трябва такъв shellcode, който прави нещо от сорта на execve("/bin/sh",...). Рекламирам отново сайта milw0rm.com , там има готови такива. Важно е да пробвате дали работят на тази платформа, най лесният начин е като го присвоите на променлива, да си дефинирате една функция например така:

int (*funkcia)() = (int(*)())shellcode;

Където funkcia() е функцията, char shellcode[] е шелкода.

извикването на funkcia() съответно или ще крашне поради някаква причина, или ще направи това, което трябва. Ще ви трябва шелкод, който може да прави това, а не да крашва '<img'>

* За да е малко по-интересно, използва се address space randomization. Аз бях писал по въпроса, но има много лесен начин това да се преодолее. Има много хубави статии по въпроса, предполагам гугъл ще ги изплюе ако търсите за defeating address space randomization, [vdso], linux-gate.so и т.н. Накратко търси се място, което съдържа ffe4 (jmp %esp) и адресът му се използва за това, с което се презаписва return адреса.


Ако се справите добре, получавате daemon-ски привилегии.

За да получите оттам нататък root-ски такива, трябва да проявите малко фантазия, да се разровите из файловите системи, да разгледате какво работи, рано или късно ще ви хрумне как да успеете '<img'> Не мисля да казвам нищо.


А, да, пуснал съм един уеб с една проста страница. Когато успеете да хахорнете системата, отбийте се през index-а да се разпишете.


За да не каже някой, че това изглежда невъзможно, далеч не е така. Ето го и доказателството '<img'>

http://imajr.com/Original.aspx?Id=kvm3-1147405

Ако се сетя още нещо, ще пиша '<img'>



Активен

"Knowledge is power" - France is Bacon

ANTIADMIN

  • Напреднали
  • *****
  • Публикации: 660
  • Distribution: Windows XP Pro latest updates
  • ANTIADMIN
    • Профил
Hahor challenge part ii
« Отговор #1 -: Jul 27, 2008, 21:09 »
Като го пуснеш се обади '<img'>
Примерен код
ssh: connect to host 78.90.217.9 port 22: Connection refused
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #2 -: Jul 27, 2008, 21:33 »
Малко последни корекции вкарвах, съжалявам '<img'> Вече работи '<img'>
Активен

"Knowledge is power" - France is Bacon

nov_chovek

  • Напреднали
  • *****
  • Публикации: 536
  • Distribution: Ubuntu 8.10 по принуда
  • Window Manager: Gnome
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #3 -: Jul 27, 2008, 21:44 »
ти си ебаси маниака, честно '<img'> според мен в тоя сайт ще има само около 2-3 човека, който ще могат да се справят с това.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #4 -: Jul 27, 2008, 21:45 »
Целта е един да се справи '<img'> А пък аз ще съм достатъчно търпелив да изчакам надявам се '<img'>

А, дам, експлойтите за тези неща се намират в /root. Ако някой случайно измисли как да ги изчете, може да си ги ползва, макар че ако може да го направи, надали ще му трябват '<img'>



Активен

"Knowledge is power" - France is Bacon

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Hahor challenge part ii
« Отговор #5 -: Jul 27, 2008, 21:45 »
Цитат (por4e2 @ Юли 27 2008,21:09)
Като го пуснеш се обади '<img'>
Примерен код
ssh: connect to host 78.90.217.9 port 22: Connection refused

според мен си работи
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #6 -: Jul 27, 2008, 21:52 »
А, да, въпросното binary може да си го свалите и да го мъчите локално при вас ако имате желание, мисля, че така ще е по-лесно, а и другите няма да ви се бъркат '<img'>
Активен

"Knowledge is power" - France is Bacon

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #7 -: Jul 27, 2008, 23:47 »
Между другото ето няколко полезни текстове по тоя въпрос:

Що е то стек: http://en.wikipedia.org/wiki/Stack_frame#Structure
Buffer overflow: http://en.wikipedia.org/wiki/Buffer_Overflow
Stack overflow:
http://en.wikipedia.org/wiki/Stack_buffer_overflow


Прословутата статия от aleph1: http://packetstormsecurity.org/docs/hack/smashstack.txt

Как да чупим randomize_va_space:
http://www.milw0rm.com/papers/94

Успех '<img'>



Активен

"Knowledge is power" - France is Bacon

ANTIADMIN

  • Напреднали
  • *****
  • Публикации: 660
  • Distribution: Windows XP Pro latest updates
  • ANTIADMIN
    • Профил
Hahor challenge part ii
« Отговор #8 -: Jul 28, 2008, 00:41 »
Може и на perl да се напише, ма моя shellcode го триха '<img'> Ама и без тва не ставаше. Стигам до 0xffffff0 за буфера и съм дотам, утре ще продължа. Ако и до утре никой не направи нещо е редно да дадеш нов джокер. Ааа аз не разбирам от нищо, затова, който чете темата да не го взима насериозно.
Подозирам, че ениак ми три шелкода '<img'>
Лека нощ!
Активен

eniac111

  • Напреднали
  • *****
  • Публикации: 263
  • Distribution: Debian / Ubuntu
  • Window Manager: Enlightenment DR16 / KDE4
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #9 -: Jul 28, 2008, 11:08 »
Не е вярно! '<img'>

91.196.226.249 //Аз



Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #10 -: Jul 28, 2008, 12:56 »
Апропо и с една шел команда може и тя е echo, но това надали има голямо значение '<img'>
Активен

"Knowledge is power" - France is Bacon

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #11 -: Jul 28, 2008, 13:24 »
Предполагам си си написал документацията как се билдва подобна среда. Поне за мен ще е интересно. Или поне по темата наблюдение на мажещите акаунтинг и други такива.
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Hahor challenge part ii
« Отговор #12 -: Jul 28, 2008, 13:49 »
Мне, ужасно досадно е да се пишат такива неща '<img'>

Иначе наблюдения имам, поне по отношение на това какво се случваше в първата среда. Най-сериозният проблем беше с форкбомбите, поради което се слага някакъв нормален hard лимит в /etc/security/limits.conf. Забраната на смяна на паролата става много лесно, просто на passwd се отрязва тази възможност от страна на непривилегирован потребител. Това става по най-лесния начин: махам setuid бита на /usr/bin/passwd и дотам със смяната на паролата. Друго, което се случва - някои хора се опитват да си играят с разни популярни локални експлойти - това 2.6.18 ядро е пачнато по отношение на vmsplice проблема и понеже има ограничен набор драйвери, няколко сходни проблеми например в 802.11 драйверите се избягват. Мисля, че съществува възможност за локален DoS срещу това ядро и при такава конфигурация, но не съм сигурен. Има един много сериозен проблем, който поради мързел не съм оправил и благодарение на който някой идиот може да съсипе временно средата, но не мисля да го споделям, а и мога относително бързо да се справя с последствията ако се наложи. Оттам нататък всичко си е спрямо конкретната задача. Гледам да не си обменям ключове между хост операционната система и тази, да не стане някаква авария '<img'> Специално за тази игра си строших доста време, защото в първоначалната конфигурация, с ядро 2.6.25, гадовете-големи-глави са бутнали малко VA кода с което превръщат експлойтването на моята програмка в доста усложнено занимание. Същото се отнася и за inetd, ползвам този му вариант, защото другите бяха ужасно досадни гадове. Гледах да улесня нещата с експлойтването максимално и това мисля е един от най-лесните случаи, поне по отношение на това. Мисля, че човек с малко повече зор няма да му е проблем да се справи. Просто изпълнението няма много общо с разните хахорски занимания да теглиш нещо да го компилираш и да се справиш, изисква малко повече мислене (и вероятно четене). Втората задача е...забавна и изисква малко знания за това как работи тази операционна система '<img'> За нея специално съм сътворил една гигантска дупка в сигурността, но леко замаскирана и може да се експлойтне само ако си минал първото ниво.
Активен

"Knowledge is power" - France is Bacon

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
Hahor challenge part ii
« Отговор #13 -: Jul 28, 2008, 14:36 »
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!w&#65533;&#65533;&#65533;j
                                                                 X&#65533;Rh//shh/bin&#65533;&#65533;RS&#65533;&#65533;&#832;
Segmentation fault
Активен

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Hahor challenge part ii
« Отговор #14 -: Jul 28, 2008, 18:49 »
Вътре съм '<img'> '<img'>
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Linux vs Window$ part 2
Идеи и мнения
Buda 21 15072 Последна публикация Feb 20, 2004, 18:06
от nix
Linux vs Windows Part 3
Идеи и мнения
Buda 22 18440 Последна публикация Feb 23, 2004, 22:50
от Agent_SMITH
Hahor challenge web-part
Конкурс bash-майсторът
VladSun 20 72793 Последна публикация Sep 19, 2008, 20:32
от gat3way
Hahor challenge :)
Конкурс bash-майсторът
gat3way 66 166031 Последна публикация Jul 27, 2008, 18:59
от VladSun
Hah0r challenge....again :)
Системна Сигурност
gat3way 9 12778 Последна публикация Feb 03, 2009, 16:43
от gat3way