蜜罐隐藏方案

前言

通常厂商威胁捕捉与诱骗系统内置的蜜罐的特征,都在各红队挂上号了。哈希时代下的蜜罐隐藏,只能开发自定义蜜罐以规避哈希识别。

对于一个正常服务,通常情况下不会使用ip+端口,或域名+端口的形式提供服务。一个长期使用的外部应用服务通常使用子域名,以及ssl加密,即https传输。然而,正常服务也可以收集登录正确与失败的账号密码。

本文内容基于微步HFish胁捕捉与诱骗系统。

蜜罐于HFish后台启用后,使用三级域名以及反向代理nginx伪装为正常服务。

单个域名申请证书

使用certbot申请证书

Let's Encrypt是一个数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。

前置步骤:

于/etc/nginx/conf.d/文件夹下,将以下内容写入文件,命名为*.conf(建议为命名为hfish.conf,星号内容可自定义)

server {
    listen      80;
    listen      [::]:80;
    server_name sub.domain.com;							#将sub.domain.com替换为需要申请证书的域名

    #反向代理 / 用于let's encrypto验证域名归属
    location ^~ /.well-known/acme-challenge/{
        default_type "text/plain";
        root /;
    }
}

文件写入后运行命令

安装certbot

完成域名验证并生成证书

运行该命令后根据提示输入验证文件地址。根据配置,验证地址为root /; ,即此处输入‘/’即可。

生成证书与密钥默认存放于/etc/letsencrypt/live/domain.com/文件夹下,此时将/etc/nginx/conf.d/文件夹下(建议为命名为hfish.conf)配置文件替换为完整的配置文件并运行以下命令即可。

完整配置文件:

说明

  • 本文件为生成证书后所使用的文件,存放于/etc/nginx/conf.d/文件夹下(建议为命名为hfish.conf)。

CERT证书自动续期方案

编辑定时任务

写入以下命令,将domain.com替换为需要自动需求的域名

certbot申请由Let's encrypto签发的证书通常有效期为三个月,剩余有效期大于三十日则判定为证书有效无法续期,此时使用“--force-renewal ”强制续期即可。

值得注意的是,Let's encrypto限制单个域名/IP每周生成证书最多五十个,每次生成证书时错误尝试次数小于等于五次。建议生成证书时先加入参数“--dry-run”测试。

泛解析方案

泛解析使用acme协议申请证书。

简单来说acme.sh 实现了 acme 协议, 可以从 let‘s encrypt 生成免费的证书。 acme.sh 有以下特点:

  • 一个纯粹用Shell(Unix shell)语言编写的ACME协议客户端。

  • 完整的ACME协议实施。 支持ACME v1和ACME v2 支持ACME v2通配符证书

  • 简单,功能强大且易于使用。你只需要3分钟就可以学习它。

  • Let's Encrypt免费证书客户端最简单的shell脚本。

  • 纯粹用Shell编写,不依赖于python或官方的Let's Encrypt客户端。

  • 只需一个脚本即可自动颁发,续订和安装证书。 不需要root/sudoer访问权限。

  • 支持在Docker内使用,支持IPv6

不同意certbot的是,使用acme申请证书无需使用nginx验证域名,仅需提供域名所有者于域名解析商的注册邮箱以及CF密钥。当然,也可也使用dns设置txt解析记录校验泛解析域名归属。

下文基于使用CF密钥申请泛解析证书。dns设置txt验证可能会导致dns设置混乱,可能不利于长期运维。

使用CF_key申请泛解析ssl证书

自动续期方案

编辑定时任务

写入以下命令,将domain.com替换为需要自动续期的域名

Nginx配置文件*.conf

HTTP 重定向至 HTTPS

Last updated