Hack: ekspluatatsiya san'ati - Hacking: The Art of Exploitation - Wikipedia

Hackingexplota.jpg

Hack: ekspluatatsiya san'ati (ISBN  1-59327-007-0) tomonidan yozilgan kitobdir Jon "Smibbs" Erikson haqida kompyuter xavfsizligi va tarmoq xavfsizligi.[1][2] Tomonidan nashr etilgan Kraxmal bosilmaydi 2003 yilda, 2008 yilda ikkinchi nashr bilan nashr etilgan. Kitobdagi barcha misollar ishlab chiqilgan, to'plangan va sinovdan o'tgan Gentoo Linux.

Muallif va asosiy ma'lumotlar

Jon Erikson kompyuter xavfsizligi bo'yicha mutaxassis, kompyuter fanlari bo'yicha ma'lumotga ega. 2011 yildan boshlab u a zaiflik tadqiqotchi va kompyuter xavfsizligi Kaliforniyadagi mutaxassis.

Yuklab olinadigan kompakt-disk kitob bilan birga berilgan Linux asoslangan dasturlash va disk raskadrovka foydalanuvchilar uchun muhit.

1-nashrning mazmuni

Ning mazmuni Ekspluatatsiya o'rtasida harakat qiladi dasturlash, tarmoq va kriptografiya. Kitobda haqiqiy dunyo misollarining hech qanday taniqli o'lchovlaridan foydalanilmagan; munozaralar kamdan-kam hollarda o'ziga xos qurtlarni keltirib chiqaradi va ekspluatatsiya.

Dasturlash

The kompyuter dasturlash qismi Hacking kitobning yarmidan ko'pini egallaydi. Ushbu bo'lim ekspluatatsiya kodini ishlab chiqish, loyihalash, qurish va sinovdan o'tkazishga bag'ishlangan va shu bilan ba'zi bir asosiy ma'lumotlarni o'z ichiga oladi montaj dasturlash. Namoyish qilingan hujumlar oddiydan farq qiladi bufer toshib ketadi ustida suyakka ustiga yozishni o'z ichiga olgan murakkab texnikaga global ofset jadvali.

Erickson a kabi qarshi choralarni muhokama qilar ekan bajarilmaydigan stek va ulardan qanday qochish kerakligi libc-ga qaytish hujumlari kabi ma'lum kafolatli ekspluatatsiyalarsiz u chuqurroq masalalarga sho'ng'iydi manzil maydonini tasodifiylashtirish. Shuningdek, kitobda Openwall, GrSecurity va PaX loyihalar yoki yadro ekspluatatsiya.

Tarmoq

The tarmoq segmenti Hacking ning asoslarini tushuntiradi OSI modeli va asosiy tarmoq tushunchalari, shu jumladan paket hidlash, ulanishni olib qochish, xizmatni rad etish va portni skanerlash.

Kriptologiya

The kriptologiya qismi Hacking ga qo'shimcha ravishda asosiy axborot nazariyasini qamrab oladi nosimmetrik va assimetrik shifrlash. U yorilib chiqadi WEP dan foydalanib Fluhrer, Mantin va Shamir hujum qiladi. Asosiy narsalardan tashqari, shu jumladan o'rtada odam hujumlari, lug'at hujumlari va foydalanish Yahyo Ripper; Hacking muhokama qiladi kvant kaliti taqsimoti, Lov Groverning kvant qidirish algoritmi va Piter Shorning kvant faktoring algoritmi buzish uchun RSA juda katta yordamida shifrlash kvantli kompyuter.

Boshqa tafsilotlar

  • Old qopqog'i Hacking Bu teskari muhandislikdan hujumni amalga oshirishga qadar, buyruq satrining uzoq argumentlari ustidan buferning to'lib ketishi natijasida vafot etgan dastur uchun ekspluatatsiyani rivojlantirishning to'liq tsikli.

Tarkib 2-nashr

Hack: Ikkinchi nashr ekspluatatsiya san'ati
Hacking Book Cover Second edition.jpg
MuallifJon Erikson
MamlakatAmerika Qo'shma Shtatlari (asl nusxasi)
TilIngliz tili (ikkinchi nashr)
SeriyaIkkinchi nashr
JanrKompyuter fanlari
NashriyotchiKraxmal bosilmaydi
Nashr qilingan sana
2008 yil fevral
Media turiChop etish Qog'ozli qog'oz
Sahifalar488
ISBN978-1593271442

Kirish

Kitobning kirish qismida aytilishicha, xakerlik faqat qonun doirasida amalga oshirilishi kerak va faqat samarali sabablarga ko'ra amalga oshiriladi.

0x200 dasturlash

Ushbu kitobning dasturlash bobida har xil turdagi dasturlar tasvirlangan va misollar orqali namoyish etilgan. Bo'lim o'z ichiga oladi boshqaruv tuzilmalari va dasturlashning boshqa asosiy jihatlari. Jonli kompakt-disk o'quvchini nafaqat kitobdagi misollarni kuzatibgina qolmay, balki o'zlari ham dasturlashi uchun sharoit yaratib beradi.

0x300 ekspluatatsiya

Ekspluatatsiya kompyuter kodini yoki qoidalar to'plamini olib, ularni o'zgartirishi, shunda kompyuter siz xohlagan narsani bajaradi. O'zgarish yo'llari yoki teshiklarini topish ekspluatatsiyaning muhim qismidir. Ushbu bobda xotira buzilishi, Bufer toshib ketadi va satrlarni formatlash, ayniqsa foydalanib Perl va Bash qobiq kodi.

0x400 Tarmoq

OSI modeli.

OSI modeli
Tarmoq orqali kompyuterlar o'rtasida aloqada OSI modeli ishlatilgan. OSI modeli bu kompyuterlar aloqa qilishda foydalanadigan standartlarni ta'minlovchi model. OSI Modelida etti qatlam mavjud va ular Fizik qatlam, Data-Link qatlami, Tarmoq sathi, Transport qatlami, Sessiya qatlami, Taqdimot qatlami va Ilova qatlami. Kompyuter boshqa kompyuterga yuboradigan har bir paket OSI Modelining har bir qatlamidan o'tishi kerak.

Soketlar
Kompyuter operatsion tizimlaridan foydalangan holda tarmoq orqali aloqa qilishning standart usuli bu rozetka. Soket dasturchi tomonidan OSI qatlamlari yordamida ma'lumotlarni yuborish va qabul qilish usulini yaratish uchun ishlatiladi. Soketlarning ikki turi mavjud: Stream Socket va Datagram Socket. Stream soketlaridan foydalanish Transmissiyani boshqarish protokoli (TCP). Datagram soketida foydalanuvchi ma'lumotlar bazasi protokoli (UDP) ishlatiladi.

Qatlamlarni tozalash
"Qatlamlarni tozalash" OSI qatlamlari aslida qanday ishlashini tasvirlaydi. OSI modeli kitobdagi ba'zi tushunarli bo'lgan tasvirlar bilan batafsil tavsiflangan.

Tarmoqni hidlash
O'tkazilgan va o'chirilgan tarmoqlar tarmoqlarda mavjud. Kommutatsiya qilingan tarmoqda tarmoq bo'ylab harakatlanadigan paketlarni tahlil qiladigan va ularga so'nggi nuqta bo'lgan joylarni aytib beradigan kalitlar deb nomlangan qurilmalardan foydalaniladi. O'chirilmagan tarmoq - bu to'xtatilmasdan va tahlil qilinmasdan paketlarning erkin oqimi. Sniffing - bu tarmoqdagi paketlarni va ular qaerga ketayotganini ko'rish imkonini beradigan dasturdan foydalanishni anglatadi.

Xizmatni rad etish
A xizmat hujumini rad etish bu kompyuter resursini mo'ljallangan foydalanuvchilar uchun yaroqsiz holga keltirishga urinishdir. Bu shuni anglatadiki, xizmatni rad etish xuruji ma'lum bir vaqt davomida yaroqsiz bo'lib qolishi uchun resursni to'ldirish uchun mo'ljallangan resursga ko'plab aloqa so'rovlarini yuboradi. Ushbu turdagi hujumlar odatda yo'riqnoma yoki xavfsizlik devorlariga tarmoqdagi boshqa kompyuterlarga kirish uchun ularni o'chirish uchun yo'naltiriladi. Router ushbu turdagi hujumlarga juda sezgir, ammo xavfsizlik devori odatda hujumni boshqarishi mumkin va ta'sir qilmaydi. Xizmatni tarqatish bo'yicha tarqatilgan rad etish - bu aloqa so'rovlari bir nechta kompyuterlardan kelib chiqib, doimiy ravishda xizmatni rad etish orqali so'rovlar sonini ko'paytirish. DOS hujumlarining ba'zi boshqa turlarini o'z ichiga oladi O'lim ping, Ko'z yoshi, Ping toshqini va Amplification hujumlari.

TCP / IPni o'g'irlash
TCP / IP-ni o'g'irlash bu boshqa usul qalbaki paketlar jabrlanuvchi va xost mashinasi o'rtasidagi aloqani o'z zimmasiga olish. Ushbu usul asosan xost mashinasi ulanish uchun parolni ishlatganda parollarni yig'ishda ishlatiladi. Ushbu turdagi hujum sodir bo'lganda, jabrlanuvchi va tajovuzkor bitta tarmoqda bo'lishi kerak. TCP / IP o'g'irlashning yana bir shakli - bu soxta asl holatini tiklash paketini kiritishni o'z ichiga olgan RST o'g'irlash.

Portni skanerlash
Portni skanerlash shunchaki qaysi portlar ulanishlarni qabul qilayotganini va tinglayotganligini aniqlashning bir usuli. Xaker shunchaki tarmoqdagi barcha portlarni skanerlash va ularni ochishga urinish orqali qaysi portlar ochilishini biladigan dasturdan foydalanadi. SYN, Idle, FIN, X-Mas va Null kabi ko'plab boshqa turdagi skanerlar mavjud.

Qo'lingizni cho'zing va kimnidir buzsangiz
Ushbu qism tarmoqni tipografiyasida zaifliklarni topish haqida. Tarmoq protokollari uchun ishlatiladigan kod satrlaridan o'tish uchun disk raskadrovka vositasidan foydalanish bunga erishishning eng samarali usuli hisoblanadi.

0x500 Shellcod

Shellcode koddan foydalanishda foydalaniladi. Bu dasturni boshqarish huquqini qo'lga kiritganida, uni boshqarishni istagan xakerning shaxsiy kodiga o'xshaydi. Odatda xaker dastur kodidan ekspluatatsiya topadi va ekspluatatsiya topilgan joyga o'zining shaxsiy kodini (shellcode) qo'shishi mumkin.

Assambleyaga qarshi C
Assambleya C dan farq qiladi, chunki yig'ish a past darajadagi dasturlash tili va ishlov berilganda to'g'ridan-to'g'ri protsessor bilan aloqa qilish mumkin. Yuqori darajadagi dasturlash tili bo'lgan C dan foydalanishda kodni kompilyatsiya qilish va yadroga tizim qo'ng'irog'ini yuborish, so'ngra protsessorga qo'ng'iroq qilish kerak. Boshqacha qilib aytganda, bu deyarli yig'ilishni ishlatishda tizimni yadroga chaqirishni olib tashlashga o'xshaydi.[iqtibos kerak ]

Shellcode uchun yo'l
Shellcode-ning bu qismi dasturni shellcode-ga qanday kiritish haqida, shuning uchun uni qabul qilish mumkin. Kitobda ko'plab kodlar misollari va ushbu vazifani bajarish usullari mavjud.

O'z-o'zidan tug'iladigan qobiq kodi
Yumurtalash qobig'i kodi ekspluatatsiya topilganda yoqiladigan koddir. Dasturda zaiflik aniqlanganda uni ishga tushirish mumkin bo'lgan qobiq kodi. Buni amalga oshirishning eng yaxshi usuli kitobda va kod juda kichikligiga ishonch hosil qilishda ko'rsatilgan.

Portni bog'laydigan qobiq kodi
Ushbu turdagi kod kodi tarmoq portiga ulanadi. Portga bog'langanidan so'ng, u TCP ulanishini tinglaydi. TCP ulanishini topgandan so'ng, dasturlashda ko'proq narsa bor va u kitobda aniq ko'rsatilgan.

Ulanish orqasidagi qobiq kodi
Ushbu turdagi kod kodi asosan xavfsizlik devorlarini aylanib chiqishda ishlatiladi. Aksariyat xavfsizlik devorlari portni bog'laydigan qobiq kodini ishlashini to'xtatadi, chunki ular faqat faol portlar orqali ma'lum xizmatlarga ruxsat berish uchun o'rnatiladi. Ulanish orqasidagi qobiq kodi xakerning IP-manziliga ulanishni boshlaydi, shunda u xavfsizlik devori ichkarisiga emas, uning devoridan chiqadi. Kitobdagi kod yana bir bor qobiq kodi bilan bog'lanishni va uni amalga oshirish usullarini tasvirlaydi.

0x600 qarshi choralar

Kitobning ushbu qismida himoya va kirishni oldini olish tizimlari ma'lum bo'lgan xakerlik ekspluatatsiyasini to'xtatish.

Aniqlaydigan qarshi choralar
An ma'mur tarmoq qachon ekspluatatsiya sodir bo'lishi mumkinligini bilishi kerak. O'qish jurnallari yoki kabi ba'zi vositalardan foydalanish paket hidlash tarmoqda ekspluatatsiya sodir bo'lganda ularni ushlashning bir necha usullari mavjud.

Tizim Daemons
A Tizim Daemon bu server dasturidir Unix kiruvchi ulanishlarni qabul qiluvchi va qabul qiluvchi tizim. Daemon - bu orqa fonda ishlaydigan va terminalni boshqarishni ma'lum bir tarzda olib tashlaydigan dastur. Kitobning ushbu nuqtasida, demon dasturini qanday ishlatish haqida ko'rsatma berilgan. Operatsion tizim qo'ng'iroqlarini amalga oshirish uchun signallar Unix-ga asoslangan muhitda ham qo'llaniladi. Agar signal terminalda bo'lsa, u darhol har qanday signal bosilgan bo'lsa ham, vazifani bajarish uchun uzilish xabarini yuboradi. Signallardan foydalanish kitobdagi ba'zi bir kodlash misollarida keltirilgan.

Savdo vositalari
Xakerda ekspluatatsiya paytida unga yordam berishi kerak bo'lgan ma'lum vositalar to'plami mavjud. Ekspluatatsion skript - bu tizim yoki dasturdagi teshiklarni topish uchun allaqachon yozilgan ekspluatatsiya kodidan foydalanadigan vosita. Ekspluatatsiya ssenariylaridan foydalanish xaker bo'lmagan odam uchun ham oson, chunki unda allaqachon kod yozilgan. Ba'zi ekspluatatsiya vositalarining er-xotin imtihonlari kitobda va ulardan qanday foydalanish ko'rsatilgan.

Jurnal fayllari
Yuqorida aytib o'tilganidek, jurnal fayllari - bu kompyuterda yoki tarmoqda sodir bo'lgan voqealarni tekshirish usuli. Xaker uchun jurnal fayli aytilgan narsani o'zgartirish qobiliyatiga ega bo'lishi unga e'tibor berilmasligiga yordam beradi. Kitobdagi ba'zi jurnal fayllarini qanday o'zgartirish haqida kod va ko'rsatmalar mavjud.

Aniq narsalarga e'tibor bermaslik
Hack qilingan dasturning yana bir belgisi shundaki, u endi to'g'ri ishlamaydi. Ko'pincha dasturlar to'g'ri ishlamaydi, chunki xaker ularni o'zgartirgan, boshqa vazifani bajaradi. Ammo malakali xaker dasturni o'zgartirishi mumkin, shunda ham u to'g'ri ishlaydi va xohlaganini bajaradi. Agar dastur ishlatilsa, qanday sodir bo'lganligini aytib berishning usullari mavjud. Dasturning qanday ekspluatatsiya qilinganligini aniqlash juda zerikarli jarayon bo'lishi mumkin, chunki u odatda dasturning qismlarini olish va ularga alohida qarashdan boshlanadi. Qanday qilib ekspluatatsiya qilinganligini ko'rish uchun ekspluatatsiya qilingan dasturni yana bir joyga to'plash kitobda keltirilgan.

Kengaytirilgan kamuflyaj
Hacker dasturdan foydalanayotganda uning IP-manzili jurnalga yozilishi mumkin. Kitobda uning IP-manzili aniqlanmasligi uchun jurnal fayllarini kamuflyaj qilish ko'rsatilgan. Qachon IP-manzil yashiringan, bu IP-manzilni soxtalashtirish deb ataladi.

Butun infratuzilma
Kirishni aniqlash tizimlari va kirishni oldini olish tizimlaridan foydalanish ekspluatatsiya xavfidan qochishga yordam beradi. Hatto xavfsizlik devorlari va marshrutizatorlarda ham buzilish dalillarini ko'rsatadigan jurnal fayllari mavjud. Chiquvchi TCP ulanishlarini qayta ishlash mumkin emasligiga ishonch hosil qilish - bu topishni cheklashning bir usuli. Kitobda TCP ulanishlarini qanday ishlatishni ko'rsatib o'tilgan, shunda aniqlanmasdan borish osonroq bo'ladi.

Yuk ko'tarish kontrabandasi
Dasturlardan foydalanish uchun qobiq kodidan foydalanganda, uni kirishni aniqlash tizimlari ushlab turishi mumkin. Odatda tajovuzni aniqlash tizimi allaqachon yozilgan va ular ichida sezilarli qobiq kodi bo'lgan dasturlarni ishga tushiradi. Aksariyat ekspluatatsiya dasturlari ushlanib qoladi, chunki haqiqiy xakerlar ulardan foydalanmayapti. Shell kodini yashirish usullari mavjud, shuning uchun uni aniqlash qiyinroq bo'lishi mumkin. Shell kodini qanday yashirishga oid bir nechta misollar kitobda keltirilgan.

Bufer cheklovlari
Ba'zida buferlarga cheklovlar qo'yiladi, shunda zaifliklardan foydalanib bo'lmaydi. Kitobda bufer cheklovlaridan qanday o'tishni tasvirlaydigan bir necha usullar mavjud.

Qattiqlashishga qarshi choralar
Ushbu kitobda topilgan ekspluatatsiya azaldan mavjud edi. Ushbu kitobda tasvirlangan zaifliklardan qanday foydalanishni o'ylab topishdan oldin xakerlar biroz vaqt talab qildilar. Xotiradagi buzilish, boshqaruvni o'zgartirish va qobiq kodidan foydalanish ekspluatatsiya qilishning eng oson uchta bosqichi.

Bu stakka va uning tarkibiy qismlariga misol.

Amalga oshirilmaydigan to'plam
Ko'pgina dasturlar har qanday bajarish uchun stekdan foydalanmaydi. Bitta mudofaa - bu dasturni ekspluatatsiya qilishda bufer to'lib toshib ketmasligi uchun stekni bajarib bo'lmaydigan qilib qo'yishdir. Ushbu himoya dasturda shellcode-dan foydalanishni to'xtatish uchun juda samarali. Biroq, kitobda ko'rsatilgan va tavsiflangan bajarilmaydigan to'plamdan foydalanishning bir yo'li mavjud.

Tasodifiy birikma maydoni
Randomize stek - bu xaker amalga oshirgan qobiq kodining qaerdaligini ayta olmasligi uchun ishlatiladigan qarshi choralarning bir turi. Bu stek ichidagi xotira tartibini tasodifiy qiladi. Yana bir bor, kitobdagi ba'zi misollar bilan ushbu qarshi choradan o'tishning bir usuli ham mavjud.

0x700 kriptologiya

Kriptologiya - bu shifrlar yordamida yashirincha muloqot qilish, kriptanaliz esa bu kabi maxfiy aloqalarni buzish yoki ochish jarayonidir. Ushbu bobda kriptologiya nazariyasi, shu jumladan Klod Shannon va so'zsiz xavfsizlikni o'z ichiga olgan tushunchalar, bir martalik tagliklar, kvant kalitlarini taqsimlash va hisoblash xavfsizligi.

Xabarlarni shifrlash va parolini hal qilish uchun bir xil tugmachadan foydalanish nosimmetrik shifrlashdir. Asimmetrik shifrlash turli xil tugmachalardan (ochiq va shaxsiy) foydalanishni o'z ichiga oladi. Ushbu bobda har ikkala shifrlashning ba'zi bir misollari keltirilgan va ulardan qanday foydalanish kerak.

Shifrlash jarayonida ochiq va yopiq kalit qanday ishlatilishiga misol.

Shifrlash - bu shifrlash algoritmi. Nosimmetrik shifr va assimetrik shifrdan foydalanishni birlashtirish gibrid shifr deb ataladi. Shifrlarga hujum qilish va ba'zi bir shifrlash usullaridan o'tish usullari kitobda ko'rsatilgan va tasvirlangan.

Shuningdek, bobda shifrlangan parollarni aniqlash usullari, shu jumladan qo'pol hujumlar va hash-qidiruv usullari ko'rsatilgan. Shuningdek, u simsiz 802.11b (Wi-fi ) va simli ekvivalent maxfiylik (WEP) shifrlash.

Shuningdek qarang

Adabiyotlar

  1. ^ "Kitoblarni ko'rib chiqish: Hacking". 25 Iyul 2004. Arxivlangan asl nusxasi 2004 yil 25 iyulda. Olingan 26 iyul 2018.
  2. ^ Shefer, Ed. "Hacking: ekspluatatsiya san'ati, 2-nashr: Linux jurnali". Linux jurnali. Olingan 26 iyul 2018.

Boshqa manbalar