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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/neo23x0/raccine
Defensive ToolsThreat IntelligenceIntrusion DetectionIncident ResponseAnomaly DetectionLog Analysis
GitHubneo23x0/raccine

Raccine

A Simple Ransomware Vaccine

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Inactively Maintained

Raccine

Raccine

간단한 랜섬웨어 보호 도구

왜 만들었나

우리는 랜섬웨어가 vssadmin을 사용해 모든 섀도 복사본을 삭제하는 것을 꽤 자주 목격합니다. 해당 요청을 가로채서 호출한 프로세스를 종료할 수 있다면 어떨까요? 간단한 백신을 만들어 봅시다.

Ransomware Process Tree

작동 방식

우리는 vssadmin.exe(및 wmic.exe)에 대해 디버거를 등록하며, 이 디버거가 바로 우리가 컴파일한 raccine.exe입니다. Raccine은 먼저 모든 부모 프로세스의 PID를 수집한 다음 모든 부모 프로세스를 종료하려고 시도하는 바이너리입니다.

장점:

  • 이 방식은 상당히 범용적입니다
  • 시스템 파일(vssadmin.exe 또는 wmic.exe)을 교체할 필요가 없습니다. 시스템 파일 교체는 무결성 문제를 일으킬 수 있고 패치가 적용될 때마다 백신 적용(raccination)이 깨질 수 있습니다
  • 악성 활동 탐지를 위한 명령줄 매개변수의 유연한 YARA 규칙 스캔
  • 변경 사항을 쉽게 되돌릴 수 있습니다
  • Windows 7 / Windows 2008 R2 이상에서 실행됩니다
  • 실행 중인 실행 파일이나 추가 서비스가 필요 없습니다 (에이전트 없는 방식)

단점 / 사각지대:

  • vssadmin.exe delete shadows(또는 기타 차단 목록에 포함된 명령 조합)의 정당한 사용이 더 이상 불가능합니다
  • vssadmin.exe delete shadows를 호출하려던 프로세스까지 종료하며, 이는 백업 프로세스일 수도 있습니다
  • 악성 프로세스가 vssadmin.exe를 호출한 프로세스 트리에 포함되지 않은 방식(예: schtasks를 통한 방식)은 탐지하지 못합니다

프로세스

  1. vssadmin.exe(및 wmic.exe) 호출이 가로채져 디버거로 raccine.exe에 전달됩니다 (vssadmin.exe delete shadows는 raccine.exe vssadmin.exe delete shadows가 됩니다)
  2. 그런 다음 명령줄 인수를 처리하고 YARA 규칙을 사용하여 악성 조합을 찾습니다.
  3. 악성 조합이 발견되지 않으면 원래 명령줄 매개변수로 새 프로세스를 생성합니다.
  4. 악성 조합이 발견되면 모든 부모 프로세스의 PID를 수집하여 종료하기 시작합니다 (위 스크린샷에 표시된 것처럼 맬웨어 프로세스여야 합니다). Raccine은 종료된 PID가 표시된 명령줄 창을 5초 동안 표시하고, 이를 Windows 이벤트 로그에 기록한 후 자체적으로 종료됩니다.

악성 명령 조합:

  • delete 및 shadows (vssadmin, diskshadow)
  • resize 및 shadowstorage (vssadmin)
  • delete 및 shadowstorage (vssadmin)
  • delete 및 shadowcopy (wmic)
  • delete, catalog 및 -quiet (wbadmin)
  • win32_shadowcopy 또는 인코딩된 명령 목록의 요소 (powershell)
  • recoveryenabled (bcedit)
  • ignoreallfailures (bcedit)

^ 오래된 목록: 해당 YARA 규칙을 확인하세요

인코딩된 PowerShell 명령 목록: JAB, SQBFAF, SQBuAH, SUVYI, cwBhA, aWV4I, aQBlAHgA 등 다수

예시

Raccine이 없는 Emotet - 링크

Emotet without Raccine

Raccine이 있는 Emotet - 링크 (Raccine 설치와 관련된 프로세스 활동은 무시하세요)

Emotet with Raccine

감염이 초기에 차단됩니다.

경고 !!!

사용에 따른 책임은 본인에게 있습니다!

Raccine이 적용된 시스템에서는 raccine-reg-patch-uninstall.reg 제거 패치를 적용하기 전까지 차단 목록에 포함된 명령을 사용하는 명령을 실행할 수 없습니다. 이로 인해 작업 중 해당 특정 명령을 실행하는 다양한 백업 솔루션이 손상될 수 있습니다. 이는 해당 요청을 차단할 뿐만 아니라 백업 솔루션과 이를 호출한 프로세스를 포함한 트리의 모든 프로세스를 종료합니다.

모든 프로세스 실행을 기록하는 확실한 보안 모니터링이 있다면 로그를 확인하여 vssadmin.exe delete shadows, vssadmin.exe resize shadowstorage ... 또는 기타 차단된 명령줄이 정당한 목적으로 빈번하게 또는 산발적으로 사용되는지 확인할 수 있습니다. 그런 경우 Raccine 사용을 자제해야 합니다.

버전 기록

  • 0.1.0 - 모든 vssadmin.exe 실행을 가로채고 차단한 초기 버전
  • 0.2.0 - 명령줄에 delete 및 shadows가 포함된 vssadmin.exe 실행만 차단하고, 그 외의 경우에는 모든 매개변수를 원래 매개변수로 vssadmin을 호출하는 새 프로세스에 전달하는 버전
  • 0.2.1 - 화이트리스트에서 explorer.exe 제거
  • 0.3.0 - delete shadowcopy를 호출하는 wmic 방식 지원, 화이트리스트에 등록된 프로세스 시작에 대한 출력 없음 (wmic 출력 처리 문제 방지)
  • 0.4.0 - 차단된 각 시도에 대해 Windows 이벤트 로그 기록 지원, 더 많은 악성 매개변수 조합 탐지
  • 0.4.1 - 정적 링크 바이너리
  • 0.4.2 - John Lambert가 제공한 버그 수정
  • 0.5.0 - 이벤트 로그 기록 제거 (기본 정보는 불필요했고 복잡성을 높였으며, 프로세스 생성 기록으로도 달성 가능), wbadmin 필터링 지원
  • 0.5.1 - @JohnLaTwC의 개선 사항
  • 0.5.2 - @JohnLaTwC의 delete shadowstorage 추가 검사, @_hillu의 코드 검토, 애플리케이션 아이콘
  • 0.5.3 - 배치 설치 프로그램
  • 0.6.0 - bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures 및 bcdedit.exe /set {default} recoveryenabled no 추가 검사
  • 0.7.0 - powershell.exe 및 win32_shadowcopy 또는 인코딩된 명령 목록 추가 검사
  • 0.7.1 - @JohnLaTwC의 개선 사항

설치

요구 사항

  • YARA 스캔용 VC++ 런타임 (설치 프로그램에 https://aka.ms/vs/16/release/VC_redist.x64.exe의 설치 패키지 포함)
  • .NET Framework 4.5
  • YARA 규칙 업데이트를 위한 인터넷 접근
  • Windows 7 / Windows 2008 R2 이상

Visual C++ 재배포 가능 패키지와 .NET Framework는 모두 install-raccine.bat을 실행하면 자동으로 설치됩니다.

자동 설치

  1. Release 섹션에서 Raccine.zip을 다운로드합니다
  2. 압축을 해제합니다
  3. 관리자 권한으로 raccine-installer.bat을 실행합니다

Windows Batch Installer

배치 설치 프로그램에는 "제거" 옵션이 포함되어 있습니다.

수동 제거

관리자 권한으로 다음을 수행합니다:

  1. raccine-reg-patch-uninstall.reg를 실행합니다
  2. %ProgramFiles%\Raccine 및 %ProgramData%\Raccine 폴더를 삭제합니다
  3. reg delete HKCU\Software\Raccine /F를 실행합니다
  4. taskkill /F /IM RaccineSettings.exe를 실행합니다
  5. reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /F를 실행합니다
  6. schtasks /DELETE /TN "Raccine Rules Updater" /F를 실행합니다

업데이트

프로그램 업그레이드

업그레이드하려면 제거 후 재설치를 권장합니다. 제거 시 구성이 포함된 모든 레지스트리 키가 삭제됩니다.

시그니처 업데이트

Raccine은 버전 1.2부터 통합 시그니처 업데이터를 갖추고 있습니다. RaccineRulesSync.exe라는 이 프로그램은 예약된 작업을 통해 하루에 한 번 실행되도록 구성되어 있습니다. 트레이 아이콘 메뉴의 옵션을 사용하여 시그니처 업데이트를 수동으로 실행할 수 있습니다.

YARA 매칭

버전 1.0부터 Raccine은 프로세스 명령줄 또는 부모 프로세스가 악성인지 여부를 판단하기 위해 YARA 규칙을 추가로 사용합니다. Raccine은 두 가지 다른 목적을 위해 2세트의 규칙을 사용합니다.

  1. ./yara - 모든 매개변수가 포함된 명령줄에 적용되는 규칙, 예: WMIC.exe delete justatest
  2. ./yara/in-memory - 가로챈 프로세스의 부모 프로세스 메모리에 적용되는 규칙, 예: 우리가 가로챈 프로세스 vssadmin.exe를 실행하는 ransomware.exe

YARA 외부 변수

버전 1.1부터 프로세스 및 해당 부모 프로세스의 속성을 고려하는 훨씬 더 복잡하고 영리한 YARA 규칙을 허용하기 위해 외부 변수 목록을 YARA 매칭 프로세스에 전달합니다.

매칭 프로세스는 명령줄에서 다음과 같이 실행됩니다:

root@kitploit:~
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d  Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp

다음 목록은 조건에서 외부 변수를 사용하는 YARA 규칙 예시를 보여줍니다.

root@kitploit:~
rule env_vars_test {
    condition:
        Name contains "WMIC.exe"
        and CommandLine contains "delete justatest"
        and ParentPriority >= 8
        and (
            ParentCommandLine contains "cmd"
            or ParentCommandLine contains "powershell"
        )
}

GPO를 통한 구성 배포

GPO 폴더에는 Raccine.ADMX 및 Raccine.ADML이 포함되어 있습니다. 배포 시 Raccine.ADMX 파일은 C:\Windows\PolicyDefinitions에 넣습니다. 함께 제공되는 Raccine.ADML 파일은 C:\Windows\PolicyDefinitions\en-US에 넣습니다.

사용 방법: GPEDIT.MSC를 열고 컴퓨터 구성 > 관리 템플릿 > 시스템 > Raccine으로 이동합니다

변경 사항을 구성한 후에는 gpupdate.exe를 실행하여 GPO를 갱신해야 할 수 있습니다.

로그 파일

가로챈 모든 항목과 수행된 작업이 기록된 로그 파일이 C:\ProgramData\Raccine\Raccine_log.txt에 작성됩니다.

Log File

Windows 이벤트 로그

모든 차단 이벤트는 Application 이벤트 로그에 항목을 생성합니다.

Eventlog

Raccine이 생성하는 이벤트 ID

  • EventId 1 - 설치 활동
  • EventId 2 - 악성 활동 감지
  • EventId 3 - 정상 활동 감지

시뮬레이션 모드

버전 0.10.0부터 Raccine은 "시뮬레이션 모드"로 설치할 수 있습니다. 이 모드는 모든 트리거를 활성화하고 모든 작업을 기록하지만 아무것도 종료하지 않습니다. 이 모드는 Raccine이 다른 소프트웨어와 간섭하는지 확인하기 위해 백업 솔루션 또는 기타 합법적인 소프트웨어가 실행되는 환경에서 합리적인 기간 동안 사용해야 합니다. 아이디어는 Raccine을 시뮬레이션 모드로 설치하고 일주일 또는 한 달 동안 기록하게 한 다음 로그를 확인하여 조직에서 사용하는 합법적인 소프트웨어를 차단했을지 확인하는 것입니다.

Kill Run

스크린샷

raccine.exe를 실행하면 부모 프로세스 트리가 종료되는 것을 볼 수 있습니다 (v0.1 스크린샷)

Kill Run

GUI

버전 1부터 사용 가능하며 필수입니다.

GUI

GUI

GUI

피벗

현재 처리 중인 랜섬웨어가 특정 프로세스 이름(예: taskdl.exe)을 사용하는 경우, .reg 패치를 변경하여 해당 이름에 대한 호출을 가로채고 Raccine이 호출하는 프로세스 트리의 모든 부모 프로세스를 종료하도록 할 수 있습니다.

도움 요청

Raccine을 확장하고 싶지만 특히 Windows 플랫폼에서의 C++ 코딩 기술이 부족합니다.

도움말 - 내 시스템이 고장났습니다

설치에 문제가 발생한 경우(예: 갑작스러운 오류 메시지, 서비스 손상 또는 더 이상 시작되지 않는 프로그램) reg-patches 하위 폴더에 있는 raccine-reg-patch-uninstall.reg 파일을 실행하세요. 그러면 모든 것이 정상으로 돌아와야 합니다.

그 후에는 install-raccine.bat을 사용하여 전체 제거를 실행할 수도 있습니다.

기타 정보

올바른 발음은 "Rax-Een"입니다.

크레딧

  • Florian Roth @cyb3rops
  • John Lambert @JohnLaTwC
  • Eran Yom-Tov @eran_yom_tov
  • Ollie Whitehouse @ollieatnccgroup
  • Branislav Đalić @LordOfThePies4
  • Hilko Bengen @hillu
도구 다운로드
  • 0.7.2 - 레지스트리 패치에서 절대 경로 사용
  • 0.8.0 - 가로챈 모든 요청과 수행된 작업을 기록하는 로그 파일 C:\ProgramData\Raccine_log.txt 생성
  • 0.9.0 - @JohnLaTwC의 Windows 이벤트 로그 기록
  • 0.10.0 - 시뮬레이션 모드만 지원
  • 0.10.1 - 시뮬레이션 모드 수정
  • 0.10.2 - diskshadow.exe delete shadows 명령 포함
  • 0.10.3-5 - 사소한 수정 및 추가 사항
  • 1.0 BETA - GUI 요소 및 명령줄 매개변수의 YARA 규칙 스캔
  • 1.1 BETA - 외부 변수를 사용한 YARA 규칙 매칭, 문제 해결 기능
  • 1.2 BETA - 시그니처 업데이터
  • 1.3 BETA - 호출한 부모 프로세스의 인메모리 YARA 스캔
  • 1.4 BETA - 완전한 x86 지원, AV 탐지 회피를 위해 정적 문자열을 YARA 규칙으로 이동, 허용된 실행 기록, 설치 프로그램의 .NET Framework 설정
  • 1.4.2 BETA - 종료 코드 수정 (가로챈 프로그램이 반환한 종료 코드 전달), taskkill.exe 가로채기
  • 변수설명예시 값
    FromRaccinetrue
    Name이미지 파일 이름WMIC.exe
    ExecutablePath바이너리의 전체 경로C:\Windows\System32\wbem\WMIC.exe
    CommandLine매개변수가 포함된 전체 명령줄WMIC.exe delete justatest
    Priority프로세스 우선순위32
    ParentName부모 이미지 파일 이름cmd.exe
    ParentExecutablePath부모 실행 파일의 전체 경로C:\Windows\System32\cmd.exe
    ParentCommandLine매개변수가 포함된 부모의 전체 명령줄C:\WINDOWS\system32\cmd.exe
    ParentPriority부모 프로세스 우선순위32