在渗透测试过程中,我们可以通过插件识别类型后,使用漏洞脚本对特定系统进行模糊。在这里,笔者将与大家分享漏洞POC验证系统的设计和研究思路。在系统开发之初,选用了分布式平台设计架构。后来因为考虑到与分布式资产扫描平台兼容的接口,最后理解了耦合机制,彻底变成了单机版。首先我们可以看到这个地方没有单独设计web管理端,只能通过命令行调度。但是,在设计中,守护进程restapi是保留的,它可以接受来自第三方平台的调度请求。插件模块调用方面,主要有三个模块:流行的漏洞插件,主要用于重现常见的手工测试方法和一些团队发现的内部漏洞。密码漏洞插件:主要包括端口、中间件、未授权应用和弱密码漏洞,包括弱密码字典。第三方漏洞插件:主要用于访问互联网上的一些开源和泄露的插件,用于结果集成和性能调优。
获取目标信息时,主要有以下几种形式:Api调度:第三方平台通过rpc传输目标信息来调度系统的api。命令行调度:通过命令行参数传递目标信息,直接进行调度。资产导入调度:通过访问接口调度并扫描第三方平台api给出的数据。在分布式资产扫描平台本身,有一个cms类别和应用程序类型信息的存储库。然而,为了考虑内部网的情况,分别提取了两个子模块:Cms认证插件:主要是对目标的cms类型进行认证。如果目标与本地指纹数据库匹配,它将被标记,否则它将访问internet查询界面。应用识别插件:主要是补充cms类型,识别服务和应用的类型,标注为第二梯队。当然,除了这些模块,还有一些小效果优化插件,这里就不多说了。
最后简单说一下扫描结果落入数据库的问题。这里选用日志打印存储+数据库返回的分布式资产扫描平台,可以关闭返回选项,保证了本系统在恶劣环境下的兼容性。当扫描内部网系统或带有敏感防火墙的系统时,我们可以支持访问多种类型的代理。速率控制,检测敏感服务器时,第三方插件可能带来的密码认证爆破机制会比较粗糙。要么是单线程转,要么是大范围的线程池,很容易让服务器失效,或者让IDS很快发现。因此,对于这个块的控制,我们需要进行详细的优化,选用动态速率控制的策略,而不是硬编码来配置和分配任务。如果想深入的对网站进行全面的漏扫服务的话可以向SINESAFE,鹰盾安全,大树安全,绿盟等这些网站安全公司来做更详细的人工手动安全测试服务来确保网站的安全问题,防止被黑客入侵。
对于第三方插件,我们在统一调度机制和库文件上花了不少功夫,还有一个关键点就是转换库的格式。在各种插件的上报过程中,我们会尽量为第三方插件挂接数据上报层,统一格式后上报。但是,并不是每种插件都有一个统一的将记录放入库中的过程,可能需要为这种插件重写函数。目前我们的插件都是点击式的。为了符合法律法规层面的制度,我们没有深挖漏洞,需要手工使用和审核。