Jump to content
¯\_( ツ)_/¯
  • TAD GROUP are currently hiring penetration testers. Please read the topic in Career Central subforum.
  • Sponsored Ad

Recommended Posts

Искам да започна да създавам собствени експлоити и инструмент, но не съм сигурен откъде да започна

Знам основите на python и C# и долу-горе networking!

Доколкото знам се използват python C++ perl и ruby но вярвам че мога да науча основите останалите езици за месец два ако се захвана, но аз лично предпочитам да програмирам с python или С++.

Ако ми дадете някакви насоки ще съм много благодарен !!

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Ако говорим за binary exploitation за старт си мисля, че най-достъпно е обяснено в  https://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X . Правиш всичко до 5-та глава и ще имаш основата. Малко е старичка и има доста по-културни инструменти вече за работа, но нещата не са се променили особено и с малко старание примерите сработват. Ще видиш примерно как използват C и извънземни техники за deploy, които в момента ти костват 10 реда код на Python.

Нещата с които ще се сблъскаш най-вече са дебъг инструменти и асемблер за съответната архитектура. Хубаво е да си се занимавал с reverse engineering защото binary exploitation-а надгражда там. Вече зависи с каква архитектура и ОС ще подхванеш. Примерно основни инструменти са:

  • за Линукс - gdb+pwndbg/peda, radare2
  • за Windows - windbg, x64dbg

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Преди 16 часа, mrgray написа:

Ако говорим за binary exploitation за старт си мисля, че най-достъпно е обяснено в  https://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X . Правиш всичко до 5-та глава и ще имаш основата. Малко е старичка и има доста по-културни инструменти вече за работа, но нещата не са се променили особено и с малко старание примерите сработват. Ще видиш примерно как използват C и извънземни техники за deploy, които в момента ти костват 10 реда код на Python.

Нещата с които ще се сблъскаш най-вече са дебъг инструменти и асемблер за съответната архитектура. Хубаво е да си се занимавал с reverse engineering защото binary exploitation-а надгражда там. Вече зависи с каква архитектура и ОС ще подхванеш. Примерно основни инструменти са:

  • за Линукс - gdb+pwndbg/peda, radare2
  • за Windows - windbg, x64dbg

 

Благодаря ти за насоките, но имам още няколко въпроса:

1.Да започна ли да уча ассембли и ако да би ли ми препоръчал сорс от който да уча аз бях започнал от "The Art of Assembly Language" -- https://www.ic.unicamp.br/~pannain/mc404/aulas/pdfs/Art Of Intel x86 Assembly.pdf , но не я прочетох до край спрях след introducion-а защото прочетох някаде че не е нужно чак толкова да се знае ассембли

2.От reverse engineering не разбирам почти нищо бях се захванал с "Gray Hat Python" -- http://www.chinastor.org/upload/2015-08/15081917086229.pdf    , но беше твърде сложна книгата и реших че ми е рано. Та това нужно ли е да го уча преди да се захвана с "shellcoders Handbook" и ако да може ли някакви насоки ?

tlrd:Да науча ли ассембли и ревърс ендженииринг преди да се захвана с книгата или направо да я почвам ?

Отново Благодаря за насоките !!!

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

"The Art of Assembly Language" е супер дълга и не е много по същество. Да не говорим, че използва High Level Assembly, което освен в тая книга другаде не съм виждал да се ползва. Прочети 1-ва глава от "Practical Reverse Engineering", после виж LOLI crackmes и се запознай с radare2 и gdb - компилираш Hello World и го пускаш под дебъгър и дисасемблер, колкото да видиш скелета на програмата. Може да си помагаш на места с https://beginners.re/. RE4BE може да ползваш като референция за доизясняване и идеи за примерни програмки, не мисля че е подходяща да четеш от кора до кора. Инструкции, които не разбираш ги проверявай в Гугъл.

Това естествено ще те бутне в посока Linux, но low level нещата под Linux са доста по-прости и удобни за начинаещи от Windows примерно. Линукс инструментите са по-дърварски, но концепциите са по-лесни за схващане.

След като добиеш обща представа за нещата, се върни на "Shellcoder's Handbook". Прочети първите 5 глави и направи примерите. След това може да пробваш http://pwnable.kr/play.php. След това ще можеш сам да си прецениш какво да правиш :)

Писането на експлойти обхваща много сфери. От разбиране за процесорна архитектура, през операционни системи до овладяване на инструментите за development ( компилатори, дебъгъри и др).

Относно Gray Hat Hacking съм със смесени чуства. Има полезни неща вътре, но се опитват под една мишница всички дини да хванат. Предпочитам да чета по-фокусирана литература. Като ще уча binary exploitation ще се фокусирам там, няма да чета на следващата страница за ARP spoofing.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

@mrgray Прочетох "Practical Reverse Engineering" като цяло научих нещата като "mov" но ми е трудно да се справям със задачите след първата глава, трябва ли да науча всяка от дадените команди и да овладея дадената информация преди да продължа към "LOLI crackmes" или това че съм се сдобил със общата представа е достатъчно ?

Сори ако те занимавам с глупави въпроси

Редактирано от nikoyal

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Давай към crackmes. Трябва ти обща представа за x86 архитектурата и да се ориентираш (горе долу) като видиш дисасемблиран код. От там нататък действаш като редови дев - googling all the shit.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Ники, четене-практика-четене. Това е решението на проблема и честно казано няма как да ти се ограничи диапазона на разучаване. Харесваш си някоя задачка и я започваш. Ровиш се в нета докато откриеш решение на проблемите с които си се сблъскал или поне някакъв отговор и продължаваш натататък. 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Преди 1 час, freeman987 написа:

Ники, четене-практика-четене. Това е решението на проблема и честно казано няма как да ти се ограничи диапазона на разучаване. Харесваш си някоя задачка и я започваш. Ровиш се в нета докато откриеш решение на проблемите с които си се сблъскал или поне някакъв отговор и продължаваш натататък. 

Уважавам мнението ви, но тогава на практика не съм решил сам задачата а съм я "преписал" не е ли така ?

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
преди 3 минути, nikoyal написа:

Уважавам мнението ви, но тогава на практика не съм решил сам задачата а съм я "преписал" не е ли така ?

Ти я решаваш сам, но се сблъскваш с проблеми от всякакъв вид и просто питаш за да го научиш. Как ще караш колата на сервиз за смяна на маслото, като не знаеш, че вече е за смяна. Не си ме разбрал правилно. Сам се учиш но на практика търсиш решения на проблема в интернет и взаимстваш код, идеи и прочие. 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

@mrgray Тези кракмета след 0х4 (петото) не мога да ги направя твърде трудно ми е да си преведа асемблито ,та въпросът ми е да продължавам ли към "Shellcoder's Handbook" или да понауча още асембли докато не почна да ги решавам ++ гледам че в "Shellcoder's Handbook" се изисква доста ассембли 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Бих ти препоръчал да понаучиш по-добре какво се случва. Просто после ще изгубиш много бързо нишката, като минеш малко над базов buffer overrun в стека. Експлойтинга се състои от:

  • откриване къде е уязвимостта/бъга
  • правене на схема как да се експлоатира - заобикаляне на защити, проследяване на инпут, минаване на филтри, докато execute-неш exit() call примерно ( все едно правиш alert(1) като показваш XSS)
  • писане на смислен shellcode който да върши нещо - отваряне на шел, code execution loop, etc

Всяко едно от тези неща изисква техническа дълбочина. Пробвай да направиш каквото можеш все пак де. Почети малко от книгата и се пробвай на някое от:

И действай сам. Няма да стане бързо, свиквай с тази мисъл.

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

@mrgray Научих основите на ассембли (Поне аз така мисля) И реших да започна със "Shellcoder's handbook" до 2 глава  долу-горе разбирам какво се случва, но проблемът е че стигнах до момент в който трябва да компилирам някакъв басик шелкод проблема е обаче, че като го подкарам ми дава "Segmentation fault".

// shellcode.c
char shellcode[] =
“\xeb\x1a\x5e\x31\xc0\x88\x46\x07\x8d\x1e\x89\x5e\x08\x89\x46”
“\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\xe8\xe1”
“\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68”;
int main()
{
int *ret;
ret = (int *)&ret + 2;
(*ret) = (int)shellcode;
}

 

Постнах проблема си във stackoverflow  и ми казаха, че книгата е много стара и е нормално да е пълна с неработещ код. Пробвах да изтегля някой по нов шелл за да мога  да го инжектвам за задачите напред, но не открих. Да премина ли напред без шелла или ми е неубходим ?

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

От моя страна мога да препоръчам https://beginners.re/ много добра книжка. Всичко в нея работи.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

За съжаление доста неща от тази книга няма да сработят в момента. Тук може да видиш по-подробно какви проблеми и в кои глави има. В момента и аз работя  по книгата и доста малко от нещата тръгват. Примерно на глава 5 за Heap Exploitation редом с книгата прегледах и how2heap, докато ми се изясниха кои техники са илюстрирали в книгата. Според мен е важно ако нещо не ти тръгне да копаеш докато разбереш какво точно не тръгва. Ето например в този код, който си дал трябва да провериш дали сегмента заделен за shellcode променливата е executable като компилираш програмата. За да го провериш, ще трябва да знаеш как да работиш с gdb и objdump на базово ниво. Ако не знаеш как да бачкаш с тях ще се научиш преди да продължиш и т.н 🙂 Дори да не ти сработят примерите пак може да научиш много. За съжаление нямаш модерна енциклопедия за exploit-writing и трябва повече да рисърчваш и да събираш знание и сам да си сглабяш картинката.

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Отговорете в темата...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Потребители разглеждащи страницата   0 потребители

    No registered users viewing this page.

×
×
  • Създай нов...

Important Information

За да посещавате този уебсайт е необходимо да се съгласите с Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.