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

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

$DEBUG = 0;

$filetolocate = '/root/.accesshash';

if (!(-f $filetolocate)) {

        $cmd = "/usr/local/cpanel/bin/realmkaccesshash";
        system($cmd);
        $cmd = "chmod 660 /root/.accesshash";
        system($cmd);
}

@cenas = `grep \"/var/tmp/\" /var/spool/cron/*`;

foreach $linha ( @cenas ){

	chomp($linha);

	($tmp,$omal) = split(/\:/,$linha);
	(undef,undef,undef,undef,$username) = split(/\//,$tmp);

	print "Account $username found compromised. Clearing malicious cronjobs ... \n" if $DEBUG ;

	$cmd = "crontab -u $username -l | grep -v '/var/tmp/' | crontab -u $username -";
	system($cmd);

        print "Terminando processos do user $username \n" if $DEBUG ;
        $cmd = "pkill -9 -u $username";
        system($cmd);

	print "Scheduling malware scan ...\n" if $DEBUG ;

	$cmd = " imunify360-agent malware on-demand start --path /home/$username";
	system($cmd);


        print "Abrindo ticket em Abuse ...  \n" if $DEBUG ;

        print "Obtendo dominio base\n" if $DEBUG;
        $tmp = `grep $username /etc/userdatadomains|grep main`;
        chomp($tmp);
        ($conta,$undef) = split (/:/,$tmp);

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

	$msg = "";

	my $owner = Cpanel::AcctUtils::getdomainowner( $conta, { 'default' => '' } );
	if ( !$owner ) {
	    die "Cannot find the owner of $owner, 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=$conta");
	my $owner = $res->{'data'}->{'userdata'}->{'owner'};
	my $fuser = $res->{'data'}->{'userdata'}->{'user'};
	my $contacto = $res->{'data'}->{'userdata'}->{'serveradmin'};
	my $homedir = $res->{'data'}->{'userdata'}->{'homedir'};


	$msg = "";

	if (($owner ne "root") and ($owner ne "ptispapi")) {
		$msg = "ATEN&Ccedil;&Atilde;O !!! - ENVIAR PARA CONTA DE REVENDA  - <strong> $owner </strong> - servidor $server ( hint: $contacto ) !!!! <BR><BR>";
	} else {
		$msg = "Conta nao pertence a revenda. Cliente: $fuser endereco indicado na conta: $contacto <br><br>";
	}


	$msg = $msg . "Estimado(a) Cliente,<br><br>Detectamos a presen&ccedil;a de ficheiros maliciosos e/ou c&oacute;digo injectado na conta <b>$conta</b> ( user $username / servidor $server ) que estariam a ser usados para ataques ( DoS/Bruteforce ) ou envios massivos de SPAM.<br><br>";
	$msg = $msg . "Para mitigar a situa&ccedil;&atilde;o removemos os referidos scripts mas dever&aacute; verificar a conta em quest&atilde;o para a exist&ecirc;ncia de outros ficheiros que possam ter sido injectados com c&oacute;digo malicioso. Sugerimos ainda que efectuem um update/upgrade a todo o software usado no referido alojamento dado este ser um comum vector para este tipo de ataques.<br><br>";
	$msg = $msg . "De referir que esta pr&aacute;tica pode dar origem a bloqueio dos nossos endere&ccedil;os IP em diversas listas o que resultar&aacute; em dificuldades no envio de mensagens para si e para outros clientes.<br><br><br><br>";
	$msg = $msg . "Evidencias removidas: <br> Linha de Crontab: $omal<br><br>";

        $message2 = "IMPORTANTE !!! Servidor $server - Conta $conta ( $username ) comprometida com injec&ccedil;&atilde;o de bin&aacute;rios maliciosos a efectuar ataques DoS - Processos terminados e scan iniciado - Verificar !";
        $message3 = "$server - Compromised account $conta ( $username ) - /var/tmp content in cronjob ";

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

	$msg = MIME::Lite->new(
	        From     =>'Malicious script notifier <message@ptisp.pt>',
	        To       =>$to,
	        Subject  =>"Conta $conta - Scripts maliciosos detectados ",
	        Data     =>$msg,
	        Type     =>'text/html'
	    );

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

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


        my $uri = 'https://hooks.slack.com/services/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';
        my $color = "danger";
	my $json='{ "channel": "pt-team-infranotifications-ptisp", "color":"'.$color.'" , "text": "'.$message3.'"}';
        my $req = HTTP::Request->new( 'POST', $uri );
        $req->header( 'Content-Type' => 'application/json' );
        $req->content( $json );

        my $lwp = LWP::UserAgent->new;
        #$lwp->request( $req );



	print "Done. \n\n" if $DEBUG ;
}

@cenas = `grep \"/wp-content/upload\" /var/spool/cron/* | grep -v vossamkt2020 | grep -v madibel`;

foreach $linha ( @cenas ){

        chomp($linha);

        ($tmp,$omal) = split(/\:/,$linha);
        (undef,undef,undef,undef,$username) = split(/\//,$tmp);

        print "Account $username found compromised. Clearing malicious cronjobs ... \n" if $DEBUG ;

        $cmd = "crontab -u $username -l | grep -v '/wp-content/upload' | crontab -u $username -";
        system($cmd);

	print "Terminando processos do user $username \n" if $DEBUG ;
	$cmd = "pkill -9 -u $username";
	system($cmd);


	print "Abrindo ticket em Abuse ...  \n" if $DEBUG ;
	$msg = "";

        print "Obtendo dominio base\n" if $DEBUG;
        $tmp = `grep $username /etc/userdatadomains|grep main`;
        chomp($tmp);
        ($conta,$undef) = split (/:/,$tmp);


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


        $msg = "";

        my $owner = Cpanel::AcctUtils::getdomainowner( $conta, { 'default' => '' } );
        if ( !$owner ) {
            die "Cannot find the owner of $owner, 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=$conta");
        my $owner = $res->{'data'}->{'userdata'}->{'owner'};
        my $fuser = $res->{'data'}->{'userdata'}->{'user'};
        my $contacto = $res->{'data'}->{'userdata'}->{'serveradmin'};
        my $homedir = $res->{'data'}->{'userdata'}->{'homedir'};


        $msg = "";

        if (($owner ne "root") and ($owner ne "ptispapi")) {
                $msg = "ATEN&Ccedil;&Atilde;O !!! - ENVIAR PARA CONTA DE REVENDA  - <strong> $owner </strong> - servidor $server ( hint: $contacto ) !!!! <BR><BR>";
        } else {
                $msg = "Conta nao pertence a revenda. Cliente: $fuser endereco indicado na conta: $contacto <br><br>";
        }

        $msg = $msg . "Estimado(a) Cliente,<br><br>Detectamos a presen&ccedil;a de ficheiros maliciosos e/ou c&oacute;digo injectado na conta <b>$conta</b> ( user $username / servidor $server ) que estariam a ser usados para ataques ( DoS/Bruteforce ) ou envios massivos de SPAM.<br><br>";
        $msg = $msg . "Para mitigar a situa&ccedil;&atilde;o removemos os referidos scripts mas dever&aacute; verificar a conta em quest&atilde;o para a exist&ecirc;ncia de outros ficheiros que possam ter sido injectados com c&oacute;digo malicioso. Sugerimos ainda que efectuem um update/upgrade a todo o software usado no referido alojamento dado este ser um comum vector para este tipo de ataques.<br><br>";
        $msg = $msg . "De referir que esta pr&aacute;tica pode dar origem a bloqueio dos nossos endere&ccedil;os IP em diversas listas o que resultar&aacute; em dificuldades no envio de mensagens para si e para outros clientes.<br><br><br><br>";
        $msg = $msg . "Evidencias removidas: <br> Linha de Crontab: $omal<br><br>";

        $message2 = "IMPORTANTE !!! Servidor $server - Conta $conta ($username) comprometida com injec&ccedil;&atilde;o de bin&aacute;rios maliciosos a efectuar ataques DoS - Processos terminados e scan iniciado - Verificar !";
        $message3 = "$server - Compromised account $conta ( $username ) - wp-content/upload in cronjob ";

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

	$msg = MIME::Lite->new(
	        From     =>'Malware Notifier <message@ptisp.pt>',
	        To       =>$to,
	        Subject  =>"Conta $conta - Scripts maliciosos detectados ",
	        Data     =>$msg,
	        Type     =>'text/html'
	    );
        $user = "message\@ptisp.systems";
        $pass = "geicu7ohy4utaiceiN6eGe";

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

        my $uri = 'https://hooks.slack.com/services/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';
	my $color = "danger";
        my $json='{ "channel": "pt-team-infranotifications-ptisp", "color":"'.$color.'" , "text": "'.$message3.'"}';
	my $req = HTTP::Request->new( 'POST', $uri );
	$req->header( 'Content-Type' => 'application/json' );
	$req->content( $json );

	my $lwp = LWP::UserAgent->new;
	#$lwp->request( $req );

        print "Done. \n\n" if $DEBUG ;

}


@cenas = `grep \"python -c \\"import\" /var/spool/cron/*`;

foreach $linha ( @cenas ){

        chomp($linha);

        ($tmp,$omal) = split(/\:/,$linha);
        (undef,undef,undef,undef,$username) = split(/\//,$tmp);

        print "Account $username found compromised. Clearing malicious cronjobs ... \n" if $DEBUG ;

        $cmd = "crontab -u $username -l | grep -v 'python -c \"import\' | crontab -u $username -";
        system($cmd);

        print "Terminando processos do user $username \n" if $DEBUG ;
        $cmd = "pkill -9 -u $username";
        system($cmd);


        print "Abrindo ticket em Abuse ...  \n" if $DEBUG ;
        $message = "";

        print "Obtendo dominio base\n" if $DEBUG;
        $tmp = `grep $username /etc/userdatadomains|grep main`;
        chomp($tmp);
        ($conta,$undef) = split (/:/,$tmp);


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


        $msg = "";

        my $owner = Cpanel::AcctUtils::getdomainowner( $conta, { 'default' => '' } );
        if ( !$owner ) {
            die "Cannot find the owner of $owner, 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=$conta");
        my $owner = $res->{'data'}->{'userdata'}->{'owner'};
        my $fuser = $res->{'data'}->{'userdata'}->{'user'};
        my $contacto = $res->{'data'}->{'userdata'}->{'serveradmin'};
        my $homedir = $res->{'data'}->{'userdata'}->{'homedir'};


        $msg = "";

        if (($owner ne "root") and ($owner ne "ptispapi")) {
                $msg = "ATEN&Ccedil;&Atilde;O !!! - ENVIAR PARA CONTA DE REVENDA  - <strong> $owner </strong> - servidor $server ( hint: $contacto ) !!!! <BR><BR>";
        } else {
                $msg = "Conta nao pertence a revenda. Cliente: $fuser endereco indicado na conta: $contacto <br><br>";
        }


        $msg = $msg . "Estimado(a) Cliente,<br><br>Detectamos a presen&ccedil;a de ficheiros maliciosos e/ou c&oacute;digo injectado na conta <b>$conta</b> ( user $username / servidor $server ) que estariam a ser usados para ataques ( DoS/Bruteforce ) ou envios massivos de SPAM.<br><br>";
        $msg = $msg . "Para mitigar a situa&ccedil;&atilde;o removemos os referidos scripts mas dever&aacute; verificar a conta em quest&atilde;o para a exist&ecirc;ncia de outros ficheiros que possam ter sido injectados com c&oacute;digo malicioso. Sugerimos ainda que efectuem um update/upgrade a todo o software usado no referido alojamento dado este ser um comum vector para este tipo de ataques.<br><br>";
        $msg = $msg . "De referir que esta pr&aacute;tica pode dar origem a bloqueio dos nossos endere&ccedil;os IP em diversas listas o que resultar&aacute; em dificuldades no envio de mensagens para si e para outros clientes.<br><br><br><br>";
        $msg = $msg . "Evidencias removidas: <br> Linha de Crontab: $omal<br><br>";

	$message2 = "IMPORTANTE !!! Servidor $server - Conta $conta ( $username ) comprometida com injec&ccedil;&atilde;o de bin&aacute;rios maliciosos a efectuar ataques DoS - INTERVEN&Ccedil;&Atilde;O URGENTE !!";
        $message3 = "$server - Compromised account $conta ( $username ) - python -c --import  in cronjob ";

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

        $msg = MIME::Lite->new(
                From     =>'Malware Notifier <message@ptisp.pt>',
                To       =>$to,
	        Subject  =>"Conta $conta - Scripts maliciosos detectados ",
                Data     =>$msg,
                Type     =>'text/html'
            );

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

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

        my $uri = 'https://hooks.slack.com/services/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';
        my $color = "danger";
        my $json='{ "channel": "pt-team-infranotifications-ptisp", "color":"'.$color.'" , "text": "'.$message3.'"}';
        my $req = HTTP::Request->new( 'POST', $uri );
        $req->header( 'Content-Type' => 'application/json' );
        $req->content( $json );

        my $lwp = LWP::UserAgent->new;
        #$lwp->request( $req );

        print "Done. \n\n" if $DEBUG ;

}


@out = `ps aux|grep stealth | grep -v grep | awk {'print \$1 " " \$2'}`;

foreach $linha ( @out ) {
        chomp($linha);
        ($username, $pid ) = split (/ /,$linha);

        $usr = `ps -o user= -p $pid`;
        chomp($usr);
        $username = $usr;

	@source = `lsof -n -p $pid |awk {'print $9'} |grep home|grep -v pid `;
	foreach $li ( @source ){
		chomp($li);
		$li =~ s/ +/ /g;
		(undef,undef,undef,undef,undef,undef,undef,undef,$stu) = split (/ /,$li);
		if (-f $stu) {
			$cmd = "crontab -u $username -l | grep -v '$stu' | crontab -u $username -";
        		system($cmd);
		}
	}
        print "Terminando processos do user $username \n" if $DEBUG ;
        $cmd = "pkill -9 -u $username";
        system($cmd);


        print "Abrindo ticket em Abuse ...  \n" if $DEBUG ;
        $message = "";

        print "Obtendo dominio base\n" if $DEBUG;
        $tmp = `grep $username /etc/userdatadomains|grep main`;
        chomp($tmp);
        ($conta,$undef) = split (/:/,$tmp);


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


        $msg = "";

        my $owner = Cpanel::AcctUtils::getdomainowner( $conta, { 'default' => '' } );
        if ( !$owner ) {
            die "Cannot find the owner of $owner, 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=$conta");
        my $owner = $res->{'data'}->{'userdata'}->{'owner'};
        my $fuser = $res->{'data'}->{'userdata'}->{'user'};
        my $contacto = $res->{'data'}->{'userdata'}->{'serveradmin'};
        my $homedir = $res->{'data'}->{'userdata'}->{'homedir'};


        $msg = "";

        if (($owner ne "root") and ($owner ne "ptispapi")) {
                $msg = "ATEN&Ccedil;&Atilde;O !!! - ENVIAR PARA CONTA DE REVENDA  - <strong> $owner </strong> - servidor $server ( hint: $contacto ) !!!! <BR><BR>";
        } else {
                $msg = "Conta nao pertence a revenda. Cliente: $fuser endereco indicado na conta: $contacto <br><br>";
        }

	$msg = $msg . "<b>IMPORTANTE</b> - Os processos do user foram terminados e o binario injectado dever&aacute; ser o $stu . Confirmar, remover o mesmo e lan&ccedil;ar um scan &agrave; conta no IM360 <br><br>";

        $msg = $msg . "Estimado(a) Cliente,<br><br>Detectamos a presen&ccedil;a de ficheiros maliciosos e/ou c&oacute;digo injectado na conta <b>$conta</b> ( user $username / servidor $server ) que estariam a ser usados para ataques ( DoS/Bruteforce ) <br><br>";
        $msg = $msg . "Para mitigar a situa&ccedil;&atilde;o removemos os referidos scripts mas dever&aacute; verificar a conta em quest&atilde;o para a exist&ecirc;ncia de outros ficheiros que possam ter sido injectados com c&oacute;digo malicioso. Sugerimos ainda que efectuem um update/upgrade a todo o software usado no referido alojamento dado este ser um comum vector para este tipo de ataques.<br><br>";
        $msg = $msg . "De referir que esta pr&aacute;tica pode dar origem a bloqueio dos nossos endere&ccedil;os IP em diversas listas o que resultar&aacute; em dificuldades no envio de mensagens para si e para outros clientes.<br><br><br><br>";

	$message2 = "IMPORTANTE !!! Servidor $server - Conta $conta ( $username ) comprometida com injec&ccedil;&atilde;o de bin&aacute;rios maliciosos a efectuar ataques DoS - INTERVEN&Ccedil;&Atilde;O URGENTE !! ( Processos do user terminados mas o binario respons&aacute;vel ( provavelmente $stu ) n&atilde;o foi removido. Confirmar, remover o mesmo e lan&ccedil;ar um scan &agrave; conta no IM360 ( e enviar o ticket de abuse ao cliente )  ";
        $message3 = "$server - Compromised account $conta ( $username ) - stealth process running ";

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

        $msg = MIME::Lite->new(
                From     =>'Malware Notifier <message@ptisp.pt>',
                To       =>$to,
	        Subject  =>"Conta $conta - Scripts maliciosos detectados ",
                Data     =>$msg,
                Type     =>'text/html'
            );

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

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

        my $uri = 'https://hooks.slack.com/services/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';
        my $color = "danger";
        my $json='{ "channel": "pt-team-infranotifications-ptisp", "color":"'.$color.'" , "text": "'.$message3.'"}';
        my $req = HTTP::Request->new( 'POST', $uri );
        $req->header( 'Content-Type' => 'application/json' );
        $req->content( $json );

        my $lwp = LWP::UserAgent->new;
        #$lwp->request( $req );

        print "Done. \n\n" if $DEBUG ;



}

@cenas = `grep \"base64 --decode\" /var/spool/cron/*`;

foreach $linha ( @cenas ){

        chomp($linha);

        ($tmp,$omal) = split(/\:/,$linha);
        (undef,undef,undef,undef,$username) = split(/\//,$tmp);

        print "Account $username found compromised. Clearing malicious cronjobs ... \n" if $DEBUG ;

        $cmd = "crontab -u $username -l | grep -v 'base64 --decode' | crontab -u $username -";
        system($cmd);

        print "Terminando processos do user $username \n" if $DEBUG ;
        $cmd = "pkill -9 -u $username";
        system($cmd);


        print "Abrindo ticket em Abuse ...  \n" if $DEBUG ;
        $message = "";

        print "Obtendo dominio base\n" if $DEBUG;
        $tmp = `grep $username /etc/userdatadomains|grep main`;
        chomp($tmp);
        ($conta,$undef) = split (/:/,$tmp);


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


        $msg = "";

        my $owner = Cpanel::AcctUtils::getdomainowner( $conta, { 'default' => '' } );
        if ( !$owner ) {
            die "Cannot find the owner of $owner, 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=$conta");
        my $owner = $res->{'data'}->{'userdata'}->{'owner'};
        my $fuser = $res->{'data'}->{'userdata'}->{'user'};
        my $contacto = $res->{'data'}->{'userdata'}->{'serveradmin'};
        my $homedir = $res->{'data'}->{'userdata'}->{'homedir'};


        $msg = "";

        if (($owner ne "root") and ($owner ne "ptispapi")) {
                $msg = "ATEN&Ccedil;&Atilde;O !!! - ENVIAR PARA CONTA DE REVENDA  - <strong> $owner </strong> - servidor $server ( hint: $contacto ) !!!! <BR><BR>";
        } else {
                $msg = "Conta nao pertence a revenda. Cliente: $fuser endereco indicado na conta: $contacto <br><br>";
        }


        $msg = $msg . "Estimado(a) Cliente,<br><br>Detectamos a presen&ccedil;a de ficheiros maliciosos e/ou c&oacute;digo injectado no cronjob da conta <b>$conta</b> ( user $username / servidor $server ) que estariam a ser usados para ataques ( DoS/Bruteforce ) ou envios massivos de SPAM.<br><br>";
        $msg = $msg . "Para mitigar a situa&ccedil;&atilde;o removemos as referidas linhas do cronjob mas dever&aacute; verificar a conta em quest&atilde;o para a exist&ecirc;ncia de outros ficheiros que possam ter sido injectados com c&oacute;digo malicioso. Sugerimos ainda que efectuem um update/upgrade a todo o software usado no referido alojamento dado este ser um comum vector para este tipo de ataques.<br><br>";
        $msg = $msg . "De referir que esta pr&aacute;tica pode dar origem a bloqueio dos nossos endere&ccedil;os IP em diversas listas o que resultar&aacute; em dificuldades no envio de mensagens para si e para outros clientes.<br><br><br><br>";
        $msg = $msg . "Evidencias removidas: <br> Linha de Crontab: $omal<br><br>";

	$message2 = "IMPORTANTE !!! Servidor $server - Conta $conta ( $username ) comprometida com injec&ccedil;&atilde;o de bin&aacute;rios maliciosos a efectuar ataques DoS - INTERVEN&Ccedil;&Atilde;O URGENTE !!";
	$message3 = "$server - Compromised account $conta ( $username ) - base64 content in cronjob ";

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

        $msg = MIME::Lite->new(
                From     =>'Malware Notifier <message@ptisp.pt>',
                To       =>$to,
	        Subject  =>"Conta $conta - Scripts maliciosos detectados ",
                Data     =>$msg,
                Type     =>'text/html'
            );

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

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

        my $uri = 'https://hooks.slack.com/services/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';
        my $color = "danger";
        my $json='{ "channel": "pt-team-infranotifications-ptisp", "color":"'.$color.'" , "text": "'.$message3.'"}';
        my $req = HTTP::Request->new( 'POST', $uri );
        $req->header( 'Content-Type' => 'application/json' );
        $req->content( $json );

        my $lwp = LWP::UserAgent->new;
        $resp=$lwp->request( $req );

        print "Done. \n\n" if $DEBUG ;

}