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.202 ]
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
}
Escondendo banners de serviços
Instalar certificado SSL/TLS digital válido gratuito no Linux
Snort em modo defensivo com Flex Response 2
Integridade dos arquivos do sistema
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
É normal não gostar de KDE? (8)
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









