远程服务器抓包方法
远程抓包方法
在实际环境中,可能会遇到部分目标机器存在性能差,存储空间小等情况,导致无法长时间在目标机抓流量并存储数据包
此时我们可以尝试利用目标机工具,对其进行远程抓包,从而避免将数据包存储在目标机上
Tcpdump+ssh+wireshark
(50条消息) 用wireshark+tcpdump+ssh远程抓包并实时显示_tcpdump 抓包实时转发_转转耳朵的博客-CSDN博客
利用ssh登录远程主机,然后命令tcpdump开启抓包,并将tcpdump抓到的结果输出到stdout,再传回本地PC机,而本地PC机上的wireshark以stdin为输入,两者以管道连接传输
命令
1 | ssh root@some.host 'tcpdump -i eth0 port not 22 -s 0 -l -w -' | wireshark -k -i - |
命令执行后会弹出wireshark界面,这时需要切回刚刚的命令行,因为需要输入密码以登录远程主机(已经配置免密另说),连接成功后即开始抓包,并在本地PC的wireshark上实时显示抓包结果。
==注意==
由于是通过ssh隧道和远程主机进行的链接,链接中的通讯也会被抓取,从而导致数据包大小不断成倍增长
可尝试不抓ssh端口的数据包,或者只抓内网通讯网卡的数据包
参数解释
tcpdump中 -l
(这里是小写的字母L)是指line-buffer,即不使用缓存,直接输出,否则就会一段段的输出
-w -
是指写文件,目标文件为标准输出。
wireshark中 -k
是指马上开始捕获数据,-i -
是指从指定接口获取,源为标准输入。
截图
Tcpdump+nc+wireshark
如果某些机器上没有ssh(例如某些路由器只有Telnet,或者只有webshell),则可以使用nc进行数据传输
==注意==
同样,要避免抓取通讯端口的数据包
命令
目标机
1 | tcpdump -i eth0 port not 2333 -s 0 -l -w - | nc 192.168.2.111 2333 |
操作机
1 | nc -lvp 2333 | wireshark -k -i - |
Tcpdump+nc+nohup+wireshark
直接挂在后台进行抓包,注意nohup会在管道符之前截断,需要用sh -c
将管道符包含起来
1 | nohup sh -c 'tcpdump -i eth0 port not 2333 -s 0 -l -w - | nc 192.168.2.111 2333' & |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Site-01!