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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/sensepost/snoopy-ng
OSINT (Open Source Intelligence)Packet Sniffing & AnalysisReconnaissanceBluetooth SecurityNetwork MappingData ExfiltrationInformation GatheringWireless SecurityPenetration TestingCommand and ControlCrawlerDNS Analysis
4431299년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
snoopy-ng — Snoopy v2.0 - 모듈식 디지털 지상파 추적 프레임워크 | Kitploit
GitHubsensepost/snoopy-ng

snoopy-ng

Snoopy v2.0 - 모듈식 디지털 지상파 추적 프레임워크

저장소 보기

SensePost 제공:

root@kitploit:~
  /$$$$$$                                                   
 /$$__  $$                                                  
| $$  \__/ /$$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$  /$$   /$$
|  $$$$$$ | $$__  $$ /$$__  $$ /$$__  $$ /$$__  $$| $$  | $$
 \____  $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  | $$
 /$$  \ $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$
|  $$$$$$/| $$  | $$|  $$$$$$/|  $$$$$$/| $$$$$$$/|  $$$$$$$
 \______/ |__/  |__/ \______/  \______/ | $$____/  \____  $$
                                        | $$       /$$  | $$
                                        | $$      |  $$$$$$/
                                        |__/       \______/
                        
                                               Version: 2.0
Code:    [email protected] // @glennzw
Visit:   www.sensepost.com // @sensepost
License: Non-commercial use

Snoopy 버전 2.0에 오신 것을 환영합니다!

  1. 빠른 설정 ============== 시간이 부족하신가요? 이렇게 해보세요:

Snoopy 설치 및 설정:

root@kitploit:~
bash install.sh

wireless, sysinfo, heartbeat 플러그인의 데이터를 로컬에 저장하려면:

root@kitploit:~
snoopy -v -m wifi:mon=True -m sysinfo -m heartbeat -d myDrone -l London

클라이언트에서 서버로 데이터를 동기화하려면:

서버:

root@kitploit:~
snoopy_auth --create myDrone     # Create account
snoopy -v -m server              # Start server plugin

클라이언트:

root@kitploit:~
snoopy -v -m wifi:mon=True -s http://<server>:9001/ -d myDrone -l London -k <key>
  1. 소개 및 개요 ============================= Snoopy는 분산형 센서, 데이터 수집, 가로채기, 분석 및 시각화 프레임워크입니다. Python 플러그인을 통해 다양한 소스에서 임의의 데이터를 수집할 수 있도록 모듈식 형식으로 작성되었습니다.

  2. 아키텍처

    각 Snoopy 인스턴스는 여러 플러그인을 동시에 실행할 수 있습니다. 플러그인은 데이터를 수집하고, 메인 Snoopy 프로세스가 이를 조회하여 로컬 데이터베이스에 기록합니다. Snoopy는 클라이언트(드론)와 서버 간에 데이터를 동기화할 수 있으며, 클라이언트(드론)는 서버에서 데이터의 복제본을 가져올 수도 있습니다. 각 Snoopy 인스턴스는 전체 구조에서 자신의 위치에 적합한 플러그인을 실행할 수 있습니다. 다음 다이어그램은 가능한 설정 중 하나를 보여줍니다:

    root@kitploit:~
     Drone01                     Server01
     +---------------+           +--------------+
     | Plugins:      |           | Plugins:     |
     |   * WiFi      |           |  *Server     |
     |   * Bluetooth |====3G====>|              |<=========================\
     |   * GSM       |           |              |                          ||
     |   * FitBit    |           |              |                          ||
     +---------------+           +--------------+                          ||
                                                                           ||
     Drone02                      Server02               Server03          ||
     +---------------+            +--------------+       +-------------+   ||
     | Plugins:      |            | Plugins:     |       | Plugins:    |   ||
     |   * WiFi      |            |  * Server    |       |  * Server   |   ||
     |   * Cookie    |=====Xbee==>|  * Heartbeat |==3G==>|  * Wigle    |<==\
     |     thief     |   ||       |              |       |  * DataViz  |   ||
     |   * GPS       |   ||       |              |       |             |   ||
     +---------------+   ||       +--------------+       +-------------+   ||
                         ||                                             Internet
     Drone03             ||                             Laptop01           || 
     +---------------+   ||                            +--------------+    ||                                
     | Plugins:      |   ||                            | Plugins:     |    ||
     |   * Thermal   |   ||                            |  *RemotePull |    ||
     |   * Camera    |===/                             |              |====/
     |   * Heat      |                                 |  Run:        |
     |               |                                 |   *Maltego   |
     +---------------+                                 +--------------+
    

위 그림에는 세 대의 드론이 실행 중이며 두 개의 개별 서버로 데이터를 동기화하고 있습니다. 하나는 3G로, 나머지 두 개는 Xbee로 동기화합니다. 두 번째 서버는 자신의 데이터를 세 번째 서버로 동기화합니다. 마지막으로 클라이언트(노트북)는 첫 번째와 세 번째 서버에서 모든 데이터를 가져와 Maltego를 실행하여 데이터를 탐색합니다.

  1. 설정 및 설치

'snoopy-ng.git' 디렉터리에서 'sh install.sh'를 실행하면 필요한 모든 패키지가 설치됩니다. 이 패키지가 없는 배포판을 위해 소스에서 aircrack을 설치하는 옵션을 제공합니다(aircrack 스위트는 무선 플러그인에 사용됩니다). 데이터 탐색에는 Maltego를 적극 권장합니다. 커뮤니티 에디션(일부 제한 있음)은 http://paterva.com에서 무료로 다운로드할 수 있습니다.


  1. 사용법 ========

기본

사용 가능한 모든 플래그와 옵션을 확인하려면 다음 두 가지 명령을 제공합니다:

root@kitploit:~
root@kali:~# snoopy --help (shorthand -h)

이 명령은 동기화할 서버, 드론 이름 및 위치 등 모든 실행 옵션을 보여줍니다. 또한 다양한 플러그인을 실행하는 방법도 소개합니다.

root@kitploit:~
root@kali:~# snoopy --list (shorthand -i)

이 명령은 사용 가능한 모든 플러그인과 각 플러그인이 올바르게 작동하는 데 필요한 매개변수를 나열합니다. 각 플러그인에 대한 더 자세한 정보를 보려면 '-ii' 또는 '-iii'를 사용하세요. 특정 플러그인에 대한 정보는 '-i -m '을 사용하세요.

플러그인은 --plugin(또는 줄여서 -m) 옵션으로 지정할 수 있습니다. 여러 플러그인을 지정할 수 있으며 입력한 순서대로 시작됩니다. 각 플러그인은 준비 상태를 알리는 데 60초가 주어지며, 이후 타임아웃되고 다음 플러그인이 시작됩니다. 이는 후속 플러그인이 이전 플러그인의 작업에 의존하는 경우 유용할 수 있습니다.

각 플러그인은 --list 출력에 표시된 대로 쉼표로 구분된 키-값 쌍 형태의 많은 매개변수를 받을 수 있습니다. 아래에서는 단순히 난수를 생성하는 'example' 플러그인을 사용합니다.

root@kitploit:~
   snoopy --plugin example:x=1,v=True
   

드론/위치 옵션을 지정하지 않으면 기본값이 사용됩니다. 또는 아래와 같이 지정할 수 있습니다.

root@kitploit:~
   snoopy --plugin example:x=1,v=True --drone myDrone --location Cansas

데이터 동기화

--server(-s) 옵션을 지정하면 데이터를 원격 머신과 동기화할 수 있습니다. 원격 머신에서는 서버 플러그인(--plugin server)이 실행 중이어야 합니다. 사전에 드론 이름에 대한 키를 생성해야 합니다. 아래는 이를 보여줍니다.

서버

root@kitploit:~
    root@server:~# snoopy_auth --create myDrone01 --verbose
    [+] Creating new Snoopy server sync account
    [+] Key for 'myDrone01' is 'GWWVF'
    [+] Use this value in client mode to sync data to a remote server.
    root@kali:~# snoopy --plugin server
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.
    

클라이언트

root@kitploit:~
    root@client:~# snoopy --plugin example:x=1 --drone myDrone --key GWWVF --server http://<server_ip>:9001/ --verbose
    [+] Starting Snoopy with plugins: example
    [+] Plugin example created new random number: 21
    [+] Snoopy successfully sunc 2 elements over 2 tables.
     

원격 데이터 가져오기

local_sync 플러그인을 사용하여 서버에서 데이터를 가져올 수 있습니다. 예를 들어 위와 같이 서버가 실행 중이라고 가정하고 클라이언트에서 다음 작업을 수행합니다:

root@kitploit:~
root@client:~# snoopy --plugin local_sync:server_url=http://<server_ip>:9001/ --drone myDrone --key GWWVF
[+] Plugin local_sync pulled 888 records from remote server.

데이터베이스 저장

기본 동작은 모든 데이터를 SQLITE 파일 snoopy.db에 저장하는 것입니다. 이는 --dbms 매개변수로 재정의할 수 있습니다. 다양한 데이터베이스 엔진을 지정하는 방법은 SQL Alchemy 문서(http://docs.sqlalchemy.org/en/rel_0_9/dialects/index.html)를 참조하세요. 예를 들어 아래에서는 MySQL을 사용합니다:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=mysql://glenn:secret@localhost/snoopy_db
    [+] Capturing local only. Saving to 'mysql://glenn:secret@localhost/snoopy_db'   

소형 기기에서는 SQLITE 저장소를 사용하고 서버 플러그인은 MySQL(또는 유사한 DB)에 저장하도록 하는 것이 유용할 수 있습니다. 이동식 미디어 등 데이터를 저장할 파일 위치를 지정하는 다음 예시도 유용할 것입니다:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=sqlite:////media/USB01/snoopy.db
    

--flush(-f) 옵션은 데이터가 업스트림 서버와 동기화된 후 로컬 저장소에서 데이터를 '비우는(flush)' 옵션입니다.

부팅 시 서비스 시작

Snoopy는 upstart 스크립트로 시작할 수 있습니다(./setup/upstarts 폴더 참조). 같은 디렉터리에 다른 샘플 upstart 스크립트도 제공됩니다. 예를 들어 3G 모뎀에서 PPP 연결을 설정하는 스크립트와 SSH 원격 명령 채널을 만드는 스크립트가 있습니다.

Debian 기반 시스템(예: Kali)은 upstart를 지원하지 않는 것 같습니다. 그 사이에는 제공된 rc.local 파일을 사용하여 부팅 시 Snoopy 및 관련 서비스를 시작할 수 있습니다.


  1. 데이터 시각화 =====================

Maltego는 시각화를 수행하는 데 선호되는 도구입니다. 지침은 다음과 같습니다:

  1. Maltego를 엽니다
  2. 'Import Configuration'을 선택합니다
  3. transforms 폴더에서 'snoopy_entities.mtz'를 선택합니다

이렇게 하면 엔티티와 변환(transforms)이 모두 가져와집니다. 시작하려면 팔레트 메뉴의 Snoopy 탭에서 'Base of Operations' 엔티티를 빈 그래프로 끌어다 놓습니다. 예를 들어 엔티티에 대해 다음 작업을 수행합니다:

  1. 마우스 오른쪽 버튼을 클릭하고 Transforms를 선택한 다음 'Get Drones'를 선택합니다
  2. 원하는 드론에서 마우스 오른쪽 버튼을 클릭하고 'Get Location'을 선택합니다
  3. 원하는 위치에서 마우스 오른쪽 버튼을 클릭하고 'Get Clients'를 선택합니다
  4. 원하는 클라이언트에서 마우스 오른쪽 버튼을 클릭하고 'Get Observations'를 선택합니다

변환은 (수동 모니터링에서) 도메인과 쿠키를 가져오고, SSID 거리 주소를 조회하는 데 사용되며, 여러 변환은 양방향입니다(예: Location에서 클라이언트를 조회하거나 클라이언트에서 Location을 조회). 직접 사용해 보는 것이 가장 좋습니다.

데이터베이스 사양

기본 sqlite 형식을 사용하지 않는 경우 다음 파일을 편집하여 데이터 위치를 지정하십시오:

root@kitploit:~
    snoopy_ng/transforms/db_path.conf
    

그래프 공유

Snoopy 그래프는 Maltego의 협업 기능을 사용하여 여러 분석가가 동시에 공유할 수 있습니다. Collaboration을 선택한 다음 'Share Current Graph'를 선택하세요.


  1. 상업적 사용 =================== Snoopy가 배포되는 라이선스는 사용으로 인한 금전적(또는 기타) 이득을 금지합니다(LICENSE.txt 참조). 상업적 사용을 위한 별도의 라이선스가 있으며, 여기에는 다음과 같은 추가 기능이 포함됩니다:

    • XBee를 통한 데이터 동기화
    • 고급 플러그인
    • 추가/사용자 지정 변환
    • 웹 인터페이스
    • 사전 구축된 드론

함께 작업하고 싶다면 연락주세요 ([email protected] / [email protected]).


  1. 부록 =========== 플러그인 작성

플러그인 작성 방법을 이해하려면 plugins/example.py 파일을 참조하십시오. plugins 폴더에 있는 모든 파일은 플러그인으로 취급되며 다음 속성을 가져야 합니다:

  1. 플러그인 정보와 선택적 매개변수 정의를 제공합니다.
  2. 수집할 데이터에 대한 SQL 테이블 스키마 정의를 제공합니다.
  3. 쿼리 시 위에서 정의한 형식으로 데이터를 반환합니다.

그 외에는 플러그인이 원하는 대로 동작할 수 있습니다.

하드웨어

Snoopy는 install.sh 파일의 파일을 설치할 수 있는 충분한 지원이 있는 모든 Linux 장치에서 실행됩니다. 즉, Python 및 관련 패키지가 필요합니다. 하드웨어 지원은 필요한 플러그인에 따라 다르지만, WiFi 데이터를 수집하고 3G로 업로드하는 가장 일반적인 시나리오에서는 다음을 권장합니다:

  • BeagleBone Black
  • 전원 공급 USB 허브 (플러그 두 개를 절약하기 위한 Y 분리기 포함)
  • Alfa AWUS036h WiFi 어댑터
  • Huawei E160 모뎀
  • BlueNext BN903S GPS
  • 최소 2A 전원 어댑터 (보유한 주변기기에 따라 다름)

운영 체제

Kali 1.05 및 Ubuntu 12.04에서 테스트되었습니다. 유사한 시스템에서도 작동할 것입니다.

추가 참고 사항:

  • 원하는 만큼 많은 플러그인을 한 번에 실행할 수 있습니다. 플러그인은 명령줄에 지정된 순서대로 순차적으로 시작됩니다.
  • 다음 플러그인은 이전 플러그인이 준비되었음을 나타낼 때만 시작됩니다(60초 타임아웃). 후속 플러그인이 이전 플러그인에 의존하는 경우 유용합니다.
  • 드론이나 위치를 지정하지 않으면 기본값이 제공됩니다.
  • 데이터 동기화만 하려면 플러그인 없이 Snoopy를 실행할 수 있습니다.

알려진 문제

로컬에서 데이터를 수집하고, 원격 서버에 동기화한 다음, 서버에서 복제본을 가져올 때 오류 조건이 발생합니다. 예:

서버

root@kitploit:~
    root@kali:~# snoopy -m server -m wigle:username=u,password=p,[email protected]
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.

     

클라이언트

root@kitploit:~
	root@client:~# snoopy -m wifi -m local_sync:server_url=http://1.1.1.1:9001/ -d myDrone -l London -k secretkey -s http://1.1.1.1:9001/
도구 다운로드