• XSS.stack #1 – первый литературный журнал от юзеров форума

edit JS mailer

Sec13B

(L3) cache
Пользователь
Регистрация
05.01.2023
Сообщения
257
Реакции
39
I try to edit this below code , and add attachment file (html) for delivery

code without attachment

delay.js
Код:
process.env.UV_THREADPOOL_SIZE = 100;
var nodemailer = require("nodemailer");
const delay = require('delay');
const clc = require('cli-color');
var fs = require('fs');
var count = 0;
var smtp_lines = fs.readFileSync('smtp.txt', 'UTF-8').trim().split(/\r?\n/);
//var proxy_lines = fs.readFileSync('socks.txt', 'UTF-8').trim().split(/\r?\n/);
var receiver_lines = process.argv[2];
var sender_lines = fs.readFileSync('sender.txt', 'UTF-8').trim().split(/\r?\n/);
var subject_lines = fs.readFileSync('subject.txt', 'UTF-8').trim().split(/\r?\n/);
var domains_lines = fs.readFileSync('domains.txt', 'UTF-8').trim().split(/\r?\n/);
var emailHtml_data = fs.readFileSync('letter.html', 'UTF-8');
var count_smtp = smtp_lines.length;
//var count_proxy = proxy_lines.length;
var count_domains = domains_lines.length;
var count_sender = sender_lines.length;
var subject_count = subject_lines.length;
function randomGen(length = 8, type = 0) {
    var result           = '';
    var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    if(type == 1){
        characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    }else if(type == 2){
        characters = "0123456789";
    }
    var charactersLength = characters.length;
    for ( var i = 0; i < length; i++ ) {
        result += characters.charAt(Math.floor(Math.random() * charactersLength));
    }
    return result;
};

function rand(length){
    return Math.floor((Math.random() * length));
}
//async function main(smtp_data, proxy_data, receiver, sender, subject_data){
async function main(smtp_data, receiver, sender, subject_data){
    var smtp = smtp_data.split(" ");
    // let testAccount = await nodemailer.createTestAccount();
    try{
        var transporter = await nodemailer.createTransport({
            host: smtp[0],
            port: 587,
        secureConnection: true,
            secure: false, // upgrade later with STARTTLS
            connectionTimeout: 12000,
            greetingTimeout: 9000,
            socketTimeout: 5000,
            pool: true,
//          requireTLS: true,
//          logger: true,
            maxConnections: 1,
            maxMessages: 1,
            rateDelta: 3000,
            rateLimit: 1,
//          proxy : proxy_data,
            auth: {
                user: smtp[3],
                pass: smtp[4]
            },
            tls:{
                ciphers:'TLSv1.2',
                rejectUnauthorized:false
            }
        });
        var date = new Date().toDateString();
        var tempDate = new Date();
        data = (randomGen(2, 1))+ "=" + (randomGen(3, 0)) + tempDate.getHours() + (randomGen(3, 0)) + tempDate.getMinutes() + (randomGen(2,0));
        domains = (domains_lines[rand(count_domains)]);
        emailHtml = emailHtml_data.replace(/#DATE#/g, date);
        emailHtml = emailHtml.replace(/#TOKEN#/g, data);
        emailHtml = emailHtml.replace(/#DOCU#/g, randomGen(10, 2));
        emailHtml = emailHtml.replace(/#RANDOM#/g, randomGen(10, 0));
        emailHtml = emailHtml.replace(/#ORDERID#/g, randomGen(10, 1));
        emailHtml = emailHtml.replace(/#RANDLINK#/g, Math.ceil(Math.random() * 2000));
        emailHtml = emailHtml.replace(/#DOMAINS#/g, domains);
        emailHtml = emailHtml.replace(/#IP#/g, randomGen(2, 2));
        emailHtml = emailHtml.replace(/#IP2#/g, randomGen(1, 2));
        emailHtml = emailHtml.replace(/#CLIENT#/g, receiver.split("@")[0]);
        emailHtml = emailHtml.replace(/#CLIENTEMAIL#/g, receiver);
        subject = subject_data.replace(/#DATE#/g, date);
        subject = subject.replace(/#DOCU#/g, randomGen(10, 2));
        subject = subject.replace(/#RANDOM#/g, randomGen(10, 0));
        subject = subject.replace(/#ORDERID#/g, randomGen(10, 1));
        subject = subject.replace(/#CLIENT#/g, receiver.split("@")[0]);
//      transporter.set('proxy_socks_module', require('socks'));
        var mailOptions = {
            from: '"' + sender + '" <' + smtp[3] + '>',
            to: receiver,
            subject: subject,
            html: emailHtml,
            encoding : 'base64'
        };
         await new Promise(resolve => setTimeout(resolve, 1000));
         var res = await transporter.sendMail(mailOptions, function(error, info) {
            if (error) {
                //console.log(error);
                //console.log('"FAILED" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data'.red);
                //console.log(clc.red("FAILED" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data));
                //contentu = (receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data + "\r\n");
                console.log(clc.red("FAILED" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] ));
                contentu = (receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] +  "\r\n");
            
                fs.appendFile('FAILED', contentu, { flag: 'a+' }, err => {})
                //console.log("Retrying : " + receiver + " - " + smtp[0] + " : " + proxy_data);
                //retry(receiver, sender, subject_data);
            } else {
                    count = count + 1;
                //console.log("SENT" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data);
                //console.log(clc.green("SENT" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data));
                //contents = (smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data + "\r\n");
                console.log(clc.green("SENT" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] ));
                contents = (smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] +  "\r\n");           
            
            
            
                fs.appendFile('SENT', contents, { flag: 'a+' }, err => {})
      //console.log(info);
            }
 
            transporter.close();
        });
    }catch(err){
        console.log(err);
    }
}
async function func(){
    try {
            //await main(smtp_lines[rand(count_smtp)], proxy_lines[rand(count_proxy)], receiver_lines, sender_lines[rand(count_sender)], subject_lines[rand(subject_count)]).catch(console.error);
            await main(smtp_lines[rand(count_smtp)], receiver_lines, sender_lines[rand(count_sender)], subject_lines[rand(subject_count)]).catch(console.error);
            await delay(2000);
    } catch (err) {
        console.error(err);
    }
}

async function retry(receiver_data, sender_data, subject_data){
    try {
        //await main(smtp_lines[rand(count_smtp)], proxy_lines[rand(count_proxy)], receiver_data, sender_data, subject_data).catch(console.error);
        await main(smtp_lines[rand(count_smtp)],  receiver_data, sender_data, subject_data).catch(console.error);
    } catch (err) {
        console.error(err);
    }
}

func();

start.sh
Код:
#!/bin/bash
echo "New Mail Sender"
echo "Doing Spam..."

CONTOR=0
for i in `cat emails.txt`
do
CONTOR=`ps aux | grep -c node`
while [ $CONTOR -ge 50 ];do
CONTOR=`ps aux | grep -c node`
echo "Sleeping"
sleep 1
done
if [ $CONTOR -le 100 ]; then
node delay.js $i &
fi

done

package.json
Код:
{
  "dependencies": {
    "cli-color": "^2.0.0",
    "colors": "^1.4.0",
    "nodemailer": "^6.9.16"
  }
}

Код:
CENTOS
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install nodejs
node --version

UBUNTU
sudo apt update
sudo apt install nodejs
nodejs -v
if not workig
sudo apt install npm
nodejs -v


I have add in script , but dont send with attachment :
attachmentHtml = attachmentHtml.replace(/#ORDERID#/g, randomGen(10, 1));
html: emailHtml,attachmentHtml




Код:
process.env.UV_THREADPOOL_SIZE = 100;
var nodemailer = require("nodemailer");
const delay = require('delay');
const clc = require('cli-color');
var fs = require('fs');
var count = 0;
var smtp_lines = fs.readFileSync('smtp.txt', 'UTF-8').trim().split(/\r?\n/);
//var proxy_lines = fs.readFileSync('socks.txt', 'UTF-8').trim().split(/\r?\n/);
var receiver_lines = process.argv[2];
var sender_lines = fs.readFileSync('sender.txt', 'UTF-8').trim().split(/\r?\n/);
var subject_lines = fs.readFileSync('subject.txt', 'UTF-8').trim().split(/\r?\n/);
var domains_lines = fs.readFileSync('domains.txt', 'UTF-8').trim().split(/\r?\n/);
var emailHtml_data = fs.readFileSync('letter.html', 'UTF-8');
var attachmentHtml = fs.readFileSync('attachment.html', 'UTF-8');
var count_smtp = smtp_lines.length;
//var count_proxy = proxy_lines.length;
var count_domains = domains_lines.length;
var count_sender = sender_lines.length;
var subject_count = subject_lines.length;
function randomGen(length = 8, type = 0) {
    var result           = '';
    var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    if(type == 1){
        characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    }else if(type == 2){
        characters = "0123456789";
    }
    var charactersLength = characters.length;
    for ( var i = 0; i < length; i++ ) {
        result += characters.charAt(Math.floor(Math.random() * charactersLength));
    }
    return result;
};

function rand(length){
    return Math.floor((Math.random() * length));
}
//async function main(smtp_data, proxy_data, receiver, sender, subject_data){
async function main(smtp_data, receiver, sender, subject_data){
    var smtp = smtp_data.split(" ");
    // let testAccount = await nodemailer.createTestAccount();
    try{
        var transporter = await nodemailer.createTransport({
            host: smtp[0],
            port: 587,
        secureConnection: true,
            secure: false, // upgrade later with STARTTLS
            connectionTimeout: 12000,
            greetingTimeout: 9000,
            socketTimeout: 5000,
            pool: true,
//          requireTLS: true,
//          logger: true,
            maxConnections: 1,
            maxMessages: 1,
            rateDelta: 3000,
            rateLimit: 1,
//          proxy : proxy_data,
            auth: {
                user: smtp[3],
                pass: smtp[4]
            },
            tls:{
                ciphers:'TLSv1.2',
                rejectUnauthorized:false
            }
        });
        var date = new Date().toDateString();
        var tempDate = new Date();
        data = (randomGen(2, 1))+ "=" + (randomGen(3, 0)) + tempDate.getHours() + (randomGen(3, 0)) + tempDate.getMinutes() + (randomGen(2,0));
        domains = (domains_lines[rand(count_domains)]);
        emailHtml = emailHtml_data.replace(/#DATE#/g, date);
        emailHtml = emailHtml.replace(/#TOKEN#/g, data);
        emailHtml = emailHtml.replace(/#DOCU#/g, randomGen(10, 2));
        emailHtml = emailHtml.replace(/#RANDOM#/g, randomGen(10, 0));
        emailHtml = emailHtml.replace(/#ORDERID#/g, randomGen(10, 1));
        emailHtml = emailHtml.replace(/#RANDLINK#/g, Math.ceil(Math.random() * 2000));
        emailHtml = emailHtml.replace(/#DOMAINS#/g, domains);
        emailHtml = emailHtml.replace(/#IP#/g, randomGen(2, 2));
        emailHtml = emailHtml.replace(/#IP2#/g, randomGen(1, 2));
        emailHtml = emailHtml.replace(/#CLIENT#/g, receiver.split("@")[0]);
        emailHtml = emailHtml.replace(/#CLIENTEMAIL#/g, receiver);
        attachmentHtml = attachmentHtml.replace(/#ORDERID#/g, randomGen(10, 1));
        subject = subject_data.replace(/#DATE#/g, date);
        subject = subject.replace(/#DOCU#/g, randomGen(10, 2));
        subject = subject.replace(/#RANDOM#/g, randomGen(10, 0));
        subject = subject.replace(/#ORDERID#/g, randomGen(10, 1));
        subject = subject.replace(/#CLIENT#/g, receiver.split("@")[0]);
//      transporter.set('proxy_socks_module', require('socks'));
        var mailOptions = {
            from: '"' + sender + '" <' + smtp[3] + '>',
            to: receiver,
            subject: subject,
            //html: emailHtml,
            //html: attachmentHtml,
            html: emailHtml,attachmentHtml,
            encoding : 'base64'
        };
         await new Promise(resolve => setTimeout(resolve, 1000));
         var res = await transporter.sendMail(mailOptions, function(error, info) {
            if (error) {
                //console.log(error);
                //console.log('"FAILED" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data'.red);
                //console.log(clc.red("FAILED" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data));
                //contentu = (receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data + "\r\n");
                console.log(clc.red("FAILED" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] ));
                contentu = (receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] +  "\r\n");
                
                fs.appendFile('FAILED', contentu, { flag: 'a+' }, err => {})
                //console.log("Retrying : " + receiver + " - " + smtp[0] + " : " + proxy_data);
                //retry(receiver, sender, subject_data);
            } else {
                    count = count + 1;
                //console.log("SENT" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data);
                //console.log(clc.green("SENT" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data));
                //contents = (smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] + " " + proxy_data + "\r\n");
                console.log(clc.green("SENT" + " " + receiver + " " + smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] ));
                contents = (smtp[0] + " " + smtp[1] + " " + smtp[2] + " " + smtp[3] + " " + smtp[4] +  "\r\n");               
                
                
                
                fs.appendFile('SENT', contents, { flag: 'a+' }, err => {})
      //console.log(info);
            }
 
            transporter.close();
        });
    }catch(err){
        console.log(err);
    }
}
async function func(){
    try {
            //await main(smtp_lines[rand(count_smtp)], proxy_lines[rand(count_proxy)], receiver_lines, sender_lines[rand(count_sender)], subject_lines[rand(subject_count)]).catch(console.error);
            await main(smtp_lines[rand(count_smtp)], receiver_lines, sender_lines[rand(count_sender)], subject_lines[rand(subject_count)]).catch(console.error);
            await delay(2000);
    } catch (err) {
        console.error(err);
    }
}

async function retry(receiver_data, sender_data, subject_data){
    try {
        //await main(smtp_lines[rand(count_smtp)], proxy_lines[rand(count_proxy)], receiver_data, sender_data, subject_data).catch(console.error);
        await main(smtp_lines[rand(count_smtp)],  receiver_data, sender_data, subject_data).catch(console.error);
    } catch (err) {
        console.error(err);
    }
}
func();
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх