피드로 돌아가기
Dev.toSecurity
원문 읽기
Node.js 기반 패킹 악성코드 분석 및 AES 복호화 전략
CyberDefenders - Silent Breach WriteUp
AI 요약
Context
사용자가 PDF로 위장한 실행 파일을 다운로드하여 시스템 침해 발생. Node.js 코드를 PE 파일로 패킹하여 탐지를 회피한 정교한 공격 방식. obfuscated PowerShell 스크립트를 통해 내부 파일을 암호화하는 구조.
Technical Solution
- Zone.Identifier 메타데이터의 ZoneId=3 값을 확인하여 외부 인터넷 다운로드 경로 식별
- Microsoft Edge 브라우저의 SQLite History 파일을 분석하여 유포지 URL 및 다운로드 이력 추출
- vercel/pkg 라이브러리로 패킹된 V8 바이트코드를 pkg-unpacker로 복원하여 원본 Node.js 소스 코드 확보
- 문자열 반전 및 Base64 디코딩 로직이 포함된 PowerShell 스크립트의 실행 지점에 브레이크포인트를 설정하여 복호화 키 추출
- Rfc2898DeriveBytes 클래스와 AES-CBC 모드 및 PKCS7 패딩 설정을 적용한 맞춤형 복호화 스크립트 설계
- 추출한 암호화 키와 솔트(Salt) 값을 기반으로 .enc 파일을 원본 .pdf 파일로 복구하는 프로세스 수행
Key Takeaway
정적 분석을 회피하는 패킹 도구 사용 시 런타임 메모리 분석이나 언패커를 통한 소스 복원 전략이 필수적임. 암호화 라이브러리의 구현 세부 사항(IV, Salt, Iteration)을 정확히 일치시켜야 데이터 복구가 가능함.
실천 포인트
실행 파일의 확장자 위장 여부를 확인하고 MOTW(Mark of the Web) 메타데이터를 통해 파일 유입 경로를 우선 추적할 것