# LangNetworkTopologys **Repository Path**: lmdy/LangNetworkTopologys ## Basic Information - **Project Name**: LangNetworkTopologys - **Description**: 端口扫描,指纹识别,网站探测,结果整理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-01 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **本项目仅进行内网主机资产整理,无漏洞利用、攻击性行为,请使用者遵守当地相关法律,勿用于非授权测试,如作他用所承受的法律责任一概与作者无关,下载使用即代表使用者同意上述观点。** # 版本说明 ## 3.x 资产快速探测后输出报表 ## 4.x 拥有3.x所有功能的基础上,新增一些简单的漏扫功能,出结果慢 4.x需要依赖 vc_redist.x64 # 资产扫描 **调用MASSCAN**对内网主机进行如下任务,完成内网主机资产快速获取: 1. 开放端口扫描 2. 运行服务检测,指纹识别 3. 开放端口二次复检 3. 主机部署网站探测 4. 自动生成扫描结果报表 # 依赖环境 ## MASSCAN-Windows 自带masscan.exe,masscan来自[巡风](https://github.com/ysrc/xunfeng/tree/master/masscan/windows_64),需要注意的是Windows还需要安装WinPcap4.1.12 ## MASSCAN-Linux 自行安装masscan,并添加到环境变量 # 快速使用 ![](/image/1.jpg) ## 准备资产 编辑文本,文本内容为你需要进行扫描的IP,比如: 192.168.8.0/24 10.152.168.0/24 10.16.26.3 10.26.36.0/24 192.168.0.2 192.168.0.6 192.168.0.15 192.168.0.16 192.168.0.17 192.168.0.12 192.168.0.19 ## 启动扫描 随后直接启动Project下run.bat,按照提示导入上面的文本 ## 输入端口 随后输入需要扫描的端口号,比如: 21,22,23,25,80-9999,27017,27018 or 80,81,88,90,800,8000,888,8888,8887,8889,8080,9090,999 or 20-25,80,88,8080,8888,999,9999,1433,3389,3306,1521,6379,22222 or 21,22,23,25,80,88,888,8000,8888,8080,999,9999,9111,8873,87,9000,7000-7005,1433,3306,3389,1521,27017-27019,6379,6371,11211,8088,111,1001,50000,9110 or 1-65535 如果要使用内置默认的常见高危端口,输入 0 即可。 如果要使用内置默认的高危端口[数量更多],输入 1 即可。 ## 进程数设置 单IP文本:2~6 C段IP文本: 2~4 B段IP文本:1 按照机器配置设置扫描进程数,如果扫描全端口,建议设置使用一个进程,最后的结果会自动保存在当前目录下 ## 发包数设置 如前文所提,原理就是调用使用MASSCAN进行扫描,MASSCAN使用异步连接方式,在CPU配置较差的情况下,每秒的发包量设置过大,则会造成丢包导致误报情况。 在9900K测试下,发包量设置在1000-2000之间比较稳,速度和准确率客观。 经测试,扫一个C段的默认端口,发包量设置2000,200M宽带直接吃满,CPU负载9.2%,平均耗时在40秒之内,存在一定的误报,如果设置在1000还可以,具体情况请按照个人机器配置进行设置。 ## 关于指纹识别 大多数人都会想到使用masscan先进行存活资产快速整理筛选,然后使用nmap对开放端口进一步扫描,使用nmap的指纹库获取端口运行的服务。 做法无可厚非,但是在时间上消耗较大。 选择采用折中的方式,使用MASSCAN快速扫描主机开放端口,使用线程池原生socket连接,获取返回banner,对返回的banner进行指纹正则匹配结果,对一些无法匹配到端口使用默认端口指纹库进行识别匹配。 ## 关于二次复检 在masscan存在一定误报的情况下,对扫描结果端口进行二次复检是很有必要的行为。具体实施方法如下: 1. 首先进行端口连接,获取返回BANNER,返回结果根据内置指纹库进行对比,获取该主机端口运行的服务。 2. 若剩下的端口进行端口连接失败,或者连接成功但是对返回BANNER无法正常识别运行服务,则进行端口开放检测,对正确开放端口使用本地指纹库进行匹配服务。 3. 在第一步中正常获取结果的端口,本身就是端口开放。第二步的情况是对剩下识别失败的端口进行二次复检,如果失败并且端口无法连接,则判定为masscan误报,直接删除该端口。 **二次复检会大幅度提高准确率,但是相应的速度也会慢下来** # 生成结果 扫完毕后,会生成相关的HTML和Xlsx文件,自动保存在目录下。 ![](/image/0.jpg) ## 日志文件 当前目录会自动保存扫描日志,扫描异常原因,扫描结果 ![](/image/9.jpg) ![](/image/10.jpg) ## 网页文件 1. 内网资产可视化报表 2. 端口/服务数据整理,点击标签即可查看相关开放主机 3. 每台主机资产详情 ![](/image/2.jpg) ![](/image/3.jpg) ![](/image/4.jpg) ![](/image/5.jpg) ## Xlsx文件 对大量的资产扫描结果,使用HTML展示结果如果主机内存较小,则会出现浏览器卡顿情况无法直观查看数据,所以另外生成XLSX文档,方便对数据统一查看管理。有点脑子的人都看得懂。 1. 端口/服务数据整理 2. 部署网站主机整理 3. 每台主机资产详情整理 ![](/image/6.jpg) ![](/image/7.jpg) ![](/image/12.jpg) ![](/image/8.jpg) ![](/image/11.jpg)