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:
#!/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.
[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;
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
[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)'
[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 ?
[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