前言

github上已经有很多开源的蜜罐产品了,但是感觉都不是我想要的,我想要的是360的Anglerfish这种蜜罐,能够伪造web服务,欺骗攻击者,获取web攻击的payload情况
但是很遗憾,没在网上找到这款产品,暂且当它是内部的吧,所以只能自己简单的抄袭一个出来

之前用flask写了一个,感觉效果很理想,就是bug比较多;所以这次准备直接用成熟的apache来搭建部署。

核心思路:定义一个包含敏感内容的模板html,让所有请求都返回这个结果,apache记录所有请求日志

Apache配置

本次使用版本:
image-20220208171531843
apache默认情况下,是只会记录请求的头部信息,如方法、路由、GET参数和UA等,保存在/var/log/apache2/access.log下(可以通过配置修改);但是如果是POST的请求,是不能看到传输的数据的,而我们作为蜜罐,则需要记录所有的请求内容
image-20220208170228899
因此我们需要开启apache的post数据记录功能

方法一:使用mod_dumpio

[!note]

apache自带的插件,但是格式很乱,且mod_dumpio在第一个空字符处停止记录二进制有效负载。例如,gzip文件的multipart/form-data上传可能仅显示mod_dumpio的前几个字节。

执行下列命令:

  1. sudo a2enmod dump_io
  2. systemctl restart apache2

编辑apache的配置文件/etc/apache2/apache2.conf,添加如下内容

  1. vim /etc/apache2/apache2.conf
  1. LoadModule dumpio_module modules/mod_dumpio.so
  2. DumpIOInput On
  3. DumpIOOutput On
  4. #DumpIOLogLevel DEBUG # apache 2.2 version
  5. LogLevel dumpio:trace7 # apache 2.4

image-20220208171348893
再次重启apache

  1. systemctl restart apache2

此后,所有的数据都将会记录到错误日志/var/log/apache2/error.log
image-20220208171940362
此时记录post的数据就大功告成了

方法二:安装mod_security

  1. # 安装
  2. sudo apt install libapache2-mod-security2 -y
  3. # 使用推荐的配置文件
  4. sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
  5. # 重新加载Apache
  6. sudo service apache2 reload

查看记录的日志/var/log/apache2/modsec_audit.log
image-20220208173245382
其他可参考的/etc/modsecurity/modsecurity.conf配置;modSecurity规则学习(一)——配置文件

  1. SecRuleEngine On
  2. SecAuditEngine On
  3. SecAuditLog /var/log/apache2/modsec_audit.log
  4. SecRequestBodyAccess on
  5. SecAuditLogParts ABIJDFHZ

网站部署

有了日志记录的功能,我们还需要一个蜜罐界面,最好是包括各种产品信息的,如

查看源码,可以看到里面有大量的伪造信息,来方便搜索引擎抓取
image-20220208173817589
直接copy下来,可以点击我下载
image-20220208173703843
给它放到/var/www/html目录下,然后访问IP或者配置的域名,出现一样的界面就说明OK了,大体就完成了
image-20220208212929586

扩展

隐藏Server信息

这个header还是太明显了,可以修改apache的配置文件/etc/apache2/apache2.conf来隐藏
image-20220208213310161
在配置文件中添加几行(需要安装mod_security),参考:http://www.modsecurity.cn/chm/SecServerSignature.html

  1. <IfModule security2_module>
  2. SecServerSignature "Microsoft-IIS/6.0"
  3. </IfModule>

效果
image-20220208214650687

重写路由

访问一些不存在的页面会返回404,就暴露了,所以我们可以重写一下路由,访问任意链接都返回首页index.html
执行如下命令:

  1. sudo a2enmod rewrite
  2. systemctl restart apache2
  3. vim /etc/apache2/sites-available/000-default.conf

添加如下内容:

  1. <Directory /var/www/html>
  2. Options Indexes FollowSymLinks MultiViews
  3. AllowOverride All
  4. Require all granted
  5. </Directory>

image-20220208220511531
再次重启apache

  1. systemctl restart apache2

创建并编辑/var/www/html/.htaccess

  1. vim /var/www/html/.htaccess

写入如下内容

  1. RewriteEngine On
  2. RewriteRule ^.*?$ index.html [NC]

参考:How To Rewrite URLs with mod_rewrite for Apache on Ubuntu 16.04