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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
EvilClippy — 악성 MS Office 문서를 생성하는 크로스 플랫폼 도우미입니다. VBA 매크로를 숨기고, VBA 코드를 스톰프(P-Code를 통해)하며, 매크로 분석 도구를 혼란시킬 수 있습니다. Linux, OSX 및 Windows에서 실행됩니다. | Kitploit
도구/GitHubGitHub/outflanknl/evilclippy
Vulnerability AnalysisExploitationMalware AnalysisPenetration TestingLearning & EducationRed TeamingPayload Development
GitHuboutflanknl/evilclippy

EvilClippy

악성 MS Office 문서를 생성하는 크로스 플랫폼 도우미입니다. VBA 매크로를 숨기고, VBA 코드를 스톰프(P-Code를 통해)하며, 매크로 분석 도구를 혼란시킬 수 있습니다. Linux, OSX 및 Windows에서 실행됩니다.

저장소 보기
2.3k3985년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

이 도구는 2019년 3월 28일 BlackHat Asia 발표에서 공개되었습니다. 해당 발표의 영상 녹화본은 https://www.youtube.com/watch?v=9ULzZA70Dzg 에서 확인하실 수 있습니다.

Evil Clippy

악성 MS Office 문서를 생성하기 위한 크로스 플랫폼 도우미입니다. VBA 매크로를 숨기고, VBA 코드를 스톰핑(P-Code 이용)하며, 매크로 분석 도구를 혼란스럽게 할 수 있습니다. Linux, OSX 및 Windows에서 실행됩니다.

이 도구가 처음이라면, Evil Clippy에 대한 블로그 게시물을 먼저 읽어보시는 것이 좋습니다: https://outflank.nl/blog/2019/05/05/evil-clippy-ms-office-maldoc-assistant/

이 프로젝트는 승인된 테스트 또는 교육 목적으로만 사용해야 합니다.

현재 기능

  • GUI 편집기에서 VBA 매크로 숨기기
  • VBA 스톰핑 (P-code 남용)
  • 분석 도구 속이기
  • HTTP를 통해 VBA 스톰핑된 템플릿 제공
  • VBA 프로젝트 잠금/보기 불가 보호 설정/해제

이것들이 무엇인지 전혀 모르신다면, 먼저 다음 자료를 확인해보세요:

  • Derbycon 2018에서의 MS Office Magic Show 발표
  • Walmart 보안팀의 VBA 스톰핑 자료
  • Dr. Bontchev의 Pcodedmp

효과는 어느 정도인가요?

현재 시점에서 이 도구는 기본 Cobalt Strike 매크로를 사용하여 대부분의 주요 안티바이러스 제품과 다양한 maldoc 분석 도구를 우회할 수 있습니다 (VBA 스톰핑과 무작위 모듈 이름을 결합하여).

기술

Evil Clippy는 OpenMCDF 라이브러리를 사용하여 MS Office 복합 파일 바이너리 형식(CFBF) 파일을 조작하며, 이를 위해 MS-OVBA 사양 및 기능을 악용합니다. 또한 Kavod.VBA.Compression의 코드를 재사용하여 dir 및 module 스트림에서 사용되는 압축 알고리즘을 구현합니다 (관련 사양은 MS-OVBA 참조).

Evil Clippy는 Mono C# 컴파일러로 완벽하게 컴파일되며 Linux, OSX 및 Windows에서 테스트되었습니다.

컴파일

EvilClippy의 바이너리 릴리스는 제공하지 않습니다. 직접 실행 파일을 컴파일해 주세요:

OSX 및 Linux

Mono가 설치되어 있는지 확인하십시오. 그런 다음 명령줄에서 다음 명령을 실행하십시오:

mcs /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs

이제 명령줄에서 Evil Clippy를 실행하십시오:

mono EvilClippy.exe -h

Windows

Visual Studio가 설치되어 있는지 확인하십시오. 그런 다음 Visual Studio 개발자 명령 프롬프트에서 다음 명령을 실행하십시오:

csc /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs

이제 명령줄에서 Evil Clippy를 실행하십시오:

EvilClippy.exe -h

사용 예

도움말 출력

EvilClippy.exe -h

GUI에서 매크로 숨기기/숨기기 해제

VBA GUI 편집기에서 모든 매크로 모듈(기본 "ThisDocument" 모듈 제외)을 숨깁니다. 이는 프로젝트 스트림 [MS-OVBA 2.3.1]에서 모듈 라인을 제거하여 달성됩니다.

EvilClippy.exe -g macrofile.doc

숨기기 옵션(-g)으로 변경된 사항을 실행 취소하여 VBA IDE에서 매크로를 디버그할 수 있게 합니다.

EvilClippy.exe -gg macrofile.doc

VBA 스톰핑 (P-code 남용)

텍스트 파일 fakecode.vba의 가짜 VBA 코드를 모든 모듈에 넣고 P-code는 그대로 둡니다. 이는 모듈 스트림 [MS-OVBA 2.3.4.3]의 문서화되지 않은 기능을 남용합니다. P-code가 실행되려면 VBA 프로젝트 버전이 호스트 프로그램과 일치해야 합니다 (버전 일치에 대해서는 다음 예제 참조).

EvilClippy.exe -s fakecode.vba macrofile.doc

참고: VBA 스톰핑은 Excel 97-2003 통합 문서(.xls) 형식으로 저장된 파일에서는 작동하지 않습니다.

VBA 스톰핑을 위한 대상 Office 버전 설정

위와 동일하지만, 이번에는 Word 2016 x86을 명시적으로 대상으로 합니다. 즉, Word 2016 x86은 P-code를 실행하고, 다른 Word 버전은 fakecode.vba의 코드를 대신 실행합니다. _VBA_PROJECT 스트림 [MS-OVBA 2.3.4.1]에서 적절한 버전 바이트를 설정하여 달성됩니다.

EvilClippy.exe -s fakecode.vba -t 2016x86 macrofile.doc

무작위 모듈 이름 설정/재설정 (분석 도구 속이기)

dir 스트림 [MS-OVBA 2.3.4.2]에서 무작위 ASCII 모듈 이름을 설정합니다. 이는 MODULESTREAMNAME 레코드 [MS-OVBA 2.3.4.2.3.2.3]의 모호성을 악용합니다. 대부분의 분석 도구는 여기에 지정된 ASCII 모듈 이름을 사용하는 반면, MS Office는 유니코드 변형을 사용합니다. 무작위 ASCII 모듈 이름을 설정하면 대부분의 P-code 및 VBA 분석 도구가 충돌하는 반면, 실제 P-code와 VBA는 Word와 Excel에서 여전히 정상적으로 실행됩니다.

EvilClippy.exe -r macrofile.doc

참고: 이 방법은 pcodedmp 및 VirusTotal을 속이는 데 효과적인 것으로 알려져 있습니다.

dir 스트림의 ASCII 모듈 이름을 유니코드 대응 이름과 일치하도록 설정합니다. 이는 EvilClippy의 (-r) 옵션으로 변경된 사항을 되돌립니다.

EvilClippy.exe -rr macrofile.doc

HTTP를 통해 VBA 스톰핑된 템플릿 제공

VBA 스톰핑을 수행한 후 macrofile.dot을 HTTP 포트 8080으로 서비스합니다. 이 파일이 검색되면 자동으로 대상의 Office 버전에 맞춥니다 (HTTP 헤더를 사용한 후 _VBA_PROJECT 바이트를 설정하여).

EvilClippy.exe -s fakecode.vba -w 8080 macrofile.dot

참고: 서비스할 파일은 템플릿(.doc 대신 .dot)이어야 합니다. Word의 개발 도구 모음에서 URL을 통해 템플릿을 설정할 수 있습니다 (.dot 확장자는 필요하지 않습니다!). 또한 fakecode.vba에는 템플릿의 매크로에 대한 VB_Base 속성이 설정되어 있어야 합니다 (즉, fakecode.vba는 Attribute VB_Base = "0{00020906-0000-0000-C000-000000000046}" 와 같은 줄로 시작해야 합니다).

VBA 프로젝트 잠금/보기 불가 보호 설정/해제

잠금/보기 불가 특성을 설정하려면 '-u' 옵션을 사용하세요:

EvilClippy.exe -u macrofile.doc

잠금/보기 불가 특성을 제거하려면 '-uu' 옵션을 사용하세요:

EvilClippy.exe -uu macrofile.doc

참고: EvilClippy로 잠그지 않은 파일에서도 잠금/보기 불가 특성을 제거할 수 있습니다.

제한 사항

Microsoft Word 및 Excel 문서 조작용으로 개발되었습니다.

위에서 언급했듯이 VBA 스톰핑은 Excel 97-2003 통합 문서(.xls) 형식에는 효과적이지 않습니다.

저자

Stan Hegt (@StanHacked) / Outflank

Carrie Roberts (@OrOneEqualsOne / Walmart)의 중요한 기여 포함.

OpenMCDF를 알려준 Nick Landers (@monoxgas / Silent Break Security)에게 특별히 감사드립니다.

도구 다운로드