!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/usr/share/doc/syslinux-3.11/sample/   drwxr-xr-x
Free 50.93 GB of 127.8 GB (39.85%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     filetest.c (2.36 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#include <com32.h>
#include <stdarg.h>

#define NULL ((void *)0)
int printf(const char *, ...);
int putchar(int);

static inline void memset(void *buf, int ch, unsigned int len)
{
  asm volatile("cld; rep; stosb"
               : "+D" (buf), "+c" (len) : "a" (ch) : "memory");
}

static void strcpy(char *dst, const char *src)
{
  while ( *src )
    *dst++ = *src++;

  *dst = '\0';
}

static void printregs(const com32sys_t *r)
{
  printf("eflags = %08x  ds = %04x  es = %04x  fs = %04x  gs = %04x\n"
     "eax = %08x  ebx = %08x  ecx = %08x  edx = %08x\n"
     "ebp = %08x  esi = %08x  edi = %08x  esp = %08x\n",
     r->eflags.l, r->ds, r->es, r->fs, r->gs,
     r->eax.l, r->ebx.l, r->ecx.l, r->edx.l,
     r->ebp.l, r->esi.l, r->edi.l, r->_unused.l);
}

int __start(void)
{
  unsigned int ax,cx,si,t;
  com32sys_t  inreg,outreg;
  char *p;
  
  /* Test null system call */
  inreg.eflags.l = 0xffffffff;
  inreg.eax.l = 0x11110000;
  inreg.ecx.l = 0x22222222;
  inreg.edx.l = 0x33333333;
  inreg.ebx.l = 0x44444444;
  inreg.ebp.l = 0x55555555;
  inreg.esi.l = 0x66666666;
  inreg.edi.l = 0x77777777;
  inreg.ds = 0xaaaa;
  inreg.es = 0xbbbb;
  inreg.fs = 0xcccc;
  inreg.gs = 0xdddd;
  printregs(&inreg);
  __com32.cs_intcall(0x22, &inreg, &outreg);
  printregs(&outreg);
  printf("----\n");

  memset(&inreg, 0, sizeof inreg);
  memset(&outreg, 0, sizeof outreg);
  strcpy(__com32.cs_bounce, "test.txt");
  inreg.eax.w[0] = 0x0006;  // Open file
  inreg.esi.w[0] = OFFS(__com32.cs_bounce);
  inreg.es = SEG(__com32.cs_bounce);
  printregs(&inreg);
  __com32.cs_intcall(0x22, &inreg, &outreg);
  printregs(&outreg);
  printf("----\n");
  
  si = outreg.esi.w[0];        /* File handle */
  cx = outreg.ecx.w[0];        /* Block size */
  ax = outreg.eax.l;        /* File length */

  while ( si ) {
    /* We can only read 64K per call */
    t = ( ax > 65536 ) ? 65536/cx : (ax+cx-1)/cx;
    
    memset(&inreg, 0, sizeof inreg);
    inreg.esi.w[0] = si;
    inreg.ecx.w[0] = t;        /* Block count */
    inreg.eax.w[0] = 0x0007;  // Read file
    inreg.ebx.w[0] = OFFS(__com32.cs_bounce);
    inreg.es = SEG(__com32.cs_bounce);
    printregs(&inreg);
    __com32.cs_intcall(0x22, &inreg, &outreg);
    printregs(&outreg);
    printf("----\n");
    si = outreg.esi.w[0];

    /* Print the buffer */
    t = (ax < 65536) ? ax : 65536;
    p = __com32.cs_bounce;
    while ( t ) {
      putchar(*p++);
      t--;
      ax--;
    }
  }

  return 0;
}

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0145 ]--