| Current File : //scripts/chmailpassded |
#!/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);
my ( $email, $pass ) = @ARGV;
my ( $user, $domain ) = split( /\@/, $email );
if ( !$email ) {
die "Usage: chemailpass <emailaddress> <password>";
}
if ( !$pass ) {
$pass = `openssl rand -base64 16 | tr -dc _A-Z-a-z-0-9`;
chomp($pass);
print $pass ."\n";
}
$filetolocate = '/root/.accesshash';
if (!(-f $filetolocate)) {
$cmd = "/usr/local/cpanel/bin/realmkaccesshash";
system($cmd);
$cmd = "chmod 660 /root/.accesshash";
system($cmd);
}
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";
}
@uapi_args = ("--user=$fuser", "Email", "passwd_pop", "email=$user", "password=$pass", "domain=$domain");
system {'uapi'} 'uapi', @uapi_args;
$msg = "";
$msg = "ATENÇÃO !!! - VPS/CLOUD/DEDICATED GERIDO - servidor $server ( hint: $contacto ) !!!! <BR><BR>";
$msg = $msg . "Estimado(a) cliente<br><br>Vimos por este meio notificar que foi detectado um envio massivo de mensagens não solicitadas, vulgo spam, a partir do domínio $domain nomeadamente da conta de email $email <br><br>";
$msg = $msg . "Para mitigar o problema efectuamos uma alteração de password para a referida conta de email tendo sido usada uma password aleatória para o efeito <br><br>";
$msg = $msg . "Pedimos que verifique se no ponto de acesso a esta conta de email não existe nenhum virus/trojan que possa originar esta situação.<br><br>";
$msg = $msg . "De referir que esta prática pode dar origem a bloqueio dos nossos endereços IP em diversas listas o que resultará em dificuldades no envio de mensagens para si e para outros clientes.<br><br>";
$msg = $msg . "NOTA: Se esta conta de email lhe é desconhecida então as credenciais de acesso ao painel de controlo ( cPanel ou Plesk ) estão também comprometidas pelo que as deverá alterar urgentemente assim como todas as passwords associadas ao alojamento ( bases de dados, etc). <br>Sugerimos adicionalmente uma análise mais aprofundada ao serviço de email ( contas, encaminhamentos, filtros, etc) para confirmarem que não há mais contas injectadas ou outro tipo de modificações efectuadas por terceiros.<br><br>";
$to = "abusecc\@ptisp.pt";
$msg = MIME::Lite->new(
From =>'Mailpass change notifier <message@ptisp.pt>',
To =>$to,
Subject =>"Conta $email - Envio de SPAM / Password alterada",
Data =>$msg,
Type =>'text/html'
);
$user = "message\@ptisp.systems";
$pass = "geicu7ohy4utaiceiN6eGe";
$msg->send('smtp', 'mta.ptisp.systems', AuthUser=>$user, AuthPass=>$pass, Timeout=>60,);