本文仅用于安全研究与技术学习,请勿用于任何违法用途。
一、背景介绍
企业内网的网络准入系统一般会在终端安装agent,利用agent检测终端符合企业内部安全要求才能接入内网。某些企业可能要求接入内网的计算机不能同时连接其他网络。
某网络准入系统的安全检测项中,有一项多网卡检测,如果检测到存在2个或以上的处于已连接状态的网卡,则禁止连接内网。
同时还有设置了例外情况,如果网卡的名称中包含“VMware”或者“virtual”,则不算是多网卡,因为企业内有些虚拟桌面的瘦客户端或者虚拟机,如果都禁止了,会影响人员办公。
二、破解需求
某些特殊情况下,需要同时连接内网和互联网,如远程运维等。而企业内网又无法直接连接互联网,就需要用一台计算机同时连接双网,才能进行远程桌面的运维。
三、解决方案
总共有三种方案,推荐第一种,剩余两种仅供学习研究。
1、向企业网络管理部门申请,在准入系统中开启策略,以允许该计算机同时连接双网。
2、想办法将该计算机的网卡名称中添加“VMware”字段,以跳过多网卡检测。
3、通过逆向破解agent,让agent即便检测到了多网卡,也返回正常。
这里介绍一下后2种方法,重点是第3种方法。
四、使用方法2:修改网卡名称
首先,使用“重命名”的方法修改网络连接名称是不可行的,说明agent检测的不是这个字段
尝试修改注册表,在注册表中搜索网卡的硬件名称,将搜索出来的含有硬件名称的字段后面都加上“VMware”字段。重启计算机,发现绕过成功!
但这种方法有2个问题:
1、内网经常掉线,用一会就掉线了,需要手动重新进行准入安全检测,等检测成功才能入网,但过一会又自动掉线了。原因不明,也未深究。
2、必须对除了连接内网的网卡外的其他所有网卡都进行注册表的修改,如果其他网卡中有USB网卡,每次网卡插拔后,会重新识别网卡内嵌的硬件名称,这样与已修改的名称对不起来,系统就会认为这是个新网卡,就会在注册表里添加新网卡,这样就还需要再次修改注册表的网卡名称。改来改去好麻烦。
采用破解的方式可一次性解决所有问题。
五、使用方法3:破解agent
(一)网络准入系统的检测机制及破解思路
1、计算机启动后,agent自动打开。
2、进行注册用户的认证登录。这里需要提前取得企业网络管理部门的注册认可,才能自动登录。如未注册或未登录成功,则不予放行,待注册登录后进行后续的动作。
3、agent进行安全检查,检查的内容根据企业给分配的角色不同而有所差别。
4、通过检查后,予以放行,可访问内网。未通过检查,不许放行,启动自动修复机制,对能自动修复的检查项进行自动修复,如开启屏保密码、添加本地防火墙策略等等。有些不能自动修复的,如安装指定的杀毒软件、多网卡时禁用网卡等操作,则进行提示,由用户自行修复。
5、修复完成后,再次进行安检,安检通过后,予以放行。
破解思路:逆向找到agent检测多网卡的那段代码,将返回值进行修改。
(二)逆向过程
第一,观察agent的进程,存在3个进程:
通过观察cpu的使用情况,确认第一个是准入检测的进程,剩下两个有一个是守护进程,另一个可能是控制网络通断的进程,这两个不是重点关注对象,主要关注第一个。
第二,进入agent的安装目录,逐个文件的观察,重点观察:
1、dll文件的文件名,通过文件名能发现一些大致的线索,比如AsmAuthClient.dll可能跟客户端认证相关,AsmFunctionMgr.dll可能是管理函数的,这些信息不一定准,但能提供一个大致的方向。
2、每个exe文件都点点看,有些有反应,有些没反应,有些是调试软件用的工具。这里,我发现了AsmFuncView.exe程序,是供运维人员使用的一个工具箱,可以查看软件运行过程中的各种日志。
3、每个xml文件和txt文件都打开看看,里面的内容即便一开始看不明白,先记住文件名和大概的内容,说不定后面就有用。这里发现存在几个xml文件,应该对安检策略有关联,包括:
—— SecurityCheckPolicy.xml,里面存储这安检策略的信息
—— SecurityCheckResult.xml,里面存储这安检结果的信息
推测,agent应该是从服务器获取安检策略,进行检查后将结果上传给服务器。策略文件是从服务器获取的,结果文件是在程序生成时直接上传给服务器的,直接修改这两个文件没有任何意义。
进一步观察文件内容,发现SecurityCheckResult.xml中一些值得警觉的内容:
<Result>
<ItemID>613</ItemID>
<Key>Yes</Key>
<DllVersion>5, 2, 0, 226</DllVersion>
<CheckType>
<InsideName>CheckUnlawfulConnectOut</InsideName>
<OutsideName>网络连接检查</OutsideName>
<Desc>检查当前计算机是否存在网络连接行为,或者双网卡,拨号上网,无线上网等情况,如果存在以上情况,给予相应处理.</Desc>
<Result>No</Result>
<Message>发现违规网络连接</Message>
</CheckType>
<Info>
<AdapterInfo>
<Description>Realtek Gaming 2.5GbE Family Controller</Description>
<Mac>a0:36:bc:d1:ff:af</Mac>
<Ip>10.114.241.176</Ip>
</AdapterInfo>
<AdapterInfo>
<Description>ASIX USB to Gigabit Ethernet Family Adapter</Description>
<Mac>f8:e4:3b:ef:af:04</Mac>
<Ip>192.168.83.4</Ip>
</AdapterInfo>
<AdapterInfo>
<Description>Intel(R) Wi-Fi 6E AX211 160MHz</Description>
<Mac>c8:cb:9e:b1:8d:66</Mac>
<Ip>172.17.26.101</Ip>
</AdapterInfo>
</Info>
</Result>
这部分内容就是检查是否存在多网卡连接的检测结果,其中<Result>字段是no,应该是检查不合格,我需要让程序最终将这个字段填写为yes,另外,还发现<InsideName>字段的内容是CheckUnlawfulConnectOut,这个字段叫内部名称,可能是该检查项在程序内的名称,也有可能是该检查项的内部函数名称。
还有一个文件Internal_Config.xml:(看名字有点意思,“内部配置”)
<ASM>
<LoadBeforeNetwork>
<Module>
...(已截断)
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-291226.htm
[原创]破解某网络准入系统的多网卡连接检测机制(一)破解多网卡检测但发现其他问题
225 浏览
3 回复
期待下文。
搞大模型搞的,看到 agent 酒以为是智能体。还在奇怪哪家会在终端电脑上运行智能体来进行权限检测呢。
期待更新~