!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/acl/   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:     useradmin_update.pl (2.75 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |

do "acl-lib.pl";

# useradmin_create_user(&details)
# Create a new webmin user in the group
sub useradmin_create_user
{
return if (!$config{'sync_create'});
my $group = &get_group($config{'sync_group'});
return if (!$group);
my $clash = &get_user($_[0]->{'user'}) || &get_group($_[0]->{'user'});
return if ($clash);
return if ($_[0]->{'user'} !~ /^[A-z0-9\-\_\.]+$/);
my $user = { 'name' => $_[0]->{'user'},
         'pass' => $config{'sync_unix'} ? 'x' : $_[0]->{'pass'},
         'sync' => 1,
         'modules' => $group->{'modules'} };
&create_user($user);
push(@{$group->{'members'}}, $user->{'name'});
&modify_group($group->{'name'}, $group);

foreach my $m (@{$group->{'modules'}}, "") {
    my %groupacl;
    unlink("$config_directory/$m/$user->{'name'}.acl");
    if (&read_file("$config_directory/$m/$group->{'name'}.gacl",
               \%groupacl)) {
        &write_file("$config_directory/$m/$user->{'name'}.acl",
                \%groupacl);
        }
    }
&reload_miniserv();
}

# useradmin_delete_user(&details)
# Delete this webmin user if in sync
sub useradmin_delete_user
{
return if (!$config{'sync_delete'});
my $u = &get_user($_[0]->{'user'});
if ($u) {
    &delete_user($u->{'name'});
    &reload_miniserv();
    }
foreach $g (&list_groups()) {
    my @mems = @{$g->{'members'}};
    my $i = &indexof($_[0]->{'user'}, @mems);
    if ($i >= 0) {
        splice(@mems, $i, 1);
        $g->{'members'} = \@mems;
        &modify_group($g->{'name'}, $g);
        }
    }
}

# useradmin_modify_user(&details)
# Update this users password if in sync
sub useradmin_modify_user
{
return if ($_[0]->{'passmode'} == 4 && $_[0]->{'olduser'} eq $_[0]->{'user'});
my $u = &get_user($_[0]->{'olduser'});
if ($u && $u->{'sync'}) {
    if ($_[0]->{'user'} ne $_[0]->{'olduser'}) {
        # New name might clash (or be invalid)
        my $clash = &get_user($_[0]->{'user'}) ||
                   &get_group($_[0]->{'user'});
        return if ($clash);
        return if ($_[0]->{'user'} !~ /^[A-z0-9\-\_\.]+$/);
        }
    $u->{'name'} = $_[0]->{'user'};
    if ($u->{'pass'} ne 'x') {
        $u->{'pass'} = $_[0]->{'passmode'} == 3 ?
           &encrypt_password($_[0]->{'plainpass'}) :
           $_[0]->{'pass'};
        }
    &modify_user($_[0]->{'olduser'}, $u);
    &reload_miniserv();
    }


if ($_[0]->{'user'} ne $_[0]->{'olduser'}) {
    # Check other users' acl module acls
    foreach my $u (&list_users()) {
        my %uaccess = &get_module_acl($u->{'name'});
        my @au = split(/\s+/, $uaccess{'users'});
        my $idx = &indexof($_[0]->{'olduser'}, @au);
        if ($idx != -1) {
            $au[$idx] = $_[0]->{'user'};
            $uaccess{'users'} = join(" ", @au);
            &save_module_acl(\%uaccess, $u->{'name'});
            }
        }

    # Rename the user in his group
    foreach my $g (&list_groups()) {
        my @mems = @{$g->{'members'}};
        my $i = &indexof($_[0]->{'olduser'}, @mems);
        if ($i >= 0) {
            $mems[$i] = $_[0]->{'user'};
            $g->{'members'} = \@mems;
            &modify_group($g->{'name'}, $g);
            }
        }
    }
}

1;


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