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.