Pular para o conteúdo

Imsniff caindo? Nunca mais...

Dica publicada em Linux / Miscelânea
Jean Carlos dimmublaster
Hits: 14.670 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Imsniff caindo? Nunca mais...

Esta dica vai para quem usa Imsniff versões 0.03 e 0.04 e essas teimam em parar o processo do nada.

Crie um arquivo qualquer em lugar algum - você já deve ter aquela pastinha cheeeeia dos seus testes e scripts :)

Então vamos lá..

$ cd /home/lnx
$ touch msnup.sh


Utilize seu editor predileto, eu gosto do 'mc' (Midnight Commander):

$ mc

Adicione as seguintes linhas:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#!/bin/bash

ps -A | grep imsniff
TEM="$?"
if [ "$TEM" != "0" ]; then
# adicione abaixo o caminho para a pasta onde se encontra o imsniff
cd /mnt/sdb2/msn/src
# o comando para carregar.. no lugar de eth0 coloque sua placa de rede
./imsniff eth0 &
fi

Depois...

$ chmod +x msnup.sh

Quando não for encontrado nenhum processo com o nome 'imsniff' o novo processo é carregado.

Agora vamos colocar isso na cron, porque senão nada adianta né :P

$ crontab -e

Aqui você irá colocar o tempo que o script verificará se o processo está ou não rodando.

Para a empresa aqui escolhi um prazo de 30 min:

30 * * * * /home/lnx/msnup.sh

É isso ai galera, fraquinho mas funciona.

Abraços.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Os usuários e permissões no sistema GNU/Linux

Como juntar dinheiro para cursos e certificações

Ubuntu sem som após usar o Windows

Caravana gratuita de Porto Alegre para a Latinoware

CrunchBang: Instalação em HD-usb/Pendrive a partir de um Pendrive (Procedimento via Windows)

#1 Comentário enviado por neonx em 11/03/2007 - 21:38h
script bom e funcional eu tbm jah u so algo semelhante para o imsniff... e também constatei que a queda do mesmo dá-se por causa do tal do msnplus ou similiar do msn por isso cai sempre o processo do imsniff.. caso em sua rede nao tiver ninguem utilizando o mesmo ficará ativo sem problemas...
#2 Comentário enviado por badspirit em 26/03/2007 - 13:31h
Olha so .. que tal se fizessem isso:

Versao do imsniff: 0.04

Entrem no diretorio src/
Editem o arquivo msn_conntrack.cpp com seu editor preferido
Irao fazer umas inclusoes na funcao add_user_to_sb(), que logo a primeira no arquivo. As linhas com o sinal "+" na frente deverao ser acrescentadas.

void add_user_to_sb (struct msn_connection *conn, u_char *user)
{
if (conn!=NULL && conn->users!=NULL)
{
int i=0;
while (i<conn->num_users)
{
if (strcmp ((char *) conn->users[i], (char *) user)==0)
return; // Don't duplicate
i++;
}
}

log_debug (5, "Adding user [%s] to SB",user);
+ if (!conn) {
+ conn = (struct msn_connection *) malloc (sizeof (struct msn_connection));
+ if (!conn)
+ return;
+ if (msn_conns_first==NULL)
+ msn_conns_first=conn;

+ memset (conn,0,sizeof (struct msn_connection)); // All zeros is fine
+ if (msn_conns_last != NULL)
+ {
+ msn_conns_last->next=conn;
+ conn->previous=msn_conns_last;
+ }
+ msn_conns_last=conn;

+ conn->users=NULL;
+ conn->num_users=0;
+ conn->log_full_path=NULL;

+ }

conn->users=(u_char **) realloc (conn->users, sizeof (u_char *) * (conn->num_users+1));
log_debug (5, "Done realloc");
if (conn->users!=NULL)
{
conn->users[conn->num_users]=(u_char *) malloc (strlen ((char *) user) +1 );
log_debug (5, "Done malloc");
strcpy ((char *) conn->users[conn->num_users],(char *) user);
log_debug (5, "Done strcpy");
conn->num_users++;
}
log_debug (5, "Done, number of users now = %d",conn->num_users);
}

Gravem as alteracoes e editem outro arquivo, chamado util.cpp e localizem a funcao get_tokens() e novamente a linha com o sinal de "+" deve ser acrescentada e com sinal de "-", retirada.

int get_tokens (u_char *line, u_char ***tokens, int max_tokens)
{
log_debug (5, "entry in get_tokens");
int capacity = (max_tokens==0)?50:max_tokens;
/* First, delete the tokens if there are any ... */
free_array(tokens);
*tokens=(u_char **) malloc (sizeof (u_char *) * (capacity +1)); // Final one is NULL
if (*tokens==NULL)
return OUT_OF_MEMORY;
int num=0; /* Number of tokens added so far */
u_char *now = line;
u_char *newtoken;

char tmp[255];

for (;;)
{
size_t i;
/* Skip spaces and control stuff */
while (*now<=' ' && *now!=0)
{
now++;
}

if (*now==0) /* End of line */
break;

i=0;
if (max_tokens==num+1 && max_tokens!=0)
i=strlen ((char *) now);
else
{
while (now[i]>' ') /* Look ahead, how long is the next token? */
i++;
}
newtoken=(u_char *) malloc (i+1);
memcpy (newtoken, now, i);
now = now + i;
newtoken[i]=0;

if (num==capacity)
{
capacity += 10;
*tokens = (u_char **) realloc (*tokens, sizeof (u_char *) * (capacity +1));
if (*tokens==NULL) /* A bit unstable now I'm afraid */
return OUT_OF_MEMORY;
}

(*tokens)[num]=newtoken;

if (num==7)
{
+ break;
- exit (7);
}
num++;
}

(*tokens)[num]=NULL;
return num;
}

Gravem as alteracoes e compilem
Como vc estarao no diretorio src/, deverao se posicionar no diretorio linux/

cd ../linux
./build

Prontinho, so rodar e talz!!!

Abracos a todos

Qualquer onda to no msn fabiann.freitas@hotmail.com ou badspiritz@hotmail.com
#3 Comentário enviado por gregorye em 26/08/2007 - 03:08h
ótima dica, funciona mesmo, ou seja resolveu o problema...
#4 Comentário enviado por gasparsinho1980 em 19/11/2007 - 17:32h
nao consigo compilar, quando digito ./build da erro... o que fazer ja reinstalei tudo e nao adiantou ....
#5 Comentário enviado por dimmublaster em 30/11/2007 - 06:35h
Olá amigo!
Não conseguiu compilar?
Poste o erro pra que possamos te ajudar!!

[]'s
#7 Comentário enviado por dimmublaster em 10/05/2008 - 04:47h
Obrigado por comentarem galera, peço desculpas pela ausência, abraços a todos e fiquem com Deus!!
;)
#8 Comentário enviado por GregorioVenturim em 03/09/2008 - 15:25h
Realizei as alterações propostas nos aquivos msn_conntrack.cpp e util.cpp, mas quando fui compilar apareceram os seguintes erros:

server:/tmp/imsniff/src # bash --debug util.cpp
util.cpp: line 6: int: command not found
util.cpp: line 8: syntax error near unexpected token `('
util.cpp: line 8: `char *gettimestring4log (char *store)'

server:/tmp/imsniff/src # bash --debug msn_conntrack.cpp
msn_conntrack.cpp: line 1: syntax error near unexpected token `('
msn_conntrack.cpp: line 1: `void add_user_to_sb (struct msn_connection *conn, u_char *user)'

Poderiam me ajudar por favor.
#9 Comentário enviado por GregorioCAPEL em 05/09/2008 - 09:42h
Agora vamos colocar isso na cron, porque senão nada adianta né :P
$ crontab -e
Aqui você irá colocar o tempo que o script verificará se o processo está ou não rodando.
Para a empresa aqui escolhi um prazo de 30 min:
30 * * * * /home/lnx/msnup.sh


Não estou conseguindo fazer isto.... alguém podeira me ajudar.
#10 Comentário enviado por el_aguiar em 28/10/2008 - 10:05h
badspirit

se eu fazer as alterações nos arquivos msn_conntrack.cpp com, util.cpp que vc colocou precisa ainda criar o msnup.sh e adicionar a linha 30 * * * * /.... no crontab ?

obrigado
#11 Comentário enviado por el_aguiar em 28/10/2008 - 16:25h
Fiz o que o badspirit postou e funcionou sem colocar o conteúdo inicial desse tópico mas tem um problema que a primeira mensagem não grava e quando as pessoas demoram para responderem também a próxima mensagem não grava no log.
alguém já viu isso?
#12 Comentário enviado por tomassoni em 24/08/2009 - 13:35h
Galera após realizar os procedimentos, e executar o ./build, obtive os seguintes erros:

A correção foi simples, bastou instalar libpcap-dev
yum install libpcap-dev
rodei o build e tudo deu certo.


O erros:
# ./build
In file included from ../src/imsniff.cpp:1:
../src/imsniff.h:4:18: error: pcap.h: Arquivo ou diretório não encontrado
../src/imsniff.h:215: error: âpcap_tâ was not declared in this scope
../src/imsniff.h:215: error: âdhâ was not declared in this scope
../src/imsniff.h:215: error: expected primary-expression before âcharâ
../src/imsniff.h:215: error: expected primary-expression before âintâ
../src/imsniff.h:215: error: initializer expression list treated as compound expression
../src/imsniff.h:216: error: âpcap_tâ was not declared in this scope
../src/imsniff.h:216: error: âdhâ was not declared in this scope
../src/imsniff.cpp: In function âvoid process_packet(long int, pcap_pkthdr*, const u_char*)â:
../src/imsniff.cpp:71: error: invalid use of undefined type âstruct pcap_pkthdrâ
../src/imsniff.cpp:65: error: forward declaration of âstruct pcap_pkthdrâ
../src/imsniff.cpp:82: error: invalid use of undefined type âstruct pcap_pkthdrâ
../src/imsniff.cpp:65: error: forward declaration of âstruct pcap_pkthdrâ
../src/imsniff.cpp:97: error: invalid use of undefined type âstruct pcap_pkthdrâ
../src/imsniff.cpp:65: error: forward declaration of âstruct pcap_pkthdrâ



#13 Comentário enviado por djbino em 17/11/2009 - 09:39h
Valeu Jean pelo help...
Pessoal esse sript funciona muito bem
####
#!/bin/bash
ps -A | grep imsniff
TEM="$?"
if [ "$TEM" != "0" ]; then
# adicione abaixo o caminho para a pasta onde se encontra o imsniff
cd /mnt/sdb2/msn/src
# o comando para carregar.. no lugar de eth0 coloque sua placa de rede
./imsniff eth0 &
fi
########

O que percebi é que o IMsniff cai devido a versão do msn... atualizei para a versão mais recente
e os problemas acabaram...
Pessoal tive um problema aqui também em converter os logs em .txt para .html, por isso irei postar o script aqui, tambem é necessario instalar o txt2tags
Na versão que utilizo o comando para instalação do txt2tags
root@localhost:/etc# apt-get install txt2tags
Ai vai o script para conversão dos log .txt para .html, configure o caminho dos diretorios de acordo com que for necessário...
Crie um arquivo no /etc com o script abaixo
vim /etc/gerahtml

###Inicio do script###
#!/bin/bash
diratu=$(date +%d%b%Y)
mkdir -p /srv/www/htdocs/msnlog/$diratu #Caminho
cd /var/www/imsniff/msnlog #Caminho
# incluir aqui linhas de comando para backup.
for i in * ; do
#coloque aqui seus comandos
arqespac=`echo $i | sed 's:\@: :g'`
nome=`echo $arqespac | awk '{print $1}'`
mkdir -p /var/www/imsniff/logmsn/$nome #Caminho
mv $i/*.* /var/www/imsniff/logmsn/$nome #Caminho
done
#for2 entrar nos diretórios
cd /var/www/imsniff/logmsn/ #Caminho
for diretorio in * ; do
cd $diretorio
mkdir -p /srv/www/htdocs/msnlog/$diratu/$diretorio #Caminho
#for3 inserir linha em branco nos arquivos e gerar html
for arqlog in *.log ; do
sed -i 's/$/\n/' $arqlog
python /usr/bin/txt2tags -t html $arqlog #Caminho
done
mv *.html /srv/www/htdocs/msnlog/$diratu/$diretorio/ #Caminho
cd ..
done
cd /var/www/imsniff #Caminho
mv /var/www/imsniff/logmsn /tmp/msnlog$diratu #Caminho
rm -rf /var/www/imsniff/logmsn/* #Caminho
### Fim do script ###
Agende ele no crontab para executar uma vez por dia as 22:01hs
vim /etc/crontab
1 22 * * * root /etc/gerahtml

Abraço galera... espero que seja util...


#14 Comentário enviado por paulop em 18/05/2010 - 15:30h
resolvi meu problema de queda do imsn com o scrip aqui postado


porem to com o mesmo problema do el aguiar

o imsniff nunca faz log da primeira mensagem da conversa
e se fika muito tempo parado, quando for mandar alguma mensagem a 1 nao grava tb

e é isso

se algum puder da uma luz ai agradeço

Contribuir com comentário

Entre na sua conta para comentar.