前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP、SCP上传的文件。而此文主要对该蜜罐的监控效果做个简单的测试,并在受到暴力破解攻击的时候实现自动化邮件告警。
 
一、T-Pot平台cowrie 蜜罐ssh暴力破解探测
由下图可知,cowrie的地址为172.17.0.4 (该地址可能会变动,测试时以实际分配IP为准)

首页-》UI-For-Docker-》Containers
因T-Pot仅部署在测试虚拟机里而并未部署在网络流量出入口,所以本地测试时远程ssh连接cowrie的2222端口,使用以下命令尝试登陆发现Dashboard里的Cowrie-Event Counter成功捕获到了异常连接信息。
[tsec@ptarmiganantelope:~]$ ssh -p 2222 172.17.0.4
 
 另外,将DashBoard设置为cowrie专用模板后展示的信息将会更加全面,将屏幕刷新时间设置为5s后即可配置SSH恶意连接状况的实时动态展现。
 
二、cowrie配置实现自动化邮件告警
有报警信息就肯定有日志,cowrie的报警日志保存在了以下路径。
/data/cowrie/log/cowrie.log

接下来就是制作监控脚本,所实现的功能是检测该日志是否有新的登录记录产生,如果发现了新的登录记录立刻向管理员发送出告警邮件。 而该告警邮件中应包含攻击者暴力破解时所使用的用户名、密码及攻击者IP地址。另外,脚本最好不要保存在/data/cowrie/log目录下,我这里放在了/root目录下了。

脚本内容:/root/diff.sh

#! /bin/bash

grep 'login attempt' /data/cowrie/log/cowrie.log > /data/cowrie/log/cowrieSSH.log.new
diff /data/cowrie/log/cowrieSSH.log.new /data/cowrie/log/cowrieSSH.log.old > /data/cowrie/log/diff.txt if [ $? == "" ] ; then
echo "未探测到SSH异常连接!"
else
echo "SSH异常连接,正在发送确认邮件...!"
mail -s '[T-POT] cowrie monitor warnning!!!' pentest@.com < /data/cowrie/log/diff.txt
cp /data/cowrie/log/cowrieSSH.log.new /data/cowrie/log/cowrieSSH.log.old
echo "邮件发送成功!"
fi
给监控脚本添加可执行权限
chmod u+x /root/diff.sh

给监控脚本添加计划任务,要求每分钟执行一次(执行频率可根据需要自行设置)。

# vim /etc/crontab  添加以下内容到crontab里
# Check cowrie HoneyPot
* * * * * root /root/diff.sh

重启cron服务,使得修改过的cron服务立刻生效

/etc/init.d/cron restart 
最后,SSH连接cowrie的IP(ssh -p 2222 172.17.0.4),尝试输入错误密码888888后发现收到了异常告警邮件!
 
 
 
ps:
(1)整个流程实现略显复杂,待后续研究优化。
(2)测试所用邮件服务是在ubuntu系统上安装的sendmail。
(3)查看T-Pot平台各蜜罐服务状态及设置开机自启动
  》systemctl status conpot/dionaea/elasticpot/emobility/glastopf/honeytrap
  》systemcel enable conpot/dionaea/elasticpot/emobility/glastopf/honeytrap
(4)发送邮件到163或QQ邮箱的时候可能会被当作垃圾邮件处理,可以尝试在hosts文件里添加发送源邮箱的域名(如以下红体字部分)
[root@ptarmiganantelope:/data/cowrie/log]# vim /etc/hosts

127.0.0.1       localhost
127.0.1.1 ptarmiganantelope hbmapentest.ips.com

  同时,观察是否存在以下进程以确认sendmail是否正常工作

[root@ptarmiganantelope:/data/cowrie/log]# ps aux | grep sendmail
root 0.0 0.1 ? Ss : : sendmail: MTA: accepting connections
root 0.0 0.0 pts/ S+ : : grep --color=auto sendmail

T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警的更多相关文章

  1. T-Pot平台Honeytrap蜜罐TCP/UDP服务攻击探测及实现自动化邮件告警

    T-pot平台的Honeytrap可观察针对TCP或UDP服务的攻击,作为一个守护程序模拟一些知名的服务,并能够分析攻击字符串,执行相应的下载文件指令,当不产生TCP或者UDP协议的时候Honeytr ...

  2. web攻击与防御技术-平台搭建与暴力破解

    平台搭建是首先安装xampp并把pikachu的压缩文件解压在HTdocs下 然后 点击后显示 安装成功 首先随便输入一些东西 然后用burpsuite抓包 对username和password字段进 ...

  3. Pikachu漏洞练习平台实验——暴力破解(一)

    概述 一个有效的字典可以大大提高暴力破解的效率 比如常用的用户名/密码TOP500 脱裤后的账号密码(社工库) 根据特定的对象(比如手机.生日和银行卡号等)按照指定的规则来生成密码 暴力破解流程 确认 ...

  4. 搭建pikachu平台及暴力破解

    一.先将Pikachu文件放在网站根目录下 二.修改pikachu网站的配置文件  inc/config.inc.php define('DBUSER', 'user'); define('DBPW' ...

  5. Pikachu练习平台(暴力破解)

    Pikachu练习平台(暴力破解) 因为下面要用到burp suite,这里先简单介绍一下intruder模块的东西 Target选项:        设置攻击目标,可以通过proxy发送 Pasit ...

  6. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止暴力破解密码、提高大型信息系统安全

    几十万人使用的系统.覆盖全国.每天营业额上好几个亿的.若信息安全方面太薄弱了.那将会是致命的打击.甚至威胁到企业的正常运转.从国家层面到企业级别大家都在重视信息的安全.可控. 运行速度慢一点点可以忍受 ...

  7. 暴力破解unix/linux平台上采用crypt加密的口令

    # coding=utf-8 ''' 暴力破解crypt模块加密的密码 ''' import crypt import optparse usage = 'Usage: %prog [optinos] ...

  8. Cowrie蜜罐部署教程【转载】

    0.蜜罐分类: 低交互:模拟服务和漏洞以便收集信息和恶意软件,但是攻击者无法和该系统进行交互: 中等交互:在一个特有的控制环境中模拟一个生产服务,允许攻击者的部分交互: 高交互:攻击者可以几乎自由的访 ...

  9. Web攻防之暴力破解(何足道版)

    原创文章 原文首发我实验室公众号 猎户安全实验室 然后发在先知平台备份了一份 1 @序 攻防之初,大多为绕过既有逻辑和认证,以Getshell为节点,不管是SQL注入获得管理员数据还是XSS 获得后台 ...

随机推荐

  1. P2648 赚钱

    P2648 赚钱对于不知道起点在哪里的最短路,先建立一个超级源点,然后从超级源点跑最长路,并判正环即可. #include<iostream> #include<cstdio> ...

  2. atomic 包、synchronized | Java 中线程安全

    相关阅读 彻底搞懂 CPU 中的内存结构 Java 内存模型 ,一篇就够了! 多线程实现原理 之前已经说过了,我们在保证线程安全的时候主要就是保证线程安全的 3 大特性,原子性.可见性.有序性.而在 ...

  3. 【Java】同步阻塞式(BIO)TCP通信

    TCP BIO 背景 网络编程的基本模型是Clien/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接 ...

  4. grant 权限 on 数据库对象 to 用户

    grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to common_ ...

  5. JAXB 实现java对象与xml之间互相转换

    首先熟悉一下JAXB实现对象与xml互转时常用的一些注解使用: 1.@XmlRootElement,用于类级别的注解,对应xml的跟元素.通过name属性定义这个根节点的名称. 2.@XmlAcces ...

  6. gbdt xgboost 贼难理解!

    https://www.zybuluo.com/yxd/note/611571 https://zhuanlan.zhihu.com/p/29765582 gbdt 在看统计学习方法的时候 理解很吃力 ...

  7. bzoj4709: [Jsoi2011]柠檬 斜率优化

    题目链接 bzoj4709: [Jsoi2011]柠檬 题解 斜率优化 设 \(f[i]\) 表示前 \(i\)个数分成若干段的最大总价值. 对于分成的每一段,左端点的数.右端点的数.选择的数一定是相 ...

  8. Shell中的>/dev/null 2>&1 与 2>&1 >/dev/null 与&>/dev/null 的区别

    默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: & ...

  9. CocosCreator小栗子

    主要是了解了场景切换的API,见下: 开始场景和结束场景内,按钮挂相同的Btn脚本,主要是切换到场景2中: Btn脚本如下, onLoad:function() { this.node.on('mou ...

  10. ClassLoader加载资源时的搜索路径

    先来个例子: /** * 测试classloader加载路径在哪里<p> * main3 */ public static void main3(String[] args) { Prop ...