-
Notifications
You must be signed in to change notification settings - Fork 199
Description
一、程序无法启动或启动报错
程序启动(windows/Mac/Linux等)遇到问题,可查看 ReadMe_FAQ 或 Win/Linux无法执行或执行报错相关问题合集
二、闪退或自动关闭
由于无影使用了Go+wails框架开发,所以当数据量较大时前端资源占用会比较高,另外当对大量资产进行指纹识别(端口扫描或url检测等)时,资源占用也会比较高,而Windows程序将资源占用较高的程序视为“异常进程”而强制终止,导致程序闪退。
所以当程序出现闪退或自动关闭时,可以排查以下几个问题:
(1)线程数
扫描线程数如果设置过高,很容易导致闪退。而线程数的设置和电脑配置(特别是CPU核数)有很大关系,如果电脑配置不太高(如8G内存、4核CPU),线程数可以设置100-200即可。在配置足够高的情况下,可以设置600-1000之类的线程。
经网友测试,64核CPU设置1000线程可以在1分钟内完成1w左右的url探测,而普通8-16核设置500线程时可能需要5-10分钟且资源占用较高。
(2)指纹策略
由于无影内置了较多的web指纹,所以当涉及对web指纹进行检测时,如果设置了“全量指纹”,那么检测时正则匹配占用的CPU就会很高,所以当资产较多、且线程较高时,可以在“URL探测”中选择“精简指纹”或“最小指纹”策略。
(3)多功能联动
当同时启用多个功能(项目或扫描功能联动),比如密码破解、poc检测、目录探测等都开启时,会大大占用系统资源,所以当扫描任务较多时,尽量降低线程或减少联动功能的使用。
(4)大小核问题
当电脑为Windows系统,且CPU为大小核(英特尔12代之后CPU,如英特尔(Intel) i7-12700K)架构的时候,如果无影长时间运行,可能会涉及进程在大小核之间调度导致程序不稳定,这种情况可以将无影手动固定在大核或小核上,设置方法:任务管理器 - 详细信息 - 右键点击要修改的进程 - 设置相关性,然后选择要这个进程运行的CPU。
三、端口扫描不准
有师傅反馈说无影的端口探测和nmap之类的对比,有时发现检测不准,或者对同一目标多次扫描发现开放端口不一样等问题。端口扫描和线程数、网络状况有很大关联,所以当发现端口扫描不准的情况时,可以排查以下几种情况。
(1)线程数太高
线程较高时,对自己的网络占用会比较高(特别是家庭宽带、普通路由器环境),可能导致自己网络设备拥塞从而导致结果不准确;另外,如果对方有安全设备或网络设备性能一般时,高并发也可能导致对方网络出行拥塞,导致结果不准。所以在设置线程数时,个人电脑配置和网络设备情况是很关键的一个制约因素。
(2)网络超时设置
如果超时时间设置的比较短,那么扫描速度会快很多,但这就可能导致扫描结果不准确,所以在”高级设置“-”通用超时“设置一个合理的端口探测超时时间(通常1000-3000,也就是1s-3s)是比较重要的,而web超时可以设置5000-30000(5s-30s)之间的值。
(3)25、110端口问题
有些电脑在进行资产端口扫描时,可能会出现明明对方没开25和110端口,但却探测到开放了,这很可能是因为你用的电脑上安装了火绒,火绒默认会开启邮件监控功能并占用25和110端口,导致扫描任意地址都会开启25和110端口,所以关掉火绒的邮件监控或不扫描25和110即可。
(4)MacOS扫描时任意端口都开放
当在MacOS上使用端口扫描工具进行扫描时,特别是线程较高时,有一定概率会导致MacOS网卡出现故障,虽然常规上网功能还都正常,但会出现扫描任意目标时任何端口都开放,这时只能重启MacOS系统才能解决该问题。
(5)MacOS扫描误报率较高
在使用同样的扫描参数对同一目标进行端口开放测试时,发现MacOS误报率比linux或windows都要高,这可能和MacOS的系统机制有关系,Mac在TCP连接管理和防火墙过滤方面相比linux更严格,在进行高并发扫描时可能触发系统自我保护机制,从而影响结果准确性。如发现MacOS扫描误报率较高,可以尝试降低线程数、增大超时时间,看能否解决问题。
四、如何设置一个合理的线程数
根据上述信息,可以根据电脑配置、网络带宽、指纹策略等来确定一个合适的线程数,参考如下:
配置关联说明
-
硬件与线程关系
• CPU核数决定并发上限:每逻辑核心可支撑50-80线程(Intel 12代+需关闭小核调度)
• 内存容量制约任务规模:每线程消耗2-8MB内存,32G内存建议承载≤4000线程
-
网络带宽瓶颈
• 百兆网络:SYN包速率≤3000/秒 → 线程数≤300
• 千兆网络:理论可支持10万+连接,但受网卡中断处理限制,实际建议≤800线程
-
指纹策略影响
• 全量指纹(5.2W+规则)会使CPU占用率提升40%-60%,需同比降低线程数
• 精简指纹(Top1000服务)可开启"启发式扫描"提升效率
-
其他说明
• 当同时启用多个功能(如密码破解、POC 检测、目录探测等)时,建议适当降低线程数。
• 对于 Windows 系统且 CPU 为大小核架构(英特尔 12 代之后 CPU),可将程序手动固定在大核或小核上运行,以提高稳定性。
• 遇到高价值目标时,建议采用「低线程(100-200)+长超时(3-5s)+全量指纹」组合提升准确性。
综上,无论是闪退还是端口扫描不准确,很大程度都和电脑配置、线程数、超时时间、指纹策略等息息相关,不能要求一个工具扫描又快、又准还占用极少资源。 比如nmap扫描的确资源占用很低且结果很准确,但它的扫描时间很长且无法识别web指纹,massan和RustScan扫描速度很快,但他们的准确性却是最差的。




