como encontrar proces que é ping localhost

1

Como você pode encontrar o processo emitindo ping para o host local? Embora não seja script, onde o comando ping pode ser simplesmente grep da tabela de processos.

Eu usei o wireshark, mas não é de nenhuma ajuda descobrir qual processo realmente está causando o ping.

Muito obrigado por qualquer dica.

    
por readyblue 15.07.2015 / 12:09

3 respostas

4

O comando sudo lsof -n |grep "st=07" parece funcionar.

Para testá-lo, executei ping como mostrado abaixo em um terminal para gerar pacotes ICMP

arul@cheetah:~$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.049 ms

Em outro terminal, corri lsof como mostrado abaixo. Você pode ver que a saída mostra o processo e o pid que é a fonte dos pacotes ICMP.

arul@cheetah:~$ sudo lsof -n |grep "st=07"
ping       3344                   arul    3u      raw                         0t0     602086 00000000:0001->00000000:0000 st=07

source: link

    
por 17.07.2015 / 03:28
0

Você pode fazer isso com o systemtap, que pode monitorar todos os subsistemas, assim você não precisa verificar o estado do sistema para um momento específico - você pode registrar eventos:

link

    
por 17.07.2015 / 08:13
-1

O envio de pacotes de solicitação de eco ICMP precisa de privilégios de root. Então você tem 2 opções:

  • verifique a tabela de processos para processos executados na conta raiz ou com o bit SUID
  • verifique o processo "ping"

Comandos de exemplo:

ps aux |grep ping
ps aux |grep root |grep -v \[

Em seguida, verifique todos os resultados do segundo comando, se o binário em particular tiver o bit SUID:

ls -l 'which dhclient'
ls -l 'which getty'
ls -l 'which passwd'
ls -l 'which ping'

Como você pode ver na lista de permissões, os programas 3 e 4 têm bit SUID, enquanto o primeiro e o segundo não.

    
por 15.07.2015 / 12:46