蜜罐技术学习

/ 12评 / 2

前言

由于在学校创新实践所做的项目是waf,之前也有了解过一点蜜罐的相关知识,因此打算深入学习蜜罐技术并且将其和waf结合,实现更好的防御效果。

蜜罐简介

蜜罐可以实现对攻击者的主动诱捕,能够详细地记录攻击者攻击过程中的许多痕迹,利于取证。并且可以收集到大量有研究价值的数据,如留下的后门、攻击者的操作和攻击者信息等,从而便于提供丰富的溯源数据。

高交互性蜜罐:模仿承载各种服务的生产系统的活动,因此,可能允许攻击者大量服务浪费时间。通过使用虚拟机docker等,可以在单个物理机上托管多个蜜罐。因此,即使蜜罐受损,也可以更快地恢复它。通常,高交互性蜜罐由于难以检测而提供了更高的安全性,但维护成本很高。如果虚拟机不可用,则必须为每个蜜罐维护一台物理计算机。

低交互性蜜罐:仅模拟攻击者经常请求的服务。由于它们消耗的资源相对较少,因此可以轻松地将多个虚拟机托管在一个物理系统上,这些虚拟系统的响应时间短,所需的代码更少,从而降低了虚拟系统安全性的复杂性。

创宇:

image-20200410200129410

默安幻阵:

image-20200410200411260

长亭谛听:

image-20200410184830180

蜜罐核心 —— 攻击欺骗技术

ssh服务

  1. 记录攻击者爆破密码使用的字典
  2. 记录攻击者连入蜜罐后执行的命令
  3. 放入虚假文件如 /etc/hosts 等进一步将攻击者引入其余虚假服务

MySQL 服务

  1. 通过伪造MySQL报文来模拟服务。
  2. 利用MySQL客户端任意文件读取漏洞获取攻击者主机信息。

mysql读取客户端任意文件漏洞

image-20200402224513678

抓包:

Can Use LOAD DATA LOCAL: set 存在mysql建立连接时的握手包中时,该漏洞存在。

关于 LOAD DATA LOCAL

正常情况下,需要客户端发起如下查询:

load data local infile "/etc/passwd" into table TestTable fields terminated by '分隔符';

服务端才会去读取客户端的文件 /etc/passwd

https://dev.mysql.com/doc/refman/8.0/en/load-data-local-security.html

指出了load data local 的安全隐患。

如上所述服务端可以主动发起一个读取文件的请求,而不需要客户端发起后再回应,因此就导致了可以构造恶意服务端,当客户端连接的时候,就发送读取文件的数据包,即可任意文件读取。

伪造恶意服务端

// mysql-server 发送的握手包
var handshakePack = []byte{
    0x4a, 0x00, 0x00, 0x00, 0x0a, 0x35, 0x2e, 0x35, 0x2e, 0x35, 0x33,
    0x00, 0x01, 0x00, 0x00, 0x00, 0x75, 0x51, 0x73, 0x6f, 0x54, 0x36,
    0x50, 0x70, 0x00, 0xff, 0xf7, 0x21, 0x02, 0x00, 0x0f, 0x80, 0x15,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
    0x26, 0x2b, 0x47, 0x62, 0x39, 0x35, 0x3c, 0x6c, 0x30, 0x45, 0x4a,
    0x00, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x6e, 0x61, 0x74, 0x69,
    0x76, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
    0x00,
}

// mysql-server 回应的OK包
var okPack = []byte{0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00}

// mysql-server 发送的读取文件包
getFileData := []byte{byte(len("/etc/passwd") + 1), 0x00, 0x00, 0x01, 0xfb}
getFileData = append(getFileData, "/etc/passwd"...)

Web服务

  1. 使用一些带有漏洞的cms等引导攻击者进入蜜罐,可获取某些最新的攻击手法
  2. 使用个人(企业)自行开发的应用,及时感知0day情况。
  3. 模拟钓鱼页面,引诱攻击者上钩
  4. 利用jsonp劫持等漏洞,进一步获取攻击者信息

Redis 服务

  1. 通过模拟Redis 报文,来构建虚假服务
  2. 获取攻击者的攻击命令。

waf与蜜罐相结合

img

DNS天坑

image-20200410194106327
image-20200410194117021

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code