在我看来,很多人,尤其是年轻的人,都想成为酷酷的黑客。 入侵网站,电话,访问系统。 因此,我对这种孩子气的热情有点。 因此,定期浏览各种软件,并没有发现任何值得的东西。 但是有一天,运气给我,甚至什么! ACS,具有许多漏洞,可以访问来管理整个系统(打开/关闭门,添加访问卡等)。
有意思吗 然后欢迎来到凯特!
下文所述的所有操作均在测试台上进行。 这篇文章仅出于教育目的而写,总的来说,这都是作者的发明。
SKUD-访问控制和管理系统
碰巧的是,有一次我在一家建筑和公路企业工作,在那里我编写了一套程序,用于发行通行证,为这些通行证发行食品并进行报告。 我需要将所有这些与一个相当流行的ACS集成在一起。 开发人员对文档请求的响应时间很长,截止日期很长。 我必须自己了解他们的软件。

近似ACS操作方案
我开始从数据库中学习。 ACS服务器与firebird 2.5数据库一起使用。 它的登录名和密码原来是标准的,已经非常令人震惊了,但是可以在程序设置中设置密码。 数据库中帐户的密码是经过哈希处理的,但是没有盐,这很糟糕,但是又很不严格。 它存储所有通行区,用户,其卡号,访问权限和控制器地址。

b
接下来,我们采用一些用于流量侦听的程序(我采用了“ SmatrSniff”,这是第一个可以查看本地主机流量的程序),并查看客户端向服务器发送的内容。 所有数据都以未加密形式通过TCP传输,有些通过UDP传输。 从这里开始乐趣。 服务器首先从数据库,其位置发送清除密码,然后才检查用户名和密码!

来自masterkey数据库的密码
事实证明,在不知道用户名和密码的情况下,我们可以获得对数据库的完全访问权限,这几乎为我们提供了无限的可能性。 我们可以给自己一张可以访问任何物体的卡。 将您的卡开给其他用户,并以他的名字命名。 但是要将这些数据上传到控制器,您需要从客户端向服务器发出命令。 尽管我们可以将密码从数据库中获取给客户端,但是请使用开放的MD5数据库并尝试查找哈希的密码(我会提醒您,数据库中的密码是无盐的),但是如果密码很复杂,则很可能什么都不起作用。 我们将不得不等待有人点击完整的上传按钮。
然后我看了一下,授权没有影响任何事情。 为此,我尝试使用“ TCP / IP Builder”向服务器重复请求。 是的,在没有授权的情况下,对服务器的后续请求将无法正常工作(以响应方式拒绝)。 在这里,我有些沮丧,因为要进行集成,我将必须实现整个授权链的重复,然后才发送包以将数据加载到控制器中。
最后,我决定重复该请求以将门转移到打开模式。 服务器回答“确定”,门在发出哔哔声。 未经任何授权。 我从本地网络上的另一台计算机重复了同样的操作,它也起作用。

近似包装类型
这意味着我们可以从本地网络上的任何计算机打开/关闭任何门。 为自己开一张卡,然后立即将这些数据下载到控制器。 然后冷静地浏览这些对象并删除我们访问的所有日志。
我花了几个小时来学习控制器和服务器之间的通信协议,以便最终打破它,但是我无法完全理解数据格式。 但我确信没有任何保护。 这些软件包肯定具有控制器和服务器/网关的mac地址(绑定到服务器的是mac地址,数据库中没有加密密钥等,因此您很可能假装是知道mac服务器的控制器的服务器)。 不幸的是,没有转储或访问设备,因此无法显示。
因此,我们拥有完整的访问控制漏洞,这使我们可以不受限制地访问对象的通道。 由于组件和免费软件的成本低廉,因此此ACS非常普遍。 她站在莫斯科的许多学校里,我在其他地方见过她。 该公司以在各种活动中获奖而感到自豪。 我没有具体命名该组织,也没有写信给他们。 因为我相信,如果不从头开始重写所有软件并更新购买该系统的人员的所有设备,就无法解决这样的体系结构级别的漏洞(在体系结构级别上还有几个更严重的漏洞,但是对它们的描述将使本文增加三倍)。 对于那些从ACS屏幕中学到并且已安装在其中的用户,我建议您完全隔离系统的所有组件所在的网络(这被认为是“最佳实践”),并且仅通过VPN即可访问数据库以添加员工。 正确的路由配置也可以提供帮助。