ssh + wireshark分析远程机器的网络包

前提,被分析机器上有tcpdump,支持ssh登录。

http://sakananote2.blogspot.com/2010/10/ssh-wireshark.html

 ssh root@192.168.123.101 tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -

由于ssh要输入密码,而管道不会做这个等待就启动了wireshark,所以上面的命令还是稍微有点不方便,需要借助sshpass工具直接明文输入密码。先安装sshpass

sudo apt install sshpass

并且用脚本执行,只带入关键参数,避免重复输入的麻烦,毕竟少敲一个是一个,也记不住

#!/bin/bash

[ $# -lt 3 ] && {
	echo -e "Usage:\n\trewireshark.sh ipaddr password ifname"
	exit 0
}

#ssh-keygen -f "/home/$(whoami)/.ssh/known_hosts" -R "$1" > /dev/null

sshpass -p $2 ssh -o StrictHostKeyChecking=no root@$1 tcpdump -i $3 -U -s0 -w - 'not port 22' | wireshark -k -i -

当前还存在一个问题,ssh第一次连接时某个ip时会输出一个警告"Warning: Permanently added '192.168.3.1' (ECDSA) to the list of known hosts.",会由管道带给wireshark,导致wireshark解析异常,所以暂时先手动连接一次ssh.

posted @ 2020-11-19 09:42  thammer  阅读(406)  评论(0编辑  收藏  举报