Рейтинг:0

Подключение SSH к wirehark на Windows

флаг ve

В моих повседневных операциях мне часто приходится запускать tcpdump на удаленных серверах, и очень сложно сохранить вывод в файл, а затем перенести файл на свой ноутбук, чтобы проанализировать его на wireshark.

Я изучал приведенную ниже команду, и она отлично работает в Linux.

ssh <удаленный_хост> sudo tcpdump -vv -i eth0 -U -w - | проводная акула -k -i -

Но, к сожалению, мой рабочий ноутбук, предоставленный моей компанией, имеет Windows, и они не позволяют мне перейти на другую ОС. Учитывая это ограничение, я пытался добиться того же результата, но в окнах...

Если я выполню следующую команду в Windows в PowerShell

ssh <удаленный_хост> sudo tcpdump -vv -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -

я получаю эту ошибку

    В строке:1 символ:87
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~
Неожиданный токен '-k' в выражении или операторе.
В строке:1 символ:44
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Выражения разрешены только в качестве первого элемента конвейера.
В строке:1 символ:90
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~
Неожиданный токен '-i' в выражении или операторе.
    + Информация о категории: ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId: UnexpectedToken

Если я выполняю команду wireshark без части ssh, я получаю ту же ошибку, но если я выполняю ее так

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

Он открывает wireshark и ждет ввода данных. Имея это в виду, я попытался изменить команду на

ssh <удаленный_хост> sudo tcpdump -vv -i eth0 -U -w - | & 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -

Таким образом, команда ssh выполняется, и tcpdump запускается на удаленном хосте, а wirehark никогда не запускается. Что я делаю не так? Почему конвейерная команда, которая больше всего похожа на команду в Linux, не работает в Windows, отличается ли конвейерная обработка?

флаг us
мне кажется проблема с powershell... может, вместо этого попробуйте использовать cmd?
BANJOSA avatar
флаг ve
Вы, сэр, гений! Спасибо за подсказку. Это работает в CMD, действительно, похоже, это проблема с PowerShell. Но если пользователю требуется пароль для выполнения TCPDUMP, который обычно требуется, то появляется ошибка ```GetConsoleMode on hOutputConsole failed with 6```.
флаг us
Вероятно, есть способ сделать это с помощью powershell, но я мало что знаю о powershell. Вероятно, вам следует добавить тег powershell и удалить некоторые ненужные теги.
Рейтинг:0
флаг za

Как упоминал @Jasen в комментариях, я попытался выполнить команду без использования PowerShell, а вместо этого использовал Git Bash в Windows 10.

#!/бин/баш
server=<удаленный-хост>
ифэйс = "энс6"
ssh $ server "tcpdump -s 0 -U -n -w - -i $iface не порт 22" | проводная акула -k -i -

Этот скрипт предполагает, что на вашем компьютере с Windows установлены GitBash и wireshark, а также сервер и хост обмениваются данными через аутентификацию с открытым ключом. Убедитесь, что у вас есть root-права при использовании tcpdump. Порт 22 явно игнорируется, поэтому трафик ssh не виден во время сеанса анализа пакетов.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.