Como visualizar o tráfego em uma porta ssh encaminhada?

4

É possível configurar uma porta SSH para a frente, onde o cliente ssh imprime o tráfego trocado através da porta ssh para a tela ou um arquivo.

Estou tentando depurar um problema e quero ver o que está sendo enviado entre um processo Java em execução em minha máquina local e um processo remoto em execução no Solaris. Eu estou usando o encaminhamento de porta via ssh para que eu possa percorrer o programa java. Normalmente eu teria que copiar os arquivos .java para a máquina Solaris, construí-los e executá-los e não é uma maneira muito produtiva de depurar, portanto, o encaminhamento de porta. O cliente e o servidor usam o protocolo IIOP, portanto não posso usar um proxy http para monitorar o tráfego.

    
por ams 12.08.2013 / 17:15

4 respostas

6

Eu fazia batota e colocava um par de netcat e tee no pipeline:

nc -k -l -p $localport -c "tee file.out | nc 127.0.0.1 $portforwardport"

em que $localport é uma porta arbitrária para apontar seu processo de java em e $portforwardport é seu número de porta de encaminhamento de porta ssh. O -k faz com que o netcat de escuta fique em escuta, em vez de sair após a primeira vez que um cliente se desconecta. A saída terminará em file.out no seu host local.

    
por 12.08.2013 / 23:52
3

Como @derobert disse nos comentários, sua melhor aposta provavelmente será com uma ferramenta como a wireshark. Você desejará direcionar o tráfego entrando e saindo de seu processo Java antes de entrar no túnel ssh. Como o túnel está criptografado, você não conseguirá atingir o pico dentro dele.

Além disso, o site sectools.org mantém uma extensa lista de ferramentas de sniffing que você pode verificar se o wireshark não parece atender às suas necessidades.

por 12.08.2013 / 20:39
0

Você pode usar tcpdump

$> sudo tcpdump -vv -x -X -s 1500 -i lo 'port 8000' 

Isso funciona se você mapeou o túnel ssh para localhost (interface lo ) para a porta 8000

-vv verbose level 2
-X  print data in hex and ASCII 
-x  print data in hex to a max limit of -s 
-s  snaplen - limit of data to print
-i eth0 tcpdump on the eth0 interface

Você também pode salvar este script no seu caminho como sniff-port

#!/bin/bash -xe
# use the first argument as port. if not defined default to 8080
PORT=${1:-8080} 
# sniff sniff
sudo tcpdump -vv -x -X -s 1500 "port $PORT" -i lo

e depois usá-lo como

$> sniff-port 1234
    
por 19.02.2018 / 12:47
-2

Você pode usar o link do kismet para sniffing.

    
por 18.12.2013 / 10:39

Tags