Cowrie蜜罐:在Docker Ubuntu环境下的搭建

目录

修改服务器ssh端口

安装Docker

安装Cowrie

安装并输出Cowrie日志到MySQL(可选)

启动Cowrie


修改服务器ssh端口

  • 为了将22端口留给Cowrie,需更改服务器的真实SSH端口:
vim /etc/ssh/sshd_config

        注:修改文件是 sshd_config 而不是 ssh_config !

  • 找到以下注释,并把 # 号删除,将22改为另一个自定义端口:
#Port 22
Port 61234
  • 重启ssh服务,并重启服务器:
systemctl restart sshd
shutdown -r now

        注:若使用云服务器,需要在控制台修改防火墙规则,允许自定义端口连接。

  • 重启后即可以61234端口进行ssh连接。

安装Docker

  • 参考Docker安装教程:

https://blog.csdn.net/qq_40379977/article/details/129976637?spm=1001.2014.3001.5501

安装Cowrie

  • Docker拉取ubuntu镜像:
sudo docker pull ubuntu:latest
  • 根据该镜像生成容器:
sudo docker run -it -p 22:2222 -p 23:2223 --name cowrie ubuntu /bin/bash

# -p 22:2222 指服务器的22端口转发至容器的2222端口
# -p 23:2223 指服务器的23端口转发至容器的2223端口
# --name cowrie 指容器名自定义为cowrie
  • 安装环境:
apt update
apt install vim git python3-virtualenv libssl-dev libffi-dev build-essential libpython3-dev python3-minimal authbind 
  • 添加用户,密码和其余信息可自定义填写:
adduser cowrie
  • 切换cowrie用户,下载cowrie:
su cowrie
cd ~
git clone http://github.com/cowrie/cowriesu cowrie
  • 创建python虚拟环境,并安装cowrie的依赖:
virtualenv --python=python3 cowrie_env
source cowrie_env/bin/activate
pip3 install --upgrade -r cowrie/requirements.txt

安装并输出Cowrie日志到MySQL(可选)

参考官方文档:How to Send Cowrie output to a MySQL Database — cowrie 2.5.0 documentation

  • 在cowrie用户下安装mysql-connector-python:
su cowrie
source cowrie_env/bin/activate
pip install mysql-connector-python
  • 切换到root,安装mysql-server:
su root
apt install mysql-server
  • 启动mysql服务:
/etc/init.d/mysql start
  • 验证安装,能输出版本信息即可:
mysql --version
  • 补充:

        若登录报以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)

        则可能是var/run/mysqld目录未创建,则只需:

mkdir -p /var/run/mysqld
chown mysql /var/run/mysqld/
chmod 777 /var/run/mysqld/
service mysql restart
  • 登录mysql,创建cowrie数据库:
mysql -u root -p
CREATE DATABASE cowrie;
  • 创建cowrie用户,将下述PASSWORD修改为自己的密码:
CREATE USER 'cowrie'@'localhost' IDENTIFIED BY 'PASSWORD';
grant all privileges on cowrie.* to cowrie@'localhost' with grant option;
  • 刷新设置并退出:
FLUSH PRIVILEGES;
exit
  • 创建cowrie数据库所需要的表:
su cowrie
cd ~/cowrie/docs/sql/
mysql -u cowrie -p
use cowrie;
source mysql.sql;
exit
  • 修改cowrie配置,将输出定位到mysql:
vim etc/cowrie.cfg

        找到并修改以下字段:

[output_mysql]
host = localhost
database = cowrie
username = cowrie
password = PASSWORD HERE
port = 3306
debug = false
enabled = true
  • 启动或重启cowrie,参考 “启动Cowrie”。

  • 补充:

        若想清空mysql表中所有数据,可执行:

mysql -u cowrie -p
use cowrie;
set foreign_key_checks=0;
truncate table auth;
truncate table clients;
truncate table doanloads;
truncate table input;
truncate table ipforwards;
truncate table ipforwardsdata;
truncate table keyfingerprints;
truncate table params;
truncate table sensors;
truncate table sessions;
truncate table ttylog;
set foreign_key_checks=1;

        

启动Cowrie

  • 配置文件路径在./cowrie/etc中,包含cowrie.cfg.distuserdb.example两个文件。

cowrie.cfg.dist:cowrie默认配置文件,可直接修改后重启cowrie生效。

cowrie.cfg:该配置文件需手动创建,具有最高优先级,内容可由cowrie.cfg.dist复制过来修改。

userdb.example:改配置文件设置能登录到cowrie蜜罐的用户名和密码。

  • 启动指令:
# 每次启动前,需要切换到cowrie_env
source cowrie_env/bin/activate
# 控制指令包括:start、restart、stop
./cowrie/bin/cowrie start

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cowrie是一款基于Python的SSH蜜罐,可以模拟常见的Linux命令行环境,吸引黑客攻击并记录攻击行为。本文将介绍如何在Docker搭建Cowrie,并使用Elasticsearch和Kibana实现数据可视化。 1. 安装DockerDocker Compose 如果您还没有安装DockerDocker Compose,可以按照官方文档进行安装。 2. 下载Cowrie 在本地创建一个文件夹,用于存放Cowrie相关文件。在命令行中进入该文件夹,运行以下命令: git clone https://github.com/cowrie/cowrie.git 3. 编辑配置文件 进入cowrie文件夹,复制一份配置文件: cd cowrie cp cowrie.cfg.dist cowrie.cfg 编辑cowrie.cfg文件,将以下参数修改为自己的配置: [ssh] # 监听地址 listen_endpoints = tcp:2222:interface=0.0.0.0 # SSH版本 ssh_version = 2 # SSH主机密钥 ssh_host_key = /cowrie/cowrie-git/var/lib/cowrie/cowrie-ssh-hostkey.pem # SSH用户认证 authfile = /cowrie/cowrie-git/etc/cowrie/passwd # SSH黑名单 tcp_proxy = /cowrie/cowrie-git/bin/tcp-proxy.py # SSH欢迎信息 banner_file = /cowrie/cowrie-git/data/fs/banner [output_elasticsearch] # Elasticsearch地址 elasticsearch_host = elasticsearch # Elasticsearch端口 elasticsearch_port = 9200 # Elasticsearch索引名 elasticsearch_index = cowrie-%Y.%m.%d 4. 编写Docker Compose文件 在cowrie文件夹下新建一个docker-compose.yml文件,内容如下: version: '3' services: cowrie: build: . ports: - "2222:2222" volumes: - ./cowrie.cfg:/cowrie/cowrie-git/etc/cowrie.cfg - ./data:/cowrie/cowrie-git/var/lib/cowrie depends_on: - elasticsearch environment: - ES_HOST=elasticsearch - ES_PORT=9200 elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.14.1 environment: - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - ./elasticsearch:/usr/share/elasticsearch/data ports: - "9200:9200" - "9300:9300" kibana: image: docker.elastic.co/kibana/kibana:7.14.1 ports: - "5601:5601" environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 depends_on: - elasticsearch 该Docker Compose文件包含了三个服务: - cowrie:运行Cowrie蜜罐 - elasticsearch:运行Elasticsearch - kibana:运行Kibana 其中,cowrie和elasticsearch服务通过depends_on进行依赖关系的声明,kibana服务依赖elasticsearch服务。cowrie服务挂载了两个本地文件夹,一个用于存放cowrie.cfg配置文件,另一个用于存放Cowrie蜜罐所产生的数据。elasticsearch服务挂载了一个本地文件夹,用于持久化Elasticsearch数据。 5. 启动服务 在命令行中进入cowrie文件夹,运行以下命令启动服务: docker-compose up -d 6. 访问Kibana 在浏览器中访问http://localhost:5601/,进入Kibana界面。在左侧的导航栏中,点击“Discover”选项卡,即可看到Cowrie蜜罐所产生的数据。您可以根据自己的需求,对数据进行分析和可视化。 总结 本文介绍了如何基于Docker快速搭建Cowrie蜜罐,并通过Elasticsearch和Kibana实现数据可视化。这是一种简单、快速、可扩展的方案,可以帮助安全人员更好地了解攻击者的行为和方法,从而提高安全防护能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值