업데이트로 돌아가기
New releaseOct 2, 2026

cowrie v3.1.0

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 허니팟입니다. 중간 상호작용 모드(shell)에서는 Python으로 UNIX 시스템을 에뮬레이션하고, 높은 상호작용 모드(proxy)에서는 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 명령 지원
  • direct-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/r/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.11+
  • 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)
  • 그리고 그 외 수많은 분들.

카테고리