Ushbu modulda biz quyidagi o‘quv birliklarini ko‘rib chiqamiz:

Noldan exploit yozish qiyin va vaqt talab qiluvchi jarayon bo‘lishi mumkin. Ammo, engagement paytida bizning aniq ehtiyojlarimizga mos keladigan public exploit topish ham xuddi shunday qiyin va ko‘p vaqt talab qilishi mumkin. Yaxshi kompromiss sifatida public exploit ni o‘zimizning maxsus ehtiyojlarimizga moslashtirish uchun o‘zgartirish mumkin.

Biroq, noldan exploit yozish ba’zi qiyinchiliklar bilan birga keladi. Masalan, memory corruption exploits (masalan, buffer overflows) holatida, biz socket information, return address, payload va offsets kabi asosiy target parametrlarini o‘zgartirishimiz kerak bo‘lishi mumkin.

Ushbu elementlarning har birini tushunish juda muhimdir. Masalan, agar bizning target Windows Server 2022 da ishlayotgan bo‘lsa va biz Windows 2003 Server ga qarshi yozilgan va sinovdan o‘tkazilgan exploit ni ishga tushirmoqchi bo‘lsak, Address Space Layout Randomization (ASLR) kabi yangi himoya mexanizmlari tufayli dastur odatda crash qiladi. Bunday holatlar ushbu attack vector ni ma’lum vaqtga bloklashi yoki hatto production environment ga ta’sir qilishi mumkin, bu ikkala holatni ham oldini olishimiz kerak.

<aside> 💡

Penetration test ni boshlashdan oldin, uning doirasi oldindan aniqlanishi kerak va mijoz attack vectors bilan bog‘liq har qanday downtime xavfini qabul qilishi lozim. Buni hisobga olgan holda, penetration testers sifatida biz har doim rejalashtirilgan har qanday exploit ning ta’sirini minimallashtirishga harakat qilishimiz kerak.*

</aside>

Potentsial downtime ni oldini olish uchun, mos kelmaydigan exploit ni ishga tushirish o‘rniga, har doim exploit kodini diqqat bilan o‘qib chiqish, kerakli o‘zgartirishlarni kiritish va imkon qadar o‘zimizning sandboxed target da sinovdan o‘tkazish kerak.

<aside> 💡

Ushbu target-ga xos o‘zgaruvchilar Exploit Database kabi onlayn resurslarda bir xil zaiflik uchun turli target operating system versiyalari va arxitekturalari uchun yozilgan bir nechta exploits mavjudligini tushuntiradi.

</aside>

Bundan tashqari, biz exploit ni boshqa dasturlash tiliga ko‘chirish orqali foyda ko‘rishimiz mumkin, bu esa qo‘shimcha pre-written libraries ni qo‘shish va exploit funksionalligini attack framework ga import qilish orqali kengaytirish imkonini beradi.

Nihoyat, muayyan operating system va arxitektura uchun kodlangan exploits ni boshqa platformaga ko‘chirish kerak bo‘lishi mumkin. Masalan, ko‘pincha exploit Windows da compile qilinishi kerak, lekin biz uni Kali da ishlatmoqchi bo‘lamiz.

Memory corruption exploits ni tuzatish bilan birga, biz web applications bilan bog‘liq exploits ni sozlashni o‘rganamiz, bu odatda socket option va dasturga xos parametrlar, masalan, URI paths va cookies ni o‘zgartirishni o‘z ichiga oladi.

Ushbu modulda biz public memory corruption exploits va web exploit kodini muayyan attack platform va target ga moslashtirish uchun zarur bo‘lgan qadamlarni ko‘rib chiqamiz va ushbu qiyinchiliklarning ko‘pini yengamiz.

13.1. Fixing Memory Corruption Exploits

13.2. Fixing Web Exploits

13.3. Wrapping Up