首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用wireshark和fiddler破解中控人脸识别考勤机

安防技术猿

普及安防知识,提高安全意识。

写在前面:若想实现篇中内容首先需要能接入考勤机所在网络

这篇的做法也算不上破解,只是一个作弊的小手段,拯救迟到党

单位装了中控刷脸考勤机,从机器这端考虑的话,刷脸比指纹更难破解了,毕竟每个人只有一张脸,不能用其他同事的手指代劳;而服务器端没有权限去访问,也谈不上破解,于是可以考虑在网络传输方面尝试一下。

用电脑接入考勤机所在网络,必须同一个碰撞域。这个地方很奇怪,同一个广播域(同vlan,不同接口)下没能嗅探到考勤机和服务器通信的数据包。

电脑上装网络嗅探软件,我这里用的是wireshark。选好对应网卡,开始捕获,这时去考勤机上刷一下脸,制造一个考勤过程。回来停掉捕获,准备下一步的分析过程。

这里说一下,如果知道考勤机或者考勤服务器的IP地址,可以捕获前把捕获过滤器细化一下,避免受到太多不相干的包。http://blog.csdn.net/cumirror/article/details/7054496

下一步,审视一下这些捕获到的包,如果知道IP地址当然非常好找,但如果不知道,就需要仔细找找关键字,比如你的工号,考勤机的一些关键词:

因为数据包并不多,很明显地可以找到考勤机和服务器之间的交互,如果干扰的包太多,可以在关键包上右键→追踪流→TCP流,筛选出来。

可以看出,考勤机用POST方法给服务器传了一些内容,端口号8090,User-Agent指的是上传数据的终端形式(也就是考勤机,通畅这个地方可以看出用户用的是什么浏览器),但Url中SN是什么?table是什么?Stamp是什么含义? 另外,HTTP requestbody中第一部分是工号,第二部分是日期时间,但后面的255 15 0是什么意思呢?

这时候可以查查考勤机的开发资料,虽然不多,但很幸运地找到了:https://wenku.baidu.com/view/c97ee7105ef7ba0d4b733be9

这个文档里面有关于这些字段的定义,sn是考勤机序列号,talbe ATTLOG是考勤表,Stamp是时间戳,255 15什么的,和开发文档里不相符,估计版本不一致,姑且先不管。

下一步,想办法伪造这个HTTP通讯。这里找到一个好工具,fiddler。具体用法可以自行学习,这里只讲怎么构建这个考勤场景中需要的POST方法。

选composer,依葫芦画瓢,把wireshark分析出来的内容对应填进去(Host和Content-Length不用填,自动生成的)。注意,255和15和几个0之间是tab字符隔开的,不是空格,直接用也不行。请求头的冒号后面是有一个空格的,冒号要用半角,这些细节都应该注意。 编辑完毕后点Execute,执行,此时左侧可以看到服务器返回了状态值200,OK。

如果能访问到考勤机的请假页面,就可以查一下对应这个工号的考勤记录了,神奇地发现,这个考勤记录可以不是实时添加的,也就是说你可以添加昨天或者明天的考勤记录,可能这个考勤机制很简单,没有时间验证。另外,那些参数保持不动就可以,调的时候只调工号、SN(决定了伪造哪台考勤机上传的记录),以及日期时间即可。

最后,思考一下考勤机的工作机制。抓包中,并没有抓到人脸数据在网络中的传输记录,说明人脸识别d过程是考勤机自己完成的,识别出来你是哪个工号的主人后,直接把你的工号加上当前机器的时间传给服务器。考勤机中的人脸信息,估计是事先从服务器上获取到的。另外,这个伪造方法不知道在服务器后台生成的数据库记录会不会有问题,还需考证,如果有机会访问到考勤服务器,可以探究一下。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180615G1T56700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券