单兵作战系统的设计与开发

xioy
5天前发布

工具总体运行逻辑

整个工具使用ijson库来处理超大文件。经过实测52.7MB的report.json文件,存有21951个漏洞。能在2秒内生成108MB的report.html漏洞报告。

工具集合了ip补全、ip测活、端口测试、协议识别、指纹识别、漏洞扫描、生成报告功能。各功能之间紧密相连可实现梭哈效果。

报告效果展示

点击全部分类效果

漏洞详情效果

目录功能效果

ip补全功能

工具想法

资产表中经常会出现ip和ip段类型的资产。单个ip类型的资产还好说,但是有的ip段的ip数量会非常多。假设是1.1.1.1/24,补全后一共有254个ip。如果是1.1.1.1/16,补全后直接飙升到65534个ip。

最常见的是24,16的情况非常少,但是你不能说他没有。就拿我来说在最近的一次技术支撑中,甲方就扔了一个16的……

虽然目前很多工具都支持扫描ip段,但是你不得不承认的是它只能扫描小范围的。当目标范围非常大情况下,工具就会出现丢数据或跑着跑着设备卡死的情况。

所以综上所述,我的建议最好是先补全ip,然后再进行测试。

工具主要功能及运作逻辑

假设资产表中存在ip和ip段两种类型。工具首先对资产类型进行识别。如果是ip类型则直接原样写入到ip.txt文件中,如果是ip段类型则进行补全操作,并把结果写入到ip.txt文件中。

从用户角度考虑、提升用户体验、加快工作效率

  • 工具支持单个ip段和从文件中批量获取ip段。
  • 实时显示处理进度。
  • 要支持能够自定义结果保存路径和文件名称。
  • 最终结果文本是实时写入方式。当资产特别多时消耗时间一定会非常长。工具在补全时,工作人员可以实时获取到结果,并优先测试已获得的资产减少时间浪费。
  • 二次保存,结果文本名称相同时则覆盖原有文件,防止新老数据混淆。

ip测活

工具想法

补全ip段后,ip的资产数量一下子就成倍增加。如果直接拿着这些资产去跑全端口,耗时是非常长的。所以为了减少工作量可以先测活,只保留存活的资产,然后再进行接下来步骤。

工具主要功能及运作逻辑

测活的过程中有可能会出现两种情况:第一种对方允许ping、第二种对方禁止ping。在测活时首先通过ping的方式。如果通则判定为活,不通则更换成tcp方式,如果通则判定为活,不通则判定为死。并把结果写入到liveip.txt文件中。

从用户角度考虑、提升用户体验、加快工作效率

  • 工具支持单个ip段和从文件中批量获取ip。
  • 实时显示处理进度。
  • 支持能够自定义线程数、超时时间、端口号、结果保存路径和文件名称。
  • 支持自定义设置输出路径和名称
  • 最终结果文本是实时写入方式。当资产特别多时测试时间一定会非常长。工具在测试时,工作人员可以实时获取到结果,并优先测试活的资产减少时间浪费。
  • 二次保存,结果文本名称相同时则覆盖原有文件,防止新老数据混淆。

端口测试

工具想法

ip的可用端口范围是1-65535。在测试了市面上多款流行工具后,综合考量下决定使用masscan工具来作为本功能的测试工具。这个工具无论测试速度、信息准确度、系统兼容性都完美契合。

本工具分为两个版本:windows和linux。win版本针对的是个人电脑,个人电脑的处理器和内存性能普遍都比较高,所以win版本的工具可以把masscan的扫描速率设置到5000-10000之间(按照实际情况自行设置)。而linux版本是按照2核2G的标准进行设计,经过测试扫描速率设置为1000时可以确保信息的准确性与系统稳定性。

工具主要功能及运作逻辑

在ip测活步骤中,最终保存结果的文本名为liveip.txt。设计脚本使工具读取liveip.txt或自己上传存活的资产。让工具对所有存活的ip进行全端口扫描。

这个工具只能测试完所有ip才会生成结果文档。设计脚本让工具自动保存原始扫描结果,并重命名为port1.txt。由于原始扫描结果不符合实际需求,再设计脚本使原始扫描结果内容格式化后另存为port2.txt。

从用户角度考虑、提升用户体验、加快工作效率

  • 工具支持单个目标和从文件中批量获取目标。
  • 支持自定义扫描端口、扫描速率、结果保存路径和文件名称。
  • 格式化扫描结果并另存为port2.txt,提高可读性。

协议识别

工具想法

端口协议识别使用的工具是nmap。不得不承认nmap的识别结果是非常准确的,唯一的的缺点就是速度太慢。目前还没有发现能够平替的它的工具。

工具主要功能及运作逻辑

在端口测活的步骤中,保存原始扫描结果的port1.txt在这里派上用场。设计脚本使nmap读取port1.txt文件获取存活的ip及它开放的端口,让nmap识别端口使用的协议。原始扫描结果另存为protocol1.txt,再设计脚本使原始扫描结果内容格式化后另存为protocol2.txt。

从用户角度考虑、提升用户体验、加快工作效率

  • 工具支持单个目标和从文件中批量获取目标。
  • 支持自定义扫描端口、扫描速率、结果保存路径和文件名称。
  • 格式化扫描结果并另存为protocol2.txt,提高可读性。

指纹识别

工具想法

指纹识别使用的工具是httpx。同样在测试了市面上多款流行工具后,综合考量下决定使用httpx工具来作为本功能的测试工具。

工具主要功能及运作逻辑

在协议识别步骤中,内容格式化后的protocol2.txt派上用场。设计脚本使httpx读取protocol2.txt中使用http和https的目标,访问目标并进行指纹识别。原始扫描结果另存为fingerprint.txt。

从用户角度考虑、提升用户体验、加快工作效率

  • 工具支持单个目标和从文件中批量获取目标。

漏洞扫描

工具想法

市面上公开的漏洞脚本最多非nuclei莫属。无论是工具本身还是资源都是无法撼动的,毫无疑问nuclei作为本功能的测试工具。

其实在端口识别结束后就可以直接使用本功能进行漏洞扫描,之所以中间加了两个步骤主要是为了目标精准化。测试出来的端口不单单只有http和https协议类型,还有其他类型的例如ssh、mysql等。

通过nmap协议识别后单独挑出使用http和https的服务进行漏洞扫描,可以大大减少服务器压力。

工具主要功能及运作逻辑

该功能分别可以在端口测试、协议识别、指纹识别功能运行结束后运行本功能。读取各功能处理过的文件获取到目标,然后进行漏洞扫描。扫描完成后保存原始扫描结果为result.json。

从用户角度考虑、提升用户体验、加快工作效率

  • 工具支持单个目标和从文件中批量获取目标。
  • 实时显示处理进度。
  • 支持自定义并发数、超时时间、重试次数。
  • 漏扫报告输出为json格式。
  • 使用ijson库来大批量处理。

生成报告

工具想法

针对nuclei的漏洞扫描结果形成高可读性的漏洞报告。

工具主要功能及运作逻辑

设计脚本首先对result.json文件进行内容提取,结果另存为report.json,再设计脚本让脚本读取report.json中的关键字内容最终形成report.html漏洞报告。

从用户角度考虑、提升用户体验、加快工作效率

  • 最终报告输出为html格式(html基于json形成)。
  • 使用ijson库来大批量处理(实测52.7MB大小的report.json文件,存有21951个漏洞。能在2秒内生成108MB的report.html漏洞报告)
  • 实时显示处理进度。
  • 漏洞报告板块包含报告摘要、漏洞详情。
  • 漏洞等级分为严重、高危、中危、低危且不同威胁等级对应不同颜色。
  • 漏洞相同时多个漏洞内容合并到同一漏洞详情中,减少重复内容。
  • 漏洞详情包含:漏洞名、脚本名、目标地址、漏洞地址、请求包、响应包。
  • 所有内容支持快速复制。
  • 点击不同分类显示相对应的漏洞内容。
  • 目录放在左下角,有效防止内容遮挡。
© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 赞赏
评论 抢沙发
OωO
取消