Puncte:0

Conducte SSH la wireshark pe Windows

drapel ve

În operațiunile mele de zi cu zi, trebuie frecvent să execut tcpdump-uri pe servere la distanță și este o durere să salvez rezultatul într-un fișier și apoi trebuie să muți fișierul pe laptop pentru a-l analiza pe wireshark.

Am explorat comanda de mai jos și funcționează bine în Linux

ssh <gazdă_la distanță> sudo tcpdump -vv -i eth0 -U -w - | wireshark -k -i -

Dar, din păcate, laptopul meu de serviciu furnizat de compania mea are ferestre pe el și nu îmi permit să trec la alt sistem de operare. Având în vedere această restricție, încercam să obțin același rezultat, dar în Windows...

Dacă execut următoarea comandă în Windows într-un Powershell

ssh <gazdă_la distanță> sudo tcpdump -vv -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -

Primesc această eroare

    La linia:1 char:87
+ ... -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
+ ~~
Indicativ neașteptat „-k” în expresie sau instrucțiune.
La linia:1 char:44
+ ... -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expresiile sunt permise doar ca prim element al unei conducte.
La linia:1 char:90
+ ... -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
+ ~~
Indicativ neașteptat „-i” în expresie sau declarație.
    + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId: UnexpectedToken

Dacă execut comanda wireshark fără partea ssh, primesc aceeași eroare, dar dacă o execut așa

& „C:\Program Files\Wireshark\Wireshark.exe” -k -i -

Deschide Wireshark și așteaptă intrarea datelor. Având în vedere acest lucru, am încercat să schimb comanda în

ssh <gazdă_la distanță> sudo tcpdump -vv -i eth0 -U -w - | & „C:\Program Files\Wireshark\Wireshark.exe” -k -i -

În acest fel, comanda ssh este executată și tcpdump pornește în gazda la distanță, wireshark nu pornește niciodată. ce fac greșit? De ce comanda pipetă care este cel mai asemănătoare cu cea din linux nu funcționează în Windows, este diferită piperea?

drapel us
mi se pare o problemă cu Powershell... poate încercați să utilizați cmd în schimb?
BANJOSA avatar
drapel ve
Dumneavoastră, domnule, sunteți un geniu! Mulțumesc pentru indiciu. Funcționează în CMD, într-adevăr pare să fie o problemă cu PowerShell. Dar, dacă utilizatorul are nevoie de o parolă pentru a executa TCPDUMP, de care are de obicei nevoie, atunci este prezentată eroarea ```GetConsoleMode on hOutputConsole failed with 6```.
drapel us
Probabil că există o modalitate de a face asta cu powershell, dar nu știu prea multe despre powershell. Probabil ar trebui să adăugați eticheta powershell și să eliminați unele dintre etichetele inutile.
Puncte:0
drapel za

După cum a menționat @Jasen în comentarii, am încercat comanda fără a folosi PowerShell, ci folosind Git Bash pe Windows 10.

#!/bin/bash
server=<gazdă-la distanță>
iface="ens6"
ssh $server "tcpdump -s 0 -U -n -w - -i $iface nu portul 22" | wireshark -k -i -

Acest script presupune că aveți GitBash și wireshark instalate pe computerul dvs. Windows, precum și serverul și gazda care comunică prin autentificarea cu cheie publică. Asigurați-vă că aveți privilegii de root atunci când utilizați tcpdump. Portul 22 este ignorat în mod explicit, astfel încât traficul ssh nu este vizibil în timpul sesiunii de sniffing de pachete.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.