Cowrie蜜罐部署教程
0.蜜罐分类:
低交互:模拟服务和漏洞以便收集信息和恶意软件,但是攻击者无法和该系统进行交互;
中等交互:在一个特有的控制环境中模拟一个生产服务,允许攻击者的部分交互;
高交互:攻击者可以几乎自由的访问系统资源直至系统重新清除恢复。
1.cowrie简介
它是一个具有中等交互的SSH蜜罐,安装在Linux中,它可以获取攻击者用于暴力破解的字典、输入的命令以及上传或下载的恶意文件。攻击者在上传恶意文件后,执行恶意文件的操作均会失败,所以对蜜罐本身来说比较安全。
2.cowrie安装部署
以下步骤均为root权限执行
l 添加非root用户
adduser cowrie –p *******(设置密码,一路回车即可)
l 安装各种python相关包
apt-get install python-twistedpython-crypto python-pyasn1 python-gmpy2 python-mysqldb python-zope.interface
l 安装virtualenv
apt-get install virtualenv
l 下载cowire
cd /optgit clone http://github.com/micheloosterhof/cowrie
l 配置python虚拟环境
cd /opt/cowrie-master(cowrie-master就是我cowrie蜜罐的目录,如果目录不一致,重命名即可)virtualenv cowrie-envsource cowrie-env/bin/activate(cowrie-env) $ pip install twistedcryptography pyopenssl gmpy2
l 改变/opt/cowrie-master的拥有者
chown -R cowrie:cowrie /opt/cowrie-master
l 建立cowrie配置文件
cp cowrie.cfg.dist cowrie.cfg
l 修改日志的umask为0022(默认为0077)
cd /opt/cowrie-mastervi start.sh
l 修改蜜罐的SSH端口(默认为2222)
cd /opt/cowrie-mastervi cowrie.cfg
将linsten_port改为62223即可(最好大于60000,以防止被nmap默认扫描到)
l 将公网访问服务器22端口的请求做端口转发,转发到蜜罐的端口中
iptables -t nat -A PREROUTING -p tcp--dport 22 -j REDIRECT --to-port 62223
l 将真正的(非蜜罐)SSH管理端口改为65522
vi /etc/ssh/sshd_config
(备注:在第一次改SSH端口时,在前期测试时强烈建议同时保留22与65522,以防止修改保存后出现故障无法连接65522)
此处切换为cowrie用户操作
启动蜜罐
cd /opt/cowrie-master./start.sh
3. 数据库安装部署
cowrie中产生的日志杂乱无章,即使放到日志分析工具中也很难制定规则去筛选。然而cowrie具备将攻击IP、时间、历史执行命令等记录直接存在数据库中,下面将说明如何配置数据库。
需要root权限或者sudo
l 安装mysql基础环境
apt-get install libmysqlclient-devpython-dev pip install mysql-python apt-get install mysql-server python-mysqldb
l 配置数据库与表
使用root用户建立名为cowrie的数据库并将该库中的所有表授权给cowrie
mysql -u root -pEnter password: ******* mysql>CREATE DATABASE cowrie;mysql> GRANT ALL ON cowrie.* TOcowrie@localhost IDENTIFIED BY 'your_password';mysql>exit
此时进入cowrie安装目录中,使用cowrie用户登录数据库,进入cowrie库中,将/opt/cowrie/ doc/sql/mysql.sql作为数据源即可制成多个表。
cd /opt/cowrie-master mysql -u cowrie –pEnter password: ******* mysql>USE cowrie;mysql>source ./doc/sql/mysql.sqlmysql>exit
停止cowrie,修改配置文件中的数据库配置,使配置文件中的密码与cowrie数据库用户密码一致。
./stop.shvi cowrie.cfg
保存后退出,并su到cowrie用户重启蜜罐
./start.sh
cowrie库中的数据表如下:
4. 配置文件说明
data/userdb.txt——设置外部连接蜜罐时的密码,可以设置稍微复杂但是在攻击字典里,诱使攻击者进行暴力破解并获取其行为。
log/cowrie.json与 log/cowrie.log——均为日志
txtcmds/*——均为假的命令,其实打开就会发现完全就是txt
dl/*——攻击者上传的文件均会复制到这里
honeyfs/etc/motd——自定义欢迎/警告banner
5. 阶段成果
如果想查询蜜罐中是否有攻击者的痕迹,SSH登录服务器后进入数据库,使用cowrie库,查询auth、sessions、input等表即可。
公网恶意IP可以从sessions表中去重获取,算是少量的威胁情报了,部分恶意IP如下。
记录攻击者操作如下:
由上图可以看到攻击者在暴力破解成功后执行的命令,获取到这些恶意文件后进行分析,其大多数均为用于ddos的恶意程序,例如:
在长期收集蜜罐中的攻击者信息后,可以制定恶意IP列表直接在防火墙做阻断
Cowrie蜜罐部署教程的更多相关文章
- Cowrie蜜罐部署教程【转载】
0.蜜罐分类: 低交互:模拟服务和漏洞以便收集信息和恶意软件,但是攻击者无法和该系统进行交互: 中等交互:在一个特有的控制环境中模拟一个生产服务,允许攻击者的部分交互: 高交互:攻击者可以几乎自由的访 ...
- T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警
前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP.SCP上传 ...
- deepsooncms在Ubuntu 14.04上部署教程
deepsooncms在Ubuntu 14.04上部署教程 一.安装mono1.在命令行运行sudo apt-key adv --keyserver keyserver.ubuntu.com --re ...
- 自动化部署教程(一) redhat安装jenkins
自动化部署教程(一) redhat安装jenkins 源配置: sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.or ...
- 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程
学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
- LAMP 搭建wordpress部署教程贴.
LAMP 搭建wordpress部署教程贴.这是一篇主要将LAMP,并且通过wordpress来进行验证,演示.如何去部署PHP CMS很多新手看到LAMP就很很头大,觉得很难搞,编译安装,搞了好几天 ...
- Hexo快速部署教程
一直有建立博客的需要,使用过Wordpress动态博客,一直访问速度比较慢,刚开始以为是空间域名的解析的问题,尝试使用Hexo静态博客,部署后感觉速度正常很多,特意发文快速部署教程 准备 本文是在wi ...
- Django+nginx+uwsgi部署教程(centos7+ubuntu16.4)
在线教育平台项目演示地址 项目部署教程 1.1.工作原理介绍 django 一个基于python的开源web框架 uwsgi 一是一个web服务器,也可以当做中间件 nginx 常用高性能代理服务器 ...
- 【gitlab】gitlab快速部署教程
gitlab快速部署教程 部署环境 Ubuntu 16.04(亲测可用) 开始部署 安装依赖 sudo apt-get install curl openssh-server ca-certifica ...
随机推荐
- Java泛型(7):无界通配符<?>
无界通配符<?>很容易和原生类型混淆. 以List为例: List表示持有任何Object类型的原生List,其实就等价于List<Object> List<?>表 ...
- B. Grow The Tree Codeforces Round #594 (Div. 2)
Gardener Alexey teaches competitive programming to high school students. To congratulate Alexey on t ...
- shell-变量,字符串,数组,注释,参数传递
Linux的Shell有很多种,常见的有Bourne Shell Bourne Again Shell C Shell K Shell Shell for Root 等,其中Bourne Again ...
- zping ping包工具20180605.exe测试版
链接: https://pan.baidu.com/s/1WB3BZn0r9n4DRU_8bNC65g 提取码: mybi zping的第一个exe版本由于未对兼容性进行测试,使用python3.6编 ...
- 【转】nosql的分类
1 键值数据库 相关产品:Redis.Riak.SimpleDB.Chordless.Scalaris.Memcached 形式:Key 指向 Value 的键值对,通常用hash table来实现 ...
- 从入门到自闭之Python--MySQL数据库的单表操作
单表查询:select * from 表 where 条件 group by 分组 having 过滤 order by 排序 limit n; 语法: select distinct 字段1,字段2 ...
- 代码优化:Java编码技巧之高效代码50例
出处: Java编码技巧之高效代码50例 1.常量&变量 1.1.直接赋值常量值,禁止声明新对象 直接赋值常量值,只是创建了一个对象引用,而这个对象引用指向常量值. 反例: Long i = ...
- Flink的时间类型和watermark机制
一FlinkTime类型 有3类时间,分别是数据本身的产生时间.进入Flink系统的时间和被处理的时间,在Flink系统中的数据可以有三种时间属性: Event Time 是每条数据在其生产设备上发生 ...
- JavaSE基础知识之继承
一.概述 继承描述的是事物之间的所属关系,这种关系是: is-a 的关系.例如,图中的兔子属于食草动物,食草动物又属于动物.继承可以使多种事物之间形成一种关系体系,让父类更通用,子类更具体. 1.1 ...
- 汉明码(hamming code)
hamming code用于磁盘RAID 2中, 关于汉明码的讲解可以看这篇博文,介绍的很详细.最重要是最后的结论: 汉明码属于分组奇偶校验,P4P2P1=000,说明接收方生成的校验位和收到的校验位 ...