项目介绍
CoNote是一个内部使用的工作台,它会让我们的安全测试过程变得非常方便,于2021年12月推出社区版。
使用说明:https://phithon.gitbooks.io/conote/content/
项目地址
https://github.com/opensec-cn/conote-community
演示视频
搭建文档尚不完善,尽情期待,有能力的同学可以先自行研究。
全局配置与环境变量
conote使用.env来配置环境变量,我们需要先将文件.env.default
复制成.env
。
具体值的意义,请参考conf/settings.py以及conf/settings_deploy.py。
主域名
conote平台需要一个主域名,如note.leavesongs.com
,用户可以通过这个域名访问管理页面。
主域名不用在配置文件里配置。
子域名
每个用户将被分配一个子域名,这个域名用于:
- 记录Web日志
- 记录DNS日志
- 存放并访问用户笔记
在配置文件中配置如下选项,指定根域名(每个用户分配到的子域名将是xxxx.2m1.pw
):
这个域名如何配置解析,在下一节进行说明。
DNS 配置
因为要记录DNS日志,所以我们需要将conote配置成一个DNS服务器。
首先,选择两个域名ns1.leavesongs.com
、ns2.leavesongs.com
(随意即可,无要求),A记录指向conote服务器IP。
然后,在配置文件中增加如下选项:
然后,在O_SERVER_DOMAIN
域名(也就是2m1.pw
)的注册商处,配置DNS服务器为ns1.leavesongs.com
和ns2.leavesongs.com
。
O_ADDITION_ZONE
中可以配置一些额外的DNS区域,比如MX记录等。
配置用户自定义DNS域名
conote可以允许用户配置自定义的DNS记录,用于测试Rebind漏洞。
选择一个O_SERVER_DOMAIN
的子域名(不要和用户的子域名重复),如s.2m1.pw
。增加如下配置:
不再需要额外配置,因为conote的DNS服务器会接管这个域名。
配置短域名
conote支持短域名模块,我们可以注册一个短域名,如mhz.pw
,然后增加如下配置:
然后需要在域名解析商处将这个域名指向conote的IP地址。
当然,也可以配置为O_SERVER_DOMAIN
的另一个子域名,如a.2m1.pw
。但这时候,我们就需要修改O_ADDITION_ZONE
,为这个子域名添加一个A记录,因为此时即conote充当域名解析商的角色。
配置XSS平台域名
conote支持xss平台,除了名字不同,配置同上一节:
配置第三方登录
CoNote现在使用的是第三方登录,如果要对接自己的OAuth平台,我们可以略微修改代码。
首先在.env中修改OAuth的配置项:
然后在app/ucenter/views.py
中,修改如下三个url:
第一个是获取code的url,第二个是用code兑换access_token的url,第三个是获取用户信息的url。
然后修改一下同文件中的RegisterView类:
其中self.user_data
是获取到的用户信息,修改成你的平台提供的信息即可。
配置Docker
拉取新的镜像:
如果希望限制容器内tmp文件夹大小,请先创建一个文件系统,步骤如下:
然后,配置settings.py:
Docker启动后,还需要将tmp目录权限修改为0777。
如果不用限制/tmp目录的大小,则无需上述操作,且settings中tmp的值为None
。
下载gvisor
conote利用gvisor来控制沙箱,所以需要下载gvisor的二进制文件并配置docker:
下载二进制文件:wget https://storage.googleapis.com/gvisor/releases/nightly/latest/runsc -O /usr/local/bin/runsc
,并给其添加可执行权限chmod +x /usr/local/bin/runsc
,然后修改docker配置文件/etc/docker/daemon.json
(如果不存在则创建之):
最后重启docker即可。
配置匿名邮箱与SMTP模块
在DNS服务商处(或conote的DNS配置处),设置MX记录指向服务器IP。
然后在settings中设置:
用./manage.py mailserver
启动smtp服务器,将监听0.0.0.0:25。
运行conote
conote分为4部分:
- web端
- dns服务器
- 后台任务
- smtp服务器
所以需要分成4个服务运行。systemd文件如下:
暂无评论内容