文章总结: 本文记录服务器被入侵后通过软件指纹在fofa测绘引擎上搜索到1090台同团伙黑产机器的实战过程。核心发现是黑产团伙采用标准化集群运营,使用自研Golang服务返回固定404响应作为指纹。作者提出应急响应不应止于清除,应识别软件指纹进行全网狩猎,并按机房批量举报而非单点打击。文章提供了可复现的四步指纹狩猎法,强调软件指纹比IP更稳定,是追踪黑产基础设施的有效手段。 综合评分: 90 文章分类: 实战经验,应急响应,红队,威胁情报,安全运营
服务器被入侵第三天:我用一个 404 指纹,在 fofa 上揪出 1090 台黑产机器
原创
野生码农 野生码农
野生码农 AI 实战
2026年8月22日 19:17 浙江
在小说阅读器读本章
去阅读
服务器被入侵第三天:我用一个 404 指纹,在 fofa 上揪出 1090 台黑产机器
8月18日早上,我把入侵我服务器的黑产团伙摸了个底:用他们自研软件的一段 404 响应做指纹,在 fofa 上全网搜索,揪出同一团伙 1090 台服务器。
1090 台,比我最初掌握的 11 个 IOC 多出两个数量级。IOC 说人话就是入侵痕迹指标,攻击者留下的 IP、域名、账号这些线索的清单。
前两天的事简单交代一下。8月16日我发现自己的服务器被挂了搜索劫持的码,root 密码在人家手里捏了将近三个月。清除、加固、换密码,处置完已经是 16 号晚上。17 号军师顺着恶意代码的服务器反查,挖出了团伙的官网、Google Ads 广告和 Telegram 接单号,写成了一份画像报告。
按理说,到这儿就该收工了。
收工前,我多扫了一眼
17 号晚上,军师提议:既然 IOC 清单里有 11 个 IP,不如挨个做一遍端口扫描,看看这些机器上还跑着什么。
用的是 rustscan 做全端口发现,nmap 做服务识别。11 个 IP 里 8 个活着,大部分端口在意料之中,nginx、SSH、宝塔面板。但跳转层和落地层那两台机器上,有个东西很扎眼:21002 和 21003 端口,跑着一个 Golang 写的自研 HTTP 服务。
nginx 和宝塔都是现成的开源软件,谁装都一样。但这个 21002 端口的服务不一样,它有两个一眼就能认出来的特征:
- 不管你访问什么路径,它都返回同一段 24 字节的 JSON:
{"message":"Not Found"} - 响应头里固定带
Vary: Origin
逐字节相同的响应体,加固定的响应头,这就是软件指纹。就像同一个模具压出来的零件,边角的毛刺都长得一样。
军师说了一句话,改变了接下来两天的走向:这个指纹,可以拿去 fofa 上全网搜。
fofa 说人话解释一下:它是一个网络空间测绘引擎,你可以理解成”互联网的搜索引擎”,只不过它搜的不是网页内容,而是全网机器的端口、服务、响应特征。安全研究员拿它找漏洞设备,我们这次拿它找同一款恶意软件。
一个语法下去,1090 台机器浮出来
18 号上午,我把查询语法拼好了:
body="{\"message\":\"Not Found\"}" && header="Vary: Origin" && (port="21002" || port="21003")
回车。1252 条资产记录,去重后 1090 个独立 IP。
我盯着这个数字看了几秒钟。画像报告里那份 11 个 IP 的 IOC 清单,当时觉得是端了人家老巢,现在看就是人家仓库的一个货架。1090 个候选里,没有一个在原来的清单上。
fofa 的数据是扫描快照,还要验活。我写了个脚本,64 并发,对每个候选 IP 发一次 GET 请求,校验返回的是不是那段逐字节相同的 24 字节响应。跑完,112 个确认存活。超时的不代表下线,很多机房对扫描出口做了过滤,这批只能标”存疑”。
到这里,定性变了。这不是”一个挂马团伙”,这是一支有标准化集群的黑产舰队。
采购单比代码更诚实
机器多不稀奇,稀奇的是这 1090 台机器的分布方式。三个特征拼在一起,把这个团伙的底裤扒干净了。
第一,按整个 C 段批量买。 162.209.181.0/24 这一个 C 段 256 个地址里,25 台是它的机器;104.255.229.0/24 里有 20 台;23.224.250.0/24 里有 10 台。正常公司买服务器是一台一台按需买,它是一段一段批发。这说明不是入侵来的肉鸡,是花钱租的,而且是按机房批发价拿的标准化集群。
第二,域名全是同一台机器生的。 140 个绑定域名,几乎全是随机 10 个字母的 .top 域名,ajiplvkjgc.top、kxfrnfjhy.top 这种,和挂在我服务器里的 pucdpqit.top、uasxjts.top 是同一个命名算法的产物。一个随机串可能是巧合,140 个同模式就是流水线。
第三,机房高度集中。 CNSERVERS 493 台、OWGELS 296 台、CTG Server 202 台,三家合计占了约 91%。全是面向中文用户的廉价海外 VPS 商家。地域分布美国 659、中国 419,那 419 个”中国”节点其实是商家的 CN2 回国线路段,机器在境外,线路优化给境内访问用。
我把这三条和之前挖到的东西拼起来,黑产全貌就出来了:这是一个”公司化”运营的黑产 SEO 服务商。有产品,卖”小旋风蜘蛛池”软件,有官网 sec51la.cn;有获客,Google Ads 正常投放;有客服,Telegram 接单。
客户是谁也不藏着,官网案例栏直接写着”6合客户案例”(六合彩)和”X站客户案例”(色情站)。再加上 1090 台机器组成的四级跳转网络,urlscan 上命中它基础设施的页面扫描有 2400 多条,核心 C2 域名 2023 年 11 月就注册了,运营至少两年半。C2 就是控制服务器,黑产远程指挥恶意软件的总台。
被挂马的网站,包括我的那台,只是它的流量奶牛。入侵不是目的,你的搜索流量才是它的商品。
顺手摸进老巢看了看
端口扫描还带回几个意料之外的东西,说三个。
它的 C2 服务器和入侵跳板,103.68.175.58 和 .59,是一对”孪生机”:同样的 Ubuntu、同样的宝塔、同样的端口布局,连自建的数据栈都一样,跑着 Elasticsearch 加 Kibana。
解释一下这两个东西:ES 是搜索引擎数据库,Kibana 是它的可视化面板,一般公司拿来做日志分析和数据看板。一个黑产团伙,给自己的流量劫持生意配了套数据分析系统。它在分析什么,我大概能猜到:哪匹”奶牛”产奶多,哪个落地页转化好。
讽刺的在后面。它 8月14日用来登录我服务器的那台马来西亚跳板,自己的 MySQL 5.7 数据库直接暴露在公网上,还开了个 8088 端口的 Python 临时文件服务,一看就是手工操作留下的痕迹。一个靠撞库和扫服务器吃饭的团伙,自己的数据库门也没关。
还有它藏在捷克的备用落地段,46.8.9.222、.225、.228,三台机器同构,扫它就回 429 限流,SSH 端口是伪装的,连上去只回一句”Not allowed at this time”,还开着 BGP 路由协议的 179 端口。
这套配置指向一个词:bulletproof hosting,防弹主机,专门给黑产提供”投诉不理会”托管服务的机房。这一段被 URLhaus 列入恶意托管统计,每台机器挂过 12 个以上的恶意站点。
从举报一个 IP,到按机房投诉
证据齐了,打法也得变。
16 号我发的第一批举报是单 IP 的:五封邮件,三封给域名注册商,两封给机房,举报域名和跳板。有效果,CTG Server 在 18 号早上把落地层那个 IP(202.79.175.57/32)封了。
但面对 1090 台机器,单个举报就是拿水枪灭山火。正确的姿势是按机房批量投诉:三家机房占了 91%,一封邮件附一份 CSV 节点清单,让机房去查它自己的客户。18 号中午,我把三封批量举报邮件写好,两封发了出去,每封都附了指纹验证方法,机房的人拿任意一个 IP 跑一条 curl 就能亲自验真:
bash curl -s http://<IP>:21002/
三封邮件的战果:一封没回信,一封换来个自动工单号,一封压根没寄出去。
没寄出去那封是 OWGELS,不是没写,是没处寄:这家公司查不到任何公开滥用举报渠道,APNIC 登记的邮箱明确声明不受理滥用,它标注的官网点进去是一家卖医疗器械的公司。一个服务器托管商,官网卖医疗器械,基本可以判定是套名的空壳。这种只能换打法,走 CleanTalk、Spamhaus 这类黑名单社区提交,或者等域名侧打击让它自然失效。
捷克那个防弹段,直接跳过。举报对它的意义约等于给蚊子发律师函。
这套指纹狩猎法,你可以直接抄
整个狩猎过程拆成四步,任何安全从业者都能复现:
- 找指纹:拿到攻击者基础设施后,先端口扫描,找那些不是开源软件的自研服务。固定响应体、固定响应头、特殊端口号,三样占两样就是好指纹
- 拼语法:把指纹翻译成测绘引擎的查询语法,fofa 用 body/header/port 组合,先小范围验证准确率,确认没有误伤再跑全网
- 验活:测绘数据是快照,写脚本对候选 IP 逐个发请求,校验逐字节一致才算确认,注意机房过滤会造成假超时
- 归属性判断:规模大的候选集要证明”是同一伙”,看三样,软件指纹一致、域名命名算法一致、采购渠道一致
原理一句话:黑产可以换域名、换 IP,但很难天天重写自己的软件。软件指纹比 IP 地址稳定得多,顺着指纹找,找的是它的生产线,不是它的临时工位。
IOC 和完整节点清单我已经整理好了,评论区扣”IOC”领取,也欢迎安全同行拿去交叉验证。
这次的问题、思路和经验
收个尾,按老规矩把这次的实战收成几条能带走的。
-
问题
:处置完入侵只是治标,攻击者的基础设施还在,换个域名就能再来
-
思路
:不追单个 IOC,追软件指纹。用测绘引擎把”一个案子”升级成”一张地图”,再按机房聚类,把举报从点杀变成面杀伤
-
经验一
:应急响应别止步于清除。恶意软件的服务端指纹是黑产最稳定的资产,也是最值钱的狩猎线索,处置阶段就要留意识别
-
经验二
:黑产不怕你封 IP,怕机房清客户。单 IP 举报是姿态,按机房批量投诉附可验证证据才是打击
-
经验三
:防弹主机和套名空壳客观存在,100% 清剿做不到,把它的运营成本打上去就是胜利
FAQ
问:fofa 搜出来 1090 个 IP,凭什么说都是同一家的? 答:三层证据。软件指纹一致,同版本 Golang 服务加逐字节相同的响应;域名命名算法一致,140 个绑定域名和恶意代码里硬编码的域名同模式;采购渠道一致,91% 集中在三家廉价海外 VPS 商家。单条都可能巧合,三条同时成立,巧合的概率可以忽略。
问:普通站长能用这个方法自查吗? 答:自查不需要 fofa。先查自己服务器:宝塔用户搜 nginx 配置里有没有陌生的 sub_filter,再用手机 UA 加百度 referrer 访问自己的站看会不会跳转。确认中招了,再顺着恶意代码里的域名反查,那才轮到测绘引擎上场。
问:举报真的有用吗? 答:有,但要分对象。正规机房有用,这次 CTG 就把单 IP 封了;防弹主机没用,它在商业上就是靠不理投诉活着的。批量举报的价值是抬高对方成本,域名、IP、机房信用,每曝光一分,它的运营成本就高一截。
野生码农,AI 实战派。自研 AI 本地知识库系统、AI 数字员工团队、软考 AI 备考系统、量化交易系统,全程公开复盘。
这篇是服务器入侵系列的续篇,从排查处置到威胁狩猎,这个团伙的 IOC 已经提交给威胁情报社区。月底还有一篇月报:AI 团队第一个月,真实数据全公开,难看的也报。
关注我,看真的。
野生码农 · 全网同名 · AI 数字员工实战复盘,数据只报实测
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:野生码农 AI 实战 野生码农 野生码农《服务器被入侵第三天:我用一个 404 指纹,在 fofa 上揪出 1090 台黑产机器》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论