T-Pot 蜜罐的介绍及使用

简介

T-Pot 蜜罐是德国电信下的一个社区蜜罐项目,是一个基于 Docker 容器的集成了众多针对不同应用蜜罐程序的系统,目前发行的最高版本是 2017 年 11 月 7 日发布的 T-Pot 17.10,根据官方的介绍,每年都会发布一个新的版本。

项目地址:https://github.com/dtag-dev-sec/tpotce

组成

上图就是当前 T-Pot 最新版本的组成部分,T-Pot 可以理解成是这么多系统的一个整合。

下面将针对各个部分进行简单的介绍

Elastic-Search

Elastic Search 一个性能十分强大的全文搜索引擎,他可以快速的进行海量数据的查询

在 T-Pot 的实际应用中,各个蜜罐所产生的日志都会导入到 Elastic Search 中,因此可以使用 Elastic Search 来进行检索,同时也可以使用他对数据进行各种复杂条件的查询和导出等

Logstash

Logstash 用于接收从蜜罐传递过来的日志,然后对数据进行过滤和格式化后交由 Elastic Search 进行存储和建立索引

Kibana

Kibana 用于对进行数据的可视化查询,支持以柱状图、线状图、饼图、旭日图等等输出各种图形,也能通过时间序列对蜜罐日志某个特征的趋势进行分析。

Head

Head 是一个网页前端,主要用于与 Elastic Search 集群进行交互。

和上面的 Kibana 不同的是,他的可视化程度相对较低,但是更便于直接对数据进行操作,类似与 phpMyAdmin 的存在

Conpot

Conpot 是一个低交互式的工业控制系统的蜜罐,内置了一系列常见的工业控制协议,并且易于修改和拓展,尽其所能的欺骗攻击者,以获得攻击者的最终目的

Cowrie

Cowrie 是一个中等交互式的 SSH / Telnet 蜜罐,设计上用来记录暴力破解以及登录后 Shell 执行的操作

主要功能有:

Dionaea

Dionaea 是一系列基于 Python 语言开发、libemu 作为 Shellcode 分析的蜜罐系统,支持多种不同协议,见下表

ElasticPot

ElasticPot 是一个 Elasticsearch 的蜜罐

eMobility

eMobility 是一个高交互式的蜜罐,针对的是下一代的交通基础设施(充电桩系统),用于收集攻击者的动机和方法。

系统主要包括中央充电系统、充电点以及模拟的用户交易。

Glastopf

Glastopf 是一个 Python 语言开发的 Web 蜜罐,能提供各种基于漏洞类型的模拟

HoneyTrap

HoneyTrap 是一个低交互式的蜜罐,通过监听 NFQUEUE 用户态数据包,相当与就监听了所有其他未监听的端口

主要功能用于观察攻击者的行为,同时也可以解析攻击的字符串,并且进行相应的下载保存

Mailoney

Mailoney 是一个 SMTP 蜜罐

Rdpy

Rdpy 是一个用 Python 实现的 RDP 和 VNC 协议,可以用作服务端以及客户端,同时也提供 RDP 的蜜罐,用于记录 RDP 的过程

vnclowpot

vnclowpot 是一个低交互式的 VNC 蜜罐,主要用于记录 VNC 的认证过程

Suricata

Suricata 是一个网络 IDS、IPS 和 NSM 引擎,主要分析并记录下连接中一些有用的信息

p0f

p0f 利用一系列复杂的流量指纹识别,被动的来识别 TCP/IP 通信的对方信息,例如可以识别出对方的系统、在线时间等

安装

镜像安装

https://github.com/dtag-dev-sec/tpotce/releases/download/17.10/tpot.iso

在已有系统下安装

目前支持在全新的 Ubuntu 16.04 (64bit) 系统下进行安装

https://github.com/dtag-dev-sec/t-pot-autoinstall

界面

t-pot 的界面大概就是 Kibana、ES Head 等等组件的 Web 界面

下面将展示 Kibana 中最近 7 天(2018-08-15 至 2018-08-22)的蜜罐情况供参考

(攻击地图)

(攻击总量与走势)

(攻击区域分布)

(SSH 蜜罐记录的用户名和密码)

日志

基本上各个蜜罐的日志均导入到了 Elasticsearch 中,因此我们可以很快的在庞大的日志中找到我们想要的日志。但由于 Elasticsearch 的语法我不是十分熟悉,因此下面将记录几个常用的结构来以备今后的使用

使用位置: ES Head -> 复合查询

查询来自某个 IP 的日志

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "src_ip.keyword": "127.6.6.6"
          }
        }
      ]
    }
  },
  "from": 0,
  "size": 50
}

查询来自某个 IP 的日志并按日期倒序排列

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "src_ip.keyword": "127.6.6.6"
          }
        }
      ]
    }
  },
  "from": 0,
  "size": 50,
  "sort": [
    {
      "@timestamp": "desc"
    }
  ]
}

列出来自 Cowrie 蜜罐的、使用次数最多的用户名

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "type.keyword": "Cowrie"
          }
        }
      ]
    }
  },
  "aggs": {
    "genres": {
      "terms": {
        "field": "username.keyword",
        "size": 10
      }
    }
  },
  "size": 0
}

这里只列出 2018.08.21 的结果

root - 19660
admin - 7267
空 - 2626
enable - 876
shell - 870
user - 596
Administrator - 571
super - 515
superuser - 514
tech - 375

我就顺便把密码前 20 列出来了,改一下查询参数就可以的了

空 - 5255
1234 - 1024
system - 876
admin - 862
sh - 846
password - 833
123456 - 802
12345 - 623
ibmdb2 - 514
user - 434
pass - 421
1111 - 415
7ujMko0admin - 414
666666 - 413
888888 - 412
54321 - 410
changeme - 384
cat1029 - 380
alpine - 377
manager - 363

列出来自 Suricata 且端口为 80 且 User-Agent 以 python-request 开头的日志

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "type.keyword": "Suricata"
          }
        },
        {
          "term": {
            "dest_port": "80"
          }
        },
        {
          "wildcard": {
            "http.http_user_agent.keyword": "python-request*"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "size": 50
}

参考链接

dtag-dev-sec/tpotce: T-Pot Universal Installer and T-Pot ISO Creator

dtag-dev-sec/t-pot-autoinstall: Autoinstall T-Pot on Ubuntu 16.04

T-Pot 17.10 - Multi-Honeypot Platform rEvolution

基于 Docker 的蜜罐平台搭建:T-Pot 17.10 - FreeBuf 互联网安全新媒体平台 | 关注黑客与极客