Java高效开发-SSH+Wireshark+tcpdump组合拳
目标
实现抓取远程服务器的数据包在wireshark中展示,不需要频繁使用tcpdump抓包后保存为cap数据包,在进行从服务器下载进行解析;
工具
1.ssh
win10默认没有开启ssh服务端的,打开方式:搜索-->可选功能-->添加功能-->openSSH服务器-->安装即可
2.wireshark抓包工具
官网下载:Wireshark · Download
本人提供的阿里云盘下载链接:https://www.aliyundrive.com/s/XDHMTb835TU
3.tcpdump命令
1.先查看目标服务器是否安装,tcpdump --version
,出现以下信息,则已安装
tcpdump version 4.9.2
libpcap version 1.5.3
OpenSSL 1.0.2k-fips26 Jan 2017
2.如果没有安装,直接使用yum快速进行安装,不在介绍其他安装方式
yum install tcpdump
使用 1.tcpdump
这里只做简单介绍,能够抓取到想要数据包即可
参数:
-i: 需要抓包的网卡
-s: 设置数据包大小,设置为“0”时,使用默认数据包大小
-S 将tcp的序列号以绝对值形式输出,默认相对值
-l :(小写的 L )不缓存,直接输出
-w -:将原始数据包写入文件,“ - ”表示使用标准输出
-nn 不进行端口名称的转换,默认转换,比如22端口会显示ssh
-w 存储抓到的包,一般.cap格式
-v 输出更详细的报文信息,可以多个v一起使用,如-vvvv
src host 指定源ip
dst host 指定目的ip
src port 指定源端口
dst port 指定目的端口
or|and|nor 与或非
2.wireshark
简单使用 1.抓取本地的包,看到我wifi网卡有数据传输,双击即可他即可进行抓包
文章图片
2.右键指定的数据行-》追踪流-》tcp流 http流 等,就可以看到对应的数据包了
文章图片
3.常用的筛选命令
eq == 等于ne
!= 不等于gt
> 比…大lt
< 比…小 ge
>= 大于等于le
<= 小于等于 and
|| 且 or
&& 或 not
! 取反过滤http请求的uri中含有/dll/test.htm?字段的请求信息
http.request.uri contains “/dll/test.htm?”过滤包含81:60:03的udp数据包
udp contains 81:60:03matches 匹配过滤条件中给定的正则表达式
http.request.uri matches "表达式"过滤经过指定域名的http数据包
1.http.host==magentonotes.com
2.http.host contains magentonotes.com过滤指定http响应状态码
http.response.code==200过滤所有的http响应包
http.response==1过滤所有的http请求包
http.request==1过滤所有请求方式为POST的http请求包,注意POST为大写
http.request.method==POST过滤请求的uri,取值是域名后的部分
http.request.uri=="/demo/test"过滤http头中server字段含有nginx字符的数据包
http.server contains "nginx"过滤content_type是text/html的http响应、post包,即根据文件类型过滤http数据包
http.content_type == “text/html”
3.ssh+wireshark+tcpdump(重点) 这里将介绍如何进行抓取远程的服务器数据包
1.进入到wireshark的安装目录,在目录栏输入cmd 2.输入命令:
ssh root@192.168.1.10 -p 22 "tcpdump -i eth0 -n tcp port 8080 -s 0 -l -w -" | "wireshark.exe" -k -i -
注意:192.168.1.10为自己的服务器地址,eth0为指定网卡,8080为指定抓取的端口,这些自己根据实际情况调整参数,如果抓不到包,指定网卡,或者查看自己的过滤条件
3.回车会弹出wireshark,返回到cmd界面,输入yes,然后提示输入服务器密码,然后输入密码
文章图片
4.大功告成,这样不仅免去了使用tcpdump在服务器抓包保存后,再使用wireshark进行解析繁琐操作,直接配合wireshark过滤实时观察解析服务器的数据包,大大提高平时开发过程中的效率 【Java高效开发-SSH+Wireshark+tcpdump组合拳】感谢各位小伙伴阅读到最后,如有错误,敬请指正。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 深入理解Go之generate
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)