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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/zomry1/samuraizer
OSINT (Open Source Intelligence)Information GatheringUtilities & FrameworksThreat IntelligenceMachine LearningLearning & EducationCrawlerCurated Resources
GitHubzomry1/samuraizer

Samuraizer

NotebookLM을 강화한 버전 — 보안 연구자를 위해 특별히 설계됨.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Samuraizer

Samuraizer — 사이버 보안 지식 베이스 엔진

NotebookLM의 강화판 — 보안 연구자를 위해 특별 제작됨.

Self-hosted Built For
License Python React GitHub last commit

💡 왜 Samuraizer인가?

모든 보안 연구자는 그 기분을 압니다 — 흥미로운 GitHub 저장소, 새로운 CVE 분석글, 새로운 익스플로잇 기법에 대한 블로그 게시물을 발견합니다. 왓츠앱으로 자신에게 전달합니다. 바로 채팅에 묻혀버립니다. 몇 주 후에 그 글을 실제로 필요할 때 — 이미 사라져 있습니다.

다시는 찾지 못할 링크를 자신에게 보내지 마세요 — Samuraizer에 한 번 보내면 요약되고, 태그가 지정되며, 영원히 검색 가능합니다.

전에는 😵지금은 🗡️

채팅 기록에 흩어져 묻힌 링크들

분석되고, 태그되어, 언제든 찾을 준비가 된 상태

🔐 로컬 우선 개인정보 보호 (로컬 전용 기능)

🎯 추가 개인정보 보호 모드 (로컬 전용) — ollama로 실행하면 모든 데이터가 내 컴퓨터에 남습니다.

  • 🗄️ samuraizer.db에 로컬 벡터 저장소 + Ollama를 통한 로컬 AI 임베딩
  • ⚡ 모델을 한 번 풀(ollama pull qwen3:4b, ollama pull qwen3-embedding:8b)하면 완전히 오프라인에서 작동
  • ✅ 폐쇄망/격리 환경이 필요한 보안 팀과 연구자에게 적합

🧩 한눈에 보는 기능

🔍 분석 — URL을 붙여넣고 결과가 스트리밍되는 것을 지켜보세요

  • 📝 하나 이상의 URL(GitHub 저장소, CVE 분석글, 블로그 게시물, YouTube 동영상)을 붙여넣으면 결과가 실시간으로 스트리밍되어 돌아옵니다
  • 📄 파일 업로드 — 브라우저나 텔레그램에서 직접 파일을 업로드하면 전체 텍스트가 추출, 분석, 저장되어 UI에서 볼 수 있습니다
    • 지원 형식: .pdf, .docx, .pptx, .txt, .md
  • 🗞️ 블로그 스캐너: 블로그 홈페이지를 붙여넣으면 모든 기사 링크를 추출하여 한 번에 일괄 분석합니다
  • ✨ 추천 읽을거리: 분석 탭에서 세션마다 읽지 않은 관련 항목이 하나씩 표시되어 작업 큐를 계속 진행할 수 있게 해줍니다

🗂️ 지식 베이스

  • ✏️ 인라인 태그 편집 (항목, 피드, 리스트 항목에 태그 추가/제거)
  • 🔎 의미 검색(벡터 검색 via Gemini 임베딩) + 일반 전체 텍스트 검색
  • 🧩 태그 클라우드 + 다중 필터링 (태그, 카테고리, 출처, 리스트, 읽음/유용함 기준)
  • 📚 리스트 관리 — 항목을 수동 리스트, RSS 리스트, 채널 리스트로 그룹화
  • 👁️‍🗨️ 호버 미리보기 (요약 카드) 및 빠른 복사 버튼

🗺️ 지식 그래프

  • 전체 지식 베이스를 대화형 힘-방향 그래프로 시각화
  • 항목과 태그가 노드 — 가장자리는 어떤 태그가 어떤 기사와 연결되는지를 보여줍니다
  • 클릭하여 항목 미리보기; 더블클릭하여 원래 URL 열기
  • 카테고리별 색상 코드 (CVE, 기사, 도구, 동영상, 블로그 등)
  • 태그를 검색하여 그래프 전체에서 관련 클러스터 강조

📡 RSS 피드 및 YouTube 구독

  • RSS/Atom 피드 추가 — 서버가 매시간 폴링하여 새 게시물을 자동 수집 및 요약합니다
  • 새 게시물은 자동으로 지식 베이스에 추가됩니다
  • 각 피드는 자체 리스트가 되어 일괄 검토가 용이합니다
  • 피드 항목에는 출처 메타데이터가 표시되며 다른 항목과 마찬가지로 태그 지정 및 필터링 가능

🎥 YouTube 채널 구독

  • URL을 통해 YouTube 채널 구독 (예: https://www.youtube.com/@핸들, /channel/UCxxx)
  • 구독 전 최신 동영상 미리보기 및 분석할 동영상 선택
  • 구독 시 선택한 동영상은 즉시 분석됩니다. 향후 업로드는 매시간 자동 폴링됩니다
  • /yt-channels API를 통해 실행되며 UI의 RSS/YT 섹션에 표시됩니다

🤖 텔레그램 봇 (선택사항)

  • 모든 URL을 봇에 전송하면 동일한 백엔드를 통해 분석하고 포맷된 카드를 반환합니다
  • PDF 파일 전송 — 다운로드하여 분석하고 파일을 보거나 다운로드할 수 있는 링크가 포함된 결과 카드를 반환합니다
  • 분석이 실행되는 동안 실시간 진행 업데이트가 스트리밍됩니다
  • 추천 읽을거리 알림 수신 — 봇이 적극적으로 읽지 않은 항목을 알려줍니다

URL 분석

일일 추천 읽을거리

💬 채팅 (RAG + 스트리밍 + 고정 컨텍스트)

  • 지식 베이스에 대해 질문 — 가장 일치하는 항목에서 인용된 답변 제공
  • ⚡ 실시간 타이핑 및 출처별 관련성 점수를 포함한 스트리밍 응답
  • 🗂️ 저장된 기록 및 모델 선택이 가능한 여러 채팅 세션
  • 📌 특정 기사를 컨텍스트로 고정 — 자동 완성을 위해 @ 입력 또는 @ 찾아보기 버튼 사용
    • 항목이 고정되면 Gemini는 해당 기사에서만 답변 — RAG 노이즈 없음
    • 고정된 항목은 입력창 위에 칩으로 표시됩니다. 출처에는 점수 대신 📌 배지가 표시됩니다
    • 특정 PDF, 분석글 또는 CVE를 깊이 파고들기에 완벽

출처 점수가 포함된 RAG 채팅

고정 컨텍스트 채팅

[!IMPORTANT] Samuraizer의 미래를 만들어가세요! 현재 로컬 LLM, 옵시디언 내보내기 등 새로운 기능에 대해 투표가 진행 중입니다. 여기서 투표하세요!


🏗 아키텍처 (개략적)

root@kitploit:~
flowchart LR
  Browser[Browser UI] -->|HTTP| Frontend[React Frontend]
  Frontend -->|REST/NDJSON| Backend[Flask API]
  Backend -->|SQL| SQLite[(samuraizer.db)]
  Backend -->|API| Gemini[Gemini 2.5 Flash]
  Backend -->|local API| Ollama[Ollama - Local LLM]
  Backend -->|GitHub API| GitHub[GitHub]
  Backend -->|RSS| RSS[RSS feeds]
  Telegram[Telegram Bot] -->|HTTP| Backend

🧠 작동 방식 (엔드 투 엔드)

  1. 웹 UI(또는 텔레그램 봇)를 통해 URL 또는 PDF 제출.
  2. 백엔드가 유형(GitHub 저장소, 블로그 게시물, RSS 피드, PDF 등)을 판단하고 콘텐츠를 가져옵니다/추출합니다.
  3. 콘텐츠가 Gemini 2.5 Flash로 전송되어 다음을 생성합니다:
    • 간결한 요약
    • 카테고리 및 태그
    • (선택사항) 의미 검색에 사용되는 임베딩
  4. 결과는 samuraizer.db에 저장되고 프론트엔드에 표시됩니다.
  5. 프론트엔드에서 다음을 수행할 수 있습니다:
    • 태그, 카테고리, 출처, 리스트, 읽음/유용함 플래그로 필터링
    • 인라인 태그 편집 (변경 사항은 PATCH /entries/<id>를 통해 유지)
    • 의미 검색 사용 (Gemini 임베딩을 통한 벡터 검색)
  6. RSS 피드는 주기적으로 폴링됩니다. 새 게시물은 자동으로 수집됩니다.

🧰 기술 스택

계층기술 / 라이브러리
백엔드Python, Flask, SQLite, feedparser, PyMuPDF

🚀 설정

선호하는 설정 방법을 선택하세요:

⚙️ 로컬 설정 (수동 설치)

0) 저장소 클론 📥

root@kitploit:~
git clone https://github.com/zomry1/Samuraizer.git
cd Samuraizer

1) 설정 🔐

.env.example을 .env로 복사하고 값을 입력하세요. 또는 웹 UI를 열고 설정 탭으로 이동하여 저장하기 전에 설정(제공자, API 키, Ollama 모델명, 임베딩 모델명)을 조정할 수 있습니다.

root@kitploit:~
cp .env.example .env
🐳 Docker 설정 (권장)

전체 스택을 실행하는 가장 쉬운 방법 — 하나의 명령어로 모든 것을 빌드하고 시작합니다.

0) 저장소 클론 📥

root@kitploit:~
git clone https://github.com/zomry1/Samuraizer.git
cd Samuraizer

1) 설정 🔐

root@kitploit:~
cp .env.example .env
# .env를 편집하여 GEMINI_API_KEY (및 필요한 다른 값)를 입력하세요

2) 빌드 및 실행 ▶️

모든 Docker 파일은 docker/ 폴더에 있습니다. 프로젝트 루트에서 명령을 실행하세요:

Gemini (클라우드) — 기본:

root@kitploit:~
docker compose -f docker/docker-compose.yml up -d

CPU에서 Ollama:

root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama up -d

NVIDIA GPU에서 Ollama:

root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama-nvidia up -d
NVIDIA GPU 사전 요구사항

📺 YouTube 자막 가져오기

왜 youtube-transcript-api를 사용하지 않나요?

원래 구현은 오픈소스 youtube-transcript-api Python 라이브러리를 사용했습니다. 로컬에서는 잘 작동하지만 실제로는 YouTube가 자동화된 자막 요청을 하는 IP 주소를 적극적으로 차단합니다. 특히 다음 IP가 차단됩니다:

  • 클라우드 제공업체/VPS 호스트( AWS, GCP, Azure, Hetzner 등)의 IP
  • 자막 엔드포인트를 너무 자주 호출하는 IP

이는 몇 개의 동영상만 분석한 후에도 전체 서버가 차단되어 모든 후속 자막 가져오기가 IPBlocked / RequestBlocked 오류로 실패하게 되어 YouTube 동영상 분석이 완전히 중단된다는 것을 의미했습니다.

현재 솔루션: transcriptapi.com

Samuraizer는 이제 transcriptapi.com을 사용합니다 — 차단되지 않는 인프라를 통해 YouTube 자막 가져오기를 처리하는 타사 유료 API입니다.

장점:

  • IP 차단 없음 — 그들이 봇 방지 문제를 관리합니다
  • 간단한 REST API (GET /api/v2/youtube/transcript)
  • 무료 티어 사용 가능; 성공(HTTP 200) 시에만 크레딧 청구
  • 재시도 가능한 오류 코드 (408 / 503) 명확한 의미와 함께

단점:

  • 무료 티어 이상은 무료가 아님 (크레딧 기반 과금)
  • 외부 종속성 — 서비스가 다운되면 자막 가져오기 실패
  • 데이터가 타사를 통과함

설정: 에 추가:

📦 API 엔드포인트

URL 분석

POST /analyze

본문:

root@kitploit:~
{ "url": "https://github.com/owner/repo" }

PDF 분석

POST /analyze-pdf

본문: multipart/form-data 형식이며 file 필드에 .pdf 파일이 포함됩니다. /analyze와 동일한 형태로 NDJSON 이벤트를 스트리밍합니다 (파일 이름을 url 키로 사용).

저장된 PDF 검색

GET /entries/<id>/pdf — 브라우저에 PDF를 인라인으로 제공합니다. GET /entries/<id>/pdf?dl=1 — PDF를 파일 다운로드로 제공합니다.


🙌 기여 방법

  1. 포크(Fork)하기
  2. 브랜치 생성
  3. 변경 사항 적용
  4. PR 제출

⚖️ 라이선스

MIT

도구 다운로드
LLMGemini 2.5 Flash (Gemini API), Ollama (로컬 선택사항)
프론트엔드React 18, Vite, Tailwind CSS
봇python-telegram-bot v20
자막transcriptapi.com
변수필수 여부획득 방법
LLM_PROVIDER아니오gemini (기본값, 클라우드) 또는 ollama (로컬)
GEMINI_API_KEYgemini 사용 시Google AI Studio → API 키 받기
OLLAMA_URLollama 사용 시Ollama API URL (기본값: http://localhost:11434)
OLLAMA_MODELollama 사용 시추론 모델 (기본값: qwen3:14b)
OLLAMA_EMBED_MODELollama 사용 시임베딩 모델 (기본값: qwen3-embedding:8b)
TELEGRAM_BOT_TOKEN아니오텔레그램에서 @BotFather로 봇 생성
GITHUB_TOKEN아니오GitHub → 설정 → 개발자 설정 → 개인 액세스 토큰 — API 요청 제한을 60회에서 5,000회/시간으로 증가
TRANSCRIPTAPI아니오transcriptapi.com/dashboard/api-keys — YouTube 자막 가져오기에 필요
SAMURAIZER_URL아니오백엔드 URL (기본값: http://localhost:8000), 텔레그램 봇에서 사용
🏠 로컬 모드 (Ollama)

Ollama로 Samuraizer를 완전히 오프라인에서 실행하세요:

root@kitploit:~
# Ollama CLI 설치 (플랫폼에 따라 다름)
# macOS
curl -fsSL https://ollama.com/install.sh | sh

# Windows
irm https://ollama.com/install.ps1 | iex

# Linux (Ubuntu/Debian)
curl -fsSL https://ollama.com/install.sh | sh
root@kitploit:~
# Ollama 서비스 시작
ollama serve

# 모델 설치
ollama pull qwen3:4b            # 추론
ollama pull qwen3-embedding:8b  # 임베딩

# .env에서 제공자 설정
LLM_PROVIDER=ollama

이미 Gemini 임베딩이 있는 경우 Ollama로 전환하면 다음 시작 시 자동으로 지워집니다(차원 불일치). UI를 통해 또는 POST /entries/embed-all로 다시 임베딩하세요.

2) 종속성 설치 📦

root@kitploit:~
# 가상 환경 생성 및 활성화
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

pip install -r requirements.txt

cd frontend
npm install
cd ..

3) 백엔드 실행 ▶️

root@kitploit:~
python server.py

4) 프론트엔드 실행 🌐 (새 터미널)

root@kitploit:~
cd frontend
npm run dev

5) (선택사항) 텔레그램 봇 실행 🤖 (새 터미널)

root@kitploit:~
python telegram_bot.py

Windows (WSL 2):

  1. Windows에 최신 NVIDIA Game Ready / Studio 드라이버를 설치하세요 — WSL 내부에 별도의 Linux 드라이버는 필요하지 않습니다.
  2. WSL 2 설치: PowerShell을 관리자로 열고 다음을 실행하세요:
    root@kitploit:~
    wsl --install
    wsl --update
    
  3. Windows용 Docker Desktop을 설치하고 설정에서:
    • 일반 → "WSL 2 기반 엔진 사용" 활성화
    • 리소스 → WSL 통합 → 배포판에 대해 활성화

Windows용 Docker Desktop은 NVIDIA 컨테이너 런타임을 자동으로 번들 제공합니다 — 추가 단계 필요 없음.

Linux:

NVIDIA Container Toolkit 설치:

root@kitploit:~
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

AMD GPU에서 Ollama (ROCm 호환 GPU + Linux의 amdgpu 드라이버 필요):

root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama-amd up -d

이제 끝입니다. 프론트엔드는 **http://localhost**에, API는 **http://localhost:8000**에 있습니다.

팁: Ollama 프로필을 사용할 때는 .env에서 LLM_PROVIDER=ollama로 설정하세요. OLLAMA_URL은 컨테이너 내부에서 자동으로 http://ollama:11434로 설정됩니다 — 변경할 필요가 없습니다.

Ollama로 처음 시작한 후 모델을 풀어주세요 (시작한 프로필과 일치하는 컨테이너 이름 사용):

root@kitploit:~
# --profile ollama
docker exec -it samuraizer-ollama-1 ollama pull qwen3:4b
docker exec -it samuraizer-ollama-1 ollama pull qwen3-embedding:8b

# --profile ollama-nvidia
docker exec -it samuraizer-ollama-nvidia-1 ollama pull qwen3:4b
docker exec -it samuraizer-ollama-nvidia-1 ollama pull qwen3-embedding:8b

# --profile ollama-amd
docker exec -it samuraizer-ollama-amd-1 ollama pull qwen3:4b
docker exec -it samuraizer-ollama-amd-1 ollama pull qwen3-embedding:8b
  • 백엔드와 프론트엔드는 실패 시 자동으로 다시 시작됩니다.
  • Docker는 데이터베이스와 로그 파일을 프로젝트의 data/ 디렉터리에 저장하고 백업은 db_backups/에 저장합니다.
  • Ollama 모델 파일은 ollama_data Docker 볼륨에 저장됩니다 (재시작 시 유지).
  • 텔레그램 봇은 기본적으로 비활성화되어 있습니다. Ollama와 함께 활성화하려면 프로필을 결합하세요:
root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama-nvidia --profile bot up -d

업데이트

root@kitploit:~
git pull
docker compose -f docker/docker-compose.yml up -d --build

중지

root@kitploit:~
docker compose -f docker/docker-compose.yml down
.env
root@kitploit:~
TRANSCRIPTAPI=your_key_here

키는 transcriptapi.com/dashboard/api-keys에서 받으세요.

고려해볼 만한 대안

옵션작동 방식IP 차단 위험비용
transcriptapi.com (현재)관리형 REST API없음 (그들의 문제)크레딧 기반
yt-dlp--write-sub --skip-download로 자막 다운로드낮음 (브라우저 모방)무료, 자체 호스팅
youtube-transcript-api + 쿠키로그인된 브라우저 세션의 Netscape cookies.txt 전달중간 (임시 계정 위험)무료
YouTube Data API v3공식 Google API, 스크래핑 없음없음무료 할당량, 이후 유료
Supadata유사한 관리형 REST API없음무료 티어 (일 100회 요청)

최고의 무료 대안: yt-dlp — 적극적으로 유지 관리되며 실제 브라우저 요청을 모방하고 일반 HTTP 요청만큼 빠르게 차단되지 않을 가능성이 높습니다. 전환하려면 _fetch_youtube_content를 대체하여 yt-dlp --write-auto-sub --sub-format vtt --skip-download를 셸로 실행하고 결과 .vtt 파일을 파싱하세요.

항목 목록

GET /entries (필터 지원: search, category, tag, source, list_id, read, useful)

YouTube 채널 구독

  • GET /yt-channels — 구독한 채널 목록 (id, channel_id, channel_url, name, last_checked)
  • POST /yt-channels/preview — 본문 { "url": "https://www.youtube.com/@handle" }, 채널 정보 + 최신 동영상(URL/제목/게시일) 반환
  • POST /yt-channels — 본문 { "url": "...", "name": "선택사항", "analyze_urls": ["https://...", ...] }; 구독 생성 및 선택한 동영상 선택적 분석
  • POST /yt-channels/<id>/poll — 채널에 대한 즉시 수동 폴링
  • DELETE /yt-channels/<id> — 구독 제거

태그 관리

  • 태그 편집은 PATCH /entries/<id>를 통해 JSON { "tags": ["tag1","tag2"] }로 수행됩니다.