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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
swarmer — Windows 레지스트리 내보내기 파일을 NTUSER.MAN을 대체하는 데 사용할 수 있는 Windows 하이브 파일로 변환하는 도구 | Kitploit
도구/GitHubGitHub/praetorian-inc/swarmer
Privilege EscalationPersistence MechanismsPost-ExploitationRed Teaming
GitHubpraetorian-inc/swarmer

swarmer

Windows 레지스트리 내보내기 파일을 NTUSER.MAN을 대체하는 데 사용할 수 있는 Windows 하이브 파일로 변환하는 도구

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

swarmer

EDR/AV가 감지하지 못하게 HKCU에 레지스트리 키를 은밀하게 추가하는 도구입니다. 관리자 권한이 없어도 가능합니다.

어떻게 사용하나요?

참고: 이 작업은 한 번만 수행할 수 있습니다. NTUSER.MAN이 새로운 레지스트리 하이브가 된 후에는 관리자가 아니면 변경할 수 없으므로, 첫 번째 시도에서 원하는 모든 변경을 완료해야 합니다.

reg_query BOF의 결과 사용하기

  1. https://github.com/trustedsec/CS-Situational-Awareness-BOF/tree/master/SA/reg_query 에서 적절한 req_query BOF를 가져옵니다.
  2. execute-bof --opsec Z:\path\to\reg_query.x64.o go z"" i1 z"" z"" i1 명령을 실행합니다.
  3. 해당 명령의 출력을 복사하여 로컬 머신의 파일에 저장합니다. 이 예제에서는 output.txt라고 부릅니다. 모든 타임스탬프를 포함해야 하며, 다음과 같이 HKEY_CURRENT_USER\ 키로 시작해야 합니다.
root@kitploit:~
03/18/2025 14:19:51      HKEY_CURRENT_USER\
  1. 릴리스 섹션에서 swarmer.exe 바이너리를 가져와 swarmer.exe --bof --startup-key "WhateverKeyNameYouWant" --startup-value "C:\Path\To\Your\target.exe" output.txt NTUSER.MAN 명령을 실행합니다.
  2. NTUSER.MAN 파일을 대상 머신에 다시 업로드합니다. 보안을 의식한다면 다른 이름으로 업로드할 수도 있습니다.
  3. 5단계에서 업로드한 파일을 %USERPROFILE%에 복사합니다. 그러면 C:\Users\MyUserName\NTUSER.MAN과 같은 파일이 생깁니다.
  4. 다음에 해당 계정이 로그인하면 레지스트리 변경 사항이 로드됩니다.

.reg 내보내기 파일 사용하기

시작 시 계산기를 띄우기 위해 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run에 추가하려는 레지스트리 키가 있다고 가정해 보겠습니다.

먼저 사용하려는 HKCU 키의 레지스트리 덤프가 필요합니다. 이상적으로는 수정하려는 머신에서 가져와야 합니다. reg export HKCU hkcu.reg 명령을 실행하여 생성할 수 있습니다.

그런 다음 원하는 .reg 파일을 수정합니다. 이 예제에서는 메모장으로 파일을 열고 다음과 같이 한 줄을 추가하면 됩니다.

Adding an entry to pop calc on startup

참고: HKEY_CURRENT_USER에 대한 변경만 적용되며, HKLM에는 영향을 미치지 않습니다.

다음으로 이 도구 swarmer.exe를 사용하여 수정된 reg 파일을 바이너리 레지스트리 하이브로 변환해야 합니다. 예제 호출은 다음과 같습니다.

swarmer.exe hkcu.reg NTUSER.MAN

또는 PowerShell 스크립트 내에서 이 작업을 수행하려면 릴리스 섹션에서 swarmer.dll 바이너리를 가져와 다음 명령으로 실행할 수 있습니다.

root@kitploit:~
Import-Module '.\swarmer.dll'
Convert-RegToHive -InputPath '.\hkcu.reg' '.\NTUSER.MAN'

마지막으로 NTUSER.MAN 파일(반드시 이 이름이어야 함)을 %USERPROFILE% 디렉터리(예: C:\Users\MyUserName)에 넣기만 하면 됩니다.

다음에 해당 계정이 로그인하면 레지스트리 변경 사항이 로드됩니다.

왜 이게 작동하나요?

Windows는 레거시 결함으로 가득 차 있으며, 이는 Windows 필수 사용자 프로필을 악용합니다. 일반적으로 사용자의 NTUSER.DAT를 NTUSER.MAN으로 이름을 바꾸려면 관리자 권한이 필요하지만, 누군가가 동일한 이름의 파일을 그냥 넣어두고 대신 사용되는 것을 막는 보호 장치는 없는 것으로 보입니다.

"예상되는" 이상한 보안 경계가 있습니다. 머신에서 바이너리 Windows 하이브를 생성하려면 관리자 권한이 필요하지만, 일반적으로 이는 매우 느슨하게 적용됩니다. swarmer는 내보낸 .reg 파일을 구문 분석하면서 오프라인 레지스트리 API를 (악)용하여 바이너리 레지스트리 하이브를 조작합니다. 설명을 인용하자면:

애플리케이션은 오프라인 레지스트리 함수를 사용하여 시스템 레지스트리의 보안 요구 사항을 우회해서는 안 됩니다. 하이브를 로드하기 위해 RegLoadKey 함수에 필요한 특별 권한 없이 실행되는 애플리케이션은 RegLoadAppKey 함수를 사용할 수 있습니다.

당연히 우리는 그 말을 듣지 않을 것이므로, 이제 낮은 권한의 레지스트리 내보내기와 swarmer 도구를 결합하여 "권한 있는" 레지스트리 바이너리 개체를 생성하고, 이를 올바른 위치에 놓아 기존 NTUSER.DAT 레지스트리 하이브를 덮어쓸 수 있습니다.

이 과정에서 전통적인 레지스트리 읽기/쓰기 API를 전혀 사용하지 않으므로, EDR이 이 과정을 잘 인지하지 못할 것입니다. sysinternals procmon에 따르면 이 중 어느 것도 실제 레지스트리 쓰기로 나타나지 않습니다. 특히 paranoid하다면 .reg 파일을 제어하는 머신으로 가져와 이 도구로 하이브 바이너리 파일을 만든 후 호스트에 다시 넣을 수도 있습니다. 레지스트리를 내보내고 나면 NTUSER.MAN 파일을 넣을 때까지 호스트와 상호작용할 필요가 없습니다.

기술적으로 레지스트리를 내보낼 필요조차 없지만, 다른 머신(Windows 환경과 정확히 일치하지 않는)의 레지스트리로 계정의 레지스트리를 교체하는 것은 위험할 가능성이 높으며, 이를 보장하기 어렵습니다.

크레딧

  • 이 접근 방식은 같은 팀원인 Rad가 알려주었으며, Rad는 Jonas Lykkegård로부터 들었습니다.
  • HiveSwarming 프로젝트는 오프라인 레지스트리 API로 변환 프로세스를 구현하는 좋은 기반을 제공했습니다.

라이선스

이 도구는 Apache 라이선스 하에 오픈 소스로 제공됩니다.

도구 다운로드