[ Avaa Bypassed ]




Upload:

Command:

www-data@18.218.26.136: ~ $
# ping-monitor.pl
# Ping some host
# Contains code ripped from Net::Ping by Russell Mosemann

use Socket;

sub get_ping_status
{
my ($m) = @_;
my $wait = defined($m->{'wait'}) ? $m->{'wait'} : 5;
my $ip = &to_ipaddress($m->{'host'}) ||
	 &to_ip6address($m->{'host'});
return { 'up' => 0 } if (!$ip);
my $ipv6 = &check_ip6address($m->{'host'}) ||
	      &to_ip6address($m->{'host'}) &&
	      !&to_ipaddress($m->{'host'});
if ($config{'pinger'} || $ipv6) {
	# Call a ping command if configured, or if using IPv6 since the built-
	# in code doesn't support it yet
	my $cmd;
	my $auto_pinger = $config{'pinger'} eq "linux" || !$config{'pinger'};
	if ($auto_pinger && $gconfig{'os_type'} =~ /-linux$/) {
		# Use linux command
		$cmd = ($ipv6 ? "ping6" : "ping")." -c 1 -w $wait";
		}
	elsif ($auto_pinger && $gconfig{'os_type'} eq 'freebsd') {
		# Use FreeBSD command
		$cmd = ($ipv6 ? "ping6" : "ping")." -c 1 -W ".($wait * 1000);
		}
	elsif ($auto_pinger) {
		# Don't know command for this OS
		return { 'up' => - 1 };
		}
	else {
		$cmd = $config{'pinger'};
		}
	my $rv;
	my $out;
	eval {
		local $sig{'ALRM'} = sub { die "timeout" };
		alarm($wait + 1);
		$out = &backquote_command("$cmd ".quotemeta($m->{'host'}).
					  " 2>&1 </dev/null");
		$rv = $?;
		alarm(0);
		};
	if ($@ =~ /timeout/) {
		return { 'up' => 0, 'desc' => &text('ping_timeout', $wait) };
		}
	elsif ($@) {
		return { 'up' => 0, 'desc' => "$@" };
		}
	elsif ($rv) {
		my @l = split(/\r?\n/, $out);
		return { 'up' => 0, 'desc' => &html_escape($l[$#l]) };
		}
	else {
		return { 'up' => 1 };
		}
	}
else {
	# Use builtin code
	if (!&to_ipaddress($ip)) {
		return { 'up' => 0, 'desc' => $text{'ping_resolv'} };
		}
	my $rv = &ping_icmp(inet_aton($ip), $wait);
	return { 'up' => $rv ? 1 : 0 };
	}
}

sub show_ping_dialog
{
my ($m) = @_;
print &ui_table_row($text{'ping_host'},
	&ui_textbox("host", $m->{'host'}, 50), 3);

print &ui_table_row($text{'ping_wait'},
	&ui_textbox("wait", defined($m->{'wait'}) ? $m->{'wait'} : 5, 6).
	" ".$text{'oldfile_secs'});
}

sub parse_ping_dialog
{
my ($m) = @_;
#$config{'ping_cmd'} || &error($text{'ping_econfig'});
&to_ipaddress($in{'host'}) || &to_ip6address($in{'host'}) ||
	&error($text{'ping_ehost'});
$in{'wait'} =~ /^(\d*\.)?\d+$/ || &error($text{'ping_ewait'});
$m->{'host'} = $in{'host'};
$m->{'wait'} = $in{'wait'};
}

sub ping_icmp
{
    my ($ip,                # Packed IP number of the host
        $timeout            # Seconds after which ping times out
        ) = @_;

    my $ICMP_ECHOREPLY = 0; # ICMP packet types
    my $ICMP_ECHO = 8;
    my $icmp_struct = "C2 S3 A";  # Structure of a minimal ICMP packet
    my $subcode = 0;        # No ICMP subcode for ECHO and ECHOREPLY
    my $flags = 0;          # No special flags when opening a socket
    my $port = 0;           # No port with ICMP

    my ($saddr,             # sockaddr_in with port and ip
        $checksum,          # Checksum of ICMP packet
        $msg,               # ICMP packet to send
        $len_msg,           # Length of $msg
        $rbits,             # Read bits, filehandles for reading
        $nfound,            # Number of ready filehandles found
        $finish_time,       # Time ping should be finished
        $done,              # set to 1 when we are done
        $ret,               # Return value
        $recv_msg,          # Received message including IP header
        $from_saddr,        # sockaddr_in of sender
        $from_port,         # Port packet was sent from
        $from_ip,           # Packed IP of sender
        $from_type,         # ICMP type
        $from_subcode,      # ICMP subcode
        $from_chk,          # ICMP packet checksum
        $from_pid,          # ICMP packet id
        $from_seq,          # ICMP packet sequence
        $from_msg,           # ICMP message
	$data,
	$cnt,
	$data_size
        );

    # Construct packet data string
    $data_size = 0;
    for ($cnt = 0; $cnt < $data_size; $cnt++)
    {
        $data .= chr($cnt % 256);
    }

    my $proto_num = (getprotobyname('icmp'))[2];
    socket(PSOCK, PF_INET, SOCK_RAW, $proto_num);

    $ping_seq = ($ping_seq + 1) % 65536; # Increment sequence
    $checksum = 0;                          # No checksum for starters
    $msg = pack($icmp_struct . $data_size, $ICMP_ECHO, $subcode,
                $checksum, $$, $ping_seq, $data);
    $checksum = checksum($msg);
    $msg = pack($icmp_struct . $data_size, $ICMP_ECHO, $subcode,
                $checksum, $$, $ping_seq, $data);
    $len_msg = length($msg);
    $saddr = pack_sockaddr_in($port, $ip);
    send(PSOCK, $msg, $flags, $saddr); # Send the message

    $rbits = "";
    vec($rbits, fileno(PSOCK), 1) = 1;
    $ret = 0;
    $done = 0;
    $finish_time = time() + $timeout;       # Must be done by this time
    while (!$done && $timeout > 0)          # Keep trying if we have time
    {
        $nfound = select($rbits, undef, undef, $timeout); # Wait for packet
        $timeout = $finish_time - time();   # Get remaining time
        if (!defined($nfound))              # Hmm, a strange error
        {
	    # Probably an interrupted system call, so try again
            $ret = undef;
            #$done = 1;
        }
        elsif ($nfound)                     # Got a packet from somewhere
        {
            $recv_msg = "";
            $from_saddr = recv(PSOCK, $recv_msg, 1500, $flags);
	    if ($from_saddr) {
		    ($from_port, $from_ip) = unpack_sockaddr_in($from_saddr);
		    ($from_type, $from_subcode, $from_chk,
		     $from_pid, $from_seq, $from_msg) =
			unpack($icmp_struct . $data_size,
			       substr($recv_msg, length($recv_msg) - $len_msg,
				      $len_msg));
		    if (($from_type == $ICMP_ECHOREPLY) &&
			($from_ip eq $ip) &&
			($from_pid == $$) && # Does the packet check out?
			($from_seq == $ping_seq))
		    {
			$ret = 1;                   # It's a winner
			$done = 1;
		    }
	     } else {
		    # Packet not actually received
		    $ret = undef;
	     }
        }
        else                                # Oops, timed out
        {
            $done = 1;
        }
    }
    close(PSOCK);
    return($ret)
}

# Description:  Do a checksum on the message.  Basically sum all of
# the short words and fold the high order bits into the low order bits.

sub checksum
{
    my ($msg            # The message to checksum
        ) = @_;
    my ($len_msg,       # Length of the message
        $num_short,     # The number of short words in the message
        $short,         # One short word
        $chk            # The checksum
        );

    $len_msg = length($msg);
    $num_short = $len_msg / 2;
    $chk = 0;
    foreach $short (unpack("S$num_short", $msg))
    {
        $chk += $short;
    }                                           # Add the odd byte in
    $chk += unpack("C", substr($msg, $len_msg - 1, 1)) if $len_msg % 2;
    $chk = ($chk >> 16) + ($chk & 0xffff);      # Fold high into low
    return(~(($chk >> 16) + $chk) & 0xffff);    # Again and complement
}



Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
services Folder 0755
CHANGELOG File 6.42 KB 0644
WEBMIN-STATUS-MIB.txt File 1.53 KB 0644
acl_security.pl File 508 B 0755
alive-monitor.pl File 241 B 0755
apache-monitor.pl File 697 B 0755
backup_config.pl File 801 B 0755
bind8-monitor.pl File 710 B 0755
cfengine-monitor.pl File 415 B 0755
cgi_args.pl File 321 B 0755
change-monitor.pl File 791 B 0755
config File 182 B 0644
config-ALL-linux File 210 B 0644
config-debian-linux File 225 B 0644
config-debian-linux-3.0 File 216 B 0644
config-debian-linux-3.1-ALL File 216 B 0644
config-freebsd File 195 B 0644
config-hpux File 182 B 0644
config-netbsd File 182 B 0644
config-solaris File 182 B 0644
config-syno-linux File 197 B 0644
config.info File 1.09 KB 0644
config.info.ca File 1.31 KB 0644
config.info.cs File 802 B 0644
config.info.de File 1.28 KB 0644
config.info.es File 659 B 0644
config.info.fa File 994 B 0644
config.info.fr File 1.42 KB 0644
config.info.hu File 0 B 0644
config.info.it File 0 B 0644
config.info.ja File 1.04 KB 0644
config.info.ko File 764 B 0644
config.info.nl File 984 B 0644
config.info.no File 962 B 0644
config.info.pl File 1021 B 0644
config.info.ru File 486 B 0644
config.info.sv File 99 B 0644
config.info.tr File 567 B 0644
config.info.uk File 479 B 0644
config.info.zh File 86 B 0644
config.info.zh_TW File 229 B 0644
consume-monitor.pl File 1.89 KB 0755
defaultacl File 15 B 0644
delete_mons.cgi File 1.03 KB 0755
delete_tmpls.cgi File 712 B 0755
dhcpd-monitor.pl File 616 B 0755
dns-monitor.pl File 1.3 KB 0755
dnsadmin-monitor.pl File 667 B 0755
dovecot-monitor.pl File 302 B 0755
du-monitor.pl File 790 B 0644
edit_mon.cgi File 9.61 KB 0755
edit_sched.cgi File 3.24 KB 0755
edit_tmpl.cgi File 1.81 KB 0755
exec-monitor.pl File 1.52 KB 0755
fail2ban-monitor.pl File 516 B 0755
feedback_files.pl File 175 B 0755
file-monitor.pl File 3.35 KB 0755
ftp-monitor.pl File 3.05 KB 0755
hostsentry-monitor.pl File 521 B 0755
http-monitor.pl File 4.13 KB 0755
iface-monitor.pl File 908 B 0755
index.cgi File 4.77 KB 0755
inetd-monitor.pl File 399 B 0755
init-monitor.pl File 576 B 0644
jabber-monitor.pl File 667 B 0755
ldap-monitor.pl File 1.51 KB 0755
list_tmpls.cgi File 1.05 KB 0755
load-monitor.pl File 1.1 KB 0755
log_parser.pl File 673 B 0755
mailq-monitor.pl File 1.3 KB 0755
memory-monitor.pl File 1.55 KB 0755
module.info File 168 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 128 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 167 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 198 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 247 B 0644
module.info.ca File 118 B 0644
module.info.ca.auto File 14 B 0644
module.info.cs File 33 B 0644
module.info.cs.auto File 105 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 120 B 0644
module.info.de File 121 B 0644
module.info.de.auto File 15 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 274 B 0644
module.info.es File 40 B 0644
module.info.es.auto File 95 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 132 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 185 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 134 B 0644
module.info.fr File 42 B 0644
module.info.fr.auto File 107 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 155 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 134 B 0644
module.info.hu File 37 B 0644
module.info.hu.auto File 99 B 0644
module.info.it File 39 B 0644
module.info.it.auto File 96 B 0644
module.info.ja File 57 B 0644
module.info.ja.auto File 130 B 0644
module.info.ko File 36 B 0644
module.info.ko.auto File 92 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 131 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 136 B 0644
module.info.ms File 119 B 0644
module.info.ms.auto File 15 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 146 B 0644
module.info.nl File 33 B 0644
module.info.nl.auto File 97 B 0644
module.info.no File 32 B 0644
module.info.no.auto File 96 B 0644
module.info.pl File 97 B 0644
module.info.pl.auto File 15 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 133 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 142 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 153 B 0644
module.info.ru File 56 B 0644
module.info.ru.auto File 165 B 0644
module.info.sk File 33 B 0644
module.info.sk.auto File 106 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 135 B 0644
module.info.sv File 33 B 0644
module.info.sv.auto File 92 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 250 B 0644
module.info.tr File 32 B 0644
module.info.tr.auto File 105 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 208 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 174 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 182 B 0644
module.info.zh File 36 B 0644
module.info.zh.auto File 76 B 0644
module.info.zh_TW File 40 B 0644
module.info.zh_TW.auto File 82 B 0644
mon-monitor.pl File 431 B 0755
monitor.pl File 14.59 KB 0755
mysql-monitor.pl File 450 B 0755
nfs-monitor.pl File 394 B 0755
nut-monitor.pl File 2.13 KB 0755
oldfile-monitor.pl File 864 B 0755
ping-monitor.pl File 6.84 KB 0755
portsentry-monitor.pl File 535 B 0755
postfix-monitor.pl File 509 B 0755
postgresql-monitor.pl File 480 B 0755
prefs.info File 58 B 0644
proc-monitor.pl File 1.7 KB 0755
proftpd-monitor.pl File 842 B 0755
qmailadmin-monitor.pl File 424 B 0755
query-monitor.pl File 2.89 KB 0755
raid-monitor.pl File 1.66 KB 0755
refresh.cgi File 550 B 0755
rssh-monitor.pl File 2.63 KB 0755
safeacl File 15 B 0644
samba-monitor.pl File 453 B 0755
save_mon.cgi File 3.23 KB 0755
save_sched.cgi File 2.44 KB 0755
save_tmpl.cgi File 1.25 KB 0755
sendmail-monitor.pl File 682 B 0755
sensors-monitor.pl File 3.9 KB 0755
slapd-monitor.pl File 606 B 0755
space-monitor.pl File 3.09 KB 0755
squid-monitor.pl File 881 B 0755
sshd-monitor.pl File 817 B 0755
sslcert-monitor.pl File 4.11 KB 0755
status-lib.pl File 17.62 KB 0755
status_monitor_api.pl File 593 B 0755
system_info.pl File 1.48 KB 0644
tcp-monitor.pl File 1.23 KB 0755
traffic-monitor.pl File 2.4 KB 0755
uninstall.pl File 434 B 0755
usermin-monitor.pl File 496 B 0755
webmin-monitor.pl File 363 B 0755
xinetd-monitor.pl File 491 B 0755