【每日一记3】+第18天+Socker抓包的思路
  

平凡的小网工 26311人觉得有帮助

{{ttag.title}}
本帖最后由 平凡的小网工 于 2020-1-19 13:57 编辑

今天来研究一下socker抓包的思路。 ,最近遇到过几次非http/https通信的情况,burp、fiddler等http代理工具都无法正常抓到包,经过分析发现app是通过socket通信的,所以写出来记录下。
1、 socket与websocket
先来区别下socket与websocket,因为我们在使用burpsuite和fiddler时,发现burp和fiddler都是可以抓websocket的,所以有必要先区别一下,从本质上来说二者关系并不大,甚至说没啥关系,盗用一张图来说明下二者关系,读者可自行百度、谷歌检索二者关系。
2、socket抓包思路
为了方便理解,我实现一个简单的通过socket通信的APP和与之其对应的Server,实现一个简单功能,客户端APP发送socket消息,模拟平时项目中APP调用socket相关接口通信,同时接收服务端下发的socket消息,客户端APP运行如下所示:

服务端通过ServerSocket构造器实现socket监听绑定即可,运行如下所示:

以上,就简单实现了一个通过socket通信的c/s,通过这种方式发送的数据包,burp和fiddler之类的代理工具是无法抓到的,因为他们本来就属于http/https/websocket代理工具,对socket是无能为力的,所以我们需要换些思路。
这种方式抓包非常通用,不光针对socket方式,http/https等等也是可以的,因为这些两种抓包工具都是直接对流经网卡的数据包进行捕获,不存在区别信息传递使用什么协议,可以通过tcpdump将数据包保存成pcap格式,然后用wireshark打开进行分析,来看下用tcpdump抓到的数据包:
tcpdump显示数据包格式不是很友好,导入到wireshark或者可用wireshark直接抓包,分析起来就比较容易了,可以看到数据传输是通过socket传输的:
hook方式抓包
上述方法虽然抓包很好,但是对于渗透测试来说,我们不仅仅要看到数据包内容,更重要的是还能修改数据包,所以这里还可以使用hook方式抓包,在实现socket通信的过程,客户端(基于android6.0系统)发送消息需要会调用java.io.OutputStream.write()方法,这里源码就不方便粘贴过来了。可以看看hook结果:

到这里,能够hook到,就可以按照我们的需求来修改数据包了,当然,我们也需要找一个APP来实战下,看看在市场上的APP是否真的有效,如下图,还是有效果的。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

一个无趣的人 发表于 2020-1-22 17:18
  
干货满满,感谢楼主的分享!
发表新帖
热门标签
全部标签>
每日一问
2024年技术争霸赛
技术笔记
干货满满
技术盲盒
新版本体验
GIF动图学习
通用技术
产品连连看
信服课堂视频
秒懂零信任
功能体验
2023技术争霸赛专题
标准化排查
安全攻防
自助服务平台操作指引
技术咨询
答题自测
网络基础知识
每周精选
在线直播
问题分析处理
玩转零信任
技术晨报
华北区交付直播
畅聊IT
专家问答
技术圆桌
MVP
安装部署配置
升级
上网策略
测试报告
日志审计
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
北京区每日一练

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人