zoukankan      html  css  js  c++  java
  • python 使用scapy编写DNS Fuzzer

    1. 描写叙述

      使用scapy库,编写一个DNS Fuzzer工具,并測试。在这之前。先说明一下DNS协议请求包是封装在IP包中的UDP包(有些情况也可使用TCP)中。且UDP的端口为53。

    进入scapy。查看一下UDP和DNS包的封装情况。
      pkt


    2. 代码演示样例

      代码中,我们须要对输入的IP地址做合法性校验。

    这须要用到netaddr中的valid_ipv4,能够执行sudo pip install netaddr进行安装。假设系统上没有安装pip。能够先安装pip,Ubuntu上执行sudo apt-get install python-pip进行安装。
      

    from scapy.all import *
    from netaddr import valid_ipv4
    import sys,getopt
    
    def usage():
            print "Usage: sudo ./DnsFuzzer.py [-i interface][-l][target ip]"
            print "-i:指定网卡接口"
            print "-l:循环发送"
    
    def main(argv):
            loopsend = 0
            try:
                    opts, args = getopt.getopt(argv, "hi:l")
            except getopt.GetoptError:
                    usage()
                    sys.exit(2)
    
            for opt, arg in opts:
                    if opt in ("-h"):
                            usage()
                            sys.exit()
                    elif opt in ("-i"):
                            conf.iface = arg
                    elif opt in ("-l"):
                            loopsend = 1
    
            if len(args) > 0:
                    if not valid_ipv4(args[0],flags=1):
                            print "IP 地址不合法"
                            sys.exit(2)
                    a = fuzz(IP(dst=args[0])/UDP(dport=53)/DNS(qd=fuzz(DNSQR()), an = fuzz(DNSRR())))
                    send(a,loop=loopsend)
    
    if __name__ == "__main__":
            main(sys.argv[1:])
  • 相关阅读:
    排序之插入排序
    windows 连接 Linux 云服务器
    【Centos】搭建 SVN 服务器
    【微信小程序】scroll-view 的上拉加载和下拉刷新
    支付宝微信支付
    获取页面所有参数
    .net 比较两个日期大小
    .net json字符串转换为json对象
    .net 3des 解密
    .net xml转json
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6857999.html
Copyright © 2011-2022 走看看