Current File : //usr/local/scripts/forwarder.pl
#!/usr/local/cpanel/3rdparty/bin/perl

#BEGIN { unshift @INC, '/usr/local/cpanel'; }
use lib '/usr/local/share/perl5';

#use strict;

use Cpanel::SafetyBits ();
use Cpanel::AcctUtils  ();
use Cpanel::PublicAPI ();
use Cpanel::LiveAPI ();
use MIME::Lite;


$server = `hostname`;
chomp($server);

open(FD,"</usr/local/scripts/forwarders");
@lista = <FD>;
close(FD);


foreach $linha ( @lista ) {
	chomp($linha);

        @injected = `grep -i $linha /etc/valiases/*`;


foreach $l ( @injected ) {


	chomp($l);

	print $l."\n";

	$badguy = $linha;

	(undef,$conta,undef) = split ( /:/,$l);

	($user,$domain) = split (/\@/,$conta);
	($bguser,$bgdomain) = split (/\@/,$badguy);
	$bguser =~ s/^\s+//;
	
	my $owner = Cpanel::AcctUtils::getdomainowner( $domain, { 'default' => '' } );
	if ( !$owner ) {
	    die "Cannot find the owner of $domain, try rebuilding /etc/userdomains first with /usr/local/cpanel/scripts/updateuserdomains";
	}
	my $pubapi = Cpanel::PublicAPI->new( 'usessl' => '0');
	my $res = $pubapi->whm_api('domainuserdata', "domain=$domain");
	my $owner = $res->{'data'}->{'userdata'}->{'owner'};
	my $fuser = $res->{'data'}->{'userdata'}->{'user'};
	my $contacto = $res->{'data'}->{'userdata'}->{'serveradmin'};
	my $homedir = $res->{'data'}->{'userdata'}->{'homedir'};
	if ( !$homedir ) {
		die "Cannot find the owner of $domain";
	}

	print "$conta - $badguy \n";

	$cmd = "cpapi2 --user=$fuser Email delforward email=$user%40$domain emaildest=$bguser%40$bgdomain";
	system($cmd);

	$msg = "";

		$msg = "Servidor gerido $server -  Cliente: $fuser endereco indicado na conta: $contacto <br><br>";

	$msg = $msg . "Estimado(a) Cliente<br><br>Vimos por este meio notificar que foi detectada a presen&ccedil;a de um forward/encaminhamento aparentemente injectado por terceiros na conta de email $conta que permite aos mesmos receberem uma c&oacute;pia de todas as mensagens recebidas nessa conta. <br><br>";
	$msg = $msg . "O encaminhamento malicioso ( $badguy ) foi entretanto removido de forma a mitigar a situa&ccedil;&atilde;o .<br><br>";
	$msg = $msg . "Este tipo de ac&ccedil;&atilde;o &eacute; conseguido atrav&eacute;s do acesso indevido a contas de email por terceiros, usando as credenciais v&aacute;lidas das mesmas. Essas credenciais s&atilde;o obtidas na esmagadora maioria dos casos atrav&eacute;s de trojans/virus/keyloggers/etc instalados nos dispositivos onde as contas s&atilde;o acedidas. <br><br>";
	$msg = $msg . "Outra forma poder&aacute; ser atrav&eacute;s do uso de redes WiFi n&atilde;o encriptadas ( normalmente p&uacute;blicas e sem password ) e com protocolos de mail sem TLS/SSL, facilitando o \"sniffing\" desses dados por terceiros.<br><br>";
	$msg = $msg . "Dever&atilde;o alterar a password da conta em quest&atilde;o com urg&ecirc;ncia.<br><br>";
	$msg = $msg . "Ap&oacute;s essa ac&ccedil;&atilde;o tomada sugerimos que verifiquem os pontos de acesso &agrave; referida conta para a presen&ccedil;a de v&iacute;rus, trojans, keyloggers, etc, que possam estar a facilitar as credenciais  a terceiros.<br><br>";


        $to = "abusecc\@ptisp.pt";

        $msg = MIME::Lite->new(
                From     =>'Malware/intrusion detector <message@ptisp.pt>',
                To       =>$to,
	        Subject  =>"Servidor $server - Conta $conta - Forwarder/encaminhamento suspeito detectado ",
                Data     =>$msg,
                Type     =>'text/html'
            );

        $user = "message\@ptisp.systems";
        $pass = "geicu7ohy4utaiceiN6eGe";

        $msg->send('smtp', 'mta.ptisp.systems', AuthUser=>$user, AuthPass=>$pass, Timeout=>60,);
        }

}