【工具分享】AssetScan内网脆弱面分析工具

前言

分享个写的工具,关于内网漏洞检测的,我给它起了个听起来很牛皮的名字,AssetScan内网脆弱面分析工具(AS),糊弄糊弄人,哈哈。也不知道这个工具怎么样?希望它华而有实!

仅个人之见,感觉这两年的红队比较火,不管是在招聘,项目,都在考察攻击人员的内网测试能力。后渗透,重要的一点为信息收集,有着一个较好的信息收集基础,能大大提高我们的测试效率,平时我们在内网中可能会依托一些已知工具进行信息收集,如Nmap去进行一些资产的探测,脆弱面的探测,但是效率非常的慢。如果扫一个网段时间就更不敢恭维了。而且,输出的信息只有部分是我们需要的,如开放的端口,有些端口对我们测试人员来说没有任何的实用价值,通常我们进行后渗透时我们的关注点通常为资产的直接脆弱点,可直接Getshell,可直接RCE,可直接获取相关权限,信息等等此类的漏洞。

所以,本工具因此而生。快速的探测内网存活资产,快速分析每个资产的脆弱面,并尝试进行漏洞检测,将存在漏洞的资产输出,内容进行可视化输出。采用Masscan,Nmap,Socket多种方式对风险端口,常规端口,全端口进行探测。针对内网渗透测试的针对性漏洞,如未授权访问,软件后门,命令执行等关键漏洞进行检测,并对可字典爆破的口令服务进行提醒。现将与大家一起分享一下工具的设计一些设计思路,以及功能介绍。

框架

AssetScan工具主要分为4个部分,分别为数据处理模块,扫描模块,检测模块,报告模块。

数据处理模块:针对可能的业务场景,通常我们需要对部分IP,部分网段进行测试,所以可直接通过-i 的方式直接输出,如单个IP,多个IP,整个网段,可混合使用,通常我们还有可能是得到某一个IP地址表文件,所以数据处理模块还支持导入文件的形式,如xls,csv,txt等。主要采用了IPy模块对传入数据进行处理。将处理好的数据进行存活性检测,存活性检测直接采用了Ping存活检测,为啥选择Ping方式检测存活呢,我的狡辩很简单,内网环境的安全环境可能会比较低吧,且方便简洁,效率高。

扫描模块:扫描方式,使用了三种方式,针对不同的场景,使用Socket,Masscan,直接调用Nmap进行探测,可根据待测IP的数量以及具体的场景实际选择方式,如扫描目标也分为为两种,全段口探测,风险端口探测,全段口探测没什么介绍的,1到65535,风险端口探测主要为可能出现漏洞的端口。

漏洞探测模块:针对风险端口进行针对性扫描,主要为相关端口漏洞的Poc脚本,部分直接调用了Nmap的脚本去检测(有现成的就不想再费劲的去写了),Weblogic检测直接才用了大神的现成脚本,我觉得他写的非常不错,就借鉴过来用了。

报告模块:报告模块会针对检测出来的信息,资产信息,存活信息,端口开放信息,端口漏洞信息进行报告的生成,因为本工具为分段计费,上车的乘客~呸,本工具为分段处理,想到可能需要的信息阶段不一样,没准我就想看看存活的信息,所以设置了分段结束直接生成报告选项。

毕竟人有男女之分,系统也有Unix,Windows之分,所以在每个模块相应的初始会先判断一下当前系统的类型。执行对应的代码。

功能介绍

说完了一个大概的框架介绍,给大家介绍一下工具功能:

(1)工具支持IP存活检测

(2)工具支持IP端口检测,分为三种模式:Masscan,Nmap以及Sock探测的方式,可针对IP的数量,以及性能的预算进行选择使用

(3)IP端口检测支持全端口检测,Top1000检测,风险端口检测

(4)工具针对检测出来的风险端口可进行漏洞检测

(5)工具支持单个IP,多IP,IP段混合输入,同时支持CVS,XLS,TXT文件IP批量导入

(6)工具提供可视化报告输出,包括具体测试数据,图表等

漏洞支持

本脚本目前集成了以下漏洞检测Poc,Poc的类型主要分为检测型Poc,提醒型Poc,检测型的可直接探测是否存在漏洞,提醒型的无法检测漏洞,此类多为需要爆破口令类漏洞,如开放了3306端口,你可以去爆破账号,但是如果直接在工具里集成爆破脚本,那么脚本工作效率会非常的差,后期脚本更新会加入Top5检测~

21端口-弱口令提醒检测,后门检测,匿名登录检测

22端口-弱口令提醒检测

23端口-弱口令提醒检测

80端口-Http.sys漏洞检测,PHPStudy后门检测,IIS短文件名漏洞

110端口-弱口令提醒检测

143端口-MAP弱口令检测

389端口-匿名访问漏洞

443端口-心脏滴血检测,PHPStudy后门检测

445端口-永恒之蓝,08067检测

873端口-Rsync未授权检测

995端口-MAP弱口令检测

1433端口-弱口令提醒检测

2049端口-NFS未授权访问漏洞提醒

2181端口-Zookeeper未授权访问漏洞检测

3306端口-弱口令提醒检测,cve2012-2122认证绕过检测

3389端口-MS12-020漏洞,CVE-2019-0708提醒

4848端口-GlassFish未授权访问漏洞检测

5432端口-PostgreSQL弱口令检测提醒

5900端口-VNC弱口令检测提醒

5984端口-CouchDB命令执行漏洞提醒

6379端口-未授权检测漏洞,弱口令提醒检测

7001端口-Weblogic反序列化漏洞

8080端口-IIS短文件名漏洞

9200端口-ES目录遍历漏洞,CVE-2014-3120,CVE-2015-1427远程命令执行,未授权访问漏洞

11211端口-未授权访问漏洞

27017端口-弱口令提醒检测,未授权访问漏洞

50030端口-Hadoop未授权访问漏洞检测提醒

使用方法

本工具运行环境,由Python3编写,支持Mac,Linux,Windows,由于工具是依托于unix开发,所以多Windows可能不太友好,如Mac,Linux上有皮肤,Windows上没有~

由于部分检测Poc直接使用了Nmap中的脚本,所以需要客户端安装Nmap工具,并加入系统变量。

安装依赖

python3 -m pip install -r requirements.txt

需要在运行系统安装nmap软件

扩展性

如果你有一些其他的检测脚本,也可以集成进去,可自行进行扩充,在主文件AssetScan.py第99行检测函数进行追加执行函数。在vuln目录添加检测Poc,Poc接收参数为字典,具体内容可参考其他脚本格式,需return出一个漏洞列表

详细说明

介绍说明

由于基于unix开发,所以关于字体颜色上,只有unix的系统有皮肤,windows暂时无皮肤

软件初始界面

支持方式

支持 -i 单个IP(192.168.1.1),多个ip(192.168.1.1,192.168.1.2),段IP(192.168.1.1-192.168.2.1),也可以混合使用,如192.168.1.113,192.168.1.0/27,10.1.11.1-10.1.11.55这种混合模式,也可以直接-f加文件名,当前支持xlsx、txt、csv。

演示说明

演示环境为win08(192.168.43.123),metasploitable2(192.168.84.175)进行演示

运行后会检测存活

选择扫描的形式,本次选择为(1),IP数量较少,可直接选择Socket模式,Socket采用满线程跑,在运行中可能会把CPU跑满。所以只推荐IP数量较少的时候。

会对存活的IP进行端口扫描。探测结束,选择是否探测风险端口,会对风险端口进行漏洞检测。

针对测试出的风险端口进行漏洞探测,对于口令方面的漏洞只设置提醒,其他漏洞提供了检测

检测成功后,会输出可视化报告,报告中会汇报本次测试的范围,资产范围中存活的ip地址,存活ip地址的端口开放情况,开放端口的漏洞检测情况,并输出饼状图,以及条形图可观化~

项目说明

项目地址

https://github.com/JE2Se/AssetScan

欢迎各位Star,提bug,交流~~~

说明

脚本内weblogic Poc使用了其他大佬现成的检测脚本rabbitmask大佬的WeblogicScan写的很好,我就直接给集成进来了。

问题

漏洞可能整理的不全,后期可能会追加更新

测试环境有限,平台之间的兼容性可能存在问题

版本更新

初版:2019年11月28日 V1.0初版编写完成

修改1:2019年12月02日 感谢Shadow·J反馈kali下文件导入异常

修改2:2019年12月03日 V1.1发布,新增ARP存活检测(回滚,测bug)

修改3:2019年12月04日 V1.2发布,修复漏洞脚本异常,修复weblogic脚本

修改4:2019年12月05日 V1.2修改,感谢sevck提供设计思路以及代码不规范问题

修改5:2019年12月05日 V1.2修改,修复IP数据处理异常

修改6:2019年12月19日 V1.3修改,部分表哥喜欢用10.11.1.1/24这种形式表达网段,这样会报错,已在程序上强制替换,不影响各位大佬输入

V1.0 原版发布

V1.1 新增ARP存活检测

V1.3 修复脚本运行异常

警告

本项目为内网主机资产梳理,脆弱面检测分析,无具体攻击利用。开发初衷仅为方便对安全人员对授权项目的测试以及学习交流。请使用者遵守《中华人民共和国网络安全法》,勿用于非授权测试,如作他用所承受的法律责任一概与作者无关,下载使用即代表使用者同意上述观点。