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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
exist — EXIST는 사이버 위협 인텔리전스를 집계·분석하는 웹 애플리케이션입니다. | Kitploit
도구/GitHubGitHub/nict-csl/exist
Indicator of Compromise (IOC) ManagementOSINT (Open Source Intelligence)Threat Feeds & AggregatorsVulnerability AnalysisInformation GatheringThreat IntelligenceLearning & EducationIncident ResponseLog AnalysisArchived
GitHubnict-csl/exist

exist

152295개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

EXIST는 사이버 위협 인텔리전스를 집계·분석하는 웹 애플리케이션입니다.

저장소 보기

EXIST (사이버 위협에 대한 외부 정보 수집 시스템)

⚠️ 이 저장소는 유지보수되지 않으며 보관되었습니다. 보안 문제는 수정되지 않습니다.

EXIST는 CTI(사이버 위협 인텔리전스)를 수집하고 분석하기 위한 웹 애플리케이션입니다.

EXIST는 다음 소프트웨어로 작성되었습니다.

  • Python 3
  • Django 1.11

개념

EXIST는 보안 운영자가 관련 지표를 기반으로 사고를 조사할 수 있도록 CTI를 수집하는 웹 애플리케이션입니다.

EXIST는 여러 CTI 서비스와 Twitter의 API 및 피드를 통해 자동으로 데이터를 가져옵니다. 웹 인터페이스와 API를 통해 지표를 교차 검색할 수 있습니다.

클라이언트의 네트워크 동작을 기록하는 서버(예: DNS 및 HTTP 프록시 서버 로그 등)가 있다면 EXIST의 데이터와 상관 관계를 분석하여 로그를 분석할 수 있습니다. API를 사용하여 프로그램을 구현하면 자동화된 CTI 기반 보안 운영 센터를 실현할 수 있습니다.

overview

사용 사례

사례1: IDS에서 탐지된 도메인 조사

검색 양식에 도메인을 입력하기만 하면 됩니다.

lookup_domain

사례2: 사용자를 대신하여 악성 URL에 접속하여 브라우저의 표시 이미지와 다운로드될 콘텐츠 획득

검색 양식에 URL을 입력하기만 하면 됩니다.

lookup_url

사례3: 사이버 위협 모니터링

Threat Hunter 또는 Twitter Hunter에 키워드를 추가하기만 하면 됩니다.

twitter_hunter

기능

Tracker

Tracker는 여러 CTI 서비스의 데이터 피드를 자동으로 수집합니다.

  • Threat Tracker
  • Reputation Tracker
  • Twitter Tracker
  • Exploit Tracker
  • News Tracker
  • Vuln Tracker

Hunter

Hunter를 사용하면 여러 CTI 서비스와 Twitter에서 데이터를 수집하기 위한 쿼리를 설정할 수 있습니다.

  • Twitter Hunter
  • Threat Hunter
  • News Hunter

Lookup

Lookup은 여러 인터넷 서비스(예: whois)에서 특정 정보(예: IP 주소, 도메인)와 관련된 정보를 검색합니다.

  • IP 주소
  • 도메인
  • URL
  • 파일 해시

Tools

twitter tracker에서 트윗에 주석을 달기 위한 도구입니다.

  • Annotation Tool

Web API

EXIST 데이터베이스에 저장된 데이터를 Web API로 제공합니다.

  • reputation
  • twitter
  • exploit
  • threatEvent
  • threatAttribute
  • news
  • vuln

시작하기

그 후에는 CentOS 7 또는 Ubuntu 18.04 LTS 환경을 가정합니다. 다른 환경에 배포할 때는 직접 판단하십시오.

Python 모듈 설치

root@kitploit:~
$ sudo pip install -r requirements.txt

MariaDB 설치

  • CentOS 7
root@kitploit:~
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
$ sudo yum install MariaDB-server MariaDB-client
  • Ubuntu 18.04 LTS
root@kitploit:~
$ sudo apt install mariadb-server mariadb-client

데이터베이스 실행

root@kitploit:~
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

데이터베이스 설정

  • 데이터베이스와 사용자를 생성합니다.
  • .env.example를 참고하여 .env 파일을 생성합니다. 그리고 DB 설정에 맞게 편집합니다.

Django용 시크릿 키 생성

Django용 시크릿 키는 .env 파일에 작성해야 합니다.

먼저 키 생성기를 실행합니다:

root@kitploit:~
$ python keygen.py
(예시)> 70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@

그리고 시크릿 키를 .env 파일에 작성합니다:

root@kitploit:~
...
# EXIST Application Settings
EXIST_SECRET_KEY="70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@"
...

데이터베이스 마이그레이션

root@kitploit:~
$ python manage.py makemigrations exploit reputation threat threat_hunter twitter twitter_hunter news news_hunter vuln
$ python manage.py migrate

Redis 서버 설치

Reputation Tracker는 Celery 캐시 서버 백엔드로 redis를 사용합니다.

  • CentOS 7
root@kitploit:~
$ sudo yum install redis
$ sudo systemctl start redis
$ sudo systemctl enable redis
  • Ubuntu 18.04 LTS
root@kitploit:~
$ sudo apt install redis-server
$ sudo systemctl start redis-server
$ sudo systemctl enable redis-server

Celery 설정

Reputation Tracker는 비동기 작업 작업 큐로 Celery를 사용합니다.

  • Celery 구성을 생성합니다. 다음 경로에 설정하는 것을 권장합니다:
    • CentOS 7: /etc/sysconfig/celery
    • Ubuntu 18.04 LTS: /etc/celery.conf
root@kitploit:~
# Name of nodes to start
# here we have a single node
CELERYD_NODES="w1"
# or we could have three nodes:
#CELERYD_NODES="w1 w2 w3"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/path/to/your/celery"

# App instance to use
# comment out this line if you don't use an app
CELERY_APP="intelligence"
# or fully qualified:
#CELERY_APP="proj.tasks:app"

# How to call manage.py
CELERYD_MULTI="multi"

# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=300 --concurrency=8"

# - %n will be replaced with the first part of the nodename.
# - %I will be replaced with the current child process index
# and is important when using the prefork pool to avoid race conditions.
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_LOG_LEVEL="INFO"
  • /etc/systemd/system/celery.service에 Celery 서비스 관리 스크립트를 생성합니다. 또한 EnvironmentFile에 Celery 설정 경로를 설정해야 합니다.
root@kitploit:~
[Unit]
Description=Celery Service
After=network.target

[Service]
Type=forking
User=YOUR_USER
Group=YOUR_GROUP
EnvironmentFile=/etc/sysconfig/celery
WorkingDirectory=/path/to/your/exist
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
--pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'

[Install]
WantedBy=multi-user.target
  • Celery 로그 및 실행 디렉토리를 생성합니다.
root@kitploit:~
$ sudo mkdir /var/log/celery; sudo chown YOUR_USER:YOUR_GROUP /var/log/celery
$ sudo mkdir /var/run/celery; sudo chown YOUR_USER:YOUR_GROUP /var/run/celery
  • /etc/tmpfiles.d/exist.conf에 설정 파일을 생성합니다.
root@kitploit:~
#Type  Path               Mode  UID        GID         Age  Argument
d      /var/run/celery    0755  YOUR_USER  YOUR_GROUP  -
  • Celery 실행
root@kitploit:~
$ sudo systemctl start celery.service
$ sudo systemctl enable celery.service

웹 서버 실행

root@kitploit:~
$ python manage.py runserver 0.0.0.0:8000
  • 브라우저로 http://[YourWebServer]:8000에 접속합니다.
  • WebAPI: http://[YourWebServer]:8000/api/

참고: 프로덕션 환경에서 실행할 때는 Nginx와 uWSGI를 사용하는 것을 권장합니다.

피드 수집

데이터베이스에 피드를 삽입하는 스크립트는 scripts/insert2db/*/insert2db.py입니다.

insert2db 설정

  • 설정 파일은 scripts/insert2db/conf/insert2db.conf입니다. insert2db.conf.template을 참고하여 생성합니다.
  • MISP를 사용하는 경우 MISP URL과 API 키를 insert2db.conf에 작성합니다.
  • Malshare를 사용하는 경우 API 키를 insert2db.conf에 작성합니다.
  • EXIST로 추적하기 위해 https://developer.twitter.com/에서 Twitter API 계정을 생성합니다.
  • EXIST용 앱을 생성합니다.
  • Consumer API key (CA), Consumer API secret key (CS), Access token (AT), access token secret (AS)를 가져옵니다.
  • CA, CS, AT, AS를 insert2db.conf에 작성합니다.

스크립트 실행

root@kitploit:~
$ python scripts/insert2db/reputation/insert2db.py
$ python scripts/insert2db/twitter/insert2db.py
$ python scripts/insert2db/exploit/insert2db.py
$ python scripts/insert2db/threat/insert2db.py
$ python scripts/insert2db/news/insert2db.py
$ python scripts/insert2db/vuln/insert2db.py

참고: 정보 수집을 자동화하려면 cron에 작성하세요.

Hunter 설정

Twitter Hunter

Twitter Hunter는 특정 키워드와 사용자 ID가 포함된 트윗을 감지할 수 있습니다. 필요한 경우 Slack에 알릴 수도 있습니다.

  • 설정 파일은 scripts/hunter/conf/hunter.conf입니다. hunter.conf.template을 참고하여 생성합니다.
  • Slack을 사용하는 경우 Slack 토큰을 hunter.conf에 작성합니다.
  • https://developer.twitter.com/에서 Twitter API 계정을 생성합니다.
  • EXIST용 앱 18개를 생성합니다.
  • Consumer API key (CA), Consumer API secret key (CS), Access token (AT), access token secret (AS) 18개를 가져옵니다.
  • CA, CS, AT, AS를 hunter.conf의 auth-hunter[00-18]에 작성합니다.
  • Twitter Hunter를 지속적으로 실행하려면 cron을 사용하여 scripts/hunter/twitter/tw_watchhunter.py를 매분 실행하도록 설정합니다.

Threat Hunter

Threat Hunter는 특정 키워드가 포함된 위협 이벤트를 감지할 수 있습니다. 필요한 경우 Slack에 알릴 수도 있습니다.

  • 설정 파일은 scripts/hunter/conf/hunter.conf입니다. hunter.conf.template을 참고하여 생성합니다.
  • Slack을 사용하는 경우 Slack 토큰을 hunter.conf에 작성합니다.
  • Threat Hunter를 지속적으로 실행하려면 cron을 사용하여 scripts/hunter/threat/th_watchhunter.py를 매분 실행하도록 설정합니다.

기타 필수 도구 및 설정

VirusTotal API

EXIST는 VirusTotal API를 사용합니다.

  • VirusTotal 계정을 생성합니다.
  • API 키를 conf/vt.conf에 작성합니다.

참고: 비공개 API 키가 있으면 더 많은 정보를 얻을 수 있습니다.

GeoIP DB

IP/도메인 조회는 GeoLite2 Database를 사용합니다.

  • GeoIP DB를 http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz에서 다운로드합니다.
  • conf/geoip.conf에 GeoLite2-City.mmdb의 경로를 작성합니다.

wkhtmltopdf 및 Xvfb

URL 조회는 wkhtmltopdf와 Xvfb를 사용합니다.

  • https://wkhtmltopdf.org/downloads.html에서 wkhtmltopdf를 다운로드하여 설치합니다.
  • Xvfb를 설치합니다.
root@kitploit:~
$ sudo yum install xorg-x11-server-Xvfb

Ubuntu 18.04 LTS에 EXIST를 배포하는 경우 apt를 사용하여 이러한 패키지를 설치할 수 있습니다.

root@kitploit:~
$ sudo apt install wkhtmltopdf xvfb

오래된 데이터 플러시

  • 설정 파일은 scripts/url/url.conf입니다. url.conf.template을 참고하여 생성합니다.
  • cron을 사용하여 scripts/url/delete_webdata.sh를 매일 실행하여 오래된 URL 조회 데이터를 플러시합니다.
  • cron을 사용하여 scripts/url/delete_oldtaskresult.sh를 매일 실행하여 오래된 Celery 데이터를 플러시합니다.

AnnotationTool

트윗용 훈련 데이터를 생성하기 위한 주석 도구입니다. 이 도구는 기계 학습 연구자를 위한 것입니다.

사용 방법

  1. 주석 대상을 확인합니다. annotation_target
  2. Annotation 버튼을 클릭합니다. annotation_button
  3. 레이블을 지정할 단어를 선택합니다. annotation_labeled
  4. 레이블 버튼을 클릭합니다.
  5. 저장합니다.

취약점 신고

취약점을 발견하시면 이메일로 연락해주세요.

취약점 보고 템플릿

크레딧

이 제품에는 MaxMind에서 만든 GeoLite2 데이터가 포함되어 있으며, https://www.maxmind.com에서 제공됩니다.

라이선스

MIT 라이선스 © 사이버 보안 연구소, NICT

도구 다운로드