GIF89a; EcchiShell v1.0
//usr/bin/

Mass Deface Email Grabber

/tmp/ssl_tls ExpiryDate=$(cat /tmp/ssl_tls) echo " $i ExpiryDate $ExpiryDate" >> /var/sentora/logs/tls_remove.log if [ "$ExpiryDate" != "" ] then break; fi sleep 5; done cert_valid_check=$ExpiryDate if [ "$cert_valid_check" == "" ] || [ "$cert_valid_check" == "EXPIRED" ]; then return_val="CERTIFICATE_EXPIRED" elif [ "$cert_valid_check" -lt "10" ]; then return_val="CERTIFICATE_EXPIRED" else return_val="CERTIFICATE_VALID" fi } installSsl() { local mail_addr="support@hostingraja.info" chmod +x /usr/bin/setso local file_path=`setso --show ipdomain_dir` /usr/local/letsencrypt/./certbot-auto certonly --authenticator webroot --webroot-path $file_path --agree-tos --non-interactive --verbose --no-self-upgrade -d $1 --email $mail_addr } postfixSslCheck() { postfix_smtp_tls_res=`grep -ni "smtp_use_tls" $1 | grep "yes"` postfix_smtpd_tls_res=`grep -ni "smtpd_use_tls" $1 | grep "yes"` smtpd_tls_cert_file_res=`grep -ni "smtpd_tls_cert_file" $1 | grep $2` smtpd_tls_ca_file_res=`grep -ni "smtpd_tls_CAfile" $1 | grep $2` smtpd_tls_key_file_res=`grep -ni "smtpd_tls_key_file" $1 | grep $2` if [ "$postfix_smtp_tls_res" == "" ] || [ "$postfix_smtpd_tls_res" == "" ]; then if [ "$smtpd_tls_cert_file_res" == "" ] && [ "$smtpd_tls_ca_file_res" == "" ] && [ "$smtpd_tls_key_file_res" == "" ]; then return_val="TLS_NOT_CONFIGURED_IN_POSTFIX" else return_val="SMTP_TLS_NOT_ENABLED_BUT_CERTIFICATE_ADDED" fi else if [ "$smtpd_tls_cert_file_res" == "" ] && [ "$smtpd_tls_ca_file_res" == "" ] && [ "$smtpd_tls_key_file_res" == "" ]; then return_val="SMTP_TLS_ENABLED_BUT_CERTIFICATE_NOT_ADDED" else return_val="TLS_COFIGURED_IN_POSTFIX" fi fi } dovecotSslCheck() { ssl_conf_check=`grep -ni "ssl" $1 | grep "yes"` ssl_cert_exists=`grep -ni "ssl_cert" $1 | grep $2` ssl_key_exists=`grep -ni "ssl_key" $1 | grep $2` ssl_ca_exists=`grep -ni "ssl_ca" $1 | grep $2` ssl_cert_file=`echo $ssl_cert_exists | awk -F"<" '{ print $2 }'` ssl_cert_host=`echo $ssl_cert_exists | awk -F"/" '{ print $5 }'` if [ -f $ssl_cert_file ];then echo "NO" ssl_cert_novalid="valid" else ssl_cert_novalid="" fi ssl_key_file=`echo $ssl_key_exists | awk -F"<" '{ print $2 }'` ssl_key_host=`echo $ssl_key_exists | awk -F"/" '{ print $5 }'` if [ -f $ssl_key_file ]; then echo "NO" ssl_key_novalid="valid" else ssl_key_novalid="" fi ssl_ca_file=`echo $ssl_ca_exists | awk -F"<" '{ print $2 }'` ssl_ca_host=`echo $ssl_ca_exists | awk -F"/" '{ print $5 }'` if [ -f $ssl_ca_file ]; then echo "NO" ssl_ca_novalid="valid" else ssl_ca_novalid="" fi if [ "$ssl_conf_check" == "" ]; then if [ "$ssl_cert_exists" == "" ] && [ "$ssl_key_exists" == "" ] && [ "$ssl_ca_exists" == "" ]; then return_val="TLS_NOT_CONFIGURED_IN_DOVECOT" else return_val="SSL_DISABLE_BUT_CERTIFICATE_ADDED" fi else if [ "$ssl_cert_exists" == "" ] && [ "$ssl_key_exists" == "" ] && [ "$ssl_ca_exists" == "" ]; then return_val="SSL_ENABLE_BUT_CERTIFICATE_NOT_ADDED" elif [ "$ssl_cert_novalid" == "" ] && [ "$ssl_key_novalid" == "" ] && [ "$ssl_ca_novalid" == "" ]; then return_val="TLS_NOT_CONFIGURED_IN_DOVECOT" else return_val="TLS_CONFIGURED_IN_DOVECOT" fi fi } configureTlsWithDovecot() { ssl_enable_line_no=`grep -ni "ssl" $2 | head -1 | awk -F":" '{print $1}'` ssl_change_to_yes=$ssl_enable_line_no"s/.*/ssl = yes/" sed -i "$ssl_change_to_yes" $2 ((ssl_enable_line_no++)) ssl_cert_domains_to_add=$ssl_enable_line_no"i !include domains/*.conf" ssl_cert_to_add=$ssl_enable_line_no"i ssl_cert = > $2 echo "smtpd_use_tls = yes" >> $2 echo "smtpd_tls_received_header = yes" >> $2 echo "smtpd_tls_session_cache_timeout = 3600s" >> $2 echo "smtpd_tls_security_level = may" >> $2 echo "smtp_tls_note_starttls_offer = yes" >> $2 echo "tls_random_source = dev:/dev/urandom" >> $2 echo "smtpd_tls_loglevel = 1" >> $2 echo "smtpd_tls_cert_file=/etc/letsencrypt/live/$1/cert.pem" >> $2 echo "smtpd_tls_CAfile=/etc/letsencrypt/live/$1/chain.pem" >> $2 echo "smtpd_tls_key_file=/etc/letsencrypt/live/$1/privkey.pem" >> $2 } configureTlsinPostfixMaster() { tls_adding_line_no=`grep -wn "smtp" $1 | grep "content_filter=spamfilter" | awk -F":" '{print $1}'` ((tls_adding_line_no++)) smtps_to_add=$tls_adding_line_no"i smtps inet n - n - - smtpd -o content_filter=spamfilter" port465_to_add=$tls_adding_line_no"i 465 inet n - n - - smtpd" syslog_name_to_add=$tls_adding_line_no"i \ \ \ -o syslog_name=postfix/smtps" wrappermode_to_add=$tls_adding_line_no"i \ \ \ -o smtpd_tls_wrappermode=yes" client_rest_to_add=$tls_adding_line_no"i \ \ \ -o smtpd_sasl_auth_enable=yes" client_restriction=$tls_adding_line_no"i \ \ \ -o smtpd_client_restrictions=permit_sasl_authenticated,reject" port465_check=`grep -wn "465" $1 | grep "smtpd" | awk -F":" '{print $1}'` smtps_check=`grep -wn "smtps" $1 | grep "content_filter=spamfilter" | awk -F":" '{print $1}'` if [ "$port465_check" == "" ] && [ "$smtps_check" == "" ]; then sed -i "$client_restriction" $1 sed -i "$client_rest_to_add" $1 sed -i "$wrappermode_to_add" $1 sed -i "$syslog_name_to_add" $1 sed -i "$port465_to_add" $1 sed -i "$smtps_to_add" $1 fi } hostnamePointedCheck() { local host_name=$1 #host_addr=`host -a $1 | grep "$1" | grep -w "A" | awk '{print $5}'` host_addr=`dig +short $1 | head -1` echo $host_addr if [ "$host_addr" == "" ]; then return_val="HOSTNAME_NOT_POINTED" else return_val="HOSTNAME_POINTED=>"$host_addr fi } pointHostname() { hostname_point_res=$($PHP_SERV -f /scripts/PointHostname.php $1) return_val=`echo $hostname_point_res` } restartPostfix() { SERVICE_SERV=`whereis service | awk '{ print $2}'` $SERVICE_SERV postfix restart } restartDovecot() { SERVICE_SERV=`whereis service | awk '{ print $2}'` $SERVICE_SERV dovecot restart } logicalFunction() { hostnamePointedCheck $host_name hostname_point_check_res=`echo $return_val` #echo "hostname_point_check_res: "$hostname_point_check_res host_res=`IFS="=>" read -ra RES <<< "${hostname_point_check_res}"; echo ${RES[0]}` ip_addr=`IFS="=>" read -ra RES <<< "${hostname_point_check_res}"; echo ${RES[2]}` echo "host_res: "$host_res if [ "$host_res" == "HOSTNAME_NOT_POINTED" ]; then pointHostname $host_name point_hostname_res=`echo $return_val`; if [ "$point_hostname_res" == "NS_RECORD_NOT_POINT_WITH_US" ]; then echo "Hostname Nameserver Record was not with us. So kindly check with your Domain Administrator to point hostname." echo "TLS_NOT_CONFIGURED" > /var/sentora/logs/tls.log #removeTlsFromDevecot $DOVECOT_CONF #removeTlsFromPostfix $POSTFIX_CONF exit fi fi sslExpireCheck $host_name ssl_expire_check_res=`echo $return_val` if [ "$ssl_expire_check_res" == "CERTIFICATE_VALID" ]; then logical_ret_res=`echo $ssl_expire_check_res` #exit else if [ ! -f $host_ssl_path ];then installSsl $host_name sslExpireCheck $host_name ssl_expire_check_res=`echo $return_val` if [ "$ssl_expire_check_res" == "CERTIFICATE_VALID" ]; then logical_ret_res=`echo $ssl_expire_check_res` else echo "Unable to create ssl certificate at this time. Please contact system administrator" echo "TLS_NOT_CONFIGURED" > /var/sentora/logs/tls.log exit fi else renewSsl $host_name fi fi } #### PATH VARIABLES #### PHP_SERV=`whereis php | awk '{ print $2 }'` POSTFIX_CONF="/etc/postfix/main.cf" POSTFIX_MASTER_CONF="/etc/postfix/master.cf" DOVECOT_CONF="/etc/dovecot/dovecot.conf" HOSTNAME_SERV=`whereis hostname | awk '{ print $2 }'` host_name=`$HOSTNAME_SERV` host_name="${host_name,,}" host_ssl_path="/etc/letsencrypt/live/$host_name/cert.pem" #### DOVECOT & POSTFIIX SSL/TLS CHECK #### dovecotSslCheck $DOVECOT_CONF $host_name dovecot_ssl_check_res=`echo $return_val` postfixSslCheck $POSTFIX_CONF $host_name postfix_ssl_check=`echo $return_val` echo "dovecot_ssl_check_res: "$dovecot_ssl_check_res" postfix_ssl_check: "$postfix_ssl_check #### LOGICAL FUNCTION STARTED ### if [ "$dovecot_ssl_check_res" == "TLS_CONFIGURED_IN_DOVECOT" ] && [ "$postfix_ssl_check" == "TLS_COFIGURED_IN_POSTFIX" ]; then logicalFunction ssl_expire_check_res=`echo $return_val` if [ "$ssl_expire_check_res" == "CERTIFICATE_VALID" ]; then configureTlsinPostfixMaster $POSTFIX_MASTER_CONF restartPostfix echo "TLS ALREADY CONFIGURED" echo "TLS_CONFIGURED" > /var/sentora/logs/tls.log exit else echo "Line no: 276 $ssl_expire_check_res" >> /var/sentora/logs/tls_remove.log removeTlsFromDevecot $DOVECOT_CONF removeTlsFromPostfix $POSTFIX_CONF restartPostfix restartDovecot fi elif [ "$dovecot_ssl_check_res" == "TLS_CONFIGURED_IN_DOVECOT" ] && [ "$postfix_ssl_check" != "TLS_COFIGURED_IN_POSTFIX" ]; then logicalFunction ssl_expire_check_res=`echo $return_val` echo "TEST ssl_expire_check_res= $ssl_expire_check_res" if [ "$ssl_expire_check_res" == "CERTIFICATE_VALID" ]; then removeTlsFromPostfix $POSTFIX_CONF configureTlswithPostfix $host_name $POSTFIX_CONF configureTlsinPostfixMaster $POSTFIX_MASTER_CONF restartPostfix echo "TLS SUCCESSFULLY CONFIGURED WITH POSTFIX" echo "TLS_CONFIGURED" > /var/sentora/logs/tls.log exit else echo "Line no: 295 $ssl_expire_check_res" >> /var/sentora/logs/tls_remove.log removeTlsFromDevecot $DOVECOT_CONF removeTlsFromPostfix $POSTFIX_CONF restartPostfix restartDovecot fi elif [ "$dovecot_ssl_check_res" != "TLS_CONFIGURED_IN_DOVECOT" ] && [ "$postfix_ssl_check" == "TLS_COFIGURED_IN_POSTFIX" ]; then logicalFunction ssl_expire_check_res=`echo $return_val` if [ "$ssl_expire_check_res" == "CERTIFICATE_VALID" ]; then removeTlsFromDevecot $DOVECOT_CONF configureTlsWithDovecot $host_name $DOVECOT_CONF configureTlsinPostfixMaster $POSTFIX_MASTER_CONF restartPostfix restartDovecot echo "TLS SUCCESSFULLY CONFIGURED WITH DOVECOT" echo "TLS_CONFIGURED" > /var/sentora/logs/tls.log exit else echo "Line no: 314 $ssl_expire_check_res" >> /var/sentora/logs/tls_remove.log removeTlsFromDevecot $DOVECOT_CONF removeTlsFromPostfix $POSTFIX_CONF restartPostfix restartDovecot fi else logicalFunction ssl_expire_check_res=`echo $return_val` if [ "$ssl_expire_check_res" == "CERTIFICATE_VALID" ]; then removeTlsFromDevecot $DOVECOT_CONF removeTlsFromPostfix $POSTFIX_CONF configureTlswithPostfix $host_name $POSTFIX_CONF configureTlsWithDovecot $host_name $DOVECOT_CONF configureTlsinPostfixMaster $POSTFIX_MASTER_CONF restartPostfix restartDovecot echo "TLS SUCCESSFULLY CONFIGURED WITH POSTFIX & DOVECOT" echo "TLS_CONFIGURED" > /var/sentora/logs/tls.log fi fi