怎样进行DNSLOG平台搭建

介绍

怎样进行DNSLOG平台搭建,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1前言

,,,,DNSLOG是一种回显机制,常用于在某些漏洞无法回显但可以发起DNS请求的情况下,利用此方式外带数据,以解决某些漏洞由于无回显而难以利用的问题。主要利用场景有SQL盲注,无回显的命令执行,无回显的SSRF。本文介绍一种搭建DNSLOG平台的方法,旨在为渗透测试提供一些帮助。

2前期准备

,,,,,,一个域名,一台vps

,,,,,,本文使用的是:阿里云购买的域名和云服务器ECS

,,,,,,域名:example.icu

,,,,,,vps的ip: 100.100.100.100

3实验过程

3.1添加DNS解析

,,,,,,在云解析DNS处添加一条一记录和一条NS记录,如图所示:

怎样进行DNSLOG平台搭建“> <br/> </p> <h3> 3.2对外开放53端口</h3> <p>,,,,,,在云服务器ECS安全组规则里添加对外开发53端口的规则,协议是udp。</p> <p> <img src=

3.3 DNSLOG代码

,,,,,,dnslog.py

,,,,,,运行在python2下,无需安装依赖包。

,,,,,,# !/usr/bin/env python

,,,,,,# - * -编码:utf - 8 - * -

,,,,,,进口SocketServer

,,,,,,进口struct

,,,,,,进口套接字socketlib

,,,,,,# DNS查询

,,,,,,类SinDNSQuery:

,,,,,,,,def __init__(自我、数据):

,,,,,,,,,,,,i=1

,,,,,,,,,,,,self.name=& # 39; & # 39;

,,,,,,,,,,,,而真正:

,,,,,,,,,,,,,,,,d=奥德(数据[我])

,,,,,,,,,,,,,,,,,,如果d==0:

,,,,,,,,,,,,,,,,,,,,,,打破;

,,,,,,,,,,,,,,,,,,如果d & lt;32:

,,,,,,,,,,,,,,,,,,,,self.name=self.name + & # 39;强生# 39;

,,,,,,,,,,,,,,,,其他:

,,,,,,,,,,,,,,,,,,,,,,self.name=self.name +装备(d)

,,,,,,,,,,,,,,,,,,我+ 1=

,,,,,,,,,,,,自我。querybytes=数据[0 i + 1):

,,,,,,,,,,,,(self.type self.classify)=struct.unpack(& # 39;在hh # 39;,数据[我+ 1 + 5])

,,,,,,,,,,,,,自我。len=我+ 5

,,,,,,,,,def getbytes(自我):

,,,,,,,,,,,,,回归自我。querybytes + struct.pack(& # 39;在hh # 39;,自我。类型,self.classify)

,,,,,,# DNS回答RRS

,,,,,,类SinDNSAnswer:

,,,,,,,,,def __init__(自我、ip):

,,,,,,,,,,,,,49164年,self.name=

,,,,,,,,,,,,,自我。类型=1

,,,,,,,,,,,,,自我。分类=1

,,,,,,,,,,,,自我。timetolive=190

,,,,,,,,,,,,,的自己。datalength=4

,,,,,,,,,,,,自我。ip=ip

,,,,,,,,,def getbytes(自我):

,,,,,,,,,,,,,res=struct.pack(& # 39;祝辞HHHLH& # 39;, self.name,自我。类型、自我。分类、self.timetolive self.datalength)

,,,,,,,,,,,,s=self.ip.split(& # 39;强生# 39;)

,,,,,,,,,,,,null

怎样进行DNSLOG平台搭建