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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
douglas-042-HQ — Douglas-042 HEADQUARTERS 수집기를 위한 중앙 콘솔. 플릿을 스캔하고, 호스트 간 결과를 상호 연관시키며, IOC 피드와 SIEM 전달을 한 곳에서 관리합니다. | Kitploit
도구/GitHubGitHub/douglas-042/douglas-042-hq
Defensive ToolsIndicator of Compromise (IOC) ManagementVulnerability AnalysisForensicsThreat IntelligenceIntrusion DetectionIncident ResponseLog Analysis
GitHubdouglas-042/douglas-042-hq

douglas-042-HQ

Douglas-042 HEADQUARTERS 수집기를 위한 중앙 콘솔. 플릿을 스캔하고, 호스트 간 결과를 상호 연관시키며, IOC 피드와 SIEM 전달을 한 곳에서 관리합니다.

저장소 보기
1425일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Douglas-042 HEADQUARTERS

EDR이 없는 환경을 위한 에이전트 기반 위협 헌팅 및 사고 대응.

Windows 및 Linux 호스트 플릿을 감시하여 침해 징후를 찾아내고, 실제로 중요한 것을 판단하여 조치합니다 — 하나의 콘솔에서, 호스트당 하나의 명령으로.

Python FastAPI Agents Rules License

Douglas-042 console — fleet posture at a glance

기능

헌트는 스캔이 아닙니다. Douglas는 분석가가 직접 수집할 아티팩트 — 프로세스, 서비스, 예약된 작업, 자동 실행, 연결, 계정, 드라이버, 이벤트 로그, cron, systemd, 셸 기록, 웹 루트 — 를 수집하고, 이에 대해 201개의 내장 탐지와 사용자 정의 Sigma, YARA 및 커스텀 규칙을 실행합니다.

그런 다음 대부분의 도구가 사용자에게 남겨두는 부분을 처리합니다: 어떤 발견 사항에 아직 결정이 필요한지, 60개의 외부 주소 중 어떤 것을 먼저 봐야 하는지를 알려주고, RDP 세션을 열지 않고도 조치를 취할 수 있게 합니다.

root@kitploit:~
   deploy one command  ──▶  hunt  ──▶  findings appear live
                                            │
                     ┌──────────────────────┼──────────────────────┐
                     ▼                      ▼                      ▼
              IOC feed match          reputation score        response actions
              "this is a known C2"    "92/100, 340 reports"   isolate · kill · collect

존재 이유

헌팅이 가장 필요한 환경은 종종 EDR이 없는 곳입니다: 서버 수십 대, 에이전트 예산 없음, 그리고 3일 전에 시작된 사고. 선택지는 보통 아무도 승인하지 않은 상용 플랫폼과 누군가 수동으로 실행하는 PowerShell 스크립트 폴더 사이입니다.

Douglas는 그 사이에 위치합니다. 조사 중인 호스트에 아무것도 설치되지 않습니다 — 수집기는 한 번 실행되고 종료됩니다 — 그리고 모든 결과는 다음에 사고를 이어받는 사람에게 넘길 수 있는 하나의 콘솔에 모입니다.


트리아지: 아직 결정이 필요한 것

발견 사항은 생성하기 쉽고 읽기에는 비용이 많이 듭니다. 이 화면은 세 번째 검토에서도 누군가 여전히 읽고 있을 만큼 대기열을 짧게 유지하기 위해 존재합니다.

Triage — open work by severity, and the noisiest rules

세 가지 결과가 있으며, 그 차이는 6개월 후에 중요해집니다:

결정수행 내용
Confirmed실제. 위험 점수에 남고, 호스트는 빨간색으로 유지됩니다.
False positive해당 호스트에 대해서만 점수에서 제외됩니다.
Suppression향후 모든 스캔에서 동일한 발견 사항을 숨기는 상시 규칙입니다.

아무것도 삭제되지 않습니다. 억제를 철회하면 그것이 숨겼던 모든 것이 돌아옵니다. Noisiest rules가 하단에 있는 이유는 그것을 튜닝하는 것이 발견 사항을 하나씩 처리하는 것보다 대기열을 더 빨리 비우기 때문입니다.


읽고, 튜닝하고, 끌 수 있는 탐지

201개의 탐지 모두 15개 카테고리로 그룹화되어 있습니다 — 하나씩 또는 전체 패밀리를 한 번에 전환할 수 있습니다. 규칙을 클릭하면 무엇을 검사하는지, 어떻게 정상적으로 발동하는지, 다음에 무엇을 해야 하는지 읽을 수 있습니다.

Built-in detections, grouped into categories

화면이 명확히 설명하는 구분은, 잘못 이해하기 흔하기 때문입니다:

규칙을 끄는 것은 억제하는 것과 다릅니다. 끄기는 수집기가 검사를 실행하지 않는다는 뜻입니다 — 아무것도 생성되지 않고 검토할 것도 없습니다. 억제는 발견 사항을 기록하고 이유와 함께 누군가 내린 결정으로 표시합니다.

수용한 노이즈 패밀리에는 끄기를 사용하십시오. 특정 호스트의 특정 패턴에는 억제를 사용하십시오.

Fired 아래의 대시는 보통 건강한 답입니다: DGL-014는 로그가 지워진 것처럼 보일 때만 발동합니다. 목록은 도구가 검사하는 것이지, 무엇이 잘못되었는지가 아닙니다.


텍스트로 직접 규칙 작성

양식은 첫 번째 규칙에는 더 빠르고 스무 번째 규칙에는 더 느립니다. 그래서 규칙은 텍스트로도 작성할 수 있습니다 — 11개 아티팩트 테이블과 13개 연산자에 대해 입력하는 동안 검사됩니다.

Writing a rule as text, with live validation

아래 상자는 두 가지 역할을 합니다. 규칙이 잘못되었을 때는 규칙이 아니라 줄을 지목합니다:

root@kitploit:~
line 7: Condition 1: 'is_maybe' is not an operator.

올바를 때는 규칙이 실제로 무엇과 일치할지를 알려줍니다 — 검증은 통과하지만 작성자가 의도한 것과 다른 것과 일치하는 규칙이 잡아야 할 실패이기 때문입니다:

Valid — ACME-001 Reads Services and matches when Signed is false and PathName does not contain 'Program Files' and PathName does not contain 'System32'

JSON, YAML 또는 CSV로 가져오기 및 내보내기. 왕복이 보장됩니다 — 자체 내보내기는 세 가지 형식 모두에서 자체 검증기를 통과합니다.


인디케이터 피드와 평판은 서로 다른 질문에 답합니다

질문시점결과
IOC feed이 C2 목록의 무언가가 내 호스트에 있는가?헌트 중DGL-IOC — 점수가 아닌 확인된 일치

15개 피드 소스가 바로 사용할 수 있게 제공됩니다 — Feodo, ThreatFox, URLhaus, TweetFeed, USOM, SSL Blacklist, Emerging Threats, OpenPhish, MISP — 그리고 인디케이터 형태의 데이터를 반환하는 모든 URL을 읽는 Custom feed가 있습니다.

4개 평판 제공자: AbuseIPDB, VirusTotal, ThreatFox (무료 티어) 및 GreyNoise (유료, 기본적으로 꺼짐). 판정은 절대 하나의 숫자로 혼합되지 않습니다 — AbuseIPDB는 불만을 세고, VirusTotal은 엔진을 세고, ThreatFox는 인프라를 알며, 이들의 평균은 그 누구도 방어하지 않을 수치입니다. 배지는 가장 나쁜 판정을 그것을 제공한 제공자와 함께 표시합니다.

무료 티어는 보호됩니다: 결과는 12시간 캐시되고, 실행당 40개 주소, 그리고 제공자가 멈추기 전에 멈추는 일일 카운터. 사설 주소는 절대 전송되지 않습니다.


콘솔에서의 대응

세 그룹으로 나뉜 11개 작업 — look, act, contain. 5개의 읽기 전용 작업은 호스트를 변경하는 6개와 다르게 표시되며, 모든 변경 작업은 서면 이유를 요구합니다.

격리는 의도적으로 콘솔에 연결 가능한 상태를 유지합니다: 자체 에이전트로부터 차단된 호스트는 원격으로 해제할 수 없으며, 누군가 걸어가야 하기 때문입니다. 침입을 격리하기보다 기계를 망가뜨릴 대상 — lsass.exe, systemd, pid 1, Administrator, /bin/bash — 은 경고가 아니라 거부됩니다. 이것이 사용되는 순간이 아무도 경고를 읽지 않는 순간이기 때문입니다.

출력은 터미널 덤프가 아닌 구조화된 카드로 돌아오며, 행은 실행 가능합니다: 프로세스 목록에는 행마다 Kill 버튼이, 주소에는 Reputation이 있습니다.


두 플랫폼 모두에서 Sigma와 YARA

WindowsLinux
SigmaEvent Log + Sysmonauditd execve + auth/cron/syslog
YARAfile contentfile content

로그 소스를 읽을 수 없는 Linux Sigma 규칙은 로드되어 결코 발동하지 않도록 방치되는 대신 이유와 함께 업로드 시 거부됩니다 — 실행될 수 없었던 규칙의 빈 결과는 깨끗한 호스트와 정확히 똑같이 보이기 때문입니다.

Linux 에이전트는 auditd가 설치되어 있고, 실행 중이며, 규칙이 로드되어 있는지 확인한 다음, 무엇이 빠졌고 그 비용이 무엇인지 알려줍니다:

root@kitploit:~
   Detection capabilities on this host
     auditd    : NOT RUNNING
                 Nothing records what executes on this host, so execution
                 rules cannot fire and a clean result only means the sweep
                 could not look. Install it:
                   apt install auditd && systemctl enable --now auditd

사람들이 이미 보는 곳으로 전송

세 그룹의 11개 대상:

  • SIEM — Wazuh/JSON, Splunk HEC, Microsoft Sentinel, Elasticsearch, QRadar LEEF, CEF, NDJSON
  • Notify — Slack, Microsoft Teams, PagerDuty
  • Case — TheHive

채팅 및 페이징 대상은 레코드가 아닌 문장을 렌더링하고, 한 메시지에 들어가는 발견 사항 수를 제한합니다: 백 줄이 붙여넣어지는 채널은 사람들이 음소거하는 채널입니다.


빠른 시작

root@kitploit:~
git clone https://github.com/YOURNAME/douglas-042.git
cd douglas-042
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000

또는 Docker로:

root@kitploit:~
docker compose up -d

http://your-server:8000 을 여십시오.

기본 로그인

Username: admin Password: douglas

콘솔은 첫 로그인 시 비밀번호 변경을 강제합니다 — 패키지에 내장된 기본값은 눈에 띄지 않고 살아남아서는 안 됩니다. 직접 선택하고 싶다면 첫 시작 전에 .env에 DOUGLAS_CONSOLE_PASSWORD를 설정하십시오.

.env는 데이터베이스가 비어 있을 때만 읽힙니다. 첫 시작 후에는 python3 -m app.manage passwd admin으로 재설정하십시오.

시작 시 다음 단계를 위한 등록 토큰을 받습니다:

root@kitploit:~
Created the initial admin account: admin
The default password is still in use. Change it at first sign-in.
Enrollment token ready: dgl-enroll-xBAk8...
Douglas-042 console 1.0 ready

호스트 추가

Deploy → 플랫폼 선택 → 명령 하나 복사.

Windows — 관리자 권한 PowerShell:

root@kitploit:~
iex (irm 'http://console:8000/api/v1/reports/deploy/script?token=YOUR_TOKEN')

Linux — root로:

root@kitploit:~
curl -sSL 'http://console:8000/api/v1/reports/deploy/script?token=YOUR_TOKEN&platform=linux' | sudo bash

터미널에 6단계가 스트리밍됩니다: 다운로드, 등록, 수집기 가져오기, 서비스 설치, 활성 상태 확인, 첫 체크인. 등록이 실패하면 아무것도 설치되지 않으며, 그렇게 알려줍니다.


첫 1시간


아키텍처

root@kitploit:~
┌──────────────────────────────────────────────────────────┐
│  Console — FastAPI + SQLite, one process, no queue        │
│  triage · findings · graph · rules · response · reports   │
└───────────────▲──────────────────────────────────────────┘
                │ agents poll: heartbeat 20s, actions 5s
┌───────────────┴──────────────────────────────────────────┐
│  Agent  (PowerShell / shell)                              │
│    └── Collector — runs, reports, exits                   │
│          201 built-in rules + Sigma + YARA + your rules   │
└──────────────────────────────────────────────────────────┘
  • 조사 중인 호스트에 아무것도 설치되지 않습니다. 수집기는 실행되고 종료됩니다; 에이전트는 작업을 가져오는 예약된 작업 또는 systemd 유닛입니다.
  • 콘솔은 절대 안쪽으로 연결하지 않습니다. 에이전트가 폴링하므로 NAT 또는 단방향 방화벽 뒤의 호스트도 작동합니다.
  • SQLite, 파일 하나. 브로커 없음, 클러스터 없음, 외부 데이터베이스 없음. 스키마 마이그레이션은 시작 시 실행되며 추가만 합니다.
Console screens

Dashboard · Cases · Fleet · Hunts · Response · Findings · Triage · Frequency · Graph · MITRE matrix · Timeline · Diff · Built-in rules · My rules · Sigma · YARA · IOC feeds · Threat intel · Integrations · Schedules · Users · Deploy · Logs & events

Detection categories

Collection integrity · Autoruns and startup · Processes and network · Services and tasks · Persistence mechanisms · Security posture · Drivers and kernel · Execution evidence · Authentication and accounts · Remote access · Sysmon, Kerberos and AD · Files, webshells and exfiltration · User activity and trust · Rootkit and memory · Indicator matches

What the collector reads

Both: local accounts and groups · running processes with signatures and hashes · TCP connections and external endpoints · services · recently written files · in-memory code · web roots and webshell patterns

Windows: event logs · scheduled tasks · autoruns · registry persistence · WMI subscriptions · drivers · SMB shares · Prefetch · certificate stores

Linux: cron · systemd units · shell startup files · LD_PRELOAD · setuid binaries · authorized_keys and sshd config · shell history · auth logs · kernel taint · WordPress

Requirements

Console: Python 3.11+, six dependencies (FastAPI, uvicorn, SQLAlchemy, pydantic, python-multipart, PyYAML). Runs on a 1 GB VM.

Windows hosts: PowerShell 5.1+, administrator. Nothing else.

Linux hosts: bash and curl. python3 enables live progress and file-content rules; auditd enables execution detections. The console tells you which are missing on which host.


보안 참고 사항

  • 첫 로그인 시 비밀번호 변경 강제; 반복 실패 후 계정 잠금.
  • 세션 키는 첫 시작 시 0600 권한으로 생성됩니다 — 패키지에 포함된 고정 키는 다운로드한 모든 사람이 공유하게 됩니다.
  • 대응 작업은 역할로 제한되고, 감사되며, 호스트를 망가뜨릴 대상을 거부합니다.
  • 사설 주소는 평판 제공자에게 절대 전송되지 않습니다.
  • 규칙 내보내기는 스프레드시트 수식 주입을 무력화합니다.

📄 Technical Report (PDF) — 아키텍처, 모든 콘솔 화면, 37개 수집기 모듈 전체, 탐지 모델, 대응 작업 및 보안 모델을 다루는 14페이지.

License

Licensed under the MIT License. See LICENSE.


Built for the estates that need hunting most and can afford it least.
도구 다운로드
Enrichment
이 호스트가 60개 주소와 통신했다 — 어느 것을 먼저?
헌트 후
92/100, 340 reports, known Cobalt Strike C2
#화면이렇게 하십시오얻는 것
1IOC feedsFeodo Tracker 추가, Refresh 누르기C2 탐지 — 작성할 규칙 없음
2Threat intel무료 AbuseIPDB 키 붙여넣기, Test 누르기그래프의 트리아지 순서
3Fleet호스트 선택, Launch hunt발견 사항, 실시간
4Logs & events모듈 오류 확인스윕이 실제로 볼 수 있었는지 여부
5Triage대기열 처리, 가장 시끄러운 규칙 튜닝누군가 여전히 읽는 목록
6My rules6개 예제 로드, 하나 열기직접 작성하는 방법
7IntegrationsSlack webhook, 하한 HIGH지켜보지 않고도 알게 됨