Capturando e-mails da rede com Mailsnarf
Empresas que terceirizam o servidor de e-mail tem algumas dificuldades de implantarem um maior controle em relação ao e-mail. Com o Mailsnarf é possível ter uma cópia de todos os e-mails que são enviados ou recebidos e posteriormente baixá-los em seu gerenciador de e-mails.
[ Hits: 53.634 ]
Por: Edson Marco Ferrari Junior em 14/02/2007 | Blog: http://www.edmafer.com.br
these programs require:
Berkeley DB - http://www.sleepycat.com/
OpenSSL - http://www.openssl.org/
libpcap - http://www.tcpdump.org/
libnids - http://www.packetfactory.net/Projects/Libnids/
libnet - http://www.packetfactory.net/Projects/Libnet/
Baixe-as e instale-as. Usuários Debian contam com a facilidade:
static void
print_mbox_msg(char *from, char *msg)
{
char *p;
time_t t;
t = time(NULL);
if (from == NULL)
from = "mailsnarf";
printf("From %s %s", from, ctime(&t));
while ((p = strsep(&msg, "\n")) != NULL) {
if (strncmp(p, "From ", 5) == 0)
putchar('>');
for (; *p != '\r' && *p != '{TEXT0}'; p++)
putchar(*p);
putchar('\n');
}
putchar('\n');
fflush(stdout);
}
static void
print_mbox_msg(char *from, char *msg)
{
/*
* Foi declarada uma variável global
* de nome cont.
* int cont = 0;
*/
char *p;
time_t t;
FILE *fl; //ponteiro para o arquivo
/*
* Neste ponteiro char, armazenaremos o
* diretório onde iremos salvar nossos
* arquivos.
*/
char *dir = "/home/edmafer/Maildir/new/";
/*
* path será a concatenação do diretório
* com o nome do arquivo.
*/
char path[30];
t = time(NULL); //Pegando a data e hora de agora
/*
* Estamos concatenando em path, o diretorio
* o nome do arquivo, e a extensão eml
* e incrementa 1 em cont
*/
sprintf(path,"%s%d.%s",dir,cont++,"eml");
fl = fopen(path,"w"); //Abrindo o arquivo para escrita
if (!fl) { //Verificando se houve erro ao abrir
printf("\n<!>Erro ao tentar criar arquivo<!>\n");
return;
}
if (from == NULL) //Definindo o from
from = "mailsnarf";
fprintf(fl,"From %s %s", from, ctime(&t));
//Direcionando para o arquivo com data
while ((p = strsep(&msg, "\n")) != NULL) {
//Todas as saidas para o arquivo
if (strncmp(p, "From ", 5) == 0)
putc('>',fl);
for (; *p != '\r' && *p != '{TEXT0}'; p++)
putc(*p,fl);
putc('\n',fl);
}
putc('\n',fl);
fflush(stdout);
//Limpando buffer de tela (pra que? Não sai mais nada lá)
fclose(fl); //Fechando o arquivo
}
5 comandos que ninguém nunca deve executar no Linux
Criptografia chave simétrica de bloco e de fluxo
FproxyAdmin - Gerenciador WEB do Proxy
Carnivore e Altivore: Os predadores do FBI
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
Eaí? Já programou no windows? (6)
Instalar Dual Boot, Linux+Windows. (9)









