僵尸网络扩张节点规模的核心逻辑,是把漏洞扫描做成一条无人值守的流水线:先全网找“活着的主机”,再对开放端口做指纹识别,一旦匹配到已知漏洞或弱口令,就自动投递载荷,设备回连C2的那一刻就算完成“入伙”,整条链路不需要人工点击确认,快的时候几分钟就能吞下一批暴露在公网上的资产。
很多运维同学对僵尸网络的印象还停留在“中了病毒会变卡”,实际它更像一支被远程指挥的工程队,扫描是招工,漏洞是门禁卡,载荷是工牌,C2服务器是发工资的老板,理解这条流水线,比背一百个病毒名更有用。
僵尸网络为什么把扫描当成扩张引擎
扫描模块在僵尸网络里扮演什么角色
一个成熟的僵尸网络通常由四块拼成:扫描模块、利用模块、载荷模块、通信模块,扫描模块负责“找人”,利用模块负责“进门”,载荷模块负责“装工牌”,通信模块负责“听指挥”,四块之间靠目标列表和回连地址串起来,任何一个新感染的节点,都会立刻变成下一轮的扫描源。
这种设计带来一个直接后果:节点数量越多,扫描能力越强;扫描能力越强,找到新节点的速度越快,指数级扩张不是靠某一个高危漏洞,而是靠这套自我复制的结构。
从一条弱口令到上万个节点的链路
典型流程可以拆成四步,每一步都有可观测的痕迹:
- 存活探测:大量SYN包打向23、2323、22、5555、6379、8080等端口,单源IP在短时间内触碰成百上千个地址段。
- 指纹识别:对返回banner的端口进一步交互,识别设备型号、固件版本、服务类型,判断是摄像头、路由器还是Redis实例。
- 漏洞匹配:拿识别结果去比对内置的漏洞库和口令字典,命中后尝试利用,常见的是Telnet/SSH弱口令、未授权访问、公开的远程命令执行漏洞。
- 植入回连:下载对应架构的二进制文件,写入持久化位置,向C2发起心跳,然后从C2领取新的目标列表。
业内专家指出,这条链路里最贵的环节其实是目标列表的更新,而扫描本身几乎不花钱,这也是攻击者乐此不疲的原因。
僵尸网络漏洞扫描怎么自动扩张节点规模
三段式工作流:发现、指纹、匹配
把扫描模块拆开看,它并不神秘,就是三段流水线。
第一段是发现,用高并发的无状态扫描器批量发包,追求的是覆盖面而不是准确性,漏掉的主机可以由下一轮补上。
第二段是指纹,对存活主机做协议交互,取banner、取响应头、取特定路径的返回内容,这一步决定了后续用哪个漏洞去打。
第三段是匹配,内置的漏洞库和口令字典在这里起作用,命中即进入利用队列,近年来大量僵尸网络把这个队列做成了任务分发模式,C2下发目标,节点自己扫描、自己打、自己上报结果。
利用与植入:从“能连上”到“能常驻”
能连上不等于能长期占用,为了让节点稳定在线,攻击者通常会在这些位置留后门:
- 定时任务:
crontab -l里出现陌生条目,或/etc/cron.d/、/var/spool/cron/下多出文件,内容是定时拉取远程脚本。 - 开机自启:
/etc/rc.local、/etc/init.d/下新增脚本,或systemctl list-unit-files --state=enabled里出现名字可疑的服务。 - 密钥后门:
~/.ssh/authorized_keys被追加公钥,攻击者绕过口令直接登录。 - 动态链接劫持:
/etc/ld.so.preload被写入恶意so文件,进程启动时被动加载。
这些位置有个共同点:都是系统自带、不需要额外组件、重启依然生效,排查时按这个清单走一遍,比盲目全盘杀毒效率高得多。
规模化之后的自我强化
节点规模上来以后,僵尸网络会出现两个变化,一是扫描源极度分散,单IP限速和封禁的效果被稀释;二是目标库更新更快,新披露的漏洞往往在很短时间内就被纳入扫描规则,行业共识认为,防御方真正的对手不是某个病毒样本,而是这种“扫描能力可复制”的结构。
企业内网被漏洞扫描植入僵尸程序如何排查
先看连接和进程
怀疑主机被植入时,别急着删文件,先固定现场,下面几条命令可以快速做初筛:
ss -antp | grep -E ':(23|2323|22|5555|6379|8080)\s' ps -eo pid,ppid,etime,cmd --sort=-etime | head -30
看两件事:有没有陌生进程高频率发起外连,有没有进程名伪装成 kworker、sshd、[kthreadd] 却不在正常路径下。/proc/<pid>/exe 指向被删除文件的情况,基本可以判定为恶意。
再看持久化位置
依次检查劫持点:
crontab -l; ls -la /etc/cron. /etc/cron.d 2>/dev/null cat /etc/ld.so.preload 2>/dev/null systemctl list-unit-files --state=enabled | grep -v -E 'ssh|network|crond'
同时翻认证日志,找爆破痕迹:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn | head
同一来源IP在短时间内出现大量失败记录,之后又出现成功登录,这条时间线值得重点核查。
最后看横向与出网
蠕虫型僵尸网络会在内网横向试探,可以在核心交换机或边界抓一段SYN包:
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0' -c 100
如果发现某台内网主机在扫同网段的445、6379、22端口,基本可以确认它已经被当作跳板,出网侧则关注规律性的DNS查询和心跳,固定周期、固定长度、域名随机生成,是C2通信的常见特征。
正规漏洞扫描和僵尸网络扫描的区别在哪里
两者的动作看起来都是“发很多包”,但目的和痕迹完全不同。
| 维度 | 正规漏洞扫描 | 僵尸网络扫描 |
|---|---|---|
| 授权来源 | 有明确的资产清单和授权范围 | 无授权,全网盲扫 |
| 目标选择 | 按清单逐项验证 | 随机地址段大范围探测 |
| 扫描节奏 | 可控,通常限速 | 高并发,追求吞吐 |
| 后续动作 | 出报告,人工复核 | 命中即利用、即植入 |
| 指纹特征 | 带扫描器标识 | 常伪装或直接复用开源扫描器特征 |
这里有个常见误区:漏洞扫描器扫描速度越快越好吗?答案是否定的,对内网资产做扫描,速度过快会打挂老旧设备、触发告警风暴,还会让日志失去分析价值,真正有价值的扫描是分批次、带限速、按资产重要度排优先级,而不是比谁先扫完。
云服务器防僵尸网络扫描渗透,防护成本大概多少
成本取决于暴露面大小,不同档位差别明显:
- 零成本加固:关掉不必要的公网端口,安全组只放行必要来源,禁用Telnet,SSH改密钥登录,Redis加密码并绑定内网地址,这些动作不花钱,但能挡掉相当一部分自动化扫描。
- 低成本的自动化封禁:用fail2ban监控认证日志,对连续失败的来源IP临时封禁;用iptables的hashlimit对单IP新建连接数限速,能显著降低爆破成功率。
- 按需采购的商业能力:云WAF、主机EDR、威胁情报订阅,通常按资产数量或流量规模计费,年费跨度从几千元到几十万元不等,资产多、对外服务多的企业值得投入,只有几台测试机的小团队没必要。
在长三角地区,不少制造企业的生产网和办公网没有彻底隔离,一台暴露在公网的测试机被扫中,往往就是整条内网沦陷的起点,这类场景下,先做资产测绘和端口收敛,收益远高于先买设备。
防护的落点其实很朴素:把暴露面收窄到可管理的范围,把漏洞修复变成有闭环的流程,把出网流量纳入监控,扫描永远不会停,能做的只是让它扫不到、打不进、留不住。
僵尸网络的节点规模不是靠一个超级漏洞撑起来的,而是靠扫描、指纹、利用、植入这条可复制的流水线滚起来的,防守方要打断的也正是这条线:让暴露面变小,让漏洞修复变快,让异常连接被看见。
僵尸网络漏洞扫描常见问题
僵尸网络漏洞扫描通常从哪些端口入手?
以物联网设备为主的僵尸网络偏好23、2323、5555、7547等端口,因为大量摄像头和路由器默认开放远程管理;以服务器为目标的变种则集中在22、6379、445、8080,排查时不必穷举,先确认这些高危端口有没有暴露在公网。
老旧IoT设备还能防住僵尸网络扫描吗?
可以,但要换思路,老旧设备通常打不了补丁,可行做法是把它们放进独立VLAN,只允许访问必要的业务地址,禁止主动出网;管理端口通过跳板机访问,关闭厂商默认账号,做不到这些的设备,至少要在边界做端口映射收敛,不要让它们直接面对互联网。
内网主机被扫中后多久会开始向外扫描?
取决于载荷类型,蠕虫型样本在感染完成后会立即领取目标列表并开始探测,这个间隔通常在分钟级;带心跳周期的样本则要等下一次C2指令,实际应急中,从认证日志里出现异常登录到边界流量出现异常扫描,时间窗口往往短于值班人员的响应周期。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/786081.html

