사기꾼은 해커가 아니다: 4가지 백엔드 분석 결과, 모두 아주 쉽게 해킹당했다
Firebase · Supabase · Express.js · Drainer-as-a-Service · 2026년 2월

면책 조항: 분석일 뿐, 공격이 아닙니다
이 기사에서 다룬 모든 내용은 다음의 결과입니다. 수동적 분석 및 공개적으로 접근 가능한 데이터. 어떤 시스템도 침해되지 않았고, 인증 절차도 우회되지 않았습니다. 모든 사례에서 사기꾼들의 잘못된 구성으로 인해 그들의 인프라, 피해자 데이터, 운영자 신원이 단순히 살펴보기만 해도 누구나 볼 수 있는 상태로 노출되었습니다. 모든 API 키는 공개된 자바스크립트 번들에서 발견되었습니다. 모든 데이터베이스는 운영자 자신의 설계로 인해 완전히 노출된 상태였습니다. 우리가 이 사실을 기록하는 것은 비난하기 위해서가 아니라, 여러분의 암호화폐를 훔치는 사람들이 자신들의 도구조차 제대로 관리하지 못한다.
핵심 주장: 훔친 도구를 사용하는 스크립트 키디들
대중의 인식 속에는 온라인 사기꾼들이 “해커”, 즉 숙련되고 정교한 기술로 시스템에 침입하는 기술적 천재들이라는 오해가 여전히 뿌리 깊게 자리 잡고 있다. 이건 틀렸어요.
현대 암호화폐 사기꾼들은 구매한 툴킷을 사용하는 스크립트 키디들. 이들은 200~500달러에 “Drainer-as-a-Service” 패키지를 구매해 무료나 저렴한 호스팅 서비스에 배포한 뒤, 피해자들이 눈치채지 않기를 바랄 뿐입니다. 이들은 코드를 작성하지도 않고, 네트워킹에 대해서도 이해하지 못하며, 보안에 대해서는 더더욱 알지 못합니다.
우리가 이 사실을 알게 된 것은 2026년 2월, PhishDestroy가 분석한 결과 4건의 독립적인 사기 사건 — 그리고 모든 경우에 우리는 다음과 같이 할 수도 있었을 텐데:
- 도난당한 피해자 데이터를 모두 읽기 (시드 문구, 이메일, IP 주소, 지갑 유형)
- 수정됨 또는 삭제됨 사기꾼의 데이터베이스
- 운영자를 확인했습니다 노출된 API 키, 이메일 주소 및 인프라 지문을 통해
- 사기꾼에 대한 공격을 재현했다 — 그들이 방치해 둔 바로 그 취약점을 이용해
익스플로잇도 필요 없고, 제로데이도 필요 없으며, “해킹”도 필요 없습니다. 그저 자물쇠를 채우지 않은 채로 둔 현관문을 열자.
사례 1: 팬텀 API — server0002.mn19indexpre.xyz
Apache에서 실행되는 Express.js, 실질적인 보안은 전무하다
| 매개변수 | 값 |
|---|---|
| 도메인 | 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. 하지만 여기서 핵심은 바로 — 토큰이 실제로 검증되지 않았습니다:
입력 검증 없음
우리가 테스트한 모든 주입 페이로드는 아무런 오류 메시지 없이 받아들여졌습니다:
성능 지문
페이로드 크기(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
| 매개변수 | 값 |
|---|---|
| 피싱 도메인 | web3ledgar.com (“Ledger”의 타이포스쿼트) |
| 대체 도메인 | web3.ledgerscore.ltd |
| Firebase 프로젝트 | web3ledger-210ab |
| API 키 | AIzaSyCv8e-Gl7nK1RPpfNkJt-WjSZiaoe4AsL8 |
| 앱 ID | 1:1054258933515:web:9fb193fcd0093023f7fc0e |
| JS 번들 | /static/js/main.7a5ec2fa.js |
| Firestore 규칙 | 완전히 개방됨 — 인증 없이 읽기/쓰기 가능 |
| 피해자 총수 | 12개의 레코드가 있습니다 users 컬렉션 |
| 검색된 컬렉션 | users, transactions |
피해자 정보 — 누구나 자유롭게 열람 가능
Firestore REST API에 대한 인증되지 않은 단일 GET 요청의 응답은 다음과 같았습니다. 도난당한 모든 시드 문구:
12개의 기록 중에는 의미심장한 항목이 하나 있었는데, 누군가가 이미 이 시스템을 테스트해 본 흔적이 있었는데 fbi@fbi.gov 이메일 내용과 마찬가지로, 사기꾼이 자신의 시스템을 테스트했거나(신원 확인에 유용함) 다른 누군가가 이미 그 시스템을 탐색해 본 것일 수 있습니다.
공격 흐름
이 피싱 사이트는 레저(Ledger) 지갑 인터페이스를 모방하고 있습니다. 피해자가 “지갑 연결”을 클릭하면 → 시드 문구를 입력하게 되고 → React 프론트엔드가 Firestore에 직접 데이터를 기록하며 → 사기꾼은 이 공개된 데이터베이스에서 해당 정보를 읽어냅니다. 백엔드 서버가 전혀 없습니다. 전체 운영은 구글의 무료 요금제로 이루어집니다.
익명성 해제 가능성
Firebase 프로젝트 ID web3ledger-210ab 및 앱 ID 1:1054258933515 는 Google 계정에 연결됨. 구글은 모든 Firebase 프로젝트에 대한 청구 내역, IP 로그 및 계정 생성 데이터를 보관하고 있습니다. 법 집행 기관이 구글에 단 한 번의 요청만 해도 운영자의 신원이 드러납니다. 게다가 Firestore 규칙이 완전히 개방되어 있다는 것은 우리는 그들의 데이터베이스에 기록을 입력할 수도 있었을 것입니다, 피해자들에게 실시간으로 알리거나, 전체 컬렉션을 삭제했습니다.
사례 3: Supabase 전체 CRUD — web3safe-pal.com
행 단위 보안 비활성화, GraphQL 완전히 개방됨
| 매개변수 | 값 |
|---|---|
| 피싱 도메인 | 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 표:
ID는 130부터 시작됩니다 — 즉, 1~129번 레코드는 운영자가 이전에 삭제한 것입니다. 이 시스템을 통과한 시드 문구는 최소 131개입니다.
엣지 기능: 이메일 기록
두 개의 Supabase Edge Functions가 활성화되어 있습니다. 저희는 해당 기능을 리버스 엔지니어링하여 send-email 페이로드를 테스트하여 함수의 예상 입력 형식을 확인합니다:
API 키 재전송 (RESEND_API_KEY)는 Supabase 환경 변수에 저장됩니다. Resend는 발신자 인증 기록과 청구 데이터를 관리하며 — 연산자의 정체성을 파악할 수 있는 또 다른 직접적인 방법.
익명성 해제 가능성
러시아어 UI 현지화 내용(“Основной кошелек”, “Ваш кошелек загружается...”)은 다음을 나타냅니다. 러시아어를 구사하는 상담원. Supabase 프로젝트 (gzqsadraigchwdhblavp)는 청구 내역이 있는 계정과 연결되어 있습니다. ‘이메일 재전송’ 서비스에는 수신자 이메일 주소가 저장되어 있습니다. GraphQL 인트로스펙션을 통해 전체 데이터베이스 스키마를 확인할 수 있습니다. 우리는 전체 쓰기 권한을 시연했습니다 — 도난당한 모든 시드 문구를 피해자들에게 보내는 경고 메시지로 대체할 수도 있었을 것입니다, 또는 테이블 전체를 삭제했을 수도 있습니다. 운영자는 데이터를 복구할 방법이 전혀 없을 것입니다.
사례 4: 산업용 배수 장치 — aipolypredictor.xyz
5.8일 만에 19,000개의 시드 문구
| 매개변수 | 값 |
|---|---|
| 프론트엔드 분야 | aipolypredictor.xyz ("PolySniper | 프론트런 내부자 베팅") |
| C2 API | api.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가 반환되므로, 누구나 총 거래량을 계산할 수 있습니다:
다중 체인 아키텍처
C2 서버는 깊이 100의 도출 경로를 사용하여 모든 주요 체인에 걸쳐 키를 도출합니다:
캠페인 인프라
번들 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) | 예 (제출) |
| 입력 유효성 검사 | 0 | 0 | 0 | 미니멀 |
| 속도 제한 | 없음 | 없음 | 없음 | 60초당 10회 요청 |
| 익명성을 해제할 수 있는 | MS365 테넌트 | Google 계정 | 재전송 + Supabase 청구 | PDR + Telegram |
| 추정 피해자 수 | 알 수 없음 | 12 | 131+ | 19,000+ |
| 운영자 언어 | 알 수 없음 | 영어 | 러시아어 | 알 수 없음 |
사기꾼이 해커가 아닌 이유
증거는 압도적입니다. 총 4건의 작전 전반에 걸쳐 우리는 동일한 패턴을 확인할 수 있습니다:
- 기성품 물기 빼는 용기 세트 구매하기 ($200–$500)
- 무료 티어(Firebase, Supabase)에 배포하기
- 기본 설정을 그대로 둡니다.
- 검증되지 않는 하드코딩된 토큰을 사용하세요
- RLS는 절대 활성화하지 말고, CORS는 절대 제한하지 마십시오.
- 메타데이터에 자신의 신원을 공개하다
- 규모를 알 수 있는 순차적 ID를 사용하십시오
- 사용자 지정 정보 유출 도구 작성하기
- 암호화되고 인증된 통신 경로를 사용하십시오
- 식별자 무작위화, 인프라 순환 배치
- 적절한 접근 제어를 구현하십시오
- Tor/프록시 체인 사용, 익명 결제
- 운영 아이덴티티와 호스팅을 분리하십시오
- 포렌식 대응 기법 구현
‘Drainer-as-a-Service’의 일반적인 고객은 신용카드를 소지한 사회공학자, 기술 담당자는 아닙니다. 이들은 도메인을 등록하고 호스팅 패널에 코드를 삽입하는 방법은 알고 있습니다. 하지만 다음을 할 줄 모릅니다:
- Firestore 보안 규칙 구성 (소요 시간: 2분)
- Supabase 행 단위 보안 활성화 (소요 시간: 5분)
- 입력값 검증 및 정제 (소요 시간: 30분)
- 연속된 정수 대신 UUID를 사용하세요 (코드 한 줄이면 됩니다).
- CORS를 자체 도메인으로만 제한합니다(설정 한 줄이면 됩니다).
이들은 정교한 적들이 아닙니다. 이 사람들은 데이터베이스를 설정할 줄 모르는 사람들입니다.
침해 징후(IOC)
도메인
IP 주소
API 키 및 프로젝트 ID
결론: ‘황제는 옷을 입지 않았다’
핵심 요점
우리가 분석한 모든 사기 행각은 다음과 같을 수 있다 완전히 침해당하고, 익명성이 해제되었으며, 기능이 마비되었다 웹 브라우저, curl, 그리고 공개된 문서만 활용했습니다. 모든 사례에서 공격자들은 데이터베이스를 완전히 노출해 두었고, API 키를 공개된 자바스크립트 파일에 남겨두었으며, 메타데이터에 자신의 신원을 노출했고, 피해자의 데이터는 찾아보기만 하면 누구나 접근할 수 있도록 방치했습니다.
교훈은 간단합니다: 사기꾼은 해커가 아닙니다. 이들은 알리익스프레스에서 자물쇠 따는 도구 세트를 구입해 놓고 정작 자기 집 현관문은 잠그는 것을 깜빡한 상점 도둑이나 다름없다. 그들이 사용하는 도구는 정교하지만, 그건 다른 누군가가 만들어 준 것이기 때문이다. 운영자 본인은 아마추어에 불과하며, 기본적인 기술 지식만 있는 사람이라면 누구나 그들의 인프라와 피해자의 데이터, 그리고 자신들의 신원을 손쉽게 파악할 수 있게 내버려 둔다.
만약 이러한 사이트 중 어느 곳에든 시드 문구를 입력한 적이 있다면, 지갑이 해킹당했다고 가정하고 즉시 자금을 이체하십시오.
모든 조사 결과는 관련 서비스 제공업체(Google/Firebase, Supabase, Cloudflare, 도메인 등록 기관)에 보고되었으며, 법 집행 기관을 위해 문서화되었습니다. 위의 IOC는 다음 목록에 추가되었습니다. PhishDestroy 삭제 목록.


