업데이트로 돌아가기
New releaseAug 31, 2026

cowrie v3.0.12

Cowrie SSH/Telnet 허니팟 https://docs.cowrie.org/

공유

.. SPDX-FileCopyrightText: 2014 Upi Tamminen [email protected] .. SPDX-FileCopyrightText: 2014-2025 Michel Oosterhof [email protected] .. .. SPDX-License-Identifier: BSD-3-Clause

Cowrie

Cowrie란 무엇인가


Cowrie는 중간~높은 상호작용 수준의 SSH 및 Telnet 허니팟으로, 무차별 대입 공격과 공격자가 수행한 셸 상호작용을 기록하도록 설계되었습니다. 중간 상호작용 모드(셸)에서는 Python으로 UNIX 시스템을 에뮬레이션하고, 높은 상호작용 모드(프록시)에서는 SSH 및 Telnet 프록시로 작동하여 다른 시스템에서의 공격자 행동을 관찰합니다. LLM 모드에서는 대규모 언어 모델을 사용하여 공격자 명령에 대한 동적 응답을 생성합니다.

Cowrie <http://github.com/cowrie/cowrie/>_ 는 Michel Oosterhof가 유지 관리합니다.

문서


문서는 여기 <https://docs.cowrie.org/en/latest/index.html>_ 에서 찾을 수 있습니다.

Slack


다음 Slack 워크스페이스 <https://www.cowrie.org/slack/>_ 에서 Cowrie 커뮤니티에 참여할 수 있습니다.

기능


  • 에뮬레이션된 셸로 실행하도록 선택(기본값):

    • 파일 추가/제거가 가능한 가짜 파일시스템. Debian 5.0 설치를 닮은 완전한 가짜 파일시스템이 포함되어 있습니다
    • 공격자가 /etc/passwd 같은 파일을 cat 할 수 있도록 가짜 파일 내용을 추가할 수 있습니다. 최소한의 파일 내용만 포함되어 있습니다
    • Cowrie는 wget/curl로 다운로드하거나 SFTP 및 scp로 업로드된 파일을 저장하여 나중에 검사할 수 있습니다
  • 또는 SSH 및 Telnet을 다른 시스템으로 프록시

    • 모니터링 기능이 있는 순수 Telnet 및 SSH 프록시로 실행
    • 또는 Cowrie가 QEMU 에뮬레이션 서버 풀을 관리하여 로그인할 시스템을 제공하도록 함
  • 또는 LLM 백엔드 사용(실험적):

    • 대규모 언어 모델(예: OpenAI GPT)을 사용하여 현실적인 셸 응답을 동적으로 생성
    • 사전 정의된 응답 없이 모든 명령 처리
    • 일관된 세션을 위한 대화 컨텍스트 유지

두 설정 모두에 대해:

  • 세션 로그는 playlog 유틸리티로 쉽게 재생할 수 있도록 User Mode Linux <http://user-mode-linux.sourceforge.net/>_ 호환 형식으로 저장됩니다.
  • 파일 업로드를 위한 SFTP 및 SCP 지원
  • SSH exec 명령 지원
  • 직접 TCP 연결 시도 로깅(SSH 프록시)
  • SMTP 연결을 SMTP 허니팟으로 전달(예: mailoney <https://github.com/awhitehatter/mailoney>_)
  • 로그 관리 솔루션에서 쉽게 처리할 수 있는 JSON 로깅

설치


Cowrie를 설치하는 방법은 세 가지가 있습니다: pip, Docker, 그리고 git 체크아웃. 첫 번째 허니팟에는 pip와 Docker가 가장 쉬운 방법입니다. Cowrie 자체를 수정하려는 개발 또는 고급 시나리오에는 git 체크아웃을 사용하세요. 세 가지 방법 모두에 대한 전체 지침은 설치 가이드 <https://docs.cowrie.org/en/latest/INSTALL.html>_ 에 있습니다.

Docker


Docker 이미지 <https://hub.docker.com/repository/docker/cowrie/cowrie>_ 는 Docker Hub에서 사용할 수 있습니다.

  • 빠르게 시작하고 Cowrie를 사용해 보려면 다음을 실행하세요::

    $ docker run -p 2222:2222 cowrie/cowrie:latest $ ssh -p 2222 root@localhost

  • 로컬에서 빌드만 하려면 다음을 실행하세요::

    $ make docker-build

PyPI


Cowrie는 PyPI에서 사용할 수 있습니다 <https://pypi.org/project/cowrie>_. 가상 환경에 설치하고 시작하려면::

$ mkdir my-honeypot && cd my-honeypot
$ python3 -m venv cowrie-env
$ source cowrie-env/bin/activate
(cowrie-env) $ pip install cowrie
(cowrie-env) $ cowrie init
(cowrie-env) $ cowrie start

cowrie init 는 현재 디렉터리에 구성 파일 etc/cowrie.cfg 를 작성합니다; 로그와 다운로드는 var/ 아래에 저장됩니다.

요구 사항


로컬에서 실행하는 데 필요한 소프트웨어:

  • Python 3.10+
  • python-virtualenv

관심 파일:


  • etc/cowrie.cfg - Cowrie의 구성 파일(운영자 소유). cowrie init 으로 생성됩니다.
  • src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - 번들된 기본값, 대신 etc/cowrie.cfg 를 편집하세요
  • etc/userdb.txt - 허니팟에 접근하기 위한 자격 증명
  • src/cowrie/data/fs.pickle - 가짜 파일시스템; 메타데이터(경로, uid, gid, 크기, 모드)와 공격자가 흔히 cat 하는 작은 파일의 내장 내용(A_CONTENTS 바이트)을 모두 포함합니다. fsctl 로 편집하고 make build-fs-pickle 로 재구축합니다.
  • src/cowrie/data/txtcmds/ - 간단한 가짜 명령의 출력
  • var/log/cowrie/cowrie.json - JSON 형식의 감사 출력
  • var/log/cowrie/cowrie.log - 로그/디버그 출력
  • var/lib/cowrie/tty/ - 세션 로그, playlog 유틸리티로 재생 가능
  • var/lib/cowrie/downloads/ - 공격자에서 허니팟으로 전송된 파일이 여기에 저장됩니다

명령


  • cowrie - Cowrie 시작, 중지 및 재시작
  • fsctl - 가짜 파일시스템 수정
  • createfs - 자신만의 가짜 파일시스템 생성
  • playlog - 세션 로그를 재생하는 유틸리티
  • asciinema - Cowrie 로그를 asciinema 파일로 변환

기여자


수년 동안 많은 사람들이 Cowrie에 기여했습니다. 특별히 감사드립니다:

  • Upi Tamminen (desaster) - Cowrie의 기반이 된 Kippo 개발에 기여한 모든 작업에 대해
  • Dave Germiquet (davegermiquet) - TFTP 지원, 단위 테스트, 새로운 프로세스 처리
  • Olivier Bilodeau (obilodeau) - Telnet 지원
  • Ivan Korolev (fe7ch) - 수년간의 많은 개선 사항
  • Florian Pelgrim (craneworks) - 코드 정리 및 Docker 작업
  • Guilherme Borges (sgtpepperpt) - SSH 및 Telnet 프록시 (GSoC 2019)
  • 그리고 그 외 많은 분들

카테고리