Как экспортировать результат tcpdump, запущенный в реальном времени на удаленной машине, в файл pcap на моем компьютере? - PullRequest
0 голосов
/ 04 июня 2019

У меня есть зонд Wi-Fi, которым я бы управлял. В потоке я должен запустить tcpdump по SSH и получить результат через туннель ssh и записать его в файл pcap на моем собственном компьютере.

Теперь я запускаю команду tcpdump и получаю результат, но не знаю, как записать его в файл PCAP, и я не совсем понимаю, какой тип данных я получаю.

self.dataSSH=self.TunnelSSH_data.OuvrirTunnelSSH() #self.dataSSH is a paramiko.SSHClient object
sin, sout, serr = self.dataSSH.exec_command(self.ssh_command, get_pty=True)

while self.running :
   for l in self.line_buffered(sout):
      print(l)

def line_buffered(self,f):
  line_buf = ""
  while not f.channel.exit_status_ready():
      line_buf += to_unicode(f.read(1))
      if line_buf.endswith('\n'):
          yield line_buf
          line_buf = ''

Содержимое ssh_command:

"tcpdump -i " + <Interface to monitor> + " -B 8192 -s 500 -U -n -w -"

Сегодня я просто печатаю результаты в юникоде, но не знаю, как записать их в файл pcap.

1 Ответ

0 голосов
/ 04 июня 2019

Мне бы хотелось увидеть код, который вызывает "tcpdump", чтобы дать вам четкий ответ, но вы должны знать, что "tcpdump" уже дает вам возможность записать результаты в файл ".pcap".Пример:

tcpdump -s 0 port ftp or ssh -i eth0 -w mycap.pcap

Приведенный выше код сбрасывает результаты в «mycap.pcap» (взятый из https://linuxexplore.com/2012/06/07/use-tcpdump-to-capture-in-a-pcap-file-wireshark-dump/).

Так что я быtry создает pcap в зонде, затем передает трассировку pcap на компьютер и затем удаляет файл pcap с диска зонда, если это действительно необходимо.

...