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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DutchOven — 네이티브 C 및 BOF 형식으로 구현된 애플리케이션 범위의 Windows 네트워크 브라운아웃 | Kitploit
도구/GitHubGitHub/loosehose/dutchoven
Post-ExploitationNetwork SecurityRed TeamingChaos EngineeringAdversarial Attack
GitHubloosehose/dutchoven

DutchOven

네이티브 C 및 BOF 형식으로 구현된 애플리케이션 범위의 Windows 네트워크 브라운아웃

저장소 보기
22332개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DutchOven 빨간 냄비 로고

DutchOven

결정론적 레드팀 검증을 위한 애플리케이션 범위 Windows 네트워크 브라운아웃.

네이티브 C  •  Windows Filtering Platform  •  IPv4 + IPv6  •  동적 정리

함께 제공되는 블로그 글 읽기 →

빠른 시작 • 프로필 • CLI • 작동 방식 • 빌드 • BOF • 검증

[!CAUTION] 통제된 환경에서만 사용하십시오. DutchOven은 소유하고 있거나 평가 권한을 명시적으로 부여받은 시스템에서만 실행하십시오. 이 도구는 실행 중인 Windows 네트워크 정책을 변경하며 상승된 Administrator 토큰이 필요합니다. 사용 전에 SECURITY.md를 검토하십시오.

DutchOven이란?

DutchOven은 명시적인 실행 파일 경로를 결정론적 네트워크 게이트 뒤에 배치하는, 의도적으로 작은 Windows 레드팀 프리미티브입니다. 각 주기 동안 일치하는 애플리케이션은 정해진 간격 동안 차단되고 나머지 시간 동안 통과가 허용됩니다.

그 결과는 서비스 중지나 영구 방화벽 규칙이 아닌 반복 가능한 브라운아웃입니다. 이는 프로세스가 살아 있는 동안 재시도 로직, 버퍼링, 상태 전환, 지연 전달, 복구 동작을 측정할 수 있는 통제된 방법을 제공합니다.

설계 선택운영자 가치
애플리케이션 범위 WFP 필터실험을 운영자가 제공한 경로로 제한
시간 기반 차단/통과 듀티 사이클단순한 온라인/오프라인 상태가 아닌 측정 가능한 성능 저하 생성
원자적 IPv4 및 IPv6 변경두 주소 체계를 동일한 일정으로 유지
동적 WFP 세션엔진 세션이 닫힐 때 필터와 생성된 서브레이어 제거
네이티브 C 구현Go, .NET, 서비스 설치, 사용자 지정 드라이버 의존성 없음
명시적 대상만제품 열거, 프로세스 추측, 내장 대상 데이터베이스 없음

DutchOven은 새 아웃바운드 연결 승인을 게이트합니다. WFP가 이미 승인한 기존 연결은 소급하여 종료되지 않습니다. 중단 없는 장기 흐름을 검증할 때는 새 카나리 연결을 사용하거나 대상이 독립적으로 재연결하도록 강제하십시오.

빠른 시작

상승된 PowerShell 창을 엽니다.

WFP를 변경하지 않고 확인된 대상과 타이밍을 검증합니다:

.\dutchoven.exe --app 'C:\Path\To\Target.exe' --dry-run

기본 브라운아웃 프로필을 실행합니다:

.\dutchoven.exe --app 'C:\Path\To\Target.exe'

이것이 완전한 최소 호출입니다. --app은 유일한 필수 플래그입니다. 기본 프로필은 5초 주기마다 1.5초 동안 대상을 차단하고 1분 후 종료됩니다.

조기에 중지하려면 Ctrl+C를 사용하십시오. DutchOven은 WFP 세션을 닫기 전에 활성 필터를 제거합니다. 프로세스가 중단될 경우 동적 세션이 정리용 최후 수단 역할을 합니다.

동작 프로필

프로필은 유용한 스케줄을 미리 설정해 두므로 운영자가 모든 타이밍 값을 지정할 필요가 없습니다.

프로필차단통과주기지속 시간용도
light0.5초4.5초5초60초저영향 재시도 관찰
brownout1.5초3.5초5초60초균형 잡힌 기본 실험
heavy3.5초1.5초5초60초큐 및 복구 부하 테스트
blackout5초0초5초30초짧고 제한된 완전 중단

선택적 플래그 하나로 프로필을 선택하십시오:

.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy

CLI 레퍼런스

dutchoven --app <absolute.exe> [--app <absolute.exe> ...] [options]
플래그필수설명
--app <absolute.exe>예대상 실행 파일 경로이며, 다중 프로세스 애플리케이션의 경우 반복 지정
--profile <name>아니요light, brownout, heavy 또는 blackout
--period-ms <ms>아니요전체 차단/통과 주기 재정의
--block-ms <ms>아니요각 주기에서 차단되는 구간 재정의
--duration-ms <ms>아니요제한된 총 실행 시간 재정의
--warmup-ms <ms>아니요첫 번째 차단 구간 이전에 트래픽 허용
--dry-run아니요WFP를 열지 않고 구성 검증 및 출력
--json아니요구성 및 상태 전환을 JSON Lines로 출력
--help아니요명령 도움말 출력

dutchoven version으로 빌드 버전을 출력합니다.

고급 타이밍 플래그는 인자 순서와 관계없이 선택한 프로필을 재정의합니다:

.\dutchoven.exe `
  --app 'C:\Path\To\Target.exe' `
  --period-ms 8000 `
  --block-ms 2000 `
  --duration-ms 120000 `
  --warmup-ms 5000

JSON Lines는 테스트 하네스와 증거 수집을 위해 설계되었습니다:

.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy --json

타이밍 제한은 파서에 의해 적용됩니다:

  • 주기: 100–60000 ms
  • 블록: 1 ms부터 전체 주기까지
  • 지속 시간: 최소 한 주기, 최대 900000 ms(15분)
  • 워밍업: 최대 60000 ms
  • 대상: 최대 16개의 명시적 로컬 실행 파일 경로

작동 방식

explicit executable path
          │
          ▼
   WFP application ID
          │
          ├── ALE_AUTH_CONNECT_V4 ──┐
          └── ALE_AUTH_CONNECT_V6 ──┤── BLOCK / PASS schedule
                                    │
                                    └── dynamic WFP session cleanup
  1. DutchOven은 제공된 각 실행 파일을 WFP 애플리케이션 ID로 확인합니다.
  2. 비영구적이고 동적인 WFP 엔진 세션을 열고 생성된 하위 계층을 만듭니다.
  3. 차단 간격이 시작될 때 IPv4 및 IPv6 필터가 하나의 트랜잭션으로 추가됩니다.
  4. 통과 간격이 시작될 때 해당 필터가 하나의 트랜잭션으로 제거됩니다.
  5. 완료되거나 정상적으로 중단되면 DutchOven은 활성 필터를 모두 제거하고 엔진을 닫습니다.

Windows 대상은 DutchOven이 WFP에 애플리케이션 ID를 요청하기 전에 유니코드로 확인되고 긴 경로로 정규화됩니다. 이렇게 하면 ADMINI~1과 같은 8.3 경로 별칭이 프로세스의 긴 형식 이미지 ID와 일치할 수 없는 필터를 조용히 생성하는 것을 방지합니다.

콘솔은 벽시계 및 스케줄 기준 타임스탬프와 함께 상태 전환을 출력합니다:

Targets: 1
  C:\Path\To\Target.exe
Schedule: block=1500ms pass=3500ms period=5000ms duration=60000ms warmup=0ms
Profile: brownout
Mode: brownout
BLOCK cycle=1 filters=2 wall_ms=1786973903811 elapsed_ms=0
PASS cycle=1 wall_ms=1786973908813 elapsed_ms=5000
...
CLEAN filters=0 session=closed cycles=12 wall_ms=1786973963812 elapsed_ms=60000

빌드

기본 Linux 빌드는 파싱 및 드라이런 동작을 실행합니다. 라이브 WFP 게이트는 네이티브 Windows 크로스 빌드가 필요합니다.

make check
make release

make check는 이식 가능한 테스트를 실행하고, Windows 아티팩트를 크로스 빌드하며, BOF 임포트 계약을 검증합니다. make release는 스트리핑된 릴리스 아티팩트와 SHA256SUMS를 artifacts/v<version>/ 아래에 생성합니다.

주요 출력물:

아티팩트용도
build/dutchovenPOSIX 파서 및 드라이런 바이너리
build/dutchoven_tests핵심 단위 테스트
build-windows/dutchoven.exe네이티브 Windows WFP 게이트
build-windows/dutchoven_tests.exe네이티브 Windows 테스트 바이너리
build-windows/windows_canary.exe라우팅된 통합 테스트 카나리
bof/dutchoven.x64.o버전이 지정된 x64 Beacon Object File
artifacts/v<version>/스트리핑된 릴리스 EXE, BOF 및 체크섬

Windows 실행 파일은 Windows 시스템 라이브러리인 fwpuclnt, rpcrt4, advapi32에만 링크됩니다.

Beacon Object File

BOF는 DutchOven을 x64 Beacon에서 인라인으로 실행되는 짧고 동기적인 펄스로 패키징합니다. COFF 오브젝트를 빌드하고, 버전이 지정된 아티팩트를 갱신하며, 다음 명령으로 임포트 계약을 검증하십시오:

make bof

Cobalt Strike의 Script Manager에서 bof/dutchoven.cna를 로드한 다음, Beacon 콘솔에서 호출합니다:

dutchoven "C:\Path\To\Target.exe"
dutchoven "C:\Path\To\Target.exe" heavy

기본 프로필은 brownout입니다. 프로필은 단일한 제한된 차단 간격에 매핑됩니다:

프로필펄스
light0.5초
brownout1.5초
heavy3.5초
blackout5초

각 호출은 동적 WFP 세션을 열고, IPv4 및 IPv6 연결 필터를 원자적으로 설치하며, 선택된 펄스를 기다린 뒤, 두 필터를 명시적으로 제거하고, 반환하기 전에 세션을 닫습니다. 명시적 제거가 실패할 경우 동적 세션을 닫는 것이 정리 백스톱으로 남습니다.

BOF는 Kernel32, Rpcrt4, Fwpuclnt에 대해 Dynamic Function Resolution을 사용하며, C 런타임 임포트가 없습니다. 기존의 절대 실행 파일 경로 하나를 받아들이고, 상승된 Beacon을 요구하며, BOF를 호스팅하는 프로세스를 게이팅하는 것을 거부합니다. 인라인으로 실행되기 때문에, 독립 실행형 바이너리의 1분 다중 사이클 스케줄러를 의도적으로 재현하지 않습니다.

검증 워크플로

유용한 레드팀 결과에는 독립적인 증거가 필요합니다. 필터 추가 호출이 성공했다고 해서 대상이 의도한 브라운아웃을 겪었다는 증거로 간주하지 마십시오.

  1. 네트워크 동작을 관찰할 수 있는 무해한 카나리 애플리케이션을 선택합니다.
  2. 게이팅되지 않은 기준선을 기록합니다.
  3. 관련 없는 제어 애플리케이션과 병렬로 DutchOven을 실행합니다.
  4. 새 연결 시도와 이미 설정된 연결을 모두 측정합니다.
  5. 클라이언트 타임스탬프, 서버 타임스탬프, 패킷을 독립적으로 캡처합니다.
  6. 제어 애플리케이션이 영향을 받지 않았고 모든 통과 간격이 복구되었는지 확인합니다.
  7. 정상 종료 및 강제 종료 후 DutchOven 필터가 남아 있지 않은지 확인합니다.

저장소에는 무해한 TCP 카나리 두 개를 사용하여 이러한 검증 항목을 자동화하는 Windows 통합 하네스가 포함되어 있습니다. 상승된 PowerShell 세션과 접근 가능한 비로컬 TCP 리스너가 필요하며, 루프백 트래픽은 라우팅된 WFP 검증을 대체할 수 없습니다.

.\tests\windows_integration.ps1 `
  -DutchOvenPath '.\build-windows\dutchoven.exe' `
  -CanaryPath '.\build-windows\windows_canary.exe' `
  -ServerAddress '192.0.2.10' `
  -ServerPort 8443

하네스는 기준 연결성, 표적 차단, 영향받지 않는 대조군, 정상 복구, 동적 세션을 통한 강제 종료 복구, 그리고 WFP 잔여물 없음을 입증한다.

검증된 동작

DutchOven 0.4.1은 Elastic Defend 9.4.2가 설치된 Windows Server 2022에서 검증되었다:

  • 6개의 라이브 필터가 세 개의 명시적 Elastic 실행 파일 경로에 대해 IPv4와 IPv6를 커버했다;
  • 새 연결을 강제한 후, 표적 백엔드 연결은 0으로 떨어졌지만 무관한 PowerShell 대조군은 여전히 두 백엔드 포트 모두에 도달했다;
  • Elastic 서비스는 제한된 블랙아웃 동안 내내 실행 상태를 유지했다;
  • DutchOven은 성공적으로 종료되었고 독립적인 WFP 상태 덤프에서 잔여 필터, 세션, 또는 서브레이어가 발견되지 않았다; 그리고
  • 모든 에이전트 연결과 Fleet 상태가 복구되었다.

Elastic은 DutchOven의 프로세스 시작, 프로세스 종료, SYSTEM 신원, 그리고 전체 명령줄을 기록한 뒤, 복구 후에 버퍼링된 텔레메트리를 전달했다. 해당 구성에서는 Elastic Defend 경고를 생성하지 않았다. 이는 하나의 측정된 결과로 취급해야 하며, 보편적인 탐지 또는 회피 주장으로 보아서는 안 된다.

운영 경계

도구 다운로드