본문으로 건너뛰기
뉴스로 돌아가기
다중 사건 수사

사기꾼은 해커가 아니다: 4가지 백엔드 분석 결과, 모두 아주 쉽게 해킹당했다

Firebase · Supabase · Express.js · Drainer-as-a-Service · 2026년 2월

사기 조직의 실체 적발
19,000+
시드 문구 도난 (1건의 캠페인)
4
백엔드에 대한 전체 액세스 권한
0
인증 필요
267+
피싱과 연관된 도메인

 면책 조항: 분석일 뿐, 공격이 아닙니다

이 기사에서 다룬 모든 내용은 다음의 결과입니다. 수동적 분석 및 공개적으로 접근 가능한 데이터. 어떤 시스템도 침해되지 않았고, 인증 절차도 우회되지 않았습니다. 모든 사례에서 사기꾼들의 잘못된 구성으로 인해 그들의 인프라, 피해자 데이터, 운영자 신원이 단순히 살펴보기만 해도 누구나 볼 수 있는 상태로 노출되었습니다. 모든 API 키는 공개된 자바스크립트 번들에서 발견되었습니다. 모든 데이터베이스는 운영자 자신의 설계로 인해 완전히 노출된 상태였습니다. 우리가 이 사실을 기록하는 것은 비난하기 위해서가 아니라, 여러분의 암호화폐를 훔치는 사람들이 자신들의 도구조차 제대로 관리하지 못한다.

 핵심 주장: 훔친 도구를 사용하는 스크립트 키디들

대중의 인식 속에는 온라인 사기꾼들이 “해커”, 즉 숙련되고 정교한 기술로 시스템에 침입하는 기술적 천재들이라는 오해가 여전히 뿌리 깊게 자리 잡고 있다. 이건 틀렸어요.

현대 암호화폐 사기꾼들은 구매한 툴킷을 사용하는 스크립트 키디들. 이들은 200~500달러에 “Drainer-as-a-Service” 패키지를 구매해 무료나 저렴한 호스팅 서비스에 배포한 뒤, 피해자들이 눈치채지 않기를 바랄 뿐입니다. 이들은 코드를 작성하지도 않고, 네트워킹에 대해서도 이해하지 못하며, 보안에 대해서는 더더욱 알지 못합니다.

우리가 이 사실을 알게 된 것은 2026년 2월, PhishDestroy가 분석한 결과 4건의 독립적인 사기 사건 — 그리고 모든 경우에 우리는 다음과 같이 할 수도 있었을 텐데:

익스플로잇도 필요 없고, 제로데이도 필요 없으며, “해킹”도 필요 없습니다. 그저 자물쇠를 채우지 않은 채로 둔 현관문을 열자.

 사례 1: 팬텀 API — server0002.mn19indexpre.xyz

 Apache에서 실행되는 Express.js, 실질적인 보안은 전무하다

인증 없음입력 검증 없음속도 제한 없음CORS: *
매개변수
도메인server0002.mn19indexpre.xyz
IP 주소108.181.185.225
서버 스택Apache/2.4.58 (Ubuntu) → Express.js (Node.js)
SSH 배너SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.11
TLS 발급자Let's Encrypt (E7), 유효 기간: 2026년 1월~4월
DNS 등록 기관GoDaddy (ns39/ns40.domaincontrol.com)
이메일 (MX)mn19indexpre-xyz.mail.protection.outlook.com
Microsoft 테넌트NETORGFT19090185.onmicrosoft.com
열린 포트22 (SSH), 80 (HTTP→301), 443 (HTTPS)

 "인증" — 농담

이 API에는 하드코딩된 Bearer 토큰이 포함되어 있습니다: thisisakeyforsecureserver. 하지만 여기서 핵심은 바로 — 토큰이 실제로 검증되지 않았습니다:

// No auth header → accepted POST / HTTP/1.1 Content-Type: application/json {"subject":"test","domain":"test","messages":["ping"]} → {"success":true}// Wrong token → also accepted 인증: Bearer wrong_token_completely → {"success":true}// Any content type → also accepted Content-Type: text/xml, text/plain, multipart/form-data → {"success":true}

 입력 검증 없음

우리가 테스트한 모든 주입 페이로드는 아무런 오류 메시지 없이 받아들여졌습니다:

// SQL injection 제목: "' OR 1=1--"→ 승인됨 제목: "'; DROP TABLE messages;--"→ 승인됨// SSTI (Server-Side Template Injection) 제목: "{{7*7}}"→ 승인됨 제목: "{{config}}"→ 승인됨 제목: "{{self.__class__}}"→ 승인됨// SSRF (Server-Side Request Forgery) 도메인: "http://169.254.169.254/latest/meta-data/"→ 승인됨 도메인: "file:///etc/passwd"→ 승인됨// XSS stored payload 제목: "<script>alert(1)</script>"→ 승인됨

 성능 지문

페이로드 크기(10바이트에서 10MB까지 허용)와 관계없이 POST 요청에 대해 약 7.5초의 일관된 응답 시간을 보이며, 이는 백엔드에서 이메일 전달 또는 웹훅 중계 기능이 작동하고 있음을 시사합니다. GET 요청은 0.6초 만에 응답합니다. 10개의 병렬 요청이 9.1초 만에 완료되며, 요청 속도 제한은 적용되지 않습니다.

 익명성 해제 가능성

Microsoft 365 테넌트 ID NETORGFT19090185해당 단체 계정으로 바로 연결되는 링크 이 도메인을 등록한 곳입니다. GoDaddy 등록 기록과 전용 IP(CDN 뒤에 숨겨져 있지 않은)를 종합해 볼 때, 이 운영자는 쉽게 식별 가능한 법적 절차를 통해. SPF 레코드 (include:secureserver.net)에 따르면 GoDaddy 이메일 호스팅의 경우, 모든 이메일 메타데이터는 소환장을 통해 열람할 수 있습니다.

 사례 2: Firebase가 완전히 노출됨 — web3ledgar.com

 보안 규칙이 전혀 없는 Firestore

FIRESTORE 규칙: OPEN모든 피해자 데이터가 읽을 수 있는 상태입니다공개 JS 내의 API 키12명의 피해자 신원 공개
매개변수
피싱 도메인web3ledgar.com (“Ledger”의 타이포스쿼트)
대체 도메인web3.ledgerscore.ltd
Firebase 프로젝트web3ledger-210ab
API 키AIzaSyCv8e-Gl7nK1RPpfNkJt-WjSZiaoe4AsL8
앱 ID1:1054258933515:web:9fb193fcd0093023f7fc0e
JS 번들/static/js/main.7a5ec2fa.js
Firestore 규칙완전히 개방됨 — 인증 없이 읽기/쓰기 가능
피해자 총수12개의 레코드가 있습니다 users 컬렉션
검색된 컬렉션users, transactions

 피해자 정보 — 누구나 자유롭게 열람 가능

Firestore REST API에 대한 인증되지 않은 단일 GET 요청의 응답은 다음과 같았습니다. 도난당한 모든 시드 문구:

GET /v1/projects/web3ledger-210ab/databases/(default)/documents/users?pageSize=300 → 200 OK→ 총 문서 수: 12// Sample victim record (seed phrase redacted for safety) { "walletId": "W3L-65285520", "walletType": "WalletConnect", "이메일": "[삭제됨]@gmail.com", "시드 문구": "████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████", "createdAt": "2026-02-15T00:14:52.804Z", "상태": "활성" }

12개의 기록 중에는 의미심장한 항목이 하나 있었는데, 누군가가 이미 이 시스템을 테스트해 본 흔적이 있었는데 fbi@fbi.gov 이메일 내용과 마찬가지로, 사기꾼이 자신의 시스템을 테스트했거나(신원 확인에 유용함) 다른 누군가가 이미 그 시스템을 탐색해 본 것일 수 있습니다.

 공격 흐름

이 피싱 사이트는 레저(Ledger) 지갑 인터페이스를 모방하고 있습니다. 피해자가 “지갑 연결”을 클릭하면 → 시드 문구를 입력하게 되고 → React 프론트엔드가 Firestore에 직접 데이터를 기록하며 → 사기꾼은 이 공개된 데이터베이스에서 해당 정보를 읽어냅니다. 백엔드 서버가 전혀 없습니다. 전체 운영은 구글의 무료 요금제로 이루어집니다.

 익명성 해제 가능성

Firebase 프로젝트 ID web3ledger-210ab 및 앱 ID 1:1054258933515Google 계정에 연결됨. 구글은 모든 Firebase 프로젝트에 대한 청구 내역, IP 로그 및 계정 생성 데이터를 보관하고 있습니다. 법 집행 기관이 구글에 단 한 번의 요청만 해도 운영자의 신원이 드러납니다. 게다가 Firestore 규칙이 완전히 개방되어 있다는 것은 우리는 그들의 데이터베이스에 기록을 입력할 수도 있었을 것입니다, 피해자들에게 실시간으로 알리거나, 전체 컬렉션을 삭제했습니다.

 사례 3: Supabase 전체 CRUD — web3safe-pal.com

 행 단위 보안 비활성화, GraphQL 완전히 개방됨

RLS 비활성화됨전체 CRUD 접근 권한GraphQL 지원EDGE 함수 노출러시아어 현지화
매개변수
피싱 도메인web3safe-pal.com (“SafePal”의 타이포스쿼트)
Supabase 프로젝트gzqsadraigchwdhblavp
Anon 키 공개된 곳: /assets/index-b025f4a6.js (748 KB)
데이터베이스 테이블seeds — 열기, 읽기, 삽입, 업데이트, 삭제
GraphQL전체 인트로스펙션 및 변이 활성화됨
엣지 기능 send-wallet-import-email, send-email
이메일 서비스API 재전송 (환경 변수 내 RESEND_API_KEY)
피해자 기록ID 130–131 (129는 이전에 삭제됨)
UI 언어 러시아어 (“Основной кошелек”, “Ваш кошелек загружается...”)

 전체 데이터베이스 액세스 — 읽기, 쓰기, 삭제

축소된 자바스크립트 번들에서 발견되는 Supabase 익명 키는 다음과 같은 권한을 부여합니다. 완전한 CRUD 접근 권한 ~에 seeds 표:

// READ — get all stolen seed phrases GET /rest/v1/seeds?select=*ℴ=id.asc → 200 OK [ {"id":130, "문구":"████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████", "이름":"메인 지갑"}, {"id":131, "문구":"████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████", "이름":"메인 지갑"} ] // INSERT — we can write to the scammer's database POST /rest/v1/seeds {"phrase":"PHISHDESTROY_WAS_HERE","name":"test"} → 201 생성됨 {"id":132} // UPDATE via GraphQL mutation { updateseedsCollection(filter:{id:{eq:131}}, set:{name:"PhishDestroy was here"}) { affectedCount } } → {"영향을 받은 수": 1}// DELETE via GraphQL mutation { deleteFromseedsCollection(filter:{id:{eq:131}}, atMost:1) { affectedCount } } → {"영향을 받은 수": 1}

ID는 130부터 시작됩니다 — 즉, 1~129번 레코드는 운영자가 이전에 삭제한 것입니다. 이 시스템을 통과한 시드 문구는 최소 131개입니다.

 엣지 기능: 이메일 기록

두 개의 Supabase Edge Functions가 활성화되어 있습니다. 저희는 해당 기능을 리버스 엔지니어링하여 send-email 페이로드를 테스트하여 함수의 예상 입력 형식을 확인합니다:

// Probing send-email endpoint {"seed":"test phrase","name":"test"} → 200 OK {"id":"f2749592-..."} {"seed_phrase":"...","wallet_name":"..."} → 400 “시드 데이터가 제공되지 않았습니다.” {"phrase":"...","name":"..."} → 400 “시드 데이터가 제공되지 않았습니다.”// The function accepts {seed, name} and sends to attacker via Resend API// Edge Function source (reconstructed from JS bundle):// NB.functions.invoke("send-wallet-import-email",// {body: {wallet_name, secret_phrase, ip_address}})

API 키 재전송 (RESEND_API_KEY)는 Supabase 환경 변수에 저장됩니다. Resend는 발신자 인증 기록과 청구 데이터를 관리하며 — 연산자의 정체성을 파악할 수 있는 또 다른 직접적인 방법.

 익명성 해제 가능성

러시아어 UI 현지화 내용(“Основной кошелек”, “Ваш кошелек загружается...”)은 다음을 나타냅니다. 러시아어를 구사하는 상담원. Supabase 프로젝트 (gzqsadraigchwdhblavp)는 청구 내역이 있는 계정과 연결되어 있습니다. ‘이메일 재전송’ 서비스에는 수신자 이메일 주소가 저장되어 있습니다. GraphQL 인트로스펙션을 통해 전체 데이터베이스 스키마를 확인할 수 있습니다. 우리는 전체 쓰기 권한을 시연했습니다 — 도난당한 모든 시드 문구를 피해자들에게 보내는 경고 메시지로 대체할 수도 있었을 것입니다, 또는 테이블 전체를 삭제했을 수도 있습니다. 운영자는 데이터를 복구할 방법이 전혀 없을 것입니다.

 사례 4: 산업용 배수 장치 — aipolypredictor.xyz

 5.8일 만에 19,000개의 시드 문구

19,000개 이상의 씨앗 도난당해연속적인 작업 IDCORS 제한 없음DaaS KIT (defex.cc)11개 도메인 확정
매개변수
프론트엔드 분야 aipolypredictor.xyz ("PolySniper | 프론트런 내부자 베팅")
C2 APIapi.yfhikblkhghdyteiuyf54.run
C2 IP 주소 172.67.168.147, 104.21.26.231 (Cloudflare)
백엔드Express.js (Node.js) v1.0.0
등록 담당자 (프론트엔드)NiceNIC 인터내셔널 그룹 주식회사
등록 담당자 (C2)PDR Ltd. (PublicDomainRegistry.com)
가동 시간약 139시간 (2026년 2월 10일 21:00 UTC경 시작)
드레인 키트 CDN renderer-postcard.defex.cc (601 KB 난독화된 JS)
Telegram 봇활성화됨, 알림 기능 통합됨
요청 제한60초당 10회 요청 (확인된 유일한 제한 사항)

 순차적 ID를 통해 드러나는 규모

가장 치명적인 실수: 순차적 작업 ID. 시드 문구를 제출할 때마다 순차적으로 증가하는 ID가 반환되므로, 누구나 총 거래량을 계산할 수 있습니다:

POST /api/check-seed-full { "시드 문구": "여기에 테스트 문구를 입력하세요", "bundleId": "88ef78f56e0837dd0339e40a882bf563", "깊이": 100, "도메인": "aipolypredictor.xyz", "sourceInfo": {"walletName":"메타마스크", "isBot":false} } → {"success":true, "message":"대기열에 등록됨", "jobId":"19358"}// Next request: jobId 19359, then 19360...// ~19,000 seed phrases in ~139 hours = ~137 per hour

 다중 체인 아키텍처

C2 서버는 깊이 100의 도출 경로를 사용하여 모든 주요 체인에 걸쳐 키를 도출합니다:

⛓️
표적이 된 체인들
ETH/BTC/SOL/XMR
🔑
파생 깊이
100
🌐
확인된 도메인
11
🕸️
defex.cc 링크
255+

 캠페인 인프라

번들 ID를 통해 추적된 2개 운영사 그룹에 걸쳐 확인된 11개의 도메인:

번들 ID도메인상태
88ef78f5...aipolypredictor.xyz라이브
4446ea5d...solana.onspace.app, solxjup.onspace.app라이브
defex.cc 키트 jup-v2.com, events-charizard.fun, events-llquid.fun, events-blackswan.fun, soljup.onspace.build 혼합

 자바스크립트 페이로드 분석

다음과 같은 세 개의 난독화된 JS 페이로드가 드레이너에 전달됩니다:

  • wallet-connect.js (46 KB) — 지갑 연결 UI를 처리하고, 시드 입력을 가로챈다. 문자열 배열 순환을 통한 난독화.
  • wallet-specific-modals.js (134 KB) — 포함 내용 전체 BIP39 영어 단어 목록 그리고 모네로 단어 목록 (1,626단어). console.log/trace 재정의 기능을 통한 디버깅 방지. 다중 지갑 모달 지원.
  • defex.cc/index.js (601 KB) — 중국어 변수명을 사용하여 유니코드 난독화 처리됨. 솔라나 전용 드레이너 로직. Base58 인코더, 암호화 키 도출 프리미티브. 버전 3.0.0.

 익명성 해제 가능성

CORS: * 헤더와 인증 수단의 부재 누구나 요청을 제출하고 작업 ID의 증가 추이를 확인할 수 있습니다. 실시간으로. Telegram 봇이 연동되어 있어 운영자의 Telegram 계정으로 알림이 전송되며, Telegram 메타데이터는 소환장을 통해 제출을 요구받을 수 있습니다. NiceNIC(프론트엔드 등록 기관)은 우리가 알고 있는, 보안이 철저한 등록 기관으로 이전에 조사된 바 있다, 하지만 PDR Ltd. (C2 도메인 등록기관) 법 집행 기관의 요청에 응하고 있다. 그 defex.cc 드레이너 키트는 255개 이상의 도메인을 지원하고 있으며, defex.cc가 해킹당할 경우 DaaS 운영 전반과 모든 고객이 노출될 수 있습니다.

 나란히 비교: 4가지 연산, 동일한 패턴

미터법 mn19indexpre
Express.js
web3ledgar
Firebase
web3safe-pal
Supabase
aipolypredictor
드레이너 C2
인증없음 (토큰 무시됨)없음JS의 Anon 키없음 (CORS: *)
데이터 읽기 가능메시지/중계모든 시드 문구모든 시드 문구채용 공고 번호 / 급여 등급
데이터 기록 가능예 (무제한)예 (전체 CRUD)예 (제출)
입력 유효성 검사000미니멀
속도 제한없음없음없음60초당 10회 요청
익명성을 해제할 수 있는MS365 테넌트Google 계정재전송 + Supabase 청구PDR + Telegram
추정 피해자 수알 수 없음12131+19,000+
운영자 언어알 수 없음영어러시아어알 수 없음

 사기꾼이 해커가 아닌 이유

증거는 압도적입니다. 총 4건의 작전 전반에 걸쳐 우리는 동일한 패턴을 확인할 수 있습니다:

 사기꾼들의 수법
  • 기성품 물기 빼는 용기 세트 구매하기 ($200–$500)
  • 무료 티어(Firebase, Supabase)에 배포하기
  • 기본 설정을 그대로 둡니다.
  • 검증되지 않는 하드코딩된 토큰을 사용하세요
  • RLS는 절대 활성화하지 말고, CORS는 절대 제한하지 마십시오.
  • 메타데이터에 자신의 신원을 공개하다
  • 규모를 알 수 있는 순차적 ID를 사용하십시오
 해커라면 어떻게 할까
  • 사용자 지정 정보 유출 도구 작성하기
  • 암호화되고 인증된 통신 경로를 사용하십시오
  • 식별자 무작위화, 인프라 순환 배치
  • 적절한 접근 제어를 구현하십시오
  • Tor/프록시 체인 사용, 익명 결제
  • 운영 아이덴티티와 호스팅을 분리하십시오
  • 포렌식 대응 기법 구현

‘Drainer-as-a-Service’의 일반적인 고객은 신용카드를 소지한 사회공학자, 기술 담당자는 아닙니다. 이들은 도메인을 등록하고 호스팅 패널에 코드를 삽입하는 방법은 알고 있습니다. 하지만 다음을 할 줄 모릅니다:

이들은 정교한 적들이 아닙니다. 이 사람들은 데이터베이스를 설정할 줄 모르는 사람들입니다.

 침해 징후(IOC)

도메인

# Case 1: Express.js API server0002.mn19indexpre.xyz # Case 2: Firebase Stealer web3ledgar.com web3.ledgerscore.ltd # Case 3: Supabase Stealer web3safe-pal.com # Case 4: Drainer Campaign aipolypredictor.xyz API.yfhikblkhghdyteiuyf54.run yfhikblkhghdyteiuyf54.run renderer-postcard.defex.cc solana.onspace.app solxjup.onspace.app jupag.onspace.app jupiverse.onspace.app stakepayment.icu jup-v2.com events-charizard.fun events-llquid.fun events-blackswan.fun soljup.onspace.build

IP 주소

108.181.185.225 # Case 1 — Express.js (dedicated) 172.67.168.147 / 104.21.26.231 # Case 4 — C2 API (Cloudflare) 172.67.178.251 / 104.21.67.171 # Case 4 — Frontend (Cloudflare) 172.67.209.39 / 104.21.37.139 # Case 4 — defex.cc (Cloudflare) 43.130.171.152 / 43.130.171.225 # Case 4 — onspace domains (Tencent)

API 키 및 프로젝트 ID

# Firebase (Case 2) 프로젝트: web3ledger-210ab API 키: AIzaSyCv8e-Gl7nK1RPpfNkJt-WjSZiaoe4AsL8 앱 ID: 1:1054258933515:web:9fb193fcd0093023f7fc0e # Supabase (Case 3) 프로젝트: gzqsadraigchwdhblavp 익명 키: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... # Campaign Tracking (Case 4) 번들 1: 88ef78f56e0837dd0339e40a882bf563 번들 2: 4446ea5ddb308b2494db8ad4b12196c3 # Microsoft Tenant (Case 1) NETORGFT19090185.onmicrosoft.com

 결론: ‘황제는 옷을 입지 않았다’

 핵심 요점

우리가 분석한 모든 사기 행각은 다음과 같을 수 있다 완전히 침해당하고, 익명성이 해제되었으며, 기능이 마비되었다 웹 브라우저, curl, 그리고 공개된 문서만 활용했습니다. 모든 사례에서 공격자들은 데이터베이스를 완전히 노출해 두었고, API 키를 공개된 자바스크립트 파일에 남겨두었으며, 메타데이터에 자신의 신원을 노출했고, 피해자의 데이터는 찾아보기만 하면 누구나 접근할 수 있도록 방치했습니다.

교훈은 간단합니다: 사기꾼은 해커가 아닙니다. 이들은 알리익스프레스에서 자물쇠 따는 도구 세트를 구입해 놓고 정작 자기 집 현관문은 잠그는 것을 깜빡한 상점 도둑이나 다름없다. 그들이 사용하는 도구는 정교하지만, 그건 다른 누군가가 만들어 준 것이기 때문이다. 운영자 본인은 아마추어에 불과하며, 기본적인 기술 지식만 있는 사람이라면 누구나 그들의 인프라와 피해자의 데이터, 그리고 자신들의 신원을 손쉽게 파악할 수 있게 내버려 둔다.

만약 이러한 사이트 중 어느 곳에든 시드 문구를 입력한 적이 있다면, 지갑이 해킹당했다고 가정하고 즉시 자금을 이체하십시오.

모든 조사 결과는 관련 서비스 제공업체(Google/Firebase, Supabase, Cloudflare, 도메인 등록 기관)에 보고되었으며, 법 집행 기관을 위해 문서화되었습니다. 위의 IOC는 다음 목록에 추가되었습니다. PhishDestroy 삭제 목록.

이 조사 결과 공유하기

X / Twitter Telegram 레딧 LinkedIn

관련 조사

BUYTRX 실체 폭로: 55개 도메인 및 TRON 승인 권한 탈취 사건
조사
BUYTRX 실체 폭로: 55개 도메인 및 TRON 승인 권한 탈취 사건
암호화폐 탈취 툴킷: ‘엔젤 드레이너’ 재판매업자 실체 적발
심층 취재
암호화폐 탈취 툴킷: ‘엔젤 드레이너’ 재판매업자 실체 적발
케이타로 TDS: 1,500개의 패널이 노출되었으나, 합법적인 용도는 전혀 없음
조사
케이타로 TDS: 1,500개의 패널이 노출되었으나, 합법적인 용도는 전혀 없음
투명성 공지. PhishDestroy는 비영리 독립 프로젝트입니다. 당사의 연구 결과에는 사기 인프라 및 이를 가능하게 하는 서비스에 대한 내재된 편향이 반영되어 있을 수 있습니다. 독자 여러분께서는 모든 자료를 비판적이고 독립적인 시각으로 평가해 주시기를 당부드립니다. 투명성 선언문 전문 보기 →