少年持剑 发表于 2023-12-22 20:36

某软件WFP防火墙分析

本帖最后由 少年持剑 于 2023-12-22 20:39 编辑

前言
https://static.52pojie.cn/static/image/hrline/1.gif
最近朋友找我帮忙,起因是他们公司有一个VPN软件,只有使用这软件才能正常访问公司内网站。
这个软件需要账号登录,一个账号只能在一个设备登录,另一个设备登录就会被挤下线。
因为他有几台电脑,所以需要一个账号能几个设备一起使用。

尝试
https://static.52pojie.cn/static/image/hrline/1.gif

因为对网络方面不太了解,所以最先想到是在一台电脑(后面称为主机)建http代理,其它电脑(后面称为客机)通过代理在访问网站。
主机使用CCProxy 设置HTTP 端口



客机通过proxifier设置代理地址和端口。


上面设置好后,在VPN软件没有运行时,代理能正常通过,CCProxy能正常显示用户,但是VPN软件驱动后 代理就生效,CCProxy 没有流量通过。

寻找原因
https://static.52pojie.cn/static/image/hrline/1.gif

没有流量通过,可能是路由,防火墙和系统原因。但是防火墙两边都关了,所以只能先用wireshark抓包看看。
在wireshark里面可以看到只有客机向主机重复发送TCP第一个握手的SYN,而主机没有发向客机的数据包,所以不可能是路由,应该是系统做了手脚。
用pchunter 可以观察到启动VPN软件前后有一个驱动被加载。




驱动分析
https://static.52pojie.cn/static/image/hrline/1.gif

把驱动直接拖到ida里面,因为没有壳,直接看导入函数,可以初步判断应该是用wfp搞的防火墙,拦截了局域网内其它电脑的数据包。
使用Windows-Kernel-Explorer工具可以查看所有wfp注册的callout,在启动vpn软件后会多出几个回调函数,而图中的OutBound 显然就是驱动管理出站的回调。
根据回调地址,在ida中定位到函数:可以看到函数主要由HandleIPv4来决定最后的actionType 是将数据包放行或阻止。而filter->context 指向DeviceObject->DeviceExtension 用来存放防火墙的出入站规则和行为。

进入HandleIPv4函数,根据返回值跟着可以找到过滤局域网数据判断的关键位置:



sub_1400065C4负责对传入IP跟驱动定义的防火墙规则匹配,根据返回的operator来决定是阻止数据,放行等,进入sub_1400065C4 函数后第一行是



a1 是之前的DeviceExtension而a3是传进来的6 对应TCP ,其它协议UDP等对应不同值。

0x1D018i64* a3 + a1 + 0x48对应的是TCP防火墙规则。
而sub_1400041F0函数作用就是将sub_1400041F0所有防火墙规则拷贝到v14 这个数组里面。
而接下来的代码就是通过遍历v14数组将IP和防火墙规则匹配了,




之后只需要通过MatchFilter函数查看v14 结构偏移就可以得到每条防火墙规则的结构。用ce lua脚本遍历





在最后输出结果可以有下面这一行




结尾
https://static.52pojie.cn/static/image/hrline/1.gif

在ce中将上面那条规则对应的operator改成1后,局域网代理就能正常访问了。
之后就是写驱动,或者看防火墙规则在3环怎么储存来修改了。


因为是公司的软件所以样品就不好发了。。。。。



人家故里 发表于 2023-12-25 17:10

大佬NB,正在入门驱动开发,想请教一下WFP里面能不能实现伪造请求响应

少年持剑 发表于 2023-12-25 17:16

人家故里 发表于 2023-12-25 17:10
大佬NB,正在入门驱动开发,想请教一下WFP里面能不能实现伪造请求响应

可以的。

yang2835 发表于 2023-12-25 20:09

水平真高!{:1_921:}

daitoudage 发表于 2023-12-25 21:00

哈哈哈感谢楼主分享啊啊啊:lol

sdieedu 发表于 2023-12-26 07:42

牛的技术。

dork 发表于 2023-12-26 09:18

信息量还是蛮大 的

Arthurian 发表于 2023-12-28 18:24

mark,学习一下

风之子martin 发表于 2024-1-9 17:14

很实用的教程,一路跟着大佬学习!

风之子martin 发表于 2024-1-10 11:57

好厉害啊,跟着楼主学习了
页: [1] 2
查看完整版本: 某软件WFP防火墙分析